@wistia/ui 0.19.4-beta.feb024a4.a780da0 → 0.20.0

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.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts","../src/providers/UIProvider/UIProvider.tsx","../src/css/GlobalStyle.tsx","../src/css/globalStyleAdjustmentsCss.tsx","../src/css/designTokens/index.tsx","../src/css/designTokens/colorGlobal.tsx","../src/css/designTokens/colorAlias.tsx","../src/css/designTokens/colorSchemes.tsx","../src/css/designTokens/borderRadius.tsx","../src/css/designTokens/spacing.tsx","../src/css/designTokens/typography.tsx","../src/css/designTokens/zIndex.tsx","../src/css/designTokens/elevation.tsx","../src/css/designTokens/motion.tsx","../src/components/ClickRegion/globalStyles.tsx","../src/providers/AriaLiveProvider/AriaLiveProvider.tsx","../src/providers/AriaLiveProvider/AriaLiveContext.tsx","../src/css/visuallyHiddenStyle.tsx","../src/providers/UIProvider/ToastProvider.tsx","../src/helpers/copyToClipboard/copyToClipboard.ts","../src/helpers/dateTime/constants.ts","../src/helpers/dateTime/buildTimeDuration.ts","../src/helpers/dateTime/isDate.ts","../src/helpers/dateTime/isInvalidDate.ts","../src/helpers/dateTime/dateOnlyISOString.ts","../src/helpers/dateTime/dateOnlyString.ts","../src/helpers/dateTime/dateOnlyStringForSentence.ts","../src/helpers/dateTime/dateOnlyStringNumeric.ts","../src/helpers/dateTime/dateTimeToDate.ts","../src/helpers/dateTime/dateToDateTime.ts","../src/helpers/dateTime/dateTimeToISO.ts","../src/helpers/dateTime/dateTimeRounded.ts","../src/helpers/dateTime/dateTimeString.ts","../src/helpers/dateTime/dateTimeStringForSentence.ts","../src/helpers/dateTime/dateUTCOffset.ts","../src/helpers/dateTime/dayOfWeekString.ts","../src/helpers/dateTime/padTimeInteger.ts","../src/helpers/dateTime/mediaDurationString.ts","../src/helpers/dateTime/millisecondsToDurationISOString.ts","../src/helpers/dateTime/monthDayStringNumeric.ts","../src/helpers/dateTime/sessionDurationString.ts","../src/helpers/dateTime/getLocalDateParts.ts","../src/helpers/dateTime/differenceInCalendarDays.ts","../src/helpers/dateTime/timeAgoString.ts","../src/helpers/dateTime/timeOnlyString.ts","../src/helpers/dateTime/index.ts","../src/helpers/mergeRefs/mergeRefs.ts","../src/helpers/mq/mq.ts","../src/css/breakpoints.ts","../src/hooks/useAriaLive/useAriaLive.tsx","../src/hooks/useBoolean/useBoolean.ts","../src/hooks/useClipboard/useClipboard.ts","../src/private/hooks/useTimedToggle/useTimedToggle.ts","../src/hooks/useElementObserver/useElementObserver.ts","../src/hooks/useFilePicker/useFilePicker.tsx","../src/hooks/useFocusTrap/useFocusTrap.ts","../src/hooks/useFocusTrap/helpers.ts","../src/hooks/useForceUpdate/useForceUpdate.ts","../src/hooks/useIsHovered/useIsHovered.ts","../src/hooks/useKey/useKey.ts","../src/private/hooks/useEvent/useEvent.ts","../src/private/helpers/isValidRef/isValidRef.ts","../src/private/helpers/noOpFn/noOpFn.ts","../src/hooks/useLocalStorage/useLocalStorage.ts","../src/hooks/useLockBodyScroll/useLockBodyScroll.ts","../src/hooks/useMq/useMq.ts","../src/hooks/useWindowSize/useWindowSize.ts","../src/private/helpers/isClient/isClient.ts","../src/hooks/useOnClickOutside/useOnClickOutside.ts","../src/hooks/usePreviousValue/usePreviousValue.ts","../src/hooks/useToast/useToast.tsx","../src/private/components/Toast/Toast.tsx","../src/components/Ellipsis/Ellipsis.tsx","../src/css/lineClampCss.tsx","../src/private/helpers/getColorScheme/getColorScheme.ts","../src/components/ActionButton/ActionButton.tsx","../src/components/Button/Button.tsx","../src/css/buttonResetCss.tsx","../src/components/Button/buttonStyles.tsx","../src/components/Icon/Icon.tsx","../src/components/Icon/icons/AbTestIcon.tsx","../src/components/Icon/icons/AccessibilityIcon.tsx","../src/components/Icon/icons/ActivityIcon.tsx","../src/components/Icon/icons/AddFolderIcon.tsx","../src/components/Icon/icons/AddLayoutIcon.tsx","../src/components/Icon/icons/AddMediaIcon.tsx","../src/components/Icon/icons/AnnotationLinkIcon.tsx","../src/components/Icon/icons/AppearanceIcon.tsx","../src/components/Icon/icons/ArchiveIcon.tsx","../src/components/Icon/icons/ArrowDownIcon.tsx","../src/components/Icon/icons/ArrowLeftIcon.tsx","../src/components/Icon/icons/ArrowRightIcon.tsx","../src/components/Icon/icons/ArrowUpIcon.tsx","../src/components/Icon/icons/ArrowUpRightIcon.tsx","../src/components/Icon/icons/AsteriskIcon.tsx","../src/components/Icon/icons/AudioDescriptionIcon.tsx","../src/components/Icon/icons/AutoScrollIcon.tsx","../src/components/Icon/icons/BackgroundIcon.tsx","../src/components/Icon/icons/BellIcon.tsx","../src/components/Icon/icons/BoltIcon.tsx","../src/components/Icon/icons/CalendarIcon.tsx","../src/components/Icon/icons/CallToActionIcon.tsx","../src/components/Icon/icons/CameraIcon.tsx","../src/components/Icon/icons/CameraOffIcon.tsx","../src/components/Icon/icons/CaretDownIcon.tsx","../src/components/Icon/icons/CaretDownStrongIcon.tsx","../src/components/Icon/icons/CaretLeftIcon.tsx","../src/components/Icon/icons/CaretLeftStrongIcon.tsx","../src/components/Icon/icons/CaretRightIcon.tsx","../src/components/Icon/icons/CaretRightStrongIcon.tsx","../src/components/Icon/icons/CaretUpIcon.tsx","../src/components/Icon/icons/CaretUpStrongIcon.tsx","../src/components/Icon/icons/ChannelIcon.tsx","../src/components/Icon/icons/ChaptersIcon.tsx","../src/components/Icon/icons/CheckmarkIcon.tsx","../src/components/Icon/icons/CheckmarkCircleIcon.tsx","../src/components/Icon/icons/CheckmarkCircleOutlineIcon.tsx","../src/components/Icon/icons/CheckmarkThreeQuatersCircleIcon.tsx","../src/components/Icon/icons/CircleSlashedIcon.tsx","../src/components/Icon/icons/ClapboardIcon.tsx","../src/components/Icon/icons/CloseIcon.tsx","../src/components/Icon/icons/CloseOctagonIcon.tsx","../src/components/Icon/icons/ClosedCaptionsIcon.tsx","../src/components/Icon/icons/CmdIcon.tsx","../src/components/Icon/icons/CollapseIcon.tsx","../src/components/Icon/icons/CollapseDiagonalIcon.tsx","../src/components/Icon/icons/CollectionIcon.tsx","../src/components/Icon/icons/CommentsIcon.tsx","../src/components/Icon/icons/CompanyIcon.tsx","../src/components/Icon/icons/CompareIcon.tsx","../src/components/Icon/icons/ConnectionOkayIcon.tsx","../src/components/Icon/icons/ConnectionPoorIcon.tsx","../src/components/Icon/icons/ConnectionStrongIcon.tsx","../src/components/Icon/icons/ContentLibraryIcon.tsx","../src/components/Icon/icons/ControlsIcon.tsx","../src/components/Icon/icons/CursorClickIcon.tsx","../src/components/Icon/icons/DeleteIcon.tsx","../src/components/Icon/icons/DesktopIcon.tsx","../src/components/Icon/icons/DocsDevIcon.tsx","../src/components/Icon/icons/DotsHorizontalIcon.tsx","../src/components/Icon/icons/DownloadIcon.tsx","../src/components/Icon/icons/EditTranscriptIcon.tsx","../src/components/Icon/icons/EllipsesVerticalIcon.tsx","../src/components/Icon/icons/EmbedIcon.tsx","../src/components/Icon/icons/EnvelopeIcon.tsx","../src/components/Icon/icons/EnvelopeOpenIcon.tsx","../src/components/Icon/icons/ErrorIcon.tsx","../src/components/Icon/icons/ExpandIcon.tsx","../src/components/Icon/icons/ExpandDiagonalIcon.tsx","../src/components/Icon/icons/ExpandHorizontalIcon.tsx","../src/components/Icon/icons/FastForwardIcon.tsx","../src/components/Icon/icons/FavoriteIcon.tsx","../src/components/Icon/icons/FavoriteOutlineIcon.tsx","../src/components/Icon/icons/FeaturedIcon.tsx","../src/components/Icon/icons/FileTreeIcon.tsx","../src/components/Icon/icons/FillIcon.tsx","../src/components/Icon/icons/FilmStripIcon.tsx","../src/components/Icon/icons/FilterIcon.tsx","../src/components/Icon/icons/FitIcon.tsx","../src/components/Icon/icons/FontsIcon.tsx","../src/components/Icon/icons/FooterIcon.tsx","../src/components/Icon/icons/FullScreenIcon.tsx","../src/components/Icon/icons/GearIcon.tsx","../src/components/Icon/icons/GettingStartedIcon.tsx","../src/components/Icon/icons/GridIcon.tsx","../src/components/Icon/icons/GripDotsVerticalIcon.tsx","../src/components/Icon/icons/HeaderIcon.tsx","../src/components/Icon/icons/HelpCenterIcon.tsx","../src/components/Icon/icons/HideIcon.tsx","../src/components/Icon/icons/HomeIcon.tsx","../src/components/Icon/icons/HourglassIcon.tsx","../src/components/Icon/icons/ImportIcon.tsx","../src/components/Icon/icons/InfoIcon.tsx","../src/components/Icon/icons/IntegrationsIcon.tsx","../src/components/Icon/icons/KeyboardIcon.tsx","../src/components/Icon/icons/LayoutIcon.tsx","../src/components/Icon/icons/LeaveIcon.tsx","../src/components/Icon/icons/LightBulbIcon.tsx","../src/components/Icon/icons/LinkIcon.tsx","../src/components/Icon/icons/ListIcon.tsx","../src/components/Icon/icons/LiveIcon.tsx","../src/components/Icon/icons/LocalizationIcon.tsx","../src/components/Icon/icons/LockIcon.tsx","../src/components/Icon/icons/LogoutIcon.tsx","../src/components/Icon/icons/MaximizeIcon.tsx","../src/components/Icon/icons/MediaIcon.tsx","../src/components/Icon/icons/MegaphoneIcon.tsx","../src/components/Icon/icons/MenuIcon.tsx","../src/components/Icon/icons/MicIcon.tsx","../src/components/Icon/icons/MicOffIcon.tsx","../src/components/Icon/icons/MinimizeIcon.tsx","../src/components/Icon/icons/MinusIcon.tsx","../src/components/Icon/icons/MinusCircleIcon.tsx","../src/components/Icon/icons/MobileIcon.tsx","../src/components/Icon/icons/MoreOptionsIcon.tsx","../src/components/Icon/icons/MoveLeftIcon.tsx","../src/components/Icon/icons/MoveRightIcon.tsx","../src/components/Icon/icons/MusicIcon.tsx","../src/components/Icon/icons/OnAirIcon.tsx","../src/components/Icon/icons/OpenNewIcon.tsx","../src/components/Icon/icons/OverviewIcon.tsx","../src/components/Icon/icons/PageIcon.tsx","../src/components/Icon/icons/PanelLeftIcon.tsx","../src/components/Icon/icons/PanelRightIcon.tsx","../src/components/Icon/icons/PanelUpIcon.tsx","../src/components/Icon/icons/PasswordIcon.tsx","../src/components/Icon/icons/PauseIcon.tsx","../src/components/Icon/icons/PencilIcon.tsx","../src/components/Icon/icons/PeopleIcon.tsx","../src/components/Icon/icons/PinIcon.tsx","../src/components/Icon/icons/PinSlashIcon.tsx","../src/components/Icon/icons/PipIcon.tsx","../src/components/Icon/icons/PlayIcon.tsx","../src/components/Icon/icons/PlayerIcon.tsx","../src/components/Icon/icons/PlaylistIcon.tsx","../src/components/Icon/icons/PlusIcon.tsx","../src/components/Icon/icons/PodcastIcon.tsx","../src/components/Icon/icons/PreviewIcon.tsx","../src/components/Icon/icons/PrivateChatIcon.tsx","../src/components/Icon/icons/PrivateUserSessionsIcon.tsx","../src/components/Icon/icons/ProjectIcon.tsx","../src/components/Icon/icons/ProjectOpenIcon.tsx","../src/components/Icon/icons/PropertiesIcon.tsx","../src/components/Icon/icons/QuestionMarkIcon.tsx","../src/components/Icon/icons/ReactIcon.tsx","../src/components/Icon/icons/RecordIcon.tsx","../src/components/Icon/icons/RecordGroupIcon.tsx","../src/components/Icon/icons/RedoIcon.tsx","../src/components/Icon/icons/RefreshIcon.tsx","../src/components/Icon/icons/ReplaceIcon.tsx","../src/components/Icon/icons/ReplyIcon.tsx","../src/components/Icon/icons/RequestVideoIcon.tsx","../src/components/Icon/icons/RevertToOriginalIcon.tsx","../src/components/Icon/icons/RewindIcon.tsx","../src/components/Icon/icons/SaveIcon.tsx","../src/components/Icon/icons/SaveAsCopyIcon.tsx","../src/components/Icon/icons/ScissorsIcon.tsx","../src/components/Icon/icons/ScreenshareOffIcon.tsx","../src/components/Icon/icons/ScreenshareOnIcon.tsx","../src/components/Icon/icons/SearchIcon.tsx","../src/components/Icon/icons/SendIcon.tsx","../src/components/Icon/icons/ShapesIcon.tsx","../src/components/Icon/icons/ShareIcon.tsx","../src/components/Icon/icons/SharingPermissionsIcon.tsx","../src/components/Icon/icons/SimulcastIcon.tsx","../src/components/Icon/icons/SortIcon.tsx","../src/components/Icon/icons/SparkleIcon.tsx","../src/components/Icon/icons/SpeedIcon.tsx","../src/components/Icon/icons/SpinnerIcon.tsx","../src/components/Icon/icons/StatsIcon.tsx","../src/components/Icon/icons/SwitchAccountsIcon.tsx","../src/components/Icon/icons/TagIcon.tsx","../src/components/Icon/icons/TeleprompterIcon.tsx","../src/components/Icon/icons/TextSizeIcon.tsx","../src/components/Icon/icons/ThumbnailIcon.tsx","../src/components/Icon/icons/ThumbsDownIcon.tsx","../src/components/Icon/icons/ThumbsUpIcon.tsx","../src/components/Icon/icons/TimelineVerticalIcon.tsx","../src/components/Icon/icons/TokenIcon.tsx","../src/components/Icon/icons/TranscriptIcon.tsx","../src/components/Icon/icons/TransitionsIcon.tsx","../src/components/Icon/icons/TransparencyIcon.tsx","../src/components/Icon/icons/TrendsIcon.tsx","../src/components/Icon/icons/TrialUnlockClockIcon.tsx","../src/components/Icon/icons/TrimIcon.tsx","../src/components/Icon/icons/TurnstileIcon.tsx","../src/components/Icon/icons/UndoIcon.tsx","../src/components/Icon/icons/UnlockIcon.tsx","../src/components/Icon/icons/UploadIcon.tsx","../src/components/Icon/icons/UsersPermissionsIcon.tsx","../src/components/Icon/icons/ViewStreamIcon.tsx","../src/components/Icon/icons/VolumeIcon.tsx","../src/components/Icon/icons/VolumeOffIcon.tsx","../src/components/Icon/icons/VolumeUpIcon.tsx","../src/components/Icon/icons/VolumeXIcon.tsx","../src/components/Icon/icons/WandIcon.tsx","../src/components/Icon/icons/WaveformIcon.tsx","../src/components/Icon/icons/WebhookIcon.tsx","../src/components/Icon/icons/ZoomInIcon.tsx","../src/components/Icon/icons/ZoomOutIcon.tsx","../src/components/Icon/iconMap.ts","../src/private/hooks/useResponsiveProp/useResponsiveProp.ts","../src/components/Link/Link.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Avatar/formatNameForDisplay.tsx","../src/components/Image/Image.tsx","../src/components/ColorSchemeWrapper/ColorSchemeWrapper.tsx","../src/components/Badge/Badge.tsx","../src/components/Banner/Banner.tsx","../src/components/Box/Box.tsx","../src/private/helpers/makePolymorphic/makePolymorphic.tsx","../src/components/Heading/Heading.tsx","../src/private/helpers/applyMaxCharsToChildren/applyMaxCharsToChildren.ts","../src/private/helpers/truncateString/truncateString.ts","../src/components/Text/Text.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/IconButton/IconButton.tsx","../src/components/Banner/BannerImage.tsx","../src/components/Breadcrumbs/Breadcrumbs.tsx","../src/components/Breadcrumbs/Breadcrumb.tsx","../src/components/Card/Card.tsx","../src/components/Center/Center.tsx","../src/components/Checkbox/Checkbox.tsx","../src/private/components/FormControlLabel/FormControlLabel.tsx","../src/components/ScreenReaderOnly/ScreenReaderOnly.tsx","../src/private/components/FormControlLabel/FormControlLabelDescription.tsx","../src/components/FormGroup/CheckboxGroup.tsx","../src/components/FormGroup/FormGroup.tsx","../src/components/Stack/Stack.tsx","../src/components/Form/Form.tsx","../src/components/Form/serializeFormData.tsx","../src/components/ClickRegion/ClickRegion.tsx","../src/components/Collapsible/Collapsible.tsx","../src/components/Collapsible/CollapsibleTrigger.tsx","../src/components/Collapsible/CollapsibleTriggerIcon.tsx","../src/components/Collapsible/CollapsibleContent.tsx","../src/components/ColorPicker/ColorGrid.tsx","../src/components/ColorPicker/ColorPickerContext.tsx","../src/components/ColorPicker/color-conversion-utils.ts","../src/components/ColorPicker/transitionBetweenColors.ts","../src/components/ColorPicker/contrast-utils.ts","../src/components/ColorPicker/consts.ts","../src/components/Label/Label.tsx","../src/components/ColorPicker/ColorGridOption.tsx","../src/components/ColorPicker/ColorSwatch.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/ColorPicker/ColorList.tsx","../src/components/ColorPicker/ColorListGroup.tsx","../src/components/ColorPicker/ColorListOption.tsx","../src/components/ColorPicker/ColorNameOrHexCode.tsx","../src/components/ColorPicker/ColorPicker.tsx","../src/components/ColorPicker/ColorPickerPopoverContent.tsx","../src/components/ColorPicker/ColorPickerSection.tsx","../src/components/ColorPicker/ColorPickerTrigger.tsx","../src/components/ColorPicker/ValueSwatch.tsx","../src/components/ColorPicker/ValueNameOrHexCode.tsx","../src/components/ColorPicker/ContrastIndicator.tsx","../src/components/ColorPicker/ContrastEnforcerSwitch.tsx","../src/components/Switch/Switch.tsx","../src/components/ColorPicker/ContrastPreview.tsx","../src/components/ColorPicker/ContrastControls.tsx","../src/components/ColorPicker/HexColorInput.tsx","../src/components/Input/Input.tsx","../src/css/inputCss.ts","../src/components/ColorPicker/HueSlider.tsx","../src/components/ColorPicker/HSVHueCanvas.tsx","../src/components/ColorPicker/SaturationAndValuePicker.tsx","../src/components/ColorPicker/HSVSaturationValueCanvas.tsx","../src/components/ColorPicker/canvas-utils.ts","../src/components/Combobox/Combobox.tsx","../src/components/Tag/Tag.tsx","../src/private/helpers/getTypographicStyles/getTypographicStyles.ts","../src/components/ContextMenu/ContextMenu.tsx","../src/components/Menu/Menu.tsx","../src/components/Menu/MenuContext.tsx","../src/components/Menu/MenuLabel.tsx","../src/components/Menu/SubMenu.tsx","../src/components/Menu/MenuItemButton.tsx","../src/components/Menu/MenuItemLabelDescription.tsx","../src/components/Menu/MenuItem.tsx","../src/components/Menu/MenuRadioGroup.tsx","../src/components/Menu/RadioMenuItem.tsx","../src/components/Menu/CheckboxMenuItem.tsx","../src/components/Menu/FilterMenu.tsx","../src/components/DataCards/DataCard.tsx","../src/components/DataCards/DataCards.tsx","../src/components/DataCards/DataCardTrend.tsx","../src/components/DataCards/DataCardHoverArrow.tsx","../src/components/DataList/DataList.tsx","../src/components/DataList/DataListItem.tsx","../src/components/DataList/DataListItemLabel.tsx","../src/components/DataList/DataListItemValue.tsx","../src/components/Divider/Divider.tsx","../src/components/EditableHeading/EditableHeading.tsx","../src/components/EditableText/EditableTextDisplay.tsx","../src/components/EditableText/EditableTextRoot.tsx","../src/components/EditableText/EditableTextInput.tsx","../src/components/EditableText/EditableTextLabel.tsx","../src/components/EditableText/EditableText.tsx","../src/components/EditableText/EditableTextSubmitButton.tsx","../src/components/EditableText/EditableTextCancelButton.tsx","../src/components/EditableText/EditableTextTrigger.tsx","../src/components/Form/useFormState.tsx","../src/components/Form/FormErrorSummary.tsx","../src/components/FormField/FormField.tsx","../src/components/FormGroup/RadioGroup.tsx","../src/components/Grid/Grid.tsx","../src/components/InputClickToCopy/InputClickToCopy.tsx","../src/components/InputPassword/InputPassword.tsx","../src/components/KeyboardShortcut/KeyboardShortcut.tsx","../src/components/List/List.tsx","../src/components/List/ListItem.tsx","../src/components/Mark/Mark.tsx","../src/components/Modal/Modal.tsx","../src/components/Modal/ModalHeader.tsx","../src/components/Modal/ModalCloseButton.tsx","../src/components/Modal/ModalContent.tsx","../src/private/hooks/useFocusRestore/useFocusRestore.ts","../src/components/Modal/ModalOverlay.tsx","../src/components/Modal/ModalCallouts.tsx","../src/components/Popover/Popover.tsx","../src/private/helpers/getControls/getControlProps.tsx","../src/components/Popover/PopoverArrow.tsx","../src/components/ProgressBar/ProgressBar.tsx","../src/components/Radio/Radio.tsx","../src/components/RadioCard/RadioCard.tsx","../src/components/RadioCard/RadioCardRoot.tsx","../src/components/RadioCard/RadioCardDefaultLayout.tsx","../src/components/RadioCard/RadioCardIndicator.tsx","../src/components/RadioCard/RadioCardChildrenContainer.tsx","../src/components/RadioCard/RadioCardImage.tsx","../src/components/ScrollArea/ScrollArea.tsx","../src/components/SegmentedControl/SegmentedControl.tsx","../src/components/SegmentedControl/useSelectedItemStyle.tsx","../src/components/SegmentedControl/SelectedItemIndicator.tsx","../src/components/SegmentedControl/useSegmentedControlValue.tsx","../src/components/SegmentedControl/SegmentedControlItem.tsx","../src/components/Select/Select.tsx","../src/components/Select/SelectOption.tsx","../src/components/Select/SelectOptionGroup.tsx","../src/components/Slider/Slider.tsx","../src/components/Table/Table.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableSectionContext.ts","../src/components/Table/TableCell.tsx","../src/components/Table/TableFoot.tsx","../src/components/Table/TableHead.tsx","../src/components/Table/TableRow.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Tabs/useTabsValue.tsx","../src/components/Tabs/TabsContent.tsx","../src/components/Tabs/TabsList.tsx","../src/components/Tabs/SelectedTabIndicator.tsx","../src/components/Tabs/TabsSelectedItemIndicatorDiv.tsx","../src/components/Tabs/TabsTrigger.tsx","../src/components/Tabs/StyledRadixTabsTrigger.tsx","../src/components/Thumbnail/ThumbnailBadge.tsx","../src/components/Thumbnail/Thumbnail.tsx","../src/private/helpers/getBackgroundGradient/getBackgroundGradient.ts","../src/components/Thumbnail/ThumbnailStoryboardViewer.tsx","../src/components/ThumbnailCollage/ThumbnailCollage.tsx","../src/components/WistiaLogo/WistiaLogo.tsx","../src/components/SplitButton/SplitButton.tsx","../src/components/CustomizableThemeWrapper/CustomizableThemeWrapper.tsx"],"sourcesContent":["// providers\nexport * from './providers/UIProvider';\n\n// helpers\nexport * from './helpers/copyToClipboard';\nexport * from './helpers/dateTime';\nexport * from './helpers/mergeRefs';\nexport * from './helpers/mq';\n\n// hooks\nexport * from './hooks/useAriaLive';\nexport * from './hooks/useBoolean';\nexport * from './hooks/useClipboard';\nexport * from './hooks/useElementObserver';\nexport * from './hooks/useFilePicker';\nexport * from './hooks/useFocusTrap';\nexport * from './hooks/useForceUpdate';\nexport * from './hooks/useIsHovered';\nexport * from './hooks/useKey';\nexport * from './hooks/useLocalStorage';\nexport * from './hooks/useLockBodyScroll';\nexport * from './hooks/useMq';\nexport * from './hooks/useOnClickOutside';\nexport * from './hooks/usePreviousValue';\nexport * from './hooks/useToast';\nexport * from './hooks/useWindowSize';\n\n// components\nexport * from './components/ActionButton';\nexport * from './components/Avatar';\nexport * from './components/Badge';\nexport * from './components/Banner';\nexport * from './components/Box';\nexport * from './components/Breadcrumbs';\nexport * from './components/Button';\nexport * from './components/ButtonGroup';\nexport * from './components/Card';\nexport * from './components/Center';\nexport * from './components/Checkbox';\nexport * from './components/ClickRegion';\nexport * from './components/Collapsible';\nexport * from './components/ColorPicker';\nexport * from './components/ColorSchemeWrapper';\nexport * from './components/Combobox';\nexport * from './components/ContextMenu';\nexport * from './components/DataCards';\nexport * from './components/DataList';\nexport * from './components/Divider';\nexport * from './components/EditableHeading';\nexport * from './components/EditableText';\nexport * from './components/Ellipsis';\nexport * from './components/Form';\nexport * from './components/FormField';\nexport * from './components/FormGroup';\nexport * from './components/Grid';\nexport * from './components/Heading';\nexport * from './components/Icon';\nexport * from './components/IconButton';\nexport * from './components/Image';\nexport * from './components/Input';\nexport * from './components/InputClickToCopy';\nexport * from './components/InputPassword';\nexport * from './components/KeyboardShortcut';\nexport * from './components/Label';\nexport * from './components/Link';\nexport * from './components/List';\nexport * from './components/Mark';\nexport * from './components/Menu';\nexport * from './components/Modal';\nexport * from './components/Popover';\nexport * from './components/ProgressBar';\nexport * from './components/Radio';\nexport * from './components/RadioCard';\nexport * from './components/ScreenReaderOnly';\nexport * from './components/ScrollArea';\nexport * from './components/SegmentedControl';\nexport * from './components/Select';\nexport * from './components/Slider';\nexport * from './components/Stack';\nexport * from './components/Switch';\nexport * from './components/Table';\nexport * from './components/Tabs';\nexport * from './components/Tag';\nexport * from './components/Text';\nexport * from './components/Thumbnail';\nexport * from './components/ThumbnailCollage';\nexport * from './components/Tooltip';\nexport * from './components/WistiaLogo';\nexport * from './components/SplitButton';\nexport * from './components/CustomizableThemeWrapper';\n","import type { ReactNode } from 'react';\nimport { Provider as TooltipProvider } from '@radix-ui/react-tooltip';\nimport { createContext, useContext } from 'react';\nimport { GlobalStyle } from '../../css/GlobalStyle';\nimport { AriaLiveProvider } from '../AriaLiveProvider';\nimport { ToastProvider } from './ToastProvider';\n\nconst UIProviderNestingContext = createContext<boolean>(false);\n\nexport type UIProviderProps = {\n children: ReactNode;\n};\n\nexport const UIProvider = ({ children }: UIProviderProps) => {\n const isNested = useContext(UIProviderNestingContext);\n\n // we don't want to have nested UIProviders so if we are already nested, just return children\n if (isNested) {\n return <>{children}</>; // eslint-disable-line react/jsx-no-useless-fragment\n }\n\n return (\n <UIProviderNestingContext.Provider value={true}>\n <AriaLiveProvider>\n <TooltipProvider>\n <GlobalStyle />\n {children}\n <ToastProvider />\n </TooltipProvider>\n </AriaLiveProvider>\n </UIProviderNestingContext.Provider>\n );\n};\n","import { createGlobalStyle } from 'styled-components';\nimport { globalStyleAdjustmentsCss } from './globalStyleAdjustmentsCss';\nimport { designTokens } from './designTokens';\nimport { clickRegionGlobalStyles } from '../components/ClickRegion/globalStyles';\n\nexport const GlobalStyle = createGlobalStyle`\n ${globalStyleAdjustmentsCss}\n ${designTokens}\n ${clickRegionGlobalStyles}\n`;\n","import { css } from 'styled-components';\n\n// much of this css originated from https://piccalil.li/blog/a-more-modern-css-reset/\n// but has been adjusted to suit our needs\nexport const globalStyleAdjustmentsCss = css`\n /**\n * 1. Change from 'content-box' so that 'width' calculations are unaffected by 'padding' or 'border'\n See: https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/\n * 2. Ensure the iOS tap highlight is transparent\n * 3. Prevent font size inflation\n * 4. Fix for 100vh in mobile WebKit\n * See: https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/\n */\n html {\n box-sizing: border-box; /* 1 */\n -webkit-tap-highlight-color: rgb(0 0 0 / 0%); /* 2 */\n -moz-text-size-adjust: none; /* 3 */\n -webkit-text-size-adjust: none;\n /* stylelint-disable-next-line plugin/use-baseline */\n text-size-adjust: none;\n height: -webkit-fill-available; /* 4 */\n }\n\n *,\n *::before,\n *::after {\n box-sizing: inherit; /* 1 */\n }\n\n /**\n * 1. Without this fonts are too heavy weight in OS X Firefox\n * 2. Design decision\n 3. See: https://allthingssmitty.com/2020/05/11/css-fix-for-100vh-in-mobile-webkit/\n */\n body {\n -moz-osx-font-smoothing: grayscale; /* 1 */\n -webkit-font-smoothing: antialiased; /* 2 */\n line-height: 1.5; /* 2 */\n min-height: 100vh; /* 3 */\n min-height: -webkit-fill-available; /* 3 */\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body,\n h1,\n h2,\n h3,\n h4,\n p,\n figure,\n blockquote,\n dl,\n dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1,\n h2,\n h3,\n h4,\n button,\n input,\n label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n\n /* h1,\n h2,\n h3,\n h4 {\n text-wrap: balance;\n } */\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input,\n button,\n textarea,\n select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n &:target {\n scroll-margin-block: 5ex;\n }\n\n dl {\n margin: 0;\n }\n\n /* Remove all animations and transitions for people that prefer not to see them */\n @media (prefers-reduced-motion: reduce) {\n html:focus-within {\n scroll-behavior: auto;\n }\n\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }\n`;\n","import { css } from 'styled-components';\nimport { lightGlobalTokens, darkGlobalTokens } from './colorGlobal';\nimport { colorAliasTokens } from './colorAlias';\nimport { borderRadiusTokens } from './borderRadius';\nimport { spacingTokens } from './spacing';\nimport { typographyTokens } from './typography';\nimport { zIndexTokens } from './zIndex';\nimport { elevationTokens } from './elevation';\nimport { motionTokens } from './motion';\n\nconst colorTokens = css`\n ${lightGlobalTokens}\n /* Dark mode is disabled until we have a more robust plan for supporting it */\n\n /* @media (prefers-color-scheme: dark) {\n ${darkGlobalTokens}\n } */\n ${colorAliasTokens}\n`;\n\nexport const designTokens = css`\n :root,\n [data-wui-theme='true'] {\n ${borderRadiusTokens}\n ${colorTokens}\n ${elevationTokens}\n ${spacingTokens}\n ${typographyTokens}\n ${zIndexTokens}\n ${motionTokens}\n }\n`;\n","import { css } from 'styled-components';\n\nexport const lightGlobalTokens = css`\n --wui-app-background: #ffffff;\n --wui-blue-surface: #f4f8ffcc;\n --wui-blue-contrast: #ffffff;\n --wui-purple-surface: #fdf5ffcc;\n --wui-purple-contrast: #ffffff;\n --wui-green-surface: #f3faf1cc;\n --wui-green-contrast: #ffffff;\n --wui-pink-surface: #fff5f9cc;\n --wui-pink-contrast: #ffffff;\n --wui-red-surface: #fff5f5cc;\n --wui-red-contrast: #ffffff;\n --wui-yellow-surface: #fafbe5cc;\n --wui-yellow-contrast: #22230b;\n --wui-orange-surface: #fff5f3cc;\n --wui-orange-contrast: #ffffff;\n --wui-error-surface: #fff5f5cc;\n --wui-error-contrast: #ffffff;\n --wui-success-surface: #f1faf5cc;\n --wui-success-contrast: #ffffff;\n --wui-warning-surface: #fefbe6cc;\n --wui-warning-contrast: #262209;\n --wui-gray-surface: #ffffffcc;\n --wui-gray-contrast: #ffffff;\n --wui-blue-1: #fdfdfe;\n --wui-blue-2: #f6f9ff;\n --wui-blue-3: #ecf2ff;\n --wui-blue-4: #ddeaff;\n --wui-blue-5: #cddfff;\n --wui-blue-6: #b8d1ff;\n --wui-blue-7: #a1beff;\n --wui-blue-8: #81a4fe;\n --wui-blue-9: #2949e5;\n --wui-blue-10: #1f36d3;\n --wui-blue-11: #3154dc;\n --wui-blue-12: #192b65;\n --wui-blue-alpha-1: #00008003;\n --wui-blue-alpha-2: #0055ff0a;\n --wui-blue-alpha-3: #0051ff12;\n --wui-blue-alpha-4: #0062ff21;\n --wui-blue-alpha-5: #005cff33;\n --wui-blue-alpha-6: #005aff47;\n --wui-blue-alpha-7: #004fff5e;\n --wui-blue-alpha-8: #0047fd7d;\n --wui-blue-alpha-9: #0026e0d6;\n --wui-blue-alpha-10: #001acde0;\n --wui-blue-alpha-11: #002bd4cf;\n --wui-blue-alpha-12: #001454e5;\n --wui-purple-1: #fefcff;\n --wui-purple-2: #fdf7ff;\n --wui-purple-3: #fbeaff;\n --wui-purple-4: #f7ddff;\n --wui-purple-5: #f2ceff;\n --wui-purple-6: #eabdff;\n --wui-purple-7: #e0a5fc;\n --wui-purple-8: #d285f7;\n --wui-purple-9: #ac12e0;\n --wui-purple-10: #9a09c9;\n --wui-purple-11: #9b0bca;\n --wui-purple-12: #550072;\n --wui-purple-alpha-1: #aa00ff03;\n --wui-purple-alpha-2: #c000ff08;\n --wui-purple-alpha-3: #cf00ff14;\n --wui-purple-alpha-4: #c300ff21;\n --wui-purple-alpha-5: #bc00ff30;\n --wui-purple-alpha-6: #ae00ff42;\n --wui-purple-alpha-7: #a801f759;\n --wui-purple-alpha-8: #a101ef7a;\n --wui-purple-alpha-9: #a600deed;\n --wui-purple-alpha-10: #9600c7f5;\n --wui-purple-alpha-11: #9700c8f5;\n --wui-purple-alpha-12: #550072;\n --wui-green-1: #fbfefa;\n --wui-green-2: #f5fbf4;\n --wui-green-3: #e7f8e5;\n --wui-green-4: #d8f2d4;\n --wui-green-5: #c6ebc0;\n --wui-green-6: #afe0a6;\n --wui-green-7: #8fd185;\n --wui-green-8: #5fbd51;\n --wui-green-9: #268713;\n --wui-green-10: #117900;\n --wui-green-11: #1e8106;\n --wui-green-12: #1e3d19;\n --wui-green-alpha-1: #33cc0005;\n --wui-green-alpha-2: #18a3000b;\n --wui-green-alpha-3: #14bb001a;\n --wui-green-alpha-4: #18b2012b;\n --wui-green-alpha-5: #19af003f;\n --wui-green-alpha-6: #1aa70059;\n --wui-green-alpha-7: #159f017a;\n --wui-green-alpha-8: #189f00b0;\n --wui-green-alpha-9: #159f00ae;\n --wui-green-alpha-10: #157d00ec;\n --wui-green-alpha-11: #117900;\n --wui-green-alpha-12: #197e00f9;\n --wui-pink-1: #fffcfd;\n --wui-pink-2: #fff7fa;\n --wui-pink-3: #ffe8f3;\n --wui-pink-4: #ffdaeb;\n --wui-pink-5: #fdcbe2;\n --wui-pink-6: #f7bcd8;\n --wui-pink-7: #efa8ca;\n --wui-pink-8: #e68eba;\n --wui-pink-9: #ff40b3;\n --wui-pink-10: #f12fa7;\n --wui-pink-11: #cd0089;\n --wui-pink-12: #680445;\n --wui-pink-alpha-1: #ff005503;\n --wui-pink-alpha-2: #ff006008;\n --wui-pink-alpha-3: #ff007a17;\n --wui-pink-alpha-4: #ff007626;\n --wui-pink-alpha-5: #f6007133;\n --wui-pink-alpha-6: #e1006b42;\n --wui-pink-alpha-7: #d1006457;\n --wui-pink-alpha-8: #c7006470;\n --wui-pink-alpha-9: #ff009abf;\n --wui-pink-alpha-10: #ee0093d1;\n --wui-pink-alpha-11: #cd0089;\n --wui-pink-alpha-12: #660042fa;\n --wui-red-1: #fffcfc;\n --wui-red-2: #fff7f7;\n --wui-red-3: #ffe9e9;\n --wui-red-4: #ffd9d9;\n --wui-red-5: #ffcaca;\n --wui-red-6: #ffbaba;\n --wui-red-7: #fca5a6;\n --wui-red-8: #f5898c;\n --wui-red-9: #ff2b51;\n --wui-red-10: #f10845;\n --wui-red-11: #db0035;\n --wui-red-12: #6d021a;\n --wui-red-alpha-1: #ff000003;\n --wui-red-alpha-2: #ff000008;\n --wui-red-alpha-3: #ff000017;\n --wui-red-alpha-4: #ff000026;\n --wui-red-alpha-5: #ff000036;\n --wui-red-alpha-6: #ff000045;\n --wui-red-alpha-7: #f7010359;\n --wui-red-alpha-8: #ea000775;\n --wui-red-alpha-9: #ff002ed4;\n --wui-red-alpha-10: #f1003ff7;\n --wui-red-alpha-11: #db0035;\n --wui-red-alpha-12: #6c0018fc;\n --wui-yellow-1: #fdfdf8;\n --wui-yellow-2: #fbfcea;\n --wui-yellow-3: #f6fbb8;\n --wui-yellow-4: #f0f491;\n --wui-yellow-5: #e7eb6d;\n --wui-yellow-6: #d8dd5d;\n --wui-yellow-7: #c8cc52;\n --wui-yellow-8: #b3b600;\n --wui-yellow-9: #bcbf19;\n --wui-yellow-10: #b1b400;\n --wui-yellow-11: #7a7b00;\n --wui-yellow-12: #3e3f14;\n --wui-yellow-alpha-1: #b7b70008;\n --wui-yellow-alpha-2: #cfdb0014;\n --wui-yellow-alpha-3: #dff10047;\n --wui-yellow-alpha-4: #dde6006e;\n --wui-yellow-alpha-5: #d5dc0091;\n --wui-yellow-alpha-6: #c2ca00a3;\n --wui-yellow-alpha-7: #aeb400ad;\n --wui-yellow-alpha-8: #b3b600;\n --wui-yellow-alpha-9: #b5b800e5;\n --wui-yellow-alpha-10: #b1b400;\n --wui-yellow-alpha-11: #7a7b00;\n --wui-yellow-alpha-12: #2e2f00eb;\n --wui-orange-1: #fffcfb;\n --wui-orange-2: #fff7f5;\n --wui-orange-3: #ffebe6;\n --wui-orange-4: #ffdbce;\n --wui-orange-5: #fcbfcb;\n --wui-orange-6: #ffbdaa;\n --wui-orange-7: #f4aa95;\n --wui-orange-8: #ea9178;\n --wui-orange-9: #d1451a;\n --wui-orange-10: #c23600;\n --wui-orange-11: #ce4216;\n --wui-orange-12: #592b1e;\n --wui-orange-alpha-1: #ff400005;\n --wui-orange-alpha-2: #ff33000a;\n --wui-orange-alpha-3: #ff33001a;\n --wui-orange-alpha-4: #ff440030;\n --wui-orange-alpha-5: #ff400045;\n --wui-orange-alpha-6: #ff390054;\n --wui-orange-alpha-7: #e533016b;\n --wui-orange-alpha-8: #d8300087;\n --wui-orange-alpha-9: #cc3000e5;\n --wui-orange-alpha-10: #c23600;\n --wui-orange-alpha-11: #c93000e8;\n --wui-orange-alpha-12: #430f00e0;\n --wui-error-1: #fffcfc;\n --wui-error-2: #fff7f7;\n --wui-error-3: #ffebea;\n --wui-error-4: #ffdcd9;\n --wui-error-5: #ffcdca;\n --wui-error-6: #febdb9;\n --wui-error-7: #f5a9a5;\n --wui-error-8: #eb8f8b;\n --wui-error-9: #e5484d;\n --wui-error-10: #d73840;\n --wui-error-11: #cc2e39;\n --wui-error-12: #64181b;\n --wui-error-alpha-1: #ff000003;\n --wui-error-alpha-2: #ff000008;\n --wui-error-alpha-3: #ff0d0014;\n --wui-error-alpha-4: #ff150026;\n --wui-error-alpha-5: #ff0f0036;\n --wui-error-alpha-6: #fc0f0045;\n --wui-error-alpha-7: #e30c0159;\n --wui-error-alpha-8: #d4090073;\n --wui-error-alpha-9: #db0007b8;\n --wui-error-alpha-10: #cc000ac7;\n --wui-error-alpha-11: #c1000ed1;\n --wui-error-alpha-12: #540003e8;\n --wui-success-1: #fbfefc;\n --wui-success-2: #f4fbf7;\n --wui-success-3: #e5f6eb;\n --wui-success-4: #d6f1df;\n --wui-success-5: #c4e8d1;\n --wui-success-6: #adddc0;\n --wui-success-7: #8fcea8;\n --wui-success-8: #60b887;\n --wui-success-9: #30a46c;\n --wui-success-10: #289662;\n --wui-success-11: #00814c;\n --wui-success-12: #1d3b2a;\n --wui-success-alpha-1: #00c04005;\n --wui-success-alpha-2: #00a3460a;\n --wui-success-alpha-3: #00a73b1a;\n --wui-success-alpha-4: #00a83829;\n --wui-success-alpha-5: #019c393b;\n --wui-success-alpha-6: #00963c52;\n --wui-success-alpha-7: #00903970;\n --wui-success-alpha-8: #008d3f9e;\n --wui-success-alpha-9: #008f4acf;\n --wui-success-alpha-10: #008345d6;\n --wui-success-alpha-11: #00814c;\n --wui-success-alpha-12: #00220fe3;\n --wui-warning-1: #fdfdfa;\n --wui-warning-2: #fefceb;\n --wui-warning-3: #fff9bf;\n --wui-warning-4: #fef29f;\n --wui-warning-5: #f8e981;\n --wui-warning-6: #e9da79;\n --wui-warning-7: #d8cb75;\n --wui-warning-8: #c4b54f;\n --wui-warning-9: #ffe62a;\n --wui-warning-10: #f3dd45;\n --wui-warning-11: #897a00;\n --wui-warning-12: #413d23;\n --wui-warning-alpha-1: #99990005;\n --wui-warning-alpha-2: #f3d90014;\n --wui-warning-alpha-3: #ffe80040;\n --wui-warning-alpha-4: #fddd0061;\n --wui-warning-alpha-5: #f1d3007d;\n --wui-warning-alpha-6: #d6b90087;\n --wui-warning-alpha-7: #b79f008a;\n --wui-warning-alpha-8: #aa9400b0;\n --wui-warning-alpha-9: #ffe100d6;\n --wui-warning-alpha-10: #efd100ba;\n --wui-warning-alpha-11: #897a00;\n --wui-warning-alpha-12: #231e00db;\n --wui-gray-1: #fcfcfd;\n --wui-gray-2: #f9f9fb;\n --wui-gray-3: #f0f0f3;\n --wui-gray-4: #e8e8ec;\n --wui-gray-5: #e0e0e5;\n --wui-gray-6: #d9d9de;\n --wui-gray-7: #ceced5;\n --wui-gray-8: #bbbbc4;\n --wui-gray-9: #8d8d95;\n --wui-gray-10: #82828a;\n --wui-gray-11: #64646a;\n --wui-gray-12: #202024;\n --wui-gray-alpha-1: #00005503;\n --wui-gray-alpha-2: #00005505;\n --wui-gray-alpha-3: #0000330f;\n --wui-gray-alpha-4: #00002d17;\n --wui-gray-alpha-5: #00002a1f;\n --wui-gray-alpha-6: #00002226;\n --wui-gray-alpha-7: #00002530;\n --wui-gray-alpha-8: #00002245;\n --wui-gray-alpha-9: #00001273;\n --wui-gray-alpha-10: #0000117d;\n --wui-gray-alpha-11: #00000a9c;\n --wui-gray-alpha-12: #000005de;\n --wui-vendor-hubspot-1: #fefcfb;\n --wui-vendor-hubspot-2: #fff5f2;\n --wui-vendor-hubspot-3: #ffe9e2;\n --wui-vendor-hubspot-4: #ffd7c9;\n --wui-vendor-hubspot-5: #ffc8b7;\n --wui-vendor-hubspot-6: #ffb8a3;\n --wui-vendor-hubspot-7: #ffa48d;\n --wui-vendor-hubspot-8: #f68a70;\n --wui-vendor-hubspot-9: #ff5c36;\n --wui-vendor-hubspot-10: #f24d25;\n --wui-vendor-hubspot-11: #d93a0f;\n --wui-vendor-hubspot-12: #5b2a1e;\n --wui-vendor-hubspot-surface: #fff3efcc;\n --wui-vendor-hubspot-contrast: #ffffff;\n --wui-vendor-marketo-1: #fdfdff;\n --wui-vendor-marketo-2: #f7f8ff;\n --wui-vendor-marketo-3: #eff2ff;\n --wui-vendor-marketo-4: #e3e8ff;\n --wui-vendor-marketo-5: #d5ddff;\n --wui-vendor-marketo-6: #c5cfff;\n --wui-vendor-marketo-7: #b0bcfa;\n --wui-vendor-marketo-8: #93a0f2;\n --wui-vendor-marketo-9: #4c50cc;\n --wui-vendor-marketo-10: #4040bb;\n --wui-vendor-marketo-11: #4f55c7;\n --wui-vendor-marketo-12: #252a62;\n --wui-vendor-marketo-surface: #f5f6ffcc;\n --wui-vendor-marketo-contrast: #ffffff;\n --wui-vendor-pardot-1: #fafdff;\n --wui-vendor-pardot-2: #f3fafe;\n --wui-vendor-pardot-3: #e1f5ff;\n --wui-vendor-pardot-4: #ceeeff;\n --wui-vendor-pardot-5: #bae5ff;\n --wui-vendor-pardot-6: #a4d9fa;\n --wui-vendor-pardot-7: #85c9f1;\n --wui-vendor-pardot-8: #4fb3e8;\n --wui-vendor-pardot-9: #00a1e0;\n --wui-vendor-pardot-10: #0094cf;\n --wui-vendor-pardot-11: #0079b5;\n --wui-vendor-pardot-12: #0c3a51;\n --wui-vendor-pardot-surface: #f0f9fecc;\n --wui-vendor-pardot-contrast: #ffffff;\n`;\n\nexport const darkGlobalTokens = css`\n --wui-app-background: #101629;\n --wui-blue-surface: #141c2d80;\n --wui-blue-contrast: #ffffff;\n --wui-purple-surface: #34132980;\n --wui-purple-contrast: #ffffff;\n --wui-green-surface: #1c240280;\n --wui-green-contrast: #ffffff;\n --wui-pink-surface: #3c0f1080;\n --wui-pink-contrast: #ffffff;\n --wui-red-surface: #38160480;\n --wui-red-contrast: #ffffff;\n --wui-yellow-surface: #28220080;\n --wui-yellow-contrast: #22230b;\n --wui-orange-surface: #321a0480;\n --wui-orange-contrast: #ffffff;\n --wui-error-surface: #36160280;\n --wui-error-contrast: #ffffff;\n --wui-success-surface: #1a260880;\n --wui-success-contrast: #ffffff;\n --wui-warning-surface: #2c240080;\n --wui-warning-contrast: #262209;\n --wui-gray-surface: #0000000d;\n --wui-gray-contrast: #ffffff;\n --wui-blue-1: #111725;\n --wui-blue-2: #12192b;\n --wui-blue-3: #152452;\n --wui-blue-4: #192c6d;\n --wui-blue-5: #203681;\n --wui-blue-6: #284191;\n --wui-blue-7: #314da7;\n --wui-blue-8: #395ac3;\n --wui-blue-9: #2949e5;\n --wui-blue-10: #1f36d3;\n --wui-blue-11: #90b3ff;\n --wui-blue-12: #d2e1ff;\n --wui-blue-alpha-1: #90960003;\n --wui-blue-alpha-2: #90d6a905;\n --wui-blue-alpha-3: #2b5fff30;\n --wui-blue-alpha-4: #2c5bfd52;\n --wui-blue-alpha-5: #3764ff69;\n --wui-blue-alpha-6: #426fff7d;\n --wui-blue-alpha-7: #4773fe96;\n --wui-blue-alpha-8: #4975ffb8;\n --wui-blue-alpha-9: #2c4ffee0;\n --wui-blue-alpha-10: #233fffcc;\n --wui-blue-alpha-11: #90b3ff;\n --wui-blue-alpha-12: #d2e1ff;\n --wui-purple-1: #1c1320;\n --wui-purple-2: #221429;\n --wui-purple-3: #361544;\n --wui-purple-4: #46135b;\n --wui-purple-5: #521969;\n --wui-purple-6: #5f2578;\n --wui-purple-7: #753491;\n --wui-purple-8: #9643ba;\n --wui-purple-9: #ac12e0;\n --wui-purple-10: #9d00d0;\n --wui-purple-11: #e590ff;\n --wui-purple-12: #f4d2ff;\n --wui-purple-alpha-1: #fc00000d;\n --wui-purple-alpha-2: #f6002914;\n --wui-purple-alpha-3: #fd10d129;\n --wui-purple-alpha-4: #f60afe3d;\n --wui-purple-alpha-5: #eb20fd4d;\n --wui-purple-alpha-6: #e53ffd5e;\n --wui-purple-alpha-7: #e054ff7d;\n --wui-purple-alpha-8: #d659ffad;\n --wui-purple-alpha-9: #c612fedb;\n --wui-purple-alpha-10: #c400ffc7;\n --wui-purple-alpha-11: #e590ff;\n --wui-purple-alpha-12: #f4d2ff;\n --wui-green-1: #111a0f;\n --wui-green-2: #151e13;\n --wui-green-3: #182e14;\n --wui-green-4: #133e0c;\n --wui-green-5: #174c0d;\n --wui-green-6: #1a5c0e;\n --wui-green-7: #1d6d0d;\n --wui-green-8: #1d8004;\n --wui-green-9: #268713;\n --wui-green-10: #117900;\n --wui-green-11: #76d467;\n --wui-green-12: #aff9a3;\n --wui-green-alpha-1: #44e30005;\n --wui-green-alpha-2: #9ef90009;\n --wui-green-alpha-3: #5cf9001b;\n --wui-green-alpha-4: #22fe002c;\n --wui-green-alpha-5: #2efc003c;\n --wui-green-alpha-6: #32fe004d;\n --wui-green-alpha-7: #33fd0060;\n --wui-green-alpha-8: #2cfd0075;\n --wui-green-alpha-9: #3eff007c;\n --wui-green-alpha-10: #13fd006d;\n --wui-green-alpha-11: #8dff75d0;\n --wui-green-alpha-12: #b3fea6f9;\n --wui-pink-1: #1f1319;\n --wui-pink-2: #26121c;\n --wui-pink-3: #3f122b;\n --wui-pink-4: #550438;\n --wui-pink-5: #630b42;\n --wui-pink-6: #741b50;\n --wui-pink-7: #8f2965;\n --wui-pink-8: #b73581;\n --wui-pink-9: #ff40b3;\n --wui-pink-10: #f12fa7;\n --wui-pink-11: #ff86cc;\n --wui-pink-12: #ffcde8;\n --wui-pink-alpha-1: #f1000012;\n --wui-pink-alpha-2: #fa000017;\n --wui-pink-alpha-3: #fb023333;\n --wui-pink-alpha-4: #fe005d4a;\n --wui-pink-alpha-5: #fe007159;\n --wui-pink-alpha-6: #ff22866b;\n --wui-pink-alpha-7: #ff3a9a87;\n --wui-pink-alpha-8: #fe42a7b2;\n --wui-pink-alpha-9: #ff40b3;\n --wui-pink-alpha-10: #fe31aff2;\n --wui-pink-alpha-11: #ff86cc;\n --wui-pink-alpha-12: #ffcde8;\n --wui-red-1: #1e1414;\n --wui-red-2: #241616;\n --wui-red-3: #411014;\n --wui-red-4: #580314;\n --wui-red-5: #68071b;\n --wui-red-6: #7a1725;\n --wui-red-7: #952634;\n --wui-red-8: #c23244;\n --wui-red-9: #ff2b51;\n --wui-red-10: #f00e45;\n --wui-red-11: #ff8e93;\n --wui-red-12: #ffcfce;\n --wui-red-alpha-1: #fe00000f;\n --wui-red-alpha-2: #f8170017;\n --wui-red-alpha-3: #fc000036;\n --wui-red-alpha-4: #ff00004d;\n --wui-red-alpha-5: #ff00045e;\n --wui-red-alpha-6: #fd192173;\n --wui-red-alpha-7: #ff333d8f;\n --wui-red-alpha-8: #ff3b4ebf;\n --wui-red-alpha-9: #ff2b51;\n --wui-red-alpha-10: #ff0e46f0;\n --wui-red-alpha-11: #ff8e93;\n --wui-red-alpha-12: #ffcfce;\n --wui-yellow-1: #171811;\n --wui-yellow-2: #1c1c13;\n --wui-yellow-3: #292a16;\n --wui-yellow-4: #353615;\n --wui-yellow-5: #414218;\n --wui-yellow-6: #4e4f1c;\n --wui-yellow-7: #5c5e20;\n --wui-yellow-8: #6d6f22;\n --wui-yellow-9: #bcbf19;\n --wui-yellow-10: #b1b400;\n --wui-yellow-11: #cbcf4b;\n --wui-yellow-12: #eaeeae;\n --wui-yellow-alpha-1: #f0560008;\n --wui-yellow-alpha-2: #fc8c000d;\n --wui-yellow-alpha-3: #fdd3001c;\n --wui-yellow-alpha-4: #fce20029;\n --wui-yellow-alpha-5: #fcea0036;\n --wui-yellow-alpha-6: #fcef0042;\n --wui-yellow-alpha-7: #fdf60e52;\n --wui-yellow-alpha-8: #fdf91863;\n --wui-yellow-alpha-9: #feff13ba;\n --wui-yellow-alpha-10: #feff00ad;\n --wui-yellow-alpha-11: #fbff54cc;\n --wui-yellow-alpha-12: #fbfeb8ed;\n --wui-orange-1: #1c1514;\n --wui-orange-2: #211816;\n --wui-orange-3: #391a12;\n --wui-orange-4: #4e190b;\n --wui-orange-5: #5c2010;\n --wui-orange-6: #6c2d1c;\n --wui-orange-7: #833d2a;\n --wui-orange-8: #a95038;\n --wui-orange-9: #d1451a;\n --wui-orange-10: #c23600;\n --wui-orange-11: #ff9271;\n --wui-orange-12: #f9d4ca;\n --wui-orange-alpha-1: #fc03000d;\n --wui-orange-alpha-2: #f5310012;\n --wui-orange-alpha-3: #fe2e002b;\n --wui-orange-alpha-4: #fc220042;\n --wui-orange-alpha-5: #fd360052;\n --wui-orange-alpha-6: #fd520863;\n --wui-orange-alpha-7: #ff672c7a;\n --wui-orange-alpha-8: #fe7040a3;\n --wui-orange-alpha-9: #ff5117cf;\n --wui-orange-alpha-10: #ff4100bf;\n --wui-orange-alpha-11: #ff9271;\n --wui-orange-alpha-12: #ffd8cefa;\n --wui-error-1: #1d1514;\n --wui-error-2: #231615;\n --wui-error-3: #3d1414;\n --wui-error-4: #521013;\n --wui-error-5: #62171a;\n --wui-error-6: #732426;\n --wui-error-7: #8c3434;\n --wui-error-8: #b54546;\n --wui-error-9: #e5484d;\n --wui-error-10: #d63941;\n --wui-error-11: #ff8f8b;\n --wui-error-12: #ffd2ce;\n --wui-error-alpha-1: #fd04000d;\n --wui-error-alpha-2: #f7170014;\n --wui-error-alpha-3: #fb0c0030;\n --wui-error-alpha-4: #fd010047;\n --wui-error-alpha-5: #fe190059;\n --wui-error-alpha-6: #ff38226b;\n --wui-error-alpha-7: #fe4f3e85;\n --wui-error-alpha-8: #fe5a52b0;\n --wui-error-alpha-9: #fe4e52e3;\n --wui-error-alpha-10: #fe4046d4;\n --wui-error-alpha-11: #ff8f8b;\n --wui-error-alpha-12: #ffd2ce;\n --wui-success-1: #121915;\n --wui-success-2: #151e18;\n --wui-success-3: #172e21;\n --wui-success-4: #153c27;\n --wui-success-5: #1b4931;\n --wui-success-6: #23573c;\n --wui-success-7: #2b6848;\n --wui-success-8: #327c55;\n --wui-success-9: #30a46c;\n --wui-success-10: #1d9760;\n --wui-success-11: #63d196;\n --wui-success-12: #b2f1cb;\n --wui-success-alpha-1: #90d60005;\n --wui-success-alpha-2: #9ef9000a;\n --wui-success-alpha-3: #53f9001c;\n --wui-success-alpha-4: #2ffd1d29;\n --wui-success-alpha-5: #43ff4e38;\n --wui-success-alpha-6: #54fd6d47;\n --wui-success-alpha-7: #5dff8059;\n --wui-success-alpha-8: #5eff8e70;\n --wui-success-alpha-9: #45fe979c;\n --wui-success-alpha-10: #28fe8c8f;\n --wui-success-alpha-11: #78ffb1cc;\n --wui-success-alpha-12: #bcffd6f0;\n --wui-warning-1: #181711;\n --wui-warning-2: #1e1d14;\n --wui-warning-3: #2b270c;\n --wui-warning-4: #352f00;\n --wui-warning-5: #403800;\n --wui-warning-6: #4d450e;\n --wui-warning-7: #5f5720;\n --wui-warning-8: #796f2b;\n --wui-warning-9: #ffe629;\n --wui-warning-10: #f1dd4e;\n --wui-warning-11: #f2dd4f;\n --wui-warning-12: #f4edb8;\n --wui-warning-alpha-1: #f333000a;\n --wui-warning-alpha-2: #fe8d000f;\n --wui-warning-alpha-3: #feac001c;\n --wui-warning-alpha-4: #fcb50029;\n --wui-warning-alpha-5: #fcbc0033;\n --wui-warning-alpha-6: #fccc0042;\n --wui-warning-alpha-7: #fdd90e54;\n --wui-warning-alpha-8: #fddf2e70;\n --wui-warning-alpha-9: #ffe629;\n --wui-warning-alpha-10: #fee950f2;\n --wui-warning-alpha-11: #fee851f2;\n --wui-warning-alpha-12: #fef7bef5;\n --wui-gray-1: #0d162d;\n --wui-gray-2: #131c35;\n --wui-gray-3: #172448;\n --wui-gray-4: #1c2a50;\n --wui-gray-5: #223057;\n --wui-gray-6: #293860;\n --wui-gray-7: #36466f;\n --wui-gray-8: #4e5f8a;\n --wui-gray-9: #5b6d98;\n --wui-gray-10: #687aa7;\n --wui-gray-11: #9fb3e3;\n --wui-gray-12: #e4eeff;\n --wui-gray-alpha-1: #0017f605;\n --wui-gray-alpha-2: #437cf60f;\n --wui-gray-alpha-3: #4177ff26;\n --wui-gray-alpha-4: #5283fd2e;\n --wui-gray-alpha-5: #638fff38;\n --wui-gray-alpha-6: #719afe42;\n --wui-gray-alpha-7: #84a8fe54;\n --wui-gray-alpha-8: #98b7ff73;\n --wui-gray-alpha-9: #a0bcfe85;\n --wui-gray-alpha-10: #a4bffe96;\n --wui-gray-alpha-11: #b4caffde;\n --wui-gray-alpha-12: #e4eeff;\n --wui-vendor-hubspot-1: #1d1513;\n --wui-vendor-hubspot-2: #231815;\n --wui-vendor-hubspot-3: #3b1a12;\n --wui-vendor-hubspot-4: #511609;\n --wui-vendor-hubspot-5: #601d0d;\n --wui-vendor-hubspot-6: #702a1a;\n --wui-vendor-hubspot-7: #883a27;\n --wui-vendor-hubspot-8: #af4a33;\n --wui-vendor-hubspot-9: #ff5c36;\n --wui-vendor-hubspot-10: #f14f28;\n --wui-vendor-hubspot-11: #ff9578;\n --wui-vendor-hubspot-12: #ffd5ca;\n --wui-vendor-hubspot-surface: #361a0280;\n --wui-vendor-hubspot-contrast: #ffffff;\n --wui-vendor-marketo-1: #141621;\n --wui-vendor-marketo-2: #161827;\n --wui-vendor-marketo-3: #1f234a;\n --wui-vendor-marketo-4: #262a66;\n --wui-vendor-marketo-5: #2f3476;\n --wui-vendor-marketo-6: #383f83;\n --wui-vendor-marketo-7: #444c97;\n --wui-vendor-marketo-8: #515ab4;\n --wui-vendor-marketo-9: #4c50cc;\n --wui-vendor-marketo-10: #4040bb;\n --wui-vendor-marketo-11: #9faeff;\n --wui-vendor-marketo-12: #dae1ff;\n --wui-vendor-marketo-surface: #1c1a2680;\n --wui-vendor-marketo-contrast: #ffffff;\n --wui-vendor-pardot-1: #0e191f;\n --wui-vendor-pardot-2: #111d24;\n --wui-vendor-pardot-3: #092c3d;\n --wui-vendor-pardot-4: #003752;\n --wui-vendor-pardot-5: #004463;\n --wui-vendor-pardot-6: #055274;\n --wui-vendor-pardot-7: #15648a;\n --wui-vendor-pardot-8: #197ba9;\n --wui-vendor-pardot-9: #00a1e0;\n --wui-vendor-pardot-10: #0095d3;\n --wui-vendor-pardot-11: #62c3f8;\n --wui-vendor-pardot-12: #bfe7ff;\n --wui-vendor-pardot-surface: #12242080;\n --wui-vendor-pardot-contrast: #ffffff;\n`;\n","import { css } from 'styled-components';\nimport { standardColorScheme } from './colorSchemes';\n\nexport const baseAliasTokens = css`\n --wui-color-bg-fill: var(--wui-color-accent-9);\n --wui-color-bg-fill-active: var(--wui-color-accent-11);\n --wui-color-bg-fill-hover: var(--wui-color-accent-10);\n --wui-color-bg-surface: var(--wui-color-surface-token);\n --wui-color-bg-surface-active: var(--wui-color-base-4);\n --wui-color-bg-surface-hover: var(--wui-color-base-3);\n --wui-color-bg-surface-secondary: var(--wui-color-base-3);\n --wui-color-bg-surface-secondary-active: var(--wui-color-base-5);\n --wui-color-bg-surface-secondary-hover: var(--wui-color-base-4);\n --wui-color-bg-surface-tertiary: var(--wui-color-base-5);\n --wui-color-border: var(--wui-color-base-6);\n --wui-color-border-hover: var(--wui-color-base-8);\n --wui-color-border-active: var(--wui-color-base-9);\n --wui-color-border-secondary: var(--wui-color-base-8);\n --wui-color-border-secondary-hover: var(--wui-color-base-10);\n --wui-color-border-secondary-active: var(--wui-color-base-11);\n --wui-color-icon: var(--wui-color-base-11);\n --wui-color-icon-on-fill: var(--wui-color-accent-contrast);\n --wui-color-text: var(--wui-color-base-12);\n --wui-color-text-button: var(--wui-color-text-button-token);\n --wui-color-text-link: var(--wui-color-accent-9);\n --wui-color-text-on-fill: var(--wui-color-accent-contrast);\n --wui-color-text-secondary: var(--wui-color-base-11);\n --wui-color-focus-ring: var(--wui-color-accent-9);\n`;\n\nexport const colorAliasTokens = css`\n --wui-color-bg-app: var(--wui-app-background);\n ${standardColorScheme}\n ${baseAliasTokens}\n /* --- Semantic --- */\n /* Error */\n --wui-color-bg-fill-active-error: var(--wui-error-11);\n --wui-color-bg-fill-error: var(--wui-error-9);\n --wui-color-bg-fill-hover-error: var(--wui-error-10);\n --wui-color-bg-surface-active-error: var(--wui-error-4);\n --wui-color-bg-surface-error: var(--wui-error-2);\n --wui-color-bg-surface-hover-error: var(--wui-error-3);\n --wui-color-bg-surface-secondary-active-error: var(--wui-error-5);\n --wui-color-bg-surface-secondary-error: var(--wui-error-3);\n --wui-color-bg-surface-secondary-hover-error: var(--wui-error-4);\n --wui-color-bg-surface-tertiary-error: var(--wui-error-5);\n --wui-color-border-error: var(--wui-error-6);\n --wui-color-border-hover-errror: var(--wui-error-8);\n --wui-color-border-active-error: var(--wui-error-9);\n --wui-color-border-secondary-error: var(--wui-error-8);\n --wui-color-border-secondary-hover-error: var(--wui-error-10);\n --wui-color-border-secondary-active-error: var(--wui-error-11);\n --wui-color-icon-error: var(--wui-error-11);\n --wui-color-icon-on-fill-error: var(--wui-error-contrast);\n --wui-color-text-error: var(--wui-error-11);\n --wui-color-text-button-error: var(--wui-error-11);\n --wui-color-text-link-error: var(--wui-error-11);\n --wui-color-text-on-fill-error: var(--wui-error-contrast);\n --wui-color-text-secondary-error: var(--wui-error-11);\n --wui-color-focus-ring-error: var(--wui-error-9);\n\n /* Info */\n --wui-color-bg-fill-active-info: var(--wui-blue-11);\n --wui-color-bg-fill-hover-info: var(--wui-blue-10);\n --wui-color-bg-fill-info: var(--wui-blue-9);\n --wui-color-bg-surface-active-info: var(--wui-blue-4);\n --wui-color-bg-surface-hover-info: var(--wui-blue-3);\n --wui-color-bg-surface-info: var(--wui-blue-2);\n --wui-color-bg-surface-secondary-active-info: var(--wui-blue-5);\n --wui-color-bg-surface-secondary-hover-info: var(--wui-blue-4);\n --wui-color-bg-surface-secondary-info: var(--wui-blue-3);\n --wui-color-bg-surface-tertiary-info: var(--wui-blue-6);\n --wui-color-border-info: var(--wui-blue-6);\n --wui-color-border-hover-info: var(--wui-blue-8);\n --wui-color-border-active-info: var(--wui-blue-9);\n --wui-color-border-secondary-info: var(--wui-blue-8);\n --wui-color-border-secondary-hover-info: var(--wui-blue-10);\n --wui-color-border-secondary-active-info: var(--wui-blue-11);\n --wui-color-icon-info: var(--wui-blue-11);\n --wui-color-icon-on-fill-info: var(--wui-blue-contrast);\n --wui-color-text-info: var(--wui-blue-12);\n --wui-color-text-button-info: var(--wui-blue-11);\n --wui-color-text-link-info: var(--wui-blue-9);\n --wui-color-text-on-fill-info: var(--wui-blue-contrast);\n --wui-color-text-secondary-info: var(--wui-blue-11);\n --wui-color-focus-ring-info: var(--wui-blue-9);\n\n /* Success */\n --wui-color-bg-fill-active-success: var(--wui-success-11);\n --wui-color-bg-fill-hover-success: var(--wui-success-10);\n --wui-color-bg-fill-success: var(--wui-success-9);\n --wui-color-bg-surface-active-success: var(--wui-success-4);\n --wui-color-bg-surface-hover-success: var(--wui-success-3);\n --wui-color-bg-surface-secondary-active-success: var(--wui-success-5);\n --wui-color-bg-surface-secondary-hover-success: var(--wui-success-4);\n --wui-color-bg-surface-secondary-success: var(--wui-success-3);\n --wui-color-bg-surface-success: var(--wui-success-2);\n --wui-color-bg-surface-tertiary-success: var(--wui-success-5);\n --wui-color-border-success: var(--wui-success-6);\n --wui-color-border-hover-success: var(--wui-success-8);\n --wui-color-border-active-success: var(--wui-success-9);\n --wui-color-border-secondary-success: var(--wui-success-8);\n --wui-color-border-secondary-hover-success: var(--wui-success-10);\n --wui-color-border-secondary-active-success: var(--wui-success-11);\n --wui-color-icon-on-fill-success: var(--wui-success-contrast);\n --wui-color-icon-success: var(--wui-success-11);\n --wui-color-text-link-success: var(--wui-success-9);\n --wui-color-text-on-fill-success: var(--wui-success-contrast);\n --wui-color-text-secondary-success: var(--wui-success-11);\n --wui-color-text-success: var(--wui-success-12);\n --wui-color-text-button-success: var(--wui-success-11);\n --wui-color-focus-ring-success: var(--wui-success-9);\n\n /* Warning */\n --wui-color-bg-fill-active-warning: var(--wui-warning-11);\n --wui-color-bg-fill-hover-warning: var(--wui-warning-10);\n --wui-color-bg-fill-warning: var(--wui-warning-9);\n --wui-color-bg-surface-active-warning: var(--wui-warning-4);\n --wui-color-bg-surface-hover-warning: var(--wui-warning-3);\n --wui-color-bg-surface-secondary-active-warning: var(--wui-warning-5);\n --wui-color-bg-surface-secondary-hover-warning: var(--wui-warning-4);\n --wui-color-bg-surface-secondary-warning: var(--wui-warning-3);\n --wui-color-bg-surface-tertiary-warning: var(--wui-warning-5);\n --wui-color-bg-surface-warning: var(--wui-warning-2);\n --wui-color-border-warning: var(--wui-warning-6);\n --wui-color-border-hover-warning: var(--wui-warning-8);\n --wui-color-border-active-warning: var(--wui-warning-9);\n --wui-color-border-secondary-warning: var(--wui-warning-8);\n --wui-color-border-secondary-hover-warning: var(--wui-warning-10);\n --wui-color-border-secondary-active-warning: var(--wui-warning-11);\n --wui-color-icon-on-fill-warning: var(--wui-warning-2);\n --wui-color-icon-warning: var(--wui-warning-11);\n --wui-color-text-link-warning: var(--wui-warning-11);\n --wui-color-text-on-fill-warning: var(--wui-warning-contrast);\n --wui-color-text-secondary-warning: var(--wui-warning-11);\n --wui-color-text-button-warning: var(--wui-warning-11);\n --wui-color-text-warning: var(--wui-warning-12);\n --wui-color-focus-ring-warning: var(--wui-warning-9);\n\n /* --- Accent --- */\n\n /* Blue */\n --wui-color-bg-fill-active-blue: var(--wui-blue-11);\n --wui-color-bg-fill-blue: var(--wui-blue-9);\n --wui-color-bg-fill-hover-blue: var(--wui-blue-10);\n --wui-color-bg-surface-active-blue: var(--wui-blue-4);\n --wui-color-bg-surface-blue: var(--wui-blue-2);\n --wui-color-bg-surface-hover-blue: var(--wui-blue-3);\n --wui-color-bg-surface-secondary-active-blue: var(--wui-blue-5);\n --wui-color-bg-surface-secondary-blue: var(--wui-blue-3);\n --wui-color-bg-surface-secondary-hover-blue: var(--wui-blue-4);\n --wui-color-bg-surface-tertiary-blue: var(--wui-blue-5);\n --wui-color-border-blue: var(--wui-blue-6);\n --wui-color-border-hover-blue: var(--wui-blue-8);\n --wui-color-border-active-blue: var(--wui-blue-9);\n --wui-color-border-secondary-blue: var(--wui-blue-8);\n --wui-color-border-secondary-hover-blue: var(--wui-blue-10);\n --wui-color-border-secondary-active-blue: var(--wui-blue-11);\n --wui-color-icon-blue: var(--wui-blue-11);\n --wui-color-icon-on-fill-blue: var(--wui-blue-contrast);\n --wui-color-text-blue: var(--wui-blue-12);\n --wui-color-text-button-blue: var(--wui-blue-11);\n --wui-color-text-link-blue: var(--wui-blue-9);\n --wui-color-text-on-fill-blue: var(--wui-blue-2);\n --wui-color-text-secondary-blue: var(--wui-blue-5);\n --wui-color-focus-ring-blue: var(--wui-blue-9);\n\n /* Green */\n --wui-color-bg-fill-active-green: var(--wui-green-11);\n --wui-color-bg-fill-green: var(--wui-green-9);\n --wui-color-bg-fill-hover-green: var(--wui-green-10);\n --wui-color-bg-surface-active-green: var(--wui-green-4);\n --wui-color-bg-surface-green: var(--wui-green-2);\n --wui-color-bg-surface-hover-green: var(--wui-green-3);\n --wui-color-bg-surface-secondary-active-green: var(--wui-green-5);\n --wui-color-bg-surface-secondary-green: var(--wui-green-3);\n --wui-color-bg-surface-secondary-hover-green: var(--wui-green-4);\n --wui-color-bg-surface-tertiary-green: var(--wui-green-5);\n --wui-color-border-green: var(--wui-green-6);\n --wui-color-border-hover-green: var(--wui-green-8);\n --wui-color-border-active-green: var(--wui-green-9);\n --wui-color-border-secondary-green: var(--wui-green-8);\n --wui-color-border-secondary-hover-green: var(--wui-green-10);\n --wui-color-border-secondary-active-green: var(--wui-green-11);\n --wui-color-icon-green: var(--wui-green-11);\n --wui-color-icon-on-fill-green: var(--wui-green-contrast);\n --wui-color-text-green: var(--wui-green-12);\n --wui-color-text-button-green: var(--wui-green-11);\n --wui-color-text-link-green: var(--wui-green-11);\n --wui-color-text-on-fill-green: var(--wui-green-contrast);\n --wui-color-text-secondary-green: var(--wui-green-10);\n --wui-color-focus-ring-green: var(--wui-green-9);\n\n /* Orange */\n --wui-color-bg-fill-active-orange: var(--wui-orange-11);\n --wui-color-bg-fill-hover-orange: var(--wui-orange-10);\n --wui-color-bg-fill-orange: var(--wui-orange-9);\n --wui-color-bg-surface-active-orange: var(--wui-orange-4);\n --wui-color-bg-surface-hover-orange: var(--wui-orange-3);\n --wui-color-bg-surface-orange: var(--wui-orange-2);\n --wui-color-bg-surface-secondary-active-orange: var(--wui-orange-5);\n --wui-color-bg-surface-secondary-hover-orange: var(--wui-orange-4);\n --wui-color-bg-surface-secondary-orange: var(--wui-orange-3);\n --wui-color-bg-surface-tertiary-orange: var(--wui-orange-5);\n --wui-color-border-orange: var(--wui-orange-6);\n --wui-color-border-hover-orange: var(--wui-orange-8);\n --wui-color-border-active-orange: var(--wui-orange-9);\n --wui-color-border-secondary-orange: var(--wui-orange-8);\n --wui-color-border-secondary-hover-orange: var(--wui-orange-10);\n --wui-color-border-secondary-active-orange: var(--wui-orange-11);\n --wui-color-icon-on-fill-orange: var(--wui-orange-contrast);\n --wui-color-icon-orange: var(--wui-orange-11);\n --wui-color-text-link-orange: var(--wui-orange-11);\n --wui-color-text-on-fill-orange: var(--wui-orange-contrast);\n --wui-color-text-orange: var(--wui-orange-12);\n --wui-color-text-button-orange: var(--wui-orange-11);\n --wui-color-text-secondary-orange: var(--wui-orange-10);\n --wui-color-focus-ring-orange: var(--wui-orange-9);\n\n /* Pink */\n --wui-color-bg-fill-active-pink: var(--wui-pink-11);\n --wui-color-bg-fill-hover-pink: var(--wui-pink-10);\n --wui-color-bg-fill-pink: var(--wui-pink-9);\n --wui-color-bg-surface-active-pink: var(--wui-pink-4);\n --wui-color-bg-surface-hover-pink: var(--wui-pink-3);\n --wui-color-bg-surface-pink: var(--wui-pink-2);\n --wui-color-bg-surface-secondary-active-pink: var(--wui-pink-5);\n --wui-color-bg-surface-secondary-hover-pink: var(--wui-pink-4);\n --wui-color-bg-surface-secondary-pink: var(--wui-pink-3);\n --wui-color-bg-surface-tertiary-pink: var(--wui-pink-5);\n --wui-color-border-pink: var(--wui-pink-6);\n --wui-color-border-hover-pink: var(--wui-pink-8);\n --wui-color-border-active-pink: var(--wui-pink-9);\n --wui-color-border-secondary-pink: var(--wui-pink-8);\n --wui-color-border-secondary-hover-pink: var(--wui-pink-10);\n --wui-color-border-secondary-active-pink: var(--wui-pink-11);\n --wui-color-icon-on-fill-pink: var(--wui-pink-contrast);\n --wui-color-icon-pink: var(--wui-pink-11);\n --wui-color-text-link-pink: var(--wui-pink-11);\n --wui-color-text-on-fill-pink: var(--wui-pink-contrast);\n --wui-color-text-pink: var(--wui-pink-12);\n --wui-color-text-button-pink: var(--wui-pink-11);\n --wui-color-text-secondary-pink: var(--wui-pink-10);\n --wui-color-focus-ring-pink: var(--wui-pink-9);\n\n /* Purple */\n --wui-color-bg-fill-active-purple: var(--wui-purple-11);\n --wui-color-bg-fill-hover-purple: var(--wui-purple-10);\n --wui-color-bg-fill-purple: var(--wui-purple-9);\n --wui-color-bg-surface-active-purple: var(--wui-purple-4);\n --wui-color-bg-surface-hover-purple: var(--wui-purple-3);\n --wui-color-bg-surface-purple: var(--wui-purple-2);\n --wui-color-bg-surface-secondary-active-purple: var(--wui-purple-5);\n --wui-color-bg-surface-secondary-hover-purple: var(--wui-purple-4);\n --wui-color-bg-surface-secondary-purple: var(--wui-purple-3);\n --wui-color-bg-surface-tertiary-purple: var(--wui-purple-5);\n --wui-color-border-purple: var(--wui-purple-6);\n --wui-color-border-hover-purple: var(--wui-purple-8);\n --wui-color-border-active-purple: var(--wui-purple-9);\n --wui-color-border-secondary-purple: var(--wui-purple-8);\n --wui-color-border-secondary-hover-purple: var(--wui-purple-10);\n --wui-color-border-secondary-active-purple: var(--wui-purple-11);\n --wui-color-icon-on-fill-purple: var(--wui-purple-contrast);\n --wui-color-icon-purple: var(--wui-purple-11);\n --wui-color-text-link-purple: var(--wui-purple-11);\n --wui-color-text-on-fill-purple: var(--wui-purple-contrast);\n --wui-color-text-button-purple: var(--wui-purple-11);\n --wui-color-text-purple: var(--wui-purple-12);\n --wui-color-text-secondary-purple: var(--wui-purple-11);\n --wui-color-focus-ring-purple: var(--wui-purple-9);\n\n /* Yellow */\n --wui-color-bg-fill-active-yellow: var(--wui-yellow-11);\n --wui-color-bg-fill-hover-yellow: var(--wui-yellow-10);\n --wui-color-bg-fill-yellow: var(--wui-yellow-9);\n --wui-color-bg-surface-active-yellow: var(--wui-yellow-4);\n --wui-color-bg-surface-hover-yellow: var(--wui-yellow-3);\n --wui-color-bg-surface-secondary-active-yellow: var(--wui-yellow-5);\n --wui-color-bg-surface-secondary-hover-yellow: var(--wui-yellow-4);\n --wui-color-bg-surface-secondary-yellow: var(--wui-yellow-3);\n --wui-color-bg-surface-tertiary-yellow: var(--wui-yellow-5);\n --wui-color-bg-surface-yellow: var(--wui-yellow-2);\n --wui-color-border-yellow: var(--wui-yellow-6);\n --wui-color-border-hover-yellow: var(--wui-yellow-8);\n --wui-color-border-active-yellow: var(--wui-yellow-9);\n --wui-color-border-secondary-yellow: var(--wui-yellow-8);\n --wui-color-border-secondary-hover-yellow: var(--wui-yellow-10);\n --wui-color-border-secondary-active-yellow: var(--wui-yellow-11);\n --wui-color-icon-on-fill-yellow: var(--wui-yellow-contrast);\n --wui-color-icon-yellow: var(--wui-yellow-11);\n --wui-color-text-link-yellow: var(--wui-yellow-11);\n --wui-color-text-on-fill-yellow: var(--wui-yellow-contrast);\n --wui-color-text-secondary-yellow: var(--wui-yellow-10);\n --wui-color-text-yellow: var(--wui-yellow-11);\n --wui-color-text-button-yellow: var(--wui-yellow-12);\n --wui-color-focus-ring-yellow: var(--wui-yellow-9);\n\n /* --- Misc --- */\n --wui-color-bg-fill-white: #ffffff;\n --wui-color-focus-color: var(--wui-blue-9);\n --wui-color-invalid-indicator: var(--wui-error-9);\n --wui-color-notification-pill-color: var(--wui-pink-9);\n --wui-color-backdrop: var(--wui-gray-alpha-9);\n --wui-color-segmented-control-checked-background: var(--wui-bg-app);\n --wui-color-text-on-fill-white-selected: var(--wui-blue-9);\n --wui-color-bg-tooltip: #242528;\n --wui-color-drop-shadow: rgb(31 51 153 / 10%);\n\n /* --- State --- */\n\n /* Disabled */\n --wui-color-bg-surface-disabled: var(--wui-gray-3);\n --wui-color-border-disabled: var(--wui-gray-4);\n --wui-color-icon-disabled: var(--wui-gray-8);\n --wui-color-text-disabled: var(--wui-gray-10);\n --wui-color-focus-ring-disabled: var(--wui-gray-6);\n\n /* Selected */\n --wui-color-bg-surface-selected: var(--wui-blue-3);\n --wui-color-bg-surface-selected-active: var(--wui-blue-5);\n --wui-color-bg-surface-selected-hover: var(--wui-blue-4);\n --wui-color-icon-selected: var(--wui-blue-9);\n --wui-color-text-selected: var(--wui-blue-9);\n --wui-color-border-selected: var(--wui-blue-6);\n --wui-color-border-hover-selected: var(--wui-blue-8);\n --wui-color-border-active-selected: var(--wui-blue-9);\n`;\n","import { css } from 'styled-components';\n\nexport const standardColorScheme = css`\n --wui-color-base-1: var(--wui-gray-1);\n --wui-color-base-2: var(--wui-gray-2);\n --wui-color-base-3: var(--wui-gray-3);\n --wui-color-base-4: var(--wui-gray-4);\n --wui-color-base-5: var(--wui-gray-5);\n --wui-color-base-6: var(--wui-gray-6);\n --wui-color-base-7: var(--wui-gray-7);\n --wui-color-base-8: var(--wui-gray-8);\n --wui-color-base-9: var(--wui-gray-9);\n --wui-color-base-10: var(--wui-gray-10);\n --wui-color-base-11: var(--wui-gray-11);\n --wui-color-base-12: var(--wui-gray-12);\n --wui-color-base-contrast: var(--wui-gray-contrast);\n --wui-color-accent-1: var(--wui-blue-1);\n --wui-color-accent-2: var(--wui-blue-2);\n --wui-color-accent-3: var(--wui-blue-3);\n --wui-color-accent-4: var(--wui-blue-4);\n --wui-color-accent-5: var(--wui-blue-5);\n --wui-color-accent-6: var(--wui-blue-6);\n --wui-color-accent-7: var(--wui-blue-7);\n --wui-color-accent-8: var(--wui-blue-8);\n --wui-color-accent-9: var(--wui-blue-9);\n --wui-color-accent-10: var(--wui-blue-10);\n --wui-color-accent-11: var(--wui-blue-11);\n --wui-color-accent-12: var(--wui-blue-12);\n --wui-color-accent-contrast: var(--wui-blue-contrast);\n --wui-color-surface-token: var(--wui-gray-1);\n --wui-color-text-button-token: var(--wui-gray-12);\n`;\n\nexport const blueColorScheme = css`\n --wui-color-base-1: var(--wui-blue-1);\n --wui-color-base-2: var(--wui-blue-2);\n --wui-color-base-3: var(--wui-blue-3);\n --wui-color-base-4: var(--wui-blue-4);\n --wui-color-base-5: var(--wui-blue-5);\n --wui-color-base-6: var(--wui-blue-6);\n --wui-color-base-7: var(--wui-blue-7);\n --wui-color-base-8: var(--wui-blue-8);\n --wui-color-base-9: var(--wui-blue-9);\n --wui-color-base-10: var(--wui-blue-10);\n --wui-color-base-11: var(--wui-blue-11);\n --wui-color-base-12: var(--wui-blue-12);\n --wui-color-base-contrast: var(--wui-blue-contrast);\n --wui-color-accent-1: var(--wui-blue-1);\n --wui-color-accent-2: var(--wui-blue-2);\n --wui-color-accent-3: var(--wui-blue-3);\n --wui-color-accent-4: var(--wui-blue-4);\n --wui-color-accent-5: var(--wui-blue-5);\n --wui-color-accent-6: var(--wui-blue-6);\n --wui-color-accent-7: var(--wui-blue-7);\n --wui-color-accent-8: var(--wui-blue-8);\n --wui-color-accent-9: var(--wui-blue-9);\n --wui-color-accent-10: var(--wui-blue-10);\n --wui-color-accent-11: var(--wui-blue-11);\n --wui-color-accent-12: var(--wui-blue-12);\n --wui-color-accent-contrast: var(--wui-blue-contrast);\n --wui-color-surface-token: var(--wui-blue-2);\n --wui-color-text-button-token: var(--wui-blue-12);\n`;\n\nexport const greenColorScheme = css`\n --wui-color-base-1: var(--wui-green-1);\n --wui-color-base-2: var(--wui-green-2);\n --wui-color-base-3: var(--wui-green-3);\n --wui-color-base-4: var(--wui-green-4);\n --wui-color-base-5: var(--wui-green-5);\n --wui-color-base-6: var(--wui-green-6);\n --wui-color-base-7: var(--wui-green-7);\n --wui-color-base-8: var(--wui-green-8);\n --wui-color-base-9: var(--wui-green-9);\n --wui-color-base-10: var(--wui-green-10);\n --wui-color-base-11: var(--wui-green-11);\n --wui-color-base-12: var(--wui-green-12);\n --wui-color-base-contrast: var(--wui-green-contrast);\n --wui-color-accent-1: var(--wui-green-1);\n --wui-color-accent-2: var(--wui-green-2);\n --wui-color-accent-3: var(--wui-green-3);\n --wui-color-accent-4: var(--wui-green-4);\n --wui-color-accent-5: var(--wui-green-5);\n --wui-color-accent-6: var(--wui-green-6);\n --wui-color-accent-7: var(--wui-green-7);\n --wui-color-accent-8: var(--wui-green-8);\n --wui-color-accent-9: var(--wui-green-9);\n --wui-color-accent-10: var(--wui-green-10);\n --wui-color-accent-11: var(--wui-green-11);\n --wui-color-accent-12: var(--wui-green-12);\n --wui-color-accent-contrast: var(--wui-green-contrast);\n --wui-color-surface-token: var(--wui-green-2);\n --wui-color-text-button-token: var(--wui-green-11);\n`;\n\nexport const orangeColorScheme = css`\n --wui-color-base-1: var(--wui-orange-1);\n --wui-color-base-2: var(--wui-orange-2);\n --wui-color-base-3: var(--wui-orange-3);\n --wui-color-base-4: var(--wui-orange-4);\n --wui-color-base-5: var(--wui-orange-5);\n --wui-color-base-6: var(--wui-orange-6);\n --wui-color-base-7: var(--wui-orange-7);\n --wui-color-base-8: var(--wui-orange-8);\n --wui-color-base-9: var(--wui-orange-9);\n --wui-color-base-10: var(--wui-orange-10);\n --wui-color-base-11: var(--wui-orange-11);\n --wui-color-base-12: var(--wui-orange-12);\n --wui-color-base-contrast: var(--wui-orange-contrast);\n --wui-color-accent-1: var(--wui-orange-1);\n --wui-color-accent-2: var(--wui-orange-2);\n --wui-color-accent-3: var(--wui-orange-3);\n --wui-color-accent-4: var(--wui-orange-4);\n --wui-color-accent-5: var(--wui-orange-5);\n --wui-color-accent-6: var(--wui-orange-6);\n --wui-color-accent-7: var(--wui-orange-7);\n --wui-color-accent-8: var(--wui-orange-8);\n --wui-color-accent-9: var(--wui-orange-9);\n --wui-color-accent-10: var(--wui-orange-10);\n --wui-color-accent-11: var(--wui-orange-11);\n --wui-color-accent-12: var(--wui-orange-12);\n --wui-color-accent-contrast: var(--wui-orange-contrast);\n --wui-color-surface-token: var(--wui-orange-2);\n --wui-color-text-button-token: var(--wui-orange-11);\n`;\n\nexport const pinkColorScheme = css`\n --wui-color-base-1: var(--wui-pink-1);\n --wui-color-base-2: var(--wui-pink-2);\n --wui-color-base-3: var(--wui-pink-3);\n --wui-color-base-4: var(--wui-pink-4);\n --wui-color-base-5: var(--wui-pink-5);\n --wui-color-base-6: var(--wui-pink-6);\n --wui-color-base-7: var(--wui-pink-7);\n --wui-color-base-8: var(--wui-pink-8);\n --wui-color-base-9: var(--wui-pink-9);\n --wui-color-base-10: var(--wui-pink-10);\n --wui-color-base-11: var(--wui-pink-11);\n --wui-color-base-12: var(--wui-pink-12);\n --wui-color-base-contrast: var(--wui-pink-contrast);\n --wui-color-accent-1: var(--wui-pink-1);\n --wui-color-accent-2: var(--wui-pink-2);\n --wui-color-accent-3: var(--wui-pink-3);\n --wui-color-accent-4: var(--wui-pink-4);\n --wui-color-accent-5: var(--wui-pink-5);\n --wui-color-accent-6: var(--wui-pink-6);\n --wui-color-accent-7: var(--wui-pink-7);\n --wui-color-accent-8: var(--wui-pink-8);\n --wui-color-accent-9: var(--wui-pink-9);\n --wui-color-accent-10: var(--wui-pink-10);\n --wui-color-accent-11: var(--wui-pink-11);\n --wui-color-accent-12: var(--wui-pink-12);\n --wui-color-accent-contrast: var(--wui-pink-contrast);\n --wui-color-surface-token: var(--wui-pink-2);\n --wui-color-text-button-token: var(--wui-pink-11);\n`;\n\nexport const purpleColorScheme = css`\n --wui-color-base-1: var(--wui-purple-1);\n --wui-color-base-2: var(--wui-purple-2);\n --wui-color-base-3: var(--wui-purple-3);\n --wui-color-base-4: var(--wui-purple-4);\n --wui-color-base-5: var(--wui-purple-5);\n --wui-color-base-6: var(--wui-purple-6);\n --wui-color-base-7: var(--wui-purple-7);\n --wui-color-base-8: var(--wui-purple-8);\n --wui-color-base-9: var(--wui-purple-9);\n --wui-color-base-10: var(--wui-purple-10);\n --wui-color-base-11: var(--wui-purple-11);\n --wui-color-base-12: var(--wui-purple-12);\n --wui-color-base-contrast: var(--wui-purple-contrast);\n --wui-color-accent-1: var(--wui-purple-1);\n --wui-color-accent-2: var(--wui-purple-2);\n --wui-color-accent-3: var(--wui-purple-3);\n --wui-color-accent-4: var(--wui-purple-4);\n --wui-color-accent-5: var(--wui-purple-5);\n --wui-color-accent-6: var(--wui-purple-6);\n --wui-color-accent-7: var(--wui-purple-7);\n --wui-color-accent-8: var(--wui-purple-8);\n --wui-color-accent-9: var(--wui-purple-9);\n --wui-color-accent-10: var(--wui-purple-10);\n --wui-color-accent-11: var(--wui-purple-11);\n --wui-color-accent-12: var(--wui-purple-12);\n --wui-color-accent-contrast: var(--wui-purple-contrast);\n --wui-color-surface-token: var(--wui-purple-2);\n --wui-color-text-button-token: var(--wui-purple-11);\n`;\n\nexport const redColorScheme = css`\n --wui-color-base-1: var(--wui-red-1);\n --wui-color-base-2: var(--wui-red-2);\n --wui-color-base-3: var(--wui-red-3);\n --wui-color-base-4: var(--wui-red-4);\n --wui-color-base-5: var(--wui-red-5);\n --wui-color-base-6: var(--wui-red-6);\n --wui-color-base-7: var(--wui-red-7);\n --wui-color-base-8: var(--wui-red-8);\n --wui-color-base-9: var(--wui-red-9);\n --wui-color-base-10: var(--wui-red-10);\n --wui-color-base-11: var(--wui-red-11);\n --wui-color-base-12: var(--wui-red-12);\n --wui-color-base-contrast: var(--wui-red-contrast);\n --wui-color-accent-1: var(--wui-red-1);\n --wui-color-accent-2: var(--wui-red-2);\n --wui-color-accent-3: var(--wui-red-3);\n --wui-color-accent-4: var(--wui-red-4);\n --wui-color-accent-5: var(--wui-red-5);\n --wui-color-accent-6: var(--wui-red-6);\n --wui-color-accent-7: var(--wui-red-7);\n --wui-color-accent-8: var(--wui-red-8);\n --wui-color-accent-9: var(--wui-red-9);\n --wui-color-accent-10: var(--wui-red-10);\n --wui-color-accent-11: var(--wui-red-11);\n --wui-color-accent-12: var(--wui-red-12);\n --wui-color-accent-contrast: var(--wui-red-contrast);\n --wui-color-surface-token: var(--wui-red-2);\n --wui-color-text-button-token: var(--wui-red-11);\n`;\n\nexport const yellowColorScheme = css`\n --wui-color-base-1: var(--wui-yellow-1);\n --wui-color-base-2: var(--wui-yellow-2);\n --wui-color-base-3: var(--wui-yellow-3);\n --wui-color-base-4: var(--wui-yellow-4);\n --wui-color-base-5: var(--wui-yellow-5);\n --wui-color-base-6: var(--wui-yellow-6);\n --wui-color-base-7: var(--wui-yellow-7);\n --wui-color-base-8: var(--wui-yellow-8);\n --wui-color-base-9: var(--wui-yellow-9);\n --wui-color-base-10: var(--wui-yellow-10);\n --wui-color-base-11: var(--wui-yellow-11);\n --wui-color-base-12: var(--wui-yellow-12);\n --wui-color-base-contrast: var(--wui-yellow-contrast);\n --wui-color-accent-1: var(--wui-yellow-1);\n --wui-color-accent-2: var(--wui-yellow-2);\n --wui-color-accent-3: var(--wui-yellow-3);\n --wui-color-accent-4: var(--wui-yellow-4);\n --wui-color-accent-5: var(--wui-yellow-5);\n --wui-color-accent-6: var(--wui-yellow-6);\n --wui-color-accent-7: var(--wui-yellow-7);\n --wui-color-accent-8: var(--wui-yellow-8);\n --wui-color-accent-9: var(--wui-yellow-9);\n --wui-color-accent-10: var(--wui-yellow-10);\n --wui-color-accent-11: var(--wui-yellow-11);\n --wui-color-accent-12: var(--wui-yellow-12);\n --wui-color-accent-contrast: var(--wui-yellow-contrast);\n --wui-color-surface-token: var(--wui-yellow-2);\n --wui-color-text-button-token: var(--wui-yellow-11);\n`;\n\nexport const errorColorScheme = css`\n --wui-color-base-1: var(--wui-error-1);\n --wui-color-base-2: var(--wui-error-2);\n --wui-color-base-3: var(--wui-error-3);\n --wui-color-base-4: var(--wui-error-4);\n --wui-color-base-5: var(--wui-error-5);\n --wui-color-base-6: var(--wui-error-6);\n --wui-color-base-7: var(--wui-error-7);\n --wui-color-base-8: var(--wui-error-8);\n --wui-color-base-9: var(--wui-error-9);\n --wui-color-base-10: var(--wui-error-10);\n --wui-color-base-11: var(--wui-error-11);\n --wui-color-base-12: var(--wui-error-12);\n --wui-color-base-contrast: var(--wui-error-contrast);\n --wui-color-accent-1: var(--wui-error-1);\n --wui-color-accent-2: var(--wui-error-2);\n --wui-color-accent-3: var(--wui-error-3);\n --wui-color-accent-4: var(--wui-error-4);\n --wui-color-accent-5: var(--wui-error-5);\n --wui-color-accent-6: var(--wui-error-6);\n --wui-color-accent-7: var(--wui-error-7);\n --wui-color-accent-8: var(--wui-error-8);\n --wui-color-accent-9: var(--wui-error-9);\n --wui-color-accent-10: var(--wui-error-10);\n --wui-color-accent-11: var(--wui-error-11);\n --wui-color-accent-12: var(--wui-error-12);\n --wui-color-accent-contrast: var(--wui-error-contrast);\n --wui-color-surface-token: var(--wui-error-2);\n --wui-color-text-button-token: var(--wui-error-11);\n`;\n\nexport const infoColorScheme = css`\n --wui-color-base-1: var(--wui-blue-1);\n --wui-color-base-2: var(--wui-blue-2);\n --wui-color-base-3: var(--wui-blue-3);\n --wui-color-base-4: var(--wui-blue-4);\n --wui-color-base-5: var(--wui-blue-5);\n --wui-color-base-6: var(--wui-blue-6);\n --wui-color-base-7: var(--wui-blue-7);\n --wui-color-base-8: var(--wui-blue-8);\n --wui-color-base-9: var(--wui-blue-9);\n --wui-color-base-10: var(--wui-blue-10);\n --wui-color-base-11: var(--wui-blue-11);\n --wui-color-base-12: var(--wui-blue-12);\n --wui-color-base-contrast: var(--wui-blue-contrast);\n --wui-color-accent-1: var(--wui-blue-1);\n --wui-color-accent-2: var(--wui-blue-2);\n --wui-color-accent-3: var(--wui-blue-3);\n --wui-color-accent-4: var(--wui-blue-4);\n --wui-color-accent-5: var(--wui-blue-5);\n --wui-color-accent-6: var(--wui-blue-6);\n --wui-color-accent-7: var(--wui-blue-7);\n --wui-color-accent-8: var(--wui-blue-8);\n --wui-color-accent-9: var(--wui-blue-9);\n --wui-color-accent-10: var(--wui-blue-10);\n --wui-color-accent-11: var(--wui-blue-11);\n --wui-color-accent-12: var(--wui-blue-12);\n --wui-color-accent-contrast: var(--wui-blue-contrast);\n --wui-color-surface-token: var(--wui-blue-2);\n --wui-color-text-button-token: var(--wui-blue-11);\n`;\n\nexport const successColorScheme = css`\n --wui-color-base-1: var(--wui-success-1);\n --wui-color-base-2: var(--wui-success-2);\n --wui-color-base-3: var(--wui-success-3);\n --wui-color-base-4: var(--wui-success-4);\n --wui-color-base-5: var(--wui-success-5);\n --wui-color-base-6: var(--wui-success-6);\n --wui-color-base-7: var(--wui-success-7);\n --wui-color-base-8: var(--wui-success-8);\n --wui-color-base-9: var(--wui-success-9);\n --wui-color-base-10: var(--wui-success-10);\n --wui-color-base-11: var(--wui-success-11);\n --wui-color-base-12: var(--wui-success-12);\n --wui-color-base-contrast: var(--wui-success-contrast);\n --wui-color-accent-1: var(--wui-success-1);\n --wui-color-accent-2: var(--wui-success-2);\n --wui-color-accent-3: var(--wui-success-3);\n --wui-color-accent-4: var(--wui-success-4);\n --wui-color-accent-5: var(--wui-success-5);\n --wui-color-accent-6: var(--wui-success-6);\n --wui-color-accent-7: var(--wui-success-7);\n --wui-color-accent-8: var(--wui-success-8);\n --wui-color-accent-9: var(--wui-success-9);\n --wui-color-accent-10: var(--wui-success-10);\n --wui-color-accent-11: var(--wui-success-11);\n --wui-color-accent-12: var(--wui-success-12);\n --wui-color-accent-contrast: var(--wui-success-contrast);\n --wui-color-surface-token: var(--wui-success-2);\n --wui-color-text-button-token: var(--wui-success-11);\n`;\n\nexport const warningColorScheme = css`\n --wui-color-base-1: var(--wui-warning-1);\n --wui-color-base-2: var(--wui-warning-2);\n --wui-color-base-3: var(--wui-warning-3);\n --wui-color-base-4: var(--wui-warning-4);\n --wui-color-base-5: var(--wui-warning-5);\n --wui-color-base-6: var(--wui-warning-6);\n --wui-color-base-7: var(--wui-warning-7);\n --wui-color-base-8: var(--wui-warning-8);\n --wui-color-base-9: var(--wui-warning-9);\n --wui-color-base-10: var(--wui-warning-10);\n --wui-color-base-11: var(--wui-warning-11);\n --wui-color-base-12: var(--wui-warning-12);\n --wui-color-base-contrast: var(--wui-warning-contrast);\n --wui-color-accent-1: var(--wui-warning-1);\n --wui-color-accent-2: var(--wui-warning-2);\n --wui-color-accent-3: var(--wui-warning-3);\n --wui-color-accent-4: var(--wui-warning-4);\n --wui-color-accent-5: var(--wui-warning-5);\n --wui-color-accent-6: var(--wui-warning-6);\n --wui-color-accent-7: var(--wui-warning-7);\n --wui-color-accent-8: var(--wui-warning-8);\n --wui-color-accent-9: var(--wui-warning-9);\n --wui-color-accent-10: var(--wui-warning-10);\n --wui-color-accent-11: var(--wui-warning-11);\n --wui-color-accent-12: var(--wui-warning-12);\n --wui-color-accent-contrast: var(--wui-warning-contrast);\n --wui-color-surface-token: var(--wui-warning-2);\n --wui-color-text-button-token: var(--wui-warning-11);\n`;\n\nexport const vendorHubspotColorScheme = css`\n --wui-color-base-1: var(--wui-vendor-hubspot-1);\n --wui-color-base-2: var(--wui-vendor-hubspot-2);\n --wui-color-base-3: var(--wui-vendor-hubspot-3);\n --wui-color-base-4: var(--wui-vendor-hubspot-4);\n --wui-color-base-5: var(--wui-vendor-hubspot-5);\n --wui-color-base-6: var(--wui-vendor-hubspot-6);\n --wui-color-base-7: var(--wui-vendor-hubspot-7);\n --wui-color-base-8: var(--wui-vendor-hubspot-8);\n --wui-color-base-9: var(--wui-vendor-hubspot-9);\n --wui-color-base-10: var(--wui-vendor-hubspot-10);\n --wui-color-base-11: var(--wui-vendor-hubspot-11);\n --wui-color-base-12: var(--wui-vendor-hubspot-12);\n --wui-color-base-contrast: var(--wui-vendor-hubspot-contrast);\n --wui-color-accent-1: var(--wui-vendor-hubspot-1);\n --wui-color-accent-2: var(--wui-vendor-hubspot-2);\n --wui-color-accent-3: var(--wui-vendor-hubspot-3);\n --wui-color-accent-4: var(--wui-vendor-hubspot-4);\n --wui-color-accent-5: var(--wui-vendor-hubspot-5);\n --wui-color-accent-6: var(--wui-vendor-hubspot-6);\n --wui-color-accent-7: var(--wui-vendor-hubspot-7);\n --wui-color-accent-8: var(--wui-vendor-hubspot-8);\n --wui-color-accent-9: var(--wui-vendor-hubspot-9);\n --wui-color-accent-10: var(--wui-vendor-hubspot-10);\n --wui-color-accent-11: var(--wui-vendor-hubspot-11);\n --wui-color-accent-12: var(--wui-vendor-hubspot-12);\n --wui-color-accent-contrast: var(--wui-vendor-hubspot-contrast);\n --wui-color-surface-token: var(--wui-vendor-hubspot-2);\n --wui-color-text-button-token: var(--wui-vendor-hubspot-11);\n`;\n\nexport const vendorMarketoColorScheme = css`\n --wui-color-base-1: var(--wui-vendor-marketo-1);\n --wui-color-base-2: var(--wui-vendor-marketo-2);\n --wui-color-base-3: var(--wui-vendor-marketo-3);\n --wui-color-base-4: var(--wui-vendor-marketo-4);\n --wui-color-base-5: var(--wui-vendor-marketo-5);\n --wui-color-base-6: var(--wui-vendor-marketo-6);\n --wui-color-base-7: var(--wui-vendor-marketo-7);\n --wui-color-base-8: var(--wui-vendor-marketo-8);\n --wui-color-base-9: var(--wui-vendor-marketo-9);\n --wui-color-base-10: var(--wui-vendor-marketo-10);\n --wui-color-base-11: var(--wui-vendor-marketo-11);\n --wui-color-base-12: var(--wui-vendor-marketo-12);\n --wui-color-base-contrast: var(--wui-vendor-marketo-contrast);\n --wui-color-accent-1: var(--wui-vendor-marketo-1);\n --wui-color-accent-2: var(--wui-vendor-marketo-2);\n --wui-color-accent-3: var(--wui-vendor-marketo-3);\n --wui-color-accent-4: var(--wui-vendor-marketo-4);\n --wui-color-accent-5: var(--wui-vendor-marketo-5);\n --wui-color-accent-6: var(--wui-vendor-marketo-6);\n --wui-color-accent-7: var(--wui-vendor-marketo-7);\n --wui-color-accent-8: var(--wui-vendor-marketo-8);\n --wui-color-accent-9: var(--wui-vendor-marketo-9);\n --wui-color-accent-10: var(--wui-vendor-marketo-10);\n --wui-color-accent-11: var(--wui-vendor-marketo-11);\n --wui-color-accent-12: var(--wui-vendor-marketo-12);\n --wui-color-accent-contrast: var(--wui-vendor-marketo-contrast);\n --wui-color-surface-token: var(--wui-vendor-marketo-2);\n --wui-color-text-button-token: var(--wui-vendor-marketo-11);\n`;\n\nexport const vendorPardotColorScheme = css`\n --wui-color-base-1: var(--wui-vendor-pardot-1);\n --wui-color-base-2: var(--wui-vendor-pardot-2);\n --wui-color-base-3: var(--wui-vendor-pardot-3);\n --wui-color-base-4: var(--wui-vendor-pardot-4);\n --wui-color-base-5: var(--wui-vendor-pardot-5);\n --wui-color-base-6: var(--wui-vendor-pardot-6);\n --wui-color-base-7: var(--wui-vendor-pardot-7);\n --wui-color-base-8: var(--wui-vendor-pardot-8);\n --wui-color-base-9: var(--wui-vendor-pardot-9);\n --wui-color-base-10: var(--wui-vendor-pardot-10);\n --wui-color-base-11: var(--wui-vendor-pardot-11);\n --wui-color-base-12: var(--wui-vendor-pardot-12);\n --wui-color-base-contrast: var(--wui-vendor-pardot-contrast);\n --wui-color-accent-1: var(--wui-vendor-pardot-1);\n --wui-color-accent-2: var(--wui-vendor-pardot-2);\n --wui-color-accent-3: var(--wui-vendor-pardot-3);\n --wui-color-accent-4: var(--wui-vendor-pardot-4);\n --wui-color-accent-5: var(--wui-vendor-pardot-5);\n --wui-color-accent-6: var(--wui-vendor-pardot-6);\n --wui-color-accent-7: var(--wui-vendor-pardot-7);\n --wui-color-accent-8: var(--wui-vendor-pardot-8);\n --wui-color-accent-9: var(--wui-vendor-pardot-9);\n --wui-color-accent-10: var(--wui-vendor-pardot-10);\n --wui-color-accent-11: var(--wui-vendor-pardot-11);\n --wui-color-accent-12: var(--wui-vendor-pardot-12);\n --wui-color-accent-contrast: var(--wui-vendor-pardot-contrast);\n --wui-color-surface-token: var(--wui-vendor-pardot-2);\n --wui-color-text-button-token: var(--wui-vendor-pardot-11);\n`;\n\nexport const navColorScheme = css`\n --wui-color-bg-app: #1e3399;\n --wui-color-bg-fill: var(--wui-blue-1);\n --wui-color-bg-fill-hover: #e7e9f4;\n --wui-color-bg-fill-active: #dcdfef;\n --wui-color-bg-surface: transparent;\n --wui-color-bg-surface-hover: #15267b;\n --wui-color-bg-surface-active: #122271;\n --wui-color-bg-surface-secondary: #15267b;\n --wui-color-bg-surface-secondary-hover: #122271;\n --wui-color-bg-surface-secondary-active: #101e67;\n --wui-color-bg-surface-tertiary: #0d1a5c;\n --wui-color-border-secondary: #101e67;\n --wui-color-border-hover-secondary: #0e1c61;\n --wui-color-border-active-secondary: #0d1a5c;\n --wui-color-border: var(--wui-color-bg-fill);\n --wui-color-border-hover: var(--wui-color-bg-fill-hover);\n --wui-color-border-active: var(--wui-color-bg-fill-active);\n --wui-color-icon: var(--wui-blue-1);\n --wui-color-icon-on-fill: var(--wui-color-bg-app);\n --wui-color-text: var(--wui-blue-1);\n --wui-color-text-on-fill: var(--wui-color-bg-app);\n --wui-color-text-link: var(--wui-blue-4);\n --wui-color-text-secondary: var(--wui-blue-6);\n --wui-color-text-button: var(--wui-blue-1);\n --wui-color-focus-ring: var(--wui-blue-1);\n\n /* Nav - Disabled */\n --wui-color-bg-surface-disabled: transparent;\n --wui-color-icon-disabled: var(--wui-blue-8);\n --wui-color-text-disabled: var(--wui-blue-8);\n\n /* Nav - Selected */\n --wui-color-bg-surface-selected: var(--wui-color-bg-fill);\n --wui-color-bg-surface-selected-active: var(--wui-color-bg-fill-active);\n --wui-color-bg-surface-selected-hover: var(--wui-color-bg-fill-hover);\n --wui-color-icon-selected: var(--wui-color-bg-app);\n --wui-color-text-selected: var(--wui-color-bg-app);\n --wui-color-border-selected: transparent;\n --wui-color-border-hover-selected: transparent;\n --wui-color-border-active-selected: transparent;\n`;\n","import { css } from 'styled-components';\n\nexport const borderRadiusTokens = css`\n --wui-border-radius-00: 0;\n --wui-border-radius-01: 4px;\n --wui-border-radius-02: 8px;\n --wui-border-radius-03: 16px;\n --wui-border-radius-04: 20px;\n --wui-border-radius-05: 24px;\n --wui-border-radius-rounded: 1000px;\n`;\n\nexport type BorderRadius =\n | 'border-radius-00'\n | 'border-radius-01'\n | 'border-radius-02'\n | 'border-radius-03'\n | 'border-radius-04'\n | 'border-radius-05'\n | 'border-radius-rounded';\n","import { css } from 'styled-components';\n\nexport const spacingTokens = css`\n --wui-space-00: 0px;\n --wui-space-01: 4px;\n --wui-space-02: 8px;\n --wui-space-03: 12px;\n --wui-space-04: 16px;\n --wui-space-05: 24px;\n --wui-space-06: 32px;\n --wui-space-07: 40px;\n --wui-space-08: 48px;\n --wui-space-09: 64px;\n`;\n\nexport type Spacings =\n | 'space-00'\n | 'space-01'\n | 'space-02'\n | 'space-03'\n | 'space-04'\n | 'space-05'\n | 'space-06'\n | 'space-07'\n | 'space-08'\n | 'space-09';\n","import { css } from 'styled-components';\n\nexport const typographyTokens = css`\n --wui-typography-family-default: intervariable, sans-serif;\n --wui-typography-family-brand: 'GT Walsheim', sans-serif;\n --wui-typography-family-mono: 'IBM Plex Mono', monospace;\n\n /* Brand Weights */\n --wui-typography-weight-brand-bold: 600;\n --wui-typography-weight-brand-black: 700;\n\n /* Heading Hero */\n --wui-typography-heading-hero-family: var(--wui-typography-family-brand);\n --wui-typography-heading-hero-line-height: 58px;\n --wui-typography-heading-hero-size: 48px;\n --wui-typography-heading-hero-weight: var(\n --wui-typography-weight-heading,\n var(--wui-typography-weight-brand-black)\n );\n\n /* Heading 1 */\n --wui-typography-heading-1-family: var(--wui-typography-family-brand);\n --wui-typography-heading-1-line-height: 44px;\n --wui-typography-heading-1-size: 36px;\n --wui-typography-heading-1-weight: var(\n --wui-typography-weight-heading,\n var(--wui-typography-weight-brand-black)\n );\n\n /* Heading 2 */\n --wui-typography-heading-2-family: var(--wui-typography-family-brand);\n --wui-typography-heading-2-line-height: 38px;\n --wui-typography-heading-2-size: 32px;\n --wui-typography-heading-2-weight: var(\n --wui-typography-weight-heading,\n var(--wui-typography-weight-brand-black)\n );\n\n /* Heading 3 */\n --wui-typography-heading-3-family: var(--wui-typography-family-brand);\n --wui-typography-heading-3-line-height: 30px;\n --wui-typography-heading-3-size: 24px;\n --wui-typography-heading-3-weight: var(\n --wui-typography-weight-heading,\n var(--wui-typography-weight-brand-bold)\n );\n\n /* Heading 4 */\n --wui-typography-heading-4-family: var(--wui-typography-family-brand);\n --wui-typography-heading-4-line-height: 24px;\n --wui-typography-heading-4-size: 18px;\n --wui-typography-heading-4-weight: var(\n --wui-typography-weight-heading,\n var(--wui-typography-weight-brand-bold)\n );\n\n /* Heading 5 */\n --wui-typography-heading-5-family: var(--wui-typography-family-brand);\n --wui-typography-heading-5-line-height: 22px;\n --wui-typography-heading-5-size: 16px;\n --wui-typography-heading-5-weight: var(\n --wui-typography-weight-heading,\n var(--wui-typography-weight-brand-bold)\n );\n\n /* Heading 6 */\n --wui-typography-heading-6-family: var(--wui-typography-family-brand);\n --wui-typography-heading-6-line-height: 18px;\n --wui-typography-heading-6-size: 14px;\n --wui-typography-heading-6-weight: var(\n --wui-typography-weight-heading,\n var(--wui-typography-weight-brand-bold)\n );\n\n /* Body Weight */\n --wui-typography-weight-body: 425;\n --wui-typography-weight-body-bold: 700;\n\n /* Body 1 */\n --wui-typography-body-1-family: var(--wui-typography-family-default);\n --wui-typography-body-1-line-height: 30px;\n --wui-typography-body-1-size: 20px;\n --wui-typography-body-1-weight: var(--wui-typography-weight-body);\n --wui-typography-body-1-paragraph-spacing: 16px;\n\n /* Body 2 */\n --wui-typography-body-2-family: var(--wui-typography-family-default);\n --wui-typography-body-2-line-height: 26px;\n --wui-typography-body-2-size: 16px;\n --wui-typography-body-2-weight: var(--wui-typography-weight-body);\n --wui-typography-body-2-paragraph-spacing: 12px;\n\n /* Body 3 */\n --wui-typography-body-3-family: var(--wui-typography-family-default);\n --wui-typography-body-3-line-height: 22px;\n --wui-typography-body-3-size: 14px;\n --wui-typography-body-3-weight: var(--wui-typography-weight-body);\n --wui-typography-body-3-paragraph-spacing: 8px;\n\n /* Body 4 */\n --wui-typography-body-4-family: var(--wui-typography-family-default);\n --wui-typography-body-4-line-height: 18px;\n --wui-typography-body-4-size: 12px;\n --wui-typography-body-4-weight: var(--wui-typography-weight-body);\n --wui-typography-body-4-paragraph-spacing: 8px;\n\n /* Label Weight */\n --wui-typography-weight-label: 475;\n --wui-typography-weight-label-bold: 600;\n\n /* Label 1 */\n --wui-typography-label-1-family: var(--wui-typography-family-default);\n --wui-typography-label-1-line-height: 24px;\n --wui-typography-label-1-size: 18px;\n --wui-typography-label-1-weight: var(--wui-typography-weight-label);\n\n /* Label 2 */\n --wui-typography-label-2-family: var(--wui-typography-family-default);\n --wui-typography-label-2-line-height: 18px;\n --wui-typography-label-2-size: 16px;\n --wui-typography-label-2-weight: var(--wui-typography-weight-label);\n\n /* Label 3 */\n --wui-typography-label-3-family: var(--wui-typography-family-default);\n --wui-typography-label-3-line-height: 16px;\n --wui-typography-label-3-size: 14px;\n --wui-typography-label-3-weight: var(--wui-typography-weight-label);\n\n /* Label 4 */\n --wui-typography-label-4-family: var(--wui-typography-family-default);\n --wui-typography-label-4-line-height: 14px;\n --wui-typography-label-4-size: 12px;\n --wui-typography-label-4-weight: var(--wui-typography-weight-label);\n`;\n","import { css } from 'styled-components';\n\n// Define the z-index of all our components in one place so we can easily see\n// their relationship and avoid bugs arising from arbitrary z-index values.\nexport const zIndexTokens = css`\n --wui-zindex-under: -1;\n --wui-zindex-backdrop: 500;\n --wui-zindex-menu: 500;\n --wui-zindex-modal: 500;\n --wui-zindex-popover: 500;\n --wui-zindex-select: 500;\n --wui-zindex-tooltip: 500;\n`;\n","import { css } from 'styled-components';\n\nexport const elevationTokens = css`\n --wui-elevation-01: 0px 4px 8px 0px var(--wui-color-drop-shadow);\n --wui-elevation-02: 0px 4px 24px 0px var(--wui-color-drop-shadow);\n`;\n","import { css } from 'styled-components';\n\nexport const motionTokens = css`\n /* Durations */\n --wui-motion-duration-01: 70ms;\n --wui-motion-duration-02: 110ms;\n --wui-motion-duration-03: 150ms;\n --wui-motion-duration-04: 240ms;\n --wui-motion-duration-05: 400ms;\n --wui-motion-duration-06: 700ms;\n\n @media (prefers-reduced-motion: reduce) {\n --wui-motion-duration-01: 0.01ms;\n --wui-motion-duration-02: 0.01ms;\n --wui-motion-duration-03: 0.01ms;\n --wui-motion-duration-04: 0.01ms;\n --wui-motion-duration-05: 0.01ms;\n --wui-motion-duration-06: 0.01ms;\n }\n\n /* Easings */\n\n /* Taken from: https://polaris.shopify.com/tokens/motion */\n --wui-motion-ease: cubic-bezier(0.25, 0.1, 0.25, 1);\n --wui-motion-ease-in: cubic-bezier(0.42, 0, 1, 1);\n --wui-motion-ease-out: cubic-bezier(0.19, 0.91, 0.38, 1);\n --wui-motion-ease-in-out: cubic-bezier(0.42, 0, 0.58, 1);\n --wui-motion-linear: cubic-bezier(0, 0, 1, 1);\n`;\n","import { css } from 'styled-components';\n\nexport const clickRegionGlobalStyles = css`\n [data-click-region] {\n position: relative;\n cursor: pointer;\n z-index: 1;\n }\n\n [data-click-region] a:not([data-click-region-target-link]),\n [data-click-region] button:not([data-click-region-target-button]) {\n z-index: 2;\n }\n\n [data-click-region-target-link]::before {\n content: '';\n cursor: inherit;\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n width: 100%;\n height: 100%;\n }\n`;\n","import type { ReactNode } from 'react';\nimport { useEffect, useRef, useState, useCallback, useMemo } from 'react';\nimport { isNonEmptyString } from '@wistia/type-guards';\nimport { AriaLiveContext } from './AriaLiveContext';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\n\nconst debugStyle = {\n position: 'absolute',\n border: '3px dashed red',\n backgroundColor: 'white',\n padding: '10px',\n margin: '5px',\n minHeight: '50px',\n width: 'calc(100% - 10px)',\n};\n\ntype AriaLiveProviderProps = {\n /**\n * Pass an arbitrary child node\n */\n children: ReactNode;\n /**\n * @ignore\n * Set to true to enable debug mode\n */\n debug?: boolean;\n};\n\nexport const AriaLiveProvider = ({ children, debug = false }: AriaLiveProviderProps) => {\n const [message, setMessage] = useState<string | null>(null);\n const liveRegionRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n // create the live region DOM element\n const liveRegion = document.createElement('div');\n liveRegion.setAttribute('role', 'alert');\n liveRegion.setAttribute('aria-live', 'polite');\n liveRegion.setAttribute('aria-atomic', 'true');\n\n // apply visually hidden (or debug) styles\n Object.assign(liveRegion.style, debug ? debugStyle : visuallyHiddenStyle);\n\n document.body.appendChild(liveRegion);\n liveRegionRef.current = liveRegion;\n\n return () => {\n // remove live region on unmount\n if (liveRegionRef.current) {\n document.body.removeChild(liveRegionRef.current);\n }\n };\n }, [debug]);\n\n useEffect(() => {\n if (liveRegionRef.current && isNonEmptyString(message)) {\n liveRegionRef.current.textContent = message;\n }\n }, [message]);\n\n // avoid unnecessary re-renders\n const announce = useCallback(\n (announcement: string, politeness: 'assertive' | 'polite' = 'polite') => {\n if (liveRegionRef.current) {\n liveRegionRef.current.setAttribute('aria-live', politeness);\n setMessage(announcement);\n\n // clear message after a short interval to ensure new announcements can be read\n setTimeout(() => setMessage(null), 1000);\n }\n },\n [],\n );\n\n // ensure the value passed to the Provider doesn't change on every render\n const value = useMemo(() => ({ announce }), [announce]);\n\n return <AriaLiveContext.Provider value={value}>{children}</AriaLiveContext.Provider>;\n};\n","import { createContext } from 'react';\n\n// prettier-ignore\nexport type AriaLiveContextType = {\n announce: (message: string, politeness?: 'assertive' | 'polite') => void;\n} | undefined;\n\nexport const AriaLiveContext = createContext<AriaLiveContextType>(undefined);\n","import type { CSSObject } from 'styled-components';\n\n/*\n * https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n * https://gist.github.com/ffoodd/000b59f431e3e64e4ce1a24d5bb36034\n *\n * 1.\n * @note `clip` is deprecated but works everywhere\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/clip\n *\n * 2.\n * @note `clip-path` is the future-proof version, but not very well supported yet\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/clip-path\n * @see http://caniuse.com/#search=clip-path\n *\n * 3.\n * @note preventing text to be condensed\n * @see https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n */\n\nexport const visuallyHiddenStyle: CSSObject = {\n border: '0',\n clip: 'rect(1px, 1px, 1px, 1px)' /* 1 */,\n clipPath: 'inset(50%)' /* 2 */,\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap' /* 3 */,\n width: '1px',\n};\n","import type { ToasterProps } from 'sonner';\nimport { Toaster } from 'sonner';\n\nconst toastConfig: ToasterProps = {\n expand: false, // ensure the Toasts \"stack\" when there are multiple visible\n gap: 24, // space between Toasts when expanded (--wui-space-05)\n position: 'bottom-left', // ensure this value matches the Position type\n visibleToasts: 3, // number of Toasts to show at a time\n};\n\nexport const ToastProvider = () => <Toaster {...toastConfig} />;\n","import { isNil } from '@wistia/type-guards';\n\n/**\n * Copies a string to user's clipboard for easy pasting in another location\n *\n * @param {string} textToCopy - the string that will be copied to users clipboard\n * @returns {Promise<void>} - Promise object that resolves when the text is copied\n */\nexport const copyToClipboard = async (textToCopy: string): Promise<void> => {\n if (isNil(navigator.clipboard)) {\n throw new DOMException('The clipboard is not accessible', 'NotAllowedError');\n }\n\n return navigator.clipboard.writeText(textToCopy).catch((error: unknown) => {\n if (error instanceof Error) {\n throw error;\n }\n throw new DOMException('The clipboard is not accessible', 'NotAllowedError');\n });\n};\n","export const defaultLocales = ['en-US'];\nexport const defaultTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC';\n\nexport const secondsInMinute = 60;\nexport const minutesInHour = 60;\nexport const halfAnHourInMinutes = 30;\nexport const hoursInDay = 24;\nexport const milisecondsInSecond = 1000;\nexport const daysInWeek = 7;\nexport const millisecondsInDay = hoursInDay * minutesInHour * secondsInMinute * milisecondsInSecond;\n","import { milisecondsInSecond, secondsInMinute, minutesInHour } from './constants';\n\n/**\n * @typedef {Object} Duration\n * @property {number} seconds - number of seconds\n * @property {number} minutes - number of minutes\n * @property {number} hours - number of hours\n */\n/**\n * Returns an object representing the duration in seconds, minutes and hours.\n *\n * @param {number} numberOfMilliseconds - number of milliseconds\n * @returns {Duration} -\n */\nexport const buildTimeDuration = (numberOfMilliseconds: number): Duration => {\n const numberOfSeconds = Math.floor(numberOfMilliseconds / milisecondsInSecond);\n const numberOfMinutes = Math.floor(numberOfSeconds / secondsInMinute);\n const numberOfHours = Math.floor(numberOfMinutes / minutesInHour);\n const seconds = numberOfSeconds - numberOfMinutes * secondsInMinute;\n const minutes = numberOfMinutes - numberOfHours * minutesInHour;\n\n return { seconds, minutes, hours: numberOfHours };\n};\n","/**\n * @param {*} date - possible date value - unknown type\n * @returns {boolean} - whether it is a date object\n */\nexport const isDate = (date: unknown): date is Date => date instanceof Date;\n","import { isDate } from './isDate';\n\n/**\n * @param {*} date - a Date object - could be unknown though\n * @returns {boolean} - whether it's a valid date\n */\nexport const isInvalidDate = (date: unknown): boolean => {\n if (!isDate(date)) {\n return true;\n }\n const time = date.getTime();\n\n return time === 0 || Number.isNaN(time);\n};\n","import { defaultTimeZone, defaultLocales } from './constants';\nimport { isDate } from './isDate';\nimport { isInvalidDate } from './isInvalidDate';\n\n/**\n * Converts a Date object into a date only string formatted to ISO8601.\n *\n * e.g. 2021-06-03\n * @param {*} date a Date object you want to convert into a string - gracefully handles any input\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current users time zone\n * @returns {string} a formatted date string\n */\nexport const dateOnlyISOString = (\n date: unknown,\n { timeZone = defaultTimeZone }: DateOnlyStringOptions = {},\n): string => {\n if (!isDate(date) || isInvalidDate(date)) {\n return '';\n }\n\n try {\n const formatter = new Intl.DateTimeFormat(defaultLocales, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone,\n });\n const parts = formatter.formatToParts(date);\n const partsAsObject = parts.reduce(\n (map: Partial<Record<Intl.DateTimeFormatPartTypes, string>>, obj) => {\n // eslint-disable-next-line no-param-reassign\n map[obj.type] = obj.value;\n return map;\n },\n {},\n ) as Record<Intl.DateTimeFormatPartTypes, string>;\n return `${partsAsObject.year}-${partsAsObject.month}-${partsAsObject.day}`;\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","import { defaultTimeZone, defaultLocales } from './constants';\nimport { isDate } from './isDate';\nimport { isInvalidDate } from './isInvalidDate';\n\nexport type DateOnlyStringOptions = {\n timeZone?: string;\n /**\n * When set to true, the returned string will omit the year.\n * e.g. \"Jun 3\" instead of \"Jun 3, 2021\"\n */\n omitYear?: boolean;\n};\n\n/**\n * Converts a Date object into a date only string.\n *\n * e.g. Jun 3, 2021 or Jun 3 if `omitYear` is true.\n *\n * @param {*} date a Date object you want to convert into a string - gracefully handles any input\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current user's time zone\n * @param {boolean} options.omitYear - if true, display the date without the year\n * @returns {string} a formatted date string\n */\nexport const dateOnlyString = (\n date: unknown,\n { timeZone = defaultTimeZone, omitYear = false }: DateOnlyStringOptions = {},\n): string => {\n if (!isDate(date) || isInvalidDate(date)) {\n return '';\n }\n\n // Conditionally build formatting options based on the omitYear flag.\n const formatOptions: Intl.DateTimeFormatOptions = omitYear\n ? { month: 'short', day: 'numeric', timeZone }\n : { dateStyle: 'medium', timeZone };\n\n try {\n return new Intl.DateTimeFormat(defaultLocales, formatOptions).format(date);\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","import { defaultTimeZone, defaultLocales } from './constants';\nimport { isDate } from './isDate';\nimport { isInvalidDate } from './isInvalidDate';\n\n/**\n * Converts a Date object into a date only string\n * for use in a sentence.\n *\n * e.g. June 3, 2021\n *\n * @param {*} date - a Date object you want to convert into a string - gracefully handles any value\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current users time zone\n * @returns {string} a formatted date string\n */\nexport const dateOnlyStringForSentence = (\n date: unknown,\n { timeZone = defaultTimeZone }: DateOnlyStringOptions = {},\n): string => {\n if (!isDate(date) || isInvalidDate(date)) {\n return '';\n }\n\n try {\n return new Intl.DateTimeFormat(defaultLocales, {\n dateStyle: 'long',\n timeZone,\n }).format(date);\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","import { defaultTimeZone, defaultLocales } from './constants';\nimport { isDate } from './isDate';\nimport { isInvalidDate } from './isInvalidDate';\n\n/**\n * Converts a Date object into a date only string formatted numerically.\n *\n * e.g. 06/03/2021\n * @param {*} date a Date object you want to convert into a string - gracefully handles any input\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current users time zone\n * @returns {string} a formatted date string\n */\nexport const dateOnlyStringNumeric = (\n date: unknown,\n { timeZone = defaultTimeZone }: DateOnlyStringOptions = {},\n): string => {\n if (!isDate(date) || isInvalidDate(date)) {\n return '';\n }\n\n try {\n return new Intl.DateTimeFormat(defaultLocales, {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone,\n }).format(date);\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","/**\n * @param {Partial<WistiaDateTimeObject> | null} dateTime - a dateTime object\n * @returns {Date | null} - the converted date or null if anything is missing\n */\nexport const dateTimeToDate = (\n dateTime: Partial<WistiaDateTimeObject> | null | undefined,\n): Date | null => {\n const { year, month, dayOfMonth, hours, minutes } = dateTime ?? {};\n\n if (year !== undefined && month !== undefined && dayOfMonth !== undefined) {\n return new Date(year, month, dayOfMonth, hours ?? 0, minutes ?? 0);\n }\n return null;\n};\n","import { isDate } from './isDate';\n\n/**\n * @typedef {Object} WistiaDateTimeObject\n * @property {number} minutes - number of minutes\n * @property {number} hours - number of hours\n * @property {number} dayOfMonth - day of the month\n * @property {number} year - year\n * @property {number} month - month\n */\n/**\n * @param {Date | null | undefined} date - a Date object\n * @returns {WistiaDateTimeObject | null} - replaceMe\n */\nexport const dateToDateTime = (date: Date | null | undefined): WistiaDateTimeObject | null => {\n if (!isDate(date)) {\n return null;\n }\n\n return {\n year: date.getFullYear(),\n month: date.getMonth(),\n dayOfMonth: date.getDate(),\n hours: date.getHours(),\n minutes: date.getMinutes(),\n };\n};\n","import { dateTimeToDate } from './dateTimeToDate';\n\n/**\n * @param {Partial<WistiaDateTimeObject>} dateTime - a dateTime object\n * @returns {string | null} - string with the ISO-8601 string or null\n */\nexport const dateTimeToISO = (dateTime: Partial<WistiaDateTimeObject>): string | null =>\n dateTimeToDate(dateTime)?.toISOString() ?? null;\n","import { halfAnHourInMinutes } from './constants';\nimport { dateTimeToDate } from './dateTimeToDate';\nimport { dateToDateTime } from './dateToDateTime';\nimport { dateTimeToISO } from './dateTimeToISO';\n\n/**\n * @param {Date} dateTime - a dateTime object\n * @param {boolean} toISOString - whether the return value should be an ISO string\n * @returns {string | Date | null} - string or date depending on if toIsoString is true or false. Could be null if there's an error.\n */\n// @ts-expect-error TS Compiler is having issues with the overload syntax here, but this should provide a good DX.\nexport const dateTimeRounded: DateTimeRoundedOverload = (dateTime: Date, toISOString = true) => {\n const first30Min = dateTime.getMinutes() <= halfAnHourInMinutes;\n const hours = first30Min ? dateTime.getHours() : dateTime.getHours() + 1;\n const minutes = first30Min ? halfAnHourInMinutes : 0;\n\n const dateWithTime = {\n ...dateToDateTime(dateTime),\n hours,\n minutes,\n };\n\n if (toISOString) {\n return dateTimeToISO(dateWithTime);\n }\n\n return dateTimeToDate(dateWithTime);\n};\n","import { isNil } from '@wistia/type-guards';\nimport { defaultTimeZone, defaultLocales } from './constants';\nimport { isInvalidDate } from './isInvalidDate';\n\n/**\n * Converts a Date object into a date and time string.\n *\n * e.g. Jun 3, 2021, 11:52 AM\n *\n * NOTE: you should probably use timeAgoString when trying to display\n * an updated/created timestamp.\n *\n * @param {*} date - a Date object you want to convert into a string - gracefully handles any value\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current users time zone\n * @returns {string} a formatted date string\n */\nexport const dateTimeString = (\n date: Date | number | string | null | undefined,\n { timeZone = defaultTimeZone, omitYear = false }: DateOnlyStringOptions = {},\n): string => {\n if (isNil(date)) {\n return '';\n }\n\n const formattedDate = new Date(date);\n\n if (isInvalidDate(formattedDate)) {\n return '';\n }\n\n try {\n const baseOptions: Intl.DateTimeFormatOptions = {\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n timeZone,\n };\n\n const options = omitYear ? baseOptions : { ...baseOptions, year: 'numeric' };\n\n return formattedDate.toLocaleDateString(defaultLocales, options as Intl.DateTimeFormatOptions);\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","import { defaultTimeZone, defaultLocales } from './constants';\nimport { isDate } from './isDate';\nimport { isInvalidDate } from './isInvalidDate';\n\n/**\n * Converts a Date object into a date and time string\n * for use in a sentence.\n *\n * e.g. June 3, 2021, 11:52 AM\n *\n * NOTE: you should probably use timeAgoString when trying to display\n * an updated/created timestamp.\n *\n * @param {*} date - a Date object you want to convert into a string - gracefully handles any value\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current users time zone\n * @returns {string} a formatted date string\n */\nexport const dateTimeStringForSentence = (\n date: unknown,\n { timeZone = defaultTimeZone }: DateOnlyStringOptions = {},\n): string => {\n if (!isDate(date) || isInvalidDate(date)) {\n return '';\n }\n\n try {\n const { year, month, day, hour, minute, dayPeriod } = new Intl.DateTimeFormat(defaultLocales, {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n timeZone,\n })\n .formatToParts(date)\n .reduce<Partial<Record<Intl.DateTimeFormatPartTypes, string>>>((acc, part) => {\n if (part.type !== 'literal') {\n acc[part.type] = part.value;\n }\n return acc;\n }, {}) as Record<Intl.DateTimeFormatPartTypes, string>;\n return `${month} ${day}, ${year}, ${hour}:${minute} ${dayPeriod}`;\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","import { minutesInHour } from './constants';\n\n/**\n * Given a date, shows the UTC offset.\n * @param {Date} date a Date object for calculating offset.\n * @returns {string} - string representing the UTC offset\n */\nexport const dateUTCOffset = (date: Date): string => {\n const offsetInHours = (date.getTimezoneOffset() / minutesInHour) * -1;\n const hours = Math.round(offsetInHours);\n const minutes = (offsetInHours - hours) * minutesInHour;\n const prefix = hours >= 0 ? '+' : '';\n const hoursString = `${hours}`.padStart(2, '0');\n const minutesString = `${minutes}`.padStart(2, '0');\n\n return `${prefix}${hoursString}:${minutesString}`;\n};\n","import { defaultTimeZone, defaultLocales } from './constants';\n\n/**\n * Converts a Date object into a month and day string formatted numerically.\n *\n * e.g. Thursday\n * @param {Date} date a Date object you want to convert into a string\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current users time zone\n * @returns {string} a formatted date string\n */\nexport const dayOfWeekString = (\n date: Date | null,\n { timeZone = defaultTimeZone }: DateOnlyStringOptions = {},\n): string => {\n if (date === null) {\n return '';\n }\n\n try {\n return new Intl.DateTimeFormat(defaultLocales, {\n weekday: 'long',\n timeZone,\n }).format(date);\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","/**\n * @param {number} num - pads integer with leading zero\n * @returns {string} - integer with padding as string\n */\nexport const padTimeInteger = (num: number): string => num.toString().padStart(2, '0');\n","import { buildTimeDuration } from './buildTimeDuration';\nimport { padTimeInteger } from './padTimeInteger';\n\n/**\n * A string representation of a duration for a media. Assumes most medias\n * are under an hour so only shows hours if media is over hour.\n *\n * @param {number} numberOfMilliseconds - number of milliseconds\n * @returns {string} - a string representation for duration\n */\nexport const mediaDurationString = (numberOfMilliseconds: number): string => {\n const { hours, minutes, seconds } = buildTimeDuration(numberOfMilliseconds);\n\n if (hours < 1) {\n return `${minutes}:${padTimeInteger(seconds)}`;\n }\n\n return `${hours}:${padTimeInteger(minutes)}:${padTimeInteger(seconds)}`;\n};\n","import { buildTimeDuration } from './buildTimeDuration';\n\n/**\n * Given number of miliseconds, returns the iso8601 string rounded down from\n * number of seconds. Mainly copied from https://github.com/wistia/player-modern/blob/master/src/utilities/iso8601Helper.js#L54\n * but modified to support milliseconds\n *\n * @param {number} numberOfMilliseconds - number of milliseconds\n * @returns {string} an iso8601 string format of duration\n */\nexport const millisecondsToDurationISOString = (numberOfMilliseconds: number): string => {\n const { seconds, minutes, hours } = buildTimeDuration(numberOfMilliseconds);\n\n let string = 'PT';\n\n if (hours) {\n string += `${hours}H`;\n }\n\n if (minutes) {\n string += `${minutes}M`;\n }\n\n if (seconds) {\n string += `${seconds}S`;\n }\n\n if (!(seconds || minutes || hours)) {\n string += '0S';\n }\n\n return string;\n};\n","import { defaultTimeZone, defaultLocales } from './constants';\nimport { isDate } from './isDate';\nimport { isInvalidDate } from './isInvalidDate';\n\n/**\n * Converts a Date object into a month and day string formatted numerically.\n *\n * e.g. 06/03/2021\n * @param {*} date a Date object you want to convert into a string - gracefully handles any value\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current users time zone\n * @returns {string} a formatted date string\n */\nexport const monthDayStringNumeric = (\n date: unknown,\n { timeZone = defaultTimeZone }: DateOnlyStringOptions = {},\n): string => {\n if (!isDate(date) || isInvalidDate(date)) {\n return '';\n }\n\n try {\n return new Intl.DateTimeFormat(defaultLocales, {\n month: '2-digit',\n day: '2-digit',\n timeZone,\n }).format(date);\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","import { buildTimeDuration } from './buildTimeDuration';\nimport { padTimeInteger } from './padTimeInteger';\n\n/**\n * A string representation of a duration for a user session. Assumes that\n * sessions may or may not be more than an hour. To prevent confusion all\n * times show hours, even those that are less than an hour.\n *\n * @param {number} numberOfMilliseconds - number of milliseconds\n * @returns {string} - a string representation of duration\n */\nexport const sessionDurationString = (numberOfMilliseconds: number): string => {\n const { hours, minutes, seconds } = buildTimeDuration(numberOfMilliseconds);\n\n return `${hours}:${padTimeInteger(minutes)}:${padTimeInteger(seconds)}`;\n};\n","import { isNil } from '@wistia/type-guards';\nimport { defaultLocales, defaultTimeZone } from './constants';\n\n/**\n * Get local year, month, day parts from a Date using Intl.DateTimeFormat.\n * This ignores the time of day (hours, minutes, etc.).\n *\n * @param {Date} date\n * @returns {{ year: number, month: number, day: number }}\n */\nexport const getLocalDateParts = (date: Date): { year: number; month: number; day: number } => {\n const parts = new Intl.DateTimeFormat(defaultLocales, {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n timeZone: defaultTimeZone,\n }).formatToParts(date);\n\n const yearPart = parts.find((part) => part.type === 'year');\n const monthPart = parts.find((part) => part.type === 'month');\n const dayPart = parts.find((part) => part.type === 'day');\n\n if (isNil(yearPart) || isNil(monthPart) || isNil(dayPart)) {\n throw new Error('Failed to parse date parts');\n }\n\n const year = parseInt(yearPart.value, 10);\n const month = parseInt(monthPart.value, 10);\n const day = parseInt(dayPart.value, 10);\n\n return { year, month, day };\n};\n","import { millisecondsInDay } from './constants';\nimport { getLocalDateParts } from './getLocalDateParts';\nimport { isDate } from './isDate';\n\n/**\n * Returns the difference in calendar days between two dates in local time,\n * ignoring the time of day. Essentially replicates date-fns/differenceInCalendarDays.\n *\n * @param {Date|number} dateLeft - The later date (or timestamp).\n * @param {Date|number} dateRight - The earlier date (or timestamp).\n * @returns {number} - Number of calendar days (can be negative).\n */\nexport const differenceInCalendarDays = (\n dateLeft: Date | number,\n dateRight: Date | number,\n): number => {\n const leftDate = isDate(dateLeft) ? dateLeft : new Date(dateLeft);\n const rightDate = isDate(dateRight) ? dateRight : new Date(dateRight);\n\n // if either is invalid, return NaN (rather than throwing RangeError)\n if (Number.isNaN(leftDate.getTime()) || Number.isNaN(rightDate.getTime())) {\n return NaN;\n }\n\n const { year: y1, month: m1, day: d1 } = getLocalDateParts(leftDate);\n const { year: y2, month: m2, day: d2 } = getLocalDateParts(rightDate);\n\n // `start of day` in local time for each date (ie. midnight)\n const startOfDayLeft = new Date(y1, m1 - 1, d1).getTime();\n const startOfDayRight = new Date(y2, m2 - 1, d2).getTime();\n const msDiff = startOfDayLeft - startOfDayRight;\n\n // convert to calendar days and round (to handle DST shifts, etc.)\n return Math.round(msDiff / millisecondsInDay);\n};\n","import { differenceInCalendarDays } from './differenceInCalendarDays';\nimport {\n defaultLocales,\n minutesInHour,\n secondsInMinute,\n milisecondsInSecond,\n daysInWeek,\n} from './constants';\nimport { dateTimeString } from './dateTimeString';\nimport { isInvalidDate } from './isInvalidDate';\nimport { dayOfWeekString } from './dayOfWeekString';\nimport { dateOnlyString } from './dateOnlyString';\n\n/**\n * Shows time ago relative to current time.\n *\n * examples:\n *\n * < 1 minute ago\n *\n * 33 minutes ago\n *\n * Today, 3:30 PM\n *\n * Yesterday, 6:22 AM\n *\n * Nov 11, 11:32 AM\n *\n * Feb 23, 2020, 1:55 PM\n *\n * or when `includeTime` is false:\n *\n * Today\n *\n * Yesterday\n *\n * on Thursday\n *\n * Nov 11\n *\n * Feb 23, 2020\n *\n * NOTE: timeAgoString doesn't support multiple time zones since doing so would\n * complicate calculations for whether to use \"Today\" or \"Yesterday\".\n * @param {Date} date - the date relative to now\n * @param {object} options -\n * @param {Date} options.nowAnchor - The date used to calculate relative to now. Defaults to current date but can be overwritten for tests.\n * @param {boolean} options.includeTime - Whether to include the time in the output. Defaults to true.\n * @returns {string} - a string representation of the date.\n */\nexport const timeAgoString = (\n date: Date,\n { nowAnchor = new Date(), includeTime = true }: TimeAgoOptions = {},\n): string => {\n if (isInvalidDate(date)) {\n return '';\n }\n\n const minutesAgo =\n (nowAnchor.valueOf() - date.valueOf()) / (secondsInMinute * milisecondsInSecond);\n const minutesAgoRounded = Math.round(minutesAgo);\n const differenceInDays = differenceInCalendarDays(nowAnchor, date);\n const isSameYear = date.getFullYear() === nowAnchor.getFullYear();\n\n // handle edge case where date is in future\n if (minutesAgo < 0) {\n return dateTimeString(date);\n }\n\n if (minutesAgo < 1) {\n return '< 1 minute ago';\n }\n\n if (minutesAgoRounded < 2) {\n return '1 minute ago';\n }\n\n if (minutesAgoRounded <= minutesInHour) {\n return `${minutesAgoRounded} minutes ago`;\n }\n if (differenceInDays === 0) {\n return includeTime\n ? `Today, ${Intl.DateTimeFormat(defaultLocales, { hour: 'numeric', minute: '2-digit' }).format(date)}`\n : 'Today';\n }\n\n if (differenceInDays === 1) {\n return includeTime\n ? `Yesterday, ${Intl.DateTimeFormat(defaultLocales, { hour: 'numeric', minute: '2-digit' }).format(date)}`\n : 'Yesterday';\n }\n\n if (differenceInDays < daysInWeek && !includeTime) {\n return `on ${dayOfWeekString(date)}`;\n }\n\n return includeTime\n ? dateTimeString(date, { omitYear: isSameYear })\n : dateOnlyString(date, { omitYear: false });\n};\n","import { defaultTimeZone, defaultLocales } from './constants';\nimport { isDate } from './isDate';\nimport { isInvalidDate } from './isInvalidDate';\n\n/**\n * Converts a Date object into a time only string.\n *\n * e.g. 7:30 AM\n * @param {*} date a Date object you want to convert into a string - gracefully handles any value\n * @param {object} options -\n * @param {string} options.timeZone - the timezone you want date displayed in, defaults to current users time zone\n * @returns {string} a formatted date string\n */\nexport const timeOnlyString = (\n date: unknown,\n { timeZone = defaultTimeZone }: DateOnlyStringOptions = {},\n): string => {\n if (!isDate(date) || isInvalidDate(date)) {\n return '';\n }\n\n try {\n return new Intl.DateTimeFormat(defaultLocales, {\n timeStyle: 'short',\n timeZone,\n }).format(date);\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n return ''; // handle bad input\n }\n};\n","import { buildTimeDuration } from './buildTimeDuration';\nimport { dateOnlyISOString } from './dateOnlyISOString';\nimport { dateOnlyString } from './dateOnlyString';\nimport { dateOnlyStringForSentence } from './dateOnlyStringForSentence';\nimport { dateOnlyStringNumeric } from './dateOnlyStringNumeric';\nimport { dateTimeRounded } from './dateTimeRounded';\nimport { dateTimeString } from './dateTimeString';\nimport { dateTimeStringForSentence } from './dateTimeStringForSentence';\nimport { dateTimeToDate } from './dateTimeToDate';\nimport { dateTimeToISO } from './dateTimeToISO';\nimport { dateToDateTime } from './dateToDateTime';\nimport { dateUTCOffset } from './dateUTCOffset';\nimport { dayOfWeekString } from './dayOfWeekString';\nimport { mediaDurationString } from './mediaDurationString';\nimport { millisecondsToDurationISOString } from './millisecondsToDurationISOString';\nimport { monthDayStringNumeric } from './monthDayStringNumeric';\nimport { sessionDurationString } from './sessionDurationString';\nimport { timeAgoString } from './timeAgoString';\nimport { timeOnlyString } from './timeOnlyString';\n\nexport const dateTime = {\n buildTimeDuration,\n dateOnlyISOString,\n dateOnlyString,\n dateOnlyStringForSentence,\n dateOnlyStringNumeric,\n dateTimeRounded,\n dateTimeString,\n dateTimeStringForSentence,\n dateTimeToDate,\n dateTimeToISO,\n dateToDateTime,\n dateUTCOffset,\n dayOfWeekString,\n mediaDurationString,\n millisecondsToDurationISOString,\n monthDayStringNumeric,\n sessionDurationString,\n timeAgoString,\n timeOnlyString,\n};\n","import type { MutableRefObject, LegacyRef, RefCallback } from 'react';\nimport { isNotNil, isFunction } from '@wistia/type-guards';\n\nexport const mergeRefs =\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <T = unknown>(refs: (LegacyRef<T> | MutableRefObject<T> | null | undefined)[]): RefCallback<T> =>\n (value) => {\n refs.forEach((ref) => {\n if (isFunction(ref)) {\n ref(value);\n return;\n }\n\n if (isNotNil(ref)) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n (ref as MutableRefObject<T | null>).current = value; // eslint-disable-line no-param-reassign\n }\n });\n };\n","// mq stands for \"media query\"\nimport { getValueAndUnit } from 'polished';\nimport { breakpoints } from '../../css/breakpoints';\n\nconst getMaxWidth = (breakpoint: string) => {\n const breakpointBuffer = 0.0025;\n const [value, unit] = getValueAndUnit(breakpoint) as [number, string];\n return `@media (max-width: ${Math.max(value - breakpointBuffer, 0)}${unit})`;\n};\n\nconst xsAndUp = () => `@media (min-width: ${breakpoints.xs})`;\nconst smAndUp = () => `@media (min-width: ${breakpoints.sm})`;\nconst mdAndUp = () => `@media (min-width: ${breakpoints.md})`;\nconst lgAndUp = () => `@media (min-width: ${breakpoints.lg})`;\nconst xlAndUp = () => `@media (min-width: ${breakpoints.xl})`;\n\nconst xsAndDown = () => getMaxWidth(breakpoints.xs);\nconst smAndDown = () => getMaxWidth(breakpoints.sm);\nconst mdAndDown = () => getMaxWidth(breakpoints.md);\nconst lgAndDown = () => getMaxWidth(breakpoints.lg);\nconst xlAndDown = () => getMaxWidth(breakpoints.xl);\n\nexport const mq = {\n xsAndUp,\n smAndUp,\n mdAndUp,\n lgAndUp,\n xlAndUp,\n xsAndDown,\n smAndDown,\n mdAndDown,\n lgAndDown,\n xlAndDown,\n};\n","export const breakpoints = {\n xs: '0em', // 0px\n sm: '37.5em', // 600px\n md: '56.5625em', // ~904px\n lg: '77.5em', // 1240px\n xl: '90em', // 1440px\n};\n","import { useContext } from 'react';\nimport { isNil } from '@wistia/type-guards';\nimport { AriaLiveContext } from '../../providers/AriaLiveProvider';\n\ntype AriaLiveContextType = {\n announce: (message: string, politeness?: 'assertive' | 'polite') => void;\n};\n\nexport const useAriaLive = (): AriaLiveContextType => {\n const context = useContext(AriaLiveContext);\n\n if (isNil(context)) {\n throw new Error('useAriaLive must be used within an AriaLiveProvider');\n }\n\n return context;\n};\n","import type { Dispatch, SetStateAction } from 'react';\nimport { useState, useCallback } from 'react';\n\nexport type UseBooleanReturn = [\n boolean,\n () => void,\n () => void,\n () => void,\n Dispatch<SetStateAction<boolean>>,\n];\n\nexport const useBoolean = (initialValue = false): UseBooleanReturn => {\n const [value, setValue] = useState(initialValue);\n\n const toggle = useCallback(() => setValue((val) => !val), []);\n const setTrue = useCallback(() => setValue(true), []);\n const setFalse = useCallback(() => setValue(false), []);\n\n return [value, toggle, setTrue, setFalse, setValue];\n};\n","import { useCallback } from 'react';\nimport { copyToClipboard } from '../../helpers/copyToClipboard';\nimport { useTimedToggle } from '../../private/hooks/useTimedToggle';\n\nexport const useClipboard = (\n textToCopy: string,\n timeout = 1500,\n): [() => Promise<void>, boolean, boolean] => {\n const [hasCopied, toggleHasCopied] = useTimedToggle(false);\n const [failedToCopy, toggleFailedToCopy] = useTimedToggle(false);\n\n const onCopy = useCallback(async () => {\n try {\n await copyToClipboard(textToCopy);\n\n // if there's no timeout value there's no need to set toggleHasCopied\n if (timeout && timeout > 0) {\n toggleHasCopied(timeout);\n }\n } catch (error: unknown) {\n if (error instanceof Error) {\n toggleFailedToCopy(timeout);\n }\n }\n }, [textToCopy, timeout, toggleHasCopied, toggleFailedToCopy]);\n\n return [onCopy, hasCopied, failedToCopy];\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport const useTimedToggle = (initialValue: boolean): [boolean, (timeout: number) => void] => {\n const [value, setValue] = useState<boolean>(false);\n const timeoutRef = useRef<number | undefined>(undefined);\n const initialValueRef = useRef(initialValue);\n\n const toggleValue = (timeout: number) => {\n clearTimeout(timeoutRef.current);\n setValue(!initialValueRef.current);\n timeoutRef.current = window.setTimeout(() => setValue(initialValueRef.current), timeout);\n };\n\n useEffect(() => () => clearTimeout(timeoutRef.current), []);\n\n return [value, toggleValue];\n};\n","import type { RefObject } from 'react';\nimport { useMemo, useState, useRef, useLayoutEffect } from 'react';\n\ntype Rect = {\n width: number;\n height: number;\n top: number;\n left: number;\n bottom: number;\n right: number;\n x: number;\n y: number;\n};\n\nconst initialRect: Rect = {\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n x: 0,\n y: 0,\n};\n\nexport const useElementObserver = <T extends HTMLElement>(): [RefObject<T | null>, Rect] => {\n const ref = useRef<T | null>(null);\n const [rect, setRect] = useState<Rect>(initialRect);\n const observer = useMemo(\n () =>\n new window.ResizeObserver((entries) => {\n if (entries[0]) {\n const { width, height, top, left, bottom, right, x, y } = entries[0].contentRect;\n setRect({ width, height, top, left, bottom, right, x, y });\n }\n }),\n [],\n );\n\n useLayoutEffect(() => {\n if (!ref.current) {\n return;\n }\n\n observer.observe(ref.current);\n\n // eslint-disable-next-line consistent-return\n return () => {\n observer.disconnect();\n };\n }, [observer]);\n\n return [ref, rect];\n};\n","import type {\n UseFilePickerConfig,\n useImperativeFilePickerConfig,\n FilePickerReturnTypes,\n ImperativeFilePickerReturnTypes,\n ExtractContentTypeFromConfig,\n} from 'use-file-picker/types';\nimport {\n useFilePicker as useOriginalFilePicker,\n useImperativeFilePicker as useOriginalImperativeFilePicker,\n} from 'use-file-picker';\n\n// export all types from use-file-picker\nexport type * from 'use-file-picker/types';\n\n// export validators from use-file-picker\nexport {\n FileAmountLimitValidator,\n FileTypeValidator,\n FileSizeValidator,\n ImageDimensionsValidator,\n PersistentFileAmountLimitValidator,\n} from 'use-file-picker/validators';\n\n/**\n * Hook that wraps `useFilePicker` from the use-file-picker library\n *\n * @param config Optional configuration for the file picker\n */\nexport const useFilePicker = <T extends UseFilePickerConfig = UseFilePickerConfig>(\n config: T = {} as T,\n): FilePickerReturnTypes<ExtractContentTypeFromConfig<T>> => {\n const finalConfig = {\n readFilesContent: false,\n ...config,\n } as T;\n\n return useOriginalFilePicker(finalConfig);\n};\n\n/**\n * Hook that wraps `useImperativeFilePicker` from the use-file-picker library\n *\n * @param config Optional configuration for the imperative file picker\n */\nexport const useImperativeFilePicker = <\n T extends useImperativeFilePickerConfig = useImperativeFilePickerConfig,\n>(\n config: T = {} as T,\n): ImperativeFilePickerReturnTypes<ExtractContentTypeFromConfig<T>> => {\n const finalConfig = {\n readFilesContent: false,\n ...config,\n } as T;\n\n return useOriginalImperativeFilePicker(finalConfig);\n};\n","import type { RefObject } from 'react';\nimport { useRef, useCallback, useEffect } from 'react';\nimport { isNotUndefined } from '@wistia/type-guards';\nimport {\n FOCUSABLE_ELEMENT_SELECTORS,\n createAriaHider,\n isFocusableElement,\n isTabbableElement,\n markForFocusLater,\n returnFocus,\n scopeTab,\n setupScopedFocus,\n teardownScopedFocus,\n} from './helpers';\n\ntype UseFocusTrapOptions = {\n disableAriaHider?: boolean;\n focusSelector?: HTMLElement | RefObject<HTMLElement | null> | string | null | undefined;\n};\n\nconst isRef = <T extends HTMLElement>(val: unknown): val is RefObject<T | null> => {\n return val !== null && typeof val === 'object' && 'current' in val;\n};\n\nexport const useFocusTrap = (active = true, options: UseFocusTrapOptions = {}) => {\n const ref = useRef<HTMLElement | null>(null);\n const restoreAriaRef = useRef<(() => void) | null>(null);\n\n const setRef = useCallback(\n (node: HTMLElement | null | undefined) => {\n if (restoreAriaRef.current !== null) {\n restoreAriaRef.current();\n }\n\n if (ref.current) {\n returnFocus();\n teardownScopedFocus();\n }\n\n if (active && node !== null && node !== undefined) {\n setupScopedFocus(node);\n markForFocusLater();\n\n const processNode = (node2: HTMLElement) => {\n // check if we should disable aria\n restoreAriaRef.current = !(options.disableAriaHider ?? false)\n ? createAriaHider(node2)\n : null; // Find the initial focus element\n\n let focusElement: HTMLElement | null = null;\n if (isNotUndefined(options.focusSelector)) {\n if (isRef(options.focusSelector)) {\n focusElement = options.focusSelector.current;\n } else {\n focusElement =\n typeof options.focusSelector === 'string'\n ? node2.querySelector(options.focusSelector)\n : options.focusSelector;\n }\n }\n\n if (!focusElement) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const children = Array.from(\n node2.querySelectorAll(FOCUSABLE_ELEMENT_SELECTORS),\n ) as HTMLElement[];\n focusElement = // Prefer tabbable elements, But fallback to any focusable element\n children.find(isTabbableElement) ?? // But fallback to any focusable element\n children.find(isFocusableElement) ?? // Nothing found\n null; // If everything else fails, see if the node itself can handle focus\n\n if (!focusElement && isFocusableElement(node2)) {\n focusElement = node2;\n }\n }\n\n if (focusElement) {\n // Set the initial focus inside the traps\n focusElement.focus();\n }\n\n if (!focusElement && process.env['NODE_ENV'] === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '[useFocusTrap]: Failed to find a focusable element after activating the focus trap. Make sure to include at an element that can recieve focus. As a fallback, you can also set \"tabIndex={-1}\" on the focus trap node.',\n node2,\n );\n }\n }; // Delay processing the HTML node by a frame. This ensures focus is assigned correctly.\n\n setTimeout(() => {\n // node.ownerDocument should always be a truthy value\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions\n if (node.ownerDocument) {\n processNode(node);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/strict-boolean-expressions\n if (!node.ownerDocument && process.env['NODE_ENV'] === 'development') {\n // eslint-disable-next-line no-console\n console.warn(\n '[useFocusTrap]: The focus trap is not part of the DOM yet, so it is unable to correctly set focus. Make sure to render the ref node.',\n node,\n );\n }\n });\n\n ref.current = node;\n } else {\n ref.current = null;\n }\n },\n [active, options.focusSelector, options.disableAriaHider],\n );\n\n useEffect(() => {\n if (!active) {\n return undefined;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && ref.current) {\n scopeTab(ref.current, event);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [active]);\n\n return setRef;\n};\n","export const focusSelector = 'a, input, select, textarea, button, object, [tabindex]';\n\nexport const FOCUSABLE_ELEMENT_SELECTORS =\n 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, [tabindex=\"0\"], [contenteditable]';\n\n/** Copied from VHS StringHelpers */\n/**\n * Coerces a value `value` into a string. If passed a null or undefined\n * value, returns an empty string.\n *\n * @param {*} value - a value of any type\n * @returns {string} - that value as a string\n */\nexport const coerceToString = (value: unknown): string =>\n value === null || value === undefined ? '' : String(value); // eslint-disable-line @typescript-eslint/no-base-to-string\n\nconst isHiddenElement = (element: HTMLElement) => {\n const { display, visibility } = window.getComputedStyle(element);\n const isHidden =\n display === 'none' ||\n element.style.display === 'none' ||\n visibility === 'none' ||\n element.style.visibility === 'hidden';\n return (element.offsetWidth <= 0 && element.offsetHeight <= 0) || isHidden;\n};\n\nconst isVisibleElement = (element: HTMLElement) => {\n let parentElement: HTMLElement | null = element;\n\n while (parentElement) {\n if (parentElement === document.body) {\n break;\n }\n if (isHiddenElement(parentElement)) {\n return false;\n }\n parentElement = parentElement.parentNode as HTMLElement | null;\n }\n\n return true;\n};\n\nconst getElementTabIndex = (element: HTMLElement) => {\n const tabIndex = element.getAttribute('tabindex');\n\n // @ts-expect-error - The logic was written this way pre-TS conversion, and there are checks for NaN below which is the case if the index is undefined\n return Number.parseInt(tabIndex ?? undefined, 10);\n};\n\nconst isTabIndexNaN = (element: HTMLElement) => {\n const tabIndex = getElementTabIndex(element);\n return Number.isNaN(tabIndex);\n};\n\nexport const isFocusableElement = (element: HTMLElement) => {\n const tabbableNodeRegEx = /input|select|textarea|button|object/;\n const nodeName = element.nodeName.toLowerCase();\n const isTabIndexNotNaN = !isTabIndexNaN(element);\n const isFocusable =\n // @ts-expect-error - Disabled is specific to buttons and inputs, but we could be dealing with any number of types here. Disabled would be undefined for those, so ignoring.\n (tabbableNodeRegEx.test(nodeName) && !(element.disabled as boolean)) ||\n (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n\n return Boolean(isFocusable) && isVisibleElement(element);\n};\n\n// elements a user can tab between, excluding elements with tabIndex=-1\nexport const isTabbableElement = (element: HTMLElement) => {\n const tabIndex = getElementTabIndex(element);\n return (isTabIndexNaN(element) || tabIndex >= 0) && isFocusableElement(element);\n};\n\nexport const findTabbableDescendants = (element: HTMLElement) =>\n Array.from<HTMLElement>(element.querySelectorAll(FOCUSABLE_ELEMENT_SELECTORS)).filter(\n isTabbableElement,\n );\n\nconst focusLaterElements: HTMLElement[] = [];\n\nlet focusElement: HTMLElement | null = null;\nlet needToFocus = false;\n\nconst handleBlur = () => {\n needToFocus = true;\n};\n\nconst handleFocus = () => {\n if (needToFocus) {\n needToFocus = false;\n\n if (!focusElement) {\n return;\n }\n\n if (focusElement.contains(document.activeElement)) {\n return;\n }\n\n const element = findTabbableDescendants(focusElement)[0] ?? focusElement;\n element.focus();\n }\n};\n\nexport const markForFocusLater = () => {\n const element = document.activeElement as HTMLElement | null;\n\n if (element !== null) {\n focusLaterElements.push(element);\n }\n};\n\nexport const returnFocus = () => {\n let toFocus = null;\n\n try {\n toFocus = focusLaterElements.pop();\n if (toFocus) {\n toFocus.focus();\n }\n } catch {\n // eslint-disable-next-line no-console\n console.warn(\n `You tried to return focus to ${coerceToString(toFocus)} but it is not in the DOM anymore`,\n );\n }\n};\n\nexport const setupScopedFocus = (element: HTMLElement) => {\n focusElement = element;\n document.addEventListener('focusout', handleBlur, false);\n document.addEventListener('focusin', handleFocus, true);\n};\n\nexport const teardownScopedFocus = () => {\n focusElement = null;\n document.removeEventListener('focusout', handleBlur);\n document.removeEventListener('focusin', handleFocus);\n};\n\n// Controls tabbing, so it stays inside the node element\nexport const scopeTab = (node: HTMLElement, event: KeyboardEvent) => {\n const tabbable = findTabbableDescendants(node);\n\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n\n const finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n\n // handle immediate shift+tab after opening with mouse\n const leavingFinalTabbable =\n finalTabbable === document.activeElement || node === document.activeElement;\n\n if (!leavingFinalTabbable) {\n return;\n }\n\n event.preventDefault();\n\n const target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n\n if (target) {\n target.focus();\n }\n};\n\n// Sets `aria-hidden` on all elements on the body, except for the active node\nexport const createAriaHider = (containerNode: HTMLElement, selector?: string) => {\n selector ??= 'body > :not(script)'; // eslint-disable-line no-param-reassign\n\n const rootNodes = Array.from(document.querySelectorAll(selector)).map((node) => {\n if (node.contains(containerNode)) {\n return undefined;\n }\n\n const ariaHidden = node.getAttribute('aria-hidden');\n\n if (ariaHidden === null || ariaHidden === 'false') {\n node.setAttribute('aria-hidden', 'true');\n }\n\n return {\n node,\n ariaHidden,\n };\n });\n\n return () => {\n rootNodes.forEach((item) => {\n if (!item) {\n return;\n }\n\n if (item.ariaHidden === null) {\n item.node.removeAttribute('aria-hidden');\n } else {\n item.node.setAttribute('aria-hidden', item.ariaHidden);\n }\n });\n };\n};\n","import { useCallback, useState } from 'react';\n\n// returning a new object reference guarantees that a before-and-after\n// equivalence check will always be false, resulting in a re-render,\n// even when multiple calls to forceUpdate are batched\nexport const useForceUpdate = (): (() => void) => {\n // eslint-disable-next-line react/hook-use-state\n const [, dispatch] = useState(Object.create(null));\n\n // turn dispatch(required_parameter) into dispatch()\n return useCallback(() => {\n dispatch(Object.create(null));\n }, [dispatch]);\n};\n","import { useState } from 'react';\n\ntype HoverProps = {\n onFocus: () => void;\n onMouseEnter: () => void;\n onBlur: () => void;\n onMouseLeave: () => void;\n onMouseMove?: () => void;\n};\n\nexport type UseIsHoveredReturnType = [boolean, HoverProps, (hovered: boolean) => void];\n\nexport const useIsHovered = (): UseIsHoveredReturnType => {\n const [isHovered, setIsHovered] = useState(false);\n\n const onFocus = () => setIsHovered(true);\n const onMouseEnter = () => setIsHovered(true);\n const onMouseMove = () => setIsHovered(true);\n const onBlur = () => setIsHovered(false);\n const onMouseLeave = () => setIsHovered(false);\n\n const hoverProps: HoverProps = {\n onFocus,\n onMouseEnter,\n onBlur,\n onMouseLeave,\n };\n\n if (!isHovered) {\n hoverProps.onMouseMove = onMouseMove;\n }\n\n return [isHovered, hoverProps, setIsHovered];\n};\n","import { useCallback } from 'react';\nimport { useEvent } from '../../private/hooks/useEvent';\n\ntype EventHandler = (event: KeyboardEvent) => void;\ntype KeyFilterPredicate = (evt: KeyboardEvent) => boolean;\ntype KeyFilter = KeyFilterPredicate | boolean | string | null | undefined;\n\ntype UseKeyOptions = {\n eventName?: string;\n eventTarget?: Parameters<typeof useEvent>[2];\n eventOptions?: Parameters<typeof useEvent>[3];\n};\n\nexport const useKey = (\n key: KeyFilter,\n eventHandler: EventHandler,\n { eventName = 'keydown', eventTarget, eventOptions }: UseKeyOptions = {},\n) => {\n const memoizedEventHandler = useCallback(\n (handlerEvent: KeyboardEvent) => {\n // key events that happen *inside* an input should be ignored; this is to avoid issues\n // where typing into an input is inadvertently triggering actions the user does not want\n if (\n ['INPUT', 'TEXTAREA', 'SELECT'].includes(document.activeElement?.nodeName ?? '') ||\n (document.activeElement as HTMLElement | null)?.isContentEditable\n ) {\n return;\n }\n\n let matchesKey = false;\n\n // key arg is a function so just return the function\n if (typeof key === 'function') {\n matchesKey = key(handlerEvent);\n } else if (typeof key === 'string') {\n // key arg is probably a KeyboardEvent key\n matchesKey = handlerEvent.key === key;\n } else if (key) {\n // any truthy, non-string key\n matchesKey = true;\n } else {\n // key arg is falsey\n matchesKey = false;\n }\n\n if (matchesKey) {\n eventHandler(handlerEvent);\n }\n },\n [key, eventHandler],\n );\n\n useEvent(eventName, memoizedEventHandler, eventTarget, eventOptions);\n};\n","import { useEffect, useRef } from 'react';\nimport { isValidRef } from '../../helpers/isValidRef';\nimport { noOpFn } from '../../helpers/noOpFn';\n\ntype AddEventListenerType = (\n type: string,\n listener: (evt: Event) => void,\n options?: AddEventListenerOptions | boolean,\n) => void;\n\ntype RemoveEventListenerType = (\n type: string,\n listener: (evt: Event) => void,\n options?: AddEventListenerOptions | boolean,\n) => void;\n\ntype Listenable = {\n addEventListener: AddEventListenerType;\n removeEventListener: RemoveEventListenerType;\n};\n\n// ensure element supports addEventListener\nconst isEventTargetSupported = (eventTarget: unknown): eventTarget is Listenable =>\n // @ts-expect-error the compiler thinks that addEventListener may not exist on eventTarget, but we still need to check it.\n\n Boolean(typeof eventTarget === 'object' && eventTarget?.addEventListener);\n\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\nexport const useEvent = <T extends Event>(\n eventName: Parameters<AddEventListenerType>[0],\n eventHandler: (event: T) => unknown,\n eventTarget: unknown = window,\n eventOptions: Parameters<RemoveEventListenerType>[2] = {},\n) => {\n // refs to store eventHandler & eventOptions\n const savedEventHandler = useRef<typeof eventHandler | undefined>(undefined);\n const savedEventOptions = useRef<typeof eventOptions | undefined>(undefined);\n\n // update ref when handler changes;\n // avoids effect dependencies array which could cause effect to re-run every render\n useEffect(() => {\n savedEventHandler.current = eventHandler;\n }, [eventHandler]);\n\n // update ref when options changes\n useEffect(() => {\n savedEventOptions.current = eventOptions;\n }, [eventOptions]);\n\n useEffect(() => {\n const target = isValidRef(eventTarget) ? eventTarget.current : eventTarget;\n\n // early return if we can't do anything useful with this hook\n if (!eventName || !isEventTargetSupported(target)) {\n return;\n }\n\n const eventListener = (event: Event) => {\n if (savedEventHandler.current !== undefined) {\n return savedEventHandler.current(event as T);\n }\n return noOpFn;\n };\n\n target.addEventListener(eventName, eventListener, savedEventOptions.current);\n\n // remove event listener on unmount\n // eslint-disable-next-line consistent-return\n return () => {\n target.removeEventListener(eventName, eventListener, savedEventOptions.current);\n };\n }, [eventName, eventTarget, savedEventOptions]);\n};\n","import type { RefObject } from 'react';\nimport { isNotNil, isRecord } from '@wistia/type-guards';\n\n// type guard that asserts that a given object is a valid React ref\nexport const isValidRef = (value: unknown): value is RefObject<null> => {\n return isNotNil(value) && isRecord(value) && 'current' in value;\n};\n","/* eslint-disable @typescript-eslint/no-empty-function */\nexport type NoOpFn = typeof noOpFn;\nexport type NoOpFnReturningNull = typeof noOpFnReturningNull;\nexport type AsyncNoOpFn = typeof asyncNoOpFn;\nexport type AsyncOrSyncNoOpFn = AsyncNoOpFn | NoOpFn;\n\nexport const noOpFn = (): void => {};\nexport const noOpFnReturningNull = (): null => null;\nexport const asyncNoOpFn = async (): Promise<void> => {};\n","import { useState } from 'react';\n\ntype SetItemType = Storage['setItem'];\n\n// https://usehooks.com/useLocalStorage/\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters -- TODO this is load-bearing, the build fails without it\nexport const useLocalStorage = <T, _>(\n key: Parameters<SetItemType>[0],\n initialValue: T,\n storage: Storage = window.localStorage,\n): [T | undefined, (newValue: T) => void, () => void] => {\n // State to store our value\n // Pass initial state function to useState so logic is only executed once\n const [storedValue, setStoredValue] = useState<T | undefined>(() => {\n try {\n // Get from local storage by key\n const item = storage.getItem(key);\n // Parse stored json or if none return initialValue\n return item !== null && Boolean(item) ? (JSON.parse(item) as T | undefined) : initialValue;\n } catch (error: unknown) {\n // If error also return initialValue\n console.log(error); // eslint-disable-line no-console\n return initialValue;\n }\n });\n\n // Return a wrapped version of useState's setter function that ...\n // ... persists the new value to localStorage.\n const setValue = (value: T | ((currentValue: T | undefined) => T | undefined)) => {\n try {\n // Allow value to be a function so we have same API as useState\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n // Save state\n setStoredValue(valueToStore);\n // Save to local storage\n storage.setItem(key, JSON.stringify(valueToStore));\n } catch (error: unknown) {\n // A more advanced implementation would handle the error case\n console.error(error); // eslint-disable-line no-console\n }\n };\n\n const removeValue = () => {\n storage.removeItem(key);\n setStoredValue(undefined);\n };\n\n return [storedValue, setValue, removeValue];\n};\n","import { useLayoutEffect } from 'react';\nimport { noOpFn } from '../../private/helpers/noOpFn';\n\nexport const useLockBodyScroll = (locked: boolean): void => {\n useLayoutEffect(() => {\n if (locked) {\n // stash original body overflow\n const originalStyle = window.getComputedStyle(document.body).overflow;\n // prevent scrolling on mount\n document.body.style.overflow = 'hidden';\n\n return () => {\n // restore scrolling on unmount\n document.body.style.overflow = originalStyle;\n };\n }\n\n return noOpFn;\n }, [locked]);\n};\n","import { isBoolean } from '@wistia/type-guards';\nimport { useWindowSize } from '../useWindowSize';\nimport { breakpoints } from '../../css/breakpoints';\n\nexport type UseMqReturnType = {\n isXlAndUp: boolean;\n isLgAndUp: boolean;\n isMdAndUp: boolean;\n isSmAndUp: boolean;\n isXsAndUp: boolean;\n isXsAndDown: boolean;\n isSmAndDown: boolean;\n isMdAndDown: boolean;\n isLgAndDown: boolean;\n isXlAndDown: boolean;\n};\n\nconst REM_SIZE = 16;\n\nexport const useMq = (): UseMqReturnType => {\n const { width } = useWindowSize();\n const viewportWidth = width / REM_SIZE;\n const isXsAndUp = true;\n const isSmAndUp = viewportWidth >= Number.parseFloat(breakpoints.sm);\n const isMdAndUp = viewportWidth >= Number.parseFloat(breakpoints.md);\n const isLgAndUp = viewportWidth >= Number.parseFloat(breakpoints.lg);\n const isXlAndUp = viewportWidth >= Number.parseFloat(breakpoints.xl);\n\n const isXsAndDown = viewportWidth < Number.parseFloat(breakpoints.sm);\n const isSmAndDown = viewportWidth < Number.parseFloat(breakpoints.md);\n const isMdAndDown = viewportWidth < Number.parseFloat(breakpoints.lg);\n const isLgAndDown = viewportWidth < Number.parseFloat(breakpoints.xl);\n const isXlAndDown = true;\n\n return {\n isXlAndUp,\n isLgAndUp,\n isMdAndUp,\n isSmAndUp,\n isXsAndUp,\n isXsAndDown,\n isSmAndDown,\n isMdAndDown,\n isLgAndDown,\n isXlAndDown,\n };\n};\n\nexport type UseActiveMqReturnType = keyof UseMqReturnType;\n\n// Returns an array of the currently active media queries\nexport const useActiveMq = (): UseActiveMqReturnType[] => {\n const mq: UseMqReturnType = useMq();\n const keys = Object.keys(mq) as UseActiveMqReturnType[];\n return keys.filter((key) => {\n const value = mq[key];\n return isBoolean(value) && value;\n });\n};\n","import { useState, useLayoutEffect } from 'react';\nimport { debounce } from 'throttle-debounce';\nimport { isClient } from '../../private/helpers/isClient';\n\nexport const useWindowSize = (interval = 0): { width: number; height: number } => {\n const [dimensions, setDimensions] = useState({\n width: isClient() ? window.innerWidth : 0,\n height: isClient() ? window.innerHeight : 0,\n });\n\n useLayoutEffect(() => {\n const handleResize = debounce(interval, () =>\n setDimensions({\n width: window.innerWidth,\n height: window.innerHeight,\n }),\n ) as EventListener;\n\n window.addEventListener('resize', handleResize);\n\n return () => window.removeEventListener('resize', handleResize);\n }, [interval]);\n\n return dimensions;\n};\n","/* eslint-disable no-typeof-window-undefined/no-typeof-window-undefined */\n/**\n * @returns {boolean} - whether running in a browser environment\n */\nexport const isClient = (): boolean =>\n typeof window !== 'undefined' && typeof document !== 'undefined';\n","import type { RefObject } from 'react';\nimport { useEffect } from 'react';\n\nexport type EventType =\n | 'focusin'\n | 'focusout'\n | 'mousedown'\n | 'mouseup'\n | 'touchend'\n | 'touchstart';\n\nexport const useOnClickOutside = (\n ref: RefObject<HTMLElement | null | undefined>,\n handler: (event: Event) => unknown,\n eventTypes: EventType | EventType[] = ['mousedown', 'touchend'],\n) => {\n useEffect(() => {\n const listener = (event: Event): void => {\n // don't do anything if the click event is on the ref element or descendent elements\n if (!ref.current || ref.current.contains(event.target as Node)) {\n return;\n }\n\n handler(event);\n };\n\n if (Array.isArray(eventTypes)) {\n eventTypes.forEach((eventType) => {\n document.addEventListener(eventType, listener);\n });\n } else {\n document.addEventListener(eventTypes, listener);\n }\n\n return () => {\n if (Array.isArray(eventTypes)) {\n eventTypes.forEach((eventType) => {\n document.removeEventListener(eventType, listener);\n });\n } else {\n document.removeEventListener(eventTypes, listener);\n }\n };\n }, [ref, handler, eventTypes]);\n};\n","import { useEffect, useRef } from 'react';\n\n// eslint-disable-next-line prettier/prettier\nexport const usePreviousValue = <T,>(value: T): T | undefined => {\n const ref = useRef<T>(undefined);\n\n useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n};\n","// NOTE: to future maintainers: it's something of an antipattern to return JSX from a hook, but in this\n// case we were doing it for DX reasons, where we wanted to use a familiar API for creating toasts.\nimport { useCallback } from 'react';\nimport { toast as sonnerToast } from 'sonner';\nimport type { ToastProps } from '../../private/components/Toast';\nimport { Toast } from '../../private/components/Toast';\n\ntype Position =\n | 'bottom-center'\n | 'bottom-left'\n | 'bottom-right'\n | 'top-center'\n | 'top-left'\n | 'top-right';\n\nexport type UseToastProps = ToastProps & {\n position?: Position;\n duration?: number;\n};\n\nexport type UseToastReturnType = ({\n message,\n icon,\n colorScheme,\n action,\n position,\n duration,\n}: UseToastProps) => void;\n\nexport const useToast = (): UseToastReturnType => {\n return useCallback(\n ({ message, action, colorScheme, icon, position = 'bottom-left', duration = 3000 }) => {\n sonnerToast.custom(\n () => {\n return (\n <Toast\n action={action}\n colorScheme={colorScheme}\n icon={icon}\n message={message}\n />\n );\n },\n { position, duration },\n );\n },\n [],\n );\n};\n","import type { JSX, ComponentPropsWithoutRef, ReactNode, ReactElement } from 'react';\nimport { cloneElement, isValidElement } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { ColorSchemeTypes } from '../../../components/ColorSchemeWrapper';\nimport type { ButtonProps, Button } from '../../../components/Button';\nimport { Ellipsis } from '../../../components/Ellipsis';\nimport { getColorScheme } from '../../helpers/getColorScheme';\nimport { lineClampCss } from '../../../css/lineClampCss';\n\nconst Message = styled(Ellipsis)`\n line-height: 1.3;\n font-size: var(--wui-typography-label-3-size);\n font-weight: var(--wui-typography-label-3-weight);\n ${lineClampCss(3)}\n word-break: normal;\n`;\n\nconst MessageWrapper = styled.div`\n display: flex;\n flex-grow: 1;\n flex-shrink: 1;\n flex-basis: auto;\n margin-right: var(--wui-space-03);\n\n svg {\n align-self: center;\n min-width: 16px;\n margin-right: var(--wui-space-02); /* space between icon & message */\n }\n`;\n\nconst ActionWrapper = styled.div`\n flex-grow: 0;\n flex-shrink: 0;\n flex-basis: auto;\n margin-right: var(--wui-space-03);\n`;\n\nconst StyledToast = styled.div<{\n $colorScheme: ColorSchemeTypes;\n}>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 56px;\n width: 356px;\n border-radius: var(--wui-border-radius-01);\n background-color: var(--wui-color-bg-surface);\n border: 1px solid var(--wui-color-border);\n color: var(--wui-color-text);\n padding-top: var(--wui-space-02);\n padding-right: 0; /* padding here is on the left/right slots */\n padding-bottom: var(--wui-space-02);\n padding-left: var(--wui-space-03);\n box-shadow: var(--wui-elevation-02);\n\n svg {\n height: 16px;\n width: 16px;\n flex: 0 0 16px;\n }\n`;\n\nexport type ToastProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Action can be undefined (default dismiss button), a Button component or false to hide the dismiss button\n */\n action?: ReactElement<typeof Button> | undefined;\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes | undefined;\n /**\n * Optional `Icon` component to use. Must be an instance of [Icon](/?path=/docs/components-icon--docs)\n */\n icon?: JSX.Element | undefined;\n /**\n * The message displayed in the toast\n */\n message: ReactNode;\n};\n\nconst Action = ({ actionButton }: { actionButton?: ToastProps['action'] }) => {\n // user-supplied Button force to `soft` variant\n if (isNotNil(actionButton) && isValidElement(actionButton)) {\n // note: the casting nonsense below occurs because actionButton is a ReactElement that wraps\n // a ForwardRefExoticComponent, and TypeScript struggles to confirm its props align with ButtonProps\n return (\n <ActionWrapper>\n {cloneElement(actionButton as unknown as ReactElement<ButtonProps>, {\n variant: 'soft', // force Button variant\n size: 'sm', // force Button size\n })}\n </ActionWrapper>\n );\n }\n\n // standard non-dismissable Toast\n return null;\n};\n\n/**\n * A Toast is a short, non-intrusive notification message that briefly appears on the screen to provide feedback to the user.\n *\n * This page is for screenshots only. For usage, see the [`useToast`](../?path=/docs/hooks-usetoast--docs) hook.\n */\nexport const Toast = ({\n action,\n message,\n colorScheme = 'inherit',\n icon,\n ...props\n}: ToastProps): JSX.Element => {\n return (\n <StyledToast\n {...props}\n $colorScheme={colorScheme}\n >\n <MessageWrapper>\n {isNotNil(icon) ? icon : null}\n <Message lines={3}>{message}</Message>\n </MessageWrapper>\n <Action actionButton={action} />\n </StyledToast>\n );\n};\n\nToast.displayName = 'Toast';\n","import type { ReactNode, ComponentPropsWithoutRef, JSX } from 'react';\nimport { isNotNil } from '@wistia/type-guards';\nimport { styled, css } from 'styled-components';\nimport { lineClampCss } from '../../css/lineClampCss';\n\nexport const ellipsisStyle = css`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n word-break: break-all;\n\n /*\n Using feature detection (i.e., -webkit-named-image) we only target Safari browsers\n with this additional styling to prevent a bug that's exclusive to Safari.\n\n Note that Safari does not properly hide the truncated text for non-inline/inline-block\n elements so we need to apply display: inline to all the paragraphs in the description.\n see https://stackoverflow.com/a/70683084\n */\n @supports (background: - webkit-named-image(i)) {\n & > div > div:has(p) {\n margin-top: 16px;\n }\n\n & > div > div > p {\n display: inline;\n }\n }\n`;\n\nexport type EllipsisComponentProps = {\n $lines: number | undefined;\n};\n\nconst EllipsisComponent = styled.span<EllipsisComponentProps>`\n ${ellipsisStyle};\n ${({ $lines }) => {\n if (isNotNil($lines)) {\n return lineClampCss($lines);\n }\n return undefined;\n }}\n`;\n\nexport type EllipsisProps = ComponentPropsWithoutRef<'span'> & {\n /**\n * The text that will be truncated with an ellipsis\n */\n children?: ReactNode;\n /**\n * The number that will be truncated with an ellipsis\n */\n lines?: number | undefined;\n};\n\n/**\n * Truncate text with an ellispsis visble at the end\n */\nexport const Ellipsis = ({ children, lines, ...props }: EllipsisProps): JSX.Element => (\n <EllipsisComponent\n $lines={lines}\n {...props}\n >\n {children}\n </EllipsisComponent>\n);\n\nEllipsis.displayName = 'Ellipsis_UI';\n","import { css } from 'styled-components';\n\nexport const lineClampCss = ($lines = 1) => css`\n -webkit-box-orient: vertical;\n -webkit-line-clamp: ${$lines};\n display: -webkit-box !important;\n white-space: initial;\n`;\n","import { css } from 'styled-components';\nimport type { ColorSchemeTypes } from '../../../components/ColorSchemeWrapper';\nimport {\n standardColorScheme,\n redColorScheme,\n orangeColorScheme,\n pinkColorScheme,\n greenColorScheme,\n purpleColorScheme,\n yellowColorScheme,\n blueColorScheme,\n warningColorScheme,\n errorColorScheme,\n infoColorScheme,\n successColorScheme,\n vendorHubspotColorScheme,\n vendorPardotColorScheme,\n vendorMarketoColorScheme,\n navColorScheme,\n} from '../../../css/designTokens/colorSchemes';\nimport { baseAliasTokens } from '../../../css/designTokens/colorAlias';\n\nconst colorSchemes = {\n standard: standardColorScheme,\n blue: blueColorScheme,\n green: greenColorScheme,\n red: redColorScheme,\n yellow: yellowColorScheme,\n purple: purpleColorScheme,\n orange: orangeColorScheme,\n pink: pinkColorScheme,\n error: errorColorScheme,\n info: infoColorScheme,\n success: successColorScheme,\n warning: warningColorScheme,\n 'vendor-hubspot': vendorHubspotColorScheme,\n 'vendor-marketo': vendorMarketoColorScheme,\n 'vendor-pardot': vendorPardotColorScheme,\n nav: navColorScheme,\n};\n\nexport const getColorScheme = (colorScheme: ColorSchemeTypes | 'nav') => {\n if (colorScheme === 'inherit') {\n return null;\n }\n\n if (colorScheme === 'nav') {\n return css`\n ${navColorScheme}\n `;\n }\n\n return css`\n ${colorSchemes[colorScheme]}\n ${baseAliasTokens}\n `;\n};\n","import type { JSX, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { Button } from '../Button';\nimport type { ButtonAsButtonProps, ButtonAsLinkProps } from '../Button/Button';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport type { IconNameType } from '../Icon';\nimport { Icon } from '../Icon';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\n\ntype StyledActionButtonProps = {\n $colorScheme: ColorSchemeTypes;\n $hoverColorScheme: ColorSchemeTypes;\n};\n\nconst StyledActionButton = styled(Button)<StyledActionButtonProps>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n display: grid;\n grid-template-columns: 24px 1fr;\n grid-template-rows: 24px auto;\n gap: var(--wui-space-02);\n width: fit-content;\n min-width: 96px;\n padding: var(--wui-space-03);\n background: var(--wui-color-bg-surface-secondary);\n row-gap: var(--wui-space-02);\n border-radius: var(--wui-border-radius-03);\n flex: 0 0 auto;\n transition: background-color var(--wui-motion-duration-02) var(--wui-motion-ease);\n\n &:focus {\n outline: none;\n }\n\n &:hover,\n &:focus-visible,\n &.force-state-hover,\n &.force-state-focus {\n --wui-color-text: var(--wui-color-text-button);\n\n ${({ $hoverColorScheme }) => getColorScheme($hoverColorScheme)};\n background: var(--wui-color-bg-surface-tertiary);\n }\n\n &:focus-visible,\n &.force-state-focus {\n --wui-action-button-focus-color: var(--wui-color-focus-ring);\n\n box-shadow:\n inset 0 0 0 2px var(--wui-action-button-focus-color),\n inset 0 0 0 3px var(--wui-color-bg-app);\n }\n\n &[aria-disabled='true'] {\n --wui-action-button-focus-color: var(--wui-color-focus-ring-disabled);\n\n background: var(--wui-color-bg-surface-disabled);\n color: var(--wui-color-text-disabled);\n cursor: not-allowed;\n\n && {\n svg {\n color: var(--wui-color-icon-disabled);\n }\n }\n }\n`;\n\nconst StyledMainIcon = styled.div`\n grid-column: 1;\n grid-row: 1;\n width: 24px;\n height: 24px;\n transition: color var(--wui-motion-duration-02) var(--wui-motion-ease);\n\n && {\n svg {\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n }\n }\n`;\n\ntype StyledSecondaryIconProps = {\n $hideUntilHover: boolean;\n};\n\nconst StyledSecondaryIcon = styled.div<StyledSecondaryIconProps>`\n grid-column: 2;\n grid-row: 1;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n transition: all var(--wui-motion-duration-02) var(--wui-motion-ease-out);\n\n ${({ $hideUntilHover }) =>\n $hideUntilHover &&\n css`\n will-change: transform;\n opacity: 0;\n transform: translateX(-16px);\n ${StyledActionButton}:hover:not([aria-disabled=\"true\"]) &,\n ${StyledActionButton}:focus-visible:not([aria-disabled=\"true\"]) &,\n ${StyledActionButton}.force-state-hover:not([aria-disabled=\"true\"]) &,\n ${StyledActionButton}.force-state-focus:not([aria-disabled=\"true\"]) & {\n transform: translateX(0);\n opacity: 1;\n }\n `};\n\n && {\n svg {\n width: 24px;\n height: 24px;\n flex: 0 0 24px;\n }\n }\n`;\n\ntype StyledLabelProps = {\n $disabled?: boolean;\n};\n\nconst StyledLabel = styled.span<StyledLabelProps>`\n font-family: var(--wui-typography-heading-4-family);\n font-size: var(--wui-typography-heading-4-size);\n font-weight: var(--wui-typography-heading-4-weight);\n line-height: var(--wui-typography-heading-4-line-height);\n color: ${({ $disabled }) =>\n $disabled ? 'var(--wui-color-text-disabled)' : 'var(--wui-color-text)'};\n grid-column: 1 / -1;\n grid-row: 2;\n text-align: left;\n`;\n\nexport type ActionButtonProps = {\n /**\n * @override\n * The text to display for the ActionButton\n *\n */\n children: ReactNode;\n /**\n * The [Icon](?path=/docs/components-icon--docs) component to use, e.g. `<Icon type=\"favorite\" />`\n */\n icon: JSX.Element;\n /**\n * @override\n * Disables the button\n */\n disabled?: boolean;\n\n /**\n * @ignore\n * Force a button into a particular css state (for debugging)\n */\n forceState?: 'focus' | 'hover' | undefined;\n /**\n * Set the [color scheme](../?path=/docs/docs-color-schemes--docs) of the `ActionButton` when hovered. By default, it will inherit the `colorScheme` prop.\n */\n hoverColorScheme?: ColorSchemeTypes;\n /**\n * Changes the secondary icon for different use cases\n */\n variant?: 'default' | 'gated' | 'menu-down' | 'menu-up';\n} & (\n | Omit<\n ButtonAsButtonProps,\n 'fullWidth' | 'isLoading' | 'leftIcon' | 'rightIcon' | 'size' | 'unstyled' | 'variant'\n >\n | Omit<\n ButtonAsLinkProps,\n 'fullWidth' | 'isLoading' | 'leftIcon' | 'rightIcon' | 'size' | 'unstyled' | 'variant'\n >\n);\n\n/**\n * Action Button component is used as one of a group of main actions on the page. It composes [Button]().\n */\nexport const ActionButton = forwardRef<HTMLAnchorElement | HTMLButtonElement, ActionButtonProps>(\n (\n {\n icon,\n colorScheme = 'standard',\n disabled = false,\n forceState,\n hoverColorScheme,\n variant = 'default',\n children,\n ...props\n }: ActionButtonProps,\n ref,\n ) => {\n const resolvedHoverColorScheme =\n hoverColorScheme ?? (variant === 'gated' ? 'purple' : 'inherit'); // Use purple hoverColorScheme for gated state unless explictly set\n\n const secondaryIconMap: Record<NonNullable<ActionButtonProps['variant']>, IconNameType> = {\n default: 'arrow-right',\n gated: 'sparkle',\n 'menu-up': 'caret-up',\n 'menu-down': 'caret-down',\n };\n\n return (\n <StyledActionButton\n {...props}\n ref={ref}\n $colorScheme={colorScheme}\n $hoverColorScheme={resolvedHoverColorScheme}\n disabled={disabled}\n forceState={forceState}\n unstyled={true}\n >\n <StyledMainIcon>{icon}</StyledMainIcon>\n <StyledSecondaryIcon $hideUntilHover={variant === 'default'}>\n <Icon\n colorScheme={variant === 'gated' ? 'purple' : 'inherit'}\n type={secondaryIconMap[variant]}\n />\n </StyledSecondaryIcon>\n <StyledLabel $disabled={disabled}>{children}</StyledLabel>\n </StyledActionButton>\n );\n },\n);\n\nActionButton.displayName = 'ActionButton_UI';\n","import type { ComponentPropsWithRef, JSX, ForwardedRef, ReactNode, MouseEvent } from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil, isNotUndefined } from '@wistia/type-guards';\nimport type { ButtonVariants } from './buttonStyles';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport type { LinkProps, LinkTypes } from '../Link/Link';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport { buttonResetCss } from '../../css/buttonResetCss';\nimport { buttonBaseStyles, buttonSizeStyles, buttonVariantsStyles } from './buttonStyles';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { Icon } from '../Icon';\nimport { Link } from '../Link';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp';\n\nexport type ButtonSizes = 'lg' | 'md' | 'sm' | 'xl';\n\n// children and onClick types get mangled in docs so setting @type manually fixes that\nexport type BaseButtonProps = {\n /**\n * Text that appears inside of the button\n *\n * @type ReactNode\n */\n children: ReactNode;\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Disables the button\n */\n disabled?: boolean;\n /**\n * Show a spinner when the button is in a loading state\n */\n isLoading?: boolean;\n /**\n * Icon to display on the left side of the button. Must be an instance of [Icon](?path=/docs/components-icon--docs)\n */\n leftIcon?: ReactNode | undefined;\n /**\n * Callback function invoked when the button is clicked\n *\n * @type (event: MouseEvent) => void\n */\n onClick?: ((event: MouseEvent) => void) | undefined;\n /**\n * @ignore\n * Force a button into a particular css state (for debugging)\n */\n forceState?: 'active' | 'focus' | 'hover' | undefined;\n /**\n * If true, the button will fill its container\n *\n * @type boolean | ResponsiveObject<boolean>\n */\n fullWidth?: ResponsiveObject<boolean> | boolean;\n /**\n * Provides a button without any styling (useful for wrapping another element)\n */\n unstyled?: boolean | undefined;\n /**\n * Icon to display on the right side of the button. Must be an instance of [Icon](?path=/docs/components-icon--docs)\n */\n rightIcon?: ReactNode | undefined;\n /**\n * The size of button to display. Can be used as a [responsive prop](/docs/ui-docs-responsive-props--docs)\n */\n size?: ButtonSizes | ResponsiveObject<ButtonSizes>;\n /**\n * A visual style for the button\n */\n variant?: ButtonVariants;\n};\n\nexport type ButtonAsLinkProps = BaseButtonProps &\n ComponentPropsWithRef<'a'> &\n LinkProps & {\n href: string | undefined;\n children: ReactNode;\n /**\n * This just allows pathrough to beforeAction for link\n * @ignore\n */\n beforeAction?: (() => Promise<void>) | (() => void);\n /**\n * This just allows pathrough to beforeAction for link\n * @ignore\n */\n type?: LinkTypes;\n };\n\nexport type ButtonAsButtonProps = BaseButtonProps &\n ComponentPropsWithRef<'button'> & {\n /**\n * If supplied, the button will render as a link\n */\n href?: never;\n type?: 'button' | 'reset' | 'submit';\n children: ReactNode;\n };\n\nexport const isLink = (props: Omit<ButtonProps, 'children'>): props is ButtonAsLinkProps =>\n isNotUndefined(props.href);\n\ntype StyledButtonProps = {\n $colorScheme: ColorSchemeTypes;\n $size: ButtonSizes;\n $variant: ButtonVariants;\n $unstyled: boolean;\n $fullWidth: boolean;\n};\n\nconst StyledButton = styled.button<StyledButtonProps>`\n ${buttonResetCss}\n ${({ $colorScheme }) => getColorScheme($colorScheme)}\n ${({ $size }) => buttonSizeStyles[$size]}\n ${({ $variant }) => buttonVariantsStyles[$variant]}\n ${({ $unstyled }) => !$unstyled && buttonBaseStyles}\n ${({ $fullWidth }) => $fullWidth && 'width: 100%;'}\n text-align: center;\n`;\n\ntype StyledButtonContentProps = {\n $isLoading: boolean;\n $hasLeftIcon: boolean;\n $hasRightIcon: boolean;\n};\n\nconst StyledButtonContent = styled.div<StyledButtonContentProps>`\n align-items: center;\n display: inline-flex;\n flex-grow: 1;\n justify-content: center;\n opacity: ${({ $isLoading }) => ($isLoading ? 0 : 1)};\n padding: 0 var(--button-label-padding-horizontal);\n gap: var(--button-label-gap);\n\n ${({ $hasLeftIcon }) => $hasLeftIcon && 'padding-left: 0;'}\n ${({ $hasRightIcon }) => $hasRightIcon && 'padding-right: 0;'}\n`;\n\nconst StyledButtonContentLabel = styled.span<{ $fullWidth: boolean }>`\n flex: ${({ $fullWidth }) => ($fullWidth ? 'initial' : '1')};\n`;\n\nconst StyledButtonLoading = styled.div`\n position: absolute;\n display: flex;\n`;\n\nexport type ButtonProps = ButtonAsButtonProps | ButtonAsLinkProps;\n\nconst ButtonContent = ({\n isLoading = false,\n leftIcon,\n rightIcon,\n children,\n fullWidth = false,\n}: Pick<ButtonProps, 'children' | 'isLoading' | 'leftIcon' | 'rightIcon'> & {\n fullWidth: boolean;\n}) => {\n return (\n <>\n {isLoading ? (\n <StyledButtonLoading>\n {/* <LiveMessage\n aria-live=\"assertive\"\n message=\"Button has been disabled while action is in progress\"\n /> */}\n <Icon type=\"spinner\" />\n </StyledButtonLoading>\n ) : null}\n <StyledButtonContent\n $hasLeftIcon={isNotNil(leftIcon)}\n $hasRightIcon={isNotNil(rightIcon)}\n $isLoading={isLoading}\n >\n {leftIcon ?? null}\n <StyledButtonContentLabel $fullWidth={fullWidth}>{children}</StyledButtonContentLabel>\n {rightIcon ?? null}\n </StyledButtonContent>\n </>\n );\n};\n\n/**\n * Button component is used to trigger an action or event,\n * such as submitting a form, opening a Dialog, canceling an\n * action, or performing a delete operation. It replaces the HTML `<button>` element,\n * unless an `href` attribute is passed, in which it will render an `<a>` element.\n */\nexport const Button = forwardRef<HTMLAnchorElement | HTMLButtonElement, ButtonProps>(\n (\n {\n children,\n forceState,\n className,\n leftIcon,\n rightIcon,\n colorScheme = 'inherit',\n disabled = false,\n isLoading = false,\n unstyled = false,\n onClick,\n fullWidth = false,\n size = 'md',\n variant = 'solid',\n ...props\n }: ButtonProps,\n ref,\n ): JSX.Element => {\n const responsiveFullWidth = useResponsiveProp(fullWidth);\n const responsiveSize = useResponsiveProp(size);\n\n const isAriaDisabled = () => isLoading || disabled;\n\n const commonProps = {\n 'aria-disabled': isAriaDisabled() || undefined,\n $colorScheme: colorScheme,\n $fullWidth: responsiveFullWidth,\n $size: responsiveSize,\n $unstyled: unstyled,\n $variant: variant,\n className,\n };\n\n if (forceState) {\n commonProps.className = `${className ?? ''} force-state-${forceState}`;\n }\n\n if (isLink(props)) {\n return (\n <StyledButton\n ref={ref as ForwardedRef<HTMLAnchorElement>}\n as={Link}\n disabled={isAriaDisabled()}\n {...props}\n {...commonProps}\n >\n {unstyled ? (\n children\n ) : (\n <ButtonContent\n fullWidth={responsiveFullWidth}\n isLoading={isLoading}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n >\n {children}\n </ButtonContent>\n )}\n </StyledButton>\n );\n }\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n if (isAriaDisabled()) {\n event.preventDefault();\n return;\n }\n\n if (isNotNil(onClick)) {\n onClick(event);\n }\n };\n\n return (\n <StyledButton\n ref={ref as ForwardedRef<HTMLButtonElement>}\n onClick={handleClick}\n type=\"button\"\n {...(props as ButtonAsButtonProps)}\n {...commonProps}\n data-wui-button={true}\n >\n {unstyled ? (\n children\n ) : (\n <ButtonContent\n fullWidth={responsiveFullWidth}\n isLoading={isLoading}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n >\n {children}\n </ButtonContent>\n )}\n </StyledButton>\n );\n },\n);\n\nButton.displayName = 'Button_UI';\n","import { css } from 'styled-components';\n\n// this style removes default styles applied by various browsers\nexport const buttonResetCss = css`\n align-items: center;\n background-color: transparent;\n background-image: none;\n border: none;\n box-shadow: none;\n color: inherit;\n cursor: pointer;\n display: inline-flex;\n font: inherit;\n justify-content: center;\n line-height: 1;\n padding: 0;\n text-align: left;\n text-decoration: none;\n vertical-align: middle;\n\n /*\n * Fixes input types in iOS. Higher specificity for Safari to deal with\n * Normalize defaults\n */\n &,\n &[type='button'],\n &[type='reset'],\n &[type='submit'] {\n appearance: none;\n }\n\n /* Normalize focus behavior of Firefox */\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &[aria-disabled] {\n cursor: not-allowed;\n }\n`;\n","// Sizes\n// --button-label-padding-horizontal is meant to be use in the ButtonContent component\n\nimport { css } from 'styled-components';\n\nexport const buttonSmallStyles = css`\n --button-padding-vertical: var(--wui-space-01);\n --button-padding-horizontal: var(--wui-space-02);\n --button-label-padding-horizontal: var(--wui-space-01);\n --button-typography-family: var(--wui-typography-family-default);\n --button-typography-size: var(--wui-typography-label-4-size);\n --button-typography-weight: var(--wui-typography-label-4-weight);\n --button-typography-line-height: 16px;\n --button-icon-size: 12px;\n --button-label-gap: 4px;\n`;\n\nexport const buttonMediumStyles = css`\n --button-padding-vertical: var(--wui-space-02);\n --button-padding-horizontal: var(--wui-space-02);\n --button-label-padding-horizontal: 6px;\n --button-typography-family: var(--wui-typography-family-default);\n --button-typography-size: var(--wui-typography-label-3-size);\n --button-typography-weight: var(--wui-typography-label-3-weight);\n --button-typography-line-height: 16px;\n --button-icon-size: 16px;\n --button-label-gap: 6px;\n`;\n\nexport const buttonLargeStyles = css`\n --button-padding-vertical: var(--wui-space-02);\n --button-padding-horizontal: var(--wui-space-02);\n --button-label-padding-horizontal: var(--wui-space-02);\n --button-typography-family: var(--wui-typography-family-default);\n --button-typography-size: var(--wui-typography-label-1-size);\n --button-typography-weight: var(--wui-typography-label-1-weight);\n --button-typography-line-height: 24px;\n --button-icon-size: 24px;\n --button-label-gap: 8px;\n`;\n\nexport const buttonExtraLargeStyles = css`\n --button-padding-vertical: var(--wui-space-03);\n --button-padding-horizontal: var(--wui-space-03);\n --button-label-padding-horizontal: var(--wui-space-02);\n --button-typography-family: var(--wui-typography-family-brand);\n --button-typography-size: 18px;\n --button-typography-weight: var(--wui-typography-weight-brand-bold);\n --button-typography-line-height: 24px;\n --button-icon-size: 24px;\n --button-label-gap: 8px;\n`;\n\nexport type ButtonVariants = 'ghost' | 'outline' | 'soft' | 'solid';\n\nexport const ghostButtonVariant = css`\n --button-color-bg-override: transparent;\n --button-color-bg-hover: var(--wui-color-bg-surface-secondary-hover);\n --button-color-bg-active: var(--wui-color-bg-surface-secondary-active);\n --button-color-text: var(--wui-color-text-button);\n --button-color-icon: var(--wui-color-icon);\n`;\n\nexport const outlineButtonVariant = css`\n ${ghostButtonVariant};\n --button-color-border: var(--wui-color-border);\n\n box-shadow: 0 0 0 2px var(--button-color-border) inset;\n`;\n\nexport const softButtonVariant = css`\n --button-color-bg: var(--wui-color-bg-surface-secondary);\n --button-color-bg-hover: var(--wui-color-bg-surface-secondary-hover);\n --button-color-bg-active: var(--wui-color-bg-surface-secondary-active);\n --button-color-text: var(--wui-color-text-button);\n --button-color-icon: var(--wui-color-icon);\n`;\n\nexport const solidButtonVariant = css`\n --button-color-bg: var(--wui-color-bg-fill);\n --button-color-bg-hover: var(--wui-color-bg-fill-hover);\n --button-color-bg-active: var(--wui-color-bg-fill-active);\n --button-color-text: var(--wui-color-text-on-fill);\n --button-color-icon: var(--wui-color-icon-on-fill);\n`;\n\n// [aria-disabled]\nexport const disabledButtonVariant = css`\n --button-color-bg: var(--button-color-bg-override, var(--wui-color-bg-surface-disabled));\n --button-color-bg-hover: var(--button-color-bg-override, var(--wui-color-bg-surface-disabled));\n --button-color-bg-active: var(--button-color-bg-override, var(--wui-color-bg-surface-disabled));\n --button-color-text: var(--wui-color-text-disabled);\n --button-color-icon: var(--wui-color-icon-disabled);\n --button-color-border: var(--wui-color-border-disabled);\n`;\n\n// [aria-pressed]\nexport const pressedButtonVariant = css`\n --button-color-bg: var(--wui-color-bg-surface-selected);\n --button-color-bg-hover: var(--wui-color-bg-surface-selected-hover);\n --button-color-bg-active: var(--wui-color-bg-surface-selected-active);\n --button-color-text: var(--wui-color-text-selected);\n --button-color-icon: var(--wui-color-icon-selected);\n --button-color-border: var(--wui-color-border-selected);\n`;\n\nexport const buttonBaseStyles = css`\n border-radius: var(--wui-border-radius-rounded);\n font-family: var(--button-typography-family);\n font-size: var(--button-typography-size);\n font-weight: var(--button-typography-weight);\n line-height: var(--button-typography-line-height);\n padding: var(--button-padding-vertical) var(--button-padding-horizontal);\n background: var(--button-color-bg);\n color: var(--button-color-text);\n transition: background-color var(--wui-motion-duration-01) var(--wui-motion-ease);\n\n /* This ensure that the icon is the corect color when the style is solid or the button is disabled */\n && {\n svg {\n color: var(--button-color-icon);\n width: var(--button-icon-size);\n height: var(--button-icon-size);\n flex: 0 0 var(--button-icon-size);\n }\n }\n\n &:hover,\n &.force-state-hover {\n background: var(--button-color-bg-hover);\n }\n\n &:active,\n &.force-state-active {\n background: var(--button-color-bg-active);\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible,\n &.force-state-focus {\n --wui-button-focus-color: var(--wui-color-focus-ring);\n\n background: var(--button-color-bg-hover);\n box-shadow:\n inset 0 0 0 2px var(--wui-button-focus-color),\n inset 0 0 0 3px var(--wui-color-bg-app);\n\n &[aria-disabled='true'] {\n --wui-button-focus-color: var(--wui-color-focus-ring-disabled);\n }\n }\n\n &[aria-disabled='true'] {\n ${disabledButtonVariant};\n }\n\n &[aria-pressed='true'] {\n ${pressedButtonVariant};\n }\n`;\n\nexport const buttonVariantsStyles = {\n ghost: ghostButtonVariant,\n outline: outlineButtonVariant,\n soft: softButtonVariant,\n solid: solidButtonVariant,\n};\n\nexport const buttonSizeStyles = {\n sm: buttonSmallStyles,\n md: buttonMediumStyles,\n lg: buttonLargeStyles,\n xl: buttonExtraLargeStyles,\n};\n","import type { ComponentPropsWithoutRef, JSX } from 'react';\nimport { isNil } from '@wistia/type-guards';\nimport { styled, css } from 'styled-components';\nimport type { IconNameType } from './iconMap';\nimport { iconMap } from './iconMap';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\n\n// size in pixels\nexport const iconSizeMap = {\n sm: '12',\n md: '16',\n lg: '24',\n xl: '32',\n xxl: '48',\n};\n\ntype StyledIconProps = {\n $colorScheme?: ColorSchemeTypes;\n $height?: string | undefined;\n $isInline?: boolean;\n $width?: string | undefined;\n};\n\nexport const iconInlineStyle = css`\n [data-wui-icon-inline] {\n --wui-icon-inline-size: 0.8em;\n --wui-icon-inline-offset: 0.05em;\n --wui-icon-vertical-align: none;\n\n top: var(--wui-icon-inline-offset);\n position: relative;\n }\n`;\n\nconst StyledIcon = styled.svg<StyledIconProps>`\n ${({ $colorScheme }) => getColorScheme($colorScheme ?? 'inherit')}\n --wui-icon-size: var(--wui-icon-inline-size, ${({ $height }) => $height}px);\n --wui-icon-vertical-align: middle;\n\n flex: 0 0 var(--wui-icon-size);\n height: var(--wui-icon-size);\n width: var(--wui-icon-size);\n`;\n\nexport type IconProps = ComponentPropsWithoutRef<'svg'> & {\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Determines if the icon should use inline styles when used with [Text]() and [Heading]() components\n */\n useInlineStyles?: boolean;\n /**\n * Is Icon on a filled background?\n */\n invertColor?: boolean;\n /**\n * The size of the icon to display\n *\n */\n size?: ResponsiveObject<keyof typeof iconSizeMap> | keyof typeof iconSizeMap;\n /**\n * @ignore\n */\n style?: Record<string, unknown>;\n /**\n * Determines which icon to display\n */\n type: IconNameType;\n};\n\n/**\n * A component that renders any of our available icons.\n *\n * For inline usage with text, wrap the Icon within a Text component\n * and set inline=true. The icon will automatically align with the text\n * using the typography-specific positioning.\n *\n * Note that icons should not be used directly for interactivity.\n * If you need an interactive element, use IconButton.\n */\nexport const Icon = ({\n useInlineStyles = true,\n invertColor,\n colorScheme = 'inherit',\n size = 'lg',\n style,\n type,\n ...props\n}: IconProps): JSX.Element => {\n const responsiveSize = useResponsiveProp(size);\n\n if (isNil(type)) {\n throw new Error('An Icon component requires a `type` prop to be provided');\n }\n\n if (isNil(iconMap[type])) {\n throw new Error(`Type \"${type}\" does not exist, please update type prop in Icon component.`);\n }\n\n if (isNil(iconSizeMap[responsiveSize])) {\n throw new Error(\n `Size \"${responsiveSize}\" does not exist, please update size prop in Icon component.`,\n );\n }\n\n const IconElement = iconMap[type];\n\n // so we do not have to add this to each individual Icon but still allow overrides\n const defaultStyle = {\n verticalAlign: 'var(--wui-icon-vertical-align)',\n ...style,\n };\n\n const iconColor = invertColor ? 'var(--wui-color-icon-on-fill)' : 'var(--wui-color-icon)';\n\n return (\n <StyledIcon\n $colorScheme={colorScheme}\n $height={iconSizeMap[responsiveSize]}\n $width={iconSizeMap[responsiveSize]}\n aria-hidden=\"true\"\n as={IconElement}\n data-wui-icon-inline={useInlineStyles ? true : undefined}\n role=\"presentation\"\n style={defaultStyle}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n // guard against `color` being snuck in as a prop since, at this point in time, we don't want to allow color overrides\n color={iconColor}\n />\n );\n};\n\nIcon.displayName = 'Icon_UI';\n","import type { SVGProps } from 'react';\n\nexport const AbTestIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.0599 18.296L15.3332 9.09199V3.33334H16.3332C16.8852 3.33334 17.3332 2.88534 17.3332 2.33334C17.3332 1.78134 16.8852 1.33334 16.3332 1.33334H7.66659C7.11459 1.33334 6.66659 1.78134 6.66659 2.33334C6.66659 2.88534 7.11459 3.33334 7.66659 3.33334H8.66658V9.09199L3.93993 18.296C3.4586 19.2333 3.4986 20.3293 4.04793 21.2293C4.59726 22.1293 5.55459 22.6666 6.60792 22.6666H17.3906C18.4452 22.6666 19.4026 22.1293 19.9506 21.2293C20.4999 20.3293 20.5399 19.2333 20.0586 18.296H20.0599ZM10.5559 9.79066C10.6292 9.64932 10.6666 9.49199 10.6666 9.33332V3.33334H13.3332V9.33332C13.3332 9.49199 13.3706 9.64932 13.4439 9.79066L15.6052 14H8.39458L10.5559 9.79066Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AccessibilityIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.9998 1.33334C6.13319 1.33334 1.33321 6.13333 1.33321 12C1.33321 17.8666 6.13319 22.6666 11.9998 22.6666C17.8665 22.6666 22.6665 17.8666 22.6665 12C22.6665 6.13333 17.8665 1.33334 11.9998 1.33334ZM11.9998 4.32C12.9598 4.32 13.8132 5.17333 13.8132 6.13333C13.8132 7.09333 12.9598 7.94666 11.9998 7.94666C11.0398 7.94666 10.1865 7.09333 10.1865 6.13333C10.1865 5.17333 11.0398 4.32 11.9998 4.32ZM9.33319 19.68C9.22652 19.68 9.11985 19.68 8.90652 19.5733C8.37319 19.36 8.26652 18.8266 8.47985 18.2933C8.47985 18.2933 9.97318 14.24 10.2932 12.7466C10.3998 12.2133 10.5065 11.7867 10.5065 11.1467C10.5065 10.9333 10.3998 10.72 10.1865 10.6133L6.55986 9.54666C6.02653 9.33332 5.70653 8.79999 5.91986 8.37333C6.02653 7.83999 6.55986 7.62666 7.09319 7.73333C7.09319 7.73333 10.7198 8.90666 11.9998 8.90666C13.2798 8.90666 17.0132 7.73333 17.0132 7.73333C17.5465 7.62666 18.0798 7.94666 18.1865 8.37333C18.2932 8.90666 17.9732 9.43999 17.5465 9.54666L13.9198 10.72C13.7065 10.8267 13.5998 10.9333 13.5998 11.2533C13.5998 11.8933 13.7065 12.32 13.8132 12.8533C14.1332 14.3466 15.6265 18.4 15.6265 18.4C15.8398 18.9333 15.6265 19.4666 15.1998 19.68C15.0932 19.7866 14.9865 19.7866 14.7732 19.7866C14.4532 19.7866 14.0265 19.5733 13.9198 19.2533L11.9998 14.3466L10.1865 19.2533C10.0799 19.5733 9.65318 19.68 9.33319 19.68Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ActivityIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.9998 1.33334C6.11847 1.33334 1.33315 6.11867 1.33315 12C1.33315 17.8813 6.11847 22.6666 11.9998 22.6666C17.8811 22.6666 22.6664 17.8813 22.6664 12C22.6664 6.11867 17.8811 1.33334 11.9998 1.33334ZM18.3731 10.3733L14.8451 13.9013C14.1971 14.5506 13.1371 14.5506 12.4878 13.9013L10.3331 11.7467L7.0398 15.04C6.84513 15.2346 6.58913 15.3333 6.33313 15.3333C6.07713 15.3333 5.82113 15.236 5.62647 15.04C5.2358 14.6493 5.2358 14.016 5.62647 13.6253L9.15446 10.0973C9.80246 9.44799 10.8625 9.44799 11.5118 10.0973L13.6664 12.252L16.9598 8.95866C17.3504 8.56799 17.9838 8.56799 18.3744 8.95866C18.7651 9.34932 18.7651 9.98266 18.3744 10.3733H18.3731Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AddFolderIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <clipPath id=\"a\">\n <path d=\"m-.000244 0h24v24h-24z\" />\n </clipPath>\n <g clipPath=\"url(#a)\">\n <path\n d=\"m19.6661 15.3334c.552 0 1 .448 1 1v2.333h2.334c.5518.0002.9999.4483 1 1 0 .5519-.4482.9999-1 1h-2.334v2.334c-.0002.5518-.4481 1-1 1-.5517-.0001-.9998-.4483-1-1v-2.334h-2.333c-.552 0-1-.448-1-1 .0001-.5518.4481-1 1-1h2.333v-2.333c0-.5519.4481-.9998 1-1zm-11.39844-12.66696c1.11734 0 2.16034.50007 2.86034 1.37207l.5039.62793h6.7012c2.0227 0 3.667 1.64566 3.667 3.667v6.13766c-.5507-.688-1.3873-1.1377-2.334-1.1377-1.6545.0002-3 1.3455-3 3v.333h-.333c-1.6546 0-2.9999 1.3455-3 3 0 .616.1878 1.1897.5078 1.667h-8.1748c-2.02252-.0001-3.66602-1.6444-3.66602-3.667v-11.33296c0-2.02123 1.6435-3.66682 3.66602-3.667zm-2.60156 2c-.91852.00018-1.66602.74844-1.66602 1.667v2.08496c.50249-.25851 1.06362-.41791 1.66602-.41797h12.667c.6027 0 1.1643.1593 1.667.41797v-.08496c0-.91867-.7483-1.667-1.667-1.667h-7.1816c-.3037-.00009-.5901-.13838-.7793-.37402l-.80473-1.00293c-.31734-.39597-.79183-.62305-1.29981-.62305z\"\n fill=\"currentColor\"\n />\n </g>\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AddLayoutIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.0004 2.66699H5.00041C2.97774 2.66699 1.33374 4.31099 1.33374 6.33366V17.667C1.33374 19.6897 2.97774 21.3337 5.00041 21.3337H13.8369C13.5179 20.857 13.3318 20.2838 13.3318 19.6673C13.3318 19.5545 13.338 19.4432 13.3501 19.3337H9.33374V4.66699H19.0004C19.9191 4.66699 20.6671 5.41499 20.6671 6.33366V13.5055C21.8311 13.9179 22.6651 15.0288 22.6651 16.334V16.6673H22.6671V6.33366C22.6671 4.31099 21.0231 2.66699 19.0004 2.66699ZM20.6651 18.6673H22.9984C23.5504 18.6673 23.9984 19.1153 23.9984 19.6673C23.9984 20.2193 23.5504 20.6673 22.9984 20.6673H20.6651V23.0006C20.6651 23.5526 20.2171 24.0006 19.6651 24.0006C19.1131 24.0006 18.6651 23.5526 18.6651 23.0006V20.6673H16.3318C15.7798 20.6673 15.3318 20.2193 15.3318 19.6673C15.3318 19.1153 15.7798 18.6673 16.3318 18.6673H18.6651V16.334C18.6651 15.782 19.1131 15.334 19.6651 15.334C20.2171 15.334 20.6651 15.782 20.6651 16.334V18.6673Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AddMediaIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.6664 2.66666H6.33307C4.31041 2.66666 2.66641 4.31065 2.66641 6.33331V17.6666C2.66641 19.6893 4.31041 21.3333 6.33307 21.3333H13.8384C13.5192 20.8565 13.3331 20.2833 13.3331 19.6666C13.3331 18.01 14.6765 16.6666 16.333 16.6666H16.6664V16.3333C16.6664 14.6767 18.0098 13.3333 19.6664 13.3333C20.283 13.3333 20.8563 13.5195 21.333 13.8386V6.33331C21.333 4.31065 19.689 2.66666 17.6664 2.66666ZM15.3382 19.7688C15.3895 20.2729 15.8155 20.6666 16.333 20.6666H18.6664V21.1948L18.6664 22.9999C18.6664 23.5519 19.1144 23.9999 19.6664 23.9999C20.2184 23.9999 20.6664 23.5519 20.6664 22.9999V20.6666H22.9997C23.5517 20.6666 23.9997 20.2186 23.9997 19.6666C23.9997 19.1146 23.5517 18.6666 22.9997 18.6666L21.1946 18.6666H20.6664V16.3333C20.6664 15.7813 20.2184 15.3333 19.6664 15.3333C19.1144 15.3333 18.6664 15.7813 18.6664 16.3333V18.6666H16.333C15.781 18.6666 15.3331 19.1146 15.3331 19.6666C15.3331 19.7011 15.3348 19.7352 15.3382 19.7688ZM15.037 12.864L10.1704 15.7026C10.0131 15.7946 9.83973 15.8413 9.6664 15.8413C9.49573 15.8413 9.32506 15.796 9.16773 15.7066C8.85306 15.5266 8.6664 15.2026 8.6664 14.84V9.16131C8.6664 8.79864 8.8544 8.47464 9.16773 8.29464C9.4824 8.11331 9.85706 8.11598 10.1691 8.29731L15.0357 11.136C15.3464 11.3173 15.533 11.64 15.533 12C15.533 12.36 15.349 12.6826 15.037 12.864Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AnnotationLinkIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.333 8.66666H16.333C16.885 8.66666 17.333 8.21866 17.333 7.66666C17.333 7.11466 16.885 6.66666 16.333 6.66666H15.333C14.5983 6.66666 13.9997 6.068 13.9997 5.33333V4.66667C13.9997 3.932 14.5983 3.33334 15.333 3.33334H16.333C16.885 3.33334 17.333 2.88534 17.333 2.33334C17.333 1.78134 16.885 1.33334 16.333 1.33334H15.333C13.4957 1.33334 11.9997 2.82934 11.9997 4.66667V5.33333C11.9997 7.17066 13.4957 8.66666 15.333 8.66666ZM19.6663 8.66666H20.6663C22.5036 8.66666 23.9996 7.17066 23.9996 5.33333V4.66667C23.9996 2.82934 22.5036 1.33334 20.6663 1.33334H19.6663C19.1143 1.33334 18.6663 1.78134 18.6663 2.33334C18.6663 2.88534 19.1143 3.33334 19.6663 3.33334H20.6663C21.401 3.33334 21.9996 3.932 21.9996 4.66667V5.33333C21.9996 6.068 21.401 6.66666 20.6663 6.66666H19.6663C19.1143 6.66666 18.6663 7.11466 18.6663 7.66666C18.6663 8.21866 19.1143 8.66666 19.6663 8.66666ZM20.6663 10.6667H15.333C12.3917 10.6667 9.99967 8.27466 9.99967 5.33333V4.66667C9.99967 4.49165 10.0232 4.32293 10.0469 4.15385L10.0469 4.15383L10.0469 4.15377C10.054 4.1026 10.0612 4.05141 10.0677 4H4.99968C2.97702 4 1.33302 5.644 1.33302 7.66666V16.3333C1.33302 18.356 2.97702 20 4.99968 20H18.9996C21.0223 20 22.6663 18.356 22.6663 16.3333V10.2693C22.0476 10.5213 21.3743 10.6667 20.6663 10.6667ZM16.333 6H19.6663C20.2183 6 20.6663 5.552 20.6663 5C20.6663 4.448 20.2183 4 19.6663 4H16.333C15.781 4 15.333 4.448 15.333 5C15.333 5.552 15.781 6 16.333 6Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AppearanceIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M8.33295 2.66666H4.99962C3.71296 2.66666 2.66629 3.71332 2.66629 4.99998V17.3333C2.66629 19.5386 4.46096 21.3333 6.66628 21.3333C8.87161 21.3333 10.6663 19.5386 10.6663 17.3333V4.99998C10.6663 3.71332 9.61961 2.66666 8.33295 2.66666ZM6.66628 18.3333C6.11429 18.3333 5.66629 17.8853 5.66629 17.3333C5.66629 16.7813 6.11429 16.3333 6.66628 16.3333C7.21828 16.3333 7.66628 16.7813 7.66628 17.3333C7.66628 17.8853 7.21828 18.3333 6.66628 18.3333ZM18.2156 8.14131L15.8583 5.78398C15.0116 4.93598 13.5609 4.91198 12.6649 5.69731V16.9893L18.2142 11.44C18.6556 10.9986 18.8982 10.4133 18.8982 9.79064C18.8982 9.16797 18.6569 8.58131 18.2156 8.14131ZM11.1503 21.3333L19.1369 13.3466C20.3583 13.42 21.3329 14.428 21.3329 15.6666V19C21.3329 20.2866 20.2863 21.3333 18.9996 21.3333H11.1503Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ArchiveIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.3329 2.66666H3.66623C2.37957 2.66666 1.3329 3.71332 1.3329 4.99998V6.99998C1.3329 8.17198 2.2049 9.13597 3.3329 9.29997V17.6666C3.3329 19.6893 4.97689 21.3333 6.99955 21.3333H16.9995C19.0222 21.3333 20.6662 19.6893 20.6662 17.6666V9.29997C21.7942 9.13597 22.6662 8.17331 22.6662 6.99998V4.99998C22.6662 3.71332 21.6195 2.66666 20.3329 2.66666ZM14.6662 13.3333H9.33288C8.78088 13.3333 8.33288 12.8853 8.33288 12.3333C8.33288 11.7813 8.78088 11.3333 9.33288 11.3333H14.6662C15.2182 11.3333 15.6662 11.7813 15.6662 12.3333C15.6662 12.8853 15.2182 13.3333 14.6662 13.3333ZM20.6662 6.99998C20.6662 7.18398 20.5169 7.33331 20.3329 7.33331H3.66623C3.48223 7.33331 3.3329 7.18398 3.3329 6.99998V4.99998C3.3329 4.81598 3.48223 4.66665 3.66623 4.66665H20.3329C20.5169 4.66665 20.6662 4.81598 20.6662 4.99998V6.99998Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ArrowDownIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12.9995 17.9199L16.9608 13.9586C17.3515 13.5679 17.9848 13.5679 18.3755 13.9586C18.7661 14.3493 18.7661 14.9826 18.3755 15.3733L12.7088 21.0399C12.5141 21.2346 12.2582 21.3333 12.0022 21.3333H11.9995C11.7435 21.3333 11.4875 21.2359 11.2928 21.0399L5.62617 15.3733C5.2355 14.9826 5.2355 14.3493 5.62617 13.9586C6.01683 13.5679 6.65017 13.5679 7.04083 13.9586L10.9995 17.9173V3.66665C10.9995 3.11466 11.4475 2.66666 11.9995 2.66666C12.5515 2.66666 12.9995 3.11466 12.9995 3.66665V17.9199Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ArrowLeftIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M6.08344 10.9986L20.3341 10.9986C20.8861 10.9986 21.3341 11.4466 21.3341 11.9986C21.3341 12.5506 20.8861 12.9986 20.3341 12.9986L6.08079 12.9986L10.0421 16.9599C10.4328 17.3506 10.4328 17.9839 10.0421 18.3746C9.65144 18.7653 9.01811 18.7653 8.62744 18.3746L2.96079 12.708C2.76612 12.5133 2.66746 12.2573 2.66746 12.0013L2.66746 11.9986C2.66746 11.7426 2.76479 11.4866 2.96079 11.292L8.62744 5.6253C9.01811 5.23464 9.65144 5.23464 10.0421 5.6253C10.4328 6.01597 10.4328 6.6493 10.0421 7.03997L6.08344 10.9986Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ArrowRightIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.9213 11.0012L13.96 7.0399C13.5693 6.64924 13.5693 6.01591 13.96 5.62524C14.3506 5.23457 14.984 5.23457 15.3746 5.62524L21.0413 11.2919C21.2359 11.4866 21.3346 11.7426 21.3346 11.9986L21.3346 12.0012C21.3346 12.2572 21.2373 12.5132 21.0413 12.7079L15.3746 18.3745C14.984 18.7652 14.3506 18.7652 13.96 18.3745C13.5693 17.9839 13.5693 17.3505 13.96 16.9599L17.9186 13.0012L3.668 13.0012C3.116 13.0012 2.668 12.5532 2.668 12.0012C2.668 11.4492 3.116 11.0012 3.668 11.0012L17.9213 11.0012Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ArrowUpIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M13.0026 6.08258L13.0026 20.3332C13.0026 20.8852 12.5546 21.3332 12.0026 21.3332C11.4506 21.3332 11.0026 20.8852 11.0026 20.3332L11.0026 6.07991L7.04126 10.0412C6.6506 10.4319 6.01727 10.4319 5.6266 10.0412C5.23593 9.65057 5.23593 9.01724 5.6266 8.62657L11.2933 2.95992C11.4879 2.76525 11.7439 2.66659 11.9999 2.66659L12.0026 2.66659C12.2586 2.66659 12.5146 2.76392 12.7092 2.95992L18.3759 8.62657C18.7666 9.01724 18.7666 9.65057 18.3759 10.0412C17.9852 10.4319 17.3519 10.4319 16.9612 10.0412L13.0026 6.08258Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ArrowUpRightIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.9998 13.0132C17.9998 13.5652 18.4478 14.0132 18.9998 14.0132C19.5518 14.0132 19.9998 13.5652 19.9998 13.0132V4.99994C19.9998 4.44794 19.5518 3.99994 18.9998 3.99994H10.9865C10.4345 3.99994 9.98651 4.44794 9.98651 4.99994C9.98651 5.55193 10.4345 5.99993 10.9865 5.99993H16.5864L4.2932 18.2919C3.90253 18.6826 3.90253 19.3159 4.2932 19.7066C4.48786 19.9026 4.74386 19.9999 4.99986 19.9999C5.25586 19.9999 5.51186 19.9012 5.70653 19.7066L17.9998 7.41567V13.0132Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AsteriskIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.9998 21.9999C11.4478 21.9999 10.9998 21.5519 10.9998 20.9999V13.7312L4.70514 17.3652C4.54781 17.4559 4.37581 17.4999 4.20647 17.4999C3.85981 17.4999 3.52381 17.3212 3.33981 16.9999C3.06381 16.5212 3.22781 15.9106 3.70514 15.6346L10.0009 11.9999L3.70514 8.36525C3.22781 8.08925 3.06381 7.47725 3.33981 6.99992C3.61448 6.52259 4.22647 6.35592 4.70514 6.63459L10.9998 10.2689V2.99994C10.9998 2.44794 11.4478 1.99994 11.9998 1.99994C12.5518 1.99994 12.9998 2.44794 12.9998 2.99994V10.2686L19.2944 6.6346C19.7744 6.35727 20.3838 6.52393 20.6598 6.99993C20.9358 7.4786 20.7718 8.08926 20.2944 8.36526L13.9983 12.0001L20.2931 15.6346C20.7704 15.9106 20.9344 16.5226 20.6584 16.9999C20.4732 17.321 20.1375 17.4997 19.7924 17.4999C19.6233 17.4998 19.4516 17.4571 19.2944 17.3652L12.9998 13.7312V20.9999C12.9998 21.5519 12.5518 21.9999 11.9998 21.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AudioDescriptionIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M4.99974 1.99994H18.9997C21.0224 1.99994 22.6664 3.64393 22.6664 5.6666V14.9999C22.6664 17.0226 21.0224 18.6666 18.9997 18.6666H13.0171L8.29173 22.4466C8.1104 22.5919 7.88907 22.6666 7.6664 22.6666C7.5184 22.6666 7.3704 22.6346 7.23307 22.5679C6.8864 22.4012 6.6664 22.0506 6.6664 21.6666V18.6666H4.99974C2.97708 18.6666 1.33308 17.0226 1.33308 14.9999V5.6666C1.33308 3.64393 2.97708 1.99994 4.99974 1.99994ZM10.9157 14.3332C11.0424 14.3332 11.1717 14.3092 11.2957 14.2586C11.8077 14.0479 12.0504 13.4639 11.8411 12.9532L9.23706 6.61993C9.0824 6.24526 8.71707 5.99993 8.31173 5.99993H7.6864C7.28107 5.99993 6.91574 6.24526 6.76107 6.61993L4.15708 12.9532C3.94774 13.4639 4.19174 14.0479 4.70241 14.2586C5.21574 14.4679 5.79841 14.2239 6.00774 13.7132L6.43841 12.6666H9.55973L9.9904 13.7132C10.1491 14.0999 10.5224 14.3332 10.9157 14.3332ZM15.9997 14.3332C17.837 14.3332 19.333 12.8372 19.333 10.9999V9.33325C19.333 7.49592 17.837 5.99993 15.9997 5.99993H13.6664C13.1144 5.99993 12.6664 6.44793 12.6664 6.99993V13.3332C12.6664 13.8852 13.1144 14.3332 13.6664 14.3332H15.9997ZM15.9997 7.99992H14.6664V12.3332H15.9997C16.7344 12.3332 17.333 11.7346 17.333 10.9999V9.33325C17.333 8.59859 16.7344 7.99992 15.9997 7.99992ZM8.7384 10.6666L7.99973 8.86926L7.26107 10.6666H8.7384Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const AutoScrollIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.99968 3.59993C5.99968 2.93719 6.53694 2.39993 7.19968 2.39993H16.7997C17.4624 2.39993 17.9997 2.93719 17.9997 3.59993C17.9997 4.26267 17.4624 4.79993 16.7997 4.79993H7.19968C6.53694 4.79993 5.99968 4.26267 5.99968 3.59993ZM5.99968 20.3999C5.99968 19.7371 6.53694 19.1999 7.19968 19.1999H16.7997C17.4624 19.1999 17.9997 19.7371 17.9997 20.3999C17.9997 21.0626 17.4624 21.5999 16.7997 21.5999H7.19968C6.53694 21.5999 5.99968 21.0626 5.99968 20.3999ZM5.99968 7.19992H17.9997C19.9844 7.19992 21.5996 8.81511 21.5996 10.7999V13.1999C21.5996 15.1847 19.9844 16.7999 17.9997 16.7999H5.99968C4.01489 16.7999 2.39969 15.1847 2.39969 13.1999V10.7999C2.39969 8.81511 4.01489 7.19992 5.99968 7.19992ZM7.19968 13.1999H16.7997C17.4633 13.1999 17.9997 12.6623 17.9997 11.9999C17.9997 11.3375 17.4633 10.7999 16.7997 10.7999H7.19968C6.53608 10.7999 5.99968 11.3375 5.99968 11.9999C5.99968 12.6623 6.53608 13.1999 7.19968 13.1999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const BackgroundIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M2.95963 7.70658C3.1543 7.90258 3.41029 7.99991 3.66629 7.99991C3.92229 7.99991 4.17963 7.90124 4.37429 7.70658L7.70762 4.37325C8.09828 3.98258 8.09828 3.34925 7.70762 2.95859C7.31695 2.56792 6.68362 2.56792 6.29295 2.95859L2.95963 6.29191C2.56896 6.68258 2.56896 7.31591 2.95963 7.70658ZM3.6663 21.3332C3.4103 21.3332 3.1543 21.2359 2.95963 21.0399C2.56897 20.6492 2.56897 20.0159 2.95963 19.6252L19.6263 2.95992C20.0169 2.56925 20.6503 2.56925 21.0409 2.95992C21.4316 3.35059 21.4316 3.98392 21.0409 4.37458L4.37296 21.0399C4.1783 21.2345 3.9223 21.3332 3.6663 21.3332ZM3.6663 14.6666C3.4103 14.6666 3.1543 14.5692 2.95963 14.3732C2.56897 13.9826 2.56897 13.3492 2.95963 12.9586L12.9596 2.95992C13.3503 2.56925 13.9836 2.56925 14.3743 2.95992C14.7649 3.35059 14.7649 3.98392 14.3743 4.37458L4.37296 14.3732C4.1783 14.5679 3.9223 14.6666 3.6663 14.6666ZM10.3329 21.3332C10.0769 21.3332 9.82095 21.2359 9.62628 21.0399C9.23562 20.6492 9.23562 20.0159 9.62628 19.6252L19.6263 9.62524C20.0169 9.23457 20.6503 9.23457 21.0409 9.62524C21.4316 10.0159 21.4316 10.6492 21.0409 11.0399L11.0409 21.0399C10.8463 21.2345 10.5889 21.3332 10.3329 21.3332ZM16.2929 21.0399C16.4876 21.2359 16.7436 21.3332 16.9996 21.3332H17.0009C17.2569 21.3332 17.5129 21.2345 17.7076 21.0399L21.0409 17.7066C21.4316 17.3159 21.4316 16.6826 21.0409 16.2919C20.6503 15.9012 20.0169 15.9012 19.6263 16.2919L16.2929 19.6252C15.9023 20.0159 15.9023 20.6492 16.2929 21.0399Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const BellIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.3329 14.9999C19.3329 15.9186 20.0809 16.6666 20.9995 16.6666C21.5515 16.6666 21.9995 17.1146 21.9995 17.6666C21.9995 18.2186 21.5515 18.6666 20.9995 18.6666H2.99957C2.44757 18.6666 1.99957 18.2186 1.99957 17.6666C1.99957 17.1146 2.44757 16.6666 2.99957 16.6666C3.91823 16.6666 4.66623 15.9186 4.66623 14.9999V8.6666C4.66623 4.62261 7.95555 1.33328 11.9995 1.33328C16.0435 1.33328 19.3329 4.62261 19.3329 8.6666V14.9999ZM10.4009 19.9999H13.5996H13.6009C13.8022 19.9999 13.9915 20.0906 14.1182 20.2466C14.2449 20.4026 14.2942 20.6079 14.2529 20.8039C14.0222 21.8999 13.0956 22.6666 12.0009 22.6666C10.9062 22.6666 9.97956 21.8999 9.74889 20.8039C9.70756 20.6079 9.75689 20.4026 9.88356 20.2466C10.0102 20.0906 10.1996 19.9999 10.4009 19.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const BoltIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.2048 10.0546C19.9755 9.61061 19.5208 9.33328 19.0208 9.33328H13.4395L14.1288 2.5013C14.2155 1.89063 13.8768 1.30397 13.3021 1.07463C12.7301 0.8453 12.0781 1.03863 11.7208 1.5413L3.89017 12.5613C3.60084 12.9706 3.56484 13.5013 3.79417 13.9453C4.0235 14.3893 4.47817 14.6666 4.97817 14.6666H10.5595L9.87015 21.4986C9.78349 22.1092 10.1222 22.6959 10.6968 22.9252C10.8582 22.9892 11.0262 23.0212 11.1928 23.0212C11.6142 23.0212 12.0221 22.8199 12.2781 22.4586L20.1101 11.4386C20.3995 11.0293 20.4341 10.4986 20.2048 10.0546Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CalendarIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M8.66609 0.999936V2.6666H15.3327V0.999936C15.3327 0.447938 15.7807 -6.10352e-05 16.3327 -6.10352e-05C16.8847 -6.10352e-05 17.3327 0.447938 17.3327 0.999936V2.6666H18.3327C20.3554 2.6666 21.9994 4.3106 21.9994 6.33326V17.6666C21.9994 19.6892 20.3554 21.3332 18.3327 21.3332H5.6661C3.64344 21.3332 1.99944 19.6892 1.99944 17.6666V6.33326C1.99944 4.3106 3.64344 2.6666 5.6661 2.6666H6.6661V0.999936C6.6661 0.447938 7.1141 -6.10352e-05 7.6661 -6.10352e-05C8.21809 -6.10352e-05 8.66609 0.447938 8.66609 0.999936ZM19.9994 17.6666C19.9994 18.5852 19.2514 19.3332 18.3327 19.3332H5.6661C4.74744 19.3332 3.99944 18.5852 3.99944 17.6666V9.33325H19.9994V17.6666ZM10.6661 12.3332C10.6661 11.5986 11.2648 10.9999 11.9994 10.9999C12.7341 10.9999 13.3327 11.5986 13.3327 12.3332C13.3327 13.0679 12.7341 13.6666 11.9994 13.6666C11.2648 13.6666 10.6661 13.0679 10.6661 12.3332ZM16.6661 13.6666C17.4007 13.6666 17.9994 13.0679 17.9994 12.3332C17.9994 11.5986 17.4007 10.9999 16.6661 10.9999C15.9314 10.9999 15.3327 11.5986 15.3327 12.3332C15.3327 13.0679 15.9314 13.6666 16.6661 13.6666ZM10.6661 16.3332C10.6661 15.5986 11.2648 14.9999 11.9994 14.9999C12.7341 14.9999 13.3327 15.5986 13.3327 16.3332C13.3327 17.0679 12.7341 17.6666 11.9994 17.6666C11.2648 17.6666 10.6661 17.0679 10.6661 16.3332ZM7.33276 14.9999C6.5981 14.9999 5.99943 15.5986 5.99943 16.3332C5.99943 17.0679 6.5981 17.6666 7.33276 17.6666C8.06743 17.6666 8.66609 17.0679 8.66609 16.3332C8.66609 15.5986 8.06743 14.9999 7.33276 14.9999ZM15.3327 16.3332C15.3327 15.5986 15.9314 14.9999 16.6661 14.9999C17.4007 14.9999 17.9994 15.5986 17.9994 16.3332C17.9994 17.0679 17.4007 17.6666 16.6661 17.6666C15.9314 17.6666 15.3327 17.0679 15.3327 16.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CallToActionIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.9987 2.66653C17.6217 2.66679 17.201 2.78399 16.9106 2.89853C16.62 3.0132 12.2413 4.74653 10.0013 5.65319C7.77198 6.55586 5.54132 7.45852 3.12133 8.39585C2.528 8.62519 2.044 9.09985 1.79467 9.69852C1.492 10.4225 1.332 11.2185 1.332 11.9998C1.332 12.8012 1.492 13.5838 1.80533 14.3278C2.056 14.9185 2.52266 15.3718 3.108 15.5985L4.00133 15.9546V18.8798C4.00133 19.8412 4.57866 20.6932 5.47332 21.0478L8.06665 22.0785C8.34665 22.1905 8.63865 22.2452 8.92798 22.2452C9.59998 22.2452 10.2573 21.9518 10.7106 21.4145L12.4671 19.3293L16.8986 21.0958C17.1693 21.2038 17.6173 21.3332 17.9973 21.3332C20.6573 21.3332 22.6639 17.3212 22.6639 11.9998C22.6639 6.6795 20.658 2.668 17.9987 2.66653ZM17.9987 2.66653C17.9992 2.66653 17.9996 2.66653 18 2.66653H17.9973C17.9978 2.66653 17.9983 2.66653 17.9987 2.66653ZM6.00132 18.8798V16.7519L10.5101 18.5492L9.18265 20.1252C9.08931 20.2358 8.93731 20.2718 8.80531 20.2198L6.21199 19.1892C6.08399 19.1385 6.00132 19.0172 6.00132 18.8798ZM18 19.3332C16.9133 19.3332 15.3333 16.4758 15.3333 11.9998C15.3333 7.52386 16.9133 4.66653 18 4.66653C19.0866 4.66653 20.6666 7.52386 20.6666 11.9998C20.6666 16.4758 19.0866 19.3332 18 19.3332ZM17.3333 9.99985C18.4373 9.99985 19.3333 10.8958 19.3333 11.9998C19.3333 13.1038 18.4373 13.9998 17.3333 13.9998C17.2877 13.9998 17.2438 13.9937 17.1997 13.9876C17.1755 13.9842 17.1512 13.9809 17.1266 13.9785C17.0493 13.3758 17 12.7185 17 11.9998C17 11.2812 17.0493 10.6238 17.1266 10.0212C17.1468 10.0189 17.1668 10.0161 17.1867 10.0133C17.2351 10.0065 17.2832 9.99985 17.3333 9.99985Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CameraIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M4.99993 3.99988H12.9999C15.0226 3.99988 16.6666 5.64388 16.6666 7.66654V16.3332C16.6666 18.3559 15.0226 19.9999 12.9999 19.9999H4.99993C2.97727 19.9999 1.33327 18.3559 1.33327 16.3332V7.66654C1.33327 5.64388 2.97727 3.99988 4.99993 3.99988ZM5.33327 9.33321C5.33327 10.0692 5.9306 10.6665 6.6666 10.6665C7.4026 10.6665 7.99993 10.0692 7.99993 9.33321C7.99993 8.59721 7.4026 7.99988 6.6666 7.99988C5.9306 7.99988 5.33327 8.59721 5.33327 9.33321ZM21.5306 6.66655C22.0506 6.37988 22.6679 6.38921 23.1813 6.69188C23.6946 6.99588 23.9999 7.53188 23.9999 8.12788V15.8719C23.9999 16.4679 23.6946 17.0039 23.1813 17.3079C22.9186 17.4625 22.6266 17.5412 22.3346 17.5412C22.0586 17.5412 21.7826 17.4719 21.5293 17.3319L18.6666 15.7572V8.24121L21.5306 6.66655Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CameraOffIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M1.95993 22.0399C2.1546 22.2359 2.4106 22.3332 2.6666 22.3332C2.9226 22.3332 3.1786 22.2345 3.37326 22.0399L22.0413 3.37454C22.4319 2.98387 22.4319 2.35054 22.0413 1.95987C21.6506 1.5692 21.0173 1.5692 20.6266 1.95987L16.3558 6.23037C15.7997 4.92119 14.511 3.99988 12.9999 3.99988H4.99993C2.97727 3.99988 1.33327 5.64388 1.33327 7.66654V16.3332C1.33327 17.6663 2.05078 18.8283 3.11781 19.4674L1.95993 20.6252C1.56926 21.0159 1.56926 21.6492 1.95993 22.0399ZM7.99993 9.33321C7.99993 8.59721 7.4026 7.99988 6.6666 7.99988C5.9306 7.99988 5.33327 8.59721 5.33327 9.33321C5.33327 10.0692 5.9306 10.6665 6.6666 10.6665C7.4026 10.6665 7.99993 10.0692 7.99993 9.33321ZM12.9999 19.9999H8.24261L16.6666 11.5759V16.3332C16.6666 18.3559 15.0226 19.9999 12.9999 19.9999ZM23.1813 6.69187C22.6906 6.40254 22.1079 6.38921 21.6039 6.63854L18.6666 9.57587V15.7585L21.5293 17.3332C21.7826 17.4732 22.0586 17.5425 22.3346 17.5425C22.6266 17.5425 22.9186 17.4639 23.1813 17.3092C23.6946 17.0052 23.9999 16.4692 23.9999 15.8732V8.12787C23.9999 7.53187 23.6946 6.99587 23.1813 6.69187Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CaretDownIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.9999 19.3331C11.7439 19.3331 11.4879 19.2358 11.2932 19.0398L2.95992 10.7065C2.56926 10.3158 2.56926 9.68251 2.95992 9.29184C3.35059 8.90117 3.98392 8.90117 4.37459 9.29184L12.0012 16.9185L19.6279 9.29184C20.0185 8.90117 20.6519 8.90117 21.0425 9.29184C21.4332 9.68251 21.4332 10.3158 21.0425 10.7065L12.7092 19.0398C12.5146 19.2345 12.2586 19.3331 12.0026 19.3331H11.9999Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CaretDownStrongIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.6985 5.33321H5.30121C4.45054 5.33321 3.66654 5.79588 3.25721 6.54121C2.84788 7.28655 2.87454 8.19721 3.33054 8.91588L10.0292 19.4799C10.4599 20.1585 11.1959 20.5625 11.9999 20.5625C12.8039 20.5625 13.5399 20.1572 13.9705 19.4799L20.6705 8.91455C21.1252 8.19588 21.1532 7.28521 20.7439 6.53988C20.3345 5.79455 19.5505 5.33188 18.6999 5.33188L18.6985 5.33321Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CaretLeftIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.3332 21.3332C15.0772 21.3332 14.8212 21.2358 14.6265 21.0398L6.29319 12.7065C5.90252 12.3158 5.90252 11.6825 6.29319 11.2918L14.6265 2.95987C15.0172 2.5692 15.6505 2.5692 16.0412 2.95987C16.4318 3.35054 16.4318 3.98387 16.0412 4.37453L8.41451 12.0012L16.0412 19.6278C16.4318 20.0185 16.4318 20.6518 16.0412 21.0425C15.8465 21.2372 15.5905 21.3358 15.3345 21.3358L15.3332 21.3332Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CaretLeftStrongIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51848 10.0292L15.0838 3.32921C15.8038 2.87321 16.7145 2.84521 17.4585 3.25587C18.2038 3.66654 18.6665 4.44921 18.6665 5.29987V18.6985C18.6665 19.5492 18.2038 20.3332 17.4585 20.7425C17.1078 20.9359 16.7198 21.0319 16.3331 21.0319C15.8985 21.0319 15.4638 20.9105 15.0825 20.6692L4.51848 13.9705C3.83981 13.5399 3.43581 12.8039 3.43581 11.9999C3.43581 11.1959 3.84115 10.4599 4.51848 10.0292Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CaretRightIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.7064 11.2932L9.37311 2.95987C8.98244 2.5692 8.34911 2.5692 7.95845 2.95987C7.56778 3.35054 7.56778 3.98387 7.95845 4.37453L15.5851 12.0012L7.95845 19.6278C7.56778 20.0185 7.56778 20.6518 7.95845 21.0425C8.15311 21.2372 8.40911 21.3358 8.66511 21.3358C8.92111 21.3358 9.17711 21.2385 9.37178 21.0425L17.7051 12.7092C18.0958 12.3185 18.0958 11.6852 17.7051 11.2945L17.7064 11.2932Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CaretRightStrongIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4811 10.0292L8.91576 3.32921C8.19576 2.87321 7.28509 2.84521 6.54109 3.25587C5.79576 3.66654 5.33309 4.44921 5.33309 5.29987V18.6985C5.33309 19.5492 5.79576 20.3332 6.54109 20.7425C6.89176 20.9359 7.27976 21.0319 7.66643 21.0319C8.10109 21.0319 8.53576 20.9105 8.91709 20.6692L19.4811 13.9705C20.1598 13.5399 20.5638 12.8039 20.5638 11.9999C20.5638 11.1959 20.1584 10.4599 19.4811 10.0292Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CaretUpIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.7064 6.29318C12.3157 5.90252 11.6824 5.90252 11.2917 6.29318L2.95974 14.6265C2.56907 15.0172 2.56907 15.6505 2.95974 16.0412C3.35041 16.4318 3.98374 16.4318 4.3744 16.0412L12.0011 8.41451L19.6277 16.0412C19.8224 16.2358 20.0784 16.3345 20.3344 16.3345C20.5904 16.3345 20.8464 16.2372 21.041 16.0412C21.4317 15.6505 21.4317 15.0172 21.041 14.6265L12.7077 6.29318H12.7064Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CaretUpStrongIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.6987 18.6665H5.30133C4.45066 18.6665 3.66666 18.2039 3.25733 17.4585C2.848 16.7132 2.87466 15.8025 3.33066 15.0839L10.0293 4.51988C10.46 3.84121 11.196 3.43721 12 3.43721C12.804 3.43721 13.54 3.84254 13.9707 4.51988L20.6707 15.0852C21.1253 15.8039 21.1533 16.7145 20.744 17.4599C20.3347 18.2052 19.5507 18.6679 18.7 18.6679L18.6987 18.6665Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ChannelIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M4.99999 2.66653H19C21.025 2.66653 22.6666 4.30815 22.6666 6.33319V14.3332C22.6666 16.3582 21.025 17.9998 19 17.9998H4.99999C2.97495 17.9998 1.33333 16.3582 1.33333 14.3332V6.33319C1.33333 4.30815 2.97495 2.66653 4.99999 2.66653ZM12 22.9998C12.9204 22.9998 13.6666 22.2536 13.6666 21.3332C13.6666 20.4127 12.9204 19.6665 12 19.6665C11.0795 19.6665 10.3333 20.4127 10.3333 21.3332C10.3333 22.2536 11.0795 22.9998 12 22.9998ZM7.99998 21.3332C7.99998 22.0695 7.40303 22.6665 6.66665 22.6665C5.93027 22.6665 5.33332 22.0695 5.33332 21.3332C5.33332 20.5968 5.93027 19.9998 6.66665 19.9998C7.40303 19.9998 7.99998 20.5968 7.99998 21.3332ZM18.6666 21.3332C18.6666 22.0695 18.0697 22.6665 17.3333 22.6665C16.5969 22.6665 16 22.0695 16 21.3332C16 20.5968 16.5969 19.9998 17.3333 19.9998C18.0697 19.9998 18.6666 20.5968 18.6666 21.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ChaptersIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.6666 2.66653H6.33325C4.31059 2.66653 2.6666 4.31053 2.6666 6.33319V17.6665C2.6666 19.6892 4.31059 21.3332 6.33325 21.3332H17.6666C19.6892 21.3332 21.3332 19.6892 21.3332 17.6665V6.33319C21.3332 4.31053 19.6892 2.66653 17.6666 2.66653ZM7.66658 17.3332C6.93058 17.3332 6.33325 16.7358 6.33325 15.9998C6.33325 15.2638 6.93058 14.6665 7.66658 14.6665C8.40258 14.6665 8.99991 15.2638 8.99991 15.9998C8.99991 16.7358 8.40258 17.3332 7.66658 17.3332ZM7.66658 13.3332C6.93058 13.3332 6.33325 12.7358 6.33325 11.9998C6.33325 11.2638 6.93058 10.6665 7.66658 10.6665C8.40258 10.6665 8.99991 11.2638 8.99991 11.9998C8.99991 12.7358 8.40258 13.3332 7.66658 13.3332ZM7.66658 9.66652C6.93058 9.66652 6.33325 9.06919 6.33325 8.33319C6.33325 7.59719 6.93058 6.99986 7.66658 6.99986C8.40258 6.99986 8.99991 7.59719 8.99991 8.33319C8.99991 9.06919 8.40258 9.66652 7.66658 9.66652ZM16.6666 16.6665H11.6666C11.1146 16.6665 10.6666 16.2185 10.6666 15.6665C10.6666 15.1145 11.1146 14.6665 11.6666 14.6665H16.6666C17.2186 14.6665 17.6666 15.1145 17.6666 15.6665C17.6666 16.2185 17.2186 16.6665 16.6666 16.6665ZM16.6666 12.9998H11.6666C11.1146 12.9998 10.6666 12.5518 10.6666 11.9998C10.6666 11.4478 11.1146 10.9998 11.6666 10.9998H16.6666C17.2186 10.9998 17.6666 11.4478 17.6666 11.9998C17.6666 12.5518 17.2186 12.9998 16.6666 12.9998ZM16.6666 9.33318H11.6666C11.1146 9.33318 10.6666 8.88519 10.6666 8.33319C10.6666 7.78119 11.1146 7.33319 11.6666 7.33319H16.6666C17.2186 7.33319 17.6666 7.78119 17.6666 8.33319C17.6666 8.88519 17.2186 9.33318 16.6666 9.33318Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CheckmarkIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.99985 19.9998H8.99718C8.69451 19.9998 8.40785 19.8612 8.21985 19.6252L2.88653 12.9585C2.54119 12.5265 2.61053 11.8985 3.04253 11.5532C3.47586 11.2078 4.10386 11.2785 4.44786 11.7092L9.00518 17.4052L19.5558 4.37053C19.9038 3.9412 20.5318 3.8732 20.9625 4.22253C21.3918 4.57053 21.4585 5.19986 21.1105 5.62919L9.77718 19.6292C9.58651 19.8638 9.30118 19.9998 8.99985 19.9998Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CheckmarkCircleIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.9998 1.33322C6.11847 1.33322 1.33315 6.11854 1.33315 11.9999C1.33315 17.8812 6.11847 22.6665 11.9998 22.6665C17.8811 22.6665 22.6664 17.8812 22.6664 11.9999C22.6664 6.11854 17.8811 1.33322 11.9998 1.33322ZM17.1238 8.94387L11.4571 16.2772C11.2758 16.5119 10.9998 16.6545 10.7038 16.6652C10.6905 16.6652 10.6785 16.6652 10.6665 16.6652C10.3838 16.6652 10.1131 16.5452 9.92246 16.3345L6.92246 13.0012C6.55313 12.5905 6.58647 11.9585 6.99713 11.5879C7.40913 11.2199 8.03846 11.2519 8.41046 11.6625L10.6078 14.1052L15.5424 7.71987C15.8798 7.28254 16.5091 7.20254 16.9451 7.53987C17.3824 7.87721 17.4624 8.5052 17.1251 8.94254L17.1238 8.94387Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CheckmarkCircleOutlineIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M3.33308 11.9999C3.33308 7.2134 7.21327 3.33322 11.9997 3.33322C16.7862 3.33322 20.6664 7.2134 20.6664 11.9999C20.6664 16.7863 16.7862 20.6665 11.9997 20.6665C7.21327 20.6665 3.33308 16.7863 3.33308 11.9999ZM11.9997 1.33322C6.1087 1.33322 1.33308 6.10884 1.33308 11.9999C1.33308 17.8909 6.1087 22.6665 11.9997 22.6665C17.8907 22.6665 22.6664 17.8909 22.6664 11.9999C22.6664 6.10884 17.8907 1.33322 11.9997 1.33322ZM17.1243 8.94465C17.462 8.50764 17.3815 7.87961 16.9445 7.54192C16.5075 7.20423 15.8795 7.28474 15.5418 7.72176L10.6079 14.1067L8.40969 11.6642C8.04024 11.2537 7.40795 11.2204 6.99744 11.5899C6.58693 11.9594 6.55365 12.5916 6.92311 13.0022L9.9231 16.3355C10.1215 16.5559 10.4075 16.6769 10.7038 16.6658C11.0002 16.6547 11.2763 16.5126 11.4577 16.278L17.1243 8.94465Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CheckmarkThreeQuatersCircleIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M21.1219 4.28103C21.4613 3.84531 21.3832 3.21698 20.9475 2.87762C20.5117 2.53825 19.8834 2.61635 19.544 3.05207L11.9697 12.7768L9.07634 9.56161C8.7069 9.15108 8.07461 9.11777 7.66408 9.4872C7.25356 9.85664 7.22024 10.4889 7.58968 10.8995L11.2817 15.0021C11.4796 15.2221 11.7648 15.3431 12.0605 15.3326C12.3562 15.322 12.6321 15.1811 12.8139 14.9477L21.1219 4.28103ZM11.9997 2.66655C6.84473 2.66655 2.66636 6.84492 2.66636 11.9999C2.66636 17.1548 6.84473 21.3332 11.9997 21.3332C17.1546 21.3332 21.333 17.1548 21.333 11.9999C21.333 11.0484 21.188 10.1313 20.924 9.26752C20.7625 8.73937 20.2035 8.4421 19.6753 8.60355C19.1471 8.76501 18.8499 9.32405 19.0113 9.85221C19.2193 10.5325 19.333 11.2527 19.333 11.9999C19.333 16.0502 16.05 19.3332 11.9997 19.3332C7.94929 19.3332 4.66635 16.0502 4.66635 11.9999C4.66635 7.94949 7.94929 4.66654 11.9997 4.66654C13.0985 4.66654 14.1393 4.91549 15.0798 5.3522C15.5808 5.58479 16.1754 5.36727 16.408 4.86636C16.6406 4.36544 16.423 3.77081 15.9221 3.53822C14.732 2.9856 13.4048 2.66655 11.9997 2.66655Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CircleSlashedIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M1.95962 22.0398C2.15429 22.2358 2.41029 22.3332 2.66629 22.3332C2.92229 22.3332 3.17829 22.2345 3.37295 22.0398L22.0409 3.37453C22.4316 2.98387 22.4316 2.35054 22.0409 1.95987C21.6502 1.5692 21.0169 1.5692 20.6262 1.95987L17.8512 4.73468C16.2489 3.44142 14.2126 2.66653 11.9996 2.66653C6.85295 2.66653 2.6663 6.85319 2.6663 11.9998C2.6663 14.2136 3.44093 16.2498 4.73382 17.8512L1.95962 20.6252C1.56896 21.0158 1.56896 21.6492 1.95962 22.0398ZM7.8796 20.3612C9.1236 20.9772 10.5196 21.3332 11.9996 21.3332C17.1462 21.3332 21.3329 17.1465 21.3329 11.9998C21.3329 10.5198 20.9769 9.12519 20.3622 7.87986L7.8796 20.3612Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ClapboardIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 2.66653H4.99999C2.97733 2.66653 1.33333 4.31053 1.33333 6.3332V17.6665C1.33333 19.6892 2.97733 21.3332 4.99999 21.3332H19C21.0227 21.3332 22.6667 19.6892 22.6667 17.6665V6.3332C22.6667 4.31053 21.0227 2.66653 19 2.66653ZM20.6667 6.3332V7.99987H17.2853L18.952 4.66653H19C19.9187 4.66653 20.6667 5.41453 20.6667 6.3332ZM7.28533 7.99987L8.952 4.66653H11.716L10.0493 7.99987H7.28533ZM13.952 4.66653H16.716L15.0493 7.99987H12.2853L13.952 4.66653ZM4.99999 4.66653H6.71466L5.048 7.99987H3.33333V6.3332C3.33333 5.41453 4.08133 4.66653 4.99999 4.66653Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CloseIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.3738 6.04035C19.7644 5.64983 19.7644 5.01667 19.3738 4.62614C18.9833 4.23562 18.3502 4.23562 17.9596 4.62614L12.0001 10.5857L6.04055 4.62614C5.65002 4.23562 5.01686 4.23562 4.62634 4.62614C4.23581 5.01667 4.23581 5.64983 4.62634 6.04035L10.5859 11.9999L4.62634 17.9594C4.23581 18.35 4.23581 18.9831 4.62634 19.3737C5.01686 19.7642 5.65002 19.7642 6.04055 19.3737L12.0001 13.4141L17.9596 19.3737C18.3502 19.7642 18.9833 19.7642 19.3738 19.3737C19.7644 18.9831 19.7644 18.35 19.3738 17.9594L13.4143 11.9999L19.3738 6.04035Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CloseOctagonIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.216 3.07467L20.9253 6.784C21.6187 7.47733 22 8.39733 22 9.37733V14.624C22 15.604 21.6187 16.524 20.9253 17.2173L17.216 20.9267C16.5227 21.62 15.6027 22.0013 14.6227 22.0013H9.37599C8.39599 22.0013 7.47599 21.62 6.78266 20.9267L3.07332 17.2173C2.37999 16.524 1.99866 15.604 1.99866 14.624V9.37733C1.99866 8.39733 2.37999 7.47733 3.07332 6.784L6.78266 3.07467C7.47599 2.38133 8.39599 2 9.37599 2H14.6227C15.6027 2 16.5227 2.38133 17.216 3.07467ZM16.3397 16.3423C16.7303 15.9517 16.7303 15.3183 16.3397 14.9277H16.3423L13.3823 11.9677L16.3423 9.00767C16.733 8.617 16.733 7.98367 16.3423 7.593C15.9517 7.20234 15.3183 7.20234 14.9277 7.593L11.9677 10.553L9.00766 7.593C8.61699 7.20234 7.98365 7.20234 7.59299 7.593C7.20232 7.98367 7.20232 8.617 7.59299 9.00767L10.553 11.9677L7.59299 14.9277C7.20232 15.3183 7.20232 15.9517 7.59299 16.3423C7.78765 16.5383 8.04365 16.6357 8.29965 16.6357C8.55566 16.6357 8.81166 16.537 9.00632 16.3423L11.9663 13.3823L14.9263 16.3423C15.121 16.5383 15.377 16.6357 15.633 16.6357C15.889 16.6357 16.145 16.537 16.3397 16.3423Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ClosedCaptionsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19 2.66653H4.99999C2.97732 2.66653 1.33333 4.31053 1.33333 6.33319V17.6665C1.33333 19.6892 2.97732 21.3332 4.99999 21.3332H19C21.0226 21.3332 22.6666 19.6892 22.6666 17.6665V6.33319C22.6666 4.31053 21.0226 2.66653 19 2.66653ZM6.33332 11.3332H13C13.552 11.3332 14 11.7812 14 12.3332C14 12.8852 13.552 13.3332 13 13.3332H6.33332C5.78132 13.3332 5.33332 12.8852 5.33332 12.3332C5.33332 11.7812 5.78132 11.3332 6.33332 11.3332ZM7.66665 17.3332H6.33332C5.78132 17.3332 5.33332 16.8852 5.33332 16.3332C5.33332 15.7812 5.78132 15.3332 6.33332 15.3332H7.66665C8.21864 15.3332 8.66664 15.7812 8.66664 16.3332C8.66664 16.8852 8.21864 17.3332 7.66665 17.3332ZM17.6666 17.3332H11C10.448 17.3332 9.99997 16.8852 9.99997 16.3332C9.99997 15.7812 10.448 15.3332 11 15.3332H17.6666C18.2186 15.3332 18.6666 15.7812 18.6666 16.3332C18.6666 16.8852 18.2186 17.3332 17.6666 17.3332ZM17.6666 13.3332H16.3333C15.7813 13.3332 15.3333 12.8852 15.3333 12.3332C15.3333 11.7812 15.7813 11.3332 16.3333 11.3332H17.6666C18.2186 11.3332 18.6666 11.7812 18.6666 12.3332C18.6666 12.8852 18.2186 13.3332 17.6666 13.3332Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CmdIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.6667 14H16V10H17.6667C19.6893 10 21.3333 8.35602 21.3333 6.33335C21.3333 4.31069 19.6893 2.66669 17.6667 2.66669C15.644 2.66669 14 4.31069 14 6.33335V8.00002H9.99999V6.33335C9.99999 4.31069 8.35599 2.66669 6.33332 2.66669C4.31066 2.66669 2.66666 4.31069 2.66666 6.33335C2.66666 8.35602 4.31066 10 6.33332 10H7.99999V14H6.33332C4.31066 14 2.66666 15.644 2.66666 17.6667C2.66666 19.6894 4.31066 21.3334 6.33332 21.3334C8.35599 21.3334 9.99999 19.6894 9.99999 17.6667V16H14V17.6667C14 19.6894 15.644 21.3334 17.6667 21.3334C19.6893 21.3334 21.3333 19.6894 21.3333 17.6667C21.3333 15.644 19.6893 14 17.6667 14ZM16 6.33335C16 5.41469 16.748 4.66669 17.6667 4.66669C18.5853 4.66669 19.3333 5.41469 19.3333 6.33335C19.3333 7.25202 18.5853 8.00002 17.6667 8.00002H16V6.33335ZM4.66666 6.33335C4.66666 5.41469 5.41466 4.66669 6.33332 4.66669C7.25199 4.66669 7.99999 5.41469 7.99999 6.33335V8.00002H6.33332C5.41466 8.00002 4.66666 7.25202 4.66666 6.33335ZM7.99999 17.6667C7.99999 18.5854 7.25199 19.3334 6.33332 19.3334C5.41466 19.3334 4.66666 18.5854 4.66666 17.6667C4.66666 16.748 5.41466 16 6.33332 16H7.99999V17.6667ZM9.99999 10H14V14H9.99999V10ZM17.6667 19.3334C16.748 19.3334 16 18.5854 16 17.6667V16H17.6667C18.5853 16 19.3333 16.748 19.3333 17.6667C19.3333 18.5854 18.5853 19.3334 17.6667 19.3334Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CollapseIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.9999 7.91987L15.9599 3.95987H15.9572C16.3479 3.5692 16.9812 3.5692 17.3719 3.95987C17.7625 4.35054 17.7625 4.98387 17.3719 5.37454L12.7052 10.0412C12.5105 10.2372 12.2545 10.3345 11.9985 10.3345C11.7425 10.3345 11.4865 10.2359 11.2919 10.0412L6.62521 5.37454C6.23455 4.98387 6.23455 4.35054 6.62521 3.95987C7.01588 3.5692 7.64921 3.5692 8.03988 3.95987L11.9999 7.91987ZM11.2919 13.9599C11.6825 13.5692 12.3159 13.5692 12.7065 13.9599L17.3732 18.6265C17.7639 19.0172 17.7639 19.6505 17.3732 20.0412C17.1785 20.2372 16.9225 20.3345 16.6665 20.3345C16.4105 20.3345 16.1545 20.2359 15.9599 20.0412L11.9999 16.0812L8.03988 20.0412C7.64921 20.4319 7.01588 20.4319 6.62521 20.0412C6.23455 19.6505 6.23455 19.0172 6.62521 18.6265L11.2919 13.9599Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CollapseDiagonalIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.6253 2.95987C20.0159 2.5692 20.6493 2.5692 21.0399 2.95987L21.0386 2.95854C21.4293 3.3492 21.4293 3.98254 21.0386 4.3732L18.9119 6.49987L20.8026 8.39054C21.1853 8.77454 21.2986 9.34387 21.0919 9.84387C20.8839 10.3439 20.3999 10.6665 19.8599 10.6665H14.6653C13.9293 10.6665 13.3319 10.0679 13.3319 9.3332V4.13854C13.3319 3.5972 13.6546 3.1132 14.1559 2.90654C14.6559 2.69854 15.2279 2.81454 15.6093 3.1972L17.4986 5.08654L19.6253 2.95987ZM4.1386 13.3332H9.33326V13.3345C10.0693 13.3345 10.6666 13.9332 10.6666 14.6679V19.8625C10.6666 20.4039 10.3439 20.8879 9.8426 21.0945C9.67726 21.1625 9.50393 21.1959 9.33193 21.1959C8.98393 21.1959 8.64393 21.0599 8.38926 20.8039L6.49993 18.9145L4.37326 21.0412C4.1786 21.2372 3.9226 21.3345 3.6666 21.3345C3.4106 21.3345 3.1546 21.2359 2.95993 21.0412C2.56926 20.6505 2.56926 20.0172 2.95993 19.6265L5.0866 17.4999L3.19593 15.6092C2.81326 15.2252 2.69993 14.6559 2.9066 14.1559C3.1146 13.6559 3.5986 13.3332 4.1386 13.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CollectionIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.00037 13.111C8.61387 13.1112 9.11072 13.6088 9.11072 14.2224C9.11066 14.8358 8.61383 15.3335 8.00037 15.3337C7.38675 15.3337 6.88909 14.836 6.88904 14.2224C6.88904 13.6087 7.38672 13.111 8.00037 13.111ZM4.4447 13.3337C4.93552 13.3338 5.33337 13.7315 5.33337 14.2224C5.33332 14.7132 4.93549 15.1109 4.4447 15.111C3.95382 15.111 3.55608 14.7132 3.55603 14.2224C3.55603 13.7314 3.95378 13.3337 4.4447 13.3337ZM11.556 13.3337C12.0468 13.3339 12.4447 13.7316 12.4447 14.2224C12.4446 14.7131 12.0467 15.1108 11.556 15.111C11.0651 15.111 10.6664 14.7132 10.6664 14.2224C10.6664 13.7314 11.0651 13.3337 11.556 13.3337ZM12.6664 1.77802C14.0164 1.77802 15.1107 2.87232 15.1107 4.22235V9.55536C15.1107 10.9054 14.0164 11.9997 12.6664 11.9997H3.33337C1.98335 11.9997 0.889038 10.9054 0.889038 9.55536V4.22235C0.889038 2.87232 1.98335 1.77802 3.33337 1.77802H12.6664Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CommentsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.9999 1.33322C6.11859 1.33322 1.33327 6.11854 1.33327 11.9999C1.33327 13.8612 1.82793 15.7012 2.74926 17.2945C3.0666 17.8892 2.6226 19.9638 1.6266 20.9598C1.34793 21.2385 1.2586 21.6558 1.39993 22.0238C1.54127 22.3918 1.8866 22.6438 2.27993 22.6652C2.38526 22.6705 2.49326 22.6732 2.60126 22.6732C4.12793 22.6732 5.98126 22.1305 7.18792 21.5118C8.08792 21.9692 9.04125 22.2945 10.0292 22.4825C10.6746 22.6052 11.3386 22.6665 11.9999 22.6665C17.8812 22.6665 22.6665 17.8812 22.6665 11.9999C22.6665 6.11854 17.8812 1.33322 11.9999 1.33322ZM11.3332 14.3332C11.3332 14.8852 10.8852 15.3332 10.3332 15.3332H7.66658C7.11459 15.3332 6.66659 14.8852 6.66659 14.3332V12.3332C6.66659 9.7292 7.57859 8.16254 9.53591 7.40121C10.0506 7.20121 10.6292 7.45721 10.8306 7.97054C11.0306 8.4852 10.7746 9.0652 10.2612 9.2652C9.59058 9.5252 8.93325 9.91187 8.73058 11.3332H10.3332C10.8852 11.3332 11.3332 11.7812 11.3332 12.3332V14.3332ZM17.3332 14.3332C17.3332 14.8852 16.8852 15.3332 16.3332 15.3332H13.6666C13.1146 15.3332 12.6666 14.8852 12.6666 14.3332V12.3332C12.6666 9.7292 13.5786 8.16254 15.5359 7.40121C16.0506 7.20121 16.6306 7.45721 16.8306 7.97054C17.0306 8.4852 16.7746 9.0652 16.2612 9.2652C15.5906 9.5252 14.9332 9.91187 14.7306 11.3332H16.3332C16.8852 11.3332 17.3332 11.7812 17.3332 12.3332V14.3332Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CompanyIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.99986 8.33319C5.99986 8.88519 6.44786 9.33319 6.99986 9.33319C7.55186 9.33319 7.99853 8.88519 7.99853 8.33319V5.93053C7.99853 5.79187 8.08519 5.66653 8.21719 5.61853L15.5505 2.92921C15.6918 2.87987 15.8025 2.93187 15.8558 2.96921C15.9092 3.00654 15.9985 3.09187 15.9985 3.24254V4.99987C15.9985 5.55187 16.4465 5.99986 16.9985 5.99986C17.5505 5.99986 17.9985 5.55187 17.9985 4.99987V3.24254C17.9985 2.47987 17.6252 1.76521 17.0012 1.32921C16.3772 0.893211 15.5785 0.789211 14.8625 1.05188L7.53053 3.73987C6.61453 4.07454 5.99986 4.95587 5.99986 5.93053V8.33319ZM14.9998 7.3332H20.3332C21.6198 7.3332 22.6665 8.37986 22.6665 9.66652V20.3332C22.6665 21.6198 21.6198 22.6665 20.3332 22.6665H3.66654C2.37987 22.6665 1.33321 21.6198 1.33321 20.3332V12.9998C1.33321 11.7132 2.37987 10.6665 3.66654 10.6665H8.99986C10.2865 10.6665 11.3332 11.7132 11.3332 12.9998V20.6665H12.6665V9.66652C12.6665 8.37986 13.7132 7.3332 14.9998 7.3332ZM5.66653 19.3332H6.99986C7.55186 19.3332 7.99986 18.8852 7.99986 18.3332C7.99986 17.7812 7.55186 17.3332 6.99986 17.3332H5.66653C5.11453 17.3332 4.66653 17.7812 4.66653 18.3332C4.66653 18.8852 5.11453 19.3332 5.66653 19.3332ZM5.66653 15.9998H6.99986C7.55186 15.9998 7.99986 15.5518 7.99986 14.9998C7.99986 14.4478 7.55186 13.9998 6.99986 13.9998H5.66653C5.11453 13.9998 4.66653 14.4478 4.66653 14.9998C4.66653 15.5518 5.11453 15.9998 5.66653 15.9998ZM16.9998 19.3332H18.3332C18.8852 19.3332 19.3332 18.8852 19.3332 18.3332C19.3332 17.7812 18.8852 17.3332 18.3332 17.3332H16.9998C16.4478 17.3332 15.9998 17.7812 15.9998 18.3332C15.9998 18.8852 16.4478 19.3332 16.9998 19.3332ZM16.9998 15.9998H18.3332C18.8852 15.9998 19.3332 15.5518 19.3332 14.9998C19.3332 14.4478 18.8852 13.9998 18.3332 13.9998H16.9998C16.4478 13.9998 15.9998 14.4478 15.9998 14.9998C15.9998 15.5518 16.4478 15.9998 16.9998 15.9998ZM16.9998 12.6665H18.3332C18.8852 12.6665 19.3332 12.2185 19.3332 11.6665C19.3332 11.1145 18.8852 10.6665 18.3332 10.6665H16.9998C16.4478 10.6665 15.9998 11.1145 15.9998 11.6665C15.9998 12.2185 16.4478 12.6665 16.9998 12.6665Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CompareIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.9878 7.01321C15.9904 3.73055 12.9384 1.33322 9.33313 1.33322C4.92114 1.33322 1.33315 4.92121 1.33315 9.3332C1.33315 12.9372 3.72914 15.9905 7.0118 16.9865C8.00913 20.2692 11.0611 22.6665 14.6664 22.6665C19.0784 22.6665 22.6664 19.0785 22.6664 14.6665C22.6664 11.0625 20.2704 8.00921 16.9878 7.01321ZM3.33314 9.3332C3.33314 6.02521 6.02513 3.33322 9.33313 3.33322C11.6798 3.33322 13.6944 4.69988 14.6798 6.66654C14.6758 6.66654 14.6704 6.66654 14.6664 6.66654C10.2545 6.66654 6.66647 10.2545 6.66647 14.6665C6.66647 14.6705 6.66647 14.6759 6.66647 14.6799C4.69847 13.6945 3.33314 11.6799 3.33314 9.3332ZM14.6664 20.6665C12.3198 20.6665 10.3051 19.2998 9.31979 17.3332C9.32379 17.3332 9.32913 17.3332 9.33313 17.3332C13.7451 17.3332 17.3331 13.7452 17.3331 9.3332C17.3331 9.3292 17.3331 9.32387 17.3331 9.31987C19.3011 10.3052 20.6664 12.3199 20.6664 14.6665C20.6664 17.9745 17.9744 20.6665 14.6664 20.6665Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ConnectionOkayIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M13 10.3332C13 9.78092 12.5523 9.33321 12 9.33321C11.4477 9.33321 11 9.78092 11 10.3332V18.9999C11 19.5522 11.4477 19.9999 12 19.9999C12.5523 19.9999 13 19.5522 13 18.9999V10.3332ZM7.66667 12.6665C8.21896 12.6665 8.66667 13.1143 8.66667 13.6665V18.9999C8.66667 19.5522 8.21896 19.9999 7.66667 19.9999C7.11439 19.9999 6.66667 19.5522 6.66667 18.9999V13.6665C6.66667 13.1143 7.11439 12.6665 7.66667 12.6665ZM3.66667 15.9999C4.21896 15.9999 4.66667 16.4476 4.66667 16.9999V18.9999C4.66667 19.5522 4.21896 19.9999 3.66667 19.9999C3.11439 19.9999 2.66667 19.5522 2.66667 18.9999V16.9999C2.66667 16.4476 3.11439 15.9999 3.66667 15.9999ZM16.3333 19.9999C16.8856 19.9999 17.3333 19.5522 17.3333 18.9999C17.3333 18.4476 16.8856 17.9999 16.3333 17.9999C15.7811 17.9999 15.3333 18.4476 15.3333 18.9999C15.3333 19.5522 15.7811 19.9999 16.3333 19.9999ZM21.3333 18.9999C21.3333 19.5522 20.8856 19.9999 20.3333 19.9999C19.7811 19.9999 19.3333 19.5522 19.3333 18.9999C19.3333 18.4476 19.7811 17.9999 20.3333 17.9999C20.8856 17.9999 21.3333 18.4476 21.3333 18.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ConnectionPoorIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.2929 2.95944C15.6834 2.56892 16.3166 2.56892 16.7071 2.95944L18.6667 4.919L20.6262 2.95944C21.0168 2.56892 21.6499 2.56892 22.0404 2.95944C22.431 3.34997 22.431 3.98313 22.0404 4.37366L20.0809 6.33322L22.0404 8.29278C22.431 8.6833 22.431 9.31647 22.0404 9.70699C21.6499 10.0975 21.0168 10.0975 20.6262 9.70699L18.6667 7.74743L16.7071 9.70699C16.3166 10.0975 15.6834 10.0975 15.2929 9.70699C14.9024 9.31647 14.9024 8.6833 15.2929 8.29278L17.2525 6.33322L15.2929 4.37366C14.9024 3.98313 14.9024 3.34997 15.2929 2.95944ZM7.66667 12.6665C8.21896 12.6665 8.66667 13.1143 8.66667 13.6665V18.9999C8.66667 19.5522 8.21896 19.9999 7.66667 19.9999C7.11439 19.9999 6.66667 19.5522 6.66667 18.9999V13.6665C6.66667 13.1143 7.11439 12.6665 7.66667 12.6665ZM3.66667 15.9999C4.21896 15.9999 4.66667 16.4476 4.66667 16.9999V18.9999C4.66667 19.5522 4.21896 19.9999 3.66667 19.9999C3.11439 19.9999 2.66667 19.5522 2.66667 18.9999V16.9999C2.66667 16.4476 3.11439 15.9999 3.66667 15.9999ZM17.3333 18.9999C17.3333 19.5522 16.8856 19.9999 16.3333 19.9999C15.7811 19.9999 15.3333 19.5522 15.3333 18.9999C15.3333 18.4476 15.7811 17.9999 16.3333 17.9999C16.8856 17.9999 17.3333 18.4476 17.3333 18.9999ZM12 19.9999C12.5523 19.9999 13 19.5522 13 18.9999C13 18.4476 12.5523 17.9999 12 17.9999C11.4477 17.9999 11 18.4476 11 18.9999C11 19.5522 11.4477 19.9999 12 19.9999ZM21.3333 18.9999C21.3333 19.5522 20.8856 19.9999 20.3333 19.9999C19.7811 19.9999 19.3333 19.5522 19.3333 18.9999C19.3333 18.4476 19.7811 17.9999 20.3333 17.9999C20.8856 17.9999 21.3333 18.4476 21.3333 18.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ConnectionStrongIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.3333 18.9999C19.3333 19.5519 19.7813 19.9999 20.3333 19.9999C20.8853 19.9999 21.3333 19.5519 21.3333 18.9999V3.66655C21.3333 3.11455 20.8853 2.66655 20.3333 2.66655C19.7813 2.66655 19.3333 3.11455 19.3333 3.66655V18.9999ZM16.3333 19.9999C15.7813 19.9999 15.3333 19.5519 15.3333 18.9999V6.99988C15.3333 6.44788 15.7813 5.99988 16.3333 5.99988C16.8853 5.99988 17.3333 6.44788 17.3333 6.99988V18.9999C17.3333 19.5519 16.8853 19.9999 16.3333 19.9999ZM11 18.9999C11 19.5519 11.448 19.9999 12 19.9999C12.552 19.9999 13 19.5519 13 18.9999V10.3332C13 9.78122 12.552 9.33322 12 9.33322C11.448 9.33322 11 9.78122 11 10.3332V18.9999ZM7.66667 19.9999C7.11467 19.9999 6.66667 19.5519 6.66667 18.9999V13.6665C6.66667 13.1145 7.11467 12.6665 7.66667 12.6665C8.21867 12.6665 8.66667 13.1145 8.66667 13.6665V18.9999C8.66667 19.5519 8.21867 19.9999 7.66667 19.9999ZM3.66667 19.9999C3.11467 19.9999 2.66667 19.5519 2.66667 18.9999V16.9999C2.66667 16.4479 3.11467 15.9999 3.66667 15.9999C4.21867 15.9999 4.66667 16.4479 4.66667 16.9999V18.9999C4.66667 19.5519 4.21867 19.9999 3.66667 19.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ContentLibraryIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M8.99973 2.66653H18.9997C21.0224 2.66653 22.6664 4.31053 22.6664 6.33319V13.6665C22.6664 15.6892 21.0224 17.3332 18.9997 17.3332H8.99973C6.97707 17.3332 5.33308 15.6892 5.33308 13.6665V6.33319C5.33308 4.31053 6.97707 2.66653 8.99973 2.66653ZM13.2197 12.5358L16.281 10.6892V10.6865C16.7997 10.3745 16.7997 9.62252 16.281 9.30918L13.2197 7.46252C12.6837 7.13986 11.9997 7.52652 11.9997 8.15185V11.8465C11.9997 12.4732 12.6837 12.8585 13.2197 12.5358ZM4.99974 21.3332H16.333C16.885 21.3332 17.333 20.8852 17.333 20.3332C17.333 19.7812 16.885 19.3332 16.333 19.3332H4.99974C4.08108 19.3332 3.33308 18.5852 3.33308 17.6665V8.99985C3.33308 8.44785 2.88508 7.99985 2.33308 7.99985C1.78108 7.99985 1.33308 8.44785 1.33308 8.99985V17.6665C1.33308 19.6892 2.97708 21.3332 4.99974 21.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ControlsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M7.99967 2.33322V5.47454C9.71967 5.92254 10.9997 7.47454 10.9997 9.3332C10.9997 11.1919 9.71967 12.7452 7.99967 13.1919V21.6665C7.99967 22.2185 7.55168 22.6665 6.99968 22.6665C6.44768 22.6665 5.99968 22.2185 5.99968 21.6665V13.1919C4.27968 12.7439 2.99969 11.1919 2.99969 9.3332C2.99969 7.47454 4.27968 5.92121 5.99968 5.47454V2.33322C5.99968 1.78122 6.44768 1.33322 6.99968 1.33322C7.55168 1.33322 7.99967 1.78122 7.99967 2.33322ZM4.99968 9.3332C4.99968 10.4359 5.89701 11.3332 6.99968 11.3332C8.10234 11.3332 8.99967 10.4359 8.99967 9.3332C8.99967 8.23054 8.10234 7.33321 6.99968 7.33321C5.89701 7.33321 4.99968 8.23054 4.99968 9.3332ZM17.9997 10.8079C19.7196 11.2559 20.9996 12.8079 20.9996 14.6665C20.9996 16.5252 19.7196 18.0785 17.9997 18.5252V21.6665C17.9997 22.2185 17.5517 22.6665 16.9997 22.6665C16.4477 22.6665 15.9997 22.2185 15.9997 21.6665V18.5252C14.2797 18.0772 12.9997 16.5252 12.9997 14.6665C12.9997 12.8079 14.2797 11.2545 15.9997 10.8079V2.33322C15.9997 1.78122 16.4477 1.33322 16.9997 1.33322C17.5517 1.33322 17.9997 1.78122 17.9997 2.33322V10.8079Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const CursorClickIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.333 4.99986C11.333 5.55186 10.885 5.99986 10.333 5.99986C9.78096 5.99986 9.33296 5.55186 9.33296 4.99986V2.33319C9.33296 1.78119 9.78096 1.33319 10.333 1.33319C10.885 1.33319 11.333 1.78119 11.333 2.33319V4.99986ZM17.845 16.4305L22.3636 20.9505L22.365 20.9492C22.7556 21.3399 22.7556 21.9732 22.365 22.3639C22.1703 22.5599 21.9143 22.6572 21.6583 22.6572C21.4023 22.6572 21.1463 22.5585 20.9516 22.3639L16.433 17.8439L15.281 20.9052C15.0836 21.4319 14.5956 21.7692 14.033 21.7692H14.0116C13.4396 21.7599 12.953 21.4052 12.7703 20.8652L9.42363 11.1172C9.25697 10.6305 9.37963 10.1039 9.7423 9.74119C10.105 9.37853 10.6316 9.25586 11.1183 9.42386L20.8676 12.7692C21.4076 12.9545 21.7596 13.4412 21.769 14.0105C21.777 14.5799 21.4383 15.0785 20.9063 15.2785L17.845 16.4305ZM14.1036 7.5612C14.3596 7.5612 14.6156 7.46387 14.8103 7.26787L16.6956 5.38253C17.0863 4.99187 17.0863 4.35853 16.6956 3.96787C16.305 3.5772 15.6716 3.5772 15.281 3.96787L13.3956 5.8532C13.005 6.24387 13.005 6.8772 13.3956 7.26787C13.5903 7.46253 13.8463 7.5612 14.1023 7.5612H14.1036ZM3.97029 15.2825L5.85563 13.3972H5.85429C6.24496 13.0065 6.87829 13.0065 7.26896 13.3972C7.65963 13.7879 7.65963 14.4212 7.26896 14.8119L5.38363 16.6972C5.18896 16.8932 4.93296 16.9905 4.67696 16.9905C4.42096 16.9905 4.16496 16.8919 3.97029 16.6972C3.57963 16.3065 3.57963 15.6732 3.97029 15.2825ZM5.99963 10.3332C5.99963 9.78119 5.55163 9.33319 4.99963 9.33319H2.33296C1.78096 9.33319 1.33296 9.78119 1.33296 10.3332C1.33296 10.8852 1.78096 11.3332 2.33296 11.3332H4.99963C5.55163 11.3332 5.99963 10.8852 5.99963 10.3332ZM3.96896 3.96919C4.35963 3.57853 4.99296 3.57853 5.38363 3.96919L7.26763 5.85453C7.6583 6.24519 7.6583 6.87853 7.26763 7.26919C7.07296 7.46519 6.81696 7.56253 6.56096 7.56253C6.30496 7.56253 6.04896 7.46386 5.8543 7.26919L3.96896 5.38386C3.5783 4.99319 3.5783 4.35986 3.96896 3.96919Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const DeleteIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.9996 5.33321H20.3329C20.8849 5.33321 21.3329 5.78121 21.3329 6.33321C21.3329 6.88521 20.8849 7.33321 20.3329 7.33321H19.0884L18.4636 19.1932C18.3609 21.1398 16.7529 22.6665 14.8023 22.6665H9.1956C7.24494 22.6665 5.63695 21.1398 5.53428 19.1918L4.90949 7.33321H3.66629C3.11429 7.33321 2.66629 6.88521 2.66629 6.33321C2.66629 5.78121 3.11429 5.33321 3.66629 5.33321H7.99961V3.66655C7.99961 2.37989 9.04627 1.33322 10.3329 1.33322H13.6663C14.9529 1.33322 15.9996 2.37989 15.9996 3.66655V5.33321ZM10.3329 3.33322C10.1489 3.33322 9.99961 3.48255 9.99961 3.66655V5.33321H13.9996V3.66655C13.9996 3.48255 13.8503 3.33322 13.6663 3.33322H10.3329Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const DesktopIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12.9995 18.6665H18.9995C21.0222 18.6665 22.6662 17.0225 22.6662 14.9998V6.33319C22.6662 4.31053 21.0222 2.66653 18.9995 2.66653H4.99956C2.9769 2.66653 1.3329 4.31053 1.3329 6.33319V14.9998C1.3329 17.0225 2.9769 18.6665 4.99956 18.6665H10.9995V20.0412C9.76888 20.1212 8.54754 20.3412 7.36488 20.7132C6.83822 20.8798 6.54622 21.4398 6.71288 21.9678C6.87822 22.4932 7.43421 22.7838 7.96621 22.6212C10.5769 21.7985 13.4155 21.7972 16.0315 22.6212C16.1315 22.6518 16.2329 22.6678 16.3329 22.6678C16.7582 22.6678 17.1515 22.3945 17.2875 21.9678C17.4529 21.4412 17.1595 20.8798 16.6342 20.7145V20.7132C15.4515 20.3412 14.2302 20.1198 12.9995 20.0412V18.6665ZM12.0009 16.6665H18.9995C19.9182 16.6665 20.6662 15.9185 20.6662 14.9998V6.33319C20.6662 5.41453 19.9182 4.66653 18.9995 4.66653H4.99956C4.08089 4.66653 3.3329 5.41453 3.3329 6.33319V14.9998C3.3329 15.9185 4.08089 16.6665 4.99956 16.6665H11.9981C11.9986 16.6665 11.9991 16.6665 11.9995 16.6665C12 16.6665 12.0005 16.6665 12.0009 16.6665Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const DocsDevIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.333 1.33301C20.8849 1.33301 21.3328 1.78116 21.333 2.33301V16.9482C21.3449 17.1756 21.2799 17.408 21.1318 17.6035C20.5478 18.3715 20.431 20.1503 21.127 21.0557C21.3603 21.357 21.4004 21.7657 21.2324 22.1084C21.0644 22.451 20.7143 22.667 20.333 22.667H6C4.16133 22.667 2.66699 21.1703 2.66699 19.333V5C2.66699 2.97744 4.31049 1.33318 6.33301 1.33301H20.333ZM6 18C5.26411 18 4.66717 18.5985 4.66699 19.333L4.67383 19.4697C4.74234 20.1407 5.31014 20.667 6 20.667H18.7891C18.5763 19.7858 18.6028 18.8386 18.8096 18H6ZM12.0029 4.33301C11.451 4.33301 11.0031 4.78116 11.0029 5.33301V6.1377C10.7256 6.2159 10.4613 6.32528 10.2148 6.46289L9.64648 5.89453C9.2559 5.50545 8.62306 5.5042 8.23242 5.89453C7.84176 6.2852 7.84176 6.9189 8.23242 7.30957L8.79883 7.87695C8.66048 8.12389 8.55031 8.38899 8.47168 8.66699H7.66895C7.11712 8.6672 6.66895 9.11512 6.66895 9.66699C6.66912 10.2187 7.11723 10.6668 7.66895 10.667H8.47168C8.55029 10.9448 8.66058 11.2093 8.79883 11.4561L8.23242 12.0244C7.84176 12.4151 7.84176 13.0491 8.23242 13.4385C8.42703 13.6344 8.68392 13.7324 8.93848 13.7324C9.19448 13.7324 9.45084 13.6331 9.64551 13.4385L10.2139 12.8691C10.4602 13.0068 10.7238 13.117 11.001 13.1953V14C11.001 14.5519 11.4491 14.9998 12.001 15C12.553 15 13.001 14.552 13.001 14V13.1953C13.278 13.1169 13.542 13.0059 13.7881 12.8682L14.3574 13.4385C14.5521 13.6345 14.8085 13.7324 15.0645 13.7324C15.319 13.7323 15.576 13.633 15.7705 13.4385C16.1611 13.0479 16.161 12.4151 15.7705 12.0244L15.2021 11.4541C15.34 11.2079 15.45 10.9441 15.5283 10.667H16.3359C16.8878 10.667 17.3358 10.2188 17.3359 9.66699C17.3359 9.11499 16.8879 8.66699 16.3359 8.66699H15.5283C15.4501 8.39036 15.3404 8.12674 15.2031 7.88086L15.7734 7.30957C16.1641 6.9189 16.1641 6.28386 15.7734 5.89453C15.3828 5.50388 14.7491 5.5052 14.3584 5.89453L13.7891 6.46484C13.5432 6.32714 13.2796 6.21718 13.0029 6.13867V5.33301C13.0028 4.78125 12.5547 4.33315 12.0029 4.33301ZM12 8C12.9205 8 13.667 8.74651 13.667 9.66699C13.6668 10.5873 12.9204 11.333 12 11.333C11.0796 11.333 10.3332 10.5873 10.333 9.66699C10.333 8.74651 11.0795 8 12 8Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const DotsHorizontalIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12 13.6665C12.9204 13.6665 13.6666 12.9203 13.6666 11.9999C13.6666 11.0794 12.9204 10.3332 12 10.3332C11.0795 10.3332 10.3333 11.0794 10.3333 11.9999C10.3333 12.9203 11.0795 13.6665 12 13.6665ZM4.33332 13.6665C5.25379 13.6665 5.99998 12.9203 5.99998 11.9999C5.99998 11.0794 5.25379 10.3332 4.33332 10.3332C3.41285 10.3332 2.66666 11.0794 2.66666 11.9999C2.66666 12.9203 3.41285 13.6665 4.33332 13.6665ZM21.3333 11.9999C21.3333 12.9203 20.5871 13.6665 19.6666 13.6665C18.7461 13.6665 18 12.9203 18 11.9999C18 11.0794 18.7461 10.3332 19.6666 10.3332C20.5871 10.3332 21.3333 11.0794 21.3333 11.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const DownloadIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12.9999 10.5852L15.6266 7.95853H15.6239C16.0146 7.56786 16.6479 7.56786 17.0386 7.95853C17.4292 8.3492 17.4292 8.98253 17.0386 9.37319L12.7053 13.7065C12.5106 13.9025 12.2546 13.9998 11.9986 13.9998C11.7426 13.9998 11.4866 13.9012 11.2919 13.7065L6.95861 9.37319C6.56794 8.98253 6.56794 8.3492 6.95861 7.95853C7.34927 7.56786 7.98261 7.56786 8.37327 7.95853L10.9999 10.5852V2.99988C10.9999 2.44788 11.4479 1.99988 11.9999 1.99988C12.5519 1.99988 12.9999 2.44788 12.9999 2.99988V10.5852ZM4.99992 15.9998H18.9999C20.2885 15.9998 21.3332 17.0445 21.3332 18.3332V19.6665C21.3332 20.9552 20.2885 21.9998 18.9999 21.9998H4.99992C3.71126 21.9998 2.6666 20.9552 2.6666 19.6665V18.3332C2.6666 17.0445 3.71126 15.9998 4.99992 15.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const EditTranscriptIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.8344 8.85282C16.0211 8.87183 16.223 8.83389 16.3459 8.69219C17.6571 7.18091 20.3164 4.47683 20.6789 4.21587C20.9813 3.99815 21.3177 3.92374 21.4454 3.90212C21.4807 3.89615 21.5165 3.89661 21.5505 3.90758C21.6756 3.94791 21.9654 4.09866 21.7172 4.59505C21.4636 5.10221 19.9604 7.34328 19.423 8.14019C19.3118 8.30505 19.3328 8.52457 19.4725 8.66607L19.5901 8.78525C19.7133 8.91004 19.9004 8.939 20.0701 8.89503C20.1998 8.86144 20.3358 8.84345 20.4773 8.84345C21.2852 8.75813 22.253 9.77264 22.1492 10.4611C22.1446 10.4917 22.1409 10.5225 22.14 10.5534C22.1153 11.4508 21.3807 12.1701 20.4773 12.1701C19.3173 12.2201 18.814 11.4257 18.814 10.5067C18.814 10.3645 18.8322 10.2278 18.8661 10.0976C18.91 9.92889 18.8818 9.74296 18.7585 9.61966L18.2769 9.13808C18.1142 8.97536 17.8504 8.97536 17.6877 9.13808L17.2061 9.61966C17.0828 9.74296 17.0546 9.92889 17.0986 10.0976C17.1325 10.2278 17.1506 10.3645 17.1506 10.5067C17.1506 11.4257 16.6278 12.0884 15.4873 12.1701C14.3468 12.2517 13.8065 11.3033 13.824 10.5067C13.8414 9.71022 14.5683 8.84345 15.4873 8.84345C15.502 8.84345 15.5166 8.84342 15.5311 8.8434C15.6391 8.84323 15.7386 8.84307 15.8344 8.85282ZM15.4738 11.4552C16.1781 11.4171 16.319 10.9642 16.319 10.5067C16.319 10.0493 15.9242 9.76651 15.4598 9.78058C14.9954 9.79466 14.6436 9.96352 14.6556 10.5067C14.6677 11.05 14.7696 11.4932 15.4738 11.4552ZM20.4488 11.204C20.9104 11.204 21.1647 10.9225 21.1647 10.4651C21.1647 10.0076 20.8873 9.8185 20.4257 9.8185C19.9642 9.8185 19.756 10.0769 19.756 10.5343C19.756 10.9918 19.9873 11.204 20.4488 11.204ZM16.6382 7.29752C16.324 7.14622 14.6489 5.03354 14.4976 4.77749C14.3918 4.59837 14.3087 4.33951 14.2684 4.20013C14.2498 4.13609 14.2476 4.0671 14.2805 4.0091C14.3314 3.91941 14.4406 3.80421 14.6556 3.85346C14.9924 3.93057 17.5675 5.66511 17.7304 5.99098C17.8934 6.31686 16.9525 7.44883 16.6382 7.29752ZM4.24987 6.00025C3.55952 6.00025 2.99988 6.55989 2.99988 7.25025C2.99988 7.9406 3.55952 8.50025 4.24987 8.50025H11.7499C12.4403 8.50025 12.9999 7.9406 12.9999 7.25025C12.9999 6.55989 12.4403 6.00025 11.7499 6.00025H4.24987ZM4.24987 11.0002C3.55952 11.0002 2.99988 11.5598 2.99988 12.2502C2.99988 12.9406 3.55952 13.5002 4.24987 13.5002H10.7499C11.4403 13.5002 11.9999 12.9406 11.9999 12.2502C11.9999 11.5598 11.4403 11.0002 10.7499 11.0002H4.24987ZM2.99988 17.2502C2.99988 16.5598 3.55952 16.0002 4.24987 16.0002H15.7498C16.4402 16.0002 16.9998 16.5598 16.9998 17.2502C16.9998 17.9406 16.4402 18.5002 15.7498 18.5002H4.24987C3.55952 18.5002 2.99988 17.9406 2.99988 17.2502Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const EllipsesVerticalIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.9998 5.99986C12.9203 5.99986 13.6665 5.25367 13.6665 4.3332C13.6665 3.41272 12.9203 2.66653 11.9998 2.66653C11.0793 2.66653 10.3331 3.41272 10.3331 4.3332C10.3331 5.25367 11.0793 5.99986 11.9998 5.99986ZM11.9998 13.6665C12.9203 13.6665 13.6664 12.9203 13.6664 11.9998C13.6664 11.0794 12.9203 10.3332 11.9998 10.3332C11.0793 10.3332 10.3331 11.0794 10.3331 11.9998C10.3331 12.9203 11.0793 13.6665 11.9998 13.6665ZM13.6664 19.6665C13.6664 20.587 12.9203 21.3332 11.9998 21.3332C11.0793 21.3332 10.3331 20.587 10.3331 19.6665C10.3331 18.746 11.0793 17.9998 11.9998 17.9998C12.9203 17.9998 13.6664 18.746 13.6664 19.6665Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const EmbedIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M18.6664 9.33318C18.4104 9.33318 18.1544 9.23585 17.9597 9.03985C17.569 8.64919 17.569 8.01585 17.9597 7.62519L20.253 5.33186L17.9597 3.03853C17.569 2.64787 17.569 2.01454 17.9597 1.62387C18.3504 1.23321 18.9837 1.23321 19.3744 1.62387L22.3744 4.62386C22.765 5.01453 22.765 5.64786 22.3744 6.03853L19.3744 9.03852C19.1797 9.23319 18.9237 9.33185 18.6677 9.33185L18.6664 9.33318ZM20.7877 10.4545C20.221 11.0212 19.4677 11.3332 18.6664 11.3332H14.6664C13.8651 11.3332 13.1117 11.0212 12.5451 10.4545L9.54506 7.45453C8.9784 6.88786 8.6664 6.13453 8.6664 5.3332C8.6664 4.53187 8.9784 3.77854 9.54506 3.21187L10.0904 2.66654H6.33307C4.31041 2.66654 2.66641 4.31054 2.66641 6.3332V17.6665C2.66641 19.6892 4.31041 21.3332 6.33307 21.3332H17.6664C19.689 21.3332 21.333 19.6892 21.333 17.6665V9.90919L20.7877 10.4545ZM13.9597 9.03986C14.1544 9.23586 14.4104 9.33319 14.6664 9.33319L14.6677 9.33453C14.9237 9.33453 15.1797 9.23586 15.3744 9.0412C15.765 8.65053 15.765 8.0172 15.3744 7.62653L13.081 5.3332L15.3744 3.03988C15.765 2.64921 15.765 2.01588 15.3744 1.62521C14.9837 1.23455 14.3504 1.23455 13.9597 1.62521L10.9597 4.62521C10.5691 5.01587 10.5691 5.6492 10.9597 6.03987L13.9597 9.03986Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const EnvelopeIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12.1597 11.7692C12.061 11.8252 11.9383 11.8252 11.8397 11.7692L1.47569 6.04387C1.89836 4.48654 3.31036 3.33321 4.99969 3.33321H18.9997C20.6943 3.33321 22.1103 4.49454 22.529 6.05853L12.1597 11.7692ZM12.001 13.8118C12.3877 13.8118 12.7743 13.7145 13.1263 13.5198L22.6663 8.26651V16.9998C22.6663 19.0225 21.0223 20.6665 18.9996 20.6665H4.99968C2.97702 20.6665 1.33302 19.0225 1.33302 16.9998V8.25051L10.873 13.5185C11.225 13.7145 11.6143 13.8118 12.001 13.8118Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const EnvelopeOpenIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.7708 5.84267L13.1282 1.624C12.4228 1.23467 11.5788 1.23467 10.8735 1.624L3.2295 5.84267C2.0415 6.49733 1.3335 7.67733 1.3335 9.00133V17.668C1.3335 19.6907 2.9775 21.3347 5.00016 21.3347H19.0002C21.0228 21.3347 22.6668 19.6907 22.6668 17.668V9.00133C22.6668 7.67733 21.9588 6.49733 20.7708 5.84267ZM4.19483 7.592L11.8388 3.37467C11.9402 3.31867 12.0602 3.31867 12.1615 3.37467L19.8042 7.592C20.1642 7.79067 20.4108 8.08667 20.5468 8.42933L12.1428 12.4853C12.0522 12.5293 11.9468 12.5293 11.8548 12.4853L3.4535 8.43067C3.58816 8.08667 3.83483 7.792 4.19616 7.59333L4.19483 7.592Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ErrorIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21.9156 16.6878L14.6823 4.15987C14.1223 3.19054 13.1196 2.61188 11.9996 2.61188C10.8796 2.61188 9.87694 3.19054 9.31695 4.15987L2.08363 16.6878C1.52363 17.6572 1.52363 18.8145 2.08363 19.7838C2.64363 20.7545 3.64629 21.3332 4.76629 21.3332H19.2329C20.3529 21.3332 21.3556 20.7545 21.9156 19.7838C22.4756 18.8145 22.4756 17.6572 21.9156 16.6878ZM10.9996 8.66653C10.9996 8.11453 11.4476 7.66653 11.9996 7.66653C12.5516 7.66653 12.9996 8.11453 12.9996 8.66653V13.3332C12.9996 13.8852 12.5516 14.3332 11.9996 14.3332C11.4476 14.3332 10.9996 13.8852 10.9996 13.3332V8.66653ZM11.9996 18.0918C11.2636 18.0918 10.6663 17.4932 10.6663 16.7585C10.6663 16.0238 11.2636 15.4252 11.9996 15.4252C12.7356 15.4252 13.3329 16.0238 13.3329 16.7585C13.3329 17.4932 12.7356 18.0918 11.9996 18.0918Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ExpandIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.2915 2.95987C11.6822 2.5692 12.3155 2.5692 12.7062 2.95987L17.3729 7.62652C17.7635 8.01719 17.7635 8.65052 17.3729 9.04119C17.1782 9.23719 16.9222 9.33452 16.6662 9.33452C16.4102 9.33452 16.1542 9.23585 15.9595 9.04119L11.9995 5.0812L8.03956 9.04119C7.64889 9.43185 7.01556 9.43185 6.62489 9.04119C6.23423 8.65052 6.23423 8.01719 6.62489 7.62652L11.2915 2.95987ZM11.9995 18.9198L15.9595 14.9598H15.9569C16.3475 14.5692 16.9809 14.5692 17.3715 14.9598C17.7622 15.3505 17.7622 15.9838 17.3715 16.3745L12.7049 21.0412C12.5102 21.2372 12.2542 21.3345 11.9982 21.3345C11.7422 21.3345 11.4862 21.2358 11.2915 21.0412L6.62489 16.3745C6.23423 15.9838 6.23423 15.3505 6.62489 14.9598C7.01556 14.5692 7.64889 14.5692 8.03956 14.9598L11.9995 18.9198Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ExpandDiagonalIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M14.8048 2.66653H19.9995C20.7355 2.66653 21.3328 3.2652 21.3328 3.99987V9.19587C21.3328 9.7372 21.0102 10.2212 20.5088 10.4279C20.3435 10.4959 20.1702 10.5292 19.9982 10.5292C19.6502 10.5292 19.3102 10.3932 19.0555 10.1372L17.1662 8.24787L15.0395 10.3745C14.8448 10.5705 14.5888 10.6679 14.3328 10.6679C14.0768 10.6679 13.8208 10.5692 13.6262 10.3745C13.2355 9.98387 13.2355 9.35053 13.6262 8.95987L15.7528 6.8332L13.8622 4.94253C13.4795 4.55853 13.3662 3.9892 13.5728 3.4892C13.7808 2.9892 14.2648 2.66653 14.8048 2.66653ZM8.95817 13.6265C9.34866 13.236 9.98159 13.2359 10.3723 13.626C10.7622 14.0167 10.7619 14.6495 10.3715 15.0399L8.24484 17.1665L10.1355 19.0572C10.5182 19.4412 10.6315 20.0105 10.4248 20.5105C10.2168 21.0105 9.73284 21.3332 9.19284 21.3332H3.99817C3.26217 21.3332 2.66484 20.7345 2.66484 19.9999V14.8052C2.66484 14.2639 2.98751 13.7799 3.48884 13.5732C3.98751 13.3652 4.56084 13.4812 4.94217 13.8639L6.83151 15.7532L8.95817 13.6265ZM10.3723 13.626C10.3725 13.6262 10.3727 13.6263 10.3728 13.6265L10.3718 13.6255C10.3719 13.6256 10.3721 13.6258 10.3723 13.626Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ExpandHorizontalIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M4.74764 10.9999H9.6663L9.66497 10.9986C10.217 10.9986 10.665 11.4466 10.665 11.9986C10.665 12.5506 10.217 12.9986 9.66497 12.9986H4.7463L7.37297 15.6252C7.76364 16.0159 7.76364 16.6492 7.37297 17.0399C7.1783 17.2359 6.9223 17.3332 6.6663 17.3332C6.4103 17.3332 6.1543 17.2346 5.95964 17.0399L1.6263 12.7066C1.23564 12.3159 1.23564 11.6826 1.6263 11.2919L5.95964 6.95857C6.3503 6.56791 6.98364 6.56791 7.3743 6.95857C7.76497 7.34924 7.76497 7.98257 7.3743 8.37324L4.74764 10.9999ZM16.625 6.95988C17.0156 6.56921 17.649 6.56921 18.0396 6.95988L18.0383 6.96121L22.3716 11.2945C22.7623 11.6852 22.7623 12.3185 22.3716 12.7092L18.0383 17.0425C17.8436 17.2385 17.5876 17.3359 17.3316 17.3359C17.0756 17.3359 16.8196 17.2372 16.625 17.0425C16.2343 16.6519 16.2343 16.0185 16.625 15.6279L19.2516 13.0012H14.333C13.781 13.0012 13.333 12.5532 13.333 12.0012C13.333 11.4492 13.781 11.0012 14.333 11.0012H19.2516L16.625 8.37454C16.2343 7.98388 16.2343 7.35054 16.625 6.95988Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FastForwardIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.1396 10.5412L13.1396 4.99988C12.6183 4.71188 11.9996 4.71988 11.4876 5.02255C10.973 5.32522 10.6663 5.86255 10.6663 6.45855V9.53988L2.47297 5.00122C1.9503 4.71188 1.33297 4.72122 0.819632 5.02255C0.304965 5.32522 -0.00170135 5.86255 -0.00170135 6.45855V17.5412C-0.00170135 18.1372 0.304965 18.6745 0.819632 18.9772C1.0823 19.1319 1.3743 19.2105 1.66497 19.2105C1.9423 19.2105 2.2183 19.1399 2.47163 18.9999L10.665 14.4599V17.5412C10.665 18.1372 10.9716 18.6745 11.4863 18.9772C11.749 19.1319 12.041 19.2105 12.3316 19.2105C12.609 19.2105 12.885 19.1399 13.1383 18.9999L23.1383 13.4585C23.6676 13.1652 23.9983 12.6065 23.9983 11.9999C23.9983 11.3932 23.6703 10.8345 23.1396 10.5412Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FavoriteIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.6168 9.04785C22.4995 8.68652 22.1861 8.42252 21.8101 8.36786L15.6501 7.47319L12.8955 1.89054C12.5595 1.20787 11.4382 1.20787 11.1022 1.89054L8.34749 7.47186L2.18751 8.36652C1.81151 8.42119 1.49818 8.68519 1.38084 9.04652C1.26351 9.40785 1.36084 9.80652 1.63418 10.0719L6.0915 14.4158L5.03817 20.5505C4.97417 20.9265 5.1275 21.3052 5.4355 21.5292C5.7435 21.7518 6.15283 21.7812 6.48883 21.6052L11.9981 18.7078L17.5075 21.6052C17.6541 21.6825 17.8128 21.7198 17.9728 21.7198C18.1795 21.7198 18.3861 21.6558 18.5608 21.5292C18.8688 21.3052 19.0235 20.9265 18.9581 20.5505L17.9048 14.4158L22.3621 10.0719C22.6355 9.80652 22.7328 9.40785 22.6155 9.04652L22.6168 9.04785Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FavoriteOutlineIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 1.33321C12.3806 1.33321 12.7283 1.54931 12.8967 1.89066L15.6507 7.47119L21.8104 8.36625C22.1871 8.42098 22.5 8.68481 22.6177 9.0468C22.7353 9.4088 22.6372 9.80619 22.3647 10.0719L17.9078 14.4169L18.9602 20.5507C19.0246 20.9259 18.8704 21.305 18.5625 21.5288C18.2546 21.7525 17.8463 21.7821 17.5094 21.605L12 18.7095L6.49053 21.605C6.1536 21.7821 5.74536 21.7525 5.43745 21.5288C5.12954 21.305 4.97535 20.9259 5.03972 20.5507L6.09215 14.4169L1.63526 10.0719C1.36272 9.80619 1.26465 9.4088 1.38228 9.0468C1.49991 8.68481 1.81285 8.42098 2.18953 8.36625L8.34923 7.47119L11.1032 1.89066C11.2717 1.54931 11.6193 1.33321 12 1.33321ZM12 4.59286L9.91005 8.82773C9.76439 9.12289 9.48282 9.32746 9.15711 9.37479L4.4821 10.0541L7.86471 13.3518C8.10037 13.5816 8.2079 13.9126 8.15224 14.2369L7.35352 18.8921L11.5348 16.6946C11.826 16.5416 12.1739 16.5416 12.4652 16.6946L16.6464 18.8921L15.8477 14.2369C15.792 13.9126 15.8996 13.5816 16.1352 13.3518L19.5178 10.0541L14.8428 9.37479C14.5171 9.32746 14.2355 9.12289 14.0899 8.82773L12 4.59286Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FeaturedIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.32397 3.32267L5.06264 2.90267L4.6413 1.64C4.5053 1.232 3.8293 1.232 3.6933 1.64L3.27197 2.90267L2.01064 3.32267C1.80664 3.39067 1.66797 3.58133 1.66797 3.79733C1.66797 4.01333 1.80664 4.204 2.01064 4.272L3.27197 4.692L3.6933 5.95467C3.7613 6.15867 3.95197 6.296 4.16664 6.296C4.3813 6.296 4.5733 6.15733 4.63997 5.95467L5.0613 4.692L6.32264 4.272C6.52664 4.204 6.6653 4.01333 6.6653 3.79733C6.6653 3.58133 6.52797 3.39067 6.32397 3.32267Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.0001 18.6187C12.0001 17.468 12.7334 16.452 13.8254 16.0893L14.5588 15.844L14.8041 15.1093C15.1601 14.0453 16.1761 13.3333 17.3334 13.3333C17.8121 13.3333 18.2521 13.48 18.6454 13.6973L22.3641 10.0733C22.6374 9.808 22.7348 9.40933 22.6174 9.048C22.5001 8.68666 22.1868 8.42266 21.8108 8.368L15.6508 7.47333L12.8961 1.89066C12.5601 1.208 11.4388 1.208 11.1028 1.89066L8.34811 7.472L2.18811 8.36666C1.81211 8.42133 1.49877 8.68533 1.38144 9.04666C1.26411 9.408 1.36144 9.80666 1.63477 10.072L6.09211 14.416L5.03877 20.5507C4.97477 20.9267 5.12811 21.3053 5.43611 21.5293C5.74544 21.752 6.15211 21.7827 6.48944 21.6053L11.9988 18.708L12.0148 18.716C12.0148 18.6827 11.9988 18.652 11.9988 18.6187H12.0001Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M20.2105 17.9867L18.5265 17.4253L17.9652 15.7413C17.7825 15.1973 16.8825 15.1973 16.6999 15.7413L16.1385 17.4253L14.4545 17.9867C14.1825 18.0773 13.9985 18.332 13.9985 18.6187C13.9985 18.9053 14.1825 19.16 14.4545 19.2507L16.1385 19.812L16.6999 21.496C16.7905 21.768 17.0465 21.952 17.3332 21.952C17.6199 21.952 17.8745 21.768 17.9665 21.496L18.5279 19.812L20.2119 19.2507C20.4839 19.16 20.6679 18.9053 20.6679 18.6187C20.6679 18.332 20.4839 18.0773 20.2119 17.9867H20.2105Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M19 5.33333C19.5523 5.33333 20 4.88561 20 4.33333C20 3.78104 19.5523 3.33333 19 3.33333C18.4477 3.33333 18 3.78104 18 4.33333C18 4.88561 18.4477 5.33333 19 5.33333Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FileTreeIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M9.66658 7.99986H6.99992C6.64792 7.99986 6.31458 7.92786 5.99992 7.81586V15.6665C5.99992 16.2185 6.44925 16.6665 6.99992 16.6665H9.66658C10.2186 16.6665 10.6666 17.1145 10.6666 17.6665C10.6666 18.2185 10.2186 18.6665 9.66658 18.6665H6.99992C5.34659 18.6665 3.99992 17.3212 3.99992 15.6665V1.66655C3.99992 1.11455 4.44792 0.66655 4.99992 0.66655C5.55192 0.66655 5.99992 1.11455 5.99992 1.66655V4.99987C5.99992 5.55187 6.44925 5.99987 6.99992 5.99987H9.66658C10.2186 5.99987 10.6666 6.44787 10.6666 6.99987C10.6666 7.55187 10.2186 7.99986 9.66658 7.99986ZM17.6666 2.66655H14.3332C13.0446 2.66655 11.9999 3.71121 11.9999 4.99987V8.3332C11.9999 9.62186 13.0446 10.6665 14.3332 10.6665H17.6666C18.9552 10.6665 19.9999 9.62186 19.9999 8.3332V4.99987C19.9999 3.71121 18.9552 2.66655 17.6666 2.66655ZM17.6666 13.3332H14.3332C13.0446 13.3332 11.9999 14.3779 11.9999 15.6665V18.9998C11.9999 20.2885 13.0446 21.3332 14.3332 21.3332H17.6666C18.9552 21.3332 19.9999 20.2885 19.9999 18.9998V15.6665C19.9999 14.3779 18.9552 13.3332 17.6666 13.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FillIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.34363 3.34363H18.6561C19.7607 3.34363 20.6561 4.23906 20.6561 5.34363V18.6561C20.6561 19.7607 19.7607 20.6561 18.6561 20.6561H5.34363C4.23906 20.6561 3.34363 19.7607 3.34363 18.6561V5.34363C3.34363 4.23906 4.23906 3.34363 5.34363 3.34363ZM1.34363 5.34363C1.34363 3.13449 3.13449 1.34363 5.34363 1.34363H18.6561C20.8653 1.34363 22.6561 3.13449 22.6561 5.34363V18.6561C22.6561 20.8653 20.8653 22.6561 18.6561 22.6561H5.34363C3.13449 22.6561 1.34363 20.8653 1.34363 18.6561V5.34363ZM7.06238 5.03113C5.95781 5.03113 5.06238 5.92656 5.06238 7.03113V17.0624C5.06238 18.1669 5.95781 19.0624 7.06238 19.0624H16.9999C18.1044 19.0624 18.9999 18.1669 18.9999 17.0624V7.03113C18.9999 5.92656 18.1044 5.03113 16.9999 5.03113H7.06238Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FilmStripIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12.0021 2.66661C12.0013 2.66661 12.0006 2.66661 11.9999 2.66661C11.9991 2.66661 11.9984 2.66661 11.9977 2.66661H7.00208C7.00135 2.66661 7.00061 2.66661 6.99987 2.66661C6.99914 2.66661 6.9984 2.66661 6.99767 2.66661H4.99987C2.97483 2.66661 1.33321 4.30823 1.33321 6.33328V8.33328V15.6666V17.6666C1.33321 19.6917 2.97483 21.3333 4.99987 21.3333L6.99987 21.3333H11.9999H16.9999L18.9999 21.3333C21.0249 21.3333 22.6665 19.6917 22.6665 17.6666V15.6686C22.6665 15.6679 22.6665 15.6673 22.6665 15.6666C22.6665 15.666 22.6665 15.6653 22.6665 15.6646V8.33525C22.6665 8.33459 22.6665 8.33394 22.6665 8.33328C22.6665 8.33262 22.6665 8.33196 22.6665 8.3313V6.33328C22.6665 4.30823 21.0249 2.66661 18.9999 2.66661H17.0021C17.0013 2.66661 17.0006 2.66661 16.9999 2.66661C16.9991 2.66661 16.9984 2.66661 16.9977 2.66661H12.0021ZM15.9999 4.66661H12.9999V7.33328H15.9999V4.66661ZM17.9999 4.66661V7.33328H20.6665V6.33328C20.6665 5.4128 19.9203 4.66661 18.9999 4.66661H17.9999ZM20.6665 9.33328H12.9999V14.6666H16.9999H20.6665V9.33328ZM20.6665 16.6666H17.9999V19.3333H18.9999C19.9203 19.3333 20.6665 18.5871 20.6665 17.6666V16.6666ZM15.9999 19.3333V16.6666H12.9999V19.3333H15.9999ZM10.9999 19.3333V16.6666H7.99987V19.3333H10.9999ZM5.99987 19.3333V16.6666H3.33321V17.6666C3.33321 18.5871 4.0794 19.3333 4.99987 19.3333H5.99987ZM3.33321 14.6666H6.99987H10.9999V9.33328H3.33321V14.6666ZM3.33321 7.33328H5.99987V4.66661H4.99987C4.0794 4.66661 3.33321 5.4128 3.33321 6.33328V7.33328ZM7.99987 4.66661V7.33328H10.9999V4.66661H7.99987Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FilterIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M1.66653 5.99987C1.66653 5.0794 2.41272 4.33321 3.3332 4.33321H20.6665C21.587 4.33321 22.3331 5.0794 22.3331 5.99987C22.3331 6.92034 21.587 7.66653 20.6665 7.66653H3.3332C2.41272 7.66653 1.66653 6.92034 1.66653 5.99987ZM4.3332 11.9999C4.3332 11.0794 5.07939 10.3332 5.99986 10.3332H17.9998C18.9203 10.3332 19.6665 11.0794 19.6665 11.9999C19.6665 12.9203 18.9203 13.6665 17.9998 13.6665H5.99986C5.07939 13.6665 4.3332 12.9203 4.3332 11.9999ZM8.66652 16.3332C7.74605 16.3332 6.99986 17.0794 6.99986 17.9998C6.99986 18.9203 7.74605 19.6665 8.66652 19.6665H15.3332C16.2536 19.6665 16.9998 18.9203 16.9998 17.9998C16.9998 17.0794 16.2536 16.3332 15.3332 16.3332H8.66652Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FitIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.34357 3.34363H18.6561C19.7606 3.34363 20.6561 4.23906 20.6561 5.34363V18.6561C20.6561 19.7607 19.7606 20.6561 18.6561 20.6561H5.34357C4.239 20.6561 3.34357 19.7607 3.34357 18.6561V5.34363C3.34357 4.23906 4.239 3.34363 5.34357 3.34363ZM1.34357 5.34363C1.34357 3.13449 3.13443 1.34363 5.34357 1.34363H18.6561C20.8652 1.34363 22.6561 3.13449 22.6561 5.34363V18.6561C22.6561 20.8653 20.8652 22.6561 18.6561 22.6561H5.34357C3.13443 22.6561 1.34357 20.8653 1.34357 18.6561V5.34363ZM7.06232 7.06238C5.95775 7.06238 5.06232 7.95781 5.06232 9.06238V15.0311C5.06232 16.1357 5.95775 17.0311 7.06232 17.0311H16.9998C18.1044 17.0311 18.9998 16.1357 18.9998 15.0311V9.06238C18.9998 7.95781 18.1044 7.06238 16.9998 7.06238H7.06232Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FontsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.3998 2.39987C10.9064 2.39987 10.4633 2.70187 10.2829 3.16109L5.10656 16.3372C5.0999 16.3531 5.09357 16.3692 5.08758 16.3855L3.6829 19.961C3.44057 20.5779 3.74417 21.2744 4.36102 21.5167C4.97786 21.7591 5.67436 21.4555 5.9167 20.8386L7.03193 17.9998H16.9676L18.0829 20.8386C18.3252 21.4555 19.0217 21.7591 19.6385 21.5167C20.2554 21.2744 20.559 20.5779 20.3167 19.961L18.9122 16.386C18.9061 16.3694 18.8996 16.353 18.8928 16.3367L13.7167 3.16109C13.5363 2.70187 13.0932 2.39987 12.5998 2.39987H11.9998H11.3998ZM16.0248 15.5998L11.9998 5.3544L7.97478 15.5998H16.0248Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FooterIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.6666 17.3333H20.6666V6.33332C20.6666 5.41466 19.9186 4.66666 18.9999 4.66666H4.99992C4.08125 4.66666 3.33325 5.41466 3.33325 6.33332V17.3333H1.33325V6.33332C1.33325 4.31066 2.97725 2.66666 4.99992 2.66666H18.9999C21.0226 2.66666 22.6666 4.31066 22.6666 6.33332V17.3333Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M18.9999 13.3333H4.99992C2.97487 13.3333 1.33325 14.9749 1.33325 17V17.6666C1.33325 19.6917 2.97487 21.3333 4.99992 21.3333H18.9999C21.025 21.3333 22.6666 19.6917 22.6666 17.6666V17C22.6666 14.9749 21.025 13.3333 18.9999 13.3333Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const FullScreenIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M14.8051 2.66721H19.9998C20.7345 2.66721 21.3331 3.26587 21.3331 4.00054V9.19521C21.3331 9.73654 21.0105 10.2205 20.5105 10.4272C20.3438 10.4965 20.1705 10.5299 19.9985 10.5299C19.6518 10.5299 19.3131 10.3952 19.0571 10.1392L17.1665 8.24854L15.0398 10.3752C14.8451 10.5712 14.5891 10.6685 14.3331 10.6685C14.0771 10.6685 13.8211 10.5699 13.6265 10.3752C13.2358 9.98454 13.2358 9.35121 13.6265 8.96054L15.7531 6.83387L13.8625 4.94321C13.4798 4.56054 13.3665 3.98987 13.5731 3.48987C13.7798 2.98987 14.2638 2.66721 14.8051 2.66721ZM8.95848 13.6272C9.34897 13.2367 9.9819 13.2365 10.3726 13.6267C10.7625 14.0174 10.7622 14.6501 10.3718 15.0405L8.24515 17.1672L10.1358 19.0579C10.5185 19.4405 10.6318 20.0112 10.4251 20.5112C10.2185 21.0112 9.73448 21.3339 9.19315 21.3339H3.99848C3.26381 21.3339 2.66515 20.7352 2.66515 20.0005V14.8059C2.66515 14.2645 2.98781 13.7805 3.48781 13.5739C3.98915 13.3672 4.55848 13.4805 4.94115 13.8632L6.83181 15.7539L8.95848 13.6272ZM20.5105 13.5739C20.0105 13.3659 19.4398 13.4805 19.0571 13.8632L17.1665 15.7539L15.0398 13.6272C14.6491 13.2365 14.0158 13.2365 13.6251 13.6272C13.2345 14.0179 13.2345 14.6512 13.6251 15.0419L15.7518 17.1685L13.8611 19.0592C13.4785 19.4419 13.3651 20.0125 13.5718 20.5125C13.7785 21.0125 14.2625 21.3352 14.8038 21.3352H19.9985C20.7331 21.3352 21.3318 20.7365 21.3318 20.0019V14.8072C21.3318 14.2659 21.0091 13.7819 20.5091 13.5752L20.5105 13.5739ZM10.1385 4.94321L8.24781 6.83387L10.3731 8.96054C10.7638 9.35121 10.7638 9.98454 10.3731 10.3752C10.1785 10.5712 9.92248 10.6685 9.66648 10.6685C9.41048 10.6685 9.15448 10.5699 8.95981 10.3752L6.83315 8.24854L4.94248 10.1392C4.68648 10.3939 4.34781 10.5299 4.00115 10.5299C3.82915 10.5299 3.65581 10.4965 3.48915 10.4272C2.98915 10.2205 2.66648 9.73654 2.66648 9.19521V4.00054C2.66648 3.26587 3.26515 2.66721 3.99981 2.66721H9.19581C9.73714 2.66721 10.2211 2.98987 10.4278 3.48987C10.6345 3.98987 10.5211 4.56054 10.1385 4.94321Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const GearIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21.253 9.92118L19.837 9.70384C19.6717 9.13851 19.4477 8.59585 19.1637 8.07985L20.0117 6.92385C20.5024 6.25585 20.433 5.34385 19.8464 4.75985L19.2384 4.15186C18.6544 3.56652 17.7437 3.49719 17.073 3.98652L15.917 4.83585C15.401 4.55186 14.8584 4.32786 14.2944 4.16252L14.0757 2.74519C13.9491 1.92653 13.2571 1.33186 12.4291 1.33186H11.5691C10.7411 1.33186 10.0477 1.92653 9.9224 2.74653L9.70506 4.16252C9.13973 4.32786 8.59707 4.55186 8.08107 4.83585L6.92507 3.98786C6.25574 3.49852 5.34507 3.56786 4.76108 4.15452L4.15308 4.76252C3.56774 5.34785 3.49841 6.25852 3.98774 6.92785L4.83708 8.08385C4.55441 8.59985 4.32908 9.14251 4.16374 9.70651L2.74641 9.92517C1.92775 10.0518 1.33308 10.7438 1.33308 11.5718V12.4318C1.33308 13.2598 1.92775 13.9532 2.74775 14.0785L4.16374 14.2958C4.32908 14.8612 4.55308 15.4038 4.83708 15.9198L3.98908 17.0758C3.49975 17.7438 3.56908 18.6545 4.15574 19.2398L4.76374 19.8478C5.34907 20.4345 6.26107 20.5038 6.92907 20.0132L8.08507 19.1638C8.60107 19.4465 9.14373 19.6718 9.70773 19.8372L9.9264 21.2545C10.0531 22.0731 10.7451 22.6678 11.5731 22.6678H12.4331C13.2611 22.6678 13.9544 22.0731 14.0797 21.2531L14.2971 19.8372C14.8624 19.6718 15.405 19.4478 15.921 19.1638L17.077 20.0118C17.745 20.5025 18.6557 20.4318 19.241 19.8465L19.849 19.2385C20.4344 18.6532 20.5037 17.7425 20.0144 17.0732L19.165 15.9172C19.449 15.4012 19.673 14.8585 19.8384 14.2945L21.2557 14.0758C22.0744 13.9492 22.669 13.2572 22.669 12.4292V11.5692C22.669 10.7412 22.0744 10.0478 21.2557 9.92251L21.253 9.92118ZM11.9997 14.9998C10.3424 14.9998 8.99973 13.6572 8.99973 11.9998C8.99973 10.3425 10.3424 8.99984 11.9997 8.99984C13.6571 8.99984 14.9997 10.3425 14.9997 11.9998C14.9997 13.6572 13.6571 14.9998 11.9997 14.9998Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const GettingStartedIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M3.99968 21.3332C3.99968 21.8851 4.44768 22.3331 4.99968 22.3331C5.55168 22.3331 5.99968 21.8851 5.99968 21.3332V13.6092C7.16809 12.8868 8.25303 12.5953 9.22234 12.7452C10.097 12.8799 10.697 13.3359 11.3917 13.8639L11.3922 13.8642C12.1894 14.4708 13.0933 15.1586 14.4743 15.3692C14.7423 15.4105 15.013 15.4305 15.2877 15.4305C16.6597 15.4305 18.097 14.9132 19.5716 13.8892C19.8396 13.7025 19.9996 13.3959 19.9996 13.0679V4.31988C19.9996 3.94788 19.793 3.60521 19.4636 3.43321C19.1343 3.26121 18.737 3.28654 18.429 3.49854C17.0956 4.42521 15.8583 4.81054 14.7783 4.64387C13.901 4.50921 13.2997 4.05188 12.6037 3.52254L12.6012 3.52066C11.8045 2.91446 10.9036 2.229 9.52767 2.01855C8.395 1.84368 7.2127 2.05732 5.99853 2.61827C5.97333 2.08866 5.5355 1.66653 4.99968 1.66653C4.44768 1.66653 3.99968 2.11453 3.99968 2.66653V21.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const GridIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M4.99962 2.66653H8.33295C9.62161 2.66653 10.6663 3.7112 10.6663 4.99986V8.33319C10.6663 9.62185 9.62161 10.6665 8.33295 10.6665H4.99962C3.71096 10.6665 2.66629 9.62185 2.66629 8.33319V4.99986C2.66629 3.7112 3.71096 2.66653 4.99962 2.66653ZM15.6663 2.66654H18.9996C20.2882 2.66654 21.3329 3.7112 21.3329 4.99987V8.33319C21.3329 9.62185 20.2882 10.6665 18.9996 10.6665H15.6663C14.3776 10.6665 13.3329 9.62185 13.3329 8.33319V4.99987C13.3329 3.7112 14.3776 2.66654 15.6663 2.66654ZM8.33295 13.3332H4.99963C3.71096 13.3332 2.6663 14.3778 2.6663 15.6665V18.9998C2.6663 20.2885 3.71096 21.3332 4.99963 21.3332H8.33295C9.62161 21.3332 10.6663 20.2885 10.6663 18.9998V15.6665C10.6663 14.3778 9.62161 13.3332 8.33295 13.3332ZM15.6663 13.3332H18.9996C20.2882 13.3332 21.3329 14.3778 21.3329 15.6665V18.9998C21.3329 20.2885 20.2882 21.3332 18.9996 21.3332H15.6663C14.3776 21.3332 13.3329 20.2885 13.3329 18.9998V15.6665C13.3329 14.3778 14.3776 13.3332 15.6663 13.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const GripDotsVerticalIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M14.9995 6.66653C15.92 6.66653 16.6662 5.92034 16.6662 4.99987C16.6662 4.0794 15.92 3.33321 14.9995 3.33321C14.0791 3.33321 13.3329 4.0794 13.3329 4.99987C13.3329 5.92034 14.0791 6.66653 14.9995 6.66653ZM10.6662 4.99987C10.6662 5.92034 9.92002 6.66653 8.99955 6.66653C8.07908 6.66653 7.33289 5.92034 7.33289 4.99987C7.33289 4.0794 8.07908 3.33321 8.99955 3.33321C9.92002 3.33321 10.6662 4.0794 10.6662 4.99987ZM10.6662 11.9999C10.6662 12.9203 9.92002 13.6665 8.99955 13.6665C8.07908 13.6665 7.33289 12.9203 7.33289 11.9999C7.33289 11.0794 8.07908 10.3332 8.99955 10.3332C9.92002 10.3332 10.6662 11.0794 10.6662 11.9999ZM8.99955 20.6665C9.92002 20.6665 10.6662 19.9203 10.6662 18.9998C10.6662 18.0794 9.92002 17.3332 8.99955 17.3332C8.07908 17.3332 7.33289 18.0794 7.33289 18.9998C7.33289 19.9203 8.07908 20.6665 8.99955 20.6665ZM16.6662 11.9999C16.6662 12.9203 15.92 13.6665 14.9995 13.6665C14.0791 13.6665 13.3329 12.9203 13.3329 11.9999C13.3329 11.0794 14.0791 10.3332 14.9995 10.3332C15.92 10.3332 16.6662 11.0794 16.6662 11.9999ZM16.6662 18.9998C16.6662 19.9203 15.92 20.6665 14.9995 20.6665C14.0791 20.6665 13.3329 19.9203 13.3329 18.9998C13.3329 18.0794 14.0791 17.3332 14.9995 17.3332C15.92 17.3332 16.6662 18.0794 16.6662 18.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const HeaderIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.9999 21.3333H4.99992C2.97725 21.3333 1.33325 19.688 1.33325 17.6667V7.19467H3.33325V17.6667C3.33325 18.5853 4.08125 19.3333 4.99992 19.3333H18.9999C19.9186 19.3333 20.6666 18.5853 20.6666 17.6667V7.19467H22.6666V17.6667C22.6666 19.688 21.0226 21.3333 18.9999 21.3333Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M18.9999 2.66667H4.99992C2.97487 2.66667 1.33325 4.30829 1.33325 6.33334V7.00001C1.33325 9.02505 2.97487 10.6667 4.99992 10.6667H18.9999C21.025 10.6667 22.6666 9.02505 22.6666 7.00001V6.33334C22.6666 4.30829 21.025 2.66667 18.9999 2.66667Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const HelpCenterIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M13.3981 8.25319C13.4149 8.25934 13.4317 8.26502 13.4485 8.27024C14.5007 8.6801 15.3296 9.51393 15.7359 10.5674C15.74 10.5796 15.7443 10.5918 15.7488 10.6038C15.9155 11.0478 15.9995 11.5172 15.9995 11.9998C15.9995 12.4798 15.9155 12.9505 15.7475 13.3985C15.7401 13.4182 15.7334 13.438 15.7274 13.4578C15.3186 14.4976 14.4967 15.3185 13.4582 15.7261C13.438 15.7323 13.418 15.7391 13.3981 15.7465C12.5061 16.0812 11.5008 16.0812 10.6008 15.7465C10.5812 15.7392 10.5615 15.7325 10.5417 15.7265C9.49942 15.3181 8.67709 14.4933 8.26912 13.4514C8.26336 13.4328 8.25704 13.4142 8.25016 13.3958C8.08349 12.9518 7.99949 12.4825 7.99949 11.9998C7.99949 11.5198 8.08349 11.0492 8.25149 10.6012C8.25666 10.5874 8.26149 10.5735 8.26601 10.5596C8.67352 9.50835 9.50251 8.67871 10.5512 8.26998C10.5678 8.26482 10.5844 8.25922 10.6008 8.25319C11.4928 7.91852 12.4981 7.91852 13.3981 8.25319ZM6.8063 8.99414C7.33146 8.08655 8.08522 7.33243 8.99251 6.80684L8.05069 4.28298C6.42881 5.11236 5.11047 6.43064 4.28113 8.05183L6.8063 8.99414ZM2.37995 7.38837C3.43026 5.19658 5.19608 3.42984 7.38681 2.38011C7.37661 2.21714 7.40617 2.05237 7.47549 1.90121C7.58616 1.65987 7.78749 1.47187 8.03549 1.37987C10.5715 0.43321 13.4288 0.43321 15.9648 1.37987C16.3875 1.53783 16.6402 1.95124 16.613 2.37939C18.8044 3.42993 20.5708 5.1965 21.6205 7.38795C22.0518 7.35963 22.4624 7.61321 22.6208 8.03586C23.0941 9.30119 23.3341 10.6358 23.3341 11.9998C23.3341 13.3638 23.0941 14.6985 22.6208 15.9638C22.4714 16.3652 22.0888 16.6132 21.6835 16.6132C21.6623 16.6132 21.641 16.6125 21.6197 16.6112C20.5695 18.8036 18.8034 20.5709 16.6122 21.6209C16.6222 21.7834 16.5926 21.9477 16.5235 22.0985C16.4128 22.3398 16.2115 22.5278 15.9635 22.6198C14.6957 23.0931 13.3626 23.3331 11.9988 23.3331C10.6364 23.3331 9.30328 23.0931 8.03416 22.6198C7.61144 22.4618 7.35876 22.0484 7.38595 21.6202C5.19491 20.5695 3.42832 18.8031 2.37888 16.6111C2.35747 16.6125 2.33611 16.6131 2.31484 16.6132C1.90976 16.6129 1.52876 16.3649 1.37951 15.9638C0.906175 14.6985 0.666176 13.3638 0.666176 11.9998C0.666176 10.6358 0.906175 9.30118 1.37951 8.03585C1.53776 7.61348 1.94973 7.36084 2.37995 7.38837ZM2.31484 16.6132C2.31462 16.6132 2.31439 16.6132 2.31417 16.6132H2.31551C2.31528 16.6132 2.31506 16.6132 2.31484 16.6132ZM4.28037 15.9476C5.10969 17.5694 6.42863 18.8887 8.05008 19.7179L8.99194 17.1933C8.0843 16.6677 7.33028 15.9134 6.80497 15.0055L4.28037 15.9476ZM15.9487 19.7178L15.0067 17.1935C15.9143 16.6679 16.6684 15.9137 17.1938 15.006L19.7184 15.9481C18.8892 17.5696 17.5708 18.8882 15.9487 19.7178ZM19.7177 8.05239C18.8897 6.43086 17.5709 5.1117 15.9488 4.28198L15.0068 6.80704C15.9141 7.3327 16.6678 8.08689 17.1929 8.99455L19.7177 8.05239Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const HideIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M1.95999 22.0398C2.15466 22.2358 2.41066 22.3332 2.66666 22.3332C2.92265 22.3332 3.17865 22.2345 3.37332 22.0398L7.2781 18.1356C7.30273 18.1133 7.3264 18.0897 7.34901 18.0647L9.72523 15.6888C10.3864 16.0974 11.1657 16.3332 12 16.3332C14.3932 16.3332 16.3333 14.3931 16.3333 11.9999C16.3333 11.1658 16.0976 10.3867 15.6893 9.72564L18.0819 7.33337C18.0939 7.32191 18.1057 7.31011 18.1173 7.29798L22.0413 3.37453C22.4319 2.98387 22.4319 2.35054 22.0413 1.95987C21.6506 1.5692 21.0173 1.5692 20.6266 1.95987L17.2367 5.34956C15.6115 4.45332 13.8535 3.99987 12 3.99987C6.66267 3.99987 3.41201 7.7212 1.94934 9.93986C1.12268 11.1919 1.12268 12.8092 1.94934 14.0598C2.59984 15.0476 3.63261 16.3709 5.06982 17.5156L1.95999 20.6252C1.56932 21.0158 1.56932 21.6492 1.95999 22.0398ZM6.49439 16.0911L8.31101 14.2746C7.90244 13.6134 7.66665 12.8342 7.66665 11.9999C7.66665 9.60662 9.60674 7.66653 12 7.66653C12.8344 7.66653 13.6137 7.90238 14.275 8.31105L15.7502 6.83593C14.5713 6.28139 13.3155 6.0012 12.0013 6.0012C7.6 6.0012 4.86134 9.15986 3.62001 11.0412C3.24134 11.6159 3.24134 12.3865 3.62001 12.9599C4.21416 13.8603 5.16828 15.0789 6.49439 16.0911ZM9.72 19.7612C10.4573 19.9185 11.2253 19.9998 12 19.9998C17.3373 19.9998 20.588 16.2785 22.0506 14.0598C22.876 12.8079 22.876 11.1905 22.0506 9.93986C21.6306 9.30253 21.164 8.69453 20.664 8.13186C20.2973 7.71986 19.6653 7.68253 19.252 8.0492C18.8386 8.41586 18.8026 9.04786 19.1693 9.46119C19.6066 9.95186 20.0146 10.4839 20.3813 11.0412C20.76 11.6145 20.76 12.3852 20.3813 12.9599C19.14 14.8412 16.4013 17.9998 12 17.9998C11.3653 17.9998 10.74 17.9345 10.14 17.8052C9.60134 17.6905 9.068 18.0332 8.952 18.5732C8.83601 19.1132 9.18 19.6452 9.72 19.7612Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const HomeIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.4119 7.47053L13.4119 2.15054C12.5799 1.51721 11.4186 1.51854 10.5879 2.15054L3.58793 7.47053C3.01059 7.90919 2.6666 8.60386 2.6666 9.32786V18.9998C2.6666 21.0225 4.31059 22.6665 6.33325 22.6665H17.6666C19.6892 22.6665 21.3332 21.0225 21.3332 18.9998V9.32786C21.3332 8.60386 20.9892 7.91053 20.4119 7.47053Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const HourglassIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M18.6518 19.9998H18.9998C19.5518 19.9998 19.9998 20.4478 19.9998 20.9998C19.9998 21.5518 19.5518 21.9998 18.9998 21.9998H4.99986C4.44786 21.9998 3.99986 21.5518 3.99986 20.9998C3.99986 20.4478 4.44786 19.9998 4.99986 19.9998H5.34786C5.42386 16.3318 5.95719 13.8758 7.99985 11.9999C5.95719 10.1239 5.42253 7.66786 5.34786 3.99987H4.99986C4.44786 3.99987 3.99986 3.55187 3.99986 2.99988C3.99986 2.44788 4.44786 1.99988 4.99986 1.99988H18.9998C19.5518 1.99988 19.9998 2.44788 19.9998 2.99988C19.9998 3.55187 19.5518 3.99987 18.9998 3.99987H18.6518C18.5758 7.66786 18.0425 10.1239 15.9998 11.9999C18.0425 13.8758 18.5772 16.3318 18.6518 19.9998ZM10.6118 11.9999C10.6118 12.3305 10.4478 12.6399 10.1745 12.8265C8.13452 14.2145 7.44385 15.9198 7.35185 19.9998H16.6478C16.5558 15.9198 15.8652 14.2145 13.8252 12.8265C13.5518 12.6399 13.3878 12.3305 13.3878 11.9999C13.3878 11.6692 13.5518 11.3599 13.8252 11.1732C15.8652 9.78519 16.5558 8.07986 16.6478 3.99987H7.35185C7.44385 8.07986 8.13452 9.78519 10.1745 11.1732C10.4478 11.3599 10.6118 11.6692 10.6118 11.9999ZM14.6559 5.56386C14.7825 5.7092 14.8439 5.87186 14.8119 6.09453H14.8105C14.3852 9.28652 12.9865 9.99185 11.9985 9.99185C11.0105 9.99185 9.61187 9.28652 9.18653 6.09453C9.15453 5.87186 9.21587 5.7092 9.34253 5.56386C9.4692 5.41586 9.6532 5.3332 9.84653 5.3332H14.1519C14.3452 5.3332 14.5292 5.4172 14.6559 5.56386Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ImportIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M3.81096 10.4875C4.32408 6.86526 7.60391 3.99994 11.5417 3.99994C15.4337 3.99994 18.5871 6.71644 19.2331 10.2468C21.3693 10.6197 23 12.4277 23 14.5882C23 17.0167 20.9396 18.9999 18.4167 18.9999H5.58333C3.06041 18.9999 1 17.0167 1 14.5882C1 12.7444 2.16281 11.1385 3.81096 10.4875ZM12.9168 12.3823V8.4117H11.0834V12.3823H7.41667L12 17.6764L16.5833 12.3823H12.9168Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const InfoIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.9998 1.33321C6.11847 1.33321 1.33315 6.11853 1.33315 11.9998C1.33315 17.8812 6.11847 22.6665 11.9998 22.6665C17.8811 22.6665 22.6664 17.8812 22.6664 11.9998C22.6664 6.11853 17.8811 1.33321 11.9998 1.33321ZM12.9998 17.0918C12.9998 17.6438 12.5518 18.0918 11.9998 18.0918C11.4478 18.0918 10.9998 17.6438 10.9998 17.0918V10.9998C10.9998 10.4479 11.4478 9.99985 11.9998 9.99985C12.5518 9.99985 12.9998 10.4479 12.9998 10.9998V17.0918ZM11.9998 8.99985C11.2638 8.99985 10.6665 8.40119 10.6665 7.66652C10.6665 6.93186 11.2638 6.33319 11.9998 6.33319C12.7358 6.33319 13.3331 6.93186 13.3331 7.66652C13.3331 8.40119 12.7358 8.99985 11.9998 8.99985Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const IntegrationsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M10.9997 6.66653C10.9997 9.05976 9.05963 10.9999 6.66641 10.9999C4.27318 10.9999 2.33308 9.05976 2.33308 6.66653C2.33308 4.2733 4.27318 2.33321 6.66641 2.33321C9.05963 2.33321 10.9997 4.2733 10.9997 6.66653ZM18.333 15.9998H20.6664C21.2184 15.9998 21.6664 16.4478 21.6664 16.9998C21.6664 17.5518 21.2184 17.9998 20.6664 17.9998H18.333V20.3332C18.333 20.8852 17.885 21.3332 17.333 21.3332C16.781 21.3332 16.333 20.8852 16.333 20.3332V17.9998H13.9997C13.4477 17.9998 12.9997 17.5518 12.9997 16.9998C12.9997 16.4478 13.4477 15.9998 13.9997 15.9998H16.333V13.6665C16.333 13.1145 16.781 12.6665 17.333 12.6665C17.885 12.6665 18.333 13.1145 18.333 13.6665V15.9998ZM17.333 10.9999C19.7263 10.9999 21.6664 9.05976 21.6664 6.66653C21.6664 4.2733 19.7263 2.33321 17.333 2.33321C14.9398 2.33321 12.9997 4.2733 12.9997 6.66653C12.9997 9.05976 14.9398 10.9999 17.333 10.9999ZM10.9997 17.3332C10.9997 19.7264 9.05963 21.6665 6.66641 21.6665C4.27318 21.6665 2.33308 19.7264 2.33308 17.3332C2.33308 14.9399 4.27318 12.9998 6.66641 12.9998C9.05963 12.9998 10.9997 14.9399 10.9997 17.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const KeyboardIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M18.9999 4H4.99992C2.97725 4 1.33325 5.644 1.33325 7.66667V16.3333C1.33325 18.356 2.97725 20 4.99992 20H18.9999C21.0226 20 22.6666 18.356 22.6666 16.3333V7.66667C22.6666 5.644 21.0226 4 18.9999 4ZM13.4999 10.6667H14.1666C14.5346 10.6667 14.8333 10.9653 14.8333 11.3333V12C14.8333 12.368 14.5346 12.6667 14.1666 12.6667H13.4999C13.1319 12.6667 12.8333 12.368 12.8333 12V11.3333C12.8333 10.9653 13.1319 10.6667 13.4999 10.6667ZM10.9999 8.66667C10.9999 8.29867 11.2986 8 11.6666 8H12.3333C12.7013 8 12.9999 8.29867 12.9999 8.66667V9.33333C12.9999 9.70133 12.7013 10 12.3333 10H11.6666C11.2986 10 10.9999 9.70133 10.9999 9.33333V8.66667ZM9.83325 10.6667H10.4999C10.8679 10.6667 11.1666 10.9653 11.1666 11.3333V12C11.1666 12.368 10.8679 12.6667 10.4999 12.6667H9.83325C9.46525 12.6667 9.16659 12.368 9.16659 12V11.3333C9.16659 10.9653 9.46525 10.6667 9.83325 10.6667ZM7.49992 12C7.49992 12.368 7.20125 12.6667 6.83325 12.6667H6.16659C5.79859 12.6667 5.49992 12.368 5.49992 12V11.3333C5.49992 10.9653 5.79859 10.6667 6.16659 10.6667H6.83325C7.20125 10.6667 7.49992 10.9653 7.49992 11.3333V12ZM7.33325 9.33333V8.66667C7.33325 8.29867 7.63192 8 7.99992 8H8.66659C9.03459 8 9.33325 8.29867 9.33325 8.66667V9.33333C9.33325 9.70133 9.03459 10 8.66659 10H7.99992C7.63192 10 7.33325 9.70133 7.33325 9.33333ZM14.9999 16H8.99992C8.44792 16 7.99992 15.552 7.99992 15C7.99992 14.448 8.44792 14 8.99992 14H14.9999C15.5519 14 15.9999 14.448 15.9999 15C15.9999 15.552 15.5519 16 14.9999 16ZM15.9999 10H15.3333C14.9653 10 14.6666 9.70133 14.6666 9.33333V8.66667C14.6666 8.29867 14.9653 8 15.3333 8H15.9999C16.3679 8 16.6666 8.29867 16.6666 8.66667V9.33333C16.6666 9.70133 16.3679 10 15.9999 10ZM18.4999 12C18.4999 12.368 18.2013 12.6667 17.8333 12.6667H17.1666C16.7986 12.6667 16.4999 12.368 16.4999 12V11.3333C16.4999 10.9653 16.7986 10.6667 17.1666 10.6667H17.8333C18.2013 10.6667 18.4999 10.9653 18.4999 11.3333V12Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const LayoutIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.0002 2.66699H5.00016C2.9775 2.66699 1.3335 4.31099 1.3335 6.33366V17.667C1.3335 19.6897 2.9775 21.3337 5.00016 21.3337H19.0002C21.0228 21.3337 22.6668 19.6897 22.6668 17.667V6.33366C22.6668 4.31099 21.0228 2.66699 19.0002 2.66699ZM20.6668 17.667C20.6668 18.5857 19.9188 19.3337 19.0002 19.3337H9.3335V4.66699H19.0002C19.9188 4.66699 20.6668 5.41499 20.6668 6.33366V17.667Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const LeaveIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M9.66636 1.99988H18.333C19.6197 1.99988 20.6664 3.04654 20.6664 4.33321V19.6652C20.6664 20.9519 19.6197 21.9985 18.333 21.9985H9.66636C8.37969 21.9985 7.33303 20.9519 7.33303 19.6652V16.3319C7.33303 15.7799 7.78103 15.3319 8.33303 15.3319C8.88503 15.3319 9.33303 15.7799 9.33303 16.3319V19.6652C9.33303 19.8492 9.48236 19.9985 9.66636 19.9985H16.7357L14.437 18.5732C13.7464 18.1452 13.333 17.4039 13.333 16.5905V7.40788C13.333 6.59454 13.7464 5.85321 14.437 5.42521L16.7357 3.99988H9.66636C9.48236 3.99988 9.33303 4.14921 9.33303 4.33321V7.66654C9.33303 8.21854 8.88503 8.66654 8.33303 8.66654C7.78103 8.66654 7.33303 8.21854 7.33303 7.66654V4.33321C7.33303 3.04654 8.37969 1.99988 9.66636 1.99988ZM8.99969 12.9999H3.41435H3.41302L5.37302 14.9599C5.76369 15.3505 5.76369 15.9839 5.37302 16.3745C5.17835 16.5705 4.92235 16.6679 4.66635 16.6679C4.41035 16.6679 4.15435 16.5692 3.95969 16.3745L0.293019 12.7079C-0.0976476 12.3172 -0.0976476 11.6839 0.293019 11.2932L3.95969 7.62521C4.35035 7.23455 4.98369 7.23455 5.37435 7.62521C5.76502 8.01588 5.76502 8.64921 5.37435 9.03988L3.41435 10.9999H8.99969C9.55169 10.9999 9.99969 11.4479 9.99969 11.9999C9.99969 12.5519 9.55169 12.9999 8.99969 12.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const LightBulbIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11 2.33333C11 2.88533 11.448 3.33333 12 3.33333C12.552 3.33333 13 2.88533 13 2.33333V1C13 0.448 12.552 0 12 0C11.448 0 11 0.448 11 1V2.33333ZM18.128 5.87201C18.3227 6.06801 18.5787 6.16535 18.8347 6.16535C19.0907 6.16535 19.348 6.06668 19.5427 5.87201L20.4853 4.92935C20.876 4.53868 20.876 3.90535 20.4853 3.51468C20.0947 3.12401 19.4613 3.12401 19.0707 3.51468L18.128 4.45735C17.7373 4.84801 17.7373 5.48135 18.128 5.87201ZM23 13H21.6667C21.1147 13 20.6667 12.552 20.6667 12C20.6667 11.448 21.1147 11 21.6667 11H23C23.552 11 24 11.448 24 12C24 12.552 23.552 13 23 13ZM4.45867 5.87201C4.65334 6.06801 4.90934 6.16535 5.16534 6.16535C5.42134 6.16535 5.67867 6.06668 5.87334 5.87201C6.264 5.48135 6.264 4.84801 5.87334 4.45735L4.93067 3.51468C4.54 3.12401 3.90667 3.12401 3.516 3.51468C3.12534 3.90535 3.12534 4.53868 3.516 4.92935L4.45867 5.87201ZM2.33333 13H1C0.448 13 0 12.552 0 12C0 11.448 0.448 11 1 11H2.33333C2.88533 11 3.33333 11.448 3.33333 12C3.33333 12.552 2.88533 13 2.33333 13ZM10.4253 4.83203C12.6387 4.3667 14.8973 4.90537 16.6213 6.30537C18.344 7.70537 19.3333 9.78137 19.3333 12C19.3333 14.7854 17.784 17.276 15.3333 18.5214V21C15.3333 22.2867 14.2867 23.3334 13 23.3334H11C9.71334 23.3334 8.66668 22.2867 8.66668 21V18.5214C5.82934 17.08 4.24268 13.9907 4.76668 10.776C5.24668 7.82803 7.52134 5.44003 10.4253 4.83203ZM11 21.3334H13C13.184 21.3334 13.3333 21.184 13.3333 21V18.6667H10.6667V21C10.6667 21.184 10.816 21.3334 11 21.3334Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const LinkIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.765 15.3278C11.937 15.6878 12.2943 15.8972 12.6677 15.8972C12.813 15.8972 12.9597 15.8665 13.0983 15.7998C13.681 15.5212 14.2103 15.1465 14.685 14.6718C16.913 12.4439 16.913 8.81853 14.685 6.59053L11.785 3.69054C9.55833 1.46121 5.93434 1.46255 3.69168 3.70387C1.46369 5.93187 1.46369 9.55586 3.69168 11.7839L4.93301 13.0252C5.32368 13.4158 5.95701 13.4158 6.34768 13.0252C6.73834 12.6345 6.73834 12.0012 6.34768 11.6105L5.10635 10.3692C3.65835 8.92119 3.65835 6.5652 5.11968 5.10387C6.56767 3.65587 8.925 3.65721 10.3717 5.10387L13.2717 8.00386C14.7197 9.45319 14.7197 11.8092 13.2583 13.2705C12.9583 13.5705 12.6143 13.8145 12.237 13.9945C11.737 14.2332 11.5263 14.8292 11.765 15.3278ZM12.2157 20.3092C13.3277 21.4225 14.7877 21.9785 16.2503 21.9785C17.717 21.9785 19.1863 21.4185 20.309 20.2958C22.537 18.0678 22.537 14.4438 20.309 12.2159L19.0676 10.9745C18.677 10.5839 18.0437 10.5839 17.653 10.9745C17.2623 11.3652 17.2623 11.9985 17.653 12.3892L18.8943 13.6305C20.3423 15.0785 20.3423 17.4345 18.881 18.8958C17.433 20.3438 15.077 20.3425 13.629 18.8958L10.729 15.9958C9.28101 14.5465 9.28101 12.1905 10.7423 10.7292C11.0423 10.4292 11.3863 10.1852 11.7637 10.0052C12.2637 9.76653 12.4743 9.17053 12.2357 8.67186C11.9957 8.17186 11.397 7.95986 10.9023 8.19986C10.3197 8.47853 9.79034 8.85319 9.31567 9.32786C7.08768 11.5559 7.08768 15.1812 9.31567 17.4092L12.2157 20.3092Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ListIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M8.33295 2.66653H4.99962C3.71096 2.66653 2.66629 3.7112 2.66629 4.99986V8.33319C2.66629 9.62185 3.71096 10.6665 4.99962 10.6665H8.33295C9.62161 10.6665 10.6663 9.62185 10.6663 8.33319V4.99986C10.6663 3.7112 9.62161 2.66653 8.33295 2.66653ZM13.6663 3.99987H20.3329C20.8849 3.99987 21.3329 4.44787 21.3329 4.99987C21.3329 5.55186 20.8849 5.99986 20.3329 5.99986H13.6663C13.1143 5.99986 12.6663 5.55186 12.6663 4.99987C12.6663 4.44787 13.1143 3.99987 13.6663 3.99987ZM13.6663 7.99986H20.3329C20.8849 7.99986 21.3329 8.44786 21.3329 8.99986C21.3329 9.55185 20.8849 9.99985 20.3329 9.99985H13.6663C13.1143 9.99985 12.6663 9.55185 12.6663 8.99986C12.6663 8.44786 13.1143 7.99986 13.6663 7.99986ZM20.3329 13.9998H13.6663C13.1143 13.9998 12.6663 14.4478 12.6663 14.9998C12.6663 15.5518 13.1143 15.9998 13.6663 15.9998H20.3329C20.8849 15.9998 21.3329 15.5518 21.3329 14.9998C21.3329 14.4478 20.8849 13.9998 20.3329 13.9998ZM13.6663 17.9998H20.3329C20.8849 17.9998 21.3329 18.4478 21.3329 18.9998C21.3329 19.5518 20.8849 19.9998 20.3329 19.9998H13.6663C13.1143 19.9998 12.6663 19.5518 12.6663 18.9998C12.6663 18.4478 13.1143 17.9998 13.6663 17.9998ZM4.99962 13.3332H8.33295C9.62161 13.3332 10.6663 14.3778 10.6663 15.6665V18.9998C10.6663 20.2885 9.62161 21.3332 8.33295 21.3332H4.99962C3.71096 21.3332 2.66629 20.2885 2.66629 18.9998V15.6665C2.66629 14.3778 3.71096 13.3332 4.99962 13.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const LiveIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.39956 3.98521C5.79022 4.37588 5.79022 5.00921 5.39956 5.39988H5.39822C1.75957 9.03854 1.75957 14.9599 5.39822 18.5985C5.78889 18.9892 5.78889 19.6225 5.39822 20.0132C5.20356 20.2092 4.94756 20.3065 4.69156 20.3065C4.43556 20.3065 4.17956 20.2078 3.9849 20.0132C1.8449 17.8732 0.666237 15.0279 0.666237 11.9999C0.666237 8.97187 1.8449 6.12654 3.9849 3.98521C4.37556 3.59455 5.00889 3.59455 5.39956 3.98521ZM8.22888 6.81453C7.83955 6.4252 7.20622 6.42253 6.81422 6.81453C5.42889 8.19986 4.66623 10.0412 4.66623 11.9998C4.66623 13.9585 5.42889 15.8012 6.81422 17.1852C7.00889 17.3798 7.26489 17.4785 7.52089 17.4785C7.77689 17.4785 8.03289 17.3812 8.22755 17.1852C8.61822 16.7945 8.61822 16.1612 8.22755 15.7705C7.21955 14.7638 6.66489 13.4238 6.66489 11.9985C6.66489 10.5732 7.21955 9.23452 8.22755 8.22653C8.61822 7.83586 8.61822 7.20253 8.22755 6.81186L8.22888 6.81453ZM11.9995 15.3332C13.8405 15.3332 15.3329 13.8408 15.3329 11.9998C15.3329 10.1589 13.8405 8.66652 11.9995 8.66652C10.1586 8.66652 8.66622 10.1589 8.66622 11.9998C8.66622 13.8408 10.1586 15.3332 11.9995 15.3332ZM17.1849 6.81453C16.7942 6.42386 16.1609 6.42386 15.7702 6.81453C15.3795 7.20519 15.3795 7.83853 15.7702 8.22919C16.7782 9.23586 17.3329 10.5759 17.3329 12.0012C17.3329 13.4265 16.7782 14.7652 15.7702 15.7732C15.3795 16.1638 15.3795 16.7972 15.7702 17.1878C15.9649 17.3825 16.2209 17.4812 16.4769 17.4812C16.7315 17.4812 16.9889 17.3838 17.1835 17.1878C18.5689 15.8025 19.3315 13.9612 19.3315 12.0025C19.3315 10.0439 18.5689 8.20119 17.1835 6.81719L17.1849 6.81453ZM18.5995 3.98655C18.9902 3.59589 19.6235 3.59589 20.0142 3.98655L20.0129 3.98789C22.1529 6.12788 23.3315 8.97454 23.3315 12.0012C23.3315 15.0279 22.1529 17.8745 20.0129 20.0145C19.8182 20.2105 19.5622 20.3078 19.3062 20.3078C19.0502 20.3078 18.7942 20.2092 18.5995 20.0145C18.2089 19.6238 18.2089 18.9905 18.5995 18.5998C22.2382 14.9612 22.2382 9.03987 18.5995 5.40122C18.2089 5.01055 18.2089 4.37722 18.5995 3.98655Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const LocalizationIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.0535 13.1579C11.1195 13.1759 11.1855 13.1839 11.2505 13.1839C11.5805 13.1839 11.8825 12.9649 11.9735 12.6309C12.0825 12.2319 11.8465 11.8189 11.4465 11.7109C10.8675 11.5529 10.3345 11.3049 9.8575 10.9849C10.6085 10.1129 11.1865 8.96988 11.4125 7.49988H12.7505C13.1645 7.49988 13.5005 7.16388 13.5005 6.74988C13.5005 6.33588 13.1645 5.99988 12.7505 5.99988H9.5005V4.74988C9.5005 4.33588 9.1645 3.99988 8.7505 3.99988C8.3365 3.99988 8.0005 4.33588 8.0005 4.74988V5.99988H4.7505C4.3365 5.99988 4.0005 6.33588 4.0005 6.74988C4.0005 7.16388 4.3365 7.49988 4.7505 7.49988H6.0835C6.2665 8.80788 6.8045 9.99988 7.6255 10.9689C6.2645 11.8649 4.8085 11.9939 4.6995 12.0019C4.2865 12.0299 3.9735 12.3869 4.0015 12.8009C4.0285 13.1969 4.3575 13.5009 4.7495 13.5009C4.7665 13.5009 4.7835 13.5009 4.8005 13.4999C5.8605 13.4289 7.4045 13.0079 8.7465 12.0159C9.4255 12.5229 10.1945 12.9249 11.0535 13.1589V13.1579ZM9.8955 7.49988C9.6965 8.55288 9.2715 9.35788 8.7475 9.97688C8.1605 9.27588 7.7555 8.42988 7.5885 7.49988H9.8955Z\"\n fill=\"currentColor\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M7.80049 4.74988C7.80049 4.22542 8.22604 3.79988 8.75049 3.79988C9.27495 3.79988 9.70049 4.22542 9.70049 4.74988V5.79988H12.7505C13.2749 5.79988 13.7005 6.22542 13.7005 6.74988C13.7005 7.27434 13.2749 7.69988 12.7505 7.69988H11.5823C11.3498 9.03093 10.8307 10.0979 10.156 10.9386C10.5662 11.1892 11.0159 11.3861 11.4989 11.5179C12.0057 11.6549 12.3045 12.178 12.1664 12.6836C12.051 13.1068 11.6683 13.3839 11.2505 13.3839C11.1759 13.3839 11.0996 13.3755 11.0226 13.3565C11.0153 13.3554 11.0081 13.3538 11.0009 13.3518C10.1648 13.1241 9.41304 12.7424 8.74582 12.2633C7.39798 13.2189 5.87543 13.6283 4.81386 13.6994L4.81224 13.6995C4.78928 13.7009 4.76722 13.7009 4.75131 13.7009H4.74949C4.25269 13.7009 3.83614 13.3158 3.80196 12.8145L3.80195 12.8144C3.76649 12.2901 4.16278 11.8381 4.68539 11.8024C4.78142 11.7953 6.06773 11.6803 7.32732 10.9204C6.59839 9.99977 6.10876 8.89933 5.91163 7.69988H4.75049C4.22604 7.69988 3.80049 7.27434 3.80049 6.74988C3.80049 6.22542 4.22604 5.79988 4.75049 5.79988H7.80049V4.74988ZM11.0871 12.9607C11.0935 12.9618 11.0998 12.9632 11.1061 12.9649C11.1538 12.9779 11.202 12.9839 11.2505 12.9839C11.4926 12.9839 11.7138 12.8231 11.7805 12.5783L11.7805 12.5782C11.8604 12.2858 11.6873 11.9831 11.3943 11.904L11.3938 11.9038C10.7935 11.74 10.2407 11.4828 9.74607 11.151C9.69855 11.1191 9.66697 11.0684 9.6593 11.0117C9.65163 10.955 9.66861 10.8977 9.70595 10.8544C10.4325 10.0107 10.9945 8.90242 11.2148 7.46949C11.2298 7.37191 11.3137 7.29988 11.4125 7.29988H12.7505C13.054 7.29988 13.3005 7.05342 13.3005 6.74988C13.3005 6.44634 13.054 6.19988 12.7505 6.19988H9.50049C9.39004 6.19988 9.30049 6.11034 9.30049 5.99988V4.74988C9.30049 4.44634 9.05404 4.19988 8.75049 4.19988C8.44695 4.19988 8.20049 4.44634 8.20049 4.74988V5.99988C8.20049 6.11034 8.11095 6.19988 8.00049 6.19988H4.75049C4.44695 6.19988 4.20049 6.44634 4.20049 6.74988C4.20049 7.05342 4.44695 7.29988 4.75049 7.29988H6.08349C6.18324 7.29988 6.26774 7.37338 6.28156 7.47217C6.45937 8.74303 6.98177 9.89972 7.77809 10.8396C7.81509 10.8833 7.8316 10.9407 7.82346 10.9974C7.81531 11.054 7.78328 11.1045 7.73547 11.1359C6.33229 12.0597 4.83586 12.1924 4.71413 12.2013L4.71302 12.2014C4.40995 12.222 4.18057 12.4838 4.20103 12.7873C4.22085 13.078 4.4623 13.3009 4.74949 13.3009M4.78805 13.3003C5.81494 13.2313 7.32059 12.8212 8.62761 11.8551C8.69855 11.8026 8.79547 11.8028 8.86615 11.8556C9.52268 12.3458 10.2629 12.7334 11.0871 12.9607M7.43508 7.37156C7.47308 7.32613 7.52927 7.29988 7.58849 7.29988H9.89549C9.95504 7.29988 10.0115 7.32641 10.0495 7.37226C10.0875 7.41811 10.1031 7.47851 10.092 7.53702C9.88648 8.62461 9.44607 9.4612 8.90014 10.1061C8.86202 10.1511 8.80596 10.177 8.74696 10.1769C8.68796 10.1767 8.63203 10.1505 8.59415 10.1053C7.98524 9.37811 7.56492 8.50018 7.39164 7.53523C7.38117 7.47693 7.39708 7.417 7.43508 7.37156ZM7.83328 7.69988C7.99768 8.42068 8.31241 9.08372 8.74808 9.65704C9.14153 9.14128 9.46459 8.50065 9.64928 7.69988H7.83328Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n <path\n d=\"M19.9525 18.9869L16.9525 10.9869C16.8425 10.6939 16.5625 10.4999 16.2505 10.4999H15.7505C15.4385 10.4999 15.1585 10.6939 15.0485 10.9869L12.0485 18.9869C11.9025 19.3749 12.0995 19.8069 12.4875 19.9519C12.8735 20.0969 13.3075 19.9009 13.4525 19.5129L14.2075 17.4999H17.7935L18.5485 19.5129C18.6615 19.8139 18.9465 19.9999 19.2505 19.9999C19.3375 19.9999 19.4275 19.9849 19.5135 19.9519C19.9015 19.8059 20.0975 19.3739 19.9525 18.9869ZM14.7705 15.9999L16.0005 12.7189L17.2305 15.9999H14.7695H14.7705Z\"\n fill=\"currentColor\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M14.8612 10.9166C15.0004 10.5457 15.3549 10.2999 15.7505 10.2999H16.2505C16.646 10.2999 17.0005 10.5457 17.1397 10.9166L20.1397 18.9167C20.3234 19.4069 20.0752 19.9538 19.5845 20.1388C19.4742 20.1811 19.3599 20.1999 19.2505 20.1999C18.8655 20.1999 18.5043 19.9644 18.3612 19.5832L17.6549 17.6999H14.346L13.6398 19.5829C13.4559 20.0746 12.9064 20.3228 12.4173 20.1392C11.926 19.9555 11.6762 19.4082 11.8613 18.9164L14.8612 10.9166ZM15.2357 11.0572L12.2357 19.0571C12.1288 19.3413 12.2729 19.6582 12.5575 19.7645C12.8402 19.8708 13.1589 19.727 13.2651 19.4429L14.0689 17.2999H17.932L18.7357 19.4426C18.7357 19.4426 18.7357 19.4426 18.7357 19.4426C18.8186 19.6633 19.0274 19.7999 19.2505 19.7999C19.3148 19.7999 19.3803 19.7887 19.4418 19.7652L19.443 19.7647C19.7279 19.6575 19.8714 19.3406 19.7652 19.0571C19.7652 19.0571 19.7652 19.0571 19.7652 19.0571L16.7652 11.0572C16.6844 10.842 16.4789 10.6999 16.2505 10.6999H15.7505C15.522 10.6999 15.3165 10.842 15.2357 11.0572ZM16.0005 12.1491L17.519 16.1999H14.7695V15.9995L14.5832 15.9297L16.0005 12.1491ZM15.059 15.7999H16.9419L16.0005 13.2886L15.059 15.7999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const LockIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.3328 9.99985V6.66653C15.3328 4.8292 13.8368 3.3332 11.9995 3.3332C10.1622 3.3332 8.66616 4.8292 8.66616 6.66653V9.99985H15.3328ZM6.66617 10.0149V6.66653C6.66617 3.7252 9.05816 1.33321 11.9995 1.33321C14.9408 1.33321 17.3328 3.7252 17.3328 6.66653V10.0149C19.1997 10.1837 20.6661 11.7562 20.6661 13.6665V18.9998C20.6661 21.0225 19.0221 22.6665 16.9995 22.6665H6.9995C4.97684 22.6665 3.33284 21.0225 3.33284 18.9998V13.6665C3.33284 11.7562 4.79927 10.1837 6.66617 10.0149ZM11.9995 17.9998C12.5515 17.9998 12.9995 17.5518 12.9995 16.9998V15.6665C12.9995 15.1145 12.5515 14.6665 11.9995 14.6665C11.4475 14.6665 10.9995 15.1145 10.9995 15.6665V16.9998C10.9995 17.5518 11.4475 17.9998 11.9995 17.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const LogoutIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M18.1506 2.0452C18.8666 1.78386 19.6653 1.89053 20.288 2.32653C20.9106 2.76253 21.2813 3.47719 21.2813 4.23719V19.7638C21.2813 20.5238 20.9093 21.2385 20.2866 21.6745C19.8893 21.9531 19.42 22.0971 18.9466 22.0971C18.6786 22.0971 18.4093 22.0505 18.1506 21.9571L13.484 20.2598C12.5653 19.9265 11.948 19.0452 11.948 18.0678V15.0012H13.6146C15.2693 15.0012 16.6146 13.6558 16.6146 12.0012C16.6146 10.3465 15.2693 9.00118 13.6146 9.00118H11.948V5.93452C11.948 4.95719 12.5653 4.07586 13.484 3.74253L18.1506 2.0452ZM6.02931 10.9999H13.616L13.6133 10.9985C14.1653 10.9985 14.6133 11.4465 14.6133 11.9985C14.6133 12.5505 14.1653 12.9985 13.6133 12.9985H6.02798L8.98798 15.9585C9.37864 16.3492 9.37864 16.9825 8.98798 17.3732C8.79331 17.5692 8.53731 17.6665 8.28131 17.6665C8.02531 17.6665 7.76931 17.5678 7.57465 17.3732L2.90799 12.7065C2.51732 12.3158 2.51732 11.6825 2.90799 11.2919L7.57465 6.6252C7.96531 6.23453 8.59864 6.23453 8.98931 6.6252C9.37997 7.01586 9.37997 7.64919 8.98931 8.03986L6.02931 10.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MaximizeIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M2.33327 9.99988C2.88527 9.99988 3.33327 9.55188 3.33327 8.99988V6.33322C3.33327 5.41455 4.08127 4.66655 4.99993 4.66655H7.6666C8.2186 4.66655 8.6666 4.21855 8.6666 3.66655C8.6666 3.11455 8.2186 2.66655 7.6666 2.66655H4.99993C2.97727 2.66655 1.33327 4.31055 1.33327 6.33322V8.99988C1.33327 9.55188 1.78127 9.99988 2.33327 9.99988ZM18.9999 2.66655H16.3333C15.7813 2.66655 15.3333 3.11455 15.3333 3.66655C15.3333 4.21855 15.7813 4.66655 16.3333 4.66655H18.9999C19.9186 4.66655 20.6666 5.41455 20.6666 6.33322V8.99988C20.6666 9.55188 21.1146 9.99988 21.6666 9.99988C22.2186 9.99988 22.6666 9.55188 22.6666 8.99988V6.33322C22.6666 4.31055 21.0226 2.66655 18.9999 2.66655ZM20.6666 14.9999C20.6666 14.4479 21.1146 13.9999 21.6666 13.9999C22.2186 13.9999 22.6666 14.4479 22.6666 14.9999V17.6665C22.6666 19.6892 21.0226 21.3332 18.9999 21.3332H16.3333C15.7813 21.3332 15.3333 20.8852 15.3333 20.3332C15.3333 19.7812 15.7813 19.3332 16.3333 19.3332H18.9999C19.9186 19.3332 20.6666 18.5852 20.6666 17.6665V14.9999ZM8.6666 20.3332C8.6666 19.7812 8.2186 19.3332 7.6666 19.3332H4.99993C4.08127 19.3332 3.33327 18.5852 3.33327 17.6665V14.9999C3.33327 14.4479 2.88527 13.9999 2.33327 13.9999C1.78127 13.9999 1.33327 14.4479 1.33327 14.9999V17.6665C1.33327 19.6892 2.97727 21.3332 4.99993 21.3332H7.6666C8.2186 21.3332 8.6666 20.8852 8.6666 20.3332ZM6.33327 6.66655H17.6666C18.2189 6.66655 18.6666 7.11426 18.6666 7.66655V16.3332C18.6666 16.8855 18.2189 17.3332 17.6666 17.3332H6.33327C5.78098 17.3332 5.33327 16.8855 5.33327 16.3332V7.66655C5.33327 7.11426 5.78098 6.66655 6.33327 6.66655Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MediaIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.6666 2.66653H6.33325C4.31059 2.66653 2.6666 4.31053 2.6666 6.33319V17.6665C2.6666 19.6892 4.31059 21.3332 6.33325 21.3332H17.6666C19.6892 21.3332 21.3332 19.6892 21.3332 17.6665V6.33319C21.3332 4.31053 19.6892 2.66653 17.6666 2.66653ZM15.0372 12.8638L10.1706 15.7025C10.0132 15.7945 9.83991 15.8412 9.66658 15.8412C9.49591 15.8412 9.32525 15.7958 9.16791 15.7065C8.85325 15.5265 8.66658 15.2025 8.66658 14.8398V9.16118C8.66658 8.79852 8.85458 8.47452 9.16791 8.29452C9.48258 8.11319 9.85724 8.11585 10.1692 8.29719L15.0359 11.1358C15.3466 11.3172 15.5332 11.6398 15.5332 11.9998C15.5332 12.3598 15.3492 12.6825 15.0372 12.8638Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MegaphoneIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M-0.000305176 10.7022C-0.000305176 9.43425 0.793756 8.30207 1.9859 7.87025L18.8685 1.75508C20.4332 1.1883 22.0858 2.34737 22.0858 4.01161V17.3928C22.0858 19.057 20.4332 20.2161 18.8685 19.6493L15.811 18.5418C14.4792 21.615 10.9683 23.1614 7.77435 22.0088C4.57544 20.8545 2.86068 17.4137 3.80772 14.194L1.9859 13.5341C0.793757 13.1023 -0.000305176 11.9701 -0.000305176 10.7022ZM6.46266 15.1557C6.03897 16.9083 6.99436 18.7357 8.72951 19.3618C10.4619 19.987 12.3607 19.1943 13.156 17.5802L6.46266 15.1557Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MenuIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M1.66654 5.99986C1.66654 5.07939 2.41273 4.3332 3.3332 4.3332H20.6665C21.587 4.3332 22.3332 5.07939 22.3332 5.99986C22.3332 6.92033 21.587 7.66652 20.6665 7.66652H3.3332C2.41273 7.66652 1.66654 6.92033 1.66654 5.99986ZM1.66655 11.9998C1.66655 11.0794 2.41274 10.3332 3.33321 10.3332H20.6665C21.587 10.3332 22.3332 11.0794 22.3332 11.9998C22.3332 12.9203 21.587 13.6665 20.6665 13.6665H3.33321C2.41274 13.6665 1.66655 12.9203 1.66655 11.9998ZM3.33321 16.3332C2.41274 16.3332 1.66655 17.0794 1.66655 17.9998C1.66655 18.9203 2.41274 19.6665 3.33321 19.6665H20.6665C21.587 19.6665 22.3332 18.9203 22.3332 17.9998C22.3332 17.0794 21.587 16.3332 20.6665 16.3332H3.33321Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MicIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.3331 10.6665C17.3331 13.6078 14.9411 15.9998 11.9998 15.9998C9.05846 15.9998 6.66646 13.6078 6.66646 10.6665V6.66653C6.66646 3.7252 9.05846 1.33321 11.9998 1.33321C14.9411 1.33321 17.3331 3.7252 17.3331 6.66653V10.6665ZM19.3331 10.6665C19.3331 10.1145 19.7811 9.66652 20.3331 9.66652C20.8851 9.66652 21.3331 10.1145 21.3331 10.6665C21.3331 15.4745 17.6771 19.4425 12.9998 19.9438V21.6665C12.9998 22.2185 12.5518 22.6665 11.9998 22.6665C11.4478 22.6665 10.9998 22.2185 10.9998 21.6665V19.9438C6.32246 19.4438 2.66647 15.4745 2.66647 10.6665C2.66647 10.1145 3.11447 9.66652 3.66647 9.66652C4.21847 9.66652 4.66647 10.1145 4.66647 10.6665C4.66647 14.7105 7.95579 17.9998 11.9998 17.9998C16.0438 17.9998 19.3331 14.7105 19.3331 10.6665Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MicOffIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M8.19441 14.391C7.25066 13.4303 6.66642 12.1168 6.66642 10.6665V6.66655C6.66642 3.72521 9.05842 1.33321 11.9998 1.33321C14.5062 1.33321 16.6137 3.07017 17.1822 5.40387L20.6264 1.95987C21.0171 1.56921 21.6504 1.56921 22.0411 1.95987C22.4317 2.35054 22.4317 2.98387 22.0411 3.37454L3.37308 22.0399C3.17841 22.2345 2.92241 22.3332 2.66641 22.3332C2.41041 22.3332 2.15441 22.2359 1.95975 22.0399C1.56908 21.6492 1.56908 21.0159 1.95975 20.6252L5.36927 17.2159C3.70118 15.5313 2.66642 13.2203 2.66642 10.6665C2.66642 10.1145 3.11442 9.66655 3.66642 9.66655C4.21842 9.66655 4.66642 10.1145 4.66642 10.6665C4.66642 12.6681 5.47593 14.481 6.7815 15.8038L8.19441 14.391ZM12.2691 15.9719C14.9918 15.8332 17.1664 13.6572 17.3051 10.9359L12.2691 15.9719ZM20.3331 9.66655C19.7811 9.66655 19.3331 10.1145 19.3331 10.6665C19.3331 14.7105 16.0437 17.9999 11.9997 17.9999C11.4557 17.9999 10.9277 17.9359 10.4184 17.8239L8.81441 19.4279C9.50908 19.6812 10.2397 19.8639 10.9997 19.9452V21.6679C10.9997 22.2199 11.4477 22.6679 11.9997 22.6679C12.5517 22.6679 12.9997 22.2199 12.9997 21.6679V19.9452C17.6771 19.4439 21.3331 15.4759 21.3331 10.6679C21.3331 10.1159 20.8851 9.66655 20.3331 9.66655Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MinimizeIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M7.99976 3.66655C7.99976 3.11455 8.44776 2.66655 8.99976 2.66655C9.55176 2.66655 9.99976 3.11455 9.99976 3.66655V6.33322C9.99976 8.35588 8.35576 9.99988 6.33309 9.99988H3.66643C3.11443 9.99988 2.66643 9.55188 2.66643 8.99988C2.66643 8.44788 3.11443 7.99988 3.66643 7.99988H6.33309C7.25176 7.99988 7.99976 7.25188 7.99976 6.33322V3.66655ZM17.6664 7.99988H20.3331C20.8851 7.99988 21.3331 8.44788 21.3331 8.99988C21.3331 9.55188 20.8851 9.99988 20.3331 9.99988H17.6664C15.6438 9.99988 13.9998 8.35588 13.9998 6.33322V3.66655C13.9998 3.11455 14.4478 2.66655 14.9998 2.66655C15.5518 2.66655 15.9998 3.11455 15.9998 3.66655V6.33322C15.9998 7.25188 16.7478 7.99988 17.6664 7.99988ZM20.3331 13.9999H17.6664C15.6438 13.9999 13.9998 15.6439 13.9998 17.6665V20.3332C13.9998 20.8852 14.4478 21.3332 14.9998 21.3332C15.5518 21.3332 15.9998 20.8852 15.9998 20.3332V17.6665C15.9998 16.7479 16.7478 15.9999 17.6664 15.9999H20.3331C20.8851 15.9999 21.3331 15.5519 21.3331 14.9999C21.3331 14.4479 20.8851 13.9999 20.3331 13.9999ZM3.66643 13.9999H6.33309C8.35576 13.9999 9.99976 15.6439 9.99976 17.6665V20.3332C9.99976 20.8852 9.55176 21.3332 8.99976 21.3332C8.44776 21.3332 7.99976 20.8852 7.99976 20.3332V17.6665C7.99976 16.7479 7.25176 15.9999 6.33309 15.9999H3.66643C3.11443 15.9999 2.66643 15.5519 2.66643 14.9999C2.66643 14.4479 3.11443 13.9999 3.66643 13.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MinusIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.6667 12.9999H4.33344C3.7813 12.9999 3.33344 12.552 3.33344 11.9999C3.33344 11.4477 3.7813 10.9999 4.33344 10.9999H19.6667C20.2189 10.9999 20.6667 11.4477 20.6667 11.9999C20.6667 12.552 20.2189 12.9999 19.6667 12.9999Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MinusCircleIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.9998 1.33321C6.11842 1.33321 1.33309 6.11855 1.33309 11.9999C1.33309 17.8812 6.11842 22.6665 11.9998 22.6665C17.8811 22.6665 22.6664 17.8812 22.6664 11.9999C22.6664 6.11855 17.8811 1.33321 11.9998 1.33321ZM16.3331 12.9999H7.66642C7.11442 12.9999 6.66642 12.5519 6.66642 11.9999C6.66642 11.4479 7.11442 10.9999 7.66642 10.9999H16.3331C16.8851 10.9999 17.3331 11.4479 17.3331 11.9999C17.3331 12.5519 16.8851 12.9999 16.3331 12.9999Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MobileIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M7.66641 1.33321H16.3331C18.3557 1.33321 19.9997 2.9772 19.9997 4.99986V18.9998C19.9997 21.0225 18.3557 22.6665 16.3331 22.6665H7.66641C5.64374 22.6665 3.99975 21.0225 3.99975 18.9998V4.99986C3.99975 2.9772 5.64374 1.33321 7.66641 1.33321ZM16.3331 20.6665C17.2517 20.6665 17.9997 19.9185 17.9997 18.9998V4.99986C17.9997 4.0812 17.2517 3.3332 16.3331 3.3332H14.6664V3.66653C14.6664 4.21853 14.2184 4.66653 13.6664 4.66653H10.3331C9.78107 4.66653 9.33307 4.21853 9.33307 3.66653V3.3332H7.66641C6.74774 3.3332 5.99974 4.0812 5.99974 4.99986V18.9998C5.99974 19.9185 6.74774 20.6665 7.66641 20.6665H16.3331ZM13.3331 17.3332C13.3331 18.0695 12.7361 18.6665 11.9997 18.6665C11.2634 18.6665 10.6664 18.0695 10.6664 17.3332C10.6664 16.5968 11.2634 15.9998 11.9997 15.9998C12.7361 15.9998 13.3331 16.5968 13.3331 17.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MoreOptionsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M4.99968 2.66653H8.333C9.62167 2.66653 10.6663 3.7112 10.6663 4.99986V8.33319C10.6663 9.62185 9.62167 10.6665 8.333 10.6665H4.99968C3.71102 10.6665 2.66635 9.62185 2.66635 8.33319V4.99986C2.66635 3.7112 3.71102 2.66653 4.99968 2.66653ZM4.99968 13.3332H8.33301C9.62167 13.3332 10.6663 14.3778 10.6663 15.6665V18.9998C10.6663 20.2885 9.62167 21.3332 8.33301 21.3332H4.99968C3.71102 21.3332 2.66635 20.2885 2.66635 18.9998V15.6665C2.66635 14.3778 3.71102 13.3332 4.99968 13.3332ZM13.6663 7.99986H20.333C20.885 7.99986 21.333 7.55186 21.333 6.99986C21.333 6.44786 20.885 5.99986 20.333 5.99986H13.6663C13.1143 5.99986 12.6663 6.44786 12.6663 6.99986C12.6663 7.55186 13.1143 7.99986 13.6663 7.99986ZM13.6663 15.9998H20.333C20.885 15.9998 21.333 16.4478 21.333 16.9998C21.333 17.5518 20.885 17.9998 20.333 17.9998H13.6663C13.1143 17.9998 12.6663 17.5518 12.6663 16.9998C12.6663 16.4478 13.1143 15.9998 13.6663 15.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MoveLeftIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M18.3333 2.66655H19.6667C20.9553 2.66655 22 3.71122 22 4.99988V18.9999C22 20.2885 20.9553 21.3332 19.6667 21.3332H18.3333C17.0447 21.3332 16 20.2885 16 18.9999V4.99988C16 3.71122 17.0447 2.66655 18.3333 2.66655ZM5.41467 10.9999H13L12.9987 10.9985C13.5507 10.9985 13.9987 11.4465 13.9987 11.9985C13.9987 12.5505 13.5507 12.9985 12.9987 12.9985H5.41334L8.04 15.6252C8.43067 16.0159 8.43067 16.6492 8.04 17.0399C7.84534 17.2359 7.58934 17.3332 7.33334 17.3332C7.07734 17.3332 6.82134 17.2345 6.62667 17.0399L2.29334 12.7065C1.90267 12.3159 1.90267 11.6825 2.29334 11.2919L6.62667 6.95854C7.01734 6.56788 7.65067 6.56788 8.04134 6.95854C8.432 7.34921 8.432 7.98254 8.04134 8.37321L5.41467 10.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MoveRightIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.66667 2.66655H4.33333C3.04467 2.66655 2 3.71122 2 4.99988V18.9999C2 20.2885 3.04467 21.3332 4.33333 21.3332H5.66667C6.95533 21.3332 8 20.2885 8 18.9999V4.99988C8 3.71122 6.95533 2.66655 5.66667 2.66655ZM18.5853 10.9999H11L11.0013 10.9985C10.4493 10.9985 10.0013 11.4465 10.0013 11.9985C10.0013 12.5505 10.4493 12.9985 11.0013 12.9985H18.5867L15.96 15.6252C15.5693 16.0159 15.5693 16.6492 15.96 17.0399C16.1547 17.2359 16.4107 17.3332 16.6667 17.3332C16.9227 17.3332 17.1787 17.2345 17.3733 17.0399L21.7067 12.7065C22.0973 12.3159 22.0973 11.6825 21.7067 11.2919L17.3733 6.95854C16.9827 6.56788 16.3493 6.56788 15.9587 6.95854C15.568 7.34921 15.568 7.98254 15.9587 8.37321L18.5853 10.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const MusicIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M17.9493 1.93853L8.61598 3.49453C7.48665 3.68253 6.66665 4.65053 6.66665 5.79586V15.0852C6.16398 14.8265 5.60265 14.6665 4.99999 14.6665C2.97732 14.6665 1.33333 16.3105 1.33333 18.3332C1.33333 20.3558 2.97732 21.9998 4.99999 21.9998C7.02265 21.9998 8.66664 20.3558 8.66664 18.3332V9.84651L18.6666 8.17985V13.0852C18.164 12.8265 17.6026 12.6665 17 12.6665C14.9773 12.6665 13.3333 14.3105 13.3333 16.3332C13.3333 18.3558 14.9773 19.9998 17 19.9998C19.0226 19.9998 20.6666 18.3558 20.6666 16.3332V4.2412C20.6666 3.5532 20.3653 2.9052 19.8413 2.4612C19.3159 2.0172 18.6306 1.82787 17.9493 1.93987V1.93853Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const OnAirIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 22.6665C17.891 22.6665 22.6667 17.8909 22.6667 11.9999C22.6667 6.10884 17.891 1.33321 12 1.33321C6.10896 1.33321 1.33333 6.10884 1.33333 11.9999C1.33333 17.8909 6.10896 22.6665 12 22.6665Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const OpenNewIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12.9852 2.66653H20.3319C20.8839 2.66653 21.3319 3.11453 21.3319 3.66653V11.0145C21.3319 11.5665 20.8839 12.0145 20.3319 12.0145C19.7799 12.0145 19.3319 11.5665 19.3319 11.0145V6.08119L11.0386 14.3745C10.8439 14.5705 10.5879 14.6678 10.3319 14.6678C10.0759 14.6678 9.81991 14.5692 9.62525 14.3745C9.23458 13.9838 9.23458 13.3505 9.62525 12.9598L17.9186 4.66653H12.9852C12.4332 4.66653 11.9852 4.21853 11.9852 3.66653C11.9852 3.11453 12.4332 2.66653 12.9852 2.66653ZM6.33325 19.3332H18.9999C19.5519 19.3332 19.9999 19.7812 19.9999 20.3332C19.9999 20.8852 19.5519 21.3332 18.9999 21.3332H6.33325C4.31059 21.3332 2.6666 19.6892 2.6666 17.6665V4.99986C2.6666 4.44786 3.11459 3.99986 3.66659 3.99986C4.21859 3.99986 4.66659 4.44786 4.66659 4.99986V17.6665C4.66659 18.5852 5.41459 19.3332 6.33325 19.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const OverviewIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M20.3025 9.43053C20.0598 9.92653 19.4625 10.1319 18.9638 9.88786L18.9652 9.89053C18.4705 9.64653 18.2652 9.04786 18.5092 8.55186C19.4665 6.60254 19.4878 5.32387 19.0838 4.91987C18.4558 4.29187 16.3292 4.79587 13.6718 6.5412C14.3478 7.10387 15.0172 7.69453 15.6625 8.3412C16.6758 9.35453 17.5798 10.4132 18.3665 11.4705C18.3701 11.476 18.3746 11.4808 18.379 11.4857C18.3843 11.4915 18.3895 11.4973 18.3932 11.5039C19.2758 12.6945 20.0038 13.8852 20.5105 15.0105C21.6065 17.4452 21.6011 19.3945 20.4972 20.4985C19.9412 21.0545 19.1772 21.3318 18.2452 21.3318C17.2092 21.3318 15.9652 20.9878 14.5705 20.3038C14.0758 20.0598 13.8705 19.4612 14.1145 18.9652C14.3572 18.4705 14.9558 18.2638 15.4532 18.5078C17.4012 19.4665 18.6825 19.4878 19.0838 19.0838C19.4238 18.7438 19.5238 17.6892 18.6865 15.8305C18.3745 15.1372 17.9425 14.4105 17.4598 13.6745C16.8972 14.3505 16.3065 15.0185 15.6625 15.6625C13.4985 17.8252 11.1305 19.5478 8.99318 20.5092C7.77985 21.0545 6.68652 21.3278 5.75986 21.3278C4.82519 21.3278 4.05853 21.0505 3.50519 20.4958C2.33053 19.3212 2.39853 17.2158 3.69986 14.5692C3.94253 14.0745 4.53986 13.8665 5.03852 14.1118C5.53319 14.3558 5.73852 14.9545 5.49452 15.4505C4.53719 17.3998 4.51586 18.6785 4.91986 19.0825C5.54786 19.7092 7.67318 19.2065 10.3305 17.4612C9.65451 16.8985 8.98518 16.3078 8.33985 15.6612C7.32652 14.6478 6.42252 13.5892 5.63586 12.5319C5.63223 12.5264 5.62779 12.5215 5.62339 12.5167C5.61808 12.5108 5.61283 12.5051 5.60919 12.4985C4.72652 11.3079 3.99853 10.1172 3.49186 8.99186C2.39586 6.5572 2.4012 4.60787 3.50519 3.50388C4.67852 2.33055 6.78385 2.39855 9.43185 3.69854C9.92651 3.94254 10.1318 4.54121 9.88784 5.03721C9.64518 5.53321 9.04651 5.73987 8.54918 5.49454C6.60119 4.53587 5.31986 4.51587 4.91852 4.91854C4.57852 5.25854 4.47852 6.3132 5.31586 8.17186C5.62786 8.8652 6.05985 9.59186 6.54252 10.3279C7.10385 9.65319 7.69318 8.98653 8.33985 8.33986C9.35051 7.3292 10.4065 6.42654 11.4625 5.6412C11.4694 5.63684 11.4754 5.6313 11.4814 5.62569C11.4883 5.61931 11.4953 5.61284 11.5038 5.60787C12.6945 4.72654 13.8838 3.99854 15.0092 3.49188C17.4465 2.39588 19.3945 2.39988 20.4972 3.50388C21.6718 4.67854 21.6038 6.78387 20.3025 9.43053ZM16.2398 12.0025C15.6345 11.2439 14.9825 10.4879 14.2478 9.75319C13.5198 9.02386 12.7652 8.36786 12.0012 7.75853C11.2665 8.34653 10.5185 8.98786 9.75318 9.75319C9.02518 10.4825 8.36918 11.2372 7.76118 11.9999C8.36652 12.7585 9.01851 13.5145 9.75318 14.2492C10.4812 14.9772 11.2372 15.6332 11.9998 16.2425C12.7345 15.6558 13.4825 15.0145 14.2478 14.2492C14.9732 13.5225 15.6292 12.7665 16.2398 12.0025ZM13.3332 11.9998C13.3332 12.7362 12.7362 13.3332 11.9998 13.3332C11.2635 13.3332 10.6665 12.7362 10.6665 11.9998C10.6665 11.2635 11.2635 10.6665 11.9998 10.6665C12.7362 10.6665 13.3332 11.2635 13.3332 11.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PageIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M23.1611 2.17988C22.2318 1.25055 20.7171 1.25055 19.7878 2.17988L14.8825 7.08787C15.6384 7.3852 16.3358 7.83053 16.9278 8.42386C17.5251 9.02253 17.9611 9.71986 18.2504 10.4625L23.1624 5.5532C24.0931 4.62254 24.0918 3.10921 23.1611 2.17988ZM18.9998 21.3332H4.9998C2.97714 21.3332 1.33315 19.6892 1.33315 17.6665V6.3332C1.33315 4.31054 2.97714 2.66654 4.9998 2.66654H14.2864C14.8384 2.66654 15.2864 3.11454 15.2864 3.66654C15.2864 4.21854 14.8384 4.66654 14.2864 4.66654H4.9998C4.08114 4.66654 3.33314 5.41453 3.33314 6.3332V17.6665C3.33314 18.5852 4.08114 19.3332 4.9998 19.3332H18.9998C19.9184 19.3332 20.6664 18.5852 20.6664 17.6665V11.0452C20.6664 10.4932 21.1144 10.0452 21.6664 10.0452C22.2184 10.0452 22.6664 10.4932 22.6664 11.0452V17.6665C22.6664 19.6892 21.0224 21.3332 18.9998 21.3332ZM5.66647 7.99986C6.21875 7.99986 6.66647 7.55215 6.66647 6.99986C6.66647 6.44758 6.21875 5.99987 5.66647 5.99987C5.11419 5.99987 4.66647 6.44758 4.66647 6.99986C4.66647 7.55215 5.11419 7.99986 5.66647 7.99986ZM9.99979 6.99986C9.99979 7.55215 9.55208 7.99986 8.99979 7.99986C8.44751 7.99986 7.9998 7.55215 7.9998 6.99986C7.9998 6.44758 8.44751 5.99987 8.99979 5.99987C9.55208 5.99987 9.99979 6.44758 9.99979 6.99986ZM12.7078 8.66653C13.7624 8.66653 14.7584 9.08253 15.5091 9.83586C17.0491 11.3812 17.0491 13.8945 15.5091 15.4398C14.1158 16.8665 12.5464 17.3398 10.9705 17.3398C9.75045 17.3398 8.52779 17.0558 7.37846 16.7105C6.99313 16.5945 6.71446 16.2585 6.6718 15.8572C6.63046 15.4572 6.83313 15.0692 7.18646 14.8758C8.27443 14.2812 8.36246 13.7692 8.52245 12.8386L8.52246 12.8385C8.66913 11.9785 8.85312 10.9105 9.91312 9.83852C10.6585 9.08386 11.6478 8.66786 12.6998 8.66653H12.7078Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PanelLeftIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.9997 2.66653H4.99974C2.97708 2.66653 1.33309 4.31053 1.33309 6.33319V17.6665C1.33309 19.6892 2.97708 21.3332 4.99974 21.3332H18.9997C21.0224 21.3332 22.6664 19.6892 22.6664 17.6665V6.33319C22.6664 4.31053 21.0224 2.66653 18.9997 2.66653ZM7.33307 16.3332C7.33307 16.8852 6.88507 17.3332 6.33307 17.3332C5.78108 17.3332 5.33308 16.8852 5.33308 16.3332V7.66652C5.33308 7.11452 5.78108 6.66652 6.33307 6.66652C6.88507 6.66652 7.33307 7.11452 7.33307 7.66652V16.3332ZM17.6664 12.9998H12.0811L13.3744 14.2932C13.7651 14.6838 13.7651 15.3172 13.3744 15.7078C13.1797 15.9025 12.9237 16.0012 12.6677 16.0012C12.4117 16.0012 12.1557 15.9038 11.9611 15.7078L8.96107 12.7078C8.5704 12.3172 8.5704 11.6838 8.96107 11.2932L11.9611 8.29319C12.3517 7.90252 12.9851 7.90252 13.3757 8.29319C13.7664 8.68385 13.7664 9.31718 13.3757 9.70785L12.0824 11.0012H17.6677C18.2197 11.0012 18.6677 11.4492 18.6677 12.0012C18.6677 12.5532 18.2197 13.0012 17.6677 13.0012L17.6664 12.9998Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PanelRightIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.9996 2.66653H4.99968C2.97702 2.66653 1.33302 4.31053 1.33302 6.33319V17.6665C1.33302 19.6892 2.97702 21.3332 4.99968 21.3332H18.9996C21.0223 21.3332 22.6663 19.6892 22.6663 17.6665V6.33319C22.6663 4.31053 21.0223 2.66653 18.9996 2.66653ZM7.33301 16.3332C7.33301 16.8852 6.88501 17.3332 6.33301 17.3332C5.78101 17.3332 5.33301 16.8852 5.33301 16.3332V7.66652C5.33301 7.11452 5.78101 6.66652 6.33301 6.66652C6.88501 6.66652 7.33301 7.11452 7.33301 7.66652V16.3332ZM18.373 12.7065L15.373 15.7065C15.1783 15.9012 14.9223 15.9998 14.6663 15.9998C14.4103 15.9998 14.1543 15.9025 13.9597 15.7065C13.569 15.3158 13.569 14.6825 13.9597 14.2918L15.253 12.9985H9.66634C9.11434 12.9985 8.66634 12.5505 8.66634 11.9985C8.66634 11.4465 9.11434 10.9985 9.66634 10.9985H15.2517L13.9583 9.70518C13.5677 9.31452 13.5677 8.68119 13.9583 8.29052C14.349 7.89985 14.9823 7.89985 15.373 8.29052L18.373 11.2905C18.7636 11.6812 18.7636 12.3158 18.373 12.7065Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PanelUpIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.9996 2.66653H4.99962C2.97696 2.66653 1.33296 4.31053 1.33296 6.33319V17.6665C1.33296 19.6892 2.97696 21.3332 4.99962 21.3332H18.9996C21.0222 21.3332 22.6662 19.6892 22.6662 17.6665V6.33319C22.6662 4.31053 21.0222 2.66653 18.9996 2.66653ZM15.5343 14.8678C15.3396 15.0625 15.0836 15.1612 14.8276 15.1612C14.5716 15.1612 14.3156 15.0638 14.1209 14.8678L12.9996 13.7465V16.6652C12.9996 17.2172 12.5516 17.6652 11.9996 17.6652C11.4476 17.6652 10.9996 17.2172 10.9996 16.6652V13.7465L9.87827 14.8678C9.48761 15.2585 8.85428 15.2585 8.46361 14.8678C8.07295 14.4772 8.07295 13.8438 8.46361 13.4532L11.2916 10.6252C11.6823 10.2345 12.3156 10.2345 12.7063 10.6252L15.5343 13.4532C15.9249 13.8438 15.9249 14.4772 15.5343 14.8678ZM17.6663 8.66652H6.33295C5.78095 8.66652 5.33295 8.21852 5.33295 7.66652C5.33295 7.11452 5.78095 6.66652 6.33295 6.66652H17.6663C18.2183 6.66652 18.6663 7.11452 18.6663 7.66652C18.6663 8.21852 18.2183 8.66652 17.6663 8.66652Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PasswordIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.3329 7.99986V5.3332C15.3329 3.49587 13.8382 1.99987 11.9995 1.99987C10.1609 1.99987 8.66622 3.49587 8.66622 5.3332V7.99986H15.3329ZM6.66622 7.99986V5.3332C6.66622 2.39187 9.05822 -0.00012207 11.9995 -0.00012207C14.9409 -0.00012207 17.3329 2.39187 17.3329 5.3332V7.99986H17.6662C18.9529 7.99986 19.9995 9.04652 19.9995 10.3332V16.3332C19.9995 17.6198 18.9529 18.6665 17.6662 18.6665H6.33289C5.04623 18.6665 3.99956 17.6198 3.99956 16.3332V10.3332C3.99956 9.04652 5.04623 7.99986 6.33289 7.99986H6.66622ZM4.66623 22.3332C4.66623 23.2536 3.92004 23.9998 2.99957 23.9998C2.07909 23.9998 1.3329 23.2536 1.3329 22.3332C1.3329 21.4127 2.07909 20.6665 2.99957 20.6665C3.92004 20.6665 4.66623 21.4127 4.66623 22.3332ZM8.99955 23.9998C9.92002 23.9998 10.6662 23.2536 10.6662 22.3332C10.6662 21.4127 9.92002 20.6665 8.99955 20.6665C8.07908 20.6665 7.33289 21.4127 7.33289 22.3332C7.33289 23.2536 8.07908 23.9998 8.99955 23.9998ZM16.6662 22.3332C16.6662 23.2536 15.92 23.9998 14.9995 23.9998C14.0791 23.9998 13.3329 23.2536 13.3329 22.3332C13.3329 21.4127 14.0791 20.6665 14.9995 20.6665C15.92 20.6665 16.6662 21.4127 16.6662 22.3332ZM20.9995 23.9998C21.92 23.9998 22.6662 23.2536 22.6662 22.3332C22.6662 21.4127 21.92 20.6665 20.9995 20.6665C20.079 20.6665 19.3329 21.4127 19.3329 22.3332C19.3329 23.2536 20.079 23.9998 20.9995 23.9998ZM11.9995 14.9998C12.5515 14.9998 12.9995 14.5518 12.9995 13.9998V12.6665C12.9995 12.1145 12.5515 11.6665 11.9995 11.6665C11.4475 11.6665 10.9995 12.1145 10.9995 12.6665V13.9998C10.9995 14.5518 11.4475 14.9998 11.9995 14.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PauseIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M4.99957 2.66654H6.99957C8.28823 2.66654 9.3329 3.71121 9.3329 4.99988V18.9999C9.3329 20.2885 8.28823 21.3332 6.99957 21.3332H4.99957C3.71091 21.3332 2.66624 20.2885 2.66624 18.9999V4.99988C2.66624 3.71121 3.71091 2.66654 4.99957 2.66654ZM16.9996 2.66654H18.9996C20.2882 2.66654 21.3329 3.71121 21.3329 4.99988V18.9999C21.3329 20.2885 20.2882 21.3332 18.9996 21.3332H16.9996C15.7109 21.3332 14.6662 20.2885 14.6662 18.9999V4.99988C14.6662 3.71121 15.7109 2.66654 16.9996 2.66654Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PencilIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.2186 3.7972L4.80665 14.2092C3.65599 15.3612 2.93866 18.7505 2.68266 20.1545C2.62399 20.4772 2.72799 20.8092 2.95999 21.0412C3.14932 21.2305 3.40399 21.3345 3.66666 21.3345C3.72532 21.3345 3.78532 21.3292 3.84532 21.3185C5.24932 21.0638 8.63864 20.3465 9.79064 19.1945L20.2026 8.78252C21.5759 7.40786 21.5759 5.1732 20.2026 3.79854C18.872 2.46787 16.5493 2.46787 15.2186 3.7972Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PeopleIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.6666 4.99987C19.6666 7.0249 18.0249 8.66652 15.9999 8.66652C13.9749 8.66652 12.3332 7.0249 12.3332 4.99987C12.3332 2.97483 13.9749 1.33321 15.9999 1.33321C18.0249 1.33321 19.6666 2.97483 19.6666 4.99987ZM11.3332 8.33319C11.3332 10.3582 9.69163 11.9998 7.66659 11.9998C5.64155 11.9998 3.99993 10.3582 3.99993 8.33319C3.99993 6.30815 5.64155 4.66653 7.66659 4.66653C9.69163 4.66653 11.3332 6.30815 11.3332 8.33319ZM22.9279 14.7972C21.8465 11.9278 19.0626 9.99985 15.9999 9.99985C14.1106 9.99985 12.3306 10.7372 10.9879 11.9732C13.4599 12.9185 15.5012 14.8652 16.4666 17.4252C16.6159 17.8198 16.6826 18.2292 16.7092 18.6385C18.3239 18.5718 19.9212 18.2918 21.4625 17.7772C22.0705 17.5745 22.5745 17.1278 22.8505 16.5518C23.1172 15.9918 23.1452 15.3678 22.9292 14.7972H22.9279ZM7.66658 13.3332C10.7292 13.3332 13.5132 15.2612 14.5946 18.1305C14.8106 18.7012 14.7826 19.3252 14.5159 19.8852C14.2399 20.4612 13.7359 20.9078 13.1279 21.1105C11.3612 21.6998 9.52258 21.9998 7.66658 21.9998C5.81059 21.9998 3.97193 21.6998 2.20526 21.1105C1.59727 20.9078 1.09193 20.4612 0.817268 19.8852C0.550602 19.3252 0.522602 18.7025 0.738602 18.1305C1.81993 15.2612 4.60393 13.3332 7.66658 13.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PinIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.3332 10.2785C17.8012 10.8119 18.2172 11.3879 18.5719 11.9959C19.3225 13.2825 19.7999 14.6985 19.9919 16.2065C20.0279 16.4919 19.9399 16.7772 19.7505 16.9932C19.5599 17.2079 19.2865 17.3319 18.9999 17.3319H12.9999V21.6665C12.9999 22.2185 12.5519 22.6665 11.9999 22.6665C11.4479 22.6665 10.9999 22.2185 10.9999 21.6665V17.3319H4.99988C4.71321 17.3319 4.43988 17.2092 4.24921 16.9932C4.05988 16.7785 3.97188 16.4919 4.00788 16.2065C4.19988 14.6985 4.67721 13.2825 5.42788 11.9959C5.78255 11.3879 6.19721 10.8119 6.66655 10.2785V4.99987C6.66655 2.97721 8.31055 1.33321 10.3332 1.33321H13.6665C15.6892 1.33321 17.3332 2.97721 17.3332 4.99987V10.2785Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PinSlashIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.2521 17.3332H4.99988V17.3319C4.71321 17.3319 4.43988 17.2092 4.24921 16.9932C4.05988 16.7785 3.97188 16.4919 4.00788 16.2065C4.19988 14.6985 4.67721 13.2825 5.42788 11.9959C5.78255 11.3879 6.19721 10.8119 6.66655 10.2785V4.99987C6.66655 2.97721 8.31055 1.33321 10.3332 1.33321H13.6665C15.6892 1.33321 17.3332 2.97721 17.3332 4.99987V5.25296L20.6265 1.95987C21.0172 1.5692 21.6505 1.5692 22.0412 1.95987C22.4319 2.35054 22.4319 2.98387 22.0412 3.37454L3.3732 22.0399C3.17854 22.2345 2.92254 22.3332 2.66654 22.3332C2.41054 22.3332 2.15454 22.2359 1.95987 22.0399C1.5692 21.6492 1.5692 21.0159 1.95987 20.6252L5.2521 17.3332ZM17.6119 10.6305L10.9999 17.3332V21.6665C10.9999 22.2185 11.4479 22.6665 11.9999 22.6665C12.5519 22.6665 12.9999 22.2185 12.9999 21.6665V17.3332H18.9999C19.2865 17.3332 19.5599 17.2092 19.7505 16.9945C19.9399 16.7785 20.0279 16.4932 19.9919 16.2079C19.7999 14.6999 19.3225 13.2839 18.5719 11.9972C18.2919 11.5172 17.9639 11.0652 17.6119 10.6305Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PipIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5 20.6665H19C21.0227 20.6665 22.6667 19.0225 22.6667 16.9999V6.99988C22.6667 4.97721 21.0227 3.33321 19 3.33321H5C2.97734 3.33321 1.33334 4.97721 1.33334 6.99988V16.9999C1.33334 19.0225 2.97734 20.6665 5 20.6665ZM14 13.6665C14 12.7465 14.7467 11.9999 15.6667 11.9999H19C19.92 11.9999 20.6667 12.7465 20.6667 13.6665V16.9999C20.6667 17.9199 19.92 18.6665 19 18.6665H15.6667C14.7467 18.6665 14 17.9199 14 16.9999V13.6665Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PlayIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.1332 9.97052L7.47719 2.96254C6.73986 2.55454 5.8692 2.56654 5.1452 2.9932C4.42787 3.41587 3.99987 4.16253 3.99987 4.99186V19.0078C3.99987 19.8372 4.42787 20.5838 5.1452 21.0065C5.5172 21.2252 5.92653 21.3358 6.33853 21.3358C6.7292 21.3358 7.11986 21.2358 7.47719 21.0385L20.1318 14.0305C20.8732 13.6212 21.3332 12.8425 21.3332 12.0012C21.3332 11.1598 20.8732 10.3799 20.1332 9.97052Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PlayerIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.9998 3.99987H4.9998C2.97714 3.99987 1.33315 5.64386 1.33315 7.66653V16.3332C1.33315 18.3558 2.97714 19.9998 4.9998 19.9998H18.9998C21.0224 19.9998 22.6664 18.3558 22.6664 16.3332V7.66653C22.6664 5.64386 21.0224 3.99987 18.9998 3.99987ZM15.0371 12.8638L10.1705 15.7025C10.0131 15.7945 9.83979 15.8412 9.66646 15.8412C9.49579 15.8412 9.32513 15.7958 9.16779 15.7065C8.85313 15.5265 8.66646 15.2025 8.66646 14.8398V9.16119C8.66646 8.79852 8.85446 8.47452 9.16779 8.29452C9.48246 8.11319 9.85712 8.11586 10.1691 8.29719L15.0358 11.1359C15.3464 11.3172 15.5331 11.6398 15.5331 11.9998C15.5331 12.3598 15.3491 12.6825 15.0371 12.8638Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PlaylistIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.4127 11.582C13.8595 11.5821 14.2223 11.9801 14.2223 12.4707C14.2222 12.9612 13.8595 13.3593 13.4127 13.3594H5.23401C4.78722 13.3594 4.42455 12.9613 4.42444 12.4707C4.42444 11.98 4.78715 11.582 5.23401 11.582H13.4127ZM2.15588 5.62109C2.38676 5.51013 2.6605 5.54203 2.86096 5.70215L5.08362 7.47949C5.24149 7.60572 5.33362 7.79739 5.33362 8C5.3336 8.20261 5.24152 8.39421 5.08362 8.52051L2.86096 10.2979C2.6605 10.4579 2.38677 10.4899 2.15588 10.3789C1.92451 10.2682 1.77795 10.0334 1.77795 9.77734V6.22266C1.77795 5.96657 1.92451 5.73176 2.15588 5.62109ZM13.4127 7.33301C13.8596 7.33301 14.2223 7.73199 14.2223 8.22266C14.2221 8.71312 13.8594 9.11133 13.4127 9.11133H7.4762C7.02948 9.11132 6.66684 8.71312 6.66663 8.22266C6.66663 7.732 7.02935 7.33302 7.4762 7.33301H13.4127ZM13.4127 2.66699C13.8595 2.66704 14.2223 3.06503 14.2223 3.55566C14.2222 4.04625 13.8595 4.44428 13.4127 4.44434H5.23401C4.78718 4.44434 4.42449 4.04628 4.42444 3.55566C4.42444 3.065 4.78715 2.66699 5.23401 2.66699H13.4127Z\"\n fill=\"currentColor\"\n id=\"Vector\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PlusIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M10.9997 19.6665C10.9997 20.2185 11.4477 20.6665 11.9997 20.6665C12.5517 20.6665 12.9997 20.2185 12.9997 19.6665V12.9998H19.6664C20.2184 12.9998 20.6664 12.5518 20.6664 11.9998C20.6664 11.4478 20.2184 10.9998 19.6664 10.9998H12.9997V4.3332C12.9997 3.7812 12.5517 3.3332 11.9997 3.3332C11.4477 3.3332 10.9997 3.7812 10.9997 4.3332V10.9998H4.33308C3.78108 10.9998 3.33308 11.4478 3.33308 11.9998C3.33308 12.5518 3.78108 12.9998 4.33308 12.9998H10.9997V19.6665Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PodcastIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.9997 -0.00012207C5.75035 -0.00012207 0.666359 5.08387 0.666359 11.3332C0.666359 14.6758 2.13302 17.8318 4.68768 19.9918C5.10635 20.3478 5.74101 20.2972 6.09701 19.8745C6.45434 19.4532 6.40234 18.8212 5.97968 18.4652C3.87435 16.6852 2.66769 14.0865 2.66769 11.3332C2.66769 6.18653 6.85568 1.99987 12.001 1.99987C17.1463 1.99987 21.3343 6.18653 21.3343 11.3332C21.3343 14.0852 20.1276 16.6852 18.0223 18.4652C17.601 18.8225 17.549 19.4532 17.905 19.8745C18.101 20.1078 18.3836 20.2292 18.6676 20.2292C18.897 20.2292 19.1263 20.1518 19.313 19.9932C21.8676 17.8318 23.3343 14.6772 23.3343 11.3345C23.333 5.08387 18.249 -0.00012207 11.9997 -0.00012207ZM11.9997 3.99987C16.0423 3.99987 19.333 7.28919 19.333 11.3332C19.333 12.9465 18.821 14.4758 17.849 15.7572C17.6517 16.0158 17.3543 16.1532 17.0503 16.1532C16.841 16.1532 16.629 16.0878 16.4477 15.9505C16.0063 15.6172 15.921 14.9892 16.2543 14.5492C16.961 13.6185 17.333 12.5065 17.333 11.3332C17.333 8.39186 14.941 5.99986 11.9997 5.99986C9.05834 5.99986 6.66635 8.39186 6.66635 11.3332C6.66635 12.5065 7.03968 13.6185 7.74501 14.5492C8.07834 14.9892 7.99167 15.6172 7.55168 15.9505C7.10768 16.2838 6.48235 16.1958 6.15035 15.7572C5.17968 14.4758 4.66635 12.9465 4.66635 11.3332C4.66635 7.28919 7.95701 3.99987 11.9997 3.99987ZM15.333 11.3332C15.333 13.1741 13.8406 14.6665 11.9997 14.6665C10.1587 14.6665 8.66634 13.1741 8.66634 11.3332C8.66634 9.49224 10.1587 7.99986 11.9997 7.99986C13.8406 7.99986 15.333 9.49224 15.333 11.3332ZM10.901 15.9998H13.097C13.9503 15.9998 14.765 16.3638 15.333 16.9998C15.9023 17.6358 16.173 18.4852 16.0783 19.3318L15.7903 21.9238C15.661 23.1078 14.665 23.9998 13.4717 23.9998H10.5263C9.33433 23.9998 8.33833 23.1065 8.20767 21.9225L7.91967 19.3305C7.825 18.4852 8.09567 17.6345 8.665 16.9998C9.233 16.3638 10.0477 15.9998 10.901 15.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PreviewIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M1.94895 14.0598C3.41162 16.2785 6.66228 19.9998 11.9996 19.9998C17.3369 19.9998 20.5876 16.2772 22.0502 14.0585C22.8769 12.8065 22.8769 11.1892 22.0502 9.93851C20.5876 7.71985 17.3369 3.99853 11.9996 3.99853C6.66228 3.99853 3.41162 7.71985 1.94895 9.93851C1.12229 11.1905 1.12229 12.8078 1.94895 14.0598ZM3.61828 11.0398C4.85961 9.15851 7.59827 5.99985 11.9996 5.99985C16.4009 5.99985 19.1396 9.15851 20.3809 11.0412C20.7596 11.6145 20.7596 12.3852 20.3809 12.9598C19.1396 14.8412 16.4009 17.9998 11.9996 17.9998C7.59827 17.9998 4.85961 14.8412 3.61828 12.9585C3.23962 12.3852 3.23962 11.6145 3.61828 11.0398ZM16.3329 11.9999C16.3329 14.3931 14.3928 16.3332 11.9996 16.3332C9.60638 16.3332 7.66628 14.3931 7.66628 11.9999C7.66628 9.60663 9.60638 7.66653 11.9996 7.66653C14.3928 7.66653 16.3329 9.60663 16.3329 11.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PrivateChatIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.9998 19.6666V21.6666C11.9998 22.0092 12.0491 22.3399 12.1251 22.6599C12.1076 22.6605 12.0901 22.6617 12.0725 22.663C12.0485 22.6648 12.0244 22.6666 11.9998 22.6666C11.3385 22.6666 10.6745 22.6052 10.0291 22.4826C9.04115 22.2946 8.08782 21.9692 7.18782 21.5119C5.98115 22.1306 4.12782 22.6732 2.60115 22.6732C2.49315 22.6732 2.38515 22.6706 2.27982 22.6652C1.88648 22.6439 1.54115 22.3919 1.39982 22.0239C1.25848 21.6559 1.34782 21.2386 1.62648 20.9599C2.62248 19.9639 3.06648 17.8892 2.74915 17.2946C1.82782 15.7012 1.33315 13.8612 1.33315 11.9999C1.33315 6.11855 6.11848 1.33322 11.9998 1.33322C17.8811 1.33322 22.6665 6.11855 22.6665 11.9999C22.6665 12.3092 22.6451 12.6119 22.6198 12.9146C21.7078 11.9492 20.4291 11.3332 18.9998 11.3332C16.3465 11.3332 14.1691 13.4106 14.0091 16.0239C12.7958 16.8012 11.9998 18.1612 11.9998 19.6666ZM21.9998 16.3332V17.3666C23.1278 17.5306 23.9998 18.4946 23.9998 19.6666V21.6666C23.9998 22.9532 22.9531 23.9999 21.6665 23.9999H16.3331C15.0465 23.9999 13.9998 22.9532 13.9998 21.6666V19.6666C13.9998 18.4932 14.8718 17.5306 15.9998 17.3666V16.3332C15.9998 14.6786 17.3451 13.3332 18.9998 13.3332C20.6545 13.3332 21.9998 14.6786 21.9998 16.3332ZM19.9998 16.3332C19.9998 15.7812 19.5518 15.3332 18.9998 15.3332C18.4478 15.3332 17.9998 15.7812 17.9998 16.3332V17.3332H19.9998V16.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PrivateUserSessionsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M3.6529 5.39053C5.64756 2.85587 8.67022 1.33321 11.9995 1.33321C17.8809 1.33321 22.6662 6.1172 22.6662 11.9985C22.6662 17.8798 17.8809 22.6652 11.9995 22.6652C6.11822 22.6652 1.3329 17.8798 1.3329 11.9985C1.3329 11.4465 1.7809 10.9985 2.3329 10.9985C2.8849 10.9985 3.3329 11.4465 3.3329 11.9985C3.3329 14.6668 4.54515 17.0575 6.44781 18.6486C7.53031 16.6549 9.65117 15.3332 11.9995 15.3332C14.3438 15.3332 16.4602 16.6498 17.5485 18.6509C19.4527 17.0598 20.6662 14.6682 20.6662 11.9985C20.6662 7.21986 16.7782 3.33187 11.9995 3.33187C9.10221 3.33187 6.47689 4.73853 4.87289 7.07053L6.83955 6.79853C7.38222 6.73053 7.89155 7.10653 7.96755 7.65319C8.04222 8.19986 7.66089 8.70519 7.11289 8.78119L3.18756 9.32385C3.1409 9.33052 3.09423 9.33319 3.0489 9.33319C2.5569 9.33319 2.1289 8.97052 2.05957 8.47052L1.51557 4.54387C1.43957 3.99587 1.82223 3.49187 2.3689 3.41587C2.91556 3.33987 3.4209 3.72254 3.4969 4.2692L3.6529 5.39053ZM11.9995 13.9998C14.0246 13.9998 15.6662 12.3582 15.6662 10.3332C15.6662 8.30815 14.0246 6.66653 11.9995 6.66653C9.9745 6.66653 8.33289 8.30815 8.33289 10.3332C8.33289 12.3582 9.9745 13.9998 11.9995 13.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ProjectIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.3333 6.3333H12.628L10.8947 4.2933C10.1973 3.47197 9.17733 2.99997 8.1 2.99997H5.66667C3.644 2.99997 2 4.64397 2 6.66664V17.3333C2 19.356 3.644 21 5.66667 21H18.3333C20.356 21 22 19.356 22 17.3333V9.99997C22 7.9773 20.356 6.3333 18.3333 6.3333Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ProjectOpenIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.10028 2.66689C9.17871 2.66696 10.1956 3.13878 10.8942 3.95985L12.6276 5.99989H18.3337C20.3562 6.00007 21.9997 7.64433 21.9997 9.66689V10.2831C22.4271 10.4838 22.8062 10.7858 23.1052 11.1757C23.6771 11.9223 23.867 12.8719 23.6218 13.7811L22.4977 17.955C22.067 19.5522 20.6104 20.6679 18.9557 20.6679H6.94305C6.85022 20.6679 6.75786 20.6624 6.66669 20.6542V20.6669H5.66669C3.64402 20.6669 1.99969 19.0226 1.99969 16.9999V6.3329C1.99993 4.31043 3.64416 2.66689 5.66669 2.66689H8.10028ZM5.66766 4.66689C4.7493 4.66708 4.00188 5.41455 4.00165 6.3329V16.9999C4.00165 17.0188 4.00395 17.0377 4.00458 17.0565C4.01648 16.9998 4.03035 16.9431 4.04559 16.8866L5.30145 12.2196C5.65492 10.9132 6.84571 9.99989 8.19891 9.99989H19.9997V9.66689C19.9997 8.74833 19.2522 8.00007 18.3337 7.99989H12.1657C11.8724 7.99989 11.5933 7.87038 11.404 7.64638L9.37177 5.2538C9.05443 4.88047 8.59192 4.66689 8.10126 4.66689H5.66766Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const PropertiesIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M4.99992 16.6665H10.7466C11.2986 16.6665 11.7466 17.1145 11.7466 17.6665C11.7466 18.2185 11.2986 18.6665 10.7466 18.6665H4.99992C2.97726 18.6665 1.33327 17.0225 1.33327 14.9998V6.3332C1.33327 4.31053 2.97726 2.66654 4.99992 2.66654H18.9999C21.0226 2.66654 22.6665 4.31053 22.6665 6.3332V11.9625C22.6665 12.5145 22.2185 12.9625 21.6665 12.9625C21.1146 12.9625 20.6666 12.5145 20.6666 11.9625V6.3332C20.6666 5.41453 19.9186 4.66653 18.9999 4.66653H4.99992C4.08126 4.66653 3.33326 5.41453 3.33326 6.3332V14.9998C3.33326 15.9185 4.08126 16.6665 4.99992 16.6665ZM21.4959 17.3332H22.6639C23.2159 17.3332 23.6639 17.7812 23.6639 18.3332C23.6639 18.8852 23.2159 19.3332 22.6639 19.3332H21.4932C21.4346 19.5172 21.3626 19.6932 21.2746 19.8625L22.1025 20.6905C22.4932 21.0812 22.4932 21.7145 22.1025 22.1052C21.9079 22.3012 21.6519 22.3985 21.3959 22.3985C21.1399 22.3985 20.8839 22.2998 20.6892 22.1052L19.8612 21.2772C19.6932 21.3652 19.5159 21.4372 19.3319 21.4958V22.6665C19.3319 23.2185 18.8839 23.6665 18.3319 23.6665C17.7799 23.6665 17.3319 23.2185 17.3319 22.6665V21.4958C17.1479 21.4372 16.9719 21.3652 16.8026 21.2772L15.9746 22.1052C15.7799 22.3012 15.5239 22.3985 15.2679 22.3985C15.0119 22.3985 14.7559 22.2998 14.5612 22.1052C14.1706 21.7145 14.1706 21.0812 14.5612 20.6905L15.3892 19.8625C15.3012 19.6945 15.2292 19.5172 15.1706 19.3332H13.9999C13.4479 19.3332 12.9999 18.8852 12.9999 18.3332C12.9999 17.7812 13.4479 17.3332 13.9999 17.3332H15.1706C15.2292 17.1492 15.3012 16.9732 15.3892 16.8038L14.5612 15.9758C14.1706 15.5852 14.1706 14.9518 14.5612 14.5612C14.9519 14.1705 15.5852 14.1705 15.9759 14.5612L16.8039 15.3892C16.9719 15.3012 17.1492 15.2292 17.3332 15.1705V13.9998C17.3332 13.4478 17.7812 12.9998 18.3332 12.9998C18.8852 12.9998 19.3332 13.4478 19.3332 13.9998V15.1705C19.5172 15.2292 19.6932 15.3012 19.8626 15.3892L20.6906 14.5612C21.0812 14.1705 21.7146 14.1705 22.1052 14.5612C22.4959 14.9518 22.4959 15.5852 22.1052 15.9758L21.2772 16.8038C21.3652 16.9718 21.4372 17.1492 21.4959 17.3332ZM18.3332 19.6665C19.0679 19.6665 19.6666 19.0678 19.6666 18.3332C19.6666 17.5985 19.0679 16.9998 18.3332 16.9998C17.5986 16.9998 16.9999 17.5985 16.9999 18.3332C16.9999 19.0678 17.5986 19.6665 18.3332 19.6665Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const QuestionMarkIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.9998 1.33321C6.11853 1.33321 1.33321 6.11853 1.33321 11.9998C1.33321 17.8812 6.11853 22.6665 11.9998 22.6665C17.8812 22.6665 22.6665 17.8812 22.6665 11.9998C22.6665 6.11853 17.8812 1.33321 11.9998 1.33321ZM11.7212 18.0892C10.9852 18.0892 10.3879 17.4905 10.3879 16.7558C10.3879 16.0212 10.9852 15.4225 11.7212 15.4225C12.4572 15.4225 13.0545 16.0212 13.0545 16.7558C13.0545 17.4905 12.4572 18.0892 11.7212 18.0892ZM13.7598 12.2865C13.1505 12.7118 12.8532 12.9412 12.7532 13.5065C12.6692 13.9918 12.2465 14.3332 11.7705 14.3332C11.7132 14.3332 11.6545 14.3292 11.5958 14.3185C11.0518 14.2225 10.6878 13.7052 10.7852 13.1598C11.0332 11.7505 11.9478 11.1119 12.6172 10.6452C13.3198 10.1545 13.5638 9.94919 13.5638 9.24652C13.5638 8.13052 12.6332 7.83586 12.1412 7.83586C11.5892 7.83586 10.5985 8.00919 10.1719 9.16919C9.98118 9.68785 9.41052 9.95319 8.88785 9.76385C8.36919 9.57319 8.10386 8.99852 8.29452 8.48119C8.90252 6.82519 10.3399 5.83586 12.1412 5.83586C13.7998 5.83586 15.5638 7.03053 15.5638 9.24652C15.5638 11.0292 14.5225 11.7558 13.7598 12.2865Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ReactIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.9998 1.33321C6.11847 1.33321 1.33315 6.11853 1.33315 11.9998C1.33315 17.8812 6.11847 22.6665 11.9998 22.6665C17.8811 22.6665 22.6664 17.8812 22.6664 11.9998C22.6664 6.11853 17.8811 1.33321 11.9998 1.33321ZM6.66647 10.6665C6.66647 9.93052 7.2638 9.33319 7.9998 9.33319C8.73579 9.33319 9.33313 9.93052 9.33313 10.6665C9.33313 11.4025 8.73579 11.9998 7.9998 11.9998C7.2638 11.9998 6.66647 11.4025 6.66647 10.6665ZM11.9998 18.6665C9.95846 18.6665 8.18779 17.1465 7.88113 15.1318C7.8358 14.8372 7.93313 14.5398 8.13846 14.3345C8.33979 14.1345 8.61579 14.0452 8.90113 14.0878C10.9358 14.4078 13.0424 14.4078 15.0851 14.0892C15.3744 14.0465 15.6558 14.1372 15.8624 14.3412C16.0664 14.5452 16.1624 14.8385 16.1184 15.1265C15.8131 17.1438 14.0424 18.6652 11.9998 18.6652V18.6665ZM15.9998 11.9998C15.2638 11.9998 14.6664 11.4025 14.6664 10.6665C14.6664 9.93052 15.2638 9.33319 15.9998 9.33319C16.7358 9.33319 17.3331 9.93052 17.3331 10.6665C17.3331 11.4025 16.7358 11.9998 15.9998 11.9998Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const RecordIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M1.33308 11.9998C1.33308 6.11853 6.11841 1.33321 11.9997 1.33321C17.881 1.33321 22.6664 6.11853 22.6664 11.9998C22.6664 17.8812 17.881 22.6665 11.9997 22.6665C6.11841 22.6665 1.33308 17.8812 1.33308 11.9998ZM3.33308 11.9998C3.33308 16.7785 7.22107 20.6665 11.9997 20.6665C16.7784 20.6665 20.6664 16.7785 20.6664 11.9998C20.6664 7.22119 16.7784 3.3332 11.9997 3.3332C7.22107 3.3332 3.33308 7.22119 3.33308 11.9998ZM18.6664 11.9998C18.6664 15.6817 15.6816 18.6665 11.9997 18.6665C8.31783 18.6665 5.33307 15.6817 5.33307 11.9998C5.33307 8.31796 8.31783 5.3332 11.9997 5.3332C15.6816 5.3332 18.6664 8.31796 18.6664 11.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const RecordGroupIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.6361 12.1678C15.6787 12.1678 13.2724 14.6564 13.2724 17.715C13.2724 20.7735 15.6787 23.2621 18.6361 23.2621C21.5935 23.2621 23.9998 20.7735 23.9998 17.715C23.9998 14.6564 21.5935 12.1678 18.6361 12.1678ZM18.6361 22.2221C16.2331 22.2221 14.2781 20.2001 14.2781 17.715C14.2781 15.2298 16.2331 13.2079 18.6361 13.2079C21.039 13.2079 22.9941 15.2298 22.9941 17.715C22.9941 20.2001 21.039 22.2221 18.6361 22.2221Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M18.6361 20.8319C20.3006 20.8319 21.6499 19.4364 21.6499 17.715C21.6499 15.9936 20.3006 14.5981 18.6361 14.5981C16.9716 14.5981 15.6223 15.9936 15.6223 17.715C15.6223 19.4364 16.9716 20.8319 18.6361 20.8319Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M15.2836 1.74994C14.6131 1.74994 13.9896 1.93716 13.4331 2.23809C14.1666 3.27125 14.6131 4.53323 14.6131 5.91032C14.6131 7.2874 14.1666 8.54938 13.4331 9.58254C13.9896 9.88347 14.6131 10.0707 15.2836 10.0707C17.5015 10.0707 19.3064 8.20407 19.3064 5.91032C19.3064 3.61656 17.5015 1.74994 15.2836 1.74994Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M8.57911 10.0707C10.8008 10.0707 12.6019 8.20803 12.6019 5.91032C12.6019 3.6126 10.8008 1.74994 8.57911 1.74994C6.35739 1.74994 4.55632 3.6126 4.55632 5.91032C4.55632 8.20803 6.35739 10.0707 8.57911 10.0707Z\"\n fill=\"currentColor\"\n />\n <path\n clipRule=\"evenodd\"\n d=\"M12.8788 12.9146C11.5371 11.9582 9.92379 11.4101 8.23389 11.4101C4.84162 11.4101 1.75801 13.6186 0.5603 16.9054C0.321054 17.5607 0.352067 18.2739 0.647432 18.9154C0.951659 19.5752 1.51138 20.0869 2.18481 20.319C4.14161 20.9941 6.17815 21.3378 8.23389 21.3378C9.47978 21.3378 10.7186 21.2115 11.9369 20.9618C11.4888 19.9765 11.2384 18.876 11.2384 17.715C11.2384 15.8964 11.8529 14.2263 12.8788 12.9146Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const RedoIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.9987 13.3332C16.2547 13.3332 16.5107 13.2345 16.7053 13.0398L16.7067 13.0385L21.04 8.70518C21.4306 8.31452 21.4306 7.68119 21.04 7.29052L16.7067 2.9572C16.316 2.56653 15.6827 2.56653 15.292 2.9572C14.9013 3.34786 14.9013 3.98119 15.292 4.37186L17.9187 6.99852H14.6667C10.9907 6.99852 8.00001 9.98918 8.00001 13.6652C8.00001 14.2172 8.44801 14.6652 9.00001 14.6652C9.55201 14.6652 10 14.2172 10 13.6652C10 11.0918 12.0933 8.99852 14.6667 8.99852H17.9187L15.292 11.6252C14.9013 12.0158 14.9013 12.6492 15.292 13.0398C15.4867 13.2358 15.7427 13.3332 15.9987 13.3332ZM4.66535 14.3332C4.66535 13.7812 4.21735 13.3332 3.66535 13.3332C3.11335 13.3332 2.66536 13.7812 2.66536 14.3332V17.6665C2.66536 19.6892 4.30935 21.3332 6.33201 21.3332H20.332C20.884 21.3332 21.332 20.8852 21.332 20.3332C21.332 19.7812 20.884 19.3332 20.332 19.3332H6.33201C5.41335 19.3332 4.66535 18.5852 4.66535 17.6665V14.3332Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const RefreshIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M13.3739 0.292771C13.7644 0.683295 13.7644 1.31646 13.3739 1.70698L12.4057 2.6752C17.3725 2.88752 21.3334 6.98082 21.3334 11.9999C21.3334 14.848 20.0553 17.4009 18.0454 19.1109C17.6248 19.4687 16.9937 19.4179 16.6358 18.9972C16.2779 18.5766 16.3288 17.9454 16.7495 17.5876C18.3316 16.2415 19.3334 14.2371 19.3334 11.9999C19.3334 7.9495 16.0505 4.66654 12.0001 4.66654C11.917 4.66654 11.8342 4.66793 11.7518 4.67067L13.3739 6.29277C13.7644 6.6833 13.7644 7.31646 13.3739 7.70698C12.9834 8.09751 12.3502 8.09751 11.9597 7.70698L8.95969 4.70698C8.56916 4.31646 8.56916 3.6833 8.95969 3.29277L11.9597 0.292771C12.3502 -0.0977532 12.9834 -0.0977532 13.3739 0.292771ZM7.25079 6.41219C7.67143 6.05431 7.72232 5.4232 7.36444 5.00255C7.00656 4.58191 6.37545 4.53102 5.9548 4.8889C3.94498 6.59882 2.66679 9.15176 2.66679 11.9999C2.66679 17.0189 6.62779 21.1122 11.5946 21.3246L10.6263 22.2928C10.2358 22.6833 10.2358 23.3165 10.6263 23.707C11.0169 24.0975 11.65 24.0975 12.0406 23.707L15.0406 20.707C15.4311 20.3165 15.4311 19.6833 15.0406 19.2928L12.0406 16.2928C11.65 15.9022 11.0169 15.9022 10.6263 16.2928C10.2358 16.6833 10.2358 17.3165 10.6263 17.707L12.2484 19.3291C12.166 19.3318 12.0832 19.3332 12.0001 19.3332C7.94975 19.3332 4.66679 16.0503 4.66679 11.9999C4.66679 9.76267 5.66861 7.75827 7.25079 6.41219Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ReplaceIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M22.9836 5.24121C22.5662 4.88121 21.9342 4.93054 21.5729 5.34921L21.3289 5.63454C21.3102 3.26121 19.3769 1.33455 16.9996 1.33455H15.6663C15.1143 1.33455 14.6663 1.78255 14.6663 2.33455C14.6663 2.88655 15.1143 3.33455 15.6663 3.33455H16.9996C18.2716 3.33455 19.3063 4.35988 19.3289 5.62654L19.0929 5.35054C18.7329 4.93188 18.1023 4.88521 17.6823 5.24254C17.2636 5.60254 17.2143 6.23321 17.5743 6.65321L19.5743 8.98653C19.7649 9.20787 20.0422 9.33587 20.3329 9.33587C20.6236 9.33587 20.9022 9.20787 21.0916 8.98653L23.0916 6.65321C23.4516 6.23454 23.4022 5.60121 22.9836 5.24121ZM8.66628 15.3332C8.66628 11.6572 11.6569 8.66652 15.3329 8.66652C19.0089 8.66652 21.9996 11.6572 21.9996 15.3332C21.9996 19.0092 19.0089 21.9998 15.3329 21.9998C11.6569 21.9998 8.66628 19.0092 8.66628 15.3332ZM6.99963 20.6665H8.33296L8.33029 20.6652C8.88229 20.6652 9.33029 21.1132 9.33029 21.6652C9.33029 22.2172 8.88229 22.6652 8.33029 22.6652H6.99696C4.61963 22.6652 2.6863 20.7385 2.66764 18.3652L2.42364 18.6505C2.0623 19.0705 1.43164 19.1198 1.01297 18.7585C0.594308 18.3985 0.544975 17.7665 0.904974 17.3478L2.90497 15.0145C3.28497 14.5719 4.04363 14.5719 4.42363 15.0145L6.42363 17.3478C6.78363 17.7678 6.73429 18.3985 6.31563 18.7585C6.12763 18.9198 5.89563 18.9998 5.66496 18.9998C5.38363 18.9998 5.10363 18.8812 4.9063 18.6505L4.6703 18.3745C4.69296 19.6412 5.72763 20.6665 6.99963 20.6665ZM6.46095 14.8878C6.33028 14.8878 6.19828 14.8625 6.07162 14.8092C3.59696 13.7625 1.99963 11.3519 1.99963 8.66652C1.99963 4.99053 4.99029 1.99987 8.66628 1.99987C11.3503 1.99987 13.7623 3.59854 14.8076 6.07053C15.0249 6.57853 14.7863 7.16519 14.2769 7.38119C13.7743 7.59586 13.1836 7.35853 12.9676 6.85053C12.2343 5.11853 10.5463 3.99987 8.66628 3.99987C6.09295 3.99987 3.99962 6.0932 3.99962 8.66652C3.99962 10.5465 5.11829 12.2345 6.85028 12.9665C7.35828 13.1812 7.59695 13.7678 7.38095 14.2772C7.21961 14.6585 6.85028 14.8878 6.46095 14.8878Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ReplyIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M16.3329 14.6665C14.6795 14.6665 13.3329 16.0118 13.3329 17.6665H13.3342C13.3342 18.0185 13.4062 18.3518 13.5182 18.6665H8.35022L3.6249 22.4465C3.44357 22.5918 3.22223 22.6665 2.99957 22.6665C2.8529 22.6665 2.7049 22.6345 2.56623 22.5678C2.21957 22.4012 1.99957 22.0505 1.99957 21.6665V6.3332C1.99957 4.31053 3.64356 2.66654 5.66623 2.66654H18.3329C20.3555 2.66654 21.9995 4.31053 21.9995 6.3332V12.4238L21.7875 12.2118C21.2209 11.6452 20.4675 11.3332 19.6662 11.3332C18.8649 11.3332 18.1115 11.6452 17.5449 12.2118C16.9782 12.7785 16.6662 13.5318 16.6662 14.3332C16.6662 14.4452 16.6729 14.5558 16.6849 14.6665H16.3329ZM18.9582 13.6265C19.3489 13.2358 19.9822 13.2358 20.3729 13.6265L20.3715 13.6278L23.7048 16.9612C24.0955 17.3518 24.0955 17.9852 23.7048 18.3758L20.3715 21.7092C20.1769 21.9052 19.9209 22.0025 19.6649 22.0025C19.4089 22.0025 19.1529 21.9038 18.9582 21.7092C18.5675 21.3185 18.5675 20.6852 18.9582 20.2945L20.5849 18.6678H16.3329C15.7809 18.6678 15.3329 18.2198 15.3329 17.6678C15.3329 17.1158 15.7809 16.6678 16.3329 16.6678H20.5849L18.9582 15.0412C18.5675 14.6505 18.5675 14.0172 18.9582 13.6265Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const RequestVideoIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M10.4282 1C8.04152 1 6.10677 2.93477 6.10677 5.32143C6.10677 7.70811 8.04152 9.64286 10.4282 9.64286C12.8149 9.64286 14.7496 7.70811 14.7496 5.32143C14.7496 2.93477 12.8149 1 10.4282 1ZM11.977 11.3383C11.4727 11.2567 10.9553 11.2143 10.4282 11.2143C5.24728 11.2143 0.999634 15.3112 0.999634 20.4219V20.9997L1.55518 21.1349C4.78947 21.9221 8.02549 22.2786 11.2614 22.2048C10.0135 20.8706 9.24963 19.0781 9.24963 17.1072C9.24963 14.7832 10.3117 12.7072 11.977 11.3383ZM17.1068 23C20.3613 23 22.9996 20.3617 22.9996 17.1072C22.9996 13.8526 20.3613 11.2143 17.1068 11.2143C13.8523 11.2143 11.2139 13.8526 11.2139 17.1072C11.2139 20.3617 13.8523 23 17.1068 23ZM17.8925 16.6469L19.4639 18.2183L20.5751 17.1072L17.1068 13.6389L13.6385 17.1072L14.7496 18.2183L16.3211 16.6469V20.25H17.8925V16.6469Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const RevertToOriginalIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.64905 5.62299C7.27777 4.00086 9.52105 2.99994 12 2.99994C16.9706 2.99994 21 7.02938 21 11.9999C21 16.9705 16.9706 20.9999 12 20.9999C7.02944 20.9999 3 16.9705 3 11.9999V10.9999H1V11.9999C1 18.075 5.92487 22.9999 12 22.9999C18.0751 22.9999 23 18.075 23 11.9999C23 5.92481 18.0751 0.999939 12 0.999939C8.96073 0.999939 6.20777 2.23385 4.21795 4.22564L4.20135 4.24225L4 4.46368V0.999939H2V7.99994H9V5.99994H5.30628L5.64905 5.62299ZM13 5.99994V11.5857L17.4142 15.9999L16 17.4141L11 12.4141V5.99994H13Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const RewindIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.1796 5.02255C22.6636 4.71988 22.0489 4.71188 21.5262 4.99988L13.3329 9.53988V6.45855C13.3329 5.86255 13.0262 5.32521 12.5129 5.02255C11.9982 4.71988 11.3809 4.71055 10.8596 5.00121L0.859573 10.5412C0.330239 10.8345 -0.000427246 11.3932 -0.000427246 11.9999C-0.000427246 12.6065 0.328906 13.1652 0.859573 13.4585L10.8596 18.9985C11.1129 19.1399 11.3902 19.2105 11.6662 19.2105C11.9582 19.2105 12.2489 19.1319 12.5129 18.9772C13.0262 18.6745 13.3329 18.1372 13.3329 17.5412V14.4599L21.5262 18.9985C21.7796 19.1399 22.0569 19.2105 22.3329 19.2105C22.6249 19.2105 22.9156 19.1319 23.1796 18.9772C23.6929 18.6745 23.9996 18.1372 23.9996 17.5412V6.45855C23.9996 5.86255 23.6929 5.32521 23.1796 5.02255Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SaveIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21.3155 6.5692L17.4301 2.68387C16.9888 2.24254 16.4035 1.99987 15.7808 1.99987H5.87949C3.74083 1.99987 1.9995 3.7412 1.9995 5.87986V18.1198C1.9995 20.2585 3.74083 21.9998 5.87949 21.9998H18.1195C20.2581 21.9998 21.9995 20.2585 21.9995 18.1198V8.21852C21.9995 7.59586 21.7568 7.00919 21.3155 6.5692ZM6.66616 3.99987H14.6661V6.66653C14.6661 7.39986 14.0661 7.99986 13.3328 7.99986H7.99949C7.26616 7.99986 6.66616 7.39986 6.66616 6.66653V3.99987ZM17.3328 19.9998H6.66616V14.6665C6.66616 13.9332 7.26616 13.3332 7.99949 13.3332H15.9995C16.7328 13.3332 17.3328 13.9332 17.3328 14.6665V19.9998Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SaveAsCopyIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M2.7461 16.1438C2.81944 16.6398 3.24743 16.9972 3.7341 16.9972V16.9958C3.78343 16.9958 3.83277 16.9932 3.8821 16.9852C4.42743 16.9052 4.8061 16.3958 4.72476 15.8492L3.35277 6.61719C3.2861 6.17719 3.39543 5.73719 3.66077 5.37986C3.92477 5.02253 4.3141 4.7892 4.7541 4.72386L13.9861 3.35053C14.7527 3.23453 15.4874 3.6572 15.7767 4.3732C15.9847 4.88653 16.5701 5.13453 17.0781 4.92653C17.5914 4.71986 17.8381 4.1372 17.6314 3.6252C16.9954 2.0492 15.3714 1.12387 13.6927 1.3732L4.46077 2.7452C3.49143 2.8892 2.63677 3.40253 2.0541 4.1892C1.47011 4.97586 1.22877 5.94253 1.37277 6.91186L2.7461 16.1438ZM9.6661 5.99986H18.9994C21.0244 5.99986 22.6661 7.64148 22.6661 9.66652V18.9998C22.6661 21.0249 21.0244 22.6665 18.9994 22.6665H9.6661C7.64106 22.6665 5.99944 21.0249 5.99944 18.9998V9.66652C5.99944 7.64148 7.64106 5.99986 9.6661 5.99986Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ScissorsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.03042 13.6605C7.73535 14.0006 7.25074 14.0917 6.8028 14.0461C6.54217 14.0195 6.27019 14.0236 5.96972 14.0236C3.76414 14.0236 2.01959 16.1038 1.97773 18.0156C1.93586 19.9273 3.23259 22.2035 5.96972 22.0076C8.70686 21.8116 9.96172 20.2211 9.96172 18.0156C9.96172 17.6742 9.91811 17.3462 9.83672 17.0336C9.73128 16.6286 9.79891 16.1824 10.0948 15.8865L11.2506 14.7307C11.6411 14.3401 12.2743 14.3401 12.6648 14.7307L13.8206 15.8865C14.1165 16.1824 14.1841 16.6286 14.0787 17.0336C13.9973 17.3462 13.9537 17.6742 13.9537 18.0156C13.9537 20.2211 15.1616 22.1277 17.9457 22.0076C20.1138 22.0076 21.8769 20.2813 21.9362 18.1275C21.9382 18.0533 21.9472 17.9794 21.9583 17.906C22.2072 16.2536 19.8847 13.8188 17.9457 14.0236C17.606 14.0236 17.2796 14.0667 16.9684 14.1474C16.561 14.2529 16.1121 14.1834 15.8164 13.8839L15.5341 13.5979C15.1988 13.2583 15.1485 12.7314 15.4153 12.3357C16.7051 10.4232 20.3129 5.04458 20.9214 3.82741C21.5171 2.63608 20.8216 2.27428 20.5213 2.17749C20.4397 2.15115 20.3538 2.15005 20.2692 2.16438C19.9626 2.21628 19.1552 2.39484 18.4294 2.91739C17.5596 3.54369 11.1772 10.0335 8.03042 13.6605ZM7.96572 18.0156C7.96572 19.1134 7.62753 20.2005 5.93739 20.2918C4.24725 20.3831 4.00273 19.3194 3.97372 18.0156C3.94472 16.7117 4.78907 16.3065 5.90361 16.2727C7.01816 16.2389 7.96572 16.9178 7.96572 18.0156ZM19.5954 17.9155C19.5954 19.0133 18.9851 19.6891 17.8773 19.6891C16.7695 19.6891 16.2146 19.1796 16.2146 18.0818C16.2146 16.984 16.7141 16.3637 17.8219 16.3637C18.9297 16.3637 19.5954 16.8177 19.5954 17.9155ZM3.59453 4.26526C3.95765 4.87977 7.97772 9.95022 8.7319 10.3133C9.48608 10.6765 11.7442 7.95976 11.3532 7.17765C10.9621 6.39553 4.78187 2.23266 3.97372 2.04758C3.45763 1.92939 3.19544 2.20587 3.07334 2.42113C2.99439 2.56032 2.99979 2.7259 3.0443 2.87961C3.14116 3.21412 3.3405 3.83537 3.59453 4.26526Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ScreenshareOffIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.9999 2.39981H16.7999C17.6895 2.39981 18.5234 2.64278 19.2378 3.06489L19.5514 2.75128C20.02 2.28265 20.7798 2.28265 21.2485 2.75128C21.7171 3.21991 21.7171 3.97971 21.2485 4.44834L20.1937 5.50314L4.44846 21.2483C3.97983 21.717 3.22003 21.717 2.7514 21.2483C2.28278 20.7797 2.28278 20.0199 2.7514 19.5513L5.73159 16.5711C3.79875 15.9508 2.39993 14.1388 2.39993 11.9998C2.39993 11.3371 2.93719 10.7998 3.59993 10.7998C4.26267 10.7998 4.79993 11.3371 4.79993 11.9998C4.79993 13.3255 5.87427 14.3998 7.19993 14.3998H7.90288L17.4216 4.88104C17.2234 4.82801 17.015 4.79981 16.7999 4.79981H11.9999C11.3372 4.79981 10.7999 4.26255 10.7999 3.59981C10.7999 2.93707 11.3372 2.39981 11.9999 2.39981ZM21.5999 9.53861C21.5999 8.87587 21.0627 8.33861 20.3999 8.33861C19.7372 8.33861 19.1999 8.87587 19.1999 9.53861V11.9998C19.1999 13.3255 18.1256 14.3998 16.7999 14.3998H14.3387C13.676 14.3998 13.1387 14.9371 13.1387 15.5998C13.1387 16.2626 13.676 16.7998 14.3387 16.7998H16.7999C19.4511 16.7998 21.5999 14.6509 21.5999 11.9998V9.53861ZM3.59993 2.39981C3.43722 2.39981 3.28208 2.43219 3.14059 2.49087C3.0001 2.54899 2.86841 2.63495 2.75395 2.74874L2.74886 2.75383C2.5332 2.97078 2.39993 3.26973 2.39993 3.59981V7.19981C2.39993 7.86255 2.93719 8.39981 3.59993 8.39981C4.26267 8.39981 4.79993 7.86255 4.79993 7.19981V6.49687L8.18141 9.87834C8.65003 10.347 9.40983 10.347 9.87846 9.87834C10.3471 9.40971 10.3471 8.64991 9.87846 8.18128L6.49699 4.79981H7.19993C7.86267 4.79981 8.39993 4.26255 8.39993 3.59981C8.39993 2.93707 7.86267 2.39981 7.19993 2.39981H3.59993ZM13.1999 18.0665C14.5934 18.2215 15.9746 18.6455 17.3366 19.3265C17.9294 19.6229 18.1696 20.3437 17.8732 20.9365C17.5769 21.5292 16.856 21.7695 16.2633 21.4731C14.4046 20.5438 12.596 20.2313 10.8109 20.484C10.1547 20.5768 9.54744 20.1202 9.45457 19.464C9.36171 18.8078 9.81838 18.2005 10.4746 18.1076C10.5831 18.0923 10.6915 18.0786 10.7999 18.0665V17.9386C10.7999 17.2759 11.3372 16.7386 11.9999 16.7386C12.6627 16.7386 13.1999 17.2759 13.1999 17.9386V18.0665Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ScreenshareOnIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M16.7999 4.79981H11.9999C11.3372 4.79981 10.7999 4.26255 10.7999 3.59981C10.7999 2.93707 11.3372 2.39981 11.9999 2.39981H16.7999C19.4511 2.39981 21.5999 4.54867 21.5999 7.19981V11.9998C21.5999 14.651 19.4511 16.7998 16.7999 16.7998H13.1999V18.0668C14.583 18.2207 15.9641 18.6405 17.3364 19.3264C17.9292 19.6227 18.1696 20.3435 17.8733 20.9363C17.577 21.5291 16.8563 21.7695 16.2634 21.4732C13.4008 20.0424 10.5991 20.0424 7.73642 21.4732C7.1436 21.7695 6.42283 21.5291 6.12653 20.9363C5.83024 20.3435 6.07061 19.6227 6.66343 19.3264C8.03573 18.6405 9.41684 18.2207 10.7999 18.0668V16.7998H7.19993C4.54879 16.7998 2.39993 14.651 2.39993 11.9998C2.39993 11.3371 2.93719 10.7998 3.59993 10.7998C4.26267 10.7998 4.79993 11.3371 4.79993 11.9998C4.79993 13.3255 5.87427 14.3998 7.19993 14.3998H11.9999H16.7999C18.1256 14.3998 19.1999 13.3255 19.1999 11.9998V7.19981C19.1999 5.87415 18.1256 4.79981 16.7999 4.79981ZM3.14059 2.49087C3.28208 2.43219 3.43722 2.39981 3.59993 2.39981H7.19993C7.86267 2.39981 8.39993 2.93707 8.39993 3.59981C8.39993 4.26255 7.86267 4.79981 7.19993 4.79981H6.49699L10.4485 8.75128C10.9171 9.21991 10.9171 9.97971 10.4485 10.4483C9.97983 10.917 9.22003 10.917 8.75141 10.4483L4.79993 6.49687V7.19981C4.79993 7.86255 4.26267 8.39981 3.59993 8.39981C2.93719 8.39981 2.39993 7.86255 2.39993 7.19981V3.59981C2.39993 3.26973 2.5332 2.97078 2.74886 2.75383C2.75056 2.75213 2.75225 2.75043 2.75395 2.74874C2.86841 2.63495 3.0001 2.54899 3.14059 2.49087Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SearchIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M2.6666 10.3331C2.6666 14.5598 6.10659 17.9998 10.3332 17.9998C12.0872 17.9998 13.7056 17.4074 14.9991 16.4123L19.6266 21.0398C19.8212 21.2358 20.0772 21.3331 20.3332 21.3331H20.3346C20.5906 21.3331 20.8465 21.2344 21.0412 21.0398C21.4319 20.6491 21.4319 20.0158 21.0412 19.6251L16.4135 14.9974C17.408 13.7043 17.9999 12.0864 17.9999 10.3331C17.9999 6.10647 14.5599 2.66648 10.3332 2.66648C6.10659 2.66648 2.6666 6.10647 2.6666 10.3331ZM4.66659 10.3331C4.66659 7.20913 7.20925 4.66647 10.3332 4.66647C13.4572 4.66647 15.9999 7.20913 15.9999 10.3331C15.9999 13.4571 13.4572 15.9998 10.3332 15.9998C7.20925 15.9998 4.66659 13.4571 4.66659 10.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SendIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21.0892 10.5011L5.8012 2.56248C5.1972 2.25048 4.47187 2.32915 3.94787 2.75981C3.4252 3.19181 3.21187 3.89181 3.40387 4.54114L5.3172 10.9998H11.8478C12.3998 10.9998 12.8478 11.4478 12.8478 11.9998C12.8478 12.5518 12.3998 12.9998 11.8478 12.9998H5.3172L3.40387 19.4584C3.21054 20.1091 3.4252 20.8078 3.94787 21.2398C4.2572 21.4944 4.63853 21.6264 5.02253 21.6264C5.28787 21.6264 5.55453 21.5638 5.8012 21.4358L21.0892 13.4971C21.6505 13.2051 21.9998 12.6318 21.9998 11.9985C21.9998 11.3651 21.6505 10.7931 21.0892 10.5011Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ShapesIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M10.6118 8.16116C10.9118 8.67449 10.9131 9.31449 10.6171 9.83049C10.3198 10.3465 9.76648 10.6665 9.17182 10.6665H2.16115C1.56648 10.6665 1.01315 10.3465 0.715816 9.83049C0.419816 9.31449 0.42115 8.67449 0.72115 8.16116L4.22782 2.14782C4.83315 1.11449 6.50115 1.11449 7.10648 2.14782L10.6118 8.16116ZM17.9998 13.3331C20.9453 13.3331 23.3332 10.9453 23.3332 7.99982C23.3332 5.0543 20.9453 2.66648 17.9998 2.66648C15.0543 2.66648 12.6665 5.0543 12.6665 7.99982C12.6665 10.9453 15.0543 13.3331 17.9998 13.3331ZM12.3332 13.3331H7.66649C6.37782 13.3331 5.33315 14.3778 5.33315 15.6665V20.3331C5.33315 21.6218 6.37782 22.6665 7.66649 22.6665H12.3332C13.6218 22.6665 14.6665 21.6218 14.6665 20.3331V15.6665C14.6665 14.3778 13.6218 13.3331 12.3332 13.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ShareIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.2704 1.41448C15.6384 1.25714 16.0624 1.33314 16.3531 1.60647L22.3531 7.27446C22.5531 7.46246 22.6664 7.72646 22.6664 8.00113C22.6664 8.27579 22.5531 8.53846 22.3531 8.72779L16.3531 14.3944C16.0624 14.6691 15.6384 14.7451 15.2704 14.5864C14.9038 14.4278 14.6664 14.0664 14.6664 13.6678V11.0785C10.9838 11.6504 8.5198 15.1918 8.49313 15.2304C8.30246 15.5078 7.99046 15.6664 7.66646 15.6664C7.5678 15.6664 7.46913 15.6504 7.3718 15.6211C6.95313 15.4918 6.66647 15.1051 6.66647 14.6664C6.66647 11.4865 8.36913 5.60646 14.6664 5.0438V2.33314C14.6664 1.93447 14.9038 1.57314 15.2704 1.41448ZM19.3331 14.3331C19.3331 13.7811 19.7811 13.3331 20.3331 13.3331C20.8851 13.3331 21.3331 13.7811 21.3331 14.3331V17.6664C21.3331 19.6891 19.6891 21.3331 17.6664 21.3331H6.33313C4.31047 21.3331 2.66648 19.6891 2.66648 17.6664V6.33314C2.66648 4.31047 4.31047 2.66648 6.33313 2.66648H9.66646C10.2185 2.66648 10.6665 3.11448 10.6665 3.66648C10.6665 4.21847 10.2185 4.66647 9.66646 4.66647H6.33313C5.41447 4.66647 4.66647 5.41447 4.66647 6.33314V17.6664C4.66647 18.5851 5.41447 19.3331 6.33313 19.3331H17.6664C18.5851 19.3331 19.3331 18.5851 19.3331 17.6664V14.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SharingPermissionsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.6664 4.9998C19.6664 7.02484 18.0248 8.66646 15.9997 8.66646C13.9747 8.66646 12.3331 7.02484 12.3331 4.9998C12.3331 2.97476 13.9747 1.33315 15.9997 1.33315C18.0248 1.33315 19.6664 2.97476 19.6664 4.9998ZM11.3331 8.33313C11.3331 10.3582 9.69144 11.9998 7.6664 11.9998C5.64136 11.9998 3.99974 10.3582 3.99974 8.33313C3.99974 6.30809 5.64136 4.66647 7.6664 4.66647C9.69144 4.66647 11.3331 6.30809 11.3331 8.33313ZM22.9277 14.7971C21.8464 11.9278 19.0624 9.99979 15.9997 9.99979C14.1104 9.99979 12.3304 10.7371 10.9877 11.9731C13.4597 12.9184 15.501 14.8651 16.4664 17.4251C16.6157 17.8198 16.6824 18.2291 16.709 18.6384C18.3237 18.5718 19.921 18.2918 21.4624 17.7771C22.0704 17.5744 22.5744 17.1278 22.8504 16.5518C23.117 15.9918 23.145 15.3678 22.929 14.7971H22.9277ZM7.6664 13.3331C10.7291 13.3331 13.5131 15.2611 14.5944 18.1304C14.8104 18.7011 14.7824 19.3251 14.5157 19.8851C14.2397 20.4611 13.7357 20.9078 13.1277 21.1104C11.3611 21.6998 9.5224 21.9998 7.6664 21.9998C5.81041 21.9998 3.97174 21.6998 2.20508 21.1104C1.59708 20.9078 1.09175 20.4611 0.817085 19.8851C0.550419 19.3251 0.522419 18.7024 0.738419 18.1304C1.81975 15.2611 4.60374 13.3331 7.6664 13.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SimulcastIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M19.5423 1.79047C19.1516 1.39981 18.5183 1.39981 18.1277 1.79047C17.737 2.18114 17.737 2.81447 18.1277 3.20514C19.765 4.84247 20.6663 7.01846 20.6663 9.33312C20.6663 11.6478 19.765 13.8251 18.1277 15.4611C17.737 15.8518 17.737 16.4851 18.1277 16.8758C18.3223 17.0704 18.5783 17.1691 18.8343 17.1691C19.0903 17.1691 19.3463 17.0718 19.541 16.8758C21.5556 14.8611 22.665 12.1824 22.665 9.33312C22.665 6.4838 21.557 3.80514 19.5423 1.79047ZM3.33302 9.33312C3.33302 7.01846 4.23435 4.84113 5.87168 3.20514C6.26234 2.81447 6.26234 2.18114 5.87168 1.79048C5.48101 1.39981 4.84768 1.39981 4.45702 1.79048C2.44235 3.80514 1.33302 6.4838 1.33302 9.33312C1.33302 12.1824 2.44235 14.8611 4.45702 16.8758C4.65168 17.0704 4.90768 17.1691 5.16368 17.1691C5.41968 17.1691 5.67568 17.0718 5.87034 16.8758C6.26101 16.4851 6.26101 15.8518 5.87034 15.4611C4.23302 13.8238 3.33302 11.6478 3.33302 9.33312ZM7.28502 14.0478C7.47968 14.2424 7.73568 14.3411 7.99168 14.3411C8.24768 14.3411 8.50368 14.2438 8.69835 14.0478C9.08901 13.6571 9.08901 13.0238 8.69835 12.6331C6.87835 10.8131 6.87835 7.85313 8.69835 6.03313C9.08901 5.64247 9.08901 5.00914 8.69835 4.61847C8.30768 4.2278 7.67435 4.2278 7.28368 4.61847C4.68369 7.21846 4.68369 11.4478 7.28368 14.0464L7.28502 14.0478ZM16.0063 14.3411C15.7503 14.3411 15.4943 14.2424 15.2996 14.0478L15.2983 14.0491C14.9076 13.6584 14.9076 13.0251 15.2983 12.6344C17.1183 10.8144 17.1183 7.85445 15.2983 6.03446C14.9076 5.64379 14.9076 5.01046 15.2983 4.61979C15.689 4.22913 16.3223 4.22913 16.713 4.61979C19.313 7.21845 19.313 11.4478 16.713 14.0478C16.5183 14.2438 16.2623 14.3411 16.0063 14.3411ZM12.9997 19.3331H15.9997C16.5517 19.3331 16.9997 19.7811 16.9997 20.3331C16.9997 20.8851 16.5517 21.3331 15.9997 21.3331H7.99967C7.44768 21.3331 6.99968 20.8851 6.99968 20.3331C6.99968 19.7811 7.44768 19.3331 7.99967 19.3331H10.9997V11.8011C10.0237 11.4051 9.333 10.4491 9.333 9.33313C9.333 7.86246 10.529 6.66647 11.9997 6.66647C13.4703 6.66647 14.6663 7.86246 14.6663 9.33313C14.6663 10.4491 13.9757 11.4038 12.9997 11.8011V19.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SortIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M1.6663 5.9998C1.6663 5.07933 2.41249 4.33314 3.33296 4.33314H20.6662C21.5867 4.33314 22.3329 5.07933 22.3329 5.9998C22.3329 6.92027 21.5867 7.66646 20.6662 7.66646H3.33296C2.41249 7.66646 1.6663 6.92027 1.6663 5.9998ZM1.6663 11.9998C1.6663 11.0793 2.41249 10.3331 3.33297 10.3331H15.3329C16.2534 10.3331 16.9996 11.0793 16.9996 11.9998C16.9996 12.9203 16.2534 13.6664 15.3329 13.6664H3.33297C2.41249 13.6664 1.6663 12.9203 1.6663 11.9998ZM3.33297 16.3331C2.41249 16.3331 1.6663 17.0793 1.6663 17.9998C1.6663 18.9202 2.41249 19.6664 3.33297 19.6664H9.99962C10.9201 19.6664 11.6663 18.9202 11.6663 17.9998C11.6663 17.0793 10.9201 16.3331 9.99962 16.3331H3.33297Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SparkleIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M17.66 6.34114L22.0333 8.07047C22.4159 8.22113 22.6653 8.59047 22.6653 8.9998C22.6653 9.40913 22.4133 9.77846 22.0319 9.92913L17.6586 11.6585L15.928 16.0331C15.7773 16.4144 15.408 16.6651 14.9986 16.6651C14.5893 16.6651 14.22 16.4144 14.0693 16.0331L12.3386 11.6585L7.96532 9.92913C7.58265 9.77846 7.33199 9.40913 7.33199 8.9998C7.33199 8.59047 7.58399 8.22113 7.96532 8.07047L12.3386 6.34114L14.0693 1.96648C14.372 1.20382 15.6266 1.20382 15.9293 1.96648L17.66 6.34114ZM8.23598 15.7625L10.7 16.7371C11.0826 16.8878 11.332 17.2571 11.332 17.6665C11.332 18.0758 11.08 18.4451 10.6986 18.5958L8.23465 19.5705L7.26132 22.0344C7.11065 22.4158 6.74132 22.6664 6.33199 22.6664C5.92266 22.6664 5.55332 22.4158 5.40266 22.0344L4.42933 19.5705L1.96533 18.5958C1.58267 18.4451 1.332 18.0758 1.332 17.6665C1.332 17.2571 1.584 16.8878 1.96533 16.7371L4.42933 15.7625L5.40266 13.2985C5.70532 12.5358 6.95999 12.5358 7.26265 13.2985L8.23598 15.7625Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SpeedIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M14.9998 0.66655H8.99982C8.44782 0.66655 7.99982 1.11455 7.99982 1.66655C7.99982 2.21855 8.44782 2.66655 8.99982 2.66655H10.9998V4.0532C7.46699 4.43212 4.52402 6.79523 3.29315 9.99988H4.99982C6.65315 9.99988 7.99982 11.3452 7.99982 12.9999C7.99982 13.3572 7.92648 13.6959 7.81048 14.0145C9.39582 14.0919 10.6665 15.3945 10.6665 16.9999C10.6665 18.6545 9.31982 19.9999 7.66648 19.9999H5.48115C7.16515 21.6465 9.46515 22.6665 11.9998 22.6665C17.1452 22.6665 21.3332 18.4799 21.3332 13.3332C21.3332 8.5244 17.6769 4.55368 12.9998 4.05309V2.66655H14.9998C15.5518 2.66655 15.9998 2.21855 15.9998 1.66655C15.9998 1.11455 15.5518 0.66655 14.9998 0.66655ZM15.7065 11.0399L12.7065 14.0399C12.5118 14.2345 12.2558 14.3332 11.9998 14.3332C11.7438 14.3332 11.4878 14.2359 11.2932 14.0399C10.9025 13.6492 10.9025 13.0159 11.2932 12.6252L14.2932 9.62522C14.6838 9.23455 15.3172 9.23455 15.7078 9.62522C16.0985 10.0159 16.0985 10.6492 15.7078 11.0399H15.7065ZM7.66648 17.9999H3.66648C3.11448 17.9999 2.66648 17.5519 2.66648 16.9999C2.66648 16.4479 3.11448 15.9999 3.66648 15.9999H7.66648C8.21848 15.9999 8.66648 16.4479 8.66648 16.9999C8.66648 17.5519 8.21848 17.9999 7.66648 17.9999ZM0.999817 13.9999H4.99982C5.55182 13.9999 5.99982 13.5519 5.99982 12.9999C5.99982 12.4479 5.55182 11.9999 4.99982 11.9999H0.999817C0.447817 11.9999 -0.000183105 12.4479 -0.000183105 12.9999C-0.000183105 13.5519 0.447817 13.9999 0.999817 13.9999ZM20.9598 7.03991C21.1545 7.23591 21.4105 7.33324 21.6665 7.33324C21.9225 7.33324 22.1798 7.23457 22.3745 7.03991C22.7652 6.64924 22.7652 6.01591 22.3745 5.62524L19.7078 2.95857C19.3172 2.56791 18.6838 2.56791 18.2932 2.95857C17.9025 3.34924 17.9025 3.98257 18.2932 4.37324L20.9598 7.03991Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\nimport { styled, keyframes } from 'styled-components';\n\nconst spin = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nconst SpinnerGroup = styled.g`\n animation: ${spin} 1.5s linear infinite;\n transform-origin: 50% 50%;\n`;\n\nexport const SpinnerIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <SpinnerGroup>\n <path\n clipRule=\"evenodd\"\n d=\"M11.9999 5.33314C8.31802 5.33314 5.33326 8.31788 5.33326 11.9998C5.33326 15.6817 8.31802 18.6664 11.9999 18.6664C15.6818 18.6664 18.6666 15.6817 18.6666 11.9998C18.6666 11.0793 19.4127 10.3331 20.3332 10.3331C21.2537 10.3331 21.9999 11.0793 21.9999 11.9998C21.9999 17.5226 17.5227 21.9998 11.9999 21.9998C6.47708 21.9998 1.99994 17.5226 1.99994 11.9998C1.99994 6.47697 6.47708 1.99981 11.9999 1.99981C12.9204 1.99981 13.6666 2.74598 13.6666 3.66647C13.6666 4.58697 12.9204 5.33314 11.9999 5.33314Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </SpinnerGroup>\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const StatsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12.3332 2.66647H11.6665C10.3779 2.66647 9.33319 3.71114 9.33319 4.9998V18.9998C9.33319 20.2884 10.3779 21.3331 11.6665 21.3331H12.3332C13.6218 21.3331 14.6665 20.2884 14.6665 18.9998V4.9998C14.6665 3.71114 13.6218 2.66647 12.3332 2.66647ZM4.99987 9.33312H4.33321C3.04454 9.33312 1.99988 10.3778 1.99988 11.6665V18.9998C1.99988 20.2884 3.04454 21.3331 4.33321 21.3331H4.99987C6.28853 21.3331 7.3332 20.2884 7.3332 18.9998V11.6665C7.3332 10.3778 6.28853 9.33312 4.99987 9.33312ZM18.9998 14.6664H19.6665C20.9552 14.6664 21.9998 15.7111 21.9998 16.9998V18.9998C21.9998 20.2884 20.9552 21.3331 19.6665 21.3331H18.9998C17.7112 21.3331 16.6665 20.2884 16.6665 18.9998V16.9998C16.6665 15.7111 17.7112 14.6664 18.9998 14.6664Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const SwitchAccountsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M13.0758 6.66646C13.0758 8.8756 11.2849 10.6665 9.0758 10.6665C6.86667 10.6665 5.07581 8.8756 5.07581 6.66646C5.07581 4.45733 6.86667 2.66647 9.0758 2.66647C11.2849 2.66647 13.0758 4.45733 13.0758 6.66646ZM21.0398 7.62645L23.7064 10.2931L23.7051 10.2944C24.0958 10.6851 24.0958 11.3184 23.7051 11.7091L21.0384 14.3758C20.8438 14.5718 20.5878 14.6691 20.3318 14.6691C20.0758 14.6691 19.8198 14.5704 19.6251 14.3758C19.2344 13.9851 19.2344 13.3518 19.6251 12.9611L20.5851 12.0011H16.3331C15.7811 12.0011 15.3331 11.5531 15.3331 11.0011C15.3331 10.4491 15.7811 10.0011 16.3331 10.0011H20.5851L19.6251 9.04112C19.2344 8.65045 19.2344 8.01712 19.6251 7.62645C20.0158 7.23579 20.6491 7.23579 21.0398 7.62645ZM12.8785 19.7878C12.3118 19.2211 11.9998 18.4678 11.9998 17.6664C11.9998 16.8651 12.3118 16.1118 12.8785 15.5451L14.4518 13.9718C12.9771 12.7211 11.0918 11.9998 9.07446 11.9998C5.9158 11.9998 3.06781 13.7531 1.64115 16.5758C1.26515 17.3184 1.23181 18.1931 1.54915 18.9771C1.87715 19.7864 2.53714 20.4158 3.35981 20.7011C5.20647 21.3411 7.12913 21.6664 9.07446 21.6664C10.7545 21.6664 12.4118 21.4104 14.0224 20.9318L12.8785 19.7878ZM17.4144 16.6664H21.6664L21.6651 16.6651C22.2171 16.6651 22.6651 17.1131 22.6651 17.6651C22.6651 18.2171 22.2171 18.6651 21.6651 18.6651H17.4131L18.3731 19.6251C18.7638 20.0158 18.7638 20.6491 18.3731 21.0398C18.1784 21.2358 17.9224 21.3331 17.6664 21.3331C17.4104 21.3331 17.1544 21.2344 16.9598 21.0398L14.2931 18.3731C13.9024 17.9824 13.9024 17.3491 14.2931 16.9584L16.9598 14.2918C17.3504 13.9011 17.9838 13.9011 18.3744 14.2918C18.7651 14.6824 18.7651 15.3158 18.3744 15.7064L17.4144 16.6664Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TagIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.3331 1.33315H7.66641C5.64374 1.33315 3.99975 2.97714 3.99975 4.9998V21.6664C3.99975 22.0344 4.20241 22.3744 4.52775 22.5478C4.85308 22.7224 5.24775 22.7038 5.55441 22.4984L11.9997 18.2011L18.445 22.4984C18.6117 22.6091 18.8064 22.6664 18.9997 22.6664C19.1624 22.6664 19.3237 22.6278 19.4717 22.5478C19.797 22.3744 19.9997 22.0344 19.9997 21.6664V4.9998C19.9997 2.97714 18.3557 1.33315 16.3331 1.33315Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TeleprompterIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M20.1186 6.66654H7.8506C7.18032 6.66654 6.63632 6.06921 6.63632 5.33321C6.63632 4.59721 7.18032 3.99988 7.8506 3.99988H20.1186C20.7889 3.99988 21.3329 4.59721 21.3329 5.33321C21.3329 6.06921 20.7889 6.66654 20.1186 6.66654ZM11.214 13.6665H20.1187C20.789 13.6665 21.333 13.0692 21.333 12.3332C21.333 11.5972 20.789 10.9999 20.1187 10.9999H11.214C10.5437 10.9999 9.99967 11.5972 9.99967 12.3332C9.99967 13.0692 10.5437 13.6665 11.214 13.6665ZM7.8506 20.0389H20.1186C20.7889 20.0389 21.3329 19.4416 21.3329 18.7056C21.3329 17.9696 20.7889 17.3723 20.1186 17.3723H7.8506C7.18032 17.3723 6.63632 17.9696 6.63632 18.7056C6.63632 19.4416 7.18032 20.0389 7.8506 20.0389ZM7.99957 11.9998C7.99957 12.3038 7.86157 12.5908 7.62464 12.7803L4.2913 15.4472C3.9905 15.6874 3.5797 15.7343 3.2333 15.5676C2.88624 15.4016 2.66624 15.0507 2.66624 14.6666L2.66624 9.33324C2.66624 8.94911 2.88624 8.59817 3.2333 8.43217C3.5797 8.26551 3.9905 8.31231 4.2913 8.55258L7.62464 11.2192C7.86157 11.4086 7.99957 11.6958 7.99957 11.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TextSizeIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M2.33291 2.66655H15.6662C16.2182 2.66655 16.6662 3.11455 16.6662 3.66655C16.6662 4.21855 16.2182 4.66655 15.6662 4.66655H9.99957V20.3332C9.99957 20.8852 9.55157 21.3332 8.99957 21.3332C8.44757 21.3332 7.99957 20.8852 7.99957 20.3332V4.66655H2.33291C1.78091 4.66655 1.33291 4.21855 1.33291 3.66655C1.33291 3.11455 1.78091 2.66655 2.33291 2.66655ZM13.6662 9.33322H21.6662C22.2182 9.33322 22.6662 9.78122 22.6662 10.3332C22.6662 10.8852 22.2182 11.3332 21.6662 11.3332H18.6662V20.3332C18.6662 20.8852 18.2182 21.3332 17.6662 21.3332C17.1142 21.3332 16.6662 20.8852 16.6662 20.3332V11.3332H13.6662C13.1142 11.3332 12.6662 10.8852 12.6662 10.3332C12.6662 9.78122 13.1142 9.33322 13.6662 9.33322Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ThumbnailIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M18.9996 20.6664H4.99968C2.97702 20.6664 1.33302 19.0224 1.33302 16.9998V6.9998C1.33302 4.97714 2.97702 3.33315 4.99968 3.33315H18.9996C21.0223 3.33315 22.6663 4.97714 22.6663 6.9998V16.9998C22.6663 19.0224 21.0223 20.6664 18.9996 20.6664ZM4.99968 5.33314C4.08102 5.33314 3.33302 6.08114 3.33302 6.9998V16.9998C3.33302 17.8922 4.03889 18.6236 4.92137 18.6646L12.4063 11.1785C13.837 9.74913 16.1623 9.74913 17.5917 11.1785L20.6663 14.2521V6.9998C20.6663 6.08114 19.9183 5.33314 18.9996 5.33314H4.99968ZM9.333 9.66646C9.333 10.5869 8.58681 11.3331 7.66634 11.3331C6.74587 11.3331 5.99968 10.5869 5.99968 9.66646C5.99968 8.74599 6.74587 7.9998 7.66634 7.9998C8.58681 7.9998 9.333 8.74599 9.333 9.66646Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ThumbsDownIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M3.66623 15.9998H5.66622C5.958 15.9998 6.23744 15.9459 6.49512 15.8477C6.60894 16.0437 6.74141 16.23 6.89156 16.4038L12.5769 22.9864C12.7715 23.2118 13.0502 23.3331 13.3342 23.3331C13.4849 23.3331 13.6382 23.2984 13.7809 23.2278C15.3769 22.4291 16.1155 20.5638 15.4995 18.8891L14.4355 15.9998H18.8702C20.0169 15.9998 21.0755 15.4784 21.7755 14.5691C22.4742 13.6598 22.7075 12.5038 22.4142 11.3945H22.4128L20.8249 5.39447C20.3995 3.78781 18.9409 2.66648 17.2795 2.66648H9.66622C8.81466 2.66648 8.02984 2.95826 7.40665 3.44721C6.97904 2.96837 6.35725 2.66647 5.66622 2.66647H3.66623C2.37957 2.66647 1.3329 3.71314 1.3329 4.9998V13.6664C1.3329 14.9531 2.37957 15.9998 3.66623 15.9998ZM3.3329 4.9998C3.3329 4.8158 3.48223 4.66647 3.66623 4.66647H5.66622C5.85022 4.66647 5.99956 4.8158 5.99956 4.9998V13.6664C5.99956 13.8504 5.85022 13.9998 5.66622 13.9998H3.66623C3.48223 13.9998 3.3329 13.8504 3.3329 13.6664V4.9998Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ThumbsUpIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M18.8689 7.9998C20.0156 7.9998 21.0742 8.52113 21.7742 9.43047C22.4729 10.3398 22.7062 11.4958 22.4129 12.6051L20.8249 18.6051C20.3983 20.2118 18.9409 21.3331 17.2796 21.3331H9.66628C8.81472 21.3331 8.02989 21.0413 7.40671 20.5524C6.9791 21.0312 6.35731 21.3331 5.66629 21.3331H3.66629C2.37963 21.3331 1.33296 20.2864 1.33296 18.9998V10.3331C1.33296 9.04646 2.37963 7.9998 3.66629 7.9998H5.66629C5.9579 7.9998 6.23718 8.05356 6.49475 8.1517C6.60835 7.95575 6.74054 7.76953 6.89029 7.5958L12.5756 1.01315C12.8743 0.666488 13.3703 0.567822 13.7796 0.771821C15.3769 1.57049 16.1156 3.43581 15.4983 5.11048L14.4343 7.9998H18.8689ZM5.99962 10.3331C5.99962 10.1491 5.85029 9.99979 5.66629 9.99979H3.66629C3.48229 9.99979 3.33296 10.1491 3.33296 10.3331V18.9998C3.33296 19.1838 3.48229 19.3331 3.66629 19.3331H5.66629C5.85029 19.3331 5.99962 19.1838 5.99962 18.9998L5.99962 17.6664L5.99962 10.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TimelineVerticalIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5 1.33301C5.55202 1.33301 5.99982 1.78102 6 2.33301V8.83691C7.34747 9.26465 8.33301 10.5129 8.33301 12C8.33301 13.4871 7.34747 14.7354 6 15.1631V21.667C5.99982 22.219 5.55202 22.667 5 22.667C4.44798 22.667 4.00018 22.219 4 21.667V15.1631C2.65253 14.7354 1.66699 13.4871 1.66699 12C1.66699 10.5129 2.65253 9.26465 4 8.83691V2.33301C4.00018 1.78102 4.44798 1.33301 5 1.33301ZM19 13.333C20.2887 13.333 21.333 14.3783 21.333 15.667V19C21.333 20.2887 20.2887 21.333 19 21.333H11.667C10.3783 21.333 9.33301 20.2887 9.33301 19V15.667C9.33301 14.3783 10.3783 13.333 11.667 13.333H19ZM5 10.667C4.26493 10.667 3.66699 11.2649 3.66699 12C3.66699 12.7351 4.26493 13.333 5 13.333C5.73507 13.333 6.33301 12.7351 6.33301 12C6.33301 11.2649 5.73507 10.667 5 10.667ZM19 2.66699C20.2887 2.66699 21.333 3.71133 21.333 5V8.33301C21.333 9.62167 20.2887 10.667 19 10.667H11.667C10.3783 10.667 9.33301 9.62167 9.33301 8.33301V5C9.33301 3.71133 10.3783 2.66699 11.667 2.66699H19Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TokenIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.38086 19.0273C7.92121 20.2612 9.87483 21.001 12.002 21.001C14.1268 21.0009 16.0776 20.2618 17.6172 19.0303L19.04 20.4531C17.1326 22.0432 14.6794 23.0009 12.002 23.001C9.3223 23.001 6.86712 22.0416 4.95898 20.4492L6.38086 19.0273ZM20.4502 4.95801C22.0426 6.86614 23.0019 9.32133 23.002 12.001C23.0019 14.6784 22.0442 17.1316 20.4541 19.0391L19.0312 17.6162C20.2627 16.0766 21.0019 14.1258 21.002 12.001C21.0019 9.87386 20.2621 7.92025 19.0283 6.37988L20.4502 4.95801ZM4.9707 6.38379C3.7391 7.92345 3.00196 9.87597 3.00195 12.001C3.002 14.1237 3.73848 16.0734 4.96777 17.6123L3.54492 19.0352C1.95713 17.1284 1.002 14.6763 1.00195 12.001C1.00196 9.32345 1.9587 6.86941 3.54883 4.96191L4.9707 6.38379ZM12 5C15.866 5 19 8.13401 19 12C19 15.866 15.866 19 12 19C8.13401 19 5 15.866 5 12C5 8.13401 8.13401 5 12 5ZM9 12L12 15L15 12L12 9L9 12ZM12.002 1.00098C14.6773 1.00102 17.1293 1.95613 19.0361 3.54395L17.6133 4.9668C16.0744 3.7375 14.1246 3.00102 12.002 3.00098C9.87718 3.00099 7.92531 3.73839 6.38574 4.96973L4.96289 3.54785C6.87038 1.95772 9.32439 1.00099 12.002 1.00098Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TranscriptIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4132 7.98019L14.9401 3.57694C14.5618 3.20457 14.0601 2.99982 13.5264 2.99982H7.14237C5.40865 2.99982 3.99951 4.38694 3.99951 6.09357V17.9061C3.99951 19.6127 5.40865 20.9998 7.14237 20.9998H16.8567C18.5904 20.9998 19.9995 19.6127 19.9995 17.9061V9.37182C19.9995 8.84644 19.7915 8.35144 19.4132 7.98019ZM8.28523 8.62482H10.5709C11.0441 8.62482 11.4281 9.00282 11.4281 9.46857C11.4281 9.93432 11.0441 10.3123 10.5709 10.3123H8.28523C7.81208 10.3123 7.42808 9.93432 7.42808 9.46857C7.42808 9.00282 7.81208 8.62482 8.28523 8.62482ZM15.7138 17.0623H8.28523C7.81208 17.0623 7.42808 16.6843 7.42808 16.2186C7.42808 15.7528 7.81208 15.3748 8.28523 15.3748H15.7138C16.1869 15.3748 16.5709 15.7528 16.5709 16.2186C16.5709 16.6843 16.1869 17.0623 15.7138 17.0623ZM15.7138 13.6873H8.28523C7.81208 13.6873 7.42808 13.3093 7.42808 12.8436C7.42808 12.3778 7.81208 11.9998 8.28523 11.9998H15.7138C16.1869 11.9998 16.5709 12.3778 16.5709 12.8436C16.5709 13.3093 16.1869 13.6873 15.7138 13.6873ZM18.2075 9.18732H14.8567C14.2281 9.18732 13.7138 8.68107 13.7138 8.06232V4.77619L13.7287 4.77057L18.2109 9.18169L18.2075 9.18732Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TransitionsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M9.66615 2.66647H14.3328C16.3578 2.66647 17.9995 4.30809 17.9995 6.33313V17.6664C17.9995 19.6915 16.3578 21.3331 14.3328 21.3331H9.66615C7.64111 21.3331 5.9995 19.6915 5.9995 17.6664V6.33313C5.9995 4.30809 7.64111 2.66647 9.66615 2.66647ZM3.66617 6.66646H3.9995C4.5515 6.66646 4.9995 6.21846 4.9995 5.66647C4.9995 5.11447 4.5515 4.66647 3.9995 4.66647H3.66617C2.01284 4.66647 0.666176 6.0118 0.666176 7.66646V16.3331C0.666176 17.9878 2.01284 19.3331 3.66617 19.3331H3.9995C4.5515 19.3331 4.9995 18.8851 4.9995 18.3331C4.9995 17.7811 4.5515 17.3331 3.9995 17.3331H3.66617C3.1155 17.3331 2.66617 16.8851 2.66617 16.3331V7.66646C2.66617 7.11446 3.1155 6.66646 3.66617 6.66646ZM20.3328 4.66647H19.9995C19.4475 4.66647 18.9995 5.11447 18.9995 5.66647C18.9995 6.21846 19.4475 6.66646 19.9995 6.66646H20.3328C20.8835 6.66646 21.3328 7.11446 21.3328 7.66646V16.3331C21.3328 16.8851 20.8835 17.3331 20.3328 17.3331H19.9995C19.4475 17.3331 18.9995 17.7811 18.9995 18.3331C18.9995 18.8851 19.4475 19.3331 19.9995 19.3331H20.3328C21.9861 19.3331 23.3328 17.9878 23.3328 16.3331V7.66646C23.3328 6.0118 21.9861 4.66647 20.3328 4.66647Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TransparencyIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M10.3864 6.1452C11.4331 5.95187 12.5664 5.95187 13.6131 6.1452C13.6744 6.15587 13.7358 6.1612 13.7958 6.1612C14.2678 6.1612 14.6891 5.82387 14.7771 5.3412C14.8771 4.79853 14.5184 4.2772 13.9744 4.1772C12.6878 3.9412 11.3104 3.9412 10.0238 4.1772C9.48108 4.2772 9.12108 4.79853 9.22108 5.3412C9.32108 5.8852 9.84509 6.24253 10.3864 6.1452ZM5.13175 8.7412C5.37042 8.7412 5.60908 8.6572 5.79975 8.4852C6.39708 7.9492 7.03175 7.49187 7.68508 7.12654C8.16642 6.8572 8.33842 6.24787 8.06908 5.7652C7.80108 5.28387 7.19575 5.11054 6.70775 5.37987C5.92508 5.8172 5.17042 6.3612 4.46242 6.9972C4.05042 7.36654 4.01708 7.99854 4.38642 8.4092C4.58375 8.6292 4.85842 8.7412 5.13175 8.7412ZM15.9304 5.7652C16.1984 5.28387 16.8064 5.11054 17.2918 5.37987C18.0744 5.8172 18.8291 6.3612 19.5358 6.9972C19.9478 7.36654 19.9811 7.99854 19.6118 8.4092C19.4131 8.6292 19.1411 8.7412 18.8678 8.7412C18.6291 8.7412 18.3904 8.6572 18.1998 8.4852C17.6024 7.9492 16.9678 7.49187 16.3144 7.12654C15.8331 6.85587 15.6611 6.24654 15.9304 5.7652ZM7.68509 16.8745C7.03176 16.5092 6.39709 16.0519 5.79976 15.5159C5.39176 15.1479 4.75976 15.1812 4.38776 15.5905C4.01843 16.0012 4.05176 16.6332 4.46376 17.0025C5.17043 17.6385 5.92643 18.1825 6.70909 18.6199C6.86376 18.7052 7.03176 18.7465 7.19576 18.7465C7.54776 18.7465 7.88776 18.5625 8.06909 18.2345C8.33843 17.7532 8.16643 17.1439 7.68509 16.8732V16.8745ZM3.59309 9.32654C4.04509 9.64388 4.15309 10.2679 3.83575 10.7199V10.7185L3.61975 11.0372C3.43175 11.3225 3.33309 11.6532 3.33309 11.9985C3.33309 12.3439 3.43175 12.6759 3.61842 12.9572L3.83575 13.2785C4.15309 13.7305 4.04509 14.3545 3.59309 14.6719C3.41709 14.7959 3.21575 14.8545 3.01842 14.8545C2.70375 14.8545 2.39442 14.7079 2.19975 14.4305C2.11042 14.3025 2.02642 14.1772 1.94775 14.0572C1.54642 13.4505 1.33309 12.7385 1.33309 11.9999C1.33309 11.2612 1.54642 10.5492 1.94909 9.93854C2.02509 9.82254 2.11042 9.69721 2.19975 9.56921C2.51442 9.11721 3.13575 9.00654 3.59309 9.32654ZM13.6131 17.8545C12.5664 18.0479 11.4331 18.0479 10.3864 17.8545C9.84375 17.7559 9.32108 18.1145 9.22241 18.6585C9.12241 19.2012 9.48108 19.7225 10.0251 19.8225C10.6677 19.9399 11.3331 19.9999 11.9997 19.9999C12.6664 19.9999 13.3317 19.9399 13.9744 19.8225C14.5171 19.7225 14.8771 19.2012 14.7771 18.6585C14.6771 18.1145 14.1571 17.7572 13.6131 17.8545ZM16.3144 16.8746C16.9678 16.5092 17.6024 16.0519 18.1998 15.5159C18.6078 15.1466 19.2398 15.1812 19.6118 15.5919C19.9811 16.0026 19.9478 16.6346 19.5358 17.0039C18.8278 17.6399 18.0731 18.1839 17.2904 18.6212C17.1358 18.7066 16.9678 18.7479 16.8038 18.7479C16.4531 18.7479 16.1131 18.5639 15.9304 18.2359C15.6611 17.7532 15.8331 17.1439 16.3144 16.8746ZM22.0518 9.94256C21.9731 9.82256 21.8891 9.69722 21.7998 9.56922C21.4851 9.11856 20.8638 9.00922 20.4064 9.32656C19.9544 9.64389 19.8464 10.2679 20.1638 10.7199L20.3811 11.0412C20.5678 11.3226 20.6664 11.6546 20.6664 11.9999C20.6664 12.3452 20.5678 12.6759 20.3798 12.9612L20.1638 13.2799C19.8464 13.7319 19.9544 14.3559 20.4064 14.6732C20.5824 14.7959 20.7824 14.8559 20.9811 14.8559C21.2958 14.8559 21.6064 14.7079 21.7998 14.4319C21.8891 14.3039 21.9744 14.1786 22.0504 14.0626C22.4531 13.4519 22.6664 12.7399 22.6664 12.0012C22.6664 11.2626 22.4531 10.5506 22.0518 9.94389V9.94256ZM15.9998 11.9999C15.9998 14.209 14.2089 15.9999 11.9998 15.9999C9.79062 15.9999 7.99975 14.209 7.99975 11.9999C7.99975 9.79073 9.79062 7.99987 11.9998 7.99987C14.2089 7.99987 15.9998 9.79073 15.9998 11.9999Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TrendsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M12.1758 21.5609C9.68781 21.7629 5.43281 21.8659 3.63781 20.3389C2.05381 18.9909 2.04781 15.6979 2.04281 13.1579C2.04281 12.8189 2.04181 12.4939 2.03681 12.1879C2.03381 11.9329 2.02681 11.6679 2.02181 11.3939C1.96781 8.8919 1.90081 5.7639 3.30881 4.0369C4.87081 2.1219 10.1438 2.0269 11.8248 2.0269C11.9888 2.0269 12.1948 2.0219 12.4328 2.0169C14.2678 1.9739 18.0548 1.8869 19.9028 3.5619C21.9188 5.3889 21.9158 8.2579 21.9128 11.1129V11.4199C21.9128 11.9319 21.9178 12.4289 21.9228 12.9099C21.9538 16.1399 21.9788 18.6549 20.4878 20.0459C19.1998 21.2479 16.9248 21.3359 14.5408 21.4279C13.7538 21.4579 12.9548 21.4899 12.1758 21.5609ZM20.3158 10.0509L15.9598 8.5999C15.9029 8.32674 15.7894 8.06852 15.6267 7.84182C15.4641 7.61513 15.2557 7.42499 15.0152 7.28362C14.7746 7.14225 14.5071 7.05278 14.2299 7.02097C13.9527 6.98916 13.6719 7.0157 13.4056 7.0989C13.1392 7.18209 12.8932 7.3201 12.6834 7.50404C12.4736 7.68799 12.3046 7.9138 12.1873 8.16696C12.0699 8.42013 12.0069 8.69504 12.0022 8.97403C11.9974 9.25302 12.0511 9.52991 12.1598 9.7869L9.66481 13.1139C9.38814 13.0163 9.09338 12.9809 8.80147 13.0101C8.50956 13.0393 8.22767 13.1325 7.97581 13.2829L3.88481 11.5779C3.64002 11.4758 3.36469 11.4751 3.11939 11.576C2.87409 11.6769 2.67892 11.8711 2.57681 12.1159C2.4747 12.3607 2.47402 12.636 2.57492 12.8813C2.67581 13.1266 2.87002 13.3218 3.11481 13.4239L6.99981 15.0419C7.0061 15.3152 7.06834 15.5842 7.18269 15.8325C7.29703 16.0808 7.46105 16.303 7.66462 16.4854C7.86819 16.6678 8.10699 16.8065 8.36627 16.893C8.62555 16.9796 8.89982 17.012 9.17213 16.9884C9.44444 16.9648 9.70902 16.8856 9.94954 16.7557C10.19 16.6258 10.4014 16.448 10.5705 16.2333C10.7396 16.0186 10.8629 15.7714 10.9328 15.5072C11.0027 15.2429 11.0177 14.9672 10.9768 14.6969L13.7608 10.9859C14.0418 11.0202 14.3269 10.9942 14.5971 10.9098C14.8673 10.8253 15.1164 10.6842 15.3278 10.4959L19.6838 11.9489C19.8084 11.9904 19.94 12.0069 20.071 11.9976C20.2021 11.9882 20.3299 11.9532 20.4474 11.8944C20.5649 11.8356 20.6696 11.7543 20.7556 11.655C20.8417 11.5558 20.9073 11.4405 20.9488 11.3159C20.9903 11.1913 21.0069 11.0597 20.9975 10.9287C20.9881 10.7977 20.9531 10.6698 20.8943 10.5523C20.8355 10.4348 20.7542 10.3301 20.6549 10.2441C20.5557 10.158 20.4404 10.0924 20.3158 10.0509Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TrialUnlockClockIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.6649 22.3301C11.113 22.3301 10.665 21.8822 10.665 21.3303C10.665 20.7784 11.113 20.3304 11.6649 20.3304C16.4428 20.3304 20.3302 16.4431 20.3302 11.6651C20.3302 6.88721 16.4428 2.99981 11.6649 2.99981C11.113 2.99981 10.665 2.55188 10.665 1.99997C10.665 1.44805 11.113 1.00012 11.6649 1.00012C17.5453 1.00012 22.3299 5.78471 22.3299 11.6651C22.3299 17.5455 17.5453 22.3301 11.6649 22.3301ZM15.9962 15.6645C15.8016 15.6645 15.6016 15.6072 15.4283 15.4872L11.0956 12.4877C10.8263 12.301 10.665 11.9931 10.665 11.6651V5.99934C10.665 5.44743 11.113 4.9995 11.6649 4.9995C12.2168 4.9995 12.6647 5.44743 12.6647 5.99934V11.1412L16.5668 13.8421C17.0214 14.1567 17.1347 14.7793 16.8187 15.2326C16.6241 15.5125 16.3135 15.6632 15.9962 15.6632V15.6645ZM5.82983 18.5C5.82983 19.0522 5.38218 19.4998 4.82998 19.4998C4.27779 19.4998 3.83014 19.0522 3.83014 18.5C3.83014 17.9478 4.27779 17.5001 4.82998 17.5001C5.38218 17.5001 5.82983 17.9478 5.82983 18.5ZM1.99972 12.665C2.55192 12.665 2.99957 12.2173 2.99957 11.6651C2.99957 11.1129 2.55192 10.6653 1.99972 10.6653C1.44752 10.6653 0.999878 11.1129 0.999878 11.6651C0.999878 12.2173 1.44752 12.665 1.99972 12.665ZM5.82983 4.83029C5.82983 5.38248 5.38218 5.83013 4.82998 5.83013C4.27779 5.83013 3.83014 5.38248 3.83014 4.83029C3.83014 4.27809 4.27779 3.83044 4.82998 3.83044C5.38218 3.83044 5.82983 4.27809 5.82983 4.83029ZM7.96689 21.5942C8.51909 21.5942 8.96673 21.1466 8.96673 20.5944C8.96673 20.0422 8.51909 19.5945 7.96689 19.5945C7.41469 19.5945 6.96704 20.0422 6.96704 20.5944C6.96704 21.1466 7.41469 21.5942 7.96689 21.5942ZM3.73545 15.3633C3.73545 15.9155 3.2878 16.3631 2.7356 16.3631C2.1834 16.3631 1.73576 15.9155 1.73576 15.3633C1.73576 14.8111 2.1834 14.3634 2.7356 14.3634C3.2878 14.3634 3.73545 14.8111 3.73545 15.3633ZM2.7356 8.96683C3.2878 8.96683 3.73545 8.51919 3.73545 7.96699C3.73545 7.41479 3.2878 6.96714 2.7356 6.96714C2.1834 6.96714 1.73576 7.41479 1.73576 7.96699C1.73576 8.51919 2.1834 8.96683 2.7356 8.96683ZM8.96673 2.73587C8.96673 3.28807 8.51909 3.73571 7.96689 3.73571C7.41469 3.73571 6.96704 3.28807 6.96704 2.73587C6.96704 2.18367 7.41469 1.73603 7.96689 1.73603C8.51909 1.73603 8.96673 2.18367 8.96673 2.73587Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TrimIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M5.93277 7.48913L10.5594 10.6198C11.0181 10.9305 11.2901 11.4465 11.2901 11.9998C11.2901 12.5531 11.0181 13.0691 10.5594 13.3798L5.93411 16.5104C5.65144 16.7011 5.32611 16.7971 4.99944 16.7971C4.73278 16.7971 4.46478 16.7331 4.21811 16.6024C3.67144 16.3131 3.33278 15.7478 3.33278 15.1304V8.86913C3.33278 8.2518 3.67144 7.68647 4.21811 7.39713C4.76478 7.1078 5.42211 7.14247 5.93277 7.48913ZM18.0647 7.48913C18.5794 7.14247 19.2354 7.1078 19.7807 7.39713C20.3274 7.68647 20.6661 8.2518 20.6661 8.86913V15.1331C20.6661 15.7504 20.3274 16.3158 19.7807 16.6051C19.5341 16.7344 19.2661 16.7998 18.9994 16.7998C18.6727 16.7998 18.3474 16.7038 18.0661 16.5131L13.4394 13.3811C12.9808 13.0705 12.7088 12.5545 12.7088 12.0011C12.7088 11.4478 12.9808 10.9318 13.4394 10.6211L18.0647 7.48913Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const TurnstileIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M11.8426 16.6664H4.33333C3.41466 16.6664 2.66667 15.9184 2.66667 14.9997V8.99973C2.66667 8.08106 3.41466 7.33306 4.33333 7.33306H18.3333C19.252 7.33306 20 8.08106 20 8.99973V13.0597C20 13.6117 20.448 14.0597 21 14.0597C21.552 14.0597 22 13.6117 22 13.0597V8.99973C22 6.97706 20.356 5.33307 18.3333 5.33307H4.33333C2.31067 5.33307 0.666672 6.97706 0.666672 8.99973V14.9997C0.666672 17.0224 2.31067 18.6664 4.33333 18.6664H11.8426C12.3946 18.6664 12.8426 18.2184 12.8426 17.6664C12.8426 17.1144 12.3946 16.6664 11.8426 16.6664ZM7.99999 11.9997C7.99999 12.7361 7.40304 13.333 6.66666 13.333C5.93028 13.333 5.33333 12.7361 5.33333 11.9997C5.33333 11.2633 5.93028 10.6664 6.66666 10.6664C7.40304 10.6664 7.99999 11.2633 7.99999 11.9997ZM12.6666 11.9997C12.6666 12.7361 12.0697 13.333 11.3333 13.333C10.5969 13.333 9.99998 12.7361 9.99998 11.9997C9.99998 11.2633 10.5969 10.6664 11.3333 10.6664C12.0697 10.6664 12.6666 11.2633 12.6666 11.9997ZM15.1786 13.417L23.0986 16.3104H23.0999C23.6506 16.5117 24.0119 17.041 24.0013 17.6277C23.9893 18.2144 23.6066 18.729 23.0479 18.9077L19.912 19.9104L18.9093 23.045C18.7306 23.605 18.216 23.9877 17.6293 23.9997H17.6013C17.0266 23.9997 16.5093 23.641 16.312 23.0984L13.4186 15.1784C13.2333 14.6704 13.356 14.117 13.7373 13.7357C14.12 13.3544 14.6746 13.2317 15.1786 13.417Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const UndoIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M7.99992 13.3331C7.74392 13.3331 7.48792 13.2344 7.29326 13.0397L7.29192 13.0384L2.9586 8.70506C2.56794 8.3144 2.56794 7.68107 2.9586 7.2904L7.29192 2.95708C7.68259 2.56641 8.31592 2.56641 8.70659 2.95708C9.09725 3.34774 9.09725 3.98107 8.70659 4.37174L6.07993 6.9984H9.33192C13.0079 6.9984 15.9986 9.98906 15.9986 13.6651C15.9986 14.217 15.5506 14.665 14.9986 14.665C14.4466 14.665 13.9986 14.217 13.9986 13.6651C13.9986 11.0917 11.9052 8.9984 9.33192 8.9984H6.07993L8.70659 11.6251C9.09725 12.0157 9.09725 12.6491 8.70659 13.0397C8.51192 13.2357 8.25592 13.3331 7.99992 13.3331ZM19.3332 14.3331C19.3332 13.7811 19.7812 13.3331 20.3332 13.3331C20.8852 13.3331 21.3332 13.7811 21.3332 14.3331V17.6664C21.3332 19.689 19.6892 21.333 17.6666 21.333H3.6666C3.1146 21.333 2.6666 20.885 2.6666 20.333C2.6666 19.781 3.1146 19.333 3.6666 19.333H17.6666C18.5852 19.333 19.3332 18.585 19.3332 17.6664V14.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const UnlockIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M8.66652 9.99973V6.6664C8.66652 4.82908 7.17053 3.33308 5.3332 3.33308C3.49587 3.33308 1.99987 4.82908 1.99987 6.6664V8.33307C1.99987 8.88507 1.55187 9.33306 0.999875 9.33306C0.447877 9.33306 -0.00012207 8.88507 -0.00012207 8.33307V6.6664C-0.00012207 3.72508 2.39187 1.33308 5.3332 1.33308C8.27452 1.33308 10.6665 3.72508 10.6665 6.6664V9.99973H17.6665C19.6892 9.99973 21.3332 11.6437 21.3332 13.6664V18.9997C21.3332 21.0224 19.6892 22.6664 17.6665 22.6664H7.66653C5.64386 22.6664 3.99987 21.0224 3.99987 18.9997V13.6664C3.99987 11.6437 5.64386 9.99973 7.66653 9.99973H8.66652ZM12.6665 17.9997C13.2185 17.9997 13.6665 17.5517 13.6665 16.9997V15.6664C13.6665 15.1144 13.2185 14.6664 12.6665 14.6664C12.1145 14.6664 11.6665 15.1144 11.6665 15.6664V16.9997C11.6665 17.5517 12.1145 17.9997 12.6665 17.9997Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const UploadIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M10.9998 5.41307L8.37313 8.03973C7.98246 8.43039 7.34913 8.43173 6.95847 8.04106C6.5678 7.6504 6.5678 7.01706 6.95847 6.6264L11.2918 2.29308C11.6825 1.90241 12.3158 1.90241 12.7065 2.29308L17.0398 6.6264C17.4304 7.01706 17.4304 7.6504 17.0398 8.04106C16.8451 8.23706 16.5891 8.33439 16.3331 8.33439C16.0771 8.33439 15.8211 8.23573 15.6264 8.04106L12.9998 5.4144V12.9984C12.9998 13.5504 12.5518 13.9984 11.9998 13.9984C11.4478 13.9984 10.9998 13.5504 10.9998 12.9984V5.41307ZM4.9998 15.9997H18.9998C20.2884 15.9997 21.3331 17.0444 21.3331 18.333V19.6664C21.3331 20.955 20.2884 21.9997 18.9998 21.9997H4.9998C3.71114 21.9997 2.66647 20.955 2.66647 19.6664V18.333C2.66647 17.0444 3.71114 15.9997 4.9998 15.9997Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const UsersPermissionsIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M16.6664 5.99974C16.6664 8.57706 14.5771 10.6664 11.9997 10.6664C9.42241 10.6664 7.33307 8.57706 7.33307 5.99974C7.33307 3.42242 9.42241 1.33308 11.9997 1.33308C14.5771 1.33308 16.6664 3.42242 16.6664 5.99974ZM3.47308 17.5557C4.96775 14.1811 8.3144 11.9997 11.9997 11.9997H11.9971C15.6824 11.9997 19.029 14.1811 20.5237 17.5557C20.8664 18.329 20.8624 19.2157 20.513 19.989C20.157 20.777 19.477 21.3797 18.6477 21.641C16.4904 22.321 14.2531 22.6664 11.9984 22.6664C9.74373 22.6664 7.50641 22.321 5.34908 21.641C4.51975 21.3797 3.84108 20.777 3.48375 19.989C3.13442 19.2157 3.13042 18.329 3.47308 17.5557Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ViewStreamIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M18.333 2.6666H5.66635C3.64369 2.6666 1.99969 4.31059 1.99969 6.33325V14.9999C1.99969 17.0226 3.64369 18.6666 5.66635 18.6666H18.333C20.3556 18.6666 21.9996 17.0226 21.9996 14.9999V6.33325C21.9996 4.31059 20.3556 2.6666 18.333 2.6666ZM16.921 11.8546C16.201 12.7812 14.605 14.3332 11.9997 14.3332C9.39434 14.3332 7.79834 12.7812 7.07834 11.8559C6.52768 11.1452 6.52768 10.1906 7.07834 9.47991C7.79834 8.55325 9.39434 7.00125 11.9997 7.00125C14.605 7.00125 16.201 8.55325 16.921 9.47858C17.473 10.1906 17.473 11.1452 16.921 11.8559V11.8546ZM17.6663 22.6665H6.33301C5.78101 22.6665 5.33301 22.2185 5.33301 21.6666C5.33301 21.1146 5.78101 20.6666 6.33301 20.6666H17.6663C18.2183 20.6666 18.6663 21.1146 18.6663 21.6666C18.6663 22.2185 18.2183 22.6665 17.6663 22.6665ZM13.9997 10.6666C13.9997 11.7711 13.1042 12.6666 11.9997 12.6666C10.8951 12.6666 9.99967 11.7711 9.99967 10.6666C9.99967 9.56201 10.8951 8.66658 11.9997 8.66658C13.1042 8.66658 13.9997 9.56201 13.9997 10.6666Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const VolumeIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.133 2.08909C18.5996 1.79709 17.9476 1.81843 17.4356 2.14776L10.3756 6.66643H5.66763C4.01297 6.66643 2.66763 8.01176 2.66763 9.66643V14.3331C2.66763 15.9878 4.01297 17.3331 5.66763 17.3331H10.3756L17.4356 21.8518C17.709 22.0264 18.021 22.1158 18.3356 22.1158C18.6103 22.1158 18.885 22.0478 19.1343 21.9118C19.669 21.6198 20.001 21.0584 20.001 20.4491V3.55176C20.001 2.94243 19.6676 2.38243 19.133 2.08909Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const VolumeOffIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M6.02857 17.3331H4.99963C3.3463 17.3331 1.99963 15.9878 1.99963 14.3331V9.66643C1.99963 8.01176 3.3463 6.66643 4.99963 6.66643H9.70763L16.769 2.14776C17.2836 1.81843 17.933 1.79709 18.4663 2.08909C19.001 2.38243 19.333 2.94243 19.333 3.55176V4.50293L21.6383 2.27976C22.037 1.89843 22.669 1.90776 23.053 2.30643C23.4356 2.70376 23.4236 3.3371 23.0263 3.7211L4.36097 21.7198C4.16631 21.9064 3.91697 21.9998 3.66631 21.9998C3.40497 21.9998 3.14231 21.8971 2.94631 21.6944C2.56364 21.2971 2.57564 20.6638 2.97297 20.2798L6.02857 17.3331ZM10.9596 18.1344L16.7676 21.8518C17.041 22.0264 17.353 22.1158 17.6663 22.1158C17.941 22.1158 18.2156 22.0478 18.4663 21.9118C19.001 21.6198 19.333 21.0584 19.333 20.4491V10.0598L10.9596 18.1344Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const VolumeUpIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M15.133 2.08909C14.5996 1.79709 13.9476 1.81843 13.4356 2.14776L6.37563 6.66643H2.99963C1.34497 6.66643 -0.000366211 8.01176 -0.000366211 9.66643V14.3331C-0.000366211 15.9878 1.34497 17.3331 2.99963 17.3331H6.3743L13.4343 21.8518C13.7076 22.0264 14.0196 22.1158 14.3343 22.1158C14.609 22.1158 14.8836 22.0478 15.133 21.9118C15.6676 21.6198 15.9996 21.0584 15.9996 20.4491V3.55176C15.9996 2.94243 15.6676 2.38243 15.133 2.08909ZM19.2583 9.40778C18.8676 9.01711 18.233 9.01711 17.8436 9.40778C17.453 9.79844 17.453 10.4318 17.8436 10.8224C18.1583 11.1371 18.3316 11.5558 18.3316 12.0011C18.3316 12.4464 18.1583 12.8638 17.8436 13.1798C17.453 13.5691 17.453 14.2038 17.8436 14.5944C18.0383 14.7891 18.2943 14.8878 18.5503 14.8878C18.8063 14.8878 19.0623 14.7904 19.257 14.5944C19.9503 13.9024 20.3316 12.9824 20.3316 12.0024C20.3316 11.0224 19.9503 10.1024 19.257 9.41044L19.2583 9.40778ZM20.4383 8.2291C20.0478 7.83865 20.0476 7.20582 20.4376 6.8151C20.8283 6.4251 21.4612 6.42532 21.8516 6.81577C23.237 8.19977 23.9996 10.0424 23.9996 12.0011C23.9996 13.9598 23.237 15.8011 21.8516 17.1864C21.657 17.3824 21.401 17.4798 21.145 17.4798C20.889 17.4798 20.633 17.3811 20.4383 17.1864C20.0476 16.7958 20.0476 16.1624 20.4383 15.7718C22.5183 13.6931 22.5183 10.3091 20.4383 8.2291ZM20.4376 6.8151C20.4378 6.81488 20.4381 6.81466 20.4383 6.81443L20.437 6.81577C20.4372 6.81554 20.4374 6.81532 20.4376 6.8151Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const VolumeXIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M13.4356 2.14776C13.9476 1.81843 14.5996 1.79709 15.133 2.08909C15.6676 2.38243 15.9996 2.94243 15.9996 3.55176V20.4491C15.9996 21.0584 15.6676 21.6198 15.133 21.9118C14.8836 22.0478 14.609 22.1158 14.3343 22.1158C14.0196 22.1158 13.7076 22.0264 13.4343 21.8518L6.3743 17.3331H2.99963C1.34497 17.3331 -0.000366211 15.9878 -0.000366211 14.3331V9.66643C-0.000366211 8.01176 1.34497 6.66643 2.99963 6.66643H6.37563L13.4356 2.14776ZM23.7076 10.3731L22.0809 11.9998H22.0783L23.7049 13.6264C24.0956 14.0171 24.0956 14.6504 23.7049 15.0411C23.5103 15.2371 23.2543 15.3344 22.9983 15.3344C22.7423 15.3344 22.4863 15.2358 22.2916 15.0411L20.6649 13.4144L19.0383 15.0411C18.8436 15.2371 18.5876 15.3344 18.3316 15.3344C18.0756 15.3344 17.8196 15.2358 17.6249 15.0411C17.2343 14.6504 17.2343 14.0171 17.6249 13.6264L19.2516 11.9998L17.6249 10.3731C17.2343 9.98244 17.2343 9.3491 17.6249 8.95844C18.0156 8.56777 18.6489 8.56777 19.0396 8.95844L20.6663 10.5851L22.2929 8.95844C22.6836 8.56777 23.3169 8.56777 23.7076 8.95844C24.0983 9.3491 24.0983 9.98244 23.7076 10.3731Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const WandIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M13.3333 2.33308C13.3333 2.88537 12.8856 3.33308 12.3333 3.33308C11.781 3.33308 11.3333 2.88537 11.3333 2.33308C11.3333 1.7808 11.781 1.33308 12.3333 1.33308C12.8856 1.33308 13.3333 1.7808 13.3333 2.33308ZM8.39598 4.23575L9.65731 4.65575C9.8613 4.72375 9.99864 4.91442 9.99864 5.13041C9.99864 5.34641 9.85997 5.53708 9.65597 5.60508L8.39464 6.02508L7.97331 7.28774C7.90664 7.49041 7.71464 7.62908 7.49998 7.62908C7.28531 7.62908 7.09465 7.49174 7.02665 7.28774L6.60531 6.02508L5.34398 5.60508C5.13998 5.53708 5.00132 5.34641 5.00132 5.13041C5.00132 4.91442 5.13998 4.72375 5.34398 4.65575L6.60531 4.23575L7.02665 2.97309C7.16264 2.56509 7.83864 2.56509 7.97464 2.97309L8.39598 4.23575ZM19.5239 3.36374L20.6373 4.47707C21.0786 4.91707 21.3213 5.50507 21.3213 6.12774C21.3213 6.7504 21.0786 7.33573 20.6373 7.77706L7.76398 20.6477C7.32398 21.089 6.73865 21.3317 6.11465 21.3317C5.49065 21.3317 4.90532 21.089 4.46399 20.6477L3.35065 19.5344C2.90932 19.0944 2.66666 18.5077 2.66666 17.885C2.66666 17.2624 2.90932 16.677 3.35065 16.2357L16.224 3.36374C17.1066 2.48241 18.6439 2.48108 19.5239 3.36374ZM16.8493 8.73573L19.2226 6.3624H19.2239C19.3079 6.27707 19.3213 6.17707 19.3213 6.1264C19.3213 6.07573 19.3079 5.97574 19.2239 5.89174L18.1093 4.77707C18.024 4.69174 17.9253 4.67974 17.8733 4.67974C17.8213 4.67974 17.7226 4.69307 17.6373 4.77707L15.264 7.1504L16.8493 8.73573ZM22.2106 15.9864L20.5266 15.4251L19.9653 13.7411C19.7826 13.1971 18.8826 13.1971 18.7 13.7411L18.1386 15.4251L16.4546 15.9864C16.1826 16.077 15.9986 16.3317 15.9986 16.6184C15.9986 16.905 16.1826 17.1597 16.4546 17.2504L18.1386 17.8117L18.7 19.4957C18.7906 19.7677 19.0466 19.9517 19.3333 19.9517C19.6199 19.9517 19.8746 19.7677 19.9666 19.4957L20.5279 17.8117L22.2119 17.2504C22.4839 17.1597 22.6679 16.905 22.6679 16.6184C22.6679 16.3317 22.4826 16.077 22.2106 15.9864Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const WaveformIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M13.6666 21.3333C13.1146 21.3333 12.6666 20.8853 12.6666 20.3333V3.6666C12.6666 3.1146 13.1146 2.6666 13.6666 2.6666C14.2186 2.6666 14.6666 3.1146 14.6666 3.6666V20.3333C14.6666 20.8853 14.2186 21.3333 13.6666 21.3333ZM5.66661 19.9999C5.11461 19.9999 4.66661 19.5519 4.66661 18.9999V4.99993C4.66661 4.44793 5.11461 3.99993 5.66661 3.99993C6.21861 3.99993 6.66661 4.44793 6.66661 4.99993V18.9999C6.66661 19.5519 6.21861 19.9999 5.66661 19.9999ZM0.666611 12.9999C0.666611 13.5519 1.11461 13.9999 1.66661 13.9999C2.21861 13.9999 2.66661 13.5519 2.66661 12.9999V10.9999C2.66661 10.4479 2.21861 9.99993 1.66661 9.99993C1.11461 9.99993 0.666611 10.4479 0.666611 10.9999V12.9999ZM20.6666 12.9999C20.6666 13.5519 21.1146 13.9999 21.6666 13.9999C22.2186 13.9999 22.6666 13.5519 22.6666 12.9999V10.9999C22.6666 10.4479 22.2186 9.99993 21.6666 9.99993C21.1146 9.99993 20.6666 10.4479 20.6666 10.9999V12.9999ZM8.66661 16.3333C8.66661 16.8853 9.11461 17.3333 9.66661 17.3333C10.2186 17.3333 10.6666 16.8853 10.6666 16.3333V7.6666C10.6666 7.1146 10.2186 6.6666 9.66661 6.6666C9.11461 6.6666 8.66661 7.1146 8.66661 7.6666V16.3333ZM16.6666 16.3333C16.6666 16.8853 17.1146 17.3333 17.6666 17.3333C18.2186 17.3333 18.6666 16.8853 18.6666 16.3333V7.6666C18.6666 7.1146 18.2186 6.6666 17.6666 6.6666C17.1146 6.6666 16.6666 7.1146 16.6666 7.6666V16.3333Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const WebhookIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.92116 13.1937C3.41849 12.955 4.01648 13.1638 4.25515 13.6624C4.49381 14.1597 4.28409 14.7577 3.78542 14.9964C3.71348 15.0297 3.64411 15.0668 3.57351 15.1068C2.14151 15.9334 1.64821 17.772 2.47487 19.2054C3.3029 20.6373 5.14289 21.1296 6.57351 20.303C7.50814 19.7631 8.0828 18.7574 8.07351 17.6761C8.07084 17.4081 8.17457 17.1516 8.36257 16.9622C8.55055 16.773 8.80692 16.6663 9.07351 16.6663H17.6663C17.7969 16.4917 17.9643 16.3409 18.1643 16.2249C18.9616 15.7652 19.9817 16.039 20.4417 16.8362L20.4426 16.8343C20.9026 17.6315 20.6293 18.6515 19.8323 19.1116C19.1016 19.5343 18.2031 19.317 17.7005 18.6663H9.97976C9.70243 20.0663 8.83482 21.3055 7.57351 22.0335C6.78817 22.4868 5.92932 22.7025 5.08132 22.7025C3.35207 22.7024 1.66781 21.8069 0.742451 20.2044C-0.636164 17.8165 0.185358 14.7524 2.57448 13.3763C2.68906 13.3097 2.80525 13.2496 2.92116 13.1937ZM12.0003 3.96124C12.9201 3.96138 13.6663 4.70832 13.6663 5.62823C13.6662 5.86137 13.6177 6.08134 13.5325 6.28253L17.3733 12.9359C18.724 12.4745 20.2321 12.6082 21.4934 13.3362C22.6507 14.0042 23.4792 15.0818 23.8245 16.3724L23.8225 16.3694C24.1678 17.6601 23.9905 19.0071 23.3225 20.1644C22.3985 21.7655 20.7129 22.6624 18.9837 22.6624C18.1358 22.6624 17.2787 22.4477 16.4934 21.9944C16.3775 21.9265 16.2651 21.8578 16.1585 21.7845C15.7038 21.4712 15.5906 20.8475 15.9026 20.3929C16.2146 19.9385 16.8387 19.8239 17.2932 20.137C17.3571 20.1823 17.4252 20.225 17.4944 20.265C18.9237 21.089 20.7644 20.5987 21.5911 19.1653C21.9923 18.4707 22.0989 17.6626 21.8909 16.888C21.6842 16.1147 21.1881 15.468 20.4934 15.0667C19.5575 14.5254 18.3977 14.5309 17.4671 15.0814C17.2377 15.216 16.964 15.2548 16.7053 15.1868C16.4481 15.1188 16.2283 14.9506 16.095 14.72L11.7825 7.25031C10.9693 7.13956 10.3334 6.47205 10.3333 5.62823C10.3333 4.70823 11.0803 3.96124 12.0003 3.96124ZM11.9983 0.630188C14.7555 0.630188 16.9981 2.87306 16.9983 5.63019C16.9983 5.76352 16.9934 5.89601 16.9827 6.02667C16.9387 6.57859 16.4548 6.98524 15.9055 6.94269C15.3549 6.89736 14.9443 6.41612 14.9895 5.86554C14.9962 5.78821 14.9983 5.70885 14.9983 5.63019C14.9981 3.97573 13.6528 2.63019 11.9983 2.63019C10.344 2.63039 8.99856 3.97585 8.99831 5.63019C8.99831 6.70874 9.58254 7.71045 10.5237 8.24249C10.7557 8.37449 10.9257 8.59356 10.9964 8.85089C11.0669 9.10813 11.031 9.38301 10.8977 9.61359L6.6028 17.0521C6.68944 17.252 6.73757 17.4734 6.73757 17.7054C6.73753 18.6254 5.99055 19.3724 5.07058 19.3724C4.15065 19.3723 3.40362 18.6253 3.40358 17.7054C3.40358 16.8627 4.04178 16.193 4.85378 16.0823L8.71315 9.39777C7.63849 8.45777 7.00026 7.08521 7.00026 5.62921C7.00032 2.87192 9.24296 0.629211 12.0003 0.629211L11.9983 0.630188Z\"\n fill=\"currentColor\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ZoomInIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M2.6666 10.3331C2.6666 6.1064 6.10659 2.66641 10.3332 2.66641C14.5599 2.66641 17.9999 6.1064 17.9999 10.3331C17.9999 12.0863 17.408 13.7042 16.4135 14.9974L21.0412 19.625C21.4319 20.0157 21.4319 20.649 21.0412 21.0397C20.8465 21.2344 20.5906 21.333 20.3346 21.333H20.3332C20.0772 21.333 19.8212 21.2357 19.6266 21.0397L14.9991 16.4122C13.7057 17.4073 12.0872 17.9997 10.3332 17.9997C6.10659 17.9997 2.6666 14.5597 2.6666 10.3331ZM11.3332 11.3331H13.3332C13.8852 11.3331 14.3332 10.8851 14.3332 10.3331C14.3332 9.78106 13.8852 9.33306 13.3332 9.33306H11.3332V7.33307C11.3332 6.78107 10.8852 6.33307 10.3332 6.33307C9.78124 6.33307 9.33325 6.78107 9.33325 7.33307V9.33306H7.33325C6.78125 9.33306 6.33325 9.78106 6.33325 10.3331C6.33325 10.8851 6.78125 11.3331 7.33325 11.3331H9.33325V13.3331C9.33325 13.8851 9.78124 14.333 10.3332 14.333C10.8852 14.333 11.3332 13.8851 11.3332 13.3331V11.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","import type { SVGProps } from 'react';\n\nexport const ZoomOutIcon = (props: SVGProps<SVGSVGElement>) => (\n <svg\n {...props}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clipRule=\"evenodd\"\n d=\"M2.66653 10.3331C2.66653 6.1064 6.10653 2.66641 10.3332 2.66641C14.5598 2.66641 17.9998 6.1064 17.9998 10.3331C17.9998 12.0863 17.4079 13.7042 16.4135 14.9974L21.0412 19.625C21.4318 20.0157 21.4318 20.649 21.0412 21.0397C20.8465 21.2344 20.5905 21.333 20.3345 21.333H20.3332C20.0772 21.333 19.8212 21.2357 19.6265 21.0397L14.999 16.4122C13.7056 17.4073 12.0871 17.9997 10.3332 17.9997C6.10653 17.9997 2.66653 14.5597 2.66653 10.3331ZM6.33319 10.3331C6.33319 10.8851 6.78119 11.3331 7.33319 11.3331H13.3332C13.8852 11.3331 14.3332 10.8851 14.3332 10.3331C14.3332 9.78106 13.8852 9.33306 13.3332 9.33306H7.33319C6.78119 9.33306 6.33319 9.78106 6.33319 10.3331Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n />\n </svg>\n);\n","/**\n * This file is auto-generated by the generateIconMap script on 11/12/2025.\n */\nimport { AbTestIcon } from './icons/AbTestIcon';\nimport { AccessibilityIcon } from './icons/AccessibilityIcon';\nimport { ActivityIcon } from './icons/ActivityIcon';\nimport { AddFolderIcon } from './icons/AddFolderIcon';\nimport { AddLayoutIcon } from './icons/AddLayoutIcon';\nimport { AddMediaIcon } from './icons/AddMediaIcon';\nimport { AnnotationLinkIcon } from './icons/AnnotationLinkIcon';\nimport { AppearanceIcon } from './icons/AppearanceIcon';\nimport { ArchiveIcon } from './icons/ArchiveIcon';\nimport { ArrowDownIcon } from './icons/ArrowDownIcon';\nimport { ArrowLeftIcon } from './icons/ArrowLeftIcon';\nimport { ArrowRightIcon } from './icons/ArrowRightIcon';\nimport { ArrowUpIcon } from './icons/ArrowUpIcon';\nimport { ArrowUpRightIcon } from './icons/ArrowUpRightIcon';\nimport { AsteriskIcon } from './icons/AsteriskIcon';\nimport { AudioDescriptionIcon } from './icons/AudioDescriptionIcon';\nimport { AutoScrollIcon } from './icons/AutoScrollIcon';\nimport { BackgroundIcon } from './icons/BackgroundIcon';\nimport { BellIcon } from './icons/BellIcon';\nimport { BoltIcon } from './icons/BoltIcon';\nimport { CalendarIcon } from './icons/CalendarIcon';\nimport { CallToActionIcon } from './icons/CallToActionIcon';\nimport { CameraIcon } from './icons/CameraIcon';\nimport { CameraOffIcon } from './icons/CameraOffIcon';\nimport { CaretDownIcon } from './icons/CaretDownIcon';\nimport { CaretDownStrongIcon } from './icons/CaretDownStrongIcon';\nimport { CaretLeftIcon } from './icons/CaretLeftIcon';\nimport { CaretLeftStrongIcon } from './icons/CaretLeftStrongIcon';\nimport { CaretRightIcon } from './icons/CaretRightIcon';\nimport { CaretRightStrongIcon } from './icons/CaretRightStrongIcon';\nimport { CaretUpIcon } from './icons/CaretUpIcon';\nimport { CaretUpStrongIcon } from './icons/CaretUpStrongIcon';\nimport { ChannelIcon } from './icons/ChannelIcon';\nimport { ChaptersIcon } from './icons/ChaptersIcon';\nimport { CheckmarkIcon } from './icons/CheckmarkIcon';\nimport { CheckmarkCircleIcon } from './icons/CheckmarkCircleIcon';\nimport { CheckmarkCircleOutlineIcon } from './icons/CheckmarkCircleOutlineIcon';\nimport { CheckmarkThreeQuatersCircleIcon } from './icons/CheckmarkThreeQuatersCircleIcon';\nimport { CircleSlashedIcon } from './icons/CircleSlashedIcon';\nimport { ClapboardIcon } from './icons/ClapboardIcon';\nimport { CloseIcon } from './icons/CloseIcon';\nimport { CloseOctagonIcon } from './icons/CloseOctagonIcon';\nimport { ClosedCaptionsIcon } from './icons/ClosedCaptionsIcon';\nimport { CmdIcon } from './icons/CmdIcon';\nimport { CollapseIcon } from './icons/CollapseIcon';\nimport { CollapseDiagonalIcon } from './icons/CollapseDiagonalIcon';\nimport { CollectionIcon } from './icons/CollectionIcon';\nimport { CommentsIcon } from './icons/CommentsIcon';\nimport { CompanyIcon } from './icons/CompanyIcon';\nimport { CompareIcon } from './icons/CompareIcon';\nimport { ConnectionOkayIcon } from './icons/ConnectionOkayIcon';\nimport { ConnectionPoorIcon } from './icons/ConnectionPoorIcon';\nimport { ConnectionStrongIcon } from './icons/ConnectionStrongIcon';\nimport { ContentLibraryIcon } from './icons/ContentLibraryIcon';\nimport { ControlsIcon } from './icons/ControlsIcon';\nimport { CursorClickIcon } from './icons/CursorClickIcon';\nimport { DeleteIcon } from './icons/DeleteIcon';\nimport { DesktopIcon } from './icons/DesktopIcon';\nimport { DocsDevIcon } from './icons/DocsDevIcon';\nimport { DotsHorizontalIcon } from './icons/DotsHorizontalIcon';\nimport { DownloadIcon } from './icons/DownloadIcon';\nimport { EditTranscriptIcon } from './icons/EditTranscriptIcon';\nimport { EllipsesVerticalIcon } from './icons/EllipsesVerticalIcon';\nimport { EmbedIcon } from './icons/EmbedIcon';\nimport { EnvelopeIcon } from './icons/EnvelopeIcon';\nimport { EnvelopeOpenIcon } from './icons/EnvelopeOpenIcon';\nimport { ErrorIcon } from './icons/ErrorIcon';\nimport { ExpandIcon } from './icons/ExpandIcon';\nimport { ExpandDiagonalIcon } from './icons/ExpandDiagonalIcon';\nimport { ExpandHorizontalIcon } from './icons/ExpandHorizontalIcon';\nimport { FastForwardIcon } from './icons/FastForwardIcon';\nimport { FavoriteIcon } from './icons/FavoriteIcon';\nimport { FavoriteOutlineIcon } from './icons/FavoriteOutlineIcon';\nimport { FeaturedIcon } from './icons/FeaturedIcon';\nimport { FileTreeIcon } from './icons/FileTreeIcon';\nimport { FillIcon } from './icons/FillIcon';\nimport { FilmStripIcon } from './icons/FilmStripIcon';\nimport { FilterIcon } from './icons/FilterIcon';\nimport { FitIcon } from './icons/FitIcon';\nimport { FontsIcon } from './icons/FontsIcon';\nimport { FooterIcon } from './icons/FooterIcon';\nimport { FullScreenIcon } from './icons/FullScreenIcon';\nimport { GearIcon } from './icons/GearIcon';\nimport { GettingStartedIcon } from './icons/GettingStartedIcon';\nimport { GridIcon } from './icons/GridIcon';\nimport { GripDotsVerticalIcon } from './icons/GripDotsVerticalIcon';\nimport { HeaderIcon } from './icons/HeaderIcon';\nimport { HelpCenterIcon } from './icons/HelpCenterIcon';\nimport { HideIcon } from './icons/HideIcon';\nimport { HomeIcon } from './icons/HomeIcon';\nimport { HourglassIcon } from './icons/HourglassIcon';\nimport { ImportIcon } from './icons/ImportIcon';\nimport { InfoIcon } from './icons/InfoIcon';\nimport { IntegrationsIcon } from './icons/IntegrationsIcon';\nimport { KeyboardIcon } from './icons/KeyboardIcon';\nimport { LayoutIcon } from './icons/LayoutIcon';\nimport { LeaveIcon } from './icons/LeaveIcon';\nimport { LightBulbIcon } from './icons/LightBulbIcon';\nimport { LinkIcon } from './icons/LinkIcon';\nimport { ListIcon } from './icons/ListIcon';\nimport { LiveIcon } from './icons/LiveIcon';\nimport { LocalizationIcon } from './icons/LocalizationIcon';\nimport { LockIcon } from './icons/LockIcon';\nimport { LogoutIcon } from './icons/LogoutIcon';\nimport { MaximizeIcon } from './icons/MaximizeIcon';\nimport { MediaIcon } from './icons/MediaIcon';\nimport { MegaphoneIcon } from './icons/MegaphoneIcon';\nimport { MenuIcon } from './icons/MenuIcon';\nimport { MicIcon } from './icons/MicIcon';\nimport { MicOffIcon } from './icons/MicOffIcon';\nimport { MinimizeIcon } from './icons/MinimizeIcon';\nimport { MinusIcon } from './icons/MinusIcon';\nimport { MinusCircleIcon } from './icons/MinusCircleIcon';\nimport { MobileIcon } from './icons/MobileIcon';\nimport { MoreOptionsIcon } from './icons/MoreOptionsIcon';\nimport { MoveLeftIcon } from './icons/MoveLeftIcon';\nimport { MoveRightIcon } from './icons/MoveRightIcon';\nimport { MusicIcon } from './icons/MusicIcon';\nimport { OnAirIcon } from './icons/OnAirIcon';\nimport { OpenNewIcon } from './icons/OpenNewIcon';\nimport { OverviewIcon } from './icons/OverviewIcon';\nimport { PageIcon } from './icons/PageIcon';\nimport { PanelLeftIcon } from './icons/PanelLeftIcon';\nimport { PanelRightIcon } from './icons/PanelRightIcon';\nimport { PanelUpIcon } from './icons/PanelUpIcon';\nimport { PasswordIcon } from './icons/PasswordIcon';\nimport { PauseIcon } from './icons/PauseIcon';\nimport { PencilIcon } from './icons/PencilIcon';\nimport { PeopleIcon } from './icons/PeopleIcon';\nimport { PinIcon } from './icons/PinIcon';\nimport { PinSlashIcon } from './icons/PinSlashIcon';\nimport { PipIcon } from './icons/PipIcon';\nimport { PlayIcon } from './icons/PlayIcon';\nimport { PlayerIcon } from './icons/PlayerIcon';\nimport { PlaylistIcon } from './icons/PlaylistIcon';\nimport { PlusIcon } from './icons/PlusIcon';\nimport { PodcastIcon } from './icons/PodcastIcon';\nimport { PreviewIcon } from './icons/PreviewIcon';\nimport { PrivateChatIcon } from './icons/PrivateChatIcon';\nimport { PrivateUserSessionsIcon } from './icons/PrivateUserSessionsIcon';\nimport { ProjectIcon } from './icons/ProjectIcon';\nimport { ProjectOpenIcon } from './icons/ProjectOpenIcon';\nimport { PropertiesIcon } from './icons/PropertiesIcon';\nimport { QuestionMarkIcon } from './icons/QuestionMarkIcon';\nimport { ReactIcon } from './icons/ReactIcon';\nimport { RecordIcon } from './icons/RecordIcon';\nimport { RecordGroupIcon } from './icons/RecordGroupIcon';\nimport { RedoIcon } from './icons/RedoIcon';\nimport { RefreshIcon } from './icons/RefreshIcon';\nimport { ReplaceIcon } from './icons/ReplaceIcon';\nimport { ReplyIcon } from './icons/ReplyIcon';\nimport { RequestVideoIcon } from './icons/RequestVideoIcon';\nimport { RevertToOriginalIcon } from './icons/RevertToOriginalIcon';\nimport { RewindIcon } from './icons/RewindIcon';\nimport { SaveIcon } from './icons/SaveIcon';\nimport { SaveAsCopyIcon } from './icons/SaveAsCopyIcon';\nimport { ScissorsIcon } from './icons/ScissorsIcon';\nimport { ScreenshareOffIcon } from './icons/ScreenshareOffIcon';\nimport { ScreenshareOnIcon } from './icons/ScreenshareOnIcon';\nimport { SearchIcon } from './icons/SearchIcon';\nimport { SendIcon } from './icons/SendIcon';\nimport { ShapesIcon } from './icons/ShapesIcon';\nimport { ShareIcon } from './icons/ShareIcon';\nimport { SharingPermissionsIcon } from './icons/SharingPermissionsIcon';\nimport { SimulcastIcon } from './icons/SimulcastIcon';\nimport { SortIcon } from './icons/SortIcon';\nimport { SparkleIcon } from './icons/SparkleIcon';\nimport { SpeedIcon } from './icons/SpeedIcon';\nimport { SpinnerIcon } from './icons/SpinnerIcon';\nimport { StatsIcon } from './icons/StatsIcon';\nimport { SwitchAccountsIcon } from './icons/SwitchAccountsIcon';\nimport { TagIcon } from './icons/TagIcon';\nimport { TeleprompterIcon } from './icons/TeleprompterIcon';\nimport { TextSizeIcon } from './icons/TextSizeIcon';\nimport { ThumbnailIcon } from './icons/ThumbnailIcon';\nimport { ThumbsDownIcon } from './icons/ThumbsDownIcon';\nimport { ThumbsUpIcon } from './icons/ThumbsUpIcon';\nimport { TimelineVerticalIcon } from './icons/TimelineVerticalIcon';\nimport { TokenIcon } from './icons/TokenIcon';\nimport { TranscriptIcon } from './icons/TranscriptIcon';\nimport { TransitionsIcon } from './icons/TransitionsIcon';\nimport { TransparencyIcon } from './icons/TransparencyIcon';\nimport { TrendsIcon } from './icons/TrendsIcon';\nimport { TrialUnlockClockIcon } from './icons/TrialUnlockClockIcon';\nimport { TrimIcon } from './icons/TrimIcon';\nimport { TurnstileIcon } from './icons/TurnstileIcon';\nimport { UndoIcon } from './icons/UndoIcon';\nimport { UnlockIcon } from './icons/UnlockIcon';\nimport { UploadIcon } from './icons/UploadIcon';\nimport { UsersPermissionsIcon } from './icons/UsersPermissionsIcon';\nimport { ViewStreamIcon } from './icons/ViewStreamIcon';\nimport { VolumeIcon } from './icons/VolumeIcon';\nimport { VolumeOffIcon } from './icons/VolumeOffIcon';\nimport { VolumeUpIcon } from './icons/VolumeUpIcon';\nimport { VolumeXIcon } from './icons/VolumeXIcon';\nimport { WandIcon } from './icons/WandIcon';\nimport { WaveformIcon } from './icons/WaveformIcon';\nimport { WebhookIcon } from './icons/WebhookIcon';\nimport { ZoomInIcon } from './icons/ZoomInIcon';\nimport { ZoomOutIcon } from './icons/ZoomOutIcon';\n\nexport const iconMap = {\n 'ab-test': AbTestIcon,\n accessibility: AccessibilityIcon,\n activity: ActivityIcon,\n 'add-folder': AddFolderIcon,\n 'add-layout': AddLayoutIcon,\n 'add-media': AddMediaIcon,\n 'annotation-link': AnnotationLinkIcon,\n appearance: AppearanceIcon,\n archive: ArchiveIcon,\n 'arrow-down': ArrowDownIcon,\n 'arrow-left': ArrowLeftIcon,\n 'arrow-right': ArrowRightIcon,\n 'arrow-up': ArrowUpIcon,\n 'arrow-up-right': ArrowUpRightIcon,\n asterisk: AsteriskIcon,\n 'audio-description': AudioDescriptionIcon,\n 'auto-scroll': AutoScrollIcon,\n background: BackgroundIcon,\n bell: BellIcon,\n bolt: BoltIcon,\n calendar: CalendarIcon,\n 'call-to-action': CallToActionIcon,\n camera: CameraIcon,\n 'camera-off': CameraOffIcon,\n 'caret-down': CaretDownIcon,\n 'caret-down-strong': CaretDownStrongIcon,\n 'caret-left': CaretLeftIcon,\n 'caret-left-strong': CaretLeftStrongIcon,\n 'caret-right': CaretRightIcon,\n 'caret-right-strong': CaretRightStrongIcon,\n 'caret-up': CaretUpIcon,\n 'caret-up-strong': CaretUpStrongIcon,\n channel: ChannelIcon,\n chapters: ChaptersIcon,\n checkmark: CheckmarkIcon,\n 'checkmark-circle': CheckmarkCircleIcon,\n 'checkmark-circle-outline': CheckmarkCircleOutlineIcon,\n 'checkmark-three-quaters-circle': CheckmarkThreeQuatersCircleIcon,\n 'circle-slashed': CircleSlashedIcon,\n clapboard: ClapboardIcon,\n close: CloseIcon,\n 'close-octagon': CloseOctagonIcon,\n 'closed-captions': ClosedCaptionsIcon,\n cmd: CmdIcon,\n collapse: CollapseIcon,\n 'collapse-diagonal': CollapseDiagonalIcon,\n collection: CollectionIcon,\n comments: CommentsIcon,\n company: CompanyIcon,\n compare: CompareIcon,\n 'connection-okay': ConnectionOkayIcon,\n 'connection-poor': ConnectionPoorIcon,\n 'connection-strong': ConnectionStrongIcon,\n 'content-library': ContentLibraryIcon,\n controls: ControlsIcon,\n 'cursor-click': CursorClickIcon,\n delete: DeleteIcon,\n desktop: DesktopIcon,\n 'docs-dev': DocsDevIcon,\n 'dots-horizontal': DotsHorizontalIcon,\n download: DownloadIcon,\n 'edit-transcript': EditTranscriptIcon,\n 'ellipses-vertical': EllipsesVerticalIcon,\n embed: EmbedIcon,\n envelope: EnvelopeIcon,\n 'envelope-open': EnvelopeOpenIcon,\n error: ErrorIcon,\n expand: ExpandIcon,\n 'expand-diagonal': ExpandDiagonalIcon,\n 'expand-horizontal': ExpandHorizontalIcon,\n 'fast-forward': FastForwardIcon,\n favorite: FavoriteIcon,\n 'favorite-outline': FavoriteOutlineIcon,\n featured: FeaturedIcon,\n 'file-tree': FileTreeIcon,\n fill: FillIcon,\n 'film-strip': FilmStripIcon,\n filter: FilterIcon,\n fit: FitIcon,\n fonts: FontsIcon,\n footer: FooterIcon,\n 'full-screen': FullScreenIcon,\n gear: GearIcon,\n 'getting-started': GettingStartedIcon,\n grid: GridIcon,\n 'grip-dots-vertical': GripDotsVerticalIcon,\n header: HeaderIcon,\n 'help-center': HelpCenterIcon,\n hide: HideIcon,\n home: HomeIcon,\n hourglass: HourglassIcon,\n import: ImportIcon,\n info: InfoIcon,\n integrations: IntegrationsIcon,\n keyboard: KeyboardIcon,\n layout: LayoutIcon,\n leave: LeaveIcon,\n 'light-bulb': LightBulbIcon,\n link: LinkIcon,\n list: ListIcon,\n live: LiveIcon,\n localization: LocalizationIcon,\n lock: LockIcon,\n logout: LogoutIcon,\n maximize: MaximizeIcon,\n media: MediaIcon,\n megaphone: MegaphoneIcon,\n menu: MenuIcon,\n mic: MicIcon,\n 'mic-off': MicOffIcon,\n minimize: MinimizeIcon,\n minus: MinusIcon,\n 'minus-circle': MinusCircleIcon,\n mobile: MobileIcon,\n 'more-options': MoreOptionsIcon,\n 'move-left': MoveLeftIcon,\n 'move-right': MoveRightIcon,\n music: MusicIcon,\n 'on-air': OnAirIcon,\n 'open-new': OpenNewIcon,\n overview: OverviewIcon,\n page: PageIcon,\n 'panel-left': PanelLeftIcon,\n 'panel-right': PanelRightIcon,\n 'panel-up': PanelUpIcon,\n password: PasswordIcon,\n pause: PauseIcon,\n pencil: PencilIcon,\n people: PeopleIcon,\n pin: PinIcon,\n 'pin-slash': PinSlashIcon,\n pip: PipIcon,\n play: PlayIcon,\n player: PlayerIcon,\n playlist: PlaylistIcon,\n plus: PlusIcon,\n podcast: PodcastIcon,\n preview: PreviewIcon,\n 'private-chat': PrivateChatIcon,\n 'private-user-sessions': PrivateUserSessionsIcon,\n project: ProjectIcon,\n 'project-open': ProjectOpenIcon,\n properties: PropertiesIcon,\n 'question-mark': QuestionMarkIcon,\n react: ReactIcon,\n record: RecordIcon,\n 'record-group': RecordGroupIcon,\n redo: RedoIcon,\n refresh: RefreshIcon,\n replace: ReplaceIcon,\n reply: ReplyIcon,\n 'request-video': RequestVideoIcon,\n 'revert-to-original': RevertToOriginalIcon,\n rewind: RewindIcon,\n save: SaveIcon,\n 'save-as-copy': SaveAsCopyIcon,\n scissors: ScissorsIcon,\n 'screenshare-off': ScreenshareOffIcon,\n 'screenshare-on': ScreenshareOnIcon,\n search: SearchIcon,\n send: SendIcon,\n shapes: ShapesIcon,\n share: ShareIcon,\n 'sharing-permissions': SharingPermissionsIcon,\n simulcast: SimulcastIcon,\n sort: SortIcon,\n sparkle: SparkleIcon,\n speed: SpeedIcon,\n spinner: SpinnerIcon,\n stats: StatsIcon,\n 'switch-accounts': SwitchAccountsIcon,\n tag: TagIcon,\n teleprompter: TeleprompterIcon,\n 'text-size': TextSizeIcon,\n thumbnail: ThumbnailIcon,\n 'thumbs-down': ThumbsDownIcon,\n 'thumbs-up': ThumbsUpIcon,\n 'timeline-vertical': TimelineVerticalIcon,\n token: TokenIcon,\n transcript: TranscriptIcon,\n transitions: TransitionsIcon,\n transparency: TransparencyIcon,\n trends: TrendsIcon,\n 'trial-unlock-clock': TrialUnlockClockIcon,\n trim: TrimIcon,\n turnstile: TurnstileIcon,\n undo: UndoIcon,\n unlock: UnlockIcon,\n upload: UploadIcon,\n 'users-permissions': UsersPermissionsIcon,\n 'view-stream': ViewStreamIcon,\n volume: VolumeIcon,\n 'volume-off': VolumeOffIcon,\n 'volume-up': VolumeUpIcon,\n 'volume-x': VolumeXIcon,\n wand: WandIcon,\n waveform: WaveformIcon,\n webhook: WebhookIcon,\n 'zoom-in': ZoomInIcon,\n 'zoom-out': ZoomOutIcon,\n};\n\nexport type IconNameType = keyof typeof iconMap;\n","import { isNotUndefined, isRecord, isUndefined } from '@wistia/type-guards';\nimport { useMemo } from 'react';\nimport { useActiveMq } from '../../../hooks/useMq';\n\ntype Breakpoints =\n | 'isLgAndDown'\n | 'isLgAndUp'\n | 'isMdAndDown'\n | 'isMdAndUp'\n | 'isSmAndDown'\n | 'isSmAndUp'\n | 'isXlAndDown'\n | 'isXlAndUp'\n | 'isXsAndDown'\n | 'isXsAndUp';\n\ntype AtLeastOneBreakpoint<T, U = { [K in keyof T]: Pick<T, K> }> = Partial<T> & U[keyof U];\n\nexport type ResponsiveObject<T> = AtLeastOneBreakpoint<Record<Breakpoints, T>> & {\n base: T;\n};\n\nconst isResponsiveObject = <T>(values: unknown): values is ResponsiveObject<T> => {\n return (\n typeof values === 'object' && values !== null && !Array.isArray(values) && 'base' in values\n );\n};\n\n/** How to use in a component\n * const Example = ({ someProp }: ExampleProps) => {\n * const somePropResponsiveValue = useResponsiveProp<ExampleProps['someProp']>(someProp);\n *\n * return <div>{somePropResponsiveValue}</div>;\n * }\n *\n * The end use could implement either:\n * <Example someProp=\"a normal value\" />\n * <Example someProp={{ base: 'baselinevalue', isMdAndUp: 'value for medium screens', isLgAndUp: 'value for larger screens' }} />\n */\nexport const useResponsiveProp = <T>(values: ResponsiveObject<T> | T) => {\n const activeMediaQueries = useActiveMq();\n return useMemo(() => {\n if (isRecord(values) && isResponsiveObject(values)) {\n const mq = activeMediaQueries.find((key) => key in values) as Breakpoints | 'base';\n return isNotUndefined(mq) && isNotUndefined(values[mq]) ? values[mq] : values.base;\n }\n return values;\n }, [activeMediaQueries, values]);\n};\n\ntype ResponsiveProps<ComponentProps> = {\n [K in keyof ComponentProps]: ComponentProps[K] | ResponsiveObject<ComponentProps[K]>;\n};\n\n/** How to use in a component\n * const Example = (props: ExampleProps) => {\n * const propsWithResponsivePropsResolved = useResponsiveProps<ExampleProps>(props, ['someProp', 'someOtherProp']);\n * or if you want to attempt to resolve all props\n * const propsWithResponsivePropsResolved = useResponsiveProps<ExampleProps>(props);\n * }\n */\nexport const useResponsiveProps = <T>(props: ResponsiveProps<T>, allowedKeys?: (keyof T)[]) => {\n const activeMediaQueries = useActiveMq();\n return useMemo(() => {\n const keys = isUndefined(allowedKeys) ? Object.keys(props) : allowedKeys;\n\n const resolvedProps = {\n ...props,\n };\n\n keys.forEach((_propKey) => {\n const propKey = _propKey as keyof T;\n const values = props[propKey];\n if (isRecord(values) && isResponsiveObject(values)) {\n const mq = activeMediaQueries.find((key) => key in values) as Breakpoints | 'base';\n resolvedProps[propKey] =\n isNotUndefined(mq) && isNotUndefined(values[mq])\n ? (values[mq] as T[keyof T])\n : (values.base as T[keyof T]);\n }\n });\n return resolvedProps;\n }, [activeMediaQueries, props, allowedKeys]);\n};\n","import type {\n ComponentPropsWithRef,\n ForwardedRef,\n JSX,\n MouseEvent,\n ReactNode,\n AnchorHTMLAttributes,\n} from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { Link as RouterLink, useInRouterContext } from 'react-router';\nimport { isFunction, isNil, isNotNil, isNotUndefined, isUndefined } from '@wistia/type-guards';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { buttonResetCss } from '../../css/buttonResetCss';\n\nexport type LinkTypes = 'default' | 'email' | 'external' | 'phone';\n\n// this is copied from react-router because VMA uses an older version and does not have this type\n// some types have been commented out because we don't use them, and they would make the type more complex\n// TODO: when VMA is on react-router v7 we can remove this and import from 'react-router'\ntype ReactRouterLinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> & {\n // discover?: DiscoverBehavior;\n // prefetch?: PrefetchBehavior;\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n preventScrollReset?: boolean;\n // to: To;\n // relative?: RelativeRoutingType;\n viewTransition?: boolean;\n};\n\nconst generateHref = (\n href: string | undefined,\n type: LinkTypes | undefined,\n disabled: boolean,\n): string | undefined => {\n // when a link is disabled, we don't want an href value because\n // the browser displays a tooltip \"hint\" of the href to the user\n if (disabled || isNil(href)) {\n return undefined;\n }\n\n let modifiedHref = href;\n\n if (type === 'phone') {\n modifiedHref = `tel:${href}`;\n }\n\n if (type === 'email') {\n modifiedHref = `mailto:${href}`;\n }\n return modifiedHref;\n};\n\ntype BaseProps = {\n /**\n * A Promise to invoke before navigating to location.\n * _Caution: if used with `external` type prop a new window will **not** be opened_\n */\n beforeAction?: (() => Promise<void>) | (() => void);\n /**\n * Text that appears inside of the link\n *\n * @type ReactNode\n */\n children: ReactNode;\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Disables the link\n */\n disabled?: boolean;\n /**\n * Icon to display on the left side of the link. Must be an instance of [Icon](?path=/docs/components-icon--docs)\n */\n leftIcon?: ReactNode | undefined;\n /**\n * Icon to display on the right side of the link. Must be an instance of [Icon](?path=/docs/components-icon--docs)\n */\n rightIcon?: ReactNode | undefined;\n /**\n * Type of link to display\n *\n * * `email` creates a mailto\n * * `phone` creates a telephone number\n * * `external` will open links in a new window\n */\n type?: LinkTypes | undefined;\n /**\n * Controls the underline behavior of the link\n *\n * * `none` - no underline (default)\n * * `always` - always show underline\n * * `hover` - show underline only on hover\n */\n underline?: 'always' | 'hover' | 'none';\n};\n\ntype LinkAsLinkProps = BaseProps &\n ComponentPropsWithRef<'a'> &\n ReactRouterLinkProps & {\n href: string | undefined;\n type?: LinkTypes;\n };\n\ntype LinkAsButtonProps = BaseProps &\n ComponentPropsWithRef<'button'> & {\n href?: never;\n type?: 'button' | 'reset' | 'submit';\n };\n\nexport type LinkProps = LinkAsButtonProps | LinkAsLinkProps;\n\nconst isButton = (props: Omit<LinkProps, 'children'>): props is LinkAsButtonProps =>\n isUndefined(props.href);\n\nconst isLink = (props: Omit<LinkProps, 'children'>): props is LinkAsLinkProps =>\n isNotUndefined(props.href);\n\ntype StyledLinkProps = {\n href?: string | undefined;\n $colorScheme: ColorSchemeTypes;\n $disabled: boolean;\n $underline: 'always' | 'hover' | 'none';\n};\n\nconst StyledLink = styled.a<StyledLinkProps>`\n ${({ href }) => isNil(href) && buttonResetCss};\n ${({ $colorScheme }) => getColorScheme($colorScheme)}\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n font-family: inherit;\n color: ${({ $disabled }) =>\n $disabled ? 'var(--wui-color-text-disabled)' : 'var(--wui-color-text-link)'};\n text-decoration: ${({ $underline }) => ($underline === 'always' ? 'underline' : 'none')};\n display: inline-flex;\n align-items: baseline;\n gap: var(--wui-space-01);\n\n &:hover {\n text-decoration: ${({ $underline }) =>\n $underline === 'hover' || $underline === 'always' ? 'underline' : 'none'};\n }\n\n button& {\n display: inline;\n line-height: inherit;\n vertical-align: baseline;\n }\n\n && {\n svg {\n width: 14px;\n height: 14px;\n flex: 0 0 14px;\n }\n }\n`;\n\n/**\n * Links are used for navigation. If no `href` is supplied, a button that is visually styled to appear as a link\n * is rendered. If used in a `react-router` context, their [Link](https://reactrouter.com/en/main/components/link).\n * component is used, otherwise a native `a` element.\n *\n * This means in addition to its own props, `Link` can use props from `react-router`'s `Link` component. View their documentation [here](https://reactrouter.com/en/main/components/link).\n * The one prop we ignore from react-router is `to`. We use `href` instead and map it under the hood.\n */\nexport const Link = forwardRef<HTMLAnchorElement | HTMLButtonElement, LinkProps>(\n (\n {\n beforeAction,\n children,\n type,\n disabled = false,\n colorScheme = 'inherit',\n underline = 'none',\n leftIcon,\n rightIcon,\n 'aria-disabled': ariaDisabled,\n role,\n ...props\n }: LinkProps,\n ref,\n ): JSX.Element | null => {\n // see: https://api.reactrouter.com/v7/functions/react_router.useInRouterContext.html\n const inRouterContext = useInRouterContext();\n const to = generateHref(props.href, type, disabled);\n const shouldUseReactRouterLink =\n inRouterContext && type !== 'external' && !to?.startsWith('http');\n // note: an external type link would require `window.open(this.href,'_blank')` here\n // but that will be swallowed by the browser popup blocker\n // better to just treat an external link with a beforeAction as a default link\n // see: https://www.w3.org/TR/DOM-Level-3-Events/#trusted-events\n const handleClick = async (event: MouseEvent) => {\n if (disabled) {\n event.preventDefault();\n } else if (beforeAction) {\n if (!shouldUseReactRouterLink) {\n event.preventDefault();\n }\n\n try {\n await beforeAction();\n } catch (error: unknown) {\n console.error(error); // eslint-disable-line no-console\n } finally {\n if (isFunction(props.onClick)) {\n props.onClick(event);\n }\n\n // Manually load the page if we aren't in a router context\n if (!shouldUseReactRouterLink && isNotNil(to)) {\n window.location.assign(to);\n }\n }\n } else if (isFunction(props.onClick)) {\n props.onClick(event);\n } else {\n // do nothing\n }\n };\n\n const commonProps = {\n $colorScheme: colorScheme,\n $disabled: disabled,\n $underline: underline,\n onClick: handleClick,\n 'aria-disabled': ariaDisabled ?? (disabled ? 'true' : undefined),\n };\n\n if (isButton(props)) {\n return (\n <StyledLink\n ref={ref as ForwardedRef<HTMLButtonElement>}\n as=\"button\"\n type=\"button\"\n {...props}\n {...commonProps}\n >\n {children}\n </StyledLink>\n );\n }\n\n if (isLink(props)) {\n const externalLinkProps =\n type === 'external' ? { target: '_blank', rel: 'noopener noreferrer' } : null;\n\n const routerSpecificProps = shouldUseReactRouterLink\n ? {\n // TODO: Using 'any' here due to styled-components typing limitations with RouterLink\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any\n as: RouterLink as any,\n to: to ?? '',\n }\n : {\n as: 'a' as const,\n href: to,\n };\n\n const combinedProps = {\n ref: ref as ForwardedRef<HTMLAnchorElement>,\n ...props,\n ...commonProps,\n ...externalLinkProps,\n ...routerSpecificProps,\n };\n\n return (\n <StyledLink\n {...combinedProps}\n role={role ?? (disabled ? 'link' : undefined)}\n >\n {leftIcon ?? null}\n {children}\n {rightIcon ?? null}\n </StyledLink>\n );\n }\n\n // This should never return null, but is necessary because type narrowing has to be used to make refs play nice\n return null;\n },\n);\n\nLink.displayName = 'Link_UI';\n","import type { JSX, ComponentPropsWithoutRef } from 'react';\nimport { useState, useMemo, useEffect } from 'react';\nimport { isNil, isNotNil } from '@wistia/type-guards';\nimport { styled } from 'styled-components';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { formatNameForDisplay } from './formatNameForDisplay';\nimport { Image } from '../Image';\nimport type { BrandColorSchemeTypes } from '../ColorSchemeWrapper/ColorSchemeWrapper';\nimport { brandColorSchemeOptions } from '../ColorSchemeWrapper/ColorSchemeWrapper';\n\ntype AvatarInstanceType = 'image' | 'initials';\n\ntype AvatarImageLoadStateType = 'error' | 'loaded' | 'loading';\n\ntype AvatarSizeType = 'lg' | 'md' | 'sm';\n\nexport type AvatarStatus = { type: AvatarInstanceType; state: AvatarImageLoadStateType };\n\nexport type AvatarProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * The height and width of the avatar (overrides size prop)\n */\n heightAndWidth?: number;\n /**\n * The URL of the image to display\n */\n imageUrl?: string | null;\n /**\n * A string that will deterministically set the initials & background color of the avatar\n *\n * _note: only first initial shown regardless of characters provided_\n */\n name?: string | null;\n /**\n * A predefined size for the avatar\n */\n size?: AvatarSizeType;\n /**\n * A callback that is invoked after the image has loaded or failed to load\n */\n onImageLoad?: (avatarStatus: AvatarStatus) => void;\n};\n\nexport const avatarSizeMap = {\n sm: 16,\n md: 24,\n lg: 32,\n};\n\nconst Initial = ({ initial }: { initial: string }) => (\n <svg\n data-wui-avatar-initial={true}\n style={{ width: '100%', height: '100%', color: 'var(--wui-color-text-on-fill)' }}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 13.5h24\"\n id=\"P\"\n />\n <text>\n <textPath\n dominantBaseline=\"middle\"\n fill=\"currentColor\"\n fontSize=\"16px\"\n href=\"#P\"\n startOffset=\"50%\"\n textAnchor=\"middle\"\n >\n {initial}\n </textPath>\n </text>\n </svg>\n);\n\nconst AvatarWrapper = styled.div<{ $heightAndWidth: number; $colorScheme: ColorSchemeTypes }>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n width: ${({ $heightAndWidth }) => $heightAndWidth}px;\n height: ${({ $heightAndWidth }) => $heightAndWidth}px;\n place-content: center;\n overflow: hidden;\n background-color: var(--wui-color-bg-fill);\n border-radius: var(--wui-border-radius-rounded);\n display: grid;\n user-select: none;\n\n > * {\n grid-area: 1 / 1;\n }\n\n > img {\n aspect-ratio: 1 / 1;\n }\n\n --wui-avatar-inset-opacity: 10%;\n\n outline: 2px solid rgb(0 0 0 / var(--wui-avatar-inset-opacity));\n outline-offset: -2px;\n\n [data-wui-avatar-initial] {\n font-family: var(--wui-typography-family-default);\n font-weight: var(--wui-typography-weight-label-bold);\n padding: min(12.5%, 4px);\n }\n\n &:only-child {\n a:hover & {\n --wui-avatar-inset-opacity: 20%;\n\n background-color: var(--wui-color-bg-fill-hover);\n }\n\n a:active & {\n --wui-avatar-inset-opacity: 30%;\n\n background-color: var(--wui-color-bg-fill-active);\n }\n }\n`;\n\nconst chooseColorScheme = (name: string | null | undefined): BrandColorSchemeTypes => {\n // default color scheme\n if (isNil(name) || name === 'Anonymous') {\n return 'blue';\n }\n\n const multiplier = 31;\n\n const hashCode = (str: string) =>\n Array.from(str).reduce((sum, char) => (Math.imul(multiplier, sum) + char.charCodeAt(0)) | 0, 0); // eslint-disable-line no-bitwise\n\n const index = Math.abs(hashCode(name)) % brandColorSchemeOptions.length;\n\n return brandColorSchemeOptions[index] ?? 'blue';\n};\n\n/**\n * An avatar uses a photo or initials to represent an identity.\n */\nexport const Avatar = ({\n imageUrl,\n heightAndWidth,\n name,\n size = 'md',\n onImageLoad,\n ...props\n}: AvatarProps): JSX.Element => {\n const [imageLoadState, setImageLoadState] = useState<AvatarImageLoadStateType>('loading');\n\n // reset image load state when imageUrl changes so that it doesn't get stuck\n // in an error loading state\n useEffect(() => {\n setImageLoadState('loading');\n }, [imageUrl]);\n\n const handleImageLoad = () => {\n setImageLoadState('loaded');\n onImageLoad?.({ state: 'loaded', type: 'image' });\n };\n\n const handleImageLoadError = () => {\n setImageLoadState('error');\n onImageLoad?.({ state: 'error', type: 'initials' });\n };\n\n const avatarSize = heightAndWidth ?? avatarSizeMap[size];\n const avatarColor = useMemo(() => chooseColorScheme(name), [name]);\n\n return (\n <AvatarWrapper\n $colorScheme={avatarColor}\n $heightAndWidth={avatarSize}\n {...props}\n >\n <Initial initial={formatNameForDisplay(name)} />\n {isNotNil(imageUrl) && imageLoadState !== 'error' && (\n <Image\n alt={isNotNil(name) ? name : ''}\n data-state={imageLoadState}\n fit=\"cover\"\n onError={handleImageLoadError}\n onLoad={handleImageLoad}\n src={imageUrl}\n />\n )}\n </AvatarWrapper>\n );\n};\n\nAvatar.displayName = 'Avatar_UI';\n","import { isNil, isString, isEmptyString } from '@wistia/type-guards';\n\nconst containsEmojiCharacter = (char: string): boolean => {\n // this combines Unicode character class escape - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Unicode_character_class_escape\n // with the `Extended_Pictograph` property - https://unicode.org/reports/tr51/\n const emojiRegex = /<a?:.+?:\\d{18}>|\\p{Extended_Pictographic}/gu;\n\n return emojiRegex.test(char);\n};\n\nexport const formatNameForDisplay = (name: string | null | undefined): string => {\n if (isNil(name) || !isString(name) || isEmptyString(name) || containsEmojiCharacter(name)) {\n return 'U'; // fallback initials are `U` for User\n }\n\n // only display the first character as initial\n const firstChar = name.trim().substring(0, 1);\n\n // always return an uppercase initial\n return firstChar.toUpperCase();\n};\n","import type { ComponentPropsWithoutRef, JSX, SyntheticEvent } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { BorderRadius } from '../../css/designTokens/borderRadius';\n\nconst getFillStyle = (fillContainer: boolean | string): string | undefined => {\n if (fillContainer === 'horizontal') {\n return 'width: 100%;';\n }\n if (fillContainer === 'vertical') {\n return 'height: 100%;';\n }\n if (fillContainer === true) {\n return `\n width: 100%;\n height: 100%;\n `;\n }\n return undefined;\n};\n\nexport type StyledImageProps = {\n $fillContainer: boolean | 'horizontal' | 'vertical';\n $objFit?: string | undefined;\n $objPosition?: string | undefined;\n $borderRadius: BorderRadius | undefined;\n};\n\nconst StyledImage = styled.img<StyledImageProps>`\n border-radius: ${({ $borderRadius }) =>\n isNotNil($borderRadius) ? `var(--wui-${$borderRadius})` : undefined};\n ${({ $fillContainer }) => getFillStyle($fillContainer)};\n object-fit: ${({ $objFit }) => $objFit};\n object-position: ${({ $objPosition }) => $objPosition};\n`;\n\nexport type ImageProps = ComponentPropsWithoutRef<'img'> & {\n /**\n * Accessible text to apply to the image\n */\n alt: string;\n /**\n * Border radius to apply to the image\n */\n borderRadius?: BorderRadius;\n /**\n * Specifies whether the width and/or height should fill the container\n *\n * *Note: this will override height/width attributes*\n */\n fill?: boolean | 'horizontal' | 'vertical';\n /**\n * Specifies how the image's intrinsic size (ie. its natural size) should\n * be adjusted to fit within its container\n */\n fit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';\n /**\n * Indicates how the browser should load the image; `eager`loads the image immediately,\n * `lazy` defers loading the image until it reaches a calculated distance from the viewport.\n * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-loading\n */\n loading?: 'eager' | 'lazy';\n /**\n * Specifies how the image will align itself in its container\n */\n position?: string;\n /**\n * URL to image file\n */\n src: string;\n /**\n * A callback that is invoked after the image has loaded\n */\n onLoad?: (event?: SyntheticEvent<HTMLImageElement>) => void;\n /**\n * A callback that is invoked after the image has failed to load\n */\n onError?: (event?: SyntheticEvent<HTMLImageElement>) => void;\n};\n\nexport const Image = ({\n src,\n alt,\n borderRadius,\n fill: fillContainer = false,\n fit: objFit,\n loading = 'lazy',\n position: objPosition,\n onLoad,\n onError,\n ...props\n}: ImageProps): JSX.Element => (\n <StyledImage\n $borderRadius={borderRadius}\n $fillContainer={fillContainer}\n $objFit={objFit}\n $objPosition={objPosition}\n alt={alt}\n loading={loading}\n onError={onError}\n onLoad={onLoad}\n src={src}\n {...props}\n />\n);\n\nImage.displayName = 'Image_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\n\nconst defaultColorSchemeOptions = ['standard', 'inherit'] as const;\n\nexport type DefaultColorSchemeTypes = (typeof defaultColorSchemeOptions)[number];\n\nconst semanticColorSchemeOptions = ['error', 'info', 'success', 'warning'] as const;\n\nexport type SemanticColorSchemeTypes = (typeof semanticColorSchemeOptions)[number];\n\nexport const brandColorSchemeOptions = [\n 'blue',\n 'green',\n 'orange',\n 'pink',\n 'purple',\n 'red',\n 'yellow',\n] as const;\n\nexport type BrandColorSchemeTypes = (typeof brandColorSchemeOptions)[number];\n\nexport const vendorColorSchemeOptions = [\n 'vendor-hubspot',\n 'vendor-marketo',\n 'vendor-pardot',\n] as const;\n\nexport type VendorColorSchemeTypes = (typeof vendorColorSchemeOptions)[number];\n\nexport const colorSchemeOptions = [\n ...defaultColorSchemeOptions,\n ...semanticColorSchemeOptions,\n ...brandColorSchemeOptions,\n ...vendorColorSchemeOptions,\n] as const;\n\nexport type ColorSchemeTypes = (typeof colorSchemeOptions)[number];\n\ntype StyledColorSchemeWrapperProps = {\n $nav: boolean;\n $colorScheme: ColorSchemeTypes;\n children: ReactNode;\n};\n\nconst StyledColorSchemeWrapper = styled.div<StyledColorSchemeWrapperProps>`\n ${({ $colorScheme, $nav }) => getColorScheme($nav ? 'nav' : $colorScheme)};\n`;\n\nexport type ColorSchemeWrapperProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * @ignore For use in creating navs - will override any colorScheme prop\n */\n __nav?: boolean;\n\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Children\n */\n children: ReactNode;\n};\n\n/**\n * A wrapper to apply a color scheme to its children.\n */\nexport const ColorSchemeWrapper = ({\n __nav = false,\n colorScheme = 'inherit',\n children,\n ...props\n}: ColorSchemeWrapperProps): JSX.Element => (\n <StyledColorSchemeWrapper\n $colorScheme={colorScheme}\n $nav={__nav}\n {...props}\n >\n {children}\n </StyledColorSchemeWrapper>\n);\n\nColorSchemeWrapper.displayName = 'ColorSchemeWrapper_UI';\n","import type { ComponentPropsWithoutRef, JSX, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\n\ntype BadgeVariants = 'default' | 'outline';\n\ntype StyledBadgeProps = {\n $colorScheme: ColorSchemeTypes;\n $hasIcon: boolean;\n $variant: BadgeProps['variant'];\n};\n\nexport type BadgeProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Optional `Icon` component to use. Must be an instance of [Icon](../?path=/docs/components-icon--docs)\n */\n icon?: JSX.Element;\n /**\n * The text to display in the `Badge`\n */\n label?: ReactNode;\n /**\n * The variant of the `Badge`\n */\n variant?: BadgeVariants;\n};\n\nconst StyledBadge = styled.div<StyledBadgeProps>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n align-items: center;\n background-color: var(--wui-color-bg-surface-secondary);\n box-shadow: ${({ $variant }) =>\n $variant === 'outline' ? 'inset 0 0 0 1px var(--wui-color-border)' : 'none'};\n border-radius: var(--wui-border-radius-rounded);\n color: var(--wui-color-text);\n display: inline-flex;\n font-size: var(--wui-typography-label-4-size);\n font-weight: var(--wui-typography-label-4-weight);\n gap: var(--wui-space-01);\n justify-content: center;\n line-height: var(--wui-typography-label-3-line-height);\n padding: var(--wui-space-01) var(--wui-space-02);\n width: fit-content;\n\n /* Icon component size and color */\n && {\n svg {\n color: var(--wui-color-icon);\n height: 12px;\n width: 12px;\n flex: 0 0 12px;\n }\n }\n`;\n\n/**\n * A `Badge` is a compact label, with optional icon, to convey status or context.\n */\nexport const Badge = forwardRef<HTMLDivElement, BadgeProps>(\n ({ colorScheme = 'inherit', label, icon, variant = 'default', ...props }, ref): JSX.Element => {\n const hasIcon = isNotNil(icon);\n\n return (\n <StyledBadge\n ref={ref}\n {...props}\n $colorScheme={colorScheme}\n $hasIcon={hasIcon}\n $variant={variant}\n >\n {hasIcon ? icon : null}\n {isNotNil(label) ? <span>{label}</span> : null}\n </StyledBadge>\n );\n },\n);\n\nBadge.displayName = 'Badge_UI';\n","import { useEffect, useState, useMemo } from 'react';\nimport type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\nimport { isNil, isNotNil } from '@wistia/type-guards';\nimport { Box } from '../Box';\nimport { Heading } from '../Heading';\nimport { Text } from '../Text';\nimport { Icon } from '../Icon';\nimport { ButtonGroup } from '../ButtonGroup';\nimport { IconButton } from '../IconButton';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { useElementObserver } from '../../hooks/useElementObserver';\n\nexport const BREAKPOINT_WIDTH = 600;\nconst VERTICAL_BREAKPOINT_WIDTH = 284;\nconst MIN_IMAGE_WIDTH = 400;\n\ntype StyledBannerProps = {\n $colorScheme: ColorSchemeTypes;\n $contentHeight: number;\n $width?: number | undefined;\n};\n\nconst StyledBanner = styled.div<StyledBannerProps>`\n --wui-banner-padding: var(--wui-space-04);\n --wui-banner-content-height: ${({ $contentHeight }) => $contentHeight}px;\n\n display: flex;\n flex-direction: row;\n background: var(--wui-color-bg-surface-secondary);\n border-radius: var(--wui-border-radius-03);\n position: relative;\n overflow: hidden;\n align-items: center;\n\n &[data-wui-banner-content-prominence='secondary'] {\n --wui-banner-padding: var(--wui-space-05);\n\n box-shadow: inset 0 0 0 2px var(--wui-color-border);\n }\n\n &:has([data-wui-banner-image]) {\n --wui-banner-padding: var(--wui-space-05);\n }\n\n &[data-wui-banner-content-prominence='small'] {\n --wui-banner-padding: var(--wui-space-04);\n }\n\n &[data-wui-banner-orientation='vertical'] {\n flex-direction: column;\n align-items: stretch;\n }\n\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n`;\n\nexport type BannerProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * The main text content displayed in the banner\n */\n bodyText: ReactNode;\n /**\n * Optional heading text displayed at the top of the banner content\n */\n headingText?: string;\n /**\n * Optional `Icon` component to use. Must be an instance of [Icon](../?path=/docs/components-icon--docs)\n */\n icon?: JSX.Element;\n /**\n * Controls the visual prominence of the banner\n */\n prominence?: 'primary' | 'secondary';\n colorScheme?: ColorSchemeTypes;\n /**\n * Optional image element to display in the banner\n */\n image?: JSX.Element | undefined;\n /**\n * Controls the layout direction. If set to 'auto', the banner will switch between horizontal and vertical based on the container width.\n */\n orientation?: 'auto' | 'horizontal' | 'vertical';\n /**\n * Primary call-to-action element (typically a [Button]() of the `solid` variant)\n */\n primaryAction?: ReactNode;\n /**\n * Secondary call-to-action element (typically a [Button]() of the `outline` variant)\n */\n secondaryAction?: ReactNode;\n /**\n * Optional callback function when the close button is clicked. If not provided, the close button will not be displayed.\n */\n onClose?: () => void;\n};\n\n/**\n * The `Banner` component is for displaying contextual information to the user such as alerts or feature announcements.\n */\nexport const Banner = ({\n bodyText,\n colorScheme = 'inherit',\n headingText,\n icon,\n image,\n onClose,\n orientation = 'horizontal',\n primaryAction,\n prominence = 'primary',\n secondaryAction,\n ...props\n}: BannerProps): JSX.Element => {\n const [containerRef, { width }] = useElementObserver<HTMLDivElement>();\n const [contentRef, { height: contentHeight }] = useElementObserver<HTMLDivElement>();\n const [isSmallContainer, setIsSmallContainer] = useState(false);\n const [isVerticalLayout, setIsVerticalLayout] = useState(orientation === 'vertical');\n\n useEffect(() => {\n const breakpoint = orientation === 'vertical' ? VERTICAL_BREAKPOINT_WIDTH : BREAKPOINT_WIDTH;\n setIsSmallContainer(width <= breakpoint);\n\n if (orientation === 'auto') {\n setIsVerticalLayout(width <= BREAKPOINT_WIDTH);\n }\n }, [width, orientation]);\n\n const hasImage = isNotNil(image);\n const shouldShowImage = hasImage && (isVerticalLayout || width >= MIN_IMAGE_WIDTH);\n\n const iconPosition = useMemo(() => {\n if (isNil(icon)) {\n return 'none';\n }\n if (isSmallContainer) {\n return shouldShowImage ? 'inline' : 'above';\n }\n return prominence === 'secondary' ? 'inline' : 'above';\n }, [icon, isSmallContainer, shouldShowImage, prominence]);\n\n const hasActions = isNotNil(primaryAction) || isNotNil(secondaryAction);\n\n const contentDirection = useMemo(() => {\n if (orientation === 'horizontal' && !hasActions) {\n return 'row';\n }\n return !shouldShowImage && prominence === 'primary' && !isSmallContainer && !isVerticalLayout\n ? 'row'\n : 'column';\n }, [orientation, shouldShowImage, prominence, isSmallContainer, isVerticalLayout, hasActions]);\n\n const headingVariant = isSmallContainer || prominence === 'primary' ? 'heading5' : 'heading3';\n const textVariant = prominence === 'primary' || isSmallContainer ? 'body3' : 'body2';\n const buttonSize = isSmallContainer ? 'sm' : 'md';\n\n return (\n <StyledBanner\n {...props}\n ref={containerRef}\n $colorScheme={colorScheme}\n $contentHeight={contentHeight}\n $width={!isSmallContainer && !isVerticalLayout ? width : undefined}\n data-wui-banner-content-prominence={isSmallContainer ? 'small' : prominence}\n data-wui-banner-orientation={isVerticalLayout ? 'vertical' : 'horizontal'}\n >\n {shouldShowImage ? image : null}\n\n <Box\n ref={contentRef}\n alignItems=\"stretch\"\n direction={contentDirection}\n flexMode=\"grow\"\n gap=\"space-04\"\n style={{ padding: 'var(--wui-banner-padding)' }}\n >\n {iconPosition === 'above' && (\n <Box\n alignSelf=\"stretch\"\n direction=\"column\"\n justifyContent=\"center\"\n >\n {icon}\n </Box>\n )}\n\n <Box\n direction=\"column\"\n flexMode={contentDirection === 'row' ? 'grow' : 'initial'}\n gap={iconPosition === 'inline' ? 'space-01' : 'space-00'}\n justifyContent=\"center\"\n >\n {isNotNil(headingText) ? (\n <Heading variant={headingVariant}>\n {iconPosition === 'inline' && <>{icon} </>}\n {headingText}\n </Heading>\n ) : null}\n\n <Text variant={textVariant}>{bodyText}</Text>\n </Box>\n\n {hasActions ? (\n <ButtonGroup\n buttonSize={buttonSize}\n collapseOnSmallScreens={false}\n style={{ paddingRight: 'var(--wui-space-02)' }}\n >\n {isNotNil(primaryAction) && primaryAction}\n {isNotNil(secondaryAction) && secondaryAction}\n </ButtonGroup>\n ) : null}\n </Box>\n\n {isNotNil(onClose) && (\n <IconButton\n label=\"Close\"\n onClick={onClose}\n size=\"sm\"\n style={{\n position: 'absolute',\n top: 'var(--wui-space-01)',\n right: 'var(--wui-space-01)',\n }}\n variant=\"soft\"\n >\n <Icon type=\"close\" />\n </IconButton>\n )}\n </StyledBanner>\n );\n};\n\nBanner.displayName = 'Banner_UI';\n","import type { ComponentPropsWithoutRef, ReactNode, JSX, ElementType } from 'react';\nimport { forwardRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNotNil, isRecord, isNotUndefined } from '@wistia/type-guards';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport type { Spacings } from '../../css/designTokens/spacing';\nimport type {\n JustifyContentType,\n AlignContentType,\n AlignItemsType,\n AlignSelfType,\n DirectionType,\n} from './flexTypes';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp';\nimport { makePolymorphic } from '../../private/helpers/makePolymorphic';\n\ntype FillType = boolean | 'horizontal' | 'vertical';\n\ntype Gap = {\n column: Spacings;\n row: Spacings;\n};\n\ntype ResponsiveGap = ResponsiveObject<Gap | Spacings>;\n\nexport type FlexModeType = 'equal' | 'fluid' | 'grow' | 'initial' | 'rigid';\n\nconst getGapStyle = (gap?: Gap | Spacings) => {\n if (isNotNil(gap)) {\n if (isRecord(gap)) {\n return Object.entries(gap)\n .map(([key, value]) => {\n return `${key}-gap: var(--wui-${value as string});`;\n })\n .join('');\n }\n return `gap: var(--wui-${gap.toString()});`;\n }\n return undefined;\n};\n\nconst getFillStyle = (fill: FillType): string | undefined => {\n if (fill === 'horizontal') {\n return 'width: 100%;';\n }\n if (fill === 'vertical') {\n return 'height: 100%;';\n }\n if (fill) {\n return `\n width: 100%;\n height: 100%;\n `;\n }\n return undefined;\n};\n\nconst getFillViewportStyle = (\n fillViewport: boolean | 'horizontal' | 'vertical',\n): string | undefined => {\n if (fillViewport === 'horizontal') {\n return 'width: 100vw;';\n }\n if (fillViewport === 'vertical') {\n return 'height: 100vh;';\n }\n if (fillViewport) {\n return `\n width: 100vw;\n height: 100vh;\n `;\n }\n return undefined;\n};\n\nconst getFlexStyle = (flexMode?: FlexModeType) => {\n if (!flexMode) {\n return null;\n }\n\n switch (flexMode) {\n // grows to fill space, won't shrink, starts at 0\n case 'grow':\n return css`\n flex: 1 0 0;\n `;\n\n // default behavior, can shrink but won't grow\n case 'initial':\n return css`\n flex: 0 1 auto;\n `;\n\n // equal distribution of space\n case 'equal':\n return css`\n flex: 1;\n `;\n\n // won't grow or shrink\n case 'rigid':\n return css`\n flex: 0 0 auto;\n `;\n\n // can grow and shrink from content size\n case 'fluid':\n return css`\n flex: 1 1 auto;\n `;\n\n default:\n return null;\n }\n};\n\ntype StyledBoxComponentProps = {\n $alignContent: AlignContentType;\n $alignItems: AlignItemsType;\n $alignSelf?: AlignSelfType | undefined;\n $basis?: string | undefined;\n $fillBox: FillType;\n $fillViewport: FillType;\n $flexDirection: DirectionType;\n $flexMode?: FlexModeType;\n $gap?: Gap | Spacings | undefined;\n $grow?: number | string | undefined;\n $height?: string | undefined;\n $inline?: boolean;\n $justifyContent: JustifyContentType;\n $order?: number | 'inherit' | 'initial' | 'unset' | undefined;\n $shrink?: number | undefined;\n $width?: string | undefined;\n $wrapItems: boolean;\n};\n\nconst StyledBoxComponent = styled.div<StyledBoxComponentProps>`\n /* properties meant for Box parent (flex container) */\n align-content: ${({ $alignContent }) => $alignContent};\n align-items: ${({ $alignItems }) => $alignItems};\n display: ${({ $inline }) => (isNotNil($inline) && $inline ? 'inline-flex' : 'flex')};\n flex-direction: ${({ $flexDirection }) => $flexDirection};\n flex-wrap: ${({ $wrapItems }) => ($wrapItems ? 'wrap' : 'nowrap')};\n justify-content: ${({ $justifyContent }) => $justifyContent};\n height: ${({ $height }) => $height ?? null};\n width: ${({ $width }) => $width ?? null};\n ${({ $fillBox: fill }) => getFillStyle(fill)};\n ${({ $fillViewport }) => getFillViewportStyle($fillViewport)};\n ${({ $flexMode }) => getFlexStyle($flexMode)};\n ${({ $gap }) => getGapStyle($gap)};\n\n /* properties meant for Box children (flex items) */\n align-self: ${({ $alignSelf }) => $alignSelf ?? null};\n flex-basis: ${({ $basis }) => (isNotNil($basis) ? $basis : null)};\n flex-grow: ${({ $grow }) => (isNotNil($grow) ? $grow : null)};\n flex-shrink: ${({ $shrink }) => (isNotNil($shrink) ? $shrink : null)};\n order: ${({ $order }) => (isNotNil($order) ? $order : null)};\n`;\n\nconst DEFAULT_ELEMENT = 'div';\n\n/**\n * CSS property => Box prop:\n * flex-direction => direction\n * justify-content => justifyContent\n * align-items => alignItems\n * align-content => alignContent\n * flex-wrap => wrapItems\n * gap => gap\n * display: inline-flex => inline\n */\nexport type BoxProps = ComponentPropsWithoutRef<typeof DEFAULT_ELEMENT> & {\n /**\n * Specifies how the browser distributes space between and around\n * items along the cross-axis of their container; has no effect on\n * single line flexible boxes. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n */\n alignContent?: AlignContentType | ResponsiveObject<AlignContentType>;\n /**\n * Specifies how the browser distributes space between and around\n * items along the cross-axis of their container; the difference\n * to the alignContent prop is that alignItems specifies the\n * alignment of the items within the current container's line,\n * whereas alignContent specifies the alignment of the lines themselves.\n * Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n */\n alignItems?: AlignItemsType | ResponsiveObject<AlignItemsType>;\n /**\n * Specifies how the browser aligns items of the current line, overriding the\n * alignItems value of parent; if any of the item's cross-axis margin is set to auto,\n * then alignSelf is ignored. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * *Note: only works for nested `<Box />`*\n */\n alignSelf?: AlignSelfType | ResponsiveObject<AlignSelfType>;\n /**\n * Specifies the initial main size of an item. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * *Note: Cannot be used with `flexMode` prop.*\n *\n * *Note: only works for nested `<Box />`*\n */\n basis?: ResponsiveObject<string> | string;\n /**\n * Pass an arbitrary child node\n */\n children?: ReactNode;\n /**\n * Specifies the main axis of the container. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n */\n direction?: DirectionType | ResponsiveObject<DirectionType>;\n /**\n * Specifies whether the width and/or height should fill the container.\n * Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * *Note: Cannot be used with height/width props when setting the corresponding dimension.*\n *\n * For example, `fill=\"vertical\"` or `fill={true}` cannot be used with the `height` prop,\n * and `fill=\"horizontal\"` or `fill={true}` cannot be used with the `width` prop.\n */\n fill?: FillType | ResponsiveObject<FillType>;\n /**\n * Specifies whether the width and/or height should fill the viewport.\n *\n * *Note: Cannot be used with height/width props when setting the corresponding dimension.*\n *\n * For example, `fillViewport=\"vertical\"` or `fillViewport={true}` cannot be used with the `height` prop,\n * and `fillViewport=\"horizontal\"` or `fillViewport={true}` cannot be used with the `width` prop.\n */\n fillViewport?: FillType;\n /**\n * Predefined `flex` behavior patterns. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * - `grow`: fills available space (`flex: 1 0 0`)\n * - `initial`: default behavior (`flex: 0 1 auto`)\n * - `equal`: equal space distribution (`flex: 1`)\n * - `rigid`: fixed size (`flex: 0 0 auto`)\n * - `fluid`: responsive (`flex: 1 1 auto`)\n */\n flexMode?: FlexModeType | ResponsiveObject<FlexModeType>;\n /**\n * Specifies the gaps (gutters) between rows and columns.\n * Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * Can be either a single spacing value that applies to both row and column gaps,\n * or an object specifying different values for row and column gaps.\n */\n gap?: Gap | ResponsiveGap | Spacings;\n /**\n * Specifies what amount of space inside the flex container the item should take up.\n * Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * *Note: Cannot be used with `flexMode` prop.*\n *\n * *Note: only works for nested `<Box />`*\n */\n grow?: ResponsiveObject<number | string> | number | string;\n /**\n * Specifies the height of the box. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * *Note: Cannot be used with fill=\"vertical\" or fillViewport=\"vertical\"*\n */\n height?: ResponsiveObject<string> | string;\n /**\n * Make Layout behave like an inline element but still lay out its content according to flexbox model.\n * Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n */\n inline?: ResponsiveObject<boolean> | boolean;\n /**\n * Specifies how the browser distributes space between and around\n * items along the main axis of their container. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n */\n justifyContent?: JustifyContentType | ResponsiveObject<JustifyContentType>;\n /**\n * Specifies the order used to lay out an item in its container. Items within the same\n * container are rendered in ascending order according to their order values.\n * Elements with the _same_ order value are rendered in the order in which they appear in code\n *\n * *Note: only works for nested `<Box />`*\n */\n order?: number | 'inherit' | 'initial' | 'unset';\n // This will inherit the jsdoc block from PolymorphicComponent\n renderAs?: ElementType;\n /**\n * Specifies how items will shrink inside the container when the default size of\n * items is larger than their container. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * *Note: Cannot be used with `flexMode` prop.*\n *\n * *Note: only works for nested `<Box />`*\n */\n shrink?: ResponsiveObject<number> | number;\n /**\n * Specifies whether items are forced into a single line or can be wrapped onto multiple lines.\n * Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n */\n wrapItems?: ResponsiveObject<boolean> | boolean;\n /**\n * Specifies the width of the box. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * *Note: Cannot be used with fill=\"horizontal\" or fillViewport=\"horizontal\"*\n */\n width?: ResponsiveObject<string> | string;\n};\n\nconst BoxComponent = forwardRef<HTMLDivElement, BoxProps>(\n (\n {\n alignContent = 'stretch',\n alignItems = 'flex-start',\n alignSelf,\n basis,\n children,\n direction = 'row',\n fill = false,\n fillViewport = false,\n gap,\n grow,\n height,\n inline = false,\n justifyContent = 'flex-start',\n order,\n renderAs,\n shrink,\n width,\n wrapItems = false,\n flexMode,\n ...props\n }: BoxProps,\n ref,\n ): JSX.Element => {\n const responsiveAlignContent = useResponsiveProp(alignContent);\n const responsiveAlignItems = useResponsiveProp(alignItems);\n const responsiveAlignSelf = useResponsiveProp(alignSelf);\n const responsiveBasis = useResponsiveProp(basis);\n const responsiveDirection = useResponsiveProp(direction);\n const responsiveFill = useResponsiveProp(fill);\n const responsiveFlexMode = useResponsiveProp(flexMode);\n const responsiveGap = useResponsiveProp(gap);\n const responsiveGrow = useResponsiveProp(grow);\n const responsiveHeight = useResponsiveProp(height);\n const responsiveInline = useResponsiveProp(inline);\n const responsiveJustifyContent = useResponsiveProp(justifyContent);\n const responsiveShrink = useResponsiveProp(shrink);\n const responsiveWidth = useResponsiveProp(width);\n const responsiveWrapItems = useResponsiveProp(wrapItems);\n\n // validate incompatible prop combinations\n if (isNotUndefined(responsiveHeight)) {\n if (responsiveFill === true || responsiveFill === 'vertical') {\n throw new Error('Cannot use height prop with fill=\"vertical\" or fill={true}');\n }\n if (fillViewport === true || fillViewport === 'vertical') {\n throw new Error(\n 'Cannot use height prop with fillViewport=\"vertical\" or fillViewport={true}',\n );\n }\n }\n\n if (isNotUndefined(responsiveWidth)) {\n if (responsiveFill === true || responsiveFill === 'horizontal') {\n throw new Error('Cannot use width prop with fill=\"horizontal\" or fill={true}');\n }\n if (fillViewport === true || fillViewport === 'horizontal') {\n throw new Error(\n 'Cannot use width prop with fillViewport=\"horizontal\" or fillViewport={true}',\n );\n }\n }\n\n return (\n <StyledBoxComponent\n ref={ref}\n $alignContent={responsiveAlignContent}\n $alignItems={responsiveAlignItems}\n $alignSelf={responsiveAlignSelf}\n $basis={responsiveBasis}\n $fillBox={responsiveFill}\n $fillViewport={fillViewport}\n $flexDirection={responsiveDirection}\n $flexMode={responsiveFlexMode}\n $gap={responsiveGap}\n $grow={responsiveGrow}\n $height={responsiveHeight}\n $inline={responsiveInline}\n $justifyContent={responsiveJustifyContent}\n $order={order}\n $shrink={responsiveShrink}\n $width={responsiveWidth}\n $wrapItems={responsiveWrapItems}\n as={renderAs ?? DEFAULT_ELEMENT}\n {...props}\n >\n {children}\n </StyledBoxComponent>\n );\n },\n);\n\nBoxComponent.displayName = 'Box_UI';\n\n/**\n * Box is a layout container using [CSS Flexbox](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox).\n */\n// @ts-expect-error makePolymorphic is causing issues with types in R19\nexport const Box = makePolymorphic<typeof DEFAULT_ELEMENT, BoxProps>(BoxComponent);\n","import type {\n ElementType,\n ReactElement,\n ReactNode,\n ComponentPropsWithoutRef,\n ComponentPropsWithRef,\n ForwardRefExoticComponent,\n} from 'react';\n\n// an object with unknown value\nexport type UnknownRecord = Record<string, unknown>;\n\n// shortcut to get the props of an element/component\ntype PropsOf<Component extends ElementType> = ComponentPropsWithoutRef<Component>;\n\n// given some base props and an override, merge them.\n// prettier-ignore\ntype ExtendedProps<Props = UnknownRecord, OverrideProps = UnknownRecord> = Omit<Props, keyof OverrideProps> & OverrideProps;\n\n// prop that allows overriding the rendered element\ntype ComponentProp<Component extends ElementType> = {\n /**\n * The component or HTML element to render as the root instead of the default.\n */\n renderAs?: Component;\n};\n\n/**\n * extend the polymorphic component props to always include children\n */\nexport type PolymorphicComponentProps<\n Component extends ElementType,\n Props = UnknownRecord,\n> = ExtendedProps<PropsOf<Component>, ComponentProp<Component> & Props> & {\n children?: ReactNode;\n ref?: ComponentPropsWithRef<Component>['ref'];\n};\n\n/**\n * makePolymorphic takes a component (typically a forwardRef component) and returns a new version\n * that supports polymorphism via a `renderAs` prop. The returned component’s types automatically\n * merge the intrinsic props of the rendered element with the custom props of the original\n * component, while including support for children and refs.\n *\n * This allows for highly reusable UI components that can change the underlying HTML element or\n * component at the time of use—without sacrificing type safety or having to manually merge props\n * every time.\n */\nexport const makePolymorphic = <\n ComponentDefaultType extends ElementType, // eslint-disable-line @typescript-eslint/no-unnecessary-type-parameters -- needed for the polymorphic API\n Props,\n StaticComponents extends object = UnknownRecord, // eslint-disable-line @typescript-eslint/no-unnecessary-type-parameters -- needed for the polymorphic API\n>(\n component: ForwardRefExoticComponent<unknown>,\n) => {\n type PolymorphicComponent = <C extends ElementType = ComponentDefaultType>(\n props: PolymorphicComponentProps<C, Props>,\n ) => ReactElement | null;\n\n // cast via 'unknown' to convince TS that the conversion is intentional\n return component as unknown as PolymorphicComponent & StaticComponents;\n};\n","import type { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { ellipsisStyle } from '../Ellipsis/Ellipsis';\nimport { lineClampCss } from '../../css/lineClampCss';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { makePolymorphic } from '../../private/helpers/makePolymorphic';\nimport { applyMaxCharsToChildren } from '../../private/helpers/applyMaxCharsToChildren';\nimport { iconInlineStyle } from '../Icon/Icon';\n\ntype AlignmentTypes = 'center' | 'justify' | 'left' | 'right';\n\nconst heroStyle = css`\n --font-family: var(--wui-typography-heading-hero-family);\n --font-size: var(--wui-typography-heading-hero-size);\n --font-weight: var(--wui-typography-heading-hero-weight);\n --line-height: var(--wui-typography-heading-hero-line-height);\n`;\n\nconst heading1TextStyle = css`\n --font-family: var(--wui-typography-heading-1-family);\n --font-size: var(--wui-typography-heading-1-size);\n --font-weight: var(--wui-typography-heading-1-weight);\n --line-height: var(--wui-typography-heading-1-line-height);\n`;\n\nconst heading2TextStyle = css`\n --font-family: var(--wui-typography-heading-2-family);\n --font-size: var(--wui-typography-heading-2-size);\n --font-weight: var(--wui-typography-heading-2-weight);\n --line-height: var(--wui-typography-heading-2-line-height);\n`;\n\nconst heading3TextStyle = css`\n --font-family: var(--wui-typography-heading-3-family);\n --font-size: var(--wui-typography-heading-3-size);\n --font-weight: var(--wui-typography-heading-3-weight);\n --line-height: var(--wui-typography-heading-3-line-height);\n`;\n\nconst heading4TextStyle = css`\n --font-family: var(--wui-typography-heading-4-family);\n --font-size: var(--wui-typography-heading-4-size);\n --font-weight: var(--wui-typography-heading-4-weight);\n --line-height: var(--wui-typography-heading-4-line-height);\n`;\n\nconst heading5TextStyle = css`\n --font-family: var(--wui-typography-heading-5-family);\n --font-size: var(--wui-typography-heading-5-size);\n --font-weight: var(--wui-typography-heading-5-weight);\n --line-height: var(--wui-typography-heading-5-line-height);\n`;\n\nconst heading6TextStyle = css`\n --font-family: var(--wui-typography-heading-6-family);\n --font-size: var(--wui-typography-heading-6-size);\n --font-weight: var(--wui-typography-heading-6-weight);\n --line-height: var(--wui-typography-heading-6-line-height);\n`;\n\nexport const variantStyleMap = {\n hero: heroStyle,\n heading1: heading1TextStyle,\n heading2: heading2TextStyle,\n heading3: heading3TextStyle,\n heading4: heading4TextStyle,\n heading5: heading5TextStyle,\n heading6: heading6TextStyle,\n};\n\nconst DEFAULT_ELEMENT = 'h1';\n\nexport type HeadingProps = ComponentPropsWithoutRef<typeof DEFAULT_ELEMENT> & {\n /**\n * The horizontal alignment\n * <br />\n * _Note: this only affects block elements_\n */\n align?: AlignmentTypes;\n /**\n * The content of the heading\n */\n children: ReactNode;\n\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Styles to text as disabled\n */\n disabled?: boolean;\n /**\n * Display the text as inline content\n */\n inline?: boolean;\n /**\n * Maximum number of characters to display before truncating. Must be >= 1.\n * When truncated, an ellipsis (...) will be added to the end.\n */\n maxChars?: number;\n /**\n * Text prominence affects color. Use 'primary' for main non-interactive text, 'secondary' for supporting text, and 'button' in specific cases where text is used in an interactive component.\n */\n prominence?: 'button' | 'primary' | 'secondary';\n /**\n * Prevents text from being highlighted and copied\n */\n preventUserSelect?: boolean;\n // This will inherit the jsdoc block from PolymorphicComponent\n renderAs?: ElementType;\n /**\n * Number of lines to display before truncating with an ellipsis.\n * Set to 1 to truncate after a single line, 2 for two lines, etc.\n * <br />\n * _Note: this only affects block elements_\n */\n maxLines?: number;\n /**\n * The text style to display. This will also affect what element (h1, h2, etc) is rendered, unless the `renderAs` prop is used\n */\n variant?: keyof typeof variantStyleMap;\n};\n\ntype StyledHeadingProps = {\n $align: AlignmentTypes;\n $colorScheme: ColorSchemeTypes;\n $disabled: boolean;\n $inline: boolean;\n $preventUserSelect: boolean;\n $prominence: 'button' | 'primary' | 'secondary';\n $maxLines: number | undefined;\n $variant: keyof typeof variantStyleMap;\n as?: ElementType;\n};\n\nconst StyledHeading = styled.div<StyledHeadingProps>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n --text-color: ${({ $prominence, $disabled }) => {\n if ($disabled) {\n return 'var(--wui-color-text-disabled)';\n }\n if ($prominence === 'secondary') {\n return 'var(--wui-color-text-secondary)';\n }\n if ($prominence === 'button') {\n return 'var(--wui-color-text-button)';\n }\n return 'var(--wui-color-text)';\n }};\n\n font-family: var(--font-family);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n line-height: var(--line-height);\n color: var(--text-color);\n ${({ $variant }) => variantStyleMap[$variant]}\n ${({ $maxLines }) => {\n if (isNotNil($maxLines)) {\n return css`\n ${ellipsisStyle};\n ${lineClampCss($maxLines)};\n `;\n }\n return undefined;\n }}\n ${({ $inline }) =>\n $inline &&\n css`\n display: inline-block;\n `}\n ${({ $preventUserSelect }) =>\n $preventUserSelect &&\n css`\n user-select: none;\n `}\n ${({ $align }) => css`\n text-align: ${$align};\n `}\n margin: 0;\n\n ${iconInlineStyle}\n`;\n\nexport const variantElementMap: Record<string, ElementType> = {\n hero: DEFAULT_ELEMENT,\n heading1: DEFAULT_ELEMENT,\n heading2: 'h2',\n heading3: 'h3',\n heading4: 'h4',\n heading5: 'h5',\n heading6: 'h6',\n};\n\nconst HeadingComponent = forwardRef<typeof DEFAULT_ELEMENT, HeadingProps>(\n (\n {\n align = 'left',\n children,\n colorScheme = 'inherit',\n disabled = false,\n inline = false,\n maxChars,\n preventUserSelect = false,\n prominence = 'primary',\n maxLines,\n variant = 'heading1',\n renderAs,\n ...props\n },\n ref,\n ) => {\n const processedChildren = applyMaxCharsToChildren(children, maxChars);\n\n return (\n <StyledHeading\n ref={ref}\n $align={align}\n $colorScheme={colorScheme}\n $disabled={disabled}\n $inline={inline}\n $maxLines={maxLines}\n $preventUserSelect={preventUserSelect}\n $prominence={prominence}\n $variant={variant}\n as={renderAs ?? variantElementMap[variant] ?? DEFAULT_ELEMENT}\n {...props}\n >\n {processedChildren}\n </StyledHeading>\n );\n },\n);\n\nHeadingComponent.displayName = 'Heading_UI';\n\n/**\n * Displaying heading text, both visually and semantically\n */\n// @ts-expect-error makePolymorphic is causing issues with types in R19\nexport const Heading = makePolymorphic<typeof DEFAULT_ELEMENT, HeadingProps>(HeadingComponent);\n","import type { ReactNode } from 'react';\nimport { isString, isNumber, isNil } from '@wistia/type-guards';\nimport { truncateString } from '../truncateString';\n\n/**\n * Applies maxChars truncation to React children\n */\nexport const applyMaxCharsToChildren = (children: ReactNode, maxChars?: number): ReactNode => {\n if (isNil(maxChars)) {\n return children;\n }\n\n if (isString(children)) {\n return truncateString(children, maxChars);\n }\n\n if (isNumber(children)) {\n const numberString = String(children);\n return truncateString(numberString, maxChars);\n }\n\n // for other types (React elements, arrays, etc.), attempt string conversion\n const textContent = typeof children === 'object' ? JSON.stringify(children) : String(children);\n return truncateString(textContent, maxChars);\n};\n","/**\n * Type constraint that only accepts positive integers >= 1\n */\ntype PositiveInteger<T extends number> = `${T}` extends `-${string}`\n ? never // negative numbers\n : T extends 0\n ? never // zero\n : T; // positive integers\n\n/**\n * Truncates a string to a maximum number of characters\n *\n * @param text - The string to truncate\n * @param maxChars - Must be a positive integer >= 1\n * @returns The truncated string if it exceeds maxChars, otherwise the original string\n * @throws {Error} Runtime error if maxChars < 1 (additional safety check)\n */\nexport const truncateString = <T extends number>(\n text: string,\n maxChars: PositiveInteger<T>,\n): string => {\n if (maxChars < 1) {\n throw new Error('maxChars must be >= 1');\n }\n\n if (text.length <= maxChars) {\n return text;\n }\n\n return text.slice(0, maxChars);\n};\n","import type { ComponentPropsWithoutRef, ReactNode, ElementType } from 'react';\nimport { forwardRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport { ellipsisStyle } from '../Ellipsis/Ellipsis';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { lineClampCss } from '../../css/lineClampCss';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { makePolymorphic } from '../../private/helpers/makePolymorphic';\nimport { applyMaxCharsToChildren } from '../../private/helpers/applyMaxCharsToChildren';\nimport { iconInlineStyle } from '../Icon/Icon';\n\ntype AlignmentTypes = 'center' | 'justify' | 'left' | 'right';\n\nconst sharedBodyStyle = css`\n > strong,\n b {\n font-weight: var(--wui-typography-weight-body-bold);\n }\n\n > mark {\n font-weight: var(--wui-typography-weight-body-mark);\n }\n`;\n\nconst labelBoldStyles = css`\n > strong,\n b {\n font-weight: var(--wui-typography-weight-label-bold);\n }\n\n > mark {\n font-weight: var(--wui-typography-weight-label-mark);\n }\n`;\n\nconst body1TextStyle = css`\n --font-family: var(--wui-typography-body-1-family);\n --font-size: var(--wui-typography-body-1-size);\n --font-weight: var(--wui-typography-body-1-weight);\n --line-height: var(--wui-typography-body-1-line-height);\n --paragraph-spacing: var(--wui-typography-body-1-paragraph-spacing);\n ${sharedBodyStyle}\n`;\n\nconst body2TextStyle = css`\n --font-family: var(--wui-typography-body-2-family);\n --font-size: var(--wui-typography-body-2-size);\n --font-weight: var(--wui-typography-body-2-weight);\n --line-height: var(--wui-typography-body-2-line-height);\n --paragraph-spacing: var(--wui-typography-body-2-paragraph-spacing);\n ${sharedBodyStyle}\n`;\n\nconst body3TextStyle = css`\n --font-family: var(--wui-typography-body-3-family);\n --font-size: var(--wui-typography-body-3-size);\n --font-weight: var(--wui-typography-body-3-weight);\n --line-height: var(--wui-typography-body-3-line-height);\n --paragraph-spacing: var(--wui-typography-body-3-paragraph-spacing);\n ${sharedBodyStyle}\n`;\n\nconst body4TextStyle = css`\n --font-family: var(--wui-typography-body-4-family);\n --font-size: var(--wui-typography-body-4-size);\n --font-weight: var(--wui-typography-body-4-weight);\n --line-height: var(--wui-typography-body-4-line-height);\n --paragraph-spacing: var(--wui-typography-body-4-paragraph-spacing);\n ${sharedBodyStyle}\n`;\n\nconst label1TextStyle = css`\n --font-family: var(--wui-typography-label-1-family);\n --font-size: var(--wui-typography-label-1-size);\n --font-weight: var(--wui-typography-label-1-weight);\n --line-height: var(--wui-typography-label-1-line-height);\n ${labelBoldStyles}\n`;\n\nconst label2TextStyle = css`\n --font-family: var(--wui-typography-label-2-family);\n --font-size: var(--wui-typography-label-2-size);\n --font-weight: var(--wui-typography-label-2-weight);\n --line-height: var(--wui-typography-label-2-line-height);\n ${labelBoldStyles}\n`;\n\nconst label3TextStyle = css`\n --font-family: var(--wui-typography-label-3-family);\n --font-size: var(--wui-typography-label-3-size);\n --font-weight: var(--wui-typography-label-3-weight);\n --line-height: var(--wui-typography-label-3-line-height);\n ${labelBoldStyles}\n`;\n\nconst label4TextStyle = css`\n --font-family: var(--wui-typography-label-4-family);\n --font-size: var(--wui-typography-label-4-size);\n --font-weight: var(--wui-typography-label-4-weight);\n --line-height: var(--wui-typography-label-4-line-height);\n ${labelBoldStyles}\n`;\n\nconst body1MonoTextStyle = css`\n ${body1TextStyle};\n --font-family: var(--wui-typography-family-mono);\n`;\n\nconst body2MonoTextStyle = css`\n ${body2TextStyle};\n --font-family: var(--wui-typography-family-mono);\n`;\n\nconst body3MonoTextStyle = css`\n ${body3TextStyle};\n --font-family: var(--wui-typography-family-mono);\n`;\n\nconst body4MonoTextStyle = css`\n ${body4TextStyle};\n --font-family: var(--wui-typography-family-mono);\n`;\n\nexport const variantStyleMap = {\n body1: body1TextStyle,\n body2: body2TextStyle,\n body3: body3TextStyle,\n body4: body4TextStyle,\n body1Mono: body1MonoTextStyle,\n body2Mono: body2MonoTextStyle,\n body3Mono: body3MonoTextStyle,\n body4Mono: body4MonoTextStyle,\n label1: label1TextStyle,\n label2: label2TextStyle,\n label3: label3TextStyle,\n label4: label4TextStyle,\n};\n\nconst bodyElement = 'p';\nconst labelElement = 'span';\nconst DEFAULT_ELEMENT = bodyElement;\n\nexport const variantElementMap: Record<string, ElementType> = {\n body1: DEFAULT_ELEMENT,\n body2: DEFAULT_ELEMENT,\n body3: DEFAULT_ELEMENT,\n body4: DEFAULT_ELEMENT,\n body1Mono: DEFAULT_ELEMENT,\n body2Mono: DEFAULT_ELEMENT,\n body3Mono: DEFAULT_ELEMENT,\n body4Mono: DEFAULT_ELEMENT,\n label1: labelElement,\n label2: labelElement,\n label3: labelElement,\n label4: labelElement,\n};\n\nexport type TextProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * The horizontal alignment\n * <br />\n * _Note: this only affects block elements_\n */\n align?: AlignmentTypes;\n /**\n * The text content\n */\n children?: ReactNode | undefined;\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Allows user to override default button colors\n */\n disabled?: boolean;\n /**\n * Display the text as inline content\n */\n inline?: boolean;\n /**\n * Maximum number of characters to display before truncating. Must be >= 1.\n * When truncated, an ellipsis (...) will be added to the end.\n */\n maxChars?: number;\n /**\n * Prevents text from being highlighted and copied\n */\n preventUserSelect?: boolean;\n /**\n * Text prominence affects color. Use 'primary' for main non-interactive text, 'secondary' for supporting text, and 'button' in specific cases where text is used in an interactive component.\n */\n prominence?: 'button' | 'primary' | 'secondary';\n /**\n * This will inherit the jsdoc block from PolymorphicComponent\n */\n renderAs?: ElementType;\n /**\n * Number of lines to display before truncating with an ellipsis.\n * Set to 1 to truncate after a single line, 2 for two lines, etc.\n * <br />\n * _Note: this only affects block elements_\n */\n maxLines?: number;\n /**\n * The text style to display\n */\n variant?: keyof typeof variantStyleMap | undefined;\n};\n\ntype StyledTextProps = {\n $align: AlignmentTypes;\n $colorScheme: ColorSchemeTypes;\n $disabled: boolean;\n $inline: boolean;\n $preventUserSelect: boolean;\n $prominence: 'button' | 'primary' | 'secondary';\n $maxLines: number | undefined;\n $variant: keyof typeof variantStyleMap;\n as: ElementType;\n};\n\nconst StyledText = styled.div<StyledTextProps>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n --text-color: ${({ $prominence, $disabled }) => {\n if ($disabled) {\n return 'var(--wui-color-text-disabled)';\n }\n if ($prominence === 'secondary') {\n return 'var(--wui-color-text-secondary)';\n }\n if ($prominence === 'button') {\n return 'var(--wui-color-text-button)';\n }\n return 'var(--wui-color-text)';\n }};\n\n ${iconInlineStyle}\n color: var(--text-color);\n font-family: var(--font-family);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n line-height: var(--line-height);\n font-style: normal;\n margin: 0;\n ${({ $variant }) => variantStyleMap[$variant]}\n ${({ $maxLines }) => {\n if (isNotNil($maxLines)) {\n return css`\n ${ellipsisStyle};\n ${lineClampCss($maxLines)};\n `;\n }\n return undefined;\n }}\n ${({ $inline }) =>\n $inline &&\n css`\n display: inline-block;\n `}\n ${({ $disabled }) =>\n $disabled &&\n css`\n --text-color: var(--wui-color-text-disabled);\n `}\n ${({ $preventUserSelect }) =>\n $preventUserSelect &&\n css`\n user-select: none;\n `}\n ${({ $align }) => css`\n text-align: ${$align};\n `}\n ${({ as }) =>\n as === 'p' &&\n css`\n display: block;\n\n + p {\n margin-top: var(--paragraph-spacing, var(--wui-space-04));\n }\n `}\n`;\n\nconst TextComponent = forwardRef<typeof DEFAULT_ELEMENT, TextProps>(\n (\n {\n align = 'left',\n children,\n colorScheme = 'inherit',\n disabled = false,\n inline = false,\n maxChars,\n preventUserSelect = false,\n prominence = 'primary',\n maxLines,\n variant = 'body2',\n renderAs,\n ...props\n },\n ref,\n ) => {\n const processedChildren = applyMaxCharsToChildren(children, maxChars);\n\n return (\n <StyledText\n ref={ref}\n $align={align}\n $colorScheme={colorScheme}\n $disabled={disabled}\n $inline={inline}\n $maxLines={maxLines}\n $preventUserSelect={preventUserSelect}\n $prominence={prominence}\n $variant={variant}\n as={renderAs ?? variantElementMap[variant] ?? DEFAULT_ELEMENT}\n {...props}\n >\n {processedChildren}\n </StyledText>\n );\n },\n);\n\nTextComponent.displayName = 'Text_UI';\n\n/**\n * Used for rending paragraphs and inline text.\n */\n// @ts-expect-error makePolymorphic is causing issues with types in R19\nexport const Text = makePolymorphic<typeof DEFAULT_ELEMENT, TextProps>(TextComponent);\n","import type { ComponentPropsWithoutRef, ReactNode, JSX } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNil } from '@wistia/type-guards';\nimport { mq } from '../../helpers/mq';\nimport type { ButtonSizes } from '../Button/Button';\nimport { buttonSizeStyles } from '../Button/buttonStyles';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp';\n\ntype ButtonGroupButtonSize = ButtonSizes | 'natural';\n\nexport type ButtonGroupComponentProps = {\n $align: 'center' | 'left' | 'right';\n $collapse: boolean;\n $fullWidth: boolean;\n $buttonSize: ButtonGroupButtonSize;\n};\n\nexport type ButtonGroupProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Align buttons to the left or right of their container\n */\n align?: 'center' | 'left' | 'right';\n /**\n * Buttons that will be rendered in grouping\n */\n children?: ReactNode;\n /**\n * Force ButtonGroup to fill the width of it's container\n */\n fullWidth?: boolean;\n /**\n * If true, the button group will collapse to a single column on small screens\n * and the buttons will be stacked on top of each other.\n */\n collapseOnSmallScreens?: boolean;\n /**\n * The size of the buttons in the group. Setting this will override the size of any UI button passed in as a child.\n */\n buttonSize?: ButtonGroupButtonSize | ResponsiveObject<ButtonGroupButtonSize>;\n};\n\nconst getAlignment = (align: string) => {\n if (align === 'center') {\n return 'center';\n }\n\n if (align === 'left') {\n return 'flex-start';\n }\n\n if (align === 'right') {\n return 'flex-end';\n }\n\n return 'flex-start'; // default alignment\n};\n\nconst ButtonGroupComponent = styled.div<ButtonGroupComponentProps>`\n display: flex;\n\n /* this helps ensure that primary buttons appear at the top of the column */\n flex-direction: ${({ $collapse, $align }) => {\n if (!$collapse) {\n return 'row';\n }\n\n return $align === 'right' ? 'column-reverse' : 'column';\n }};\n gap: var(--wui-space-02);\n align-items: center;\n justify-content: ${({ $align }) => getAlignment($align)};\n width: ${({ $fullWidth }) => ($fullWidth ? '100%' : 'auto')};\n\n ${mq.smAndUp} {\n flex-direction: row;\n }\n\n &:not([data-wistia-ui-icon-button]) {\n ${mq.smAndDown} {\n width: 100%;\n }\n }\n\n ${({ $buttonSize }) =>\n $buttonSize !== 'natural' &&\n css`\n button,\n a {\n ${buttonSizeStyles[$buttonSize]}\n }\n\n [data-wistia-ui-icon-button] {\n height: var(--icon-button-size-${$buttonSize});\n width: var(--icon-button-size-${$buttonSize});\n }\n `}\n`;\n\n/**\n * ButtonGroup is a layout component that groups buttons together,\n * with a standardized gap between them.\n */\nexport const ButtonGroup = ({\n children,\n align = 'left',\n fullWidth = false,\n collapseOnSmallScreens = true,\n buttonSize = 'natural',\n ...props\n}: ButtonGroupProps): JSX.Element | null => {\n const responsiveButtonSize = useResponsiveProp(buttonSize);\n\n if (isNil(children)) {\n return null;\n }\n\n return (\n <ButtonGroupComponent\n $align={align}\n $buttonSize={responsiveButtonSize}\n $collapse={collapseOnSmallScreens}\n $fullWidth={fullWidth}\n {...props}\n >\n {children}\n </ButtonGroupComponent>\n );\n};\n\nButtonGroup.displayName = 'ButtonGroup_UI';\n","import type { JSX } from 'react';\nimport { Children, cloneElement, forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport type { ButtonAsButtonProps, ButtonAsLinkProps, ButtonSizes } from '../Button/Button';\nimport { Button } from '../Button';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp';\n\nexport type IconButtonProps = {\n /**\n * Accessible text for screen readers.\n */\n label: string;\n /**\n * The [Icon](?path=/docs/components-icon--docs) component to use, e.g. `<Icon type=\"favorite\" />`\n */\n children: JSX.Element;\n} & (\n | Omit<ButtonAsButtonProps, 'fullWidth' | 'leftIcon' | 'rightIcon'>\n | Omit<ButtonAsLinkProps, 'fullWidth' | 'leftIcon' | 'rightIcon'>\n);\n\nconst StyledButton = styled(Button)`\n --icon-button-size-sm: 24px;\n --icon-button-size-md: 32px;\n --icon-button-size-lg: 40px;\n --icon-button-size-xl: 48px;\n\n border-radius: 50%;\n height: ${({ size }) => `var(--icon-button-size-${size as ButtonSizes})`};\n width: ${({ size }) => `var(--icon-button-size-${size as ButtonSizes})`};\n display: flex;\n justify-content: center;\n align-items: center;\n line-height: 1;\n`;\n\n/**\n * IconButton behaves like a [Button](?path=/docs/components-button--docs),\n * but only accepts an [Icon](?path=/docs/components-icon--docs) as a child.\n */\nexport const IconButton = forwardRef<HTMLAnchorElement | HTMLButtonElement, IconButtonProps>(\n ({ children, label, size = 'md', ...props }: IconButtonProps, ref) => {\n const responsiveSize = useResponsiveProp(size);\n\n return (\n <StyledButton\n {...props}\n ref={ref}\n aria-label={label}\n data-wistia-ui-icon-button={true}\n size={responsiveSize}\n >\n {cloneElement(Children.only(children), {\n size: responsiveSize,\n })}\n </StyledButton>\n );\n },\n);\n\nIconButton.displayName = 'IconButton_UI';\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\nimport { Image } from '../Image/Image';\n\nconst StyledBannerImageContainer = styled.div`\n --wui-banner-image-border-radius: var(--wui-border-radius-02);\n --wui-banner-image-height: auto;\n --wui-banner-image-width: auto;\n\n overflow: hidden;\n padding: var(--wui-space-04);\n height: var(--wui-banner-image-height);\n width: var(--wui-banner-image-width);\n justify-self: stretch;\n align-self: stretch;\n max-width: 300px;\n\n /* Make image container stretch full width in vertical layout and remove bottom padding */\n [data-wui-banner-orientation='vertical'] & {\n max-width: none;\n width: 100%;\n padding-bottom: var(--wui-space-00);\n }\n\n /* In horizontal layout, make image height equal to the content height and apply aspect ratio */\n [data-wui-banner-orientation='horizontal'] & {\n --wui-banner-image-height: calc(\n var(--wui-banner-content-height) + (var(--wui-banner-padding) * 2)\n );\n\n /* Handle image alignment and remove padding next to content */\n &[data-wui-banner-image='right'] {\n padding-left: var(--wui-space-00);\n order: 2;\n }\n\n &[data-wui-banner-image='left'] {\n padding-right: var(--wui-space-00);\n }\n }\n\n /* Remove border radius and padding in small prominence horizontal layout */\n [data-wui-banner-content-prominence='small'] & {\n --wui-banner-image-border-radius: var(--wui-border-radius-00);\n\n padding: var(--wui-space-00);\n }\n\n /* Remove border radius in secondary prominence vertical layout */\n [data-wui-banner-orientation='vertical'] [data-wui-banner-content-prominence='secondary'] & {\n --wui-banner-image-border-radius: var(--wui-border-radius-00);\n }\n\n [data-wui-banner-orientation='horizontal'][data-wui-banner-content-prominence='small'] & {\n flex: 0 0 25%;\n }\n\n img {\n border-radius: var(--wui-banner-image-border-radius);\n }\n`;\n\ntype BannerImageProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * The URL of the image to display in the banner\n */\n src: string;\n /**\n * Alternative text description of the image for accessibility\n */\n alt?: string;\n /**\n * Position of the image within the banner layout. Only applies in horizontal orientation.\n */\n alignment?: 'left' | 'right';\n};\n\nexport const BannerImage = ({ alignment = 'left', alt, src, ...props }: BannerImageProps) => {\n return (\n <StyledBannerImageContainer\n data-wui-banner-image={alignment}\n {...props}\n >\n <Image\n alt={alt ?? ''}\n fill={true}\n fit=\"cover\"\n src={src}\n />\n </StyledBannerImageContainer>\n );\n};\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { Children } from 'react';\nimport { styled } from 'styled-components';\nimport { useMq } from '../../hooks/useMq';\n\ntype StyledBreadcrumbsProps = {\n children: ReactNode;\n};\n\nconst StyledBreadcrumbs = styled.nav<StyledBreadcrumbsProps>`\n display: flex;\n align-items: center;\n gap: var(--wui-space-01);\n overflow: hidden;\n\n > [data-wui-breadcrumb-divider]:last-of-type {\n display: none;\n }\n`;\n\nexport type BreadcrumbsProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Should be at least one `Breadcrumb` component\n */\n children: ReactNode;\n};\n\nconst BUFFER_WIDTH = 10;\n\n/**\n * Used to display a screens's location within a hierarchical structure. Each `Breadcrumb` is a composed version of\n * [Button](?path=/docs/components-button--docs). See it's documentation for additional functionality.\n */\nexport const Breadcrumbs = ({ children, ...props }: BreadcrumbsProps): JSX.Element => {\n const { isXsAndDown } = useMq();\n let crumbs = Children.toArray(children);\n if (isXsAndDown) {\n crumbs = crumbs.slice(-1);\n }\n\n const crumbMaxWidth = Math.floor(100 / crumbs.length) - BUFFER_WIDTH;\n\n return (\n <>\n {/* Hack since styled components v5 doesn't support container queries */}\n <style type=\"text/css\">\n {`\n [data-wui-breadcrumbs] {\n container-type: inline-size;\n container-name: breadcrumbs;\n }\n\n @container breadcrumbs (width < 100vw) {\n [data-wui-breadcrumb] {\n max-width: ${crumbMaxWidth}cqw;\n }\n }\n `}\n </style>\n <StyledBreadcrumbs\n aria-label=\"Breadcrumbs\"\n data-wui-breadcrumbs={true}\n {...props}\n >\n {crumbs}\n </StyledBreadcrumbs>\n </>\n );\n};\n\nBreadcrumbs.displayName = 'Breadcrumbs_UI';\n","import type { ReactNode } from 'react';\nimport { styled } from 'styled-components';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport type { ButtonAsLinkProps } from '../Button/Button';\n\nexport type BreadcrumbProps = ButtonAsLinkProps & {\n /**\n * An [Icon]() to show at the beginning of the breadcrumb\n */\n icon?: ButtonAsLinkProps['leftIcon'];\n\n /**\n * The text of the breadcrumb link\n */\n children: ReactNode;\n\n /**\n * The link to the page of the breadcrumb\n */\n href: string;\n};\n\nconst BreadcrumbContent = styled.span`\n overflow: hidden;\n white-space: nowrap;\n display: block;\n text-overflow: ellipsis;\n text-align: left;\n flex: 0;\n`;\n\nexport const Breadcrumb = ({ icon, href, children, ...props }: BreadcrumbProps) => {\n return (\n <>\n <Button\n {...props}\n href={href}\n leftIcon={icon}\n variant=\"ghost\"\n >\n <BreadcrumbContent data-wui-breadcrumb={true}>{children}</BreadcrumbContent>\n </Button>\n <div data-wui-breadcrumb-divider={true}>\n <Icon\n size=\"sm\"\n style={{ flex: '0 1 auto' }}\n type=\"caret-right\"\n />\n </div>\n </>\n );\n};\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\nimport type { BoxProps } from '../Box';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport type { Spacings } from '../../css/designTokens/spacing';\nimport type { BorderRadius } from '../../css/designTokens/borderRadius';\nimport { Box } from '../Box';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\n\ntype StyledCardProps = BoxProps & {\n $backgroundColor: string;\n $borderColor: string;\n $borderRadius: BorderRadius;\n $colorScheme: ColorSchemeTypes;\n $height: string | undefined;\n $paddingSize: string;\n $width: string | undefined;\n};\n\nconst StyledCard = styled(Box)<StyledCardProps>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n box-sizing: border-box;\n padding: ${({ $paddingSize }) => `var(--wui-${$paddingSize})`};\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n outline: 2px solid ${({ $borderColor }) => $borderColor};\n outline-offset: -2px;\n border-radius: ${({ $borderRadius }) => `var(--wui-${$borderRadius})`};\n display: flex;\n height: ${({ $height }) => $height};\n width: ${({ $width }) => $width};\n`;\n\nconst prominenceMap = {\n primary: {\n backgroundColor: 'var(--wui-color-bg-surface)',\n borderColor: 'var(--wui-color-border)',\n },\n secondary: {\n backgroundColor: 'var(--wui-color-bg-surface-secondary)',\n borderColor: 'var(--wui-color-border-secondary)',\n },\n tertiary: {\n backgroundColor: 'var(--wui-color-bg-surface-tertiary)',\n borderColor: 'var(--wui-color-border-secondary)',\n },\n};\n\nexport type CardProps = BoxProps &\n ComponentPropsWithoutRef<'div'> & {\n /**\n * Content to be rendered inside the Card component\n */\n children: ReactNode;\n /**\n * Specifies the background and border color of the card.\n */\n prominence?: 'primary' | 'secondary' | 'tertiary';\n /**\n * Determines the color scheme for the card and its children.\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Specifies the internal padding of the card. Uses the design system's spacing scale.\n */\n paddingSize?: Spacings;\n /**\n * When true, adds a border around the card based on its colorScheme and prominence.\n */\n border?: boolean;\n\n /**\n * Border radius to apply to the Card\n */\n borderRadius?: BorderRadius;\n /**\n * Specifies the gaps (gutters) between rows and columns\n */\n gap?: BoxProps['gap'];\n /**\n * Specifies the height of the card.\n */\n height?: string;\n /**\n * Specifies the width of the card.\n */\n width?: string;\n /**\n * @ignore\n */\n alignContent?: BoxProps['alignContent'];\n /**\n * @ignore\n */\n alignItems?: BoxProps['alignItems'];\n /**\n * @ignore\n */\n alignSelf?: BoxProps['alignSelf'];\n /**\n * @ignore\n */\n basis?: BoxProps['basis'];\n /**\n * @ignore\n */\n direction?: BoxProps['direction'];\n /**\n * @ignore\n */\n fill?: BoxProps['fill'];\n /**\n * @ignore\n */\n fillViewport?: BoxProps['fillViewport'];\n /**\n * @ignore\n */\n flexMode?: BoxProps['flexMode'];\n /**\n * @ignore\n */\n grow?: BoxProps['grow'];\n /**\n * @ignore\n */\n inline?: BoxProps['inline'];\n /**\n * @ignore\n */\n justifyContent?: BoxProps['justifyContent'];\n /**\n * @ignore\n */\n order?: BoxProps['order'];\n /**\n * @ignore\n */\n shrink?: BoxProps['shrink'];\n /**\n * @ignore\n */\n wrapItems?: BoxProps['wrapItems'];\n };\n/**\n * A flexible container component that groups related content with consistent spacing and styling.\n * Cards can be used to visually distinguish content sections. Extends the [Box component.](https://wistia.github.io/vhs/storybook-ui/?path=/docs/components-box--docs)\n */\nexport const Card = ({\n children,\n border = false,\n borderRadius = 'border-radius-04',\n colorScheme = 'inherit',\n direction = 'column',\n gap = 'space-03',\n height,\n paddingSize = 'space-04',\n prominence = 'secondary',\n width,\n ...props\n}: CardProps): JSX.Element => (\n <StyledCard\n $backgroundColor={prominenceMap[prominence].backgroundColor}\n $borderColor={border ? prominenceMap[prominence].borderColor : 'transparent'}\n $borderRadius={borderRadius}\n $colorScheme={colorScheme}\n $height={height}\n $paddingSize={paddingSize}\n $width={width}\n direction={direction}\n gap={gap}\n {...props}\n >\n {children}\n </StyledCard>\n);\n\nCard.displayName = 'Card_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport type { Spacings } from '../../css/designTokens/spacing';\n\ntype StyledCenterProps = {\n $maxWidth?: string;\n $gutterWidth?: Spacings;\n $intrinsic?: boolean;\n children: ReactNode;\n};\n\nconst StyledCenter = styled.div<StyledCenterProps>`\n box-sizing: border-box;\n margin-left: auto;\n margin-right: auto;\n max-width: ${({ $maxWidth }) => $maxWidth};\n ${({ $gutterWidth }) => $gutterWidth && `padding: 0 var(--wui-${$gutterWidth.toString()});`}\n ${({ $intrinsic }) =>\n $intrinsic &&\n `\n display: flex;\n flex-direction: column;\n align-items: center;\n `}\n`;\n\nexport type CenterProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * A CSS max-width value\n */\n maxWidth?: string;\n /**\n * The space on either side of the content\n */\n gutterWidth?: Spacings;\n /**\n * Center child elements based on their content width\n */\n intrinsic?: boolean;\n /**\n * The content to be centered\n */\n children: ReactNode;\n};\n\n/**\n * Center component provides various ways to center content horizontally within a container.\n * It supports max-width constraints, text alignment, gutters, and intrinsic content centering.\n */\nexport const Center = forwardRef<HTMLDivElement, CenterProps>(\n (\n { maxWidth = '100%', gutterWidth = 'space-00', intrinsic = false, children, ...props },\n ref,\n ): JSX.Element => (\n <StyledCenter\n ref={ref}\n $gutterWidth={gutterWidth}\n $intrinsic={intrinsic}\n $maxWidth={maxWidth}\n {...props}\n >\n {children}\n </StyledCenter>\n ),\n);\n\nCenter.displayName = 'Center_UI';\n","import { isNonEmptyString, isNotUndefined } from '@wistia/type-guards';\nimport type { ChangeEvent, ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { forwardRef, useId } from 'react';\nimport { styled, css } from 'styled-components';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\nimport { FormControlLabel } from '../../private/components/FormControlLabel';\nimport { useCheckboxGroup } from '../FormGroup/CheckboxGroup';\n\nexport type CheckboxSizeType = 'lg' | 'md' | 'sm';\n\nconst CheckIcon = () => (\n <svg\n fill=\"inherit\"\n height=\"8\"\n viewBox=\"0 0 10 8\"\n width=\"10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n 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\"\n fill=\"var(--wui-checkbox-icon-color)\"\n />\n </svg>\n);\n\nconst sizeSmall = css`\n --wui-checkbox-size: 14px;\n --wui-checkbox-icon-size: 7px;\n`;\n\nconst sizeMedium = css`\n --wui-checkbox-size: 16px;\n --wui-checkbox-icon-size: 9px;\n`;\n\nconst sizeLarge = css`\n --wui-checkbox-size: 20px;\n --wui-checkbox-icon-size: 11px;\n`;\n\nconst getSizeCss = (size: CheckboxSizeType) => {\n if (size === 'sm') {\n return sizeSmall;\n }\n if (size === 'lg') {\n return sizeLarge;\n }\n return sizeMedium;\n};\n\nconst StyledCheckboxWrapper = styled.div<{ disabled: boolean; $hideLabel: boolean }>`\n --wui-checkbox-background-color: var(--wui-color-bg-surface);\n --wui-checkbox-border-color: var(--wui-color-border-secondary);\n --wui-checkbox-icon-color: transparent;\n --wui-checkbox-outline-color: transparent;\n\n &:hover {\n --wui-checkbox-border-color: var(--wui-color-border-secondary-hover);\n }\n\n &:has(input:checked) {\n --wui-checkbox-background-color: var(--wui-color-bg-fill);\n --wui-checkbox-border-color: transparent;\n --wui-checkbox-icon-color: var(--wui-color-bg-fill-white);\n }\n\n &:has(input:disabled) {\n --wui-checkbox-background-color: var(--wui-color-bg-surface-disabled);\n --wui-checkbox-border-color: var(--wui-color-border-secondary);\n\n &:has(input:checked) {\n --wui-checkbox-icon-color: var(--wui-color-icon-disabled);\n }\n }\n\n &:has(input:focus-visible) {\n [data-wui-faux-input='true'] {\n --wui-checkbox-outline-color: var(--wui-color-focus-ring);\n }\n }\n\n display: flex;\n margin: 0;\n\n /* TODO this solves a problem but potentially causes and a11y issue */\n user-select: none;\n`;\n\nconst StyledCheckboxInput = styled.div<{ $size: CheckboxSizeType; $disabled?: boolean }>`\n ${({ $size }) => getSizeCss($size)}\n margin: 0;\n border-radius: var(--wui-border-radius-01);\n display: grid;\n place-content: center;\n border-width: 1px;\n border-style: solid;\n border-color: var(--wui-checkbox-border-color);\n background-color: var(--wui-checkbox-background-color);\n outline-color: var(--wui-checkbox-outline-color);\n outline-width: 2px;\n outline-style: solid;\n outline-offset: 1px;\n transition: all var(--wui-motion-duration-01) var(--wui-motion-ease);\n margin-top: calc(calc(1lh - var(--wui-checkbox-size)) / 2);\n width: var(--wui-checkbox-size);\n height: var(--wui-checkbox-size);\n min-width: var(--wui-checkbox-size);\n min-height: var(--wui-checkbox-size);\n\n /* checkbox icon */\n svg {\n width: var(--wui-checkbox-icon-size);\n height: var(--wui-checkbox-icon-size);\n }\n`;\n\nconst StyledHiddenCheckboxInput = styled.input`\n ${visuallyHiddenStyle}\n position: relative;\n`;\n\nexport type CheckboxProps = Omit<\n ComponentPropsWithoutRef<'input'>,\n 'hideLabel' | 'label' | 'onChange' | 'size'\n> & {\n /**\n * Indicates the state of the checkbox\n */\n checked?: boolean;\n /**\n * Disables checkbox\n */\n disabled?: boolean;\n /**\n * Optional ID attribute\n */\n id?: string | undefined;\n /**\n * The label for the checkbox\n */\n label: ReactNode;\n /**\n * The description for the checkbox\n */\n description?: ReactNode | undefined;\n /**\n * The name of the checkbox. Submitted with its owning form as part of a name/value pair.\n */\n name?: string | undefined;\n /**\n * Callback function invoked when the value changes\n */\n onChange?: (event: ChangeEvent) => unknown;\n /**\n * Indicates if the input is required\n */\n required?: boolean;\n /**\n * A predefined size for the checkbox\n */\n size?: CheckboxSizeType;\n /**\n * The value given as data when submitted with a `name`.\n */\n value?: string;\n /**\n * Whether to visually hide the label (it will still be available to screen readers)\n */\n hideLabel?: boolean;\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked,\n disabled = false,\n id,\n label,\n description,\n name,\n onChange,\n size = 'md',\n value,\n required = false,\n hideLabel = false,\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const computedId = isNonEmptyString(id) ? id : `wistia-ui-checkbox-${generatedId}`;\n const checkboxGroupContext = useCheckboxGroup();\n\n // use context values if provided, otherwise fall back to the props\n const contextName = checkboxGroupContext?.name;\n const contextOnChange = checkboxGroupContext?.onChange;\n const contextValue = checkboxGroupContext?.value;\n const checkboxName = name ?? contextName;\n const handleOnChange = onChange ?? contextOnChange;\n const isChecked =\n isNotUndefined(value) && contextValue ? contextValue.includes(value) : checked;\n\n return (\n <StyledCheckboxWrapper\n $hideLabel={hideLabel}\n disabled={disabled}\n >\n <StyledHiddenCheckboxInput\n {...props}\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n id={computedId}\n name={checkboxName}\n onChange={handleOnChange}\n required={required}\n type=\"checkbox\"\n value={value}\n />\n <FormControlLabel\n controlSlot={\n <StyledCheckboxInput\n $disabled={disabled}\n $size={size}\n data-wui-faux-input=\"true\"\n >\n <CheckIcon />\n </StyledCheckboxInput>\n }\n description={description}\n disabled={disabled}\n hideLabel={hideLabel}\n htmlFor={computedId}\n label={label}\n />\n </StyledCheckboxWrapper>\n );\n },\n);\n\nCheckbox.displayName = 'Checkbox_UI';\n","import { isNil, isNotNil } from '@wistia/type-guards';\nimport type { ComponentPropsWithoutRef, JSX, ReactNode } from 'react';\nimport { styled, css } from 'styled-components';\nimport { ScreenReaderOnly } from '../../../components/ScreenReaderOnly';\nimport { FormControlLabelDescription } from './FormControlLabelDescription';\n\nconst disabledStyle = css`\n cursor: not-allowed;\n color: var(--wui-color-text-disabled);\n`;\n\nconst StyledLabelWrapper = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\ntype StyledFormControlLabelProps = {\n $disabled: boolean;\n $align: 'left' | 'right';\n};\n\nconst StyledFormControlLabel = styled.label<StyledFormControlLabelProps>`\n cursor: pointer;\n display: flex;\n align-items: flex-start;\n gap: var(--wui-space-02);\n width: 100%;\n color: var(--wui-color-tex);\n font-size: var(--wui-typography-label-3-size);\n font-weight: var(--wui-typography-label-3-weight);\n line-height: var(--wui-typography-body-3-line-height);\n justify-content: ${({ $align }) => ($align === 'left' ? 'flex-start' : 'space-between')};\n\n ${({ $disabled }) => $disabled && disabledStyle}\n`;\n\nexport type FormControlLabelProps = ComponentPropsWithoutRef<'label'> & {\n align?: 'left' | 'right';\n\n /**\n * The label for the form control\n */\n label?: ReactNode;\n /**\n * Whether the label is for a disabled form control\n */\n disabled?: boolean;\n /**\n * A slot to pass in a control element (eg. Radio, Checkbox or Switch)\n */\n controlSlot?: ReactNode;\n /**\n * The description for the form control\n */\n description?: ReactNode;\n /**\n * The id for the associated form control\n */\n htmlFor?: string;\n /**\n * Whether to visually hide the label (it will still be available to screen readers)\n */\n hideLabel?: boolean;\n};\n\n/**\n * FormControlLabel is used to give a label to a form control (eg. Radio, Checkbox or Switch)\n */\nexport const FormControlLabel = ({\n align = 'left',\n label,\n description,\n disabled = false,\n controlSlot,\n htmlFor,\n hideLabel = false,\n ...props\n}: FormControlLabelProps): JSX.Element | null => {\n if (isNil(label)) {\n return null;\n }\n\n const labelContent = hideLabel ? (\n <ScreenReaderOnly>{label}</ScreenReaderOnly>\n ) : (\n <StyledLabelWrapper>\n {label}\n <FormControlLabelDescription>{description}</FormControlLabelDescription>\n </StyledLabelWrapper>\n );\n\n const slot = isNotNil(controlSlot) ? controlSlot : null;\n\n return (\n <StyledFormControlLabel\n $align={align}\n $disabled={disabled}\n htmlFor={htmlFor}\n {...props}\n >\n {align === 'left' ? slot : labelContent}\n {align === 'left' ? labelContent : slot}\n </StyledFormControlLabel>\n );\n};\n\nFormControlLabel.displayName = 'FormControlLabel';\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\n\nconst VisuallyHidden = styled.div({ ...visuallyHiddenStyle });\n\nconst VisuallyHiddenButFocusable = styled.div({\n '&:not(:focus-within)': visuallyHiddenStyle,\n});\n\nexport type ScreenReaderOnlyProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Pass an arbitrary child node\n */\n children?: ReactNode;\n /**\n * Display content _only_ when it's focused.\n */\n focusable?: boolean;\n /**\n * The text that will appear to screenreaders but not be displayed on screen\n * (alternatively you can pass children)\n */\n text?: ReactNode;\n};\n\n/**\n * Used to hide content from the visual client, but keep it readable for screen readers.\n */\nexport const ScreenReaderOnly = ({\n text,\n children,\n focusable = false,\n ...props\n}: ScreenReaderOnlyProps) => {\n const accessibleText = isNotNil(text) ? text : children;\n\n if (focusable) {\n return <VisuallyHiddenButFocusable {...props}>{accessibleText}</VisuallyHiddenButFocusable>;\n }\n\n return <VisuallyHidden {...props}>{accessibleText}</VisuallyHidden>;\n};\n\nScreenReaderOnly.displayName = 'ScreenReaderOnly_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNil } from '@wistia/type-guards';\n\nconst disabledStyle = css`\n color: var(--wui-color-text-disabled);\n`;\n\nconst StyledFormControlLabelDescription = styled.div<{ $disabled: boolean }>`\n color: var(--wui-color-text-secondary);\n display: block;\n font-size: var(--wui-typography-body-4-size);\n font-weight: var(--wui-typography-body-4-weight);\n line-height: var(--wui-typography-body-4-line-height);\n\n ${({ $disabled }) => $disabled && disabledStyle}\n`;\n\nexport type FormControlLabelDescriptionProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Pass an arbitrary child node\n */\n children: ReactNode;\n /**\n * Whether the description is for a disabled form control\n */\n disabled?: boolean;\n};\n\n/**\n * Use in conjunction with a FormControlLabel component to provide additional context or information\n */\nexport const FormControlLabelDescription = ({\n children,\n disabled = false,\n ...props\n}: FormControlLabelDescriptionProps): JSX.Element | null => {\n if (isNil(children)) {\n return null;\n }\n\n return (\n <StyledFormControlLabelDescription\n {...props}\n $disabled={disabled}\n >\n {children}\n </StyledFormControlLabelDescription>\n );\n};\n\nFormControlLabelDescription.displayName = 'FormControlLabelDescription';\n","import type { ChangeEvent, JSX } from 'react';\nimport { createContext, useMemo, useContext } from 'react';\nimport { isArray } from '@wistia/type-guards';\nimport type { FormGroupProps } from './FormGroup';\nimport { FormGroup } from './FormGroup';\nimport { FormContext } from '../Form/Form';\n\nexport type CheckboxGroupProps = FormGroupProps & {\n onChange?: ((event: ChangeEvent<HTMLInputElement>) => void) | undefined;\n value?: string[] | undefined;\n name: string;\n};\n\ntype CheckboxGroupContextValues = Pick<CheckboxGroupProps, 'name' | 'onChange' | 'value'>;\n\nexport const CheckboxGroupContext = createContext<CheckboxGroupContextValues | null>(null);\n\n/**\n * Connects Checkbox components with their parent CheckboxGroup; provides access to `name` and `onChange`\n */\nexport const useCheckboxGroup = () => {\n return useContext(CheckboxGroupContext);\n};\n\n/**\n * For grouping like form elements together. Can serve as a checkbox\n */\nexport const CheckboxGroup = ({\n children,\n name,\n onChange,\n value,\n ...props\n}: CheckboxGroupProps): JSX.Element => {\n const formState = useContext(FormContext);\n const derivedValue = isArray(formState.values[name])\n ? (formState.values[name] as string[])\n : value;\n const context = useMemo<CheckboxGroupContextValues>(() => {\n return {\n name: `${name}[]`,\n onChange,\n value: derivedValue,\n };\n }, [name, derivedValue, onChange]);\n\n return (\n <CheckboxGroupContext.Provider value={context}>\n <FormGroup {...props}>{children}</FormGroup>\n </CheckboxGroupContext.Provider>\n );\n};\n\nCheckboxGroup.displayName = 'CheckboxGroup_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\nimport { useRef } from 'react';\nimport { isNonEmptyString, isNotNil } from '@wistia/type-guards';\nimport { Stack } from '../Stack';\nimport { Heading } from '../Heading';\nimport { Text } from '../Text';\n\nexport type FormGroupProps = Omit<ComponentPropsWithoutRef<'fieldset'>, 'onChange'> & {\n children: ReactNode;\n /**\n * The label for the form group\n */\n label?: ReactNode;\n /**\n * The description for the form group\n */\n description?: ReactNode;\n};\n\nconst StyledFieldset = styled.fieldset`\n padding: 0;\n margin: 0;\n border: 0;\n`;\n\nconst StyledLegend = styled.legend`\n padding-inline: 0;\n display: flex;\n flex-direction: column;\n gap: var(--wui-space-01);\n margin-bottom: var(--wui-space-02);\n`;\n\n/**\n * For grouping like form elements together.\n */\nexport const FormGroup = ({\n children,\n label,\n description,\n ...props\n}: FormGroupProps): JSX.Element => {\n const ref = useRef<HTMLFieldSetElement | null>(null);\n const hasLabel = isNotNil(label) && isNonEmptyString(label);\n const hasDescription = isNotNil(description) && isNonEmptyString(description);\n return (\n <Stack\n {...props}\n ref={ref}\n renderAs={StyledFieldset}\n >\n {hasLabel || hasDescription ? (\n <Heading\n renderAs={StyledLegend}\n variant=\"heading5\"\n >\n {hasLabel ? label : null}\n {hasDescription ? (\n <Text\n data-wui-form-group-description={true}\n prominence=\"secondary\"\n renderAs=\"span\"\n variant=\"body4\"\n >\n {description}\n </Text>\n ) : null}\n </Heading>\n ) : null}\n\n {children}\n </Stack>\n );\n};\n\nFormGroup.displayName = 'FormGroup_UI';\n","import type { ElementType, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { makePolymorphic } from '../../private/helpers/makePolymorphic';\nimport type { Spacings } from '../../css/designTokens/spacing';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp';\nimport type { AlignItemsType } from '../Box/flexTypes';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\n\nconst DEFAULT_ELEMENT = 'div';\n\nexport type StackProps = {\n /**\n * Optional children\n */\n children?: ReactNode | undefined;\n /**\n * The gap between each item in the stack. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n * TODO: add link to Spacing docs\n *\n */\n gap?: ResponsiveObject<Spacings> | Spacings;\n /**\n * Vertical is equivalent to `flex-direction: column;`, horizontal is equivalent to `flex-direction: row;`.\n * The default behavior is `vertical`. Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n */\n direction?: ResponsiveObject<'horizontal' | 'vertical'> | 'horizontal' | 'vertical';\n /**\n * Controls how items are aligned along the cross-axis.\n * Can be a [responsive prop](/docs/ui-docs-responsive-props--docs).\n *\n * @type 'baseline' | 'center' | 'flex-end' | 'flex-start' | 'stretch' | ResponsiveObject<'baseline' | 'center' | 'flex-end' | 'flex-start' | 'stretch'>\n */\n alignItems?: AlignItemsType | ResponsiveObject<AlignItemsType>;\n // This will inherit the jsdoc block from PolymorphicComponent\n renderAs?: ElementType;\n};\n\ntype StyledStackProps = {\n $direction: 'horizontal' | 'vertical';\n $gap: Spacings;\n $alignItems: NonNullable<StackProps['alignItems']>;\n};\n\nconst StyledStack = styled.div<StyledStackProps>`\n display: flex;\n flex-direction: ${({ $direction }) => ($direction === 'horizontal' ? 'row' : 'column')};\n gap: ${({ $gap }) => `var(--wui-${$gap})`};\n align-items: ${({ $alignItems }) => $alignItems};\n`;\n\nconst StackComponent = forwardRef<typeof DEFAULT_ELEMENT, StackProps>(\n (\n { renderAs, direction = 'vertical', gap = 'space-02', alignItems = 'stretch', ...props },\n ref,\n ) => {\n const responsiveGap = useResponsiveProp(gap);\n const responsiveDirection = useResponsiveProp(direction);\n const responsiveAlignItems = useResponsiveProp(alignItems);\n\n return (\n <StyledStack\n ref={ref}\n $alignItems={responsiveAlignItems}\n $direction={responsiveDirection}\n $gap={responsiveGap}\n as={renderAs ?? DEFAULT_ELEMENT}\n {...props}\n />\n );\n },\n);\n\nStackComponent.displayName = 'Stack_UI';\n\n/**\n * Used to layout its children in a vertical or horizontal stack. The gap between each item in the stack can be customized.\n * This allows for layouting children in a consistent way without needing to manually add margins or padding.\n */\n// @ts-expect-error makePolymorphic is causing issues with types in R19\nexport const Stack = makePolymorphic<typeof DEFAULT_ELEMENT, StackProps>(StackComponent);\n","import type { ReactNode, ComponentPropsWithoutRef, FormEvent, JSX, Ref, FocusEvent } from 'react';\nimport { forwardRef, useRef, useMemo, createContext, useState, useId } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotUndefined, isUndefined } from '@wistia/type-guards';\nimport type { Action } from './useFormState';\nimport { Stack } from '../Stack';\nimport { serializeFormData } from './serializeFormData';\n\ntype StyledFormProps = {\n $fullWidth: boolean;\n};\n\nconst StyledForm = styled.form<StyledFormProps>`\n --form-default-width: 690px;\n\n max-width: ${({ $fullWidth }) => ($fullWidth ? 'auto' : 'var(--form-default-width)')};\n`;\n\ntype ValidationCallback<T> = (data: T) => FormErrors<T>;\n\ntype FormWithLabelledByProps = {\n 'aria-label'?: never;\n /**\n * The id of the element that labels the form. Typically a heading.\n */\n 'aria-labelledby': string;\n};\n\ntype FormWithLabelProps = {\n /**\n * Accessible name of the form. Use this only when a visible label is not possible. If the form has a title or heading, use `aria-labelledby` instead.\n */\n 'aria-label': string;\n 'aria-labelledby'?: never;\n};\n\nexport type FormErrors<T> = Partial<{\n [K in keyof T]: string[] | string;\n}>;\n\nexport type FormProps<T> = Omit<\n ComponentPropsWithoutRef<'form'>,\n 'action' | 'aria-label' | 'aria-labelledby' | 'children'\n> & {\n /**\n * The action to be performed when the form is submitted. It can be asynchronous.\n */\n action?: Action;\n\n /**\n * Sets the default label position for all `FormFields` within the form. Will be ignored if labelPosition\n * is set on the `FormField` itself.\n */\n labelPosition?: 'block' | 'inline-compact' | 'inline';\n\n /**\n * The form elements used in the form\n */\n children: ReactNode;\n\n /**\n * An object that providesd errors for the form fields. This is created by `useFormState` and passed along to `FormField`s.\n */\n errors?: FormErrors<T>;\n\n /**\n * If true, fills the entire container\n */\n fullWidth?: boolean;\n\n /**\n * The function for handling validation.\n */\n validate?: ValidationCallback<T>;\n\n /**\n * An object that provides valuesfor the form fields. This is typically the `state.data` value from `useFormState` and passed along to `FormField`s.\n */\n values?: T;\n} & (FormWithLabelledByProps | FormWithLabelProps);\n\ntype FormContextProps = {\n labelPosition: 'block' | 'inline';\n values: Record<string, unknown>;\n errors: FormErrors<Record<string, string>>;\n hasSubmitted: boolean;\n formId: string;\n};\n\nexport const FormContext = createContext<FormContextProps>({\n values: {},\n errors: {},\n hasSubmitted: false,\n formId: 'NO_FORM',\n labelPosition: 'block',\n});\n\n/**\n * For creating forms. It provides a context for the form fields to access the form state and validation.\n * It also provides a way to handle form submission and validation. It is built around [React 19's form APIs](https://react.dev/reference/react-dom/components/form).\n */\n// eslint-disable-next-line react/display-name\nexport const Form = forwardRef(\n <T = Record<string, unknown>,>(\n {\n children,\n action,\n values = {} as T,\n labelPosition = 'block',\n validate,\n fullWidth = false,\n ...props\n }: FormProps<T>,\n forwardedRef?: Ref<HTMLFormElement>,\n ): JSX.Element => {\n const [errors, setErrors] = useState({} as FormErrors<T>);\n const [hasSubmitted, setHasSubmitted] = useState(false);\n const innerRef = useRef<HTMLFormElement | null>(null);\n const ref = forwardedRef ?? innerRef;\n const autoId = useId();\n\n const id = props.id ?? autoId;\n\n const handleValidate = (nextFormData: FormData) => {\n const nextData = serializeFormData(nextFormData) as T;\n\n if (isUndefined(validate)) {\n return {};\n }\n return validate(nextData);\n };\n\n const handleBlur = (event: FormEvent<HTMLFormElement>) => {\n if (props.onBlur) {\n props.onBlur(event as FocusEvent<HTMLFormElement>);\n }\n\n const formData = new FormData(event.currentTarget);\n\n if (isNotUndefined(validate)) {\n handleValidate(formData);\n }\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n const formData = new FormData(event.currentTarget);\n\n const nextErrors = handleValidate(formData);\n\n const isValid = Object.keys(nextErrors).length === 0;\n\n setErrors(nextErrors);\n setHasSubmitted(true);\n\n if (isValid && props.onSubmit) {\n props.onSubmit(event as FocusEvent<HTMLFormElement>);\n }\n\n if (isValid && action) {\n void action(formData);\n }\n };\n\n const handleReset = (event: FormEvent<HTMLFormElement>) => {\n setErrors({});\n setHasSubmitted(false);\n\n if (props.onReset) {\n props.onReset(event);\n }\n\n if (action) {\n void action(null);\n }\n };\n\n const context = useMemo(() => {\n return {\n values,\n errors,\n hasSubmitted,\n formId: id,\n labelPosition,\n };\n }, [labelPosition, values, errors, id, hasSubmitted]);\n\n return (\n // @ts-expect-error - generic context providers are a giant pain\n <FormContext.Provider value={context}>\n <Stack\n {...props}\n ref={ref}\n $fullWidth={fullWidth}\n alignItems={fullWidth ? 'stretch' : 'flex-start'}\n gap=\"space-05\"\n id={id}\n onBlur={handleBlur}\n onReset={handleReset}\n onSubmit={handleSubmit}\n renderAs={StyledForm}\n >\n {children}\n </Stack>\n </FormContext.Provider>\n );\n },\n) as <T>(props: FormProps<T> & { ref?: Ref<HTMLFormElement> }) => JSX.Element;\n","const ARRAY_SUFFIX = '[]';\n\nexport const serializeFormData = (formData: FormData) => {\n const data: Record<string, unknown> = {};\n formData.forEach((value, key) => {\n if (key.endsWith(ARRAY_SUFFIX)) {\n const newKey = key.slice(0, -ARRAY_SUFFIX.length);\n data[newKey] = formData.getAll(key);\n } else {\n data[key] = value;\n }\n });\n return data;\n};\n\nexport const serializeFormDataFromForm = (form: HTMLFormElement) => {\n const formData = new FormData(form);\n return serializeFormData(formData);\n};\n","import type { JSX, RefObject } from 'react';\nimport { Children, cloneElement, useCallback, useEffect } from 'react';\n\nexport type ClickRegionProps = {\n /**\n * The content that should be clickable.\n */\n children: JSX.Element;\n\n /**\n * The ref to the button or link that should be clicked when the ClickRegion is clicked.\n */\n targetRef: RefObject<HTMLAnchorElement | HTMLButtonElement | null>;\n};\n\nconst isClickableElement = (element: EventTarget | null): boolean => {\n if (!element) {\n return false;\n }\n const el = element as HTMLElement;\n return (\n el.closest('button') !== null ||\n el.closest('a') !== null ||\n el.closest('input') !== null ||\n el.closest('select') !== null ||\n el.closest('textarea') !== null ||\n el.closest('label') !== null ||\n el.closest('[data-wui-faux-input]') !== null\n );\n};\n\n/**\n * This allows larger elements to be interactive links or buttons while maintaining acessibility.\n *\n * For buttons, when the element is clicked, it will proxy a click event to the targetRef, which should be inside the ClickRegion.\n *\n * For links, a pseudo-element of the link is created that is the size of the ClickRegion. **Note**: this will prevent text selection\n * inside the text region.\n *\n * In either case, a link or button must be present, but can be hidden by using `ScreenReaderOnly`.\n */\nexport const ClickRegion = ({ children, targetRef }: ClickRegionProps): JSX.Element => {\n useEffect(() => {\n if (targetRef.current?.tagName === 'A') {\n targetRef.current.setAttribute('data-click-region-target-link', '');\n } else if (targetRef.current?.tagName === 'BUTTON') {\n targetRef.current.setAttribute('data-click-region-target-button', '');\n } else {\n //\n }\n }, [targetRef]);\n\n const handleClick = useCallback(\n (event: Event) => {\n const node = targetRef.current;\n\n // If we clicked directly on the target button, let it handle its own click\n if (event.target === node) {\n return;\n }\n\n // If we clicked on a button/anchor that's not the target, stop propagation\n if (isClickableElement(event.target) && event.target !== node) {\n event.stopPropagation();\n return;\n }\n\n if (\n node === null ||\n event.defaultPrevented ||\n !node.hasAttribute('data-click-region-target-button')\n ) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n\n node.focus();\n node.click();\n },\n [targetRef],\n );\n\n return cloneElement(Children.only(children), {\n 'data-click-region': true,\n onClick: handleClick,\n });\n};\n\nClickRegion.displayName = 'ClickRegion_UI';\n","import type { ReactNode, JSX } from 'react';\nimport { Root as CollapsibleRoot } from '@radix-ui/react-collapsible';\nimport { isNotNil } from '@wistia/type-guards';\nimport { styled } from 'styled-components';\n\nconst StyledRoot = styled(CollapsibleRoot)`\n &[data-state='closed'] [data-wui-collapsible-content] {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: var(--wui-collapsible-content-clamp-lines);\n overflow: hidden;\n }\n`;\n\nexport type CollapsibleProps = {\n /**\n * `CollapsibleTrigger` and `CollapsibleContent` must be included somewhere inside these children.\n */\n children: ReactNode;\n /**\n * Whether the collapsible content is open or closed. If not provided, the collapsible will be uncontrolled.\n */\n isOpen?: boolean;\n /**\n * Callback for when the trigger is toggled. If not provided, the collapsible will be uncontrolled.\n */\n onOpenChange?: (isOpen: boolean) => void;\n};\n\n/**\n * Toggle the visibility of content with a trigger.\n */\nexport const Collapsible = ({\n children,\n isOpen = false,\n onOpenChange,\n}: CollapsibleProps): JSX.Element => {\n const controlProps = {\n ...(isNotNil(onOpenChange) && isNotNil(isOpen) ? { open: isOpen, onOpenChange } : {}),\n };\n\n return <StyledRoot {...controlProps}>{children}</StyledRoot>;\n};\n\nCollapsible.displayName = 'Collapsible_UI';\n","import type { ReactNode } from 'react';\nimport { Children } from 'react';\nimport { Trigger } from '@radix-ui/react-collapsible';\nimport { styled } from 'styled-components';\n\ntype CollapsibleTriggerProps = {\n /**\n * A trigger element that will toggle the collapsible content.\n * Usually a [Button](?path=/docs/components-button--docs).\n */\n children: ReactNode;\n};\n\nconst StyledTrigger = styled(Trigger)`\n [data-wui-collapsible-icon] {\n transition: transform var(--wui-motion-duration-03) ease-in-out;\n }\n\n &[aria-expanded='true'] {\n [data-wui-collapsible-icon] {\n &[data-wui-collapsible-icon-rotate='90'] {\n transform: rotate(90deg);\n }\n\n &[data-wui-collapsible-icon-rotate='-90'] {\n transform: rotate(-90deg);\n }\n\n &[data-wui-collapsible-icon-rotate='45'] {\n transform: rotate(45deg);\n }\n }\n }\n`;\n\nexport const CollapsibleTrigger = ({ children }: CollapsibleTriggerProps) => {\n Children.only(children); // eslint-disable-line @typescript-eslint/no-floating-promises\n return <StyledTrigger asChild={true}>{children}</StyledTrigger>;\n};\n","import { Icon } from '../Icon';\nimport type { IconProps } from '../Icon/Icon';\n\nexport type CollapsibleTriggerIconProps = Omit<IconProps, 'type'> & {\n type: Extract<\n IconProps['type'],\n 'caret-left-strong' | 'caret-left' | 'caret-right-strong' | 'caret-right' | 'plus'\n >;\n};\n\nconst iconRotationMap = {\n 'caret-left-strong': '-90',\n 'caret-left': '-90',\n 'caret-right-strong': '90',\n 'caret-right': '90',\n plus: '45',\n} as const;\n\nexport const CollapsibleTriggerIcon = ({ type, ...props }: CollapsibleTriggerIconProps) => {\n return (\n <Icon\n {...props}\n data-wui-collapsible-icon=\"true\"\n data-wui-collapsible-icon-rotate={iconRotationMap[type]}\n type={type}\n />\n );\n};\n\nCollapsibleTriggerIcon.displayName = 'CollapsibleTriggerIcon_UI';\n","import { styled } from 'styled-components';\nimport type { CollapsibleContentProps as RadixCollapsibleContentProps } from '@radix-ui/react-collapsible';\nimport { Content } from '@radix-ui/react-collapsible';\nimport { isNotUndefined } from '@wistia/type-guards';\n\nconst ClampedContent = styled.div<{\n $clamp: number;\n}>`\n --wui-collapsible-content-clamp-lines: ${({ $clamp }) => $clamp};\n`;\n\ntype CollapsibleContentProps = {\n /**\n * The number of lines to clamp the content to when `Collapsible` is closed.\n */\n clamp?: number;\n /**\n * The content that will be hidden when `Collapsible` is closed.\n */\n children: RadixCollapsibleContentProps['children'];\n};\n\nexport const CollapsibleContent = ({ clamp, children }: CollapsibleContentProps) => {\n if (isNotUndefined(clamp)) {\n return (\n <ClampedContent\n $clamp={clamp}\n data-wui-collapsible-content=\"true\"\n >\n {children}\n </ClampedContent>\n );\n }\n\n return (\n <Content>\n <>{children} </>\n </Content>\n );\n};\n","import type { JSX, PropsWithChildren } from 'react';\nimport { useCallback } from 'react';\nimport { styled } from 'styled-components';\nimport { Root as RadioGroupRoot } from '@radix-ui/react-radio-group';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { convertToHsv } from './color-conversion-utils';\nimport { Label } from '../Label';\n\nconst Container = styled.div`\n display: grid;\n gap: var(--wui-space-01);\n grid-template-columns: minmax(0, 1fr);\n`;\n\nconst LabelContainer = styled.div`\n padding-top: var(--wui-space-01);\n`;\n\nconst ItemsContainer = styled(RadioGroupRoot)`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: start;\n padding: var(--wui-space-01) 6px;\n gap: var(--wui-space-02);\n`;\n\nexport type ColorGridProps = PropsWithChildren & {\n label?: string;\n};\n\nexport const ColorGrid = ({ children, label }: ColorGridProps): JSX.Element => {\n const { valueAsHex, onChangeNonDerivedValueAsHsv } = useColorPickerState();\n\n const onValueChange = useCallback(\n (value: string) => {\n const hsv = convertToHsv(value);\n onChangeNonDerivedValueAsHsv(hsv);\n },\n [onChangeNonDerivedValueAsHsv],\n );\n\n return (\n <Container>\n {label != null && (\n <LabelContainer>\n <Label>{label}</Label>\n </LabelContainer>\n )}\n\n <ItemsContainer\n onValueChange={onValueChange}\n value={valueAsHex}\n >\n {children}\n </ItemsContainer>\n </Container>\n );\n};\n\nColorGrid.displayName = 'ColorGrid_UI';\n","import { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport type { JSX } from 'react';\nimport type { Color, Hsv } from 'culori/fn';\nimport { formatHex } from 'culori/fn';\nimport { convertToHsv } from './color-conversion-utils';\nimport { transitionBetweenColors } from './transitionBetweenColors';\nimport { calculateContrast, getAccessibleColor, hasAccessibleDerivatives } from './contrast-utils';\nimport type { ColorPickerProps } from './ColorPicker';\n\nexport type ColorPickerContextValue = Pick<\n ColorPickerProviderProps,\n 'colorForComparison' | 'minimumContrastRatio' | 'opacityForContrastCalculation'\n> & {\n currentContrastRatio: number;\n getAccessibleDerivativeColor: (originalColor: Color | string) => Hsv;\n hasAccessibleDerivatives: boolean;\n isDragging: boolean;\n isTransitioning: boolean;\n nonDerivedValueAsHex: string;\n nonDerivedValueAsHsv: Hsv;\n onChangeNonDerivedValueAsHsv: (nonDerivedValue: Hsv) => void;\n shouldEnforceMinContrast: boolean;\n setIsDragging: (isDragging: boolean) => void;\n setShouldEnforceMinContrast: (shouldEnforceMinContrast: boolean) => void;\n valueAsHex: ColorPickerProviderProps['value'];\n valueAsHsv: Hsv;\n};\n\nconst ColorPickerContext = createContext<ColorPickerContextValue | null>(null);\n\nexport type ColorPickerProviderProps = Required<ColorPickerProps>;\n\nexport const ColorPickerProvider = ({\n children,\n colorForComparison,\n minimumContrastRatio,\n onValueChange,\n opacityForContrastCalculation,\n value: valueAsHex,\n}: ColorPickerProviderProps): JSX.Element => {\n const [isTransitioning, setIsTransitioning] = useState(false);\n const [isDragging, setIsDragging] = useState(false);\n const [nonDerivedValueAsHsv, setNonDerivedValueAsHsv] = useState(convertToHsv(valueAsHex));\n const [valueAsHsv, setValueAsHsv] = useState(convertToHsv(valueAsHex));\n const [shouldEnforceMinContrast, setShouldEnforceMinContrast] = useState(false);\n\n const getAccessibleDerivativeColor = useCallback<\n ColorPickerContextValue['getAccessibleDerivativeColor']\n >(\n (originalColor) =>\n getAccessibleColor({\n originalColor,\n colorForComparison,\n minContrast: minimumContrastRatio,\n opacityForContrastCalculation,\n }),\n [colorForComparison, minimumContrastRatio, opacityForContrastCalculation],\n );\n\n const currentContrastRatio = calculateContrast({\n backgroundColor: valueAsHex,\n foregroundColor: colorForComparison,\n backgroundOpacity: opacityForContrastCalculation,\n });\n\n const hasAccessibleDerivativesValue = useMemo(() => {\n return hasAccessibleDerivatives({\n originalColor: valueAsHex,\n colorForComparison,\n minContrast: minimumContrastRatio,\n opacityForContrastCalculation,\n });\n }, [valueAsHex, colorForComparison, minimumContrastRatio, opacityForContrastCalculation]);\n\n const onChangeNonDerivedValueAsHsv = useCallback<\n ColorPickerContextValue['onChangeNonDerivedValueAsHsv']\n >(\n (nonDerivedValue) => {\n const finalValue = shouldEnforceMinContrast\n ? getAccessibleDerivativeColor(nonDerivedValue)\n : nonDerivedValue;\n const finalValueAsHex = formatHex(finalValue);\n\n if (finalValueAsHex !== valueAsHex) {\n onValueChange(finalValueAsHex);\n }\n\n setValueAsHsv(finalValue);\n setNonDerivedValueAsHsv(nonDerivedValue);\n },\n [getAccessibleDerivativeColor, onValueChange, shouldEnforceMinContrast, valueAsHex],\n );\n\n const changeValueSmoothly = useCallback(\n (toHsv: Hsv) => {\n setIsTransitioning(true);\n\n transitionBetweenColors(\n valueAsHsv,\n toHsv,\n (colorForStepAsHsv: Hsv) => {\n const hexValue = formatHex(colorForStepAsHsv);\n onValueChange(hexValue);\n setValueAsHsv(colorForStepAsHsv);\n },\n () => {\n setIsTransitioning(false);\n },\n );\n },\n [valueAsHsv, onValueChange],\n );\n\n const setShouldEnforceMinContrastWrapped = useCallback<\n ColorPickerContextValue['setShouldEnforceMinContrast']\n >(\n (newShouldEnforceMinContrast) => {\n setShouldEnforceMinContrast(newShouldEnforceMinContrast);\n\n const newColorAsHsv = newShouldEnforceMinContrast\n ? getAccessibleDerivativeColor(valueAsHex)\n : nonDerivedValueAsHsv;\n\n // Only transition if the color is actually different\n const currentHsv = valueAsHsv;\n if (\n currentHsv.h !== newColorAsHsv.h ||\n currentHsv.s !== newColorAsHsv.s ||\n currentHsv.v !== newColorAsHsv.v\n ) {\n changeValueSmoothly(newColorAsHsv);\n }\n },\n [\n changeValueSmoothly,\n getAccessibleDerivativeColor,\n nonDerivedValueAsHsv,\n valueAsHex,\n valueAsHsv,\n ],\n );\n\n const accessibleHsvFromValueAsHex = getAccessibleDerivativeColor(valueAsHex);\n const whatValueAsHexShouldBe = shouldEnforceMinContrast\n ? formatHex(accessibleHsvFromValueAsHex)\n : valueAsHex;\n const valueAsHsvConvertedToHex = formatHex(valueAsHsv);\n\n // This is to ensure that if the value prop is changed externally (i.e. not\n // via some interaction in ColorPicker), we update the internal state\n // accordingly\n if (whatValueAsHexShouldBe !== valueAsHsvConvertedToHex && !isTransitioning && !isDragging) {\n setValueAsHsv(\n shouldEnforceMinContrast\n ? getAccessibleDerivativeColor(valueAsHex)\n : convertToHsv(valueAsHex),\n );\n setNonDerivedValueAsHsv(convertToHsv(valueAsHex));\n }\n\n // If the value prop is set externally to a color that does not meet the\n // minimum contrast ratio, and contrast enforcement is enabled, we must update\n // that value to a derivative that does meet the ratio.\n useEffect(() => {\n // Yes, this is the exact same condition as above (outside of the useEffect)\n // but this one needs to be in a useEffect because calling onValueChange\n // causes a render _outside of_ this component (i.e. in its parent), which\n // you can't do during render.\n if (valueAsHex !== valueAsHsvConvertedToHex && !isTransitioning && !isDragging) {\n onValueChange(whatValueAsHexShouldBe);\n }\n }, [\n isDragging,\n isTransitioning,\n onValueChange,\n valueAsHex,\n valueAsHsvConvertedToHex,\n whatValueAsHexShouldBe,\n ]);\n\n const contextValue: ColorPickerContextValue = useMemo(\n () => ({\n colorForComparison,\n currentContrastRatio,\n getAccessibleDerivativeColor,\n hasAccessibleDerivatives: hasAccessibleDerivativesValue,\n isDragging,\n isTransitioning,\n minimumContrastRatio,\n nonDerivedValueAsHex: formatHex(nonDerivedValueAsHsv),\n nonDerivedValueAsHsv,\n onChangeNonDerivedValueAsHsv,\n opacityForContrastCalculation,\n setIsDragging,\n setShouldEnforceMinContrast: setShouldEnforceMinContrastWrapped,\n shouldEnforceMinContrast,\n valueAsHex,\n valueAsHsv,\n }),\n [\n colorForComparison,\n currentContrastRatio,\n getAccessibleDerivativeColor,\n hasAccessibleDerivativesValue,\n isDragging,\n isTransitioning,\n minimumContrastRatio,\n nonDerivedValueAsHsv,\n onChangeNonDerivedValueAsHsv,\n opacityForContrastCalculation,\n setShouldEnforceMinContrastWrapped,\n shouldEnforceMinContrast,\n valueAsHex,\n valueAsHsv,\n ],\n );\n\n return <ColorPickerContext.Provider value={contextValue}>{children}</ColorPickerContext.Provider>;\n};\n\nexport const useColorPickerState = (): ColorPickerContextValue => {\n const context = useContext(ColorPickerContext);\n if (!context) {\n throw new Error('useColorPicker must be used within a ColorPickerProvider');\n }\n return context;\n};\n","import type { Color } from 'culori/fn';\nimport { modeHsv, modeLrgb, modeRgb, parseHex, useMode } from 'culori/fn';\n\n// These useMode calls are necessary for certain functions from culori that we\n// use throughout the color picker (like formatHex and interpolate) to work.\n// See https://culorijs.org/guides/tree-shaking/\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst convertToRgbRaw = useMode(modeRgb);\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst convertToHsvRaw = useMode(modeHsv);\n// eslint-disable-next-line react-hooks/rules-of-hooks\nuseMode(modeLrgb); // required for wcagContrast fn to work\n\nexport const convertToHsv = (color: Color | string) => {\n // eslint-disable-next-line @typescript-eslint/init-declarations\n let result: Color | undefined;\n\n if (typeof color === 'string') {\n const rgb = parseHex(color);\n if (rgb == null) {\n throw new Error(`Invalid hex color value: ${color}`);\n }\n\n result = convertToHsvRaw(rgb);\n }\n\n result = convertToHsvRaw(color);\n\n if (result == null) {\n throw new Error(`Invalid color value: ${JSON.stringify(color)}`);\n }\n\n return result;\n};\n\nexport const convertToRgb = (color: Color | string) => {\n // eslint-disable-next-line @typescript-eslint/init-declarations\n let result: Color | undefined;\n\n if (typeof color === 'string') {\n const rgb = parseHex(color);\n if (rgb == null) {\n throw new Error(`Invalid hex color value: ${color}`);\n }\n\n result = convertToRgbRaw(color);\n }\n\n result = convertToRgbRaw(color);\n\n if (result == null) {\n throw new Error(`Invalid color value: ${JSON.stringify(color)}`);\n }\n\n return result;\n};\n","import { easingSmootherstep, interpolate } from 'culori/fn';\nimport type { Hsv } from 'culori/fn';\n\nexport const transitionBetweenColors = (\n fromHsv: Hsv,\n toHsv: Hsv,\n onColorStep: (hsv: Hsv) => void,\n onTransitionEnd?: () => void,\n) => {\n const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n if (prefersReducedMotion) {\n onColorStep(toHsv);\n onTransitionEnd?.();\n return;\n }\n\n const interpolator = interpolate(\n [\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n easingSmootherstep(0.33),\n fromHsv,\n toHsv,\n ],\n 'hsv',\n );\n const steps = 5;\n\n // every 16ms (for 60fps), update the color value\n const intervalMs = 16;\n\n let count = 0;\n let lastTime = performance.now();\n\n const step = (now: number) => {\n if (count >= steps) {\n // Ensure we set the final color\n onColorStep(toHsv);\n onTransitionEnd?.();\n return;\n }\n\n if (now - lastTime >= intervalMs) {\n const animationProgress = count / steps; // 0 to 1, where 0 = start, 1 = end\n const interpolatedHsv = interpolator(animationProgress);\n\n onColorStep(interpolatedHsv);\n\n // eslint-disable-next-line no-plusplus\n count++;\n lastTime = now;\n }\n\n requestAnimationFrame(step);\n };\n\n requestAnimationFrame(step);\n};\n","/* eslint-disable id-length */\nimport type { Color, Hsv, Rgb } from 'culori/fn';\nimport { wcagContrast, differenceEuclidean, formatHex } from 'culori/fn';\nimport {\n DEFAULT_COLOR_FOR_COMPARISON,\n DEFAULT_MIN_CONTRAST,\n DEFAULT_OPACITY_FOR_CONTRAST_CALCULATION,\n} from './consts';\nimport { convertToHsv, convertToRgb } from './color-conversion-utils';\n\n// Once we reach a contrast ratio of 4.504, (assuming the default min of 4.50)\n// which will round down to 4.50 with toFixed(2), bail on trying to get a\n// brighter color.\nconst CONTRAST_EPSILON = 0.004;\n\n// Threshold for snapping value channel to 0 or 1\nconst VALUE_CHANNEL_SNAP_EPSILON = 0.0005;\n\ntype PropsForGetAccessibleColor = {\n originalColor: Color | string;\n colorForComparison: string;\n minContrast: number;\n maxIterations?: number;\n opacityForContrastCalculation: number;\n /**\n * Converting to hex reduces precision, but we do it because the ColorPicker's\n * API deals in hex. If we didn't do this, we'd be able to achieve the minimum\n * contrast ratio more precisely (like instead of overshooting it a little bit\n * sometimes), but the color we return would get a slightly different contrast\n * ratio when converted to hex.\n */\n shouldConvertToHex?: boolean;\n};\n\ntype Direction = 'brighter' | 'darker';\n\nexport const compositeOverWhite = (color: Color | string, alpha = 1): Rgb => {\n const compositeChannel = (channel: number) => alpha * channel + (1 - alpha);\n\n const colorAsRgb = convertToRgb(color);\n\n return {\n mode: 'rgb' as const,\n r: compositeChannel(colorAsRgb.r),\n g: compositeChannel(colorAsRgb.g),\n b: compositeChannel(colorAsRgb.b),\n };\n};\n\nexport const calculateContrast = ({\n backgroundColor,\n foregroundColor = DEFAULT_COLOR_FOR_COMPARISON,\n backgroundOpacity = DEFAULT_OPACITY_FOR_CONTRAST_CALCULATION,\n}: {\n backgroundColor: Color | string;\n foregroundColor?: Color | string;\n backgroundOpacity?: number;\n}): number => {\n const backgroundColorAsRgb = convertToRgb(backgroundColor);\n const foregroundColorAsRgb = convertToRgb(foregroundColor);\n\n const compositeBackground = compositeOverWhite(backgroundColorAsRgb, backgroundOpacity);\n return wcagContrast(compositeBackground, foregroundColorAsRgb);\n};\n\nconst snapValueToEdges = (value: number): number => {\n if (value > 1 - VALUE_CHANNEL_SNAP_EPSILON) {\n return 1;\n }\n if (value < VALUE_CHANNEL_SNAP_EPSILON) {\n return 0;\n }\n return value;\n};\n\nconst updateSearchBounds = (\n searchingBrighter: boolean,\n contrast: number,\n minContrast: number,\n midValue: number,\n searchLow: number,\n searchHigh: number,\n): { newSearchLow: number; newSearchHigh: number } => {\n if (contrast >= minContrast) {\n if (searchingBrighter) {\n return { newSearchLow: searchLow, newSearchHigh: midValue };\n }\n return { newSearchLow: midValue, newSearchHigh: searchHigh };\n }\n\n if (searchingBrighter) {\n return { newSearchLow: midValue, newSearchHigh: searchHigh };\n }\n return { newSearchLow: searchLow, newSearchHigh: midValue };\n};\n\nexport const getAccessibleColorByValueChannelChange = ({\n originalColor,\n colorForComparison,\n minContrast,\n maxIterations = 50,\n direction,\n opacityForContrastCalculation,\n shouldConvertToHex = true,\n}: PropsForGetAccessibleColor & { direction: Direction }): Hsv | null => {\n const originalHsv = convertToHsv(originalColor);\n\n const searchingBrighter = direction === 'brighter';\n\n // Set up search bounds and extreme variant (only changing value, keeping saturation)\n const lowValue = searchingBrighter ? originalHsv.v : 0;\n const highValue = searchingBrighter ? 1 : originalHsv.v;\n const extremeValue = searchingBrighter ? 1 : 0;\n const extremeVariant: Hsv = {\n h: originalHsv.h ?? 0,\n s: originalHsv.s,\n v: extremeValue,\n mode: 'hsv' as const,\n };\n\n // Check if extreme variant meets contrast requirement\n\n const extremeContrast = calculateContrast({\n backgroundColor: shouldConvertToHex ? formatHex(extremeVariant) : extremeVariant,\n foregroundColor: colorForComparison,\n backgroundOpacity: opacityForContrastCalculation,\n });\n\n // If extreme doesn't work, there's no accessible color in this direction via value change\n if (extremeContrast < minContrast) {\n return null;\n }\n\n let searchLow = lowValue;\n let searchHigh = highValue;\n let bestSoFar: Hsv = extremeVariant;\n\n for (let i = 0; i < maxIterations; i++) {\n const rawMidValue = (searchLow + searchHigh) / 2;\n const midValue = snapValueToEdges(rawMidValue);\n\n const candidateHsv: Hsv = {\n h: originalHsv.h ?? 0,\n s: originalHsv.s,\n v: midValue,\n mode: 'hsv' as const,\n };\n\n const contrast = calculateContrast({\n backgroundColor: shouldConvertToHex ? formatHex(candidateHsv) : candidateHsv,\n foregroundColor: colorForComparison,\n backgroundOpacity: opacityForContrastCalculation,\n });\n\n if (contrast >= minContrast) {\n bestSoFar = candidateHsv;\n }\n\n const { newSearchLow, newSearchHigh } = updateSearchBounds(\n searchingBrighter,\n contrast,\n minContrast,\n midValue,\n searchLow,\n searchHigh,\n );\n\n searchLow = newSearchLow;\n searchHigh = newSearchHigh;\n\n if (contrast >= minContrast && contrast - minContrast < CONTRAST_EPSILON) {\n break;\n }\n }\n\n return bestSoFar;\n};\n\nconst chooseClosestDerivativeToOriginal = (\n brighterOption: Hsv | null,\n darkerOption: Hsv | null,\n originalColor: Color | string,\n): Hsv | null => {\n const hsvDifference = differenceEuclidean('hsv');\n\n if (!brighterOption && !darkerOption) {\n return null;\n }\n\n // If only one option works, use it\n if (!brighterOption && darkerOption != null) {\n return darkerOption;\n }\n\n if (!darkerOption && brighterOption != null) {\n return brighterOption;\n }\n\n const brighterDifference =\n brighterOption === null ? Infinity : hsvDifference(originalColor, brighterOption);\n\n const darkerDifference =\n darkerOption === null ? Infinity : hsvDifference(originalColor, darkerOption);\n\n if (brighterDifference <= darkerDifference && brighterOption != null) {\n return brighterOption;\n }\n\n if (darkerDifference < brighterDifference && darkerOption != null) {\n return darkerOption;\n }\n\n throw new Error('Unable to determine the best accessible color variant');\n};\n\nconst getAccessibleColorBySaturationAndValueChange = ({\n originalColor,\n colorForComparison,\n minContrast,\n direction,\n opacityForContrastCalculation,\n}: Omit<PropsForGetAccessibleColor, 'maxIterations'> & { direction: Direction }): Hsv | null => {\n const originalHsv = convertToHsv(originalColor);\n\n const hsvDifference = differenceEuclidean('hsv');\n const maxIterations = 50;\n\n // Define search bounds based on direction\n let lowStep = 0;\n let highStep = 1;\n\n // Check if extreme position meets contrast requirement\n const getHsvForStep = (step: number): Hsv => {\n if (direction === 'brighter') {\n const saturationChannel = Math.max(0, originalHsv.s - step);\n const valueChannel = Math.min(1, originalHsv.v + step);\n return {\n h: originalHsv.h ?? 0,\n s: saturationChannel,\n v: valueChannel,\n mode: 'hsv' as const,\n };\n }\n\n const saturationChannel = Math.min(1, originalHsv.s + step);\n const valueChannel = Math.max(0, originalHsv.v - step);\n return {\n h: originalHsv.h ?? 0,\n s: saturationChannel,\n v: valueChannel,\n mode: 'hsv' as const,\n };\n };\n\n const checkContrast = (hsv: Hsv): number => {\n return calculateContrast({\n backgroundColor: formatHex(hsv),\n foregroundColor: colorForComparison,\n backgroundOpacity: opacityForContrastCalculation,\n });\n };\n\n // Check if extreme case meets contrast requirement\n const extremeHsv = getHsvForStep(highStep);\n if (checkContrast(extremeHsv) < minContrast) {\n return null; // No solution exists\n }\n\n let bestCandidate: Hsv | null = null;\n let smallestDifference = Infinity;\n\n // Binary search for the closest accessible color\n for (let i = 0; i < maxIterations; i++) {\n const midStep = (lowStep + highStep) / 2;\n const candidateHsv = getHsvForStep(midStep);\n const contrast = checkContrast(candidateHsv);\n\n if (contrast >= minContrast) {\n const difference = hsvDifference(originalHsv, candidateHsv);\n\n if (difference < smallestDifference) {\n bestCandidate = candidateHsv;\n smallestDifference = difference;\n }\n\n // Try to get closer to original (smaller step)\n highStep = midStep;\n\n // If we're very close to minimum contrast, we can stop\n if (contrast - minContrast < CONTRAST_EPSILON) {\n break;\n }\n } else {\n // Need more adjustment (larger step)\n lowStep = midStep;\n }\n }\n\n return bestCandidate;\n};\n\nconst getAccessibleColorInDirection = ({\n originalColor,\n colorForComparison,\n minContrast,\n maxIterations = 50,\n direction,\n opacityForContrastCalculation,\n}: PropsForGetAccessibleColor & { direction: 'brighter' | 'darker' }): Hsv | null => {\n // First try changing only the value channel\n const valueResult = getAccessibleColorByValueChannelChange({\n originalColor,\n colorForComparison,\n minContrast,\n maxIterations,\n direction,\n opacityForContrastCalculation,\n });\n\n if (valueResult !== null) {\n return valueResult;\n }\n\n return getAccessibleColorBySaturationAndValueChange({\n originalColor,\n colorForComparison,\n minContrast,\n direction,\n opacityForContrastCalculation,\n });\n};\n\n/**\n * Finds the accessible color that is closest to the original color by trying both\n * brighter and darker variants and choosing the one with the smallest change in value.\n */\nexport const getAccessibleColor = ({\n originalColor,\n colorForComparison,\n minContrast = DEFAULT_MIN_CONTRAST,\n maxIterations = 50,\n opacityForContrastCalculation,\n}: PropsForGetAccessibleColor): Hsv => {\n const originalColorAsHsv = convertToHsv(originalColor);\n\n const originalContrast = calculateContrast({\n backgroundColor: formatHex(originalColorAsHsv),\n foregroundColor: colorForComparison,\n backgroundOpacity: opacityForContrastCalculation,\n });\n\n if (originalContrast >= minContrast) {\n return convertToHsv(originalColor);\n }\n\n const brighterOption = getAccessibleColorInDirection({\n originalColor,\n colorForComparison,\n minContrast,\n maxIterations,\n direction: 'brighter',\n opacityForContrastCalculation,\n });\n\n const darkerOption = getAccessibleColorInDirection({\n originalColor,\n colorForComparison,\n minContrast,\n maxIterations,\n direction: 'darker',\n opacityForContrastCalculation,\n });\n\n const result = chooseClosestDerivativeToOriginal(brighterOption, darkerOption, originalColor);\n\n if (result == null) {\n throw new Error(\n `Unable to get accessible derivative for ${formatHex(originalColor)} at minimum contrast ratio ${minContrast}`,\n );\n }\n\n return result;\n};\n\n/**\n * Checks if any accessible color derivatives exist for the given parameters.\n * Returns true if at least one accessible color can be found by going brighter or darker.\n */\nexport const hasAccessibleDerivatives = ({\n originalColor,\n colorForComparison,\n minContrast = DEFAULT_MIN_CONTRAST,\n opacityForContrastCalculation,\n}: PropsForGetAccessibleColor): boolean => {\n const originalColorAsHsv = convertToHsv(originalColor);\n // Check if original color already meets min contrast\n const originalContrast = calculateContrast({\n backgroundColor: formatHex(originalColorAsHsv),\n foregroundColor: colorForComparison,\n backgroundOpacity: opacityForContrastCalculation,\n });\n\n if (originalContrast >= minContrast) {\n return true;\n }\n\n // Try getting a brighter version (higher value)\n const brighterOption = getAccessibleColorInDirection({\n originalColor,\n colorForComparison,\n minContrast,\n direction: 'brighter',\n opacityForContrastCalculation,\n });\n\n // Try getting a darker version (lower value)\n const darkerOption = getAccessibleColorInDirection({\n originalColor,\n colorForComparison,\n minContrast,\n direction: 'darker',\n opacityForContrastCalculation,\n });\n\n return brighterOption !== null || darkerOption !== null;\n};\n","export const COLOR_ITEM_CLASSNAME = 'wui-color-picker-item';\n\nexport const COLOR_AREA_CANVAS_WIDTH_PX = 250;\nexport const COLOR_AREA_CANVAS_HEIGHT_PX = 150;\nexport const COLOR_PICKER_POPOVER_MAX_WIDTH_PX = 278;\n\nexport const SV_AREA_CANVAS_WIDTH_PX = COLOR_AREA_CANVAS_WIDTH_PX;\nexport const SV_AREA_CANVAS_HEIGHT_PX = COLOR_AREA_CANVAS_HEIGHT_PX;\n\nexport const THREE_SIXTY = 360;\nexport const TWO_FIFTY_FIVE = 255;\n\nexport const DEFAULT_MIN_CONTRAST = 4.5;\nexport const DEFAULT_COLOR_FOR_COMPARISON = '#ffffff';\nexport const DEFAULT_OPACITY_FOR_CONTRAST_CALCULATION = 1;\n\nexport const DEFAULT_SWATCH_DIAMETER_PX = 24;\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\n\nconst requiredStyle = css`\n &::after {\n color: var(--wui-color-text-error);\n display: inline;\n padding-left: var(--wui-space-01);\n content: '*';\n }\n`;\n\nconst disabledStyle = css`\n color: var(--wui-color-text-disabled);\n`;\n\nexport type StyledLabelProps = Pick<ComponentPropsWithoutRef<'label'>, 'htmlFor'> & {\n $disabled: boolean;\n $required: boolean;\n $screenReaderOnly: boolean;\n};\n\nconst StyledLabel = styled.label<StyledLabelProps>`\n display: block;\n width: 100%;\n color: var(--wui-color-text);\n font-family: var(--wui-typography-heading-6-family);\n line-height: var(--wui-typography-heading-6-line-height);\n font-size: var(--wui-typography-heading-6-size);\n font-weight: var(--wui-typography-heading-6-weight);\n\n /* if label is wrapping an input this ensures it appears beneath the label with a nice margin */\n > input,\n > textarea,\n > select {\n display: block;\n }\n\n > label {\n font-weight: normal;\n }\n\n ${({ $screenReaderOnly }) => $screenReaderOnly && visuallyHiddenStyle}\n ${({ $disabled }) => $disabled && disabledStyle}\n ${({ $required }) => $required && requiredStyle}\n`;\n\nexport type LabelProps = ComponentPropsWithoutRef<'label'> & {\n /**\n * Pass an arbitrary child node\n */\n children?: ReactNode;\n /**\n * To indicate that the label is for a disabled form component\n */\n disabled?: boolean;\n /**\n * ID of the form component that the label should be associated with\n */\n htmlFor?: string | undefined;\n /**\n * Use if label describes a required form component\n */\n required?: boolean;\n /**\n * For label text that needs to be available to assistive technology (e.g. screen readers)\n * but otherwise hidden on screen.\n */\n screenReaderOnly?: boolean;\n};\n\n/**\n * Labels are used to give a title to a form component (eg. Input, Select, etc.)\n */\nexport const Label = ({\n children,\n disabled = false,\n htmlFor,\n required = false,\n screenReaderOnly = false,\n ...props\n}: LabelProps): JSX.Element => {\n return (\n <StyledLabel\n {...props}\n $disabled={disabled}\n $required={required}\n $screenReaderOnly={screenReaderOnly}\n htmlFor={htmlFor}\n >\n {children}\n </StyledLabel>\n );\n};\n\nLabel.displayName = 'Label_UI';\n","import type { JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { Item as RadioGroupItem } from '@radix-ui/react-radio-group';\nimport { formatHex } from 'culori/fn';\nimport { ColorSwatch } from './ColorSwatch';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { Tooltip } from '../Tooltip';\nimport type { ColorPickerOption } from './types';\n\nconst Container = styled(RadioGroupItem)`\n border: none;\n appearance: none;\n outline: none;\n align-items: center;\n border-radius: var(--wui-border-radius-rounded);\n padding: 0;\n cursor: pointer;\n user-select: none;\n`;\n\nexport type ColorGridOptionProps = ColorPickerOption;\n\nexport const ColorGridOption = ({ value: rawValue, name }: ColorGridOptionProps): JSX.Element => {\n const value = rawValue.toLocaleLowerCase();\n const { valueAsHsv, nonDerivedValueAsHex } = useColorPickerState();\n // It's important that we use the internal valueAsHsv here rather than using\n // valueAsHex (which is the value passed into the ColorPicker as a prop), to\n // avoid a small timing issue: If we used valueAsHex from useColorPickerState,\n // derivativeIsSelected would be momentarily true here when it shouldn't be,\n // i.e. before the outer component renders to update the prop value after the\n // valueAsHsv has updated internally.\n const valueAsHex = formatHex(valueAsHsv);\n const isSelected = valueAsHex === value;\n const derivativeIsSelected = !isSelected && nonDerivedValueAsHex === value;\n\n return (\n <Tooltip\n content={\n name ?? <span style={{ fontFamily: 'var(--wui-typography-family-mono)' }}>{value}</span>\n }\n >\n <Container\n aria-label={value}\n aria-selected={valueAsHex === value}\n role=\"option\"\n tabIndex={-1}\n value={value}\n >\n <ColorSwatch\n derivativeIsSelected={derivativeIsSelected}\n isSelected={isSelected}\n value={value}\n />\n </Container>\n </Tooltip>\n );\n};\n\nColorGridOption.displayName = 'ColorGridOption_UI';\n","import type { JSX, PropsWithChildren } from 'react';\nimport { styled } from 'styled-components';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { DEFAULT_SWATCH_DIAMETER_PX } from './consts';\n\nconst ColorSwatchDiv = styled.div<{\n $selected?: boolean;\n $diameterPx: number;\n}>`\n aspect-ratio: 1;\n width: ${({ $diameterPx }) => `${$diameterPx}px`};\n border-radius: var(--wui-border-radius-rounded);\n box-shadow: inset 0 0 1px 0 var(--wui-color-border-secondary);\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n overflow: hidden;\n outline: ${({ $selected }) => {\n if ($selected) {\n return '2px solid var(--wui-color-focus-ring-info)';\n }\n return 'none';\n }};\n outline-offset: 2px;\n transform: ${({ $selected }) => ($selected ? 'scale(0.9)' : 'scale(1)')};\n`;\n\nconst DerivativeHalfCircle = styled.div<{\n $color: string;\n}>`\n position: absolute;\n right: 0;\n top: 0;\n width: 50%;\n height: 100%;\n background-color: ${({ $color }) => $color};\n border-radius: 0 var(--wui-border-radius-rounded) var(--wui-border-radius-rounded) 0;\n`;\n\nexport type ColorSwatchProps = PropsWithChildren<{\n derivativeIsSelected?: boolean;\n diameterPx?: number;\n isSelected?: boolean;\n value: string;\n}>;\n\nexport const ColorSwatch = ({\n children,\n diameterPx = DEFAULT_SWATCH_DIAMETER_PX,\n isSelected = false,\n derivativeIsSelected = false,\n value,\n}: ColorSwatchProps): JSX.Element => {\n const { valueAsHex: colorPickerValueAsHex } = useColorPickerState();\n return (\n <ColorSwatchDiv\n $diameterPx={diameterPx}\n $selected={isSelected || derivativeIsSelected}\n aria-label={`Color swatch: ${value}`}\n role=\"img\"\n style={{\n backgroundColor: value,\n }}\n >\n {derivativeIsSelected ? <DerivativeHalfCircle $color={colorPickerValueAsHex} /> : null}\n {children}\n </ColorSwatchDiv>\n );\n};\n","import type { JSX, ReactNode } from 'react';\nimport type {\n TooltipProps as TooltipRootProps,\n TooltipContentProps,\n} from '@radix-ui/react-tooltip';\nimport {\n Root as TooltipRoot,\n Content as TooltipContent,\n Trigger as TooltipTrigger,\n Portal as TooltipPortal,\n Arrow as TooltipArrow,\n} from '@radix-ui/react-tooltip';\nimport { styled, keyframes } from 'styled-components';\n\ntype StyledContentProps = TooltipContentProps;\n\nconst hide = keyframes`\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n`;\n\nconst slideDownAndFade = keyframes`\n from {\n opacity: 0;\n transform: translateY(-6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst slideLeftAndFade = keyframes`\n from {\n opacity: 0;\n transform: translateX(6px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n`;\n\nconst slideUpAndFade = keyframes`\n from {\n opacity: 0;\n transform: translateY(6px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n`;\n\nconst slideRightAndFade = keyframes`\n from {\n opacity: 0;\n transform: translateX(-6px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n`;\n\nconst StyledContent = styled(TooltipContent)<StyledContentProps>`\n --tooltip-font-family: var(--wui-typography-family-default);\n --tooltip-border-radius: var(--wui-border-radius-05);\n --tooltip-bg: var(--wui-color-bg-tooltip);\n --tooltip-color: var(--wui-color-text-on-fill);\n --tooltip-font-size: var(--wui-typography-label-4-size);\n --tooltip-line-height: var(--wui-typography-label-4-line-height);\n --tooltip-font-weight: var(--wui-typography-label-4-weight);\n --tooltip-horizontal-padding: var(--wui-space-02);\n --tooltip-vertical-padding: var(--wui-space-03);\n --tooltip-animation-duration: var(--wui-motion-duration-04);\n --tooltip-animation-timing-function: var(--wui-motion-ease-out);\n\n font-family: var(--tooltip-font-family);\n font-size: var(--tooltip-font-size);\n border-radius: var(--tooltip-border-radius);\n padding: var(--tooltip-horizontal-padding) var(--tooltip-vertical-padding);\n background-color: var(--tooltip-bg);\n color: var(--tooltip-color);\n user-select: none;\n animation-duration: var(--tooltip-animation-duration);\n animation-timing-function: var(--tooltip-animation-timing-function);\n will-change: transform, opacity;\n max-width: 30em;\n z-index: var(--wui-zindex-tooltip);\n\n &[data-state='closed'] {\n animation-name: ${hide};\n }\n\n &[data-state='delayed-open'][data-side='top'] {\n animation-name: ${slideUpAndFade};\n }\n\n &[data-state='delayed-open'][data-side='right'] {\n animation-name: ${slideRightAndFade};\n }\n\n &[data-state='delayed-open'][data-side='bottom'] {\n animation-name: ${slideDownAndFade};\n }\n\n &[data-state='delayed-open'][data-side='left'] {\n animation-name: ${slideLeftAndFade};\n }\n`;\n\nexport type TooltipProps = {\n /**\n * The content of the tooltip\n */\n content: ReactNode;\n /**\n * The button or other interactive element that triggers the tooltip\n */\n children: ReactNode;\n /**\n * The delay in milliseconds before the tooltip appears\n */\n delay?: number;\n /**\n * The preferred direction to render the tooltip if no collisions prevent it\n */\n direction?: 'bottom' | 'left' | 'right' | 'top';\n /**\n * @ignore\n * Force the tooltip to be open without user interaction (for debugging and CI)\n */\n forceOpen?: boolean;\n /**\n * Hides the arrow\n */\n hideArrow?: boolean;\n /**\n * Specify a container element to portal the tooltip into.\n * Useful for rendering tooltips in contexts like pip windows.\n * @default document.body\n */\n container?: Element | null;\n};\n\nconst VISUAL_OFFSET = 6;\n\n/**\n * Tooltips are a way to provide additional information or context to a user when they hover or focus an element.\n * For elements that are not interactive, consider using a [Popover]() instead.\n *\n */\nexport const Tooltip = ({\n delay = 500,\n direction = 'top',\n content,\n children,\n forceOpen,\n hideArrow = false,\n container = null,\n}: TooltipProps): JSX.Element => {\n const rootProps: TooltipRootProps = {};\n\n if (content === '' || content === null) {\n rootProps.open = false;\n }\n\n if (forceOpen === true) {\n rootProps.open = true;\n }\n\n return (\n <TooltipRoot\n delayDuration={delay}\n {...rootProps}\n >\n <TooltipTrigger asChild={true}>{children}</TooltipTrigger>\n <TooltipPortal container={container}>\n <StyledContent\n side={direction}\n sideOffset={hideArrow ? VISUAL_OFFSET : VISUAL_OFFSET - 2}\n >\n {content}\n {!hideArrow ? (\n <TooltipArrow asChild={true}>\n <svg\n fill=\"var(--tooltip-bg)\"\n height=\"8\"\n style={{ transform: 'translateY(-2px)' }}\n viewBox=\"0 0 12 8\"\n width=\"12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <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\" />\n </svg>\n </TooltipArrow>\n ) : null}\n </StyledContent>\n </TooltipPortal>\n </TooltipRoot>\n );\n};\n\nTooltip.displayName = 'Tooltip_UI';\n","import type { JSX, PropsWithChildren } from 'react';\nimport { useCallback } from 'react';\nimport { styled } from 'styled-components';\nimport { Root as ToggleGroupRoot } from '@radix-ui/react-toggle-group';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { convertToHsv } from './color-conversion-utils';\n\nconst Container = styled(ToggleGroupRoot)`\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n`;\n\nexport type ColorListProps = PropsWithChildren;\n\nexport const ColorList = ({ children }: ColorListProps): JSX.Element => {\n const { valueAsHex, onChangeNonDerivedValueAsHsv } = useColorPickerState();\n\n const onValueChange = useCallback(\n (value: string) => {\n if (value === '') {\n // Bail out. This happens because we're using Radix ToggleGroup and\n // clicking the active item sets value to \"\", but we don't want to unset\n // the selected color.\n return;\n }\n\n const hsv = convertToHsv(value);\n onChangeNonDerivedValueAsHsv(hsv);\n },\n [onChangeNonDerivedValueAsHsv],\n );\n\n return (\n <Container\n onValueChange={onValueChange}\n type=\"single\"\n value={valueAsHex}\n >\n {children}\n </Container>\n );\n};\n\nColorList.displayName = 'ColorList_UI';\n","import type { JSX, PropsWithChildren } from 'react';\nimport { styled } from 'styled-components';\nimport { Label } from '../Label';\n\nconst Container = styled.div`\n display: grid;\n gap: var(--wui-space-01);\n grid-template-columns: minmax(0, 1fr);\n`;\n\nconst ItemsContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst LabelContainer = styled.div`\n padding-top: var(--wui-space-01);\n`;\n\nexport type ColorListGroupProps = PropsWithChildren<{ label: string }>;\n\nexport const ColorListGroup = ({ label, children }: ColorListGroupProps): JSX.Element => {\n return (\n <Container\n aria-label={label}\n role=\"group\"\n >\n <LabelContainer>\n <Label>{label}</Label>\n </LabelContainer>\n <ItemsContainer>{children}</ItemsContainer>\n </Container>\n );\n};\n\nColorListGroup.displayName = 'ColorListGroup_UI';\n","import type { JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { Item as ToggleGroupItem } from '@radix-ui/react-toggle-group';\nimport { formatHex } from 'culori/fn';\nimport { ColorSwatch } from './ColorSwatch';\nimport { ColorNameOrHexCode } from './ColorNameOrHexCode';\nimport { useColorPickerState } from './ColorPickerContext';\nimport type { ColorPickerOption } from './types';\n\nconst Container = styled(ToggleGroupItem)`\n border: none;\n appearance: none;\n outline: none;\n align-items: center;\n background-color: var(--wui-color-bg-surface);\n border-radius: var(--wui-border-radius-01);\n cursor: pointer;\n display: flex;\n gap: var(--wui-space-02);\n padding: 6px;\n user-select: none;\n\n &:hover,\n &:focus-visible {\n background-color: var(--wui-color-bg-surface-hover);\n }\n\n &:focus-visible {\n background-color: var(--wui-color-bg-surface-secondary-hover);\n }\n`;\n\nexport type ColorListOptionProps = ColorPickerOption;\n\nexport const ColorListOption = ({ value: rawValue, name }: ColorListOptionProps): JSX.Element => {\n const value = rawValue.toLocaleLowerCase();\n const { valueAsHsv, nonDerivedValueAsHex } = useColorPickerState();\n // It's important that we use the internal valueAsHsv here rather than using\n // valueAsHex (which is the value passed into the ColorPicker as a prop), to\n // avoid a small timing issue: If we used valueAsHex from useColorPickerState,\n // derivativeIsSelected would be momentarily true here when it shouldn't be,\n // i.e. before the outer component renders to update the prop value after the\n // valueAsHsv has updated internally.\n const valueAsHex = formatHex(valueAsHsv);\n const isSelected = valueAsHex === value;\n const derivativeIsSelected = !isSelected && nonDerivedValueAsHex === value;\n\n return (\n <Container\n aria-label={value}\n aria-selected={valueAsHex === value}\n role=\"option\"\n tabIndex={-1}\n value={value}\n >\n <ColorSwatch\n derivativeIsSelected={derivativeIsSelected}\n isSelected={isSelected}\n value={value}\n />\n <ColorNameOrHexCode\n hexCode={value}\n name={name}\n />\n </Container>\n );\n};\n\nColorListOption.displayName = 'ColorListOption_UI';\n","import type { JSX } from 'react';\nimport { Text } from '../Text';\nimport { Box } from '../Box';\nimport type { ColorPickerOption } from './types';\n\ntype ColorNameOrHexCodeProps = Pick<ColorPickerOption, 'name'> & {\n hexCode: ColorPickerOption['value'];\n};\n\nexport const ColorNameOrHexCode = ({ name, hexCode }: ColorNameOrHexCodeProps): JSX.Element => {\n return (\n <Box\n alignItems=\"center\"\n gap=\"space-04\"\n grow={1}\n justifyContent=\"space-between\"\n >\n <Text\n renderAs=\"span\"\n variant={name != null ? 'body3' : 'body3Mono'}\n >\n {name ?? hexCode}\n </Text>\n {name != null && (\n <Text\n prominence=\"secondary\"\n renderAs=\"span\"\n variant=\"body4Mono\"\n >\n {hexCode}\n </Text>\n )}\n </Box>\n );\n};\n","import type { JSX, PropsWithChildren } from 'react';\nimport { Root as PopoverRoot } from '@radix-ui/react-popover';\nimport { ColorPickerProvider } from './ColorPickerContext';\nimport {\n DEFAULT_COLOR_FOR_COMPARISON,\n DEFAULT_MIN_CONTRAST,\n DEFAULT_OPACITY_FOR_CONTRAST_CALCULATION,\n} from './consts';\n\nexport type ColorPickerProps = PropsWithChildren<{\n /**\n * The color to compare against when checking contrast ratio.\n */\n colorForComparison?: string;\n /**\n * The minimum contrast ratio to enforce when `shouldEnforceMinContrast` is true.\n */\n minimumContrastRatio?: number;\n /**\n * The opacity to apply to the value color when calculating contrast.\n */\n opacityForContrastCalculation?: number;\n /**\n * Callback function invoked when the color value changes.\n */\n onValueChange: (value: string) => void;\n /**\n * The current color value in hex format (e.g., \"#ff0000\").\n */\n value: string;\n}>;\n\n/**\n * ColorPicker is a composable component that allows you to create a color\n * picker with various controls and options. Choose the parts you need, leave\n * out the ones you don't, and include any custom UI you need alongside its\n * subcomponents.\n */\nexport const ColorPicker = ({\n children,\n colorForComparison = DEFAULT_COLOR_FOR_COMPARISON,\n minimumContrastRatio = DEFAULT_MIN_CONTRAST,\n opacityForContrastCalculation = DEFAULT_OPACITY_FOR_CONTRAST_CALCULATION,\n onValueChange,\n value,\n}: ColorPickerProps): JSX.Element => {\n return (\n <PopoverRoot modal={false}>\n <ColorPickerProvider\n colorForComparison={colorForComparison}\n minimumContrastRatio={minimumContrastRatio}\n onValueChange={onValueChange}\n opacityForContrastCalculation={opacityForContrastCalculation}\n value={value.toLocaleLowerCase()}\n >\n {children}\n </ColorPickerProvider>\n </PopoverRoot>\n );\n};\n\nColorPicker.displayName = 'ColorPicker_UI';\n","import type { JSX, PropsWithChildren } from 'react';\nimport { Content as PopoverContent, Portal as PopoverPortal } from '@radix-ui/react-popover';\nimport { styled } from 'styled-components';\nimport { COLOR_PICKER_POPOVER_MAX_WIDTH_PX } from './consts';\n\nconst StyledPopoverContent = styled(PopoverContent)`\n background-color: var(--wui-color-bg-surface);\n border-radius: var(--wui-border-radius-02);\n border: 1px solid var(--wui-color-border);\n box-shadow: var(--wui-elevation-02);\n outline: none;\n display: flex;\n flex-direction: column;\n max-width: ${COLOR_PICKER_POPOVER_MAX_WIDTH_PX}px;\n overflow: hidden;\n z-index: var(--wui-zindex-select);\n`;\n\nexport type ColorPickerPopoverContentProps = PropsWithChildren;\n\nexport const ColorPickerPopoverContent = ({\n children,\n}: ColorPickerPopoverContentProps): JSX.Element => {\n return (\n <PopoverPortal>\n <StyledPopoverContent\n align=\"start\"\n sideOffset={4}\n >\n {children}\n </StyledPopoverContent>\n </PopoverPortal>\n );\n};\n\nColorPickerPopoverContent.displayName = 'ColorPickerPopoverContent_UI';\n","import type { JSX, PropsWithChildren } from 'react';\nimport { styled } from 'styled-components';\nimport { Stack } from '../Stack';\n\nconst Container = styled.div`\n padding: var(--wui-space-02);\n`;\n\nexport type ColorPickerSectionProps = PropsWithChildren;\n\nexport const ColorPickerSection = ({ children }: ColorPickerSectionProps): JSX.Element => {\n return (\n <Container>\n <Stack>{children}</Stack>\n </Container>\n );\n};\n\nColorPickerSection.displayName = 'ColorPickerSection_UI';\n","import type { JSX, PropsWithChildren } from 'react';\nimport { forwardRef } from 'react';\nimport { Trigger as PopoverTrigger } from '@radix-ui/react-popover';\nimport { styled } from 'styled-components';\nimport { ValueSwatch } from './ValueSwatch';\nimport { ValueNameOrHexCode } from './ValueNameOrHexCode';\n\nexport const StyledPopoverTrigger = styled(PopoverTrigger)`\n background-color: var(--wui-color-bg-surface);\n border-radius: var(--wui-border-radius-rounded);\n border: 1px solid var(--wui-color-border);\n padding: var(--wui-space-01);\n transition: background-color var(--wui-motion-duration-03) var(--wui-motion-ease);\n\n &:hover {\n background-color: var(--wui-color-bg-surface-hover);\n }\n`;\n\nconst DefaultTriggerContentContainer = styled.div`\n align-items: center;\n display: flex;\n flex-direction: row;\n gap: var(--wui-space-02);\n padding-right: var(--wui-space-02);\n`;\n\nconst DefaultTriggerContent = (): JSX.Element => {\n return (\n <DefaultTriggerContentContainer>\n <ValueSwatch />\n <ValueNameOrHexCode />\n </DefaultTriggerContentContainer>\n );\n};\n\nexport type ColorPickerTriggerProps = PropsWithChildren;\n\nexport const ColorPickerTrigger = forwardRef<HTMLButtonElement, ColorPickerTriggerProps>(\n ({ children, ...props }, forwardedRef): JSX.Element => {\n return (\n <StyledPopoverTrigger\n ref={forwardedRef}\n {...props}\n >\n {children ?? <DefaultTriggerContent />}\n </StyledPopoverTrigger>\n );\n },\n);\n\nColorPickerTrigger.displayName = 'ColorPickerTrigger_UI';\n","import type { JSX } from 'react';\nimport { useColorPickerState } from './ColorPickerContext';\nimport type { ColorSwatchProps } from './ColorSwatch';\nimport { ColorSwatch } from './ColorSwatch';\nimport { DEFAULT_SWATCH_DIAMETER_PX } from './consts';\n\ntype ValueSwatchProps = Pick<ColorSwatchProps, 'diameterPx'>;\n\nexport const ValueSwatch = ({\n diameterPx = DEFAULT_SWATCH_DIAMETER_PX,\n}: ValueSwatchProps): JSX.Element => {\n const { valueAsHex } = useColorPickerState();\n\n return (\n <ColorSwatch\n diameterPx={diameterPx}\n value={valueAsHex}\n />\n );\n};\n\nValueSwatch.displayName = 'ValueSwatch_UI';\n","import type { JSX } from 'react';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { ColorNameOrHexCode } from './ColorNameOrHexCode';\n\nexport const ValueNameOrHexCode = (): JSX.Element => {\n const { valueAsHex } = useColorPickerState();\n\n return <ColorNameOrHexCode hexCode={valueAsHex} />;\n};\n\nValueNameOrHexCode.displayName = 'ValueNameOrHexCode_UI';\n","import type { JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { Badge } from '../Badge';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { Icon } from '../Icon';\nimport { Text } from '../Text';\n\nconst Container = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: end;\n align-items: center;\n`;\n\n// We don't want to just do toFixed(1) because it would round a number like 4.45\n// to 4.5, which would make our UI misleading, as 4.45 doesn't meet the minimum\n// contrast ratio of 4.5:1. We want 4.45 to display as 4.4:1, so we floor it to\n// the nearest tenth.\nconst floorToTenth = (value: number): number => {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n return Math.floor(value * 10) / 10;\n};\n\nexport const ContrastIndicator = (): JSX.Element => {\n const { currentContrastRatio, minimumContrastRatio } = useColorPickerState();\n const isContrastSufficient = currentContrastRatio >= minimumContrastRatio;\n\n const label = (\n <div>\n <Text\n renderAs=\"span\"\n variant=\"body4\"\n >\n Contrast:\n </Text>{' '}\n <Text\n renderAs=\"span\"\n variant=\"body4Mono\"\n >\n {floorToTenth(currentContrastRatio).toFixed(1)}:1\n </Text>\n </div>\n );\n\n return (\n <Container>\n {isContrastSufficient ? (\n <Badge\n colorScheme=\"success\"\n icon={<Icon type=\"checkmark\" />}\n label={label}\n variant=\"outline\"\n />\n ) : (\n <Badge\n colorScheme=\"warning\"\n icon={<Icon type=\"error\" />}\n label={label}\n variant=\"outline\"\n />\n )}\n </Container>\n );\n};\n","import type { JSX, ChangeEvent } from 'react';\nimport { useCallback } from 'react';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { Switch } from '../Switch';\n\n/**\n * Switch for contrast enforcement features.\n *\n * Provides a toggle switch to enable/disable minimum contrast enforcement\n * which automatically adjusts colors to meet accessibility standards.\n */\nexport const ContrastEnforcerSwitch = (): JSX.Element | null => {\n const { setShouldEnforceMinContrast, shouldEnforceMinContrast, hasAccessibleDerivatives } =\n useColorPickerState();\n\n const onChangeContrastLimitedSwitch = useCallback(\n (event: ChangeEvent) => {\n if (!(event.target instanceof HTMLInputElement)) {\n return;\n }\n const shouldLimit = event.target.checked;\n setShouldEnforceMinContrast(shouldLimit);\n },\n [setShouldEnforceMinContrast],\n );\n\n if (!hasAccessibleDerivatives) {\n return null;\n }\n\n return (\n <Switch\n align=\"right\"\n checked={shouldEnforceMinContrast}\n label=\"Limit to high-contrast colors\"\n onChange={onChangeContrastLimitedSwitch}\n />\n );\n};\n","import type { ChangeEvent, ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { forwardRef, useId } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNonEmptyString } from '@wistia/type-guards';\nimport { FormControlLabel } from '../../private/components/FormControlLabel';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\n\nexport type SwitchSizeType = 'lg' | 'md' | 'sm';\n\nconst switchHeightMap = {\n sm: 16,\n md: 20,\n lg: 24,\n};\n\nconst getSizeCss = (size: SwitchSizeType) => css`\n --wui-switch-height: ${switchHeightMap[size]}px;\n`;\n\nconst StyledSwitchWrapper = styled.div<{\n $disabled: boolean;\n $size: SwitchSizeType;\n $hideLabel: boolean;\n}>`\n ${({ $size }) => getSizeCss($size)}\n --wui-switch-border-offset: 2px;\n --wui-switch-background-color: var(--wui-color-bg-surface-tertiary);\n --wui-switch-border-color: transparent;\n --wui-switch-thumb-color: var(--wui-color-icon-on-fill);\n --wui-switch-thumb-margin-left: 0px;\n --wui-switch-thumb-size: calc(var(--wui-switch-height) - var(--wui-switch-border-offset) * 2);\n --wui-switch-width: calc(var(--wui-switch-thumb-size) * 2 + var(--wui-switch-border-offset) * 2);\n --wui-switch-thumb-position: var(--wui-switch-border-offset);\n --wui-switch-outline-color: transparent;\n\n &:has(input:checked) {\n --wui-switch-background-color: var(--wui-color-bg-fill);\n --wui-switch-thumb-position: calc(\n var(--wui-switch-width) - var(--wui-switch-thumb-size) - var(--wui-switch-border-offset)\n );\n }\n\n &:has(input:disabled) {\n --wui-switch-background-color: var(--wui-color-bg-surface-tertiary);\n --wui-switch-thumb-color: var(--wui-color-bg-surface-disabled);\n }\n\n &:has(input:focus-visible) {\n --wui-switch-outline-color: var(--wui-color-focus-ring);\n }\n\n display: flex;\n margin: 0;\n position: relative;\n\n /* TODO this solves a problem but potentially causes and a11y issue */\n user-select: none;\n`;\n\nconst StyledSwitchTrack = styled.div`\n width: var(--wui-switch-width);\n height: var(--wui-switch-height);\n min-width: var(--wui-switch-width);\n min-height: var(--wui-switch-height);\n border-radius: var(--wui-border-radius-rounded);\n display: flex;\n align-items: center;\n outline-width: 2px;\n outline-offset: 2px;\n outline-style: solid;\n outline-color: var(--wui-switch-outline-color);\n transition:\n background-color var(--wui-motion-duration-03) var(--wui-motion-ease-out),\n outline-color var(--wui-motion-duration-03) var(--wui-motion-ease-out);\n background-color: var(--wui-switch-background-color);\n margin-top: calc(calc(1lh - var(--wui-switch-height)) / 2);\n`;\n\nconst StyledSwitchThumb = styled.div`\n border-radius: var(--wui-border-radius-rounded);\n background-color: var(--wui-switch-thumb-color);\n transition:\n margin var(--wui-motion-duration-03) var(--wui-motion-ease-out),\n background-color var(--wui-motion-duration-03) var(--wui-motion-ease-out);\n width: var(--wui-switch-thumb-size);\n height: var(--wui-switch-thumb-size);\n margin-left: var(--wui-switch-thumb-position);\n`;\n\nconst StyledHiddenSwitchInput = styled.input`\n ${visuallyHiddenStyle}\n`;\n\nexport type SwitchProps = Omit<\n ComponentPropsWithoutRef<'input'>,\n 'hideLabel' | 'label' | 'size'\n> & {\n /**\n * The alignment of the switch relative to the label\n */\n align?: 'left' | 'right';\n /**\n * Indicates the state of the switch\n */\n checked?: boolean;\n /**\n * Disables switch\n */\n disabled?: boolean;\n /**\n * Optional ID attribute\n */\n id?: string | undefined;\n /**\n * The label for the switch\n */\n label: ReactNode;\n /**\n * The description for the switch\n */\n description?: ReactNode | undefined;\n /**\n * The name of the switch. Submitted with its owning form as part of a name/value pair.\n */\n name?: string | undefined;\n /**\n * Callback function invoked when the value changes\n */\n onChange?: (event: ChangeEvent) => unknown;\n /**\n * Indicates if the input is required\n */\n required?: boolean;\n /**\n * A predefined size for the switch\n */\n size?: SwitchSizeType;\n /**\n * The value given as data when submitted with a `name`.\n */\n value?: string;\n /**\n * Whether to visually hide the label (it will still be available to screen readers)\n */\n hideLabel?: boolean;\n};\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n (\n {\n align = 'left',\n checked,\n disabled = false,\n id,\n label,\n description,\n name,\n onChange,\n size = 'md',\n value,\n required = false,\n hideLabel = false,\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const computedId = isNonEmptyString(id) ? id : `wistia-ui-switch-${generatedId}`;\n\n return (\n <StyledSwitchWrapper\n $disabled={disabled}\n $hideLabel={hideLabel}\n $size={size}\n >\n <StyledHiddenSwitchInput\n {...props}\n ref={ref}\n checked={checked}\n disabled={disabled}\n id={computedId}\n name={name}\n onChange={onChange}\n required={required}\n type=\"checkbox\"\n value={value}\n />\n <FormControlLabel\n align={align}\n controlSlot={\n <StyledSwitchTrack\n data-testid=\"wui-faux-input\"\n data-wui-faux-input=\"true\"\n >\n <StyledSwitchThumb />\n </StyledSwitchTrack>\n }\n description={description}\n disabled={disabled}\n hideLabel={hideLabel}\n htmlFor={computedId}\n label={label}\n />\n </StyledSwitchWrapper>\n );\n },\n);\n\nSwitch.displayName = 'Switch_UI';\n","import type { JSX } from 'react';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { ColorSwatch } from './ColorSwatch';\nimport { Text } from '../Text';\n\nexport const ContrastPreview = (): JSX.Element => {\n const { valueAsHex, colorForComparison } = useColorPickerState();\n return (\n <ColorSwatch\n diameterPx={36}\n value={valueAsHex}\n >\n <Text style={{ color: colorForComparison }}>Aa</Text>\n </ColorSwatch>\n );\n};\n","import type { JSX } from 'react';\nimport { ContrastIndicator } from './ContrastIndicator';\nimport { ContrastEnforcerSwitch } from './ContrastEnforcerSwitch';\nimport { ContrastPreview } from './ContrastPreview';\nimport { Box } from '../Box';\nimport { Stack } from '../Stack';\n\nexport const ContrastControls = (): JSX.Element => {\n return (\n <Stack>\n <Box\n alignItems=\"center\"\n direction=\"row\"\n justifyContent=\"space-between\"\n >\n <ContrastPreview />\n <ContrastIndicator />\n </Box>\n <ContrastEnforcerSwitch />\n </Stack>\n );\n};\n\nContrastControls.displayName = 'ContrastControls_UI';\n","/* eslint-disable id-length */\nimport type { JSX, ChangeEvent, KeyboardEvent, ClipboardEvent } from 'react';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { parseHex } from 'culori/fn';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { Input } from '../Input';\nimport { convertToHsv } from './color-conversion-utils';\n\nconst SIX_DIGIT_HEX_CODE_LENGTH = 7; // Including the leading '#'\n\nconst isValidHexChar = (char: string): boolean => {\n return /^[0-9a-fA-F]$/.test(char);\n};\n\nconst normalizeHexInput = (input: string): string => {\n // Remove any leading or trailing whitespace\n let cleaned = input.trim();\n\n // Ensure it starts with #\n if (!cleaned.startsWith('#')) {\n cleaned = `#${cleaned}`;\n }\n\n // Remove any extra # characters after the first one\n cleaned = `#${cleaned.slice(1).replace(/#/g, '')}`;\n\n // Limit to 7 characters total (#RRGGBB)\n return cleaned.slice(0, SIX_DIGIT_HEX_CODE_LENGTH).toLocaleLowerCase();\n};\n\n// Unlike a regular HTML input, autoFocus here defaults to true because we\n// expect that HexColorInput will usually be used inside\n// ColorPickerPopoverContent, and we want it to get focused immediately\n// when the popover opens to faciliate quick & easy copy/pasting.\nexport type HexColorInputProps = {\n /**\n * Whether the input should recieve focus automatically on mount.\n */\n autoFocus?: boolean;\n};\n\nexport const HexColorInput = ({ autoFocus = true }: HexColorInputProps): JSX.Element => {\n const { valueAsHex, nonDerivedValueAsHsv, onChangeNonDerivedValueAsHsv } = useColorPickerState();\n const inputRef = useRef<HTMLInputElement>(null);\n const [textInputValue, setTextInputValue] = useState(valueAsHex);\n\n const onChangeInputValue = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const newValue = (event.target.value || '#').trim().toLocaleLowerCase();\n setTextInputValue(newValue);\n\n const isValidHexValue = Boolean(parseHex(newValue));\n\n if (!isValidHexValue) {\n return;\n }\n\n if (newValue.length < SIX_DIGIT_HEX_CODE_LENGTH) {\n // We don't want to interrupt typing and replace a sub-six digit hex\n // code with full one.\n return;\n }\n\n const newValueAsHsv = convertToHsv(newValue);\n\n onChangeNonDerivedValueAsHsv(newValueAsHsv);\n },\n [onChangeNonDerivedValueAsHsv],\n );\n\n const onCopy = useCallback((event: ClipboardEvent<HTMLInputElement>) => {\n const inputElem = inputRef.current;\n if (!inputElem) {\n return;\n }\n\n const { selectionStart, selectionEnd, value } = inputElem;\n\n // If exactly 6 hex characters are selected (entire hex code without #)\n if (\n selectionStart === 1 &&\n selectionEnd === SIX_DIGIT_HEX_CODE_LENGTH &&\n value.length === SIX_DIGIT_HEX_CODE_LENGTH\n ) {\n event.preventDefault();\n const hexWithoutHash = value.slice(1);\n const hexWithHash = `#${hexWithoutHash}`;\n event.clipboardData.setData('text/plain', hexWithHash);\n }\n }, []);\n\n const onSelectCapture = useCallback(() => {\n const inputElem = inputRef.current;\n if (!inputElem) {\n return;\n }\n\n const { selectionStart, selectionEnd } = inputElem;\n\n // If selection includes the # character, adjust it to exclude the #\n if (selectionStart === 0 && selectionEnd != null && selectionEnd > 0) {\n inputElem.setSelectionRange(1, selectionEnd);\n }\n\n // If the selection is collapsed (zero-length) and at the start, move it one\n // character forward (i.e. from the left of the # to the right of the #)\n if (selectionStart === 0 && selectionEnd === 0) {\n inputElem.setSelectionRange(1, 1);\n }\n }, []);\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n const { key, target, metaKey, ctrlKey } = event;\n const input = target as HTMLInputElement;\n const { selectionStart, selectionEnd, value } = input;\n\n // Allow all meta/ctrl key combinations (Cmd+A, Cmd+C, Cmd+V, etc.)\n if (metaKey || ctrlKey) {\n return;\n }\n\n // Handle arrow up/down for saturation nudging\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n event.preventDefault();\n const currentHsv = convertToHsv(valueAsHex);\n const saturationNudge = 0.02; // 2% adjustment\n const newSaturation = Math.max(\n 0,\n Math.min(\n 1,\n key === 'ArrowUp' ? currentHsv.s + saturationNudge : currentHsv.s - saturationNudge,\n ),\n );\n\n const newHsv = {\n ...nonDerivedValueAsHsv,\n s: newSaturation,\n };\n\n onChangeNonDerivedValueAsHsv(newHsv);\n return;\n }\n\n // Allow other navigation keys, backspace, delete, etc.\n if (key.length > 1) {\n return; // Allow navigation keys\n }\n\n // Only allow valid hex characters\n if (!isValidHexChar(key)) {\n event.preventDefault();\n return;\n }\n\n // Don't allow input beyond 6 hex digits (7 total chars including #)\n if (value.length >= SIX_DIGIT_HEX_CODE_LENGTH && selectionStart === selectionEnd) {\n event.preventDefault();\n }\n },\n [valueAsHex, onChangeNonDerivedValueAsHsv, nonDerivedValueAsHsv],\n );\n\n const onPaste = useCallback(\n (event: ClipboardEvent<HTMLInputElement>) => {\n event.preventDefault();\n const pastedText = event.clipboardData.getData('text');\n const normalizedValue = normalizeHexInput(pastedText);\n const isValidHexValue = Boolean(parseHex(normalizedValue));\n\n setTextInputValue(normalizedValue);\n\n if (!isValidHexValue) {\n return;\n }\n\n const newValueAsHsv = convertToHsv(normalizedValue);\n onChangeNonDerivedValueAsHsv(newValueAsHsv);\n },\n [onChangeNonDerivedValueAsHsv],\n );\n\n const selectAllButTheHash = useCallback(() => {\n const inputElem = inputRef.current;\n if (!inputElem) {\n return;\n }\n\n inputElem.setSelectionRange(1, inputElem.value.length);\n }, []);\n\n const onFocusInput = useCallback(() => {\n if (!inputRef.current) {\n return;\n }\n\n selectAllButTheHash();\n }, [selectAllButTheHash]);\n\n useEffect(() => {\n if (!autoFocus) {\n return;\n }\n const inputElem = inputRef.current;\n if (!inputElem) {\n return;\n }\n\n inputElem.focus();\n selectAllButTheHash();\n }, [autoFocus, selectAllButTheHash]);\n\n // Sync text input with external color changes\n useEffect(() => {\n setTextInputValue(valueAsHex);\n }, [valueAsHex]);\n\n return (\n <Input\n ref={inputRef}\n aria-label=\"Hex color input\"\n autoComplete=\"off\"\n maxLength={SIX_DIGIT_HEX_CODE_LENGTH}\n monospace={true}\n onChange={onChangeInputValue}\n onCopy={onCopy}\n onFocus={onFocusInput}\n onKeyDown={onKeyDown}\n onPaste={onPaste}\n onSelectCapture={onSelectCapture}\n spellCheck={false}\n type=\"text\"\n value={textInputValue}\n />\n );\n};\n\nHexColorInput.displayName = 'HexColorInput_UI';\n","import type { FocusEvent, RefObject, InputHTMLAttributes, JSX, ReactNode } from 'react';\nimport { isValidElement, forwardRef, cloneElement, useRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNil, isNotNil, isRecord } from '@wistia/type-guards';\nimport { Icon } from '../Icon';\nimport { inputCss } from '../../css/inputCss';\n\nconst inputStyles = css`\n ${inputCss}\n input,\n textarea {\n padding: var(--wui-input-vertical-padding) var(--wui-input-horizontal-padding);\n background-color: var(--wui-input-color-bg);\n border: none;\n outline: 1px solid var(--wui-input-color-border);\n outline-offset: -1px;\n border-radius: var(--wui-input-border-radius);\n font-size: var(--wui-input-font-size);\n line-height: var(--wui-input-line-height);\n font-weight: var(--wui-input-font-weight);\n color: var(--wui-input-color-text);\n\n &:read-only {\n outline-style: dashed;\n }\n\n &::placeholder {\n color: var(--wui-input-placeholder);\n opacity: 1; /* Firefox */\n }\n\n &:focus {\n outline-width: 2px;\n outline-color: var(--wui-input-color-border-focus);\n outline-offset: -2px;\n }\n\n &[aria-invalid='true'] {\n outline-color: var(--wui-input-color-border-error);\n }\n\n &:disabled {\n outline-color: var(--wui-color-border-disabled);\n background-color: var(--wui-color-bg-surface-disabled);\n }\n }\n`;\n\ntype StyledInputContainerProps = {\n $fullWidth: boolean;\n $fullHeight: boolean;\n $monospace: boolean;\n $isMultiline: boolean;\n};\n\nconst calculateTextareaHeight = (rows = 1) =>\n `calc((var(--wui-input-line-height) * ${rows}) + (var(--wui-input-vertical-padding) * 2));`;\n\nconst StyledInputContainer = styled.div<StyledInputContainerProps>`\n display: inline-flex;\n position: relative;\n ${inputStyles};\n width: ${({ $fullWidth }) => ($fullWidth ? '100%' : 'auto')};\n height: ${({ $fullHeight, $isMultiline }) => ($fullHeight && $isMultiline ? '100%' : 'auto')};\n\n input,\n textarea {\n width: ${({ $fullWidth }) => ($fullWidth ? '100%' : 'auto')};\n ${({ $monospace }) => $monospace && 'font-family: var(--wui-typography-family-mono);'}\n }\n\n textarea {\n --wui-input-line-height: var(--wui-typography-body-3-line-height);\n\n border-radius: var(--wui-input-multiline-border-radius);\n height: ${({ $fullHeight }) => ($fullHeight ? '100%' : 'auto')};\n\n /* override height calculations when fullHeight is enabled */\n ${({ $fullHeight }) =>\n $fullHeight &&\n `\n &[rows='1'],\n &[rows='2'],\n &[rows='3'],\n &[rows='4'],\n &[rows='5'],\n &:not([rows]) {\n height: 100%;\n resize: none;\n }\n `}\n\n /* height based on rows attribute (1-5) - only when fullHeight is not enabled */\n ${({ $fullHeight }) =>\n !$fullHeight &&\n `\n &[rows='1'] {\n height: ${calculateTextareaHeight(1)};\n }\n\n &[rows='2'] {\n height: ${calculateTextareaHeight(2)};\n }\n\n &[rows='3'] {\n height: ${calculateTextareaHeight(3)};\n }\n\n &[rows='4'] {\n height: ${calculateTextareaHeight(4)};\n }\n\n &[rows='5'] {\n height: ${calculateTextareaHeight(5)};\n }\n\n /* make sure textareas without a rows attribute are not tiny */\n &:not([rows]) {\n height: ${calculateTextareaHeight(5)};\n }\n `}\n }\n\n [type='search'] {\n &::-webkit-search-cancel-button {\n appearance: none;\n height: 16px;\n width: 16px;\n margin-right: -4px;\n\n /* css vars don't work in data URLs, so the stroke color value is hardcoded. if we support dark mode, we'll need to swap the background image based on the users preferred color scheme */\n background-image: url(\"data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 4L4 12M4 4L12 12' stroke='%2364646a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");\n background-position: center;\n background-repeat: no-repeat;\n cursor: pointer;\n background-color: var(--wui-color-bg-surface-secondary);\n border-radius: var(--wui-border-radius-rounded);\n\n &:hover {\n background-color: var(--wui-color-bg-surface-secondary-hover);\n }\n }\n }\n\n .wui-input-left-icon {\n display: flex;\n align-items: center;\n position: absolute;\n top: 50%;\n left: var(--wui-input-horizontal-padding);\n transform: translateY(-50%);\n }\n\n &:has(.wui-input-left-icon) input,\n &:has(.wui-input-left-icon) textarea {\n padding-left: 32px;\n }\n\n .wui-input-right-icon {\n display: flex;\n align-items: center;\n position: absolute;\n top: 50%;\n right: var(--wui-input-horizontal-padding);\n transform: translateY(-50%);\n }\n\n &:has(.wui-input-right-icon) input,\n &:has(.wui-input-right-icon) textarea {\n padding-right: 32px;\n }\n`;\n\nexport type InputProps = Omit<\n InputHTMLAttributes<HTMLInputElement | HTMLTextAreaElement>,\n 'type'\n> & {\n /**\n * When enabled, focusing the input will select the entire text within\n */\n autoSelect?: boolean;\n /**\n * Sets the validity status of the input\n */\n 'aria-invalid'?: boolean;\n /**\n * Set the disabled state of the input\n */\n disabled?: boolean;\n /**\n * If true, the input will fill the height of its parent container\n * _note: only applicable when `type=\"multiline\"`_\n */\n fullHeight?: boolean;\n /**\n * If true, the input will fill the width of its parent\n */\n fullWidth?: boolean;\n /**\n * If true, the input will use a monospace font\n */\n monospace?: boolean;\n /**\n * Icon to display on the left side of the input. Must be an instance of [Icon](?path=/docs/components-icon--docs)\n */\n leftIcon?: ReactNode | undefined;\n /**\n * Icon to display on the right side of the input. Must be an instance of [Icon](?path=/docs/components-icon--docs)\n */\n rightIcon?: ReactNode | undefined;\n /**\n * The type of the input\n */\n type?: 'email' | 'multiline' | 'number' | 'password' | 'phone' | 'search' | 'text' | 'url';\n};\n\n/**\n * Capture user input with a text field. Should be used within a [Form]() and [FormField]().\n */\nexport const Input = forwardRef<HTMLInputElement | HTMLTextAreaElement, InputProps>(\n (\n {\n fullWidth = true,\n fullHeight = false,\n monospace = false,\n type = 'text',\n autoSelect = false,\n leftIcon,\n rightIcon,\n ...props\n }: InputProps,\n externalRef,\n ): JSX.Element => {\n const internalRef = useRef<HTMLInputElement | HTMLTextAreaElement>(null);\n\n // TODO - mergeRefs is not working for this for some reason\n const ref =\n isNotNil(externalRef) && isRecord(externalRef) && 'current' in externalRef\n ? (externalRef as RefObject<HTMLInputElement | HTMLTextAreaElement | null>)\n : internalRef;\n\n let leftIconToDisplay = leftIcon;\n\n if (isNil(leftIcon) && type === 'search') {\n leftIconToDisplay = <Icon type=\"search\" />;\n }\n\n if (isNotNil(leftIconToDisplay) && isValidElement(leftIconToDisplay)) {\n leftIconToDisplay = cloneElement(leftIconToDisplay, {\n size: 'md',\n className: 'wui-input-left-icon',\n } as Partial<{ size: string; className: string }>);\n }\n\n let rightIconToDisplay = rightIcon;\n\n if (isNotNil(rightIconToDisplay) && isValidElement(rightIconToDisplay)) {\n rightIconToDisplay = cloneElement(rightIconToDisplay, {\n size: 'md',\n className: 'wui-input-right-icon',\n } as Partial<{ size: string; className: string }>);\n }\n\n const handleFocus = <T extends HTMLInputElement | HTMLTextAreaElement>(\n event: FocusEvent<T>,\n ) => {\n if (isNotNil(props.onFocus)) {\n props.onFocus(event);\n }\n if (autoSelect && type !== 'multiline' && ref.current instanceof HTMLInputElement) {\n requestAnimationFrame(() => {\n ref.current?.select();\n });\n }\n };\n\n return (\n <StyledInputContainer\n $fullHeight={fullHeight}\n $fullWidth={fullWidth}\n $isMultiline={type === 'multiline'}\n $monospace={monospace}\n data-wui-input-container={true}\n >\n {leftIconToDisplay ?? null}\n {type === 'multiline' ? (\n <textarea\n {...props}\n ref={ref as unknown as RefObject<HTMLTextAreaElement | null>}\n onFocus={handleFocus<HTMLTextAreaElement>}\n />\n ) : (\n <input\n {...props}\n ref={ref as unknown as RefObject<HTMLInputElement | null>}\n onFocus={handleFocus<HTMLInputElement>}\n type={type}\n />\n )}\n {rightIconToDisplay ?? null}\n </StyledInputContainer>\n );\n },\n);\n\nInput.displayName = 'Input_UI';\n","import { css } from 'styled-components';\n\nexport const inputCss = css`\n /* Colors */\n --wui-input-color-bg: var(--wui-color-bg-surface);\n --wui-input-color-bg-disabled: var(--wui-color-bg-surface-disabled);\n --wui-input-color-border: var(--wui-color-border-secondary);\n --wui-input-color-border-focus: var(--wui-color-focus-ring);\n --wui-input-color-border-error: var(--wui-color-invalid-indicator);\n --wui-input-color-border-disabled: var(--wui-color-border-disabled);\n --wui-input-color-text: var(--wui-color-text);\n\n /* Border */\n --wui-input-border-radius: var(--wui-border-radius-03);\n --wui-input-multiline-border-radius: var(--wui-border-radius-02);\n\n /* Padding */\n --wui-input-vertical-padding: var(--wui-space-02);\n --wui-input-horizontal-padding: var(--wui-space-03);\n\n /* Typography */\n --wui-input-placeholder: var(--wui-gray-10);\n --wui-input-font-size: var(--wui-typography-body-3-size);\n --wui-input-line-height: 16px;\n --wui-input-font-weight: var(--wui-typography-weight-body);\n`;\n","/* eslint-disable id-length */\nimport type { CSSProperties, JSX } from 'react';\nimport { useCallback, useMemo } from 'react';\nimport {\n Root as SliderRoot,\n Track as SliderTrack,\n Thumb as SliderThumb,\n} from '@radix-ui/react-slider';\nimport { styled } from 'styled-components';\nimport { formatHex } from 'culori/fn';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { THREE_SIXTY } from './consts';\nimport { HSVHueCanvas } from './HSVHueCanvas';\n\nconst TWENTY_FOUR = 24;\n\nconst Container = styled.div`\n border-radius: var(--wui-border-radius-rounded);\n border: 1px solid var(--wui-color-border);\n height: ${TWENTY_FOUR}px;\n overflow: hidden;\n padding: 0 var(--wui-space-03);\n position: relative;\n`;\n\nconst Root = styled(SliderRoot)`\n align-items: center;\n display: flex;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: calc(100% - var(--wui-space-05));\n height: 16px;\n`;\n\nconst Track = styled(SliderTrack)`\n width: 100%;\n`;\n\nconst Thumb = styled(SliderThumb)`\n position: relative;\n`;\n\nconst ThumbInner = styled.div`\n cursor: pointer;\n display: block;\n border-radius: var(--wui-border-radius-rounded);\n box-shadow:\n inset 0 0 0 1px var(--wui-color-border),\n inset 0 0 0 2px black;\n height: 16px;\n position: absolute;\n transform: translate(-50%, -50%);\n width: 16px;\n\n ${Thumb}:focus-visible > & {\n box-shadow:\n inset 0 0 0 2px var(--wui-color-border),\n inset 0 0 0 3px black;\n }\n`;\n\nexport const HueSlider = (): JSX.Element => {\n const { nonDerivedValueAsHsv, onChangeNonDerivedValueAsHsv, valueAsHsv } = useColorPickerState();\n\n // We have some background here that needs to match the color at either end of\n // the hue slider. It's so the thumb can be inset from the edge of the\n // gradient background when at the extremes of the slider, while still being\n // able to reach those extreme values.\n const containerStyle = useMemo<CSSProperties>(() => {\n return {\n backgroundColor: formatHex({\n h: 0, // red\n s: valueAsHsv.s,\n v: valueAsHsv.v,\n mode: 'hsv' as const,\n }),\n };\n }, [valueAsHsv.s, valueAsHsv.v]);\n\n const thumbInnerStyle = useMemo<CSSProperties>(() => {\n return { backgroundColor: formatHex(valueAsHsv) };\n }, [valueAsHsv]);\n\n const onHueChange = useCallback(\n (values: number[]) => {\n const newHue = values[0] ?? 0;\n\n onChangeNonDerivedValueAsHsv({\n ...nonDerivedValueAsHsv,\n h: newHue,\n });\n },\n [nonDerivedValueAsHsv, onChangeNonDerivedValueAsHsv],\n );\n\n return (\n <Container style={containerStyle}>\n <Root\n max={THREE_SIXTY}\n min={0}\n onValueChange={onHueChange}\n orientation=\"horizontal\"\n step={1}\n value={[nonDerivedValueAsHsv.h ?? 0]}\n >\n <Track />\n <Thumb aria-label=\"Hue slider\">\n <ThumbInner style={thumbInnerStyle} />\n </Thumb>\n </Root>\n <HSVHueCanvas hsv={valueAsHsv} />\n </Container>\n );\n};\n\nHueSlider.displayName = 'HueSlider_UI';\n","/* eslint-disable id-length */\nimport type { JSX } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { styled } from 'styled-components';\nimport { formatHex } from 'culori/fn';\nimport type { Hsv } from 'culori/fn';\nimport { THREE_SIXTY } from './consts';\n\nconst Canvas = styled.canvas`\n display: block;\n height: 100%;\n width: 100%;\n`;\n\ntype HSVHueCanvasProps = {\n hsv: Hsv;\n};\n\n/**\n * Canvas component that draws a horizontal hue gradient.\n *\n * Creates a smooth gradient from red (0°) through the full hue spectrum\n * back to red (360°), maintaining consistent saturation and value.\n */\nexport const HSVHueCanvas = ({ hsv }: HSVHueCanvasProps): JSX.Element => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) {\n return;\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n return;\n }\n\n const { width, height } = canvas;\n const gradient = ctx.createLinearGradient(0, 0, width, 0);\n\n // Create gradient stops for full hue range\n for (let i = 0; i <= THREE_SIXTY; i++) {\n const hue = i;\n const hexColor = formatHex({ h: hue, s: hsv.s, v: hsv.v, mode: 'hsv' as const });\n\n if (hexColor) {\n gradient.addColorStop(i / THREE_SIXTY, hexColor);\n }\n }\n\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, width, height);\n }, [hsv.s, hsv.v]); // Redraw when saturation or value changes\n\n return (\n <Canvas\n ref={canvasRef}\n width={THREE_SIXTY}\n />\n );\n};\n","/* eslint-disable id-length */\nimport type { JSX, CSSProperties, MouseEvent as ReactMouseEvent, KeyboardEvent } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { styled } from 'styled-components';\nimport { ScreenReaderOnly } from '../ScreenReaderOnly';\nimport { useColorPickerState } from './ColorPickerContext';\nimport { HSVSaturationValueCanvas } from './HSVSaturationValueCanvas';\nimport { SV_AREA_CANVAS_WIDTH_PX, SV_AREA_CANVAS_HEIGHT_PX } from './consts';\nimport { convertToHsv } from './color-conversion-utils';\n\nconst SATURATION_NUDGE = 0.02;\nconst VALUE_NUDGE = 0.02;\n\nconst Container = styled.div`\n border-radius: var(--wui-border-radius-02);\n box-shadow: 0 0 0 1px var(--wui-color-border);\n overflow: hidden;\n position: relative;\n`;\n\nconst Thumb = styled.button.attrs({ type: 'button' })`\n appearance: none;\n border-radius: var(--wui-border-radius-rounded);\n border: none;\n box-shadow:\n inset 0 0 0 1px var(--wui-color-border),\n inset 0 0 0 2px black;\n cursor: pointer;\n height: 16px;\n outline: none;\n position: absolute;\n transform: translate(-50%, -50%);\n width: 16px;\n\n &:focus-visible {\n box-shadow:\n inset 0 0 0 2px var(--wui-color-border),\n inset 0 0 0 3px black;\n }\n`;\n\ntype SaturationAndValuePickerProps = {\n dataTestId?: string;\n};\n\nexport const SaturationAndValuePicker = ({\n dataTestId,\n}: SaturationAndValuePickerProps): JSX.Element => {\n const {\n colorForComparison,\n isDragging,\n isTransitioning,\n minimumContrastRatio,\n nonDerivedValueAsHsv,\n onChangeNonDerivedValueAsHsv,\n opacityForContrastCalculation,\n setIsDragging,\n shouldEnforceMinContrast,\n valueAsHex,\n valueAsHsv,\n } = useColorPickerState();\n const containerRef = useRef<HTMLDivElement>(null);\n const thumbRef = useRef<HTMLButtonElement>(null);\n const uuid = useMemo(() => crypto.randomUUID(), []);\n const instructionsId = `sv-instructions-${uuid}`;\n\n const valueAsHexConvertedToHsv = convertToHsv(valueAsHex);\n\n const thumbPositionHsv = useMemo(() => {\n // Some precision is lost when converting HSV to hex and back to HSV. When\n // dragging around (which happens when _not_ transitioning, as transitioning\n // only happens for a moment upon toggling contrast enforcement), we want\n // the thumb position to be very precise. BUT valueAsHsv doesn't get updated\n // during transitions, so to transition the y position of the thumb we must\n // use valueAsHexConvertedToHsv then.\n if (!isTransitioning) {\n return valueAsHsv;\n }\n return valueAsHexConvertedToHsv;\n }, [isTransitioning, valueAsHexConvertedToHsv, valueAsHsv]);\n\n const [thumbStyle, setThumbStyle] = useState<CSSProperties>({\n backgroundColor: valueAsHex,\n });\n\n useLayoutEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n\n const thumbX = thumbPositionHsv.s * (container.clientWidth || SV_AREA_CANVAS_WIDTH_PX);\n const thumbY = (1 - thumbPositionHsv.v) * (container.clientHeight || SV_AREA_CANVAS_HEIGHT_PX);\n\n setThumbStyle({\n left: `${thumbX}px`,\n top: `${thumbY}px`,\n backgroundColor: valueAsHex,\n });\n }, [thumbPositionHsv.s, thumbPositionHsv.v, valueAsHex]);\n\n const nudgeHsv = useCallback(\n (channel: 's' | 'v', delta: number) => {\n if (channel === 's') {\n const newSaturation = Math.max(0, Math.min(1, nonDerivedValueAsHsv.s + delta));\n\n onChangeNonDerivedValueAsHsv({\n ...nonDerivedValueAsHsv,\n s: newSaturation,\n });\n return;\n }\n\n // channel must === 'v'\n const newValue = Math.max(0, Math.min(1, nonDerivedValueAsHsv.v + delta));\n\n onChangeNonDerivedValueAsHsv({\n ...nonDerivedValueAsHsv,\n v: newValue,\n });\n },\n [nonDerivedValueAsHsv, onChangeNonDerivedValueAsHsv],\n );\n\n const updateSaturationAndValueFromCoordinates = useCallback(\n (clientX: number, clientY: number) => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n\n const rect = container.getBoundingClientRect();\n const x = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width));\n const y = Math.max(0, Math.min(1, (clientY - rect.top) / rect.height));\n\n const saturation = x;\n const value = 1 - y;\n\n onChangeNonDerivedValueAsHsv({\n ...nonDerivedValueAsHsv,\n s: saturation,\n v: value,\n });\n },\n [onChangeNonDerivedValueAsHsv, nonDerivedValueAsHsv],\n );\n\n const onContainerMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n thumbRef.current?.focus();\n setIsDragging(true);\n updateSaturationAndValueFromCoordinates(event.clientX, event.clientY);\n },\n [setIsDragging, updateSaturationAndValueFromCoordinates],\n );\n\n const onThumbMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n thumbRef.current?.focus();\n setIsDragging(true);\n },\n [setIsDragging],\n );\n\n const onThumbKeyDown = useCallback(\n (event: KeyboardEvent<HTMLButtonElement>) => {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n nudgeHsv('s', SATURATION_NUDGE);\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n nudgeHsv('s', -SATURATION_NUDGE);\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n nudgeHsv('v', VALUE_NUDGE);\n return;\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n nudgeHsv('v', -VALUE_NUDGE);\n }\n },\n [nudgeHsv],\n );\n\n const onWindowMouseMove = useCallback(\n (event: MouseEvent) => {\n if (!isDragging) {\n return;\n }\n updateSaturationAndValueFromCoordinates(event.clientX, event.clientY);\n },\n [isDragging, updateSaturationAndValueFromCoordinates],\n );\n\n const onWindowMouseUp = useCallback(() => setIsDragging(false), [setIsDragging]);\n\n useEffect(() => {\n window.addEventListener('mousemove', onWindowMouseMove);\n window.addEventListener('mouseup', onWindowMouseUp);\n\n return () => {\n window.removeEventListener('mousemove', onWindowMouseMove);\n window.removeEventListener('mouseup', onWindowMouseUp);\n };\n }, [onWindowMouseMove, onWindowMouseUp]);\n\n return (\n // eslint-disable-next-line styled-components-a11y/no-static-element-interactions\n <Container\n ref={containerRef}\n data-testid={dataTestId}\n onMouseDown={onContainerMouseDown}\n >\n <Thumb\n ref={thumbRef}\n aria-describedby={instructionsId}\n aria-label=\"Saturation and value thumb\"\n onKeyDown={onThumbKeyDown}\n onMouseDown={onThumbMouseDown}\n style={thumbStyle}\n tabIndex={0}\n />\n <HSVSaturationValueCanvas\n colorForComparison={colorForComparison}\n hue={nonDerivedValueAsHsv.h ?? 0}\n minimumContrastRatio={minimumContrastRatio}\n opacityForContrastCalculation={opacityForContrastCalculation}\n shouldShowContrastCurve={shouldEnforceMinContrast}\n />\n <ScreenReaderOnly id={instructionsId}>\n Move right to increase saturation, left to decrease saturation, up to increase value, and\n down to decrease value.\n </ScreenReaderOnly>\n <ScreenReaderOnly aria-live=\"polite\">\n Current color: {valueAsHex}. Hue: {(nonDerivedValueAsHsv.h ?? 0).toFixed(2)}, Saturation:{' '}\n {nonDerivedValueAsHsv.s.toFixed(2)}, Value: {nonDerivedValueAsHsv.v.toFixed(2)}.\n </ScreenReaderOnly>\n </Container>\n );\n};\n\nSaturationAndValuePicker.displayName = 'SaturationAndValuePicker_UI';\n","/* eslint-disable id-length */\nimport type { JSX } from 'react';\nimport { useEffect, useRef } from 'react';\nimport { styled } from 'styled-components';\nimport {\n SV_AREA_CANVAS_WIDTH_PX,\n SV_AREA_CANVAS_HEIGHT_PX,\n TWO_FIFTY_FIVE,\n DEFAULT_MIN_CONTRAST,\n} from './consts';\nimport { drawSmoothCurve } from './canvas-utils';\nimport { getAccessibleColorByValueChannelChange } from './contrast-utils';\nimport { convertToRgb } from './color-conversion-utils';\n\nconst Canvas = styled.canvas`\n display: block;\n width: 100%;\n`;\n\ntype HSVSaturationValueCanvasProps = {\n hue: number;\n shouldShowContrastCurve: boolean;\n minimumContrastRatio: number;\n colorForComparison: string;\n opacityForContrastCalculation: number;\n};\n\nconst calculateContrastCurve = (\n width: number,\n height: number,\n hue: number,\n minimumContrastRatio: HSVSaturationValueCanvasProps['minimumContrastRatio'],\n colorForComparison: HSVSaturationValueCanvasProps['colorForComparison'],\n limit: 'lower' | 'upper',\n opacityForContrastCalculation: HSVSaturationValueCanvasProps['opacityForContrastCalculation'],\n): { x: number; y: number }[] => {\n const contrastPoints: { x: number; y: number }[] = [];\n\n for (let x = 0; x < width; x += 1) {\n const saturationChanel = x / (width - 1);\n\n // Search direction: upper searches from bottom to top, lower from top to bottom\n const initialValueChannelForSearch = limit === 'upper' ? 0 : 1;\n const colorForXAsHsv = getAccessibleColorByValueChannelChange({\n originalColor: { h: hue, s: saturationChanel, v: initialValueChannelForSearch, mode: 'hsv' },\n colorForComparison,\n minContrast: minimumContrastRatio,\n direction: limit === 'upper' ? 'brighter' : 'darker',\n opacityForContrastCalculation,\n // We set shouldConvertToHex to false to make the curve smoother.\n shouldConvertToHex: false,\n });\n\n if (colorForXAsHsv != null) {\n const point = {\n x: saturationChanel * width,\n y: height - colorForXAsHsv.v * height, // Convert value\n };\n\n contrastPoints.push(point);\n }\n\n if (colorForXAsHsv == null) {\n // If we hit a point where no color is accessible, we can bail out. the curve only goes up and we must have hit the top.\n break;\n }\n\n // if we've hit the top, we can bail. these curves only go up.\n if (colorForXAsHsv.v >= 1) {\n break;\n }\n }\n\n return contrastPoints;\n};\n\nconst drawGradientBackground = (\n ctx: CanvasRenderingContext2D,\n width: number,\n height: number,\n hue: number,\n): void => {\n const img = ctx.createImageData(width, height);\n const { data } = img;\n\n for (let y = 0; y < height; y++) {\n const v = 1 - y / (height - 1);\n for (let x = 0; x < width; x++) {\n const s = x / (width - 1);\n const rgb = convertToRgb({ h: hue, s, v, mode: 'hsv' });\n const idx = 4 * (y * width + x);\n data[idx] = rgb.r * TWO_FIFTY_FIVE;\n data[idx + 1] = rgb.g * TWO_FIFTY_FIVE;\n data[idx + 2] = rgb.b * TWO_FIFTY_FIVE;\n data[idx + 3] = TWO_FIFTY_FIVE;\n }\n }\n ctx.putImageData(img, 0, 0);\n};\n\n/**\n * Canvas component that draws a 2D saturation/value gradient.\n *\n * Features:\n * - X-axis: saturation (0-1, left to right)\n * - Y-axis: value (1-0, top to bottom)\n * - Optional contrast threshold curve overlay\n */\nexport const HSVSaturationValueCanvas = ({\n hue,\n shouldShowContrastCurve = false,\n minimumContrastRatio = DEFAULT_MIN_CONTRAST,\n colorForComparison,\n opacityForContrastCalculation,\n}: HSVSaturationValueCanvasProps): JSX.Element => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) {\n return;\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n return;\n }\n\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n const { width, height } = canvas;\n\n drawGradientBackground(ctx, width, height, hue);\n\n if (shouldShowContrastCurve && colorForComparison) {\n ctx.lineWidth = 1.5;\n ctx.strokeStyle = 'white';\n\n // curve below which contrast is sufficient\n const maxHsvValueChannelCurve = calculateContrastCurve(\n width,\n height,\n hue,\n minimumContrastRatio,\n colorForComparison,\n 'upper',\n opacityForContrastCalculation,\n );\n\n // curve above which contrast is sufficient\n const minHsvValueChannelCurve = calculateContrastCurve(\n width,\n height,\n hue,\n minimumContrastRatio,\n colorForComparison,\n 'lower',\n opacityForContrastCalculation,\n );\n\n if (minHsvValueChannelCurve.length > 0) {\n drawSmoothCurve(ctx, minHsvValueChannelCurve);\n }\n if (maxHsvValueChannelCurve.length > 0) {\n drawSmoothCurve(ctx, maxHsvValueChannelCurve);\n }\n }\n }, [\n hue,\n shouldShowContrastCurve,\n minimumContrastRatio,\n colorForComparison,\n opacityForContrastCalculation,\n ]);\n\n return (\n <Canvas\n ref={canvasRef}\n height={SV_AREA_CANVAS_HEIGHT_PX}\n width={SV_AREA_CANVAS_WIDTH_PX}\n />\n );\n};\n","type Point = { x: number; y: number };\nexport type Points = Point[];\n\nexport const drawSmoothCurve = (context: CanvasRenderingContext2D, points: Points) => {\n const firstPoint = points[0];\n const lastPoint = points[points.length - 1];\n\n if (!firstPoint || !lastPoint) {\n throw new Error('No points provided to drawSmoothCurve');\n }\n\n context.beginPath();\n context.moveTo(firstPoint.x, firstPoint.y);\n\n for (let i = 1; i < points.length - 1; i++) {\n const currentPoint = points[i];\n const nextPoint = points[i + 1];\n if (!currentPoint) {\n throw new Error(`Missing point at index ${i} in points array`);\n }\n if (!nextPoint) {\n throw new Error(`Missing point at index ${i + 1} in points array`);\n }\n const xc = (currentPoint.x + nextPoint.x) / 2;\n const yc = (currentPoint.y + nextPoint.y) / 2;\n context.quadraticCurveTo(currentPoint.x, currentPoint.y, xc, yc);\n }\n\n // Connect the last two points with a straight line\n context.lineTo(lastPoint.x, lastPoint.y);\n context.stroke();\n};\n","import * as Ariakit from '@ariakit/react';\nimport type { ReactNode } from 'react';\nimport {\n useMemo,\n useRef,\n useState,\n useTransition,\n useEffect,\n Children,\n isValidElement,\n} from 'react';\nimport { matchSorter } from 'match-sorter';\nimport { styled } from 'styled-components';\nimport { isArray, isString } from '@wistia/type-guards';\nimport { Tag } from '../Tag';\nimport { Icon } from '../Icon';\nimport { inputCss } from '../../css/inputCss';\nimport { getTypographicStyles } from '../../private/helpers/getTypographicStyles/getTypographicStyles';\n\nconst ComboboxWrapper = styled.div<{ $fullWidth: boolean }>`\n ${inputCss};\n width: ${({ $fullWidth }) => ($fullWidth ? '100%' : 'auto')};\n padding: var(--wui-input-vertical-padding) var(--wui-input-horizontal-padding);\n background-color: var(--wui-input-color-bg);\n border: none;\n outline: 1px solid var(--wui-input-color-border);\n outline-offset: -1px;\n border-radius: var(--wui-input-border-radius);\n font-size: var(--wui-input-font-size);\n line-height: var(--wui-input-line-height);\n font-weight: var(--wui-input-font-weight);\n color: var(--wui-input-color-text);\n display: inline-flex;\n flex-wrap: wrap;\n gap: var(--wui-space-01);\n\n > * {\n width: min-content !important;\n }\n\n &:focus-within {\n outline: 2px solid var(--wui-input-color-border-focus);\n outline-offset: -2px;\n }\n\n input {\n outline: 0 none;\n border: 0 none;\n\n &::placeholder {\n color: var(--wui-input-placeholder);\n opacity: 1;\n }\n\n &:focus {\n outline: 0;\n }\n\n &[aria-invalid='true'] {\n outline-color: var(--wui-input-color-border-error);\n }\n\n &:disabled {\n outline-color: var(--wui-color-border-disabled);\n background-color: var(--wui-color-bg-surface-disabled);\n }\n }\n`;\n\nconst ComboboxInput = styled(Ariakit.Combobox)`\n appearance: none;\n padding: 0;\n width: 100%;\n border: 0 none;\n flex: 1;\n\n &[data-focus-visible] {\n outline-style: solid;\n }\n\n &[data-active-item] {\n outline-width: 2px;\n }\n`;\n\nconst ComboboxPopover = styled(Ariakit.ComboboxPopover)`\n --wui-combobox-content-border: var(--wui-color-border);\n --wui-combobox-content-bg: var(--wui-color-bg-surface);\n --wui-combobox-content-border-radius: var(--wui-border-radius-02);\n --wui-combobox-option-padding: var(--wui-space-02);\n --wui-combobox-option-inner-gap: var(--wui-space-03);\n --wui-combobox-option-bg-hover: var(--wui-color-bg-surface-hover);\n\n border-radius: var(--wui-border-radius-02);\n padding: var(--wui-space-02);\n max-height: var(--wui-popover-max-height, 300px);\n background-color: var(--wui-color-bg-surface);\n box-shadow: var(--wui-elevation-01);\n border: 1px solid var(--wui-color-border);\n position: relative;\n z-index: 50;\n display: flex;\n flex-direction: column;\n overflow: auto;\n overscroll-behavior: contain;\n margin-top: var(--wui-space-02);\n\n &[aria-busy='true'] {\n --item-opacity: 0.5;\n }\n`;\n\nconst ComboboxItem = styled(Ariakit.ComboboxItem)`\n ${getTypographicStyles('body3')};\n display: flex;\n padding: var(--wui-combobox-option-padding);\n gap: var(--wui-combobox-option-inner-gap);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n border-radius: var(--wui-border-radius-01);\n align-items: center;\n cursor: pointer;\n justify-content: space-between;\n\n &:hover,\n &:focus-visible,\n &[data-focus-visible='true'],\n &[data-active-item='true'] {\n background-color: var(--wui-combobox-option-bg-hover);\n outline: none;\n }\n\n &[aria-disabled='true'] {\n color: var(--wui-color-text-disabled);\n }\n\n &[aria-disabled='true']:hover {\n background-color: transparent;\n }\n`;\n\nconst NoResults = styled.div`\n gap: var(--wui-space-02);\n`;\n\nconst POPOVER_WIDTH_OFFSET = 20;\n\nexport type ComboboxOptionProps = {\n value: string;\n children: ReactNode;\n};\n\nexport const ComboboxOption = ({ value, children }: ComboboxOptionProps) => {\n return (\n <ComboboxItem\n className=\"combobox-item\"\n focusOnHover={true}\n value={value}\n >\n {children}\n </ComboboxItem>\n );\n};\n\nconst extractOptions = (children: ReactNode) => {\n const options: Record<string, ReactNode> = {};\n Children.forEach(children, (child) => {\n if (\n isValidElement<{ value: string; children?: ReactNode }>(child) &&\n 'value' in child.props &&\n 'children' in child.props\n ) {\n options[child.props.value] = child.props.children ?? child.props.value;\n }\n });\n return options;\n};\n\nconst defaultDisplayValues = (values: string[] | string, onRemove: (value: string) => void) => {\n const valueArray = Array.isArray(values) ? values : [values];\n return valueArray.map((selectedValue) => (\n <Tag\n key={selectedValue}\n label={selectedValue}\n onClickRemove={() => onRemove(selectedValue)}\n onClickRemoveLabel={`Remove ${selectedValue}`}\n />\n ));\n};\n\nexport type ComboboxProps = {\n /**\n * If true, the popover will flip to stay within the viewport\n */\n flipPopover?: Ariakit.ComboboxPopoverProps['flip'];\n /**\n * If true, the combox will fill the width of its parent\n */\n fullWidth?: boolean;\n /**\n * The options to display in the combobox\n */\n children: ReactNode;\n\n /**\n * Function to render the selected values. Receives the selected values and a function to remove a value. This is only applicable for multi-select comboboxes.\n */\n displayValues?: (values: string[] | string, onRemove: (value: string) => void) => ReactNode;\n\n /**\n * The placeholder text for the combobox input\n */\n placeholder?: string;\n /**\n * The function to call when the search value changes.\n */\n onSearchValueChange: (value: string) => void;\n /**\n * The search value of the combobox input\n */\n searchValue: string;\n /**\n * Callback that fires when a value is selected\n */\n onChange: (value: string[] | string) => void;\n /**\n * The selected values of the combobox\n */\n value: string[] | string;\n};\n\nexport const Combobox = ({\n placeholder,\n value = [],\n onChange,\n searchValue,\n onSearchValueChange,\n displayValues = defaultDisplayValues,\n children,\n flipPopover = true,\n fullWidth = true,\n}: ComboboxProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const [isPending, startTransition] = useTransition();\n const [wrapperWidth, setWrapperWidth] = useState('auto');\n const comboboxWrapperRef = useRef<HTMLDivElement | null>(null);\n\n const options = useMemo(() => extractOptions(children), [children]);\n\n const isMultiSelect = isArray(value);\n\n useEffect(() => {\n const comboboxWrapper = comboboxWrapperRef.current;\n if (comboboxWrapper) {\n const updateWidthVariable = () => {\n const { width } = comboboxWrapper.getBoundingClientRect();\n setWrapperWidth(`${width - POPOVER_WIDTH_OFFSET}px`);\n };\n\n updateWidthVariable();\n window.addEventListener('resize', updateWidthVariable);\n\n return () => {\n window.removeEventListener('resize', updateWidthVariable);\n };\n }\n\n return () => null;\n }, []);\n\n const handleRemoveValue = (valueToRemove: string) => {\n if (isString(value)) {\n onChange('');\n return;\n }\n onChange(isString(value) ? '' : value.filter((val: string) => val !== valueToRemove));\n };\n\n const matches = useMemo(() => {\n return matchSorter(Object.keys(options), searchValue);\n }, [options, searchValue]);\n\n return (\n <Ariakit.ComboboxProvider\n open={isOpen}\n selectedValue={value}\n setOpen={setIsOpen}\n setSelectedValue={onChange}\n setValue={(nextValue) => {\n startTransition(() => {\n onSearchValueChange(nextValue);\n });\n }}\n value={!isOpen && !isMultiSelect ? value : searchValue}\n >\n <ComboboxWrapper\n ref={comboboxWrapperRef}\n $fullWidth={fullWidth}\n >\n {isMultiSelect ? displayValues(value, handleRemoveValue) : null}\n <ComboboxInput\n autoSelect={true}\n placeholder={placeholder}\n />\n </ComboboxWrapper>\n <ComboboxPopover\n aria-busy={isPending}\n flip={flipPopover}\n gutter={8}\n onClose={() => onSearchValueChange('')}\n sameWidth={false}\n style={{\n width: wrapperWidth,\n }}\n >\n {matches.map((match) => (\n <ComboboxItem\n key={match}\n className=\"combobox-item\"\n value={match}\n >\n {options[match]}\n <Icon\n size=\"md\"\n style={{\n opacity: value.includes(match) ? 1 : 0,\n }}\n type=\"checkmark\"\n />\n </ComboboxItem>\n ))}\n {!matches.length && <NoResults>No results found</NoResults>}\n </ComboboxPopover>\n </Ariakit.ComboboxProvider>\n );\n};\n","import type { JSX, ReactNode, ComponentPropsWithoutRef, MouseEvent, ElementType } from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { isNil, isNotNil, isNonEmptyString } from '@wistia/type-guards';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { ScreenReaderOnly } from '../ScreenReaderOnly';\nimport { Icon } from '../Icon';\n\nconst TagLabel = styled.a<{\n $colorScheme: ColorSchemeTypes;\n as: ElementType;\n}>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n font-size: var(--wui-typography-label-4-size);\n font-weight: var(--wui-typography-label-4-weight);\n line-height: var(--wui-typography-label-4-line-height);\n border-radius: var(--wui-border-radius-01);\n display: flex;\n align-items: center;\n color: var(--wui-color-text);\n text-decoration: none;\n padding: var(--wui-space-01);\n gap: var(--wui-space-01);\n\n svg {\n height: 12px;\n width: 12px;\n flex: 0 0 12px;\n }\n\n &:focus-visible {\n outline: unset;\n box-shadow: inset 0 0 0 2px var(--wui-color-border-secondary);\n }\n\n &:not(:only-child) {\n padding-right: var(--wui-space-01);\n }\n\n &:is(a):hover {\n background: var(--wui-color-bg-surface-secondary-hover);\n }\n\n &:is(a):active {\n background: var(--wui-color-bg-surface-secondary-active);\n }\n`;\n\nconst TagDivider = styled.div<{\n $colorScheme: ColorSchemeTypes;\n}>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n border-left: 1px solid var(--wui-color-border);\n display: flex;\n height: 14px;\n width: 1px;\n`;\n\nconst StyledRemoveButton = styled.button<{\n $colorScheme: ColorSchemeTypes;\n}>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n all: unset;\n cursor: pointer;\n display: flex;\n height: 22px;\n width: 12px;\n align-items: center;\n padding: 0 var(--wui-space-01);\n border-radius: var(--wui-border-radius-01);\n\n svg path {\n fill: var(--wui-color-icon);\n }\n\n &:hover {\n background: var(--wui-color-bg-surface-secondary-hover);\n }\n\n &:active {\n background: var(--wui-color-bg-surface-secondary-active);\n }\n\n &:focus-visible {\n outline: unset;\n box-shadow: inset 0 0 0 2px var(--wui-color-border-secondary);\n }\n`;\n\nconst StyledTag = styled.div<{\n $colorScheme: ColorSchemeTypes;\n}>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n align-items: center;\n background-color: var(--wui-color-bg-surface-secondary);\n border-radius: var(--wui-border-radius-01);\n display: inline-flex;\n overflow: hidden;\n\n > * {\n transition: background var(--wui-duration-01) var(--wui-motion-ease);\n }\n`;\n\ntype RemoveButtonProps = {\n onClickRemove?: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined;\n onClickRemoveLabel?: string | undefined;\n colorScheme: ColorSchemeTypes;\n};\n\nconst RemoveButton = ({ onClickRemove, onClickRemoveLabel, colorScheme }: RemoveButtonProps) => {\n if (isNil(onClickRemove)) {\n return null;\n }\n\n if (isNil(onClickRemoveLabel)) {\n throw new Error(\n 'for accessibility, onClickRemoveLabel must be provided if onClickRemove is provided',\n );\n }\n\n return (\n <>\n <TagDivider $colorScheme={colorScheme} />\n <StyledRemoveButton\n $colorScheme={colorScheme}\n onClick={onClickRemove}\n type=\"button\"\n >\n <Icon\n size=\"sm\"\n type=\"close\"\n />\n <ScreenReaderOnly>{onClickRemoveLabel}</ScreenReaderOnly>\n </StyledRemoveButton>\n </>\n );\n};\n\nexport type TagProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Valid URL for the `Tag` label to link to\n */\n href?: string;\n /**\n * Optional icon to display before the label\n */\n icon?: JSX.Element | undefined;\n /**\n * Text label for the `Tag`\n */\n label: ReactNode;\n /**\n * Callback function to be called when the `x` button is clicked\n */\n onClickRemove?: ((event: MouseEvent<HTMLButtonElement>) => void) | undefined;\n /**\n * Accessible label for the `x` button (ie. \"Remove tag\")\n */\n onClickRemoveLabel?: string | undefined;\n};\n\n/**\n * A `Tag` is an optionally linked label, with an optional action button, to categorize content.\n */\nexport const Tag = forwardRef<HTMLDivElement, TagProps>(\n (\n { onClickRemove, colorScheme = 'inherit', href, icon, label, onClickRemoveLabel, ...props },\n ref,\n ): JSX.Element => {\n const hasIcon = isNotNil(icon);\n // if we get an href, we should render an anchor tag, otherwise a span\n const labelProps =\n isNotNil(href) && isNonEmptyString(href)\n ? { href, as: 'a' as const }\n : { as: 'span' as const };\n\n return (\n <StyledTag\n ref={ref}\n $colorScheme={colorScheme}\n {...props}\n >\n <TagLabel\n {...labelProps}\n $colorScheme={colorScheme}\n >\n {hasIcon ? icon : null}\n {label}\n </TagLabel>\n <RemoveButton\n colorScheme={colorScheme}\n onClickRemove={onClickRemove}\n onClickRemoveLabel={onClickRemoveLabel}\n />\n </StyledTag>\n );\n },\n);\n\nTag.displayName = 'Tag_UI';\n","import { css } from 'styled-components';\nimport {\n variantStyleMap as textVariantStyleMap,\n variantElementMap as textVariantElementMap,\n} from '../../../components/Text/Text';\nimport {\n variantStyleMap as headingVariantStyleMap,\n variantElementMap as headingVariantElementMap,\n} from '../../../components/Heading/Heading';\n\nconst typographicVariantStyleMap = { ...textVariantStyleMap, ...headingVariantStyleMap };\n\nexport type TypographicVariant = keyof typeof typographicVariantStyleMap;\n\nexport const getTypographicStyles = (variant: TypographicVariant) => {\n return css`\n ${typographicVariantStyleMap[variant]}\n font-family: var(--font-family);\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n line-height: var(--line-height);\n `;\n};\n\nconst typographicVariantElementMap = { ...textVariantElementMap, ...headingVariantElementMap };\n\nexport const getDefaultTypographicElement = (variant: TypographicVariant) => {\n return typographicVariantElementMap[variant] ?? 'span';\n};\n","import { isNil, isNotNil } from '@wistia/type-guards';\nimport type { ReactNode, RefObject } from 'react';\nimport { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Menu } from '../Menu';\n\nexport type ContextMenuProps = {\n children: ReactNode;\n onRequestClose?: () => void;\n /**\n * If the menu is compact\n */\n compact?: boolean;\n} & (\n | { position: { x: number; y: number }; side?: 'bottom' | 'top'; triggerRef?: never }\n | { position?: never; side?: never; triggerRef: RefObject<HTMLElement | null> }\n);\n\n/**\n * The ContextMenu is an extended implementation of the [Menu]() component that allows for right-click context menus.\n * It can be used in two ways:\n * 1. By providing a `triggerRef`, which will render the menu when the referenced element is right-clicked.\n * 2. By providing a `position` prop, which will render the menu at the specified coordinates.\n */\nexport const ContextMenu = ({\n position,\n triggerRef,\n children,\n side = 'bottom',\n onRequestClose = () => null,\n compact = false,\n}: ContextMenuProps) => {\n const [isRightClicked, setIsRightClicked] = useState(false);\n const [menuPosition, setMenuPosition] = useState(position ?? { x: 0, y: 0 });\n\n useEffect(() => {\n if (isNil(position)) {\n const onContextMenu = (event: MouseEvent) => {\n event.preventDefault();\n setMenuPosition({ x: event.clientX, y: event.clientY });\n setIsRightClicked(true);\n };\n const triggerEl = triggerRef?.current;\n triggerEl?.addEventListener('contextmenu', onContextMenu);\n return () => {\n triggerEl?.removeEventListener('contextmenu', onContextMenu);\n };\n }\n\n return () => null;\n }, [position, triggerRef]);\n\n const isOpen = isNotNil(position) || isRightClicked;\n\n if (!isOpen) {\n return null;\n }\n\n const menu = (\n <Menu\n compact={compact}\n isOpen={isOpen}\n onOpenChange={(next) => {\n setIsRightClicked(next);\n if (!next) {\n onRequestClose();\n }\n }}\n side={side}\n trigger={\n <button\n aria-label=\"context menu\"\n style={{\n width: '1px',\n height: '1px',\n all: 'unset',\n position: 'fixed',\n top: menuPosition.y,\n left: menuPosition.x,\n }}\n type=\"button\"\n />\n }\n >\n {children}\n </Menu>\n );\n\n // We portal the menu into document body here to ensure that the fixed\n // position element's top and left are relative to the viewport, not the\n // trigger element. The trigger element could have a css transform on it which\n // mucks even fixed position children, apparently.\n if (isNotNil(triggerRef)) {\n return createPortal(menu, document.body);\n }\n\n return menu;\n};\n","import type { DropdownMenuContentProps, DropdownMenuProps } from '@radix-ui/react-dropdown-menu';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n} from '@radix-ui/react-dropdown-menu';\nimport { isNotNil, isNotUndefined } from '@wistia/type-guards';\nimport type { JSX, ReactNode } from 'react';\nimport { forwardRef, useMemo } from 'react';\nimport { styled, css, keyframes } from 'styled-components';\nimport { mq } from '../../helpers/mq';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { MenuContext } from './MenuContext';\n\ntype ControlledMenuProps = {\n /**\n * Is the menu open.\n * Must be used with `onOpenChange`.\n */\n isOpen: boolean;\n\n /** When an attempt to toggle the menu is triggered.\n * Must be used with `isOpen`.\n */\n onOpenChange: (isOpen: boolean) => void;\n};\n\ntype UncontrolledMenuProps = {\n isOpen?: never;\n onOpenChange?: never;\n};\n\ntype MenuControlProps = ControlledMenuProps | UncontrolledMenuProps;\n\nexport type MenuProps = MenuControlProps & {\n /**\n * The position of the Menu\n */\n align?: 'center' | 'end' | 'start';\n\n /**\n * The content of the menu.\n * Should be made up of `MenuItem`, `SubMenu`, `Divider`, or other subcomponents listed\n */\n children: ReactNode;\n\n /**\n * If the menu is compact\n */\n compact?: boolean;\n\n /**\n * If disabled, the trigger will appear disabled and the menu will not open\n */\n disabled?: boolean;\n\n /**\n * The label for the trigger element, this is ignored if `trigger` is defined\n */\n label?: string;\n\n /**\n * Callback for when the user clicks or focuses outside of the menu\n */\n onInteractOutside?: DropdownMenuContentProps['onInteractOutside'];\n\n /**\n * The side the menu appears on, relative to the trigger\n */\n side?: 'bottom' | 'top';\n\n /**\n * Replace the default trigger with a custom button or other element\n */\n trigger?: ReactNode;\n\n /**\n * Props to pass to the trigger component, the default trigger is Button\n */\n triggerProps?: Partial<ButtonProps>;\n};\n\nconst open = keyframes`\n from {\n opacity: 0;\n transform: scale(.97) translateY(-8px);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n`;\n\nconst close = keyframes`\n from {\n opacity: 1;\n transform: scale(1);\n }\n to {\n opacity: 0;\n transform: scale(.97) translateY(-8px);\n }\n`;\n\nconst menuItemCss = css`\n --menu-label-description-gap: var(--wui-space-01);\n --menu-item-inner-gap: var(--wui-space-03);\n --menu-item-left-icon-size: 24px;\n --menu-item-right-icon-size: 16px;\n --menu-item-padding: var(--wui-space-02);\n --menu-label-font-size: var(--wui-typography-label-3-size);\n --menu-label-font-weight: var(--wui-typography-label-3-weight);\n --menu-label-line-height: var(--wui-typography-label-3-line-height);\n --menu-divider-margin: var(--wui-space-02);\n`;\n\nconst compactMenuItemCss = css`\n --menu-label-description-gap: 0;\n --menu-item-inner-gap: var(--wui-space-02);\n --menu-item-left-icon-size: 16px;\n --menu-item-right-icon-size: 12px;\n --menu-item-padding: 6px;\n --menu-label-font-size: var(--wui-typography-label-4-size);\n --menu-label-font-weight: var(--wui-typography-label-4-weight);\n --menu-label-line-height: var(--wui-typography-label-4-line-height);\n --menu-divider-margin: var(--wui-space-01);\n`;\n\nexport const menuContentCss = css<{ $compact: boolean }>`\n --menu-font-family: var(--wui-typography-family-default);\n --menu-bg: var(--wui-color-bg-surface);\n --menu-shadow: var(--wui-elevation-01);\n --menu-border-radius: var(--wui-border-radius-02);\n --menu-padding: var(--wui-space-02);\n --menu-min-width: 120px;\n --menu-max-width: 284px;\n --menu-animation-duration: var(--wui-motion-duration-03);\n\n ${({ $compact }) => ($compact ? compactMenuItemCss : menuItemCss)};\n\n animation: var(--menu-animation-duration) var(--wui-motion-ease-out) ${open};\n font-family: var(--menu-font-family);\n background: var(--menu-bg);\n border-radius: var(--menu-border-radius);\n box-shadow: var(--menu-shadow); /* TODO - Need a box-shadow token */\n max-height: var(--radix-dropdown-menu-content-available-height);\n min-width: var(--menu-min-width);\n max-width: var(--menu-max-width);\n overflow: auto;\n padding: var(--menu-padding);\n transform-origin: var(--radix-dropdown-menu-content-transform-origin);\n z-index: var(--wui-zindex-menu);\n border: 1px solid var(--wui-color-border);\n\n &[data-state='closed'] {\n animation: var(--menu-animation-duration) var(--wui-motion-ease-in) ${close}; /* TODO - need easing tokens */\n }\n\n ${mq.smAndUp} {\n bottom: 0;\n padding: var(--menu-padding);\n right: 0;\n top: 0;\n transform: initial;\n }\n\n [role='separator'] {\n margin: var(--menu-divider-margin) 0;\n }\n`;\n\nconst MenuContent = styled(DropdownMenuContent)<{ $compact: boolean }>`\n ${menuContentCss}\n min-width: var(--radix-dropdown-menu-trigger-width);\n`;\n\n/**\n * Displays a menu to the users with a set of actions.\n */\nexport const Menu = forwardRef<HTMLButtonElement, MenuProps>(\n (\n {\n align = 'start',\n children,\n disabled = false,\n compact = false,\n trigger,\n label,\n isOpen,\n side = 'bottom',\n triggerProps = {} as Partial<ButtonProps>,\n onOpenChange,\n ...props\n }: MenuProps,\n ref,\n ): JSX.Element => {\n const contextValue = useMemo(() => ({ compact }), [compact]);\n\n let controlProps = {\n ...(isNotNil(onOpenChange) && isNotNil(isOpen) ? { open: isOpen, onOpenChange } : {}),\n };\n\n if (disabled) {\n controlProps = {\n open: false,\n onOpenChange: () => null,\n } as Partial<DropdownMenuProps>;\n }\n\n return (\n <MenuContext.Provider value={contextValue}>\n <DropdownMenu\n modal={false}\n {...controlProps}\n >\n <DropdownMenuTrigger asChild={true}>\n {isNotUndefined(trigger) ? (\n trigger\n ) : (\n <Button\n ref={ref}\n aria-expanded={isOpen}\n disabled={disabled}\n forceState={isOpen ? 'active' : undefined}\n rightIcon={<Icon type=\"caret-down\" />}\n {...triggerProps}\n >\n {label}\n </Button>\n )}\n </DropdownMenuTrigger>\n <DropdownMenuPortal>\n <MenuContent\n {...props}\n $compact={compact}\n align={align}\n collisionPadding={8}\n onFocusOutside={(event) => {\n event.preventDefault();\n }}\n side={side}\n sideOffset={6}\n >\n {children}\n </MenuContent>\n </DropdownMenuPortal>\n </DropdownMenu>\n </MenuContext.Provider>\n );\n },\n);\n\nMenu.displayName = 'Menu_UI';\n\nMenu.displayName = 'Menu_UI';\n","import { createContext, useContext } from 'react';\n\ntype MenuContextType = {\n compact: boolean;\n};\n\nexport const MenuContext = createContext<MenuContextType>({ compact: false });\n\nexport const useMenuContext = () => useContext(MenuContext);\n","import type { ReactNode } from 'react';\nimport { styled } from 'styled-components';\nimport { DropdownMenuLabel } from '@radix-ui/react-dropdown-menu';\nimport { Heading } from '../Heading';\n\ntype MenuLabelProps = {\n /**\n * The text of the label\n */\n children: ReactNode | string;\n};\n\nconst StyledMenuLabel = styled(DropdownMenuLabel)`\n padding: var(--wui-space-02);\n`;\n\nexport const MenuLabel = ({ children, ...props }: MenuLabelProps) => {\n return (\n <StyledMenuLabel\n asChild={true}\n {...props}\n >\n <Heading\n renderAs=\"span\"\n variant=\"heading6\"\n {...props}\n >\n {children}\n </Heading>\n </StyledMenuLabel>\n );\n};\n\nMenuLabel.displayName = 'MenuLabel_UI';\n","import { useState } from 'react';\nimport type { MouseEvent, ReactNode, JSX } from 'react';\nimport { styled } from 'styled-components';\nimport {\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuGroup,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuItem,\n} from '@radix-ui/react-dropdown-menu';\nimport { isNotNil } from '@wistia/type-guards';\nimport { useMq } from '../../hooks/useMq';\nimport { mq } from '../../helpers/mq';\nimport { Icon } from '../Icon';\nimport { menuContentCss } from './Menu';\nimport type { MenuItemButtonProps } from './MenuItemButton';\nimport { MenuItemButton } from './MenuItemButton';\nimport { MenuItemDescription, MenuItemLabel } from './MenuItemLabelDescription';\nimport { useMenuContext } from './MenuContext';\n\nexport type SubMenuProps = {\n /**\n * The label of the submenu\n */\n label: ReactNode;\n /**\n * The description of the submenu\n */\n description?: ReactNode;\n /**\n * The menu items that will appear in this submenu\n */\n children: ReactNode[];\n /**\n * Callback when the submenu is opened or closed\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Icon to display on the left side of the SubMenu. Must be an instance of [Icon](?path=/docs/components-icon--docs)\n */\n icon?: JSX.Element | undefined;\n};\n\nconst SubMenuContent = styled(DropdownMenuSubContent)<{ $compact: boolean }>`\n ${menuContentCss}\n\n ${mq.smAndDown} {\n transform: translateX(-100%) !important;\n }\n`;\n\nconst StyledMobileSubMenuItems = styled.div`\n margin-left: var(--wui-space-04);\n`;\n\nconst StyledSubTrigger = styled(DropdownMenuSubTrigger)`\n outline: none;\n\n &[data-state='open'],\n &[data-highlighted] {\n background-color: var(--wui-color-bg-surface-hover);\n }\n`;\n\ntype SubMenuTriggerProps = MenuItemButtonProps;\n\nconst SubMenuTrigger = ({ icon, ...props }: SubMenuTriggerProps) => {\n const { isSmAndUp } = useMq();\n const Trigger = isSmAndUp ? StyledSubTrigger : DropdownMenuItem;\n return (\n <Trigger asChild={true}>\n <MenuItemButton\n {...props}\n leftIcon={icon}\n rightIcon={<Icon type=\"caret-right\" />}\n />\n </Trigger>\n );\n};\n\nexport const SubMenu = ({\n label,\n description,\n children,\n onOpenChange = () => null,\n ...props\n}: SubMenuProps) => {\n const { isSmAndUp } = useMq();\n const [isExpanded, setIsExpanded] = useState(false);\n const { compact } = useMenuContext();\n\n return isSmAndUp ? (\n <DropdownMenuSub onOpenChange={onOpenChange}>\n <SubMenuTrigger {...(props as SubMenuTriggerProps)}>\n <MenuItemLabel>{label}</MenuItemLabel>\n {isNotNil(description) ? <MenuItemDescription>{description}</MenuItemDescription> : null}\n </SubMenuTrigger>\n\n <DropdownMenuPortal>\n <SubMenuContent $compact={compact}>{children}</SubMenuContent>\n </DropdownMenuPortal>\n </DropdownMenuSub>\n ) : (\n <DropdownMenuGroup>\n <SubMenuTrigger\n {...(props as SubMenuTriggerProps)}\n onClick={(event: MouseEvent) => {\n event.preventDefault();\n setIsExpanded((prev) => !prev);\n }}\n >\n <MenuItemLabel>{label}</MenuItemLabel>\n <MenuItemDescription>{description}</MenuItemDescription>\n </SubMenuTrigger>\n\n <StyledMobileSubMenuItems>{isExpanded ? children : null}</StyledMobileSubMenuItems>\n </DropdownMenuGroup>\n );\n};\n\nSubMenu.displayName = 'SubMenu_UI';\n","import type { ReactNode, JSX } from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil, isNotUndefined } from '@wistia/type-guards';\nimport type { ButtonProps } from '../Button';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\n\nexport type MenuItemButtonProps = ButtonProps & {\n /**\n * Pre-defined visual treatments for the menu item\n */\n appearance?: 'dangerous' | 'default' | 'gated';\n /**\n * Optional `Badge` to display on the MenuItem. Must be an instance of [Badge](../?path=/docs/components-badge--docs)\n */\n badge?: JSX.Element;\n /**\n * The content of the MenuItem\n */\n children?: ReactNode;\n /**\n * Keyboard shortcut to bind to the MenuItem. Won't be shown if `badge` is set.\n * *Note:* This is just visual, it doesn't actually bind the key command.\n */\n command?: ReactNode;\n /**\n * Icon to show before the MenuItem text. Ignored if children is provided or if `appearance` is `gated`\n */\n icon?: ButtonProps['leftIcon'];\n\n // Storybook doesn't let you exclude props from Subcomponents so we have to ignore them here\n /**\n * @ignore\n */\n leftIcon?: ButtonProps['leftIcon'];\n /**\n * @ignore\n */\n rightIcon?: ButtonProps['rightIcon'];\n\n // These props can't be omitted from ButtonProps because it causes typescript to be confused\n /**\n * @ignore\n */\n fullWidth?: never;\n /**\n * @ignore\n */\n asChild?: never;\n /**\n * @ignore\n */\n variant?: never;\n /**\n * @ignore\n */\n size?: never;\n /**\n * @ignore\n */\n unstyled?: never;\n};\n\nconst StyledButton = styled(Button)<{ colorScheme: ColorSchemeTypes; $isGated?: boolean }>`\n ${({ colorScheme }) => getColorScheme(colorScheme)};\n\n display: flex;\n flex-direction: row;\n gap: var(--menu-item-inner-gap);\n padding: var(--menu-item-padding);\n border-radius: var(--wui-border-radius-01);\n text-align: left;\n color: var(--wui-color-text-button);\n font-size: var(--menu-label-font-size);\n font-weight: var(--menu-label-font-weight);\n line-height: var(--menu-label-line-height);\n transition: background-color var(--wui-motion-duration-01) var(--wui-motion-ease);\n\n &:active {\n background-color: var(--wui-color-bg-surface-active);\n }\n\n &[data-highlighted] {\n outline: none;\n ${({ $isGated }) => $isGated && getColorScheme('purple')};\n background-color: var(--wui-color-bg-surface-hover);\n }\n\n &[aria-disabled='true'] {\n --wui-color-text-button: var(--wui-color-text-disabled);\n --wui-color-text-secondary: var(--wui-color-text-disabled);\n --wui-color-icon: var(--wui-color-icon-disabled);\n\n &[data-highlighted] {\n background-color: transparent;\n }\n }\n\n &[role='menuitemradio'] {\n padding-left: var(--wui-space-04);\n }\n`;\n\nconst StyledLeftIconContainer = styled.div`\n height: var(--menu-item-left-icon-size);\n width: var(--menu-item-left-icon-size);\n\n && {\n svg {\n height: var(--menu-item-left-icon-size);\n width: var(--menu-item-left-icon-size);\n flex: 0 0 var(--menu-item-left-icon-size);\n }\n }\n`;\n\nconst StyledRightIconContainer = styled.div`\n height: var(--menu-item-right-icon-size);\n width: var(--menu-item-right-icon-size);\n\n && {\n svg {\n height: var(--menu-item-right-icon-size);\n width: var(--menu-item-right-icon-size);\n flex: 0 0 var(--menu-item-right-icon-size);\n }\n }\n`;\n\nconst StyledLabelAndDescriptionContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: var(--menu-label-description-gap);\n flex-basis: 100%;\n`;\n\nconst StyledBadgeContainer = styled.div`\n align-self: start;\n justify-self: end;\n font-size: var(--wui-typography-label-4-size);\n color: var(--wui-color-text-secondary);\n`;\n\nexport const MenuItemButton = forwardRef<\n HTMLAnchorElement | HTMLButtonElement,\n MenuItemButtonProps\n>(({ children, appearance, command, icon, ...props }: MenuItemButtonProps, ref) => {\n let { colorScheme, badge } = props;\n if (appearance === 'dangerous') {\n if (isNotUndefined(colorScheme)) {\n // eslint-disable-next-line no-console\n console.warn('colorScheme prop is ignored when appearance is dangerous');\n }\n\n colorScheme = 'error';\n }\n\n if (appearance === 'gated') {\n badge = (\n <Icon\n colorScheme=\"purple\"\n style={{\n height: '16px',\n width: '16px',\n }}\n type=\"sparkle\"\n />\n );\n }\n\n return (\n <StyledButton\n {...props}\n ref={ref}\n $isGated={appearance === 'gated'}\n colorScheme={colorScheme ?? 'inherit'}\n fullWidth={true}\n unstyled={true}\n >\n {isNotNil(props.leftIcon) ? (\n <StyledLeftIconContainer>{props.leftIcon}</StyledLeftIconContainer>\n ) : null}\n <StyledLabelAndDescriptionContainer>{children}</StyledLabelAndDescriptionContainer>\n {isNotNil(badge) || isNotNil(command) ? (\n <StyledBadgeContainer>{badge ?? command}</StyledBadgeContainer>\n ) : null}\n {isNotNil(props.rightIcon) ? (\n <StyledRightIconContainer>{props.rightIcon}</StyledRightIconContainer>\n ) : null}\n </StyledButton>\n );\n});\n\nMenuItemButton.displayName = 'MenuItemButton_UI';\n","import type { ReactNode } from 'react';\nimport { styled } from 'styled-components';\nimport { Text } from '../Text';\n\nexport const StyledMenuItemLabel = styled.span`\n /* avoid no-empty-source rule */\n`;\n\nexport const StyledMenuItemDescription = styled(Text)`\n /* avoid no-empty-source rule */\n`;\n\ntype MenuItemLabelProps = {\n /**\n * The content of the label\n */\n children: ReactNode;\n};\n\ntype MenuItemDescriptionProps = {\n /**\n * The content of the description\n */\n children: ReactNode;\n};\n\nexport const MenuItemLabel = ({ children }: MenuItemLabelProps) => {\n return <StyledMenuItemLabel>{children}</StyledMenuItemLabel>;\n};\n\nexport const MenuItemDescription = ({ children }: MenuItemDescriptionProps) => {\n return (\n <StyledMenuItemDescription\n prominence=\"secondary\"\n variant=\"body4\"\n >\n {children}\n </StyledMenuItemDescription>\n );\n};\n","import { forwardRef } from 'react';\nimport type { DropdownMenuItemProps } from '@radix-ui/react-dropdown-menu';\nimport { DropdownMenuItem } from '@radix-ui/react-dropdown-menu';\nimport type { MenuItemButtonProps } from './MenuItemButton';\nimport { MenuItemButton } from './MenuItemButton';\n\nexport type MenuItemProps = DropdownMenuItemProps &\n MenuItemButtonProps & {\n /**\n * Treats the menu item as a link when provided\n */\n href?: MenuItemButtonProps['href'];\n };\n\nexport const MenuItem = forwardRef<HTMLAnchorElement | HTMLButtonElement, MenuItemProps>(\n ({ onSelect = () => null, ...props }: MenuItemProps, ref) => {\n return (\n <DropdownMenuItem\n asChild={true}\n onSelect={onSelect}\n >\n <MenuItemButton\n {...props}\n ref={ref}\n leftIcon={props.icon}\n />\n </DropdownMenuItem>\n );\n },\n);\n\nMenuItem.displayName = 'MenuItem_UI';\n","import type { ReactNode } from 'react';\nimport type { DropdownMenuRadioGroupProps } from '@radix-ui/react-dropdown-menu';\nimport { DropdownMenuRadioGroup } from '@radix-ui/react-dropdown-menu';\n\ntype MenuRadioGroupProps = DropdownMenuRadioGroupProps & {\n /**\n * The radio items\n */\n children: ReactNode | ReactNode[];\n\n /**\n * @ignore\n */\n asChild?: never;\n};\n\nexport const MenuRadioGroup = ({ children, ...props }: MenuRadioGroupProps) => {\n return <DropdownMenuRadioGroup {...props}>{children}</DropdownMenuRadioGroup>;\n};\n\nMenuRadioGroup.displayName = 'MenuRadioGroup_UI';\n","import type { ReactNode } from 'react';\nimport type { DropdownMenuRadioItemProps } from '@radix-ui/react-dropdown-menu';\nimport { DropdownMenuItemIndicator, DropdownMenuRadioItem } from '@radix-ui/react-dropdown-menu';\nimport type { MenuItemButtonProps } from './MenuItemButton';\nimport { MenuItemButton } from './MenuItemButton';\nimport { Icon } from '../Icon';\n\ntype RadioMenuItemProps = DropdownMenuRadioItemProps &\n MenuItemButtonProps & {\n /**\n * Optional `Icon` to use as the indicator that the radio item is selected. Must be an instance of [Icon](../?path=/docs/components-icon--docs)\n */\n indicator?: ReactNode;\n /**\n * The value of the item\n */\n value: DropdownMenuRadioItemProps['value'];\n /**\n * @ignore\n */\n href?: never;\n /**\n * @ignore\n */\n isLoading?: never;\n /**\n * @ignore\n */\n ref?: never;\n };\n\nexport const RadioMenuItem = ({\n onSelect,\n value,\n indicator = (\n <Icon\n size=\"sm\"\n type=\"checkmark\"\n />\n ),\n ...props\n}: RadioMenuItemProps) => {\n const extraProps = onSelect ? { onSelect } : {};\n\n return (\n <DropdownMenuRadioItem\n {...extraProps}\n asChild={true}\n value={value}\n >\n <MenuItemButton\n {...props}\n rightIcon={<DropdownMenuItemIndicator>{indicator}</DropdownMenuItemIndicator>}\n />\n </DropdownMenuRadioItem>\n );\n};\n\nRadioMenuItem.displayName = 'RadioMenuItem_UI';\n","import type { ReactNode, SVGProps } from 'react';\nimport type { DropdownMenuCheckboxItemProps } from '@radix-ui/react-dropdown-menu';\nimport { DropdownMenuCheckboxItem, DropdownMenuItemIndicator } from '@radix-ui/react-dropdown-menu';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { MenuItemButtonProps } from './MenuItemButton';\nimport { MenuItemButton } from './MenuItemButton';\nimport { Icon } from '../Icon';\n\ntype CheckboxIndicatorProps = SVGProps<SVGSVGElement> & {\n checked: boolean;\n};\n\nconst CheckboxIndicator = ({ checked, ...props }: CheckboxIndicatorProps) => {\n return checked ? (\n <svg\n {...props}\n fill=\"none\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"m4 8c0-2.20914 1.79086-4 4-4h8c2.2091 0 4 1.79086 4 4v8c0 2.2091-1.7909 4-4 4h-8c-2.20914 0-4-1.7909-4-4z\"\n fill=\"#2949e5\"\n />\n <path\n d=\"m10.4728 15.1931-3.09523-3.1131c-.18596-.187-.18596-.4902 0-.6773l.67341-.6773c.18596-.187.48749-.187.67344 0l2.08508 2.0971 4.4661-4.49174c.1859-.18703.4875-.18703.6734 0l.6734.67731c.186.18703.186.49027 0 .67731l-5.4762 5.50772c-.1859.187-.4874.187-.6734 0z\"\n fill=\"#fff\"\n />\n </svg>\n ) : (\n <svg\n {...props}\n fill=\"none\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"m8 4.5h8c1.933 0 3.5 1.567 3.5 3.5v8c0 1.933-1.567 3.5-3.5 3.5h-8c-1.933 0-3.5-1.567-3.5-3.5v-8c0-1.933 1.567-3.5 3.5-3.5z\"\n fill=\"#fcfcfd\"\n />\n <path\n d=\"m8 4.5h8c1.933 0 3.5 1.567 3.5 3.5v8c0 1.933-1.567 3.5-3.5 3.5h-8c-1.933 0-3.5-1.567-3.5-3.5v-8c0-1.933 1.567-3.5 3.5-3.5z\"\n stroke=\"#bbbbc4\"\n />\n </svg>\n );\n};\n\ntype CheckboxMenuItemProps = DropdownMenuCheckboxItemProps &\n MenuItemButtonProps & {\n /** Callback to fire when the checked status changes */\n onCheckedChange: (checked: boolean) => void;\n /**\n * Optional `Icon` to use as the indicator that the checkbox item is selected. Must be an instance of [Icon](../?path=/docs/components-icon--docs)\n */\n indicator?: ReactNode;\n /**\n * The checked state of the menu item\n */\n checked: boolean;\n /**\n * @ignore\n */\n href?: never;\n /**\n * @ignore\n */\n isLoading?: never;\n\n /**\n * @ignore\n */\n ref?: never;\n };\n\nexport const CheckboxMenuItem = ({\n onSelect = () => null,\n checked,\n onCheckedChange,\n\n ...props\n}: CheckboxMenuItemProps) => {\n return (\n <DropdownMenuCheckboxItem\n asChild={true}\n checked={checked}\n onCheckedChange={onCheckedChange}\n onSelect={onSelect}\n >\n <MenuItemButton\n {...props}\n leftIcon={isNotNil(props.icon) ? props.icon : <CheckboxIndicator checked={checked} />}\n rightIcon={\n isNotNil(props.icon) ? (\n <DropdownMenuItemIndicator>\n <Icon type=\"checkmark\" />\n </DropdownMenuItemIndicator>\n ) : undefined\n }\n />\n </DropdownMenuCheckboxItem>\n );\n};\n\nCheckboxMenuItem.displayName = 'CheckboxMenuItem_UI';\n","import { Children, forwardRef } from 'react';\nimport { DropdownMenuItem } from '@radix-ui/react-dropdown-menu';\nimport { Card } from '../Card';\nimport { Input } from '../Input';\nimport type { MenuProps } from './Menu';\nimport { Menu } from './Menu';\nimport { MenuItem } from './MenuItem';\nimport { Button } from '../Button';\nimport { CheckboxMenuItem } from './CheckboxMenuItem';\n\ntype FilterMenuProps = MenuProps & {\n /**\n * The selected values of the filter Menu\n * */\n value: string[];\n /**\n * Callback for when the selected values change\n */\n onChange: (value: string[]) => void;\n /**\n * The current search value\n */\n searchValue: string;\n /**\n * Callback for when the search value changes (by searching the input)\n */\n onSearchValueChange: (value: string) => void;\n};\n\nexport const FilterMenuItem = CheckboxMenuItem;\n\nexport const FilterMenu = forwardRef<HTMLButtonElement, FilterMenuProps>(\n (\n { value, onChange, searchValue, onSearchValueChange, children, ...props }: FilterMenuProps,\n ref,\n ) => {\n return (\n <Menu\n {...props}\n ref={ref}\n >\n <Card\n alignItems=\"flex-end\"\n border={false}\n borderRadius=\"border-radius-02\"\n paddingSize=\"space-01\"\n prominence=\"primary\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n margin: '1px',\n }}\n >\n <Input\n autoFocus={true}\n onChange={(event) => {\n onSearchValueChange(event.target.value);\n }}\n onKeyDown={(event) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n const menu = document.querySelector('[role=\"menu\"]');\n const firstMenuItem = menu?.querySelector('[role=\"menuitemcheckbox\"]');\n if (firstMenuItem) {\n (firstMenuItem as HTMLElement).focus();\n }\n }\n\n event.stopPropagation();\n }}\n placeholder=\"Search...\"\n tabIndex={0}\n type=\"search\"\n value={searchValue}\n />\n </Card>\n <MenuItem\n disabled={true}\n style={{ padding: '16px' }}\n >\n {' '}\n </MenuItem>\n {Children.toArray(children).length > 0 ? (\n children\n ) : (\n <MenuItem disabled={true}>No results found</MenuItem>\n )}\n {value.length > 0 && (\n <DropdownMenuItem\n disabled={true}\n style={{ marginTop: '24px' }}\n >\n <Card\n alignItems=\"flex-end\"\n border={false}\n borderRadius=\"border-radius-02\"\n paddingSize=\"space-01\"\n prominence=\"primary\"\n style={{\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n margin: '1px',\n }}\n >\n <Button\n onClick={() => onChange([])}\n size=\"sm\"\n >\n Clear\n </Button>\n </Card>\n </DropdownMenuItem>\n )}\n </Menu>\n );\n },\n);\n\nFilterMenu.displayName = 'FilterMenu_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { useRef } from 'react';\nimport { styled, keyframes } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { HeadingProps } from '../Heading';\nimport { Heading } from '../Heading';\nimport type { TextProps } from '../Text';\nimport { Text } from '../Text';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { ClickRegion } from '../ClickRegion';\nimport { Button } from '../Button';\nimport type { ButtonAsLinkProps } from '../Button/Button';\n\nexport type DataCardProps = ComponentPropsWithoutRef<'div'> &\n Partial<Pick<ButtonAsLinkProps, 'beforeAction' | 'disabled' | 'href' | 'onClick' | 'type'>> & {\n /**\n * Label text displayed above the value\n */\n label: ReactNode;\n /**\n * Main value to display in the card\n */\n value: ReactNode;\n /**\n * Optional content to display in the top-right corner\n */\n upperRightSlot?: ReactNode;\n /**\n * Sets the color scheme of the card\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Controls the loading state of the card\n */\n isLoading?: boolean;\n /**\n * Forces a full page reload when navigating, bypassing client-side routing\n */\n reloadDocument?: boolean;\n\n /**\n * Optional trend arrow to display below the value. Use the `DataCardTrend` component to create this.\n */\n trend?: ReactNode;\n\n /**\n * Optional subtitle text to display below the value\n */\n subtitle?: ReactNode;\n };\n\nconst pulse = keyframes`\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n`;\n\nconst StyledDataCard = styled.div<{ $colorScheme: ColorSchemeTypes }>`\n --wui-data-card-text: var(--wui-color-text-button);\n --wui-color-text: var(--wui-data-card-text);\n --wui-data-card-background: var(--wui-color-bg-surface-secondary);\n --wui-data-card-background-hover: var(--wui-color-bg-surface-secondary-hover);\n --wui-data-card-background-active: var(--wui-color-bg-surface-secondary-active);\n --wui-data-card-skeleton-color: var(--wui-color-bg-surface-tertiary);\n\n display: grid;\n grid-template-areas: 'label slot' 'value value';\n grid-template-rows: auto auto;\n grid-template-columns: auto auto;\n gap: var(--wui-space-01);\n padding: var(--wui-space-03);\n background: var(--wui-data-card-background);\n flex: 1;\n border-radius: var(--wui-border-radius-02);\n position: relative;\n transition:\n background var(--wui-motion-duration-01) var(--wui-motion-ease),\n box-shadow var(--wui-motion-duration-01) var(--wui-motion-ease),\n color var(--wui-motion-duration-01) var(--wui-motion-ease);\n\n [data-wui-data-card-hover-icon] {\n opacity: 0;\n transform: translateX(-16px);\n transition: all var(--wui-motion-duration-02) var(--wui-motion-ease-out);\n }\n\n &:has([data-wui-data-card-subtitle]) {\n grid-template-areas: 'label slot' 'value value' 'subtitle subtitle';\n grid-template-rows: auto auto auto;\n }\n\n [data-wui-data-card-skeleton='true'] {\n pointer-events: none;\n background-color: var(--wui-data-card-skeleton-color);\n animation: ${pulse} 1.5s var(--wui-motion-ease-in-out) 0.5s infinite;\n color: transparent;\n user-select: none;\n border-radius: var(--wui-border-radius-01);\n width: fit-content;\n }\n\n &[data-click-region] {\n &:not([disabled]) {\n cursor: pointer;\n\n &:hover {\n --wui-data-card-text: var(--wui-color-text-button);\n --wui-data-card-background: var(--wui-color-bg-surface-secondary-hover);\n\n [data-wui-data-card-hover-icon] {\n opacity: 1;\n transform: translateX(0);\n }\n }\n\n &:active {\n --wui-data-card-background: var(--wui-color-bg-surface-secondary-active);\n }\n\n &:has([data-click-region-target-button]:focus-visible),\n &:has([data-click-region-target-link]:focus-visible) {\n --wui-data-card-focus-ring: var(--wui-color-border);\n\n box-shadow: inset 0 0 0 2px var(--wui-data-card-focus-ring);\n }\n\n &:has([data-click-region-target-button][aria-pressed='true']) {\n --wui-data-card-text: var(--wui-color-text-selected);\n --wui-data-card-background: var(--wui-color-bg-surface-selected);\n --wui-data-card-background-hover: var(--wui-color-bg-surface-selected-hover);\n --wui-data-card-background-active: var(--wui-color-bg-surface-selected-active);\n --wui-data-card-focus-ring: var(--wui-color-border-selected);\n --wui-data-card-skeleton-color: var(--wui-color-bg-surface-selected-active);\n }\n }\n\n &[disabled] {\n pointer-events: none;\n }\n\n ${({ $colorScheme }) => getColorScheme($colorScheme)}\n }\n`;\n\nconst StyledLabel = styled(Heading)<HeadingProps>`\n grid-area: label;\n\n &[data-wui-data-card-skeleton='true'] {\n width: 80px;\n }\n\n button {\n text-align: left;\n }\n`;\n\nconst StyledValue = styled(Heading)<HeadingProps>`\n grid-area: value;\n\n &[data-wui-data-card-skeleton='true'] {\n width: min(90%, 156px);\n }\n`;\n\nconst StyledSlot = styled.div`\n display: flex;\n justify-content: flex-end;\n grid-area: slot;\n align-self: center;\n`;\n\nconst StyledDataCardTrendContainer = styled.div`\n position: absolute;\n bottom: var(--wui-space-01);\n right: var(--wui-space-01);\n`;\n\nconst StyledSubtitle = styled(Text)<TextProps>`\n grid-area: subtitle;\n`;\n\n/**\n * A single DataCard for use in the DataCards component\n */\nexport const DataCardInner = ({\n label,\n value,\n upperRightSlot,\n colorScheme = 'inherit',\n isLoading = false,\n trend,\n subtitle,\n ...props\n}: DataCardProps): JSX.Element => (\n <StyledDataCard\n $colorScheme={colorScheme}\n {...props}\n >\n <StyledLabel\n data-wui-data-card-skeleton={isLoading}\n renderAs=\"div\"\n variant=\"heading6\"\n >\n {label}\n </StyledLabel>\n <StyledValue\n data-wui-data-card-skeleton={isLoading}\n renderAs=\"div\"\n variant=\"heading3\"\n >\n {value}\n </StyledValue>\n {isNotNil(upperRightSlot) && !isLoading && <StyledSlot>{upperRightSlot}</StyledSlot>}\n {isNotNil(subtitle) && !isLoading && (\n <StyledSubtitle\n data-wui-data-card-subtitle={true}\n variant=\"label4\"\n >\n {subtitle}\n </StyledSubtitle>\n )}\n {isNotNil(trend) && !isLoading && (\n <StyledDataCardTrendContainer>{trend}</StyledDataCardTrendContainer>\n )}\n </StyledDataCard>\n);\n\nexport const DataCard = (props: DataCardProps) => {\n const ref = useRef<HTMLAnchorElement | HTMLButtonElement>(null);\n if (isNotNil(props.href) || isNotNil(props.onClick)) {\n const { 'aria-pressed': ariaPressed, ...dataCardProps } = props;\n return (\n <ClickRegion targetRef={ref}>\n <DataCardInner\n upperRightSlot={props.upperRightSlot}\n {...dataCardProps}\n label={\n <Button\n ref={ref}\n {...(isNotNil(props.beforeAction) ? { beforeAction: props.beforeAction } : {})}\n {...(isNotNil(props.reloadDocument) ? { reloadDocument: props.reloadDocument } : {})}\n aria-pressed={ariaPressed}\n disabled={props.disabled ?? false}\n href={props.href}\n onClick={props.onClick}\n unstyled={true}\n >\n {props.label}\n </Button>\n }\n />\n </ClickRegion>\n );\n }\n\n return <DataCardInner {...props} />;\n};\n\nDataCard.displayName = 'DataCard_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport { Box } from '../Box';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp';\n\nexport type DataCardsProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Should be at least one `DataCard` component\n */\n children: ReactNode;\n /**\n * String to pass to the `max-width` property of its children. [View the syntax on MDN →](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width#syntax)\n */\n cardMaxWidth?: ResponsiveObject<string> | string;\n /**\n * Sets the color scheme of the cards, can be overriden at the card level\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Desired number of columns to display.\n */\n columns?: ResponsiveObject<number | 'auto'> | number | 'auto';\n};\n\ntype StyledDataCardsTypes = {\n $cardMaxWidth: string;\n $colorScheme: ColorSchemeTypes;\n $columns: number | 'auto';\n};\n\nconst StyledDataCards = styled(Box)<StyledDataCardsTypes>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n --wui-data-cards-column-count: ${({ $columns }) => ($columns === 'auto' ? undefined : $columns)};\n --wui-data-cards-total-column-gap-width: calc(var(--wui-data-cards-column-count) - 1) *\n var(--wui-space-02);\n --wui-data-cards-column-width: calc(\n (100% - var(--wui-data-cards-total-column-gap-width)) / var(--wui-data-cards-column-count)\n );\n\n > * {\n min-width: 120px;\n flex-basis: var(--wui-data-cards-column-width, 0);\n max-width: ${({ $cardMaxWidth }) => $cardMaxWidth};\n }\n`;\n\n/**\n * Displays a series of cards tailor made for displaying analytics data\n */\nexport const DataCards = ({\n children,\n cardMaxWidth = 'none',\n colorScheme = 'inherit',\n columns = 'auto',\n ...props\n}: DataCardsProps): JSX.Element => {\n const responsiveCardMaxWidth = useResponsiveProp(cardMaxWidth);\n const responsiveColumns = useResponsiveProp(columns);\n\n return (\n <StyledDataCards\n {...props}\n $cardMaxWidth={responsiveCardMaxWidth}\n $colorScheme={colorScheme}\n $columns={responsiveColumns}\n alignItems=\"stretch\"\n direction=\"row\"\n fill=\"horizontal\"\n gap=\"space-02\"\n wrapItems={true}\n >\n {children}\n </StyledDataCards>\n );\n};\n\nDataCards.displayName = 'DataCards_UI';\n","import type { JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { Icon } from '../Icon';\nimport { Text } from '../Text';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\n\nexport type DataCardTrendProps = {\n /**\n * Direction of the trend arrow\n */\n direction?: 'down' | 'up';\n /**\n * Outlook of the trend arrow\n */\n outlook?: 'negative' | 'positive';\n /**\n * Content to display next to the trend arrow\n */\n children: JSX.Element | string;\n};\n\nconst StyledDataCardTrend = styled.div<{ $outlook: DataCardTrendProps['outlook'] }>`\n ${({ $outlook }) => getColorScheme($outlook === 'positive' ? 'success' : 'error')};\n background: var(--wui-color-bg-app);\n border-radius: var(--wui-border-radius-rounded);\n padding: var(--wui-space-01);\n display: flex;\n align-items: center;\n gap: 2px;\n`;\n\nexport const DataCardTrend = ({\n direction = 'up',\n outlook = 'positive',\n children,\n ...props\n}: DataCardTrendProps): JSX.Element => {\n return (\n <StyledDataCardTrend $outlook={outlook}>\n <Icon\n size=\"md\"\n type={direction === 'up' ? 'arrow-up' : 'arrow-down'}\n {...props}\n />\n <Text\n prominence=\"secondary\"\n variant=\"label4\"\n >\n {children}\n </Text>\n </StyledDataCardTrend>\n );\n};\n","import { styled } from 'styled-components';\nimport { Icon } from '../Icon';\n\nconst StyledIconContainer = styled.div`\n display: flex;\n align-items: center;\n align-self: center;\n height: 0;\n`;\n\nexport const DataCardHoverArrow = () => (\n <StyledIconContainer>\n <Icon\n data-wui-data-card-hover-icon={true}\n type=\"arrow-right\"\n />\n </StyledIconContainer>\n);\n\nDataCardHoverArrow.displayName = 'DataCardHoverArrow_UI';\n","import type { CSSProperties, JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\n\ntype StyledDataListProps = {\n children: ReactNode;\n};\n\nconst StyledDataList = styled.dl<StyledDataListProps>`\n display: grid;\n grid-template-columns: auto 1fr;\n column-gap: var(--wui-space-02);\n row-gap: var(--wui-space-04);\n align-items: baseline;\n align-content: start;\n\n dt {\n margin: 0;\n padding: 0;\n font-weight: var(--wui-datalist-label-prominence);\n width: var(--wui-datalist-label-max-width, auto);\n }\n\n dd {\n margin: 0;\n padding: 0;\n text-align: var(--wui-datalist-value-alignment, start);\n }\n`;\n\nexport type DataListProps = ComponentPropsWithoutRef<'dl'> & {\n /**\n * Should only contain `DataListItem` components.\n */\n children: ReactNode;\n /**\n * Maximum width for the label.\n */\n labelMaxWith?: string;\n /**\n * Prominence of the label text. Default is `primary`.\n */\n labelProminence?: 'primary' | 'secondary';\n /**\n * Alignment of the value text. Default is `start`.\n */\n valueAlignment?: 'end' | 'start';\n};\n\n/**\n * The DataList component is used to display a list of items with labels and values.\n */\nexport const DataList = ({\n children,\n valueAlignment = 'start',\n labelMaxWith = 'auto',\n labelProminence = 'primary',\n ...props\n}: DataListProps): JSX.Element => {\n return (\n <StyledDataList\n role=\"list\"\n style={\n {\n '--wui-datalist-label-max-width': labelMaxWith,\n '--wui-datalist-value-alignment': valueAlignment === 'end' ? 'right' : 'left',\n '--wui-datalist-label-prominence':\n labelProminence === 'secondary'\n ? 'var(--wui-typography-weight-label)'\n : 'var(--wui-typography-weight-label-bold)',\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </StyledDataList>\n );\n};\n\nDataList.displayName = 'DataList_UI';\n","import type { ReactNode, ComponentPropsWithoutRef } from 'react';\n\nexport type DataListItemProps = Omit<ComponentPropsWithoutRef<'dl'>, 'children'> & {\n /**\n * Should only contain `DataListItemLabel` and `DataListItemValue` components.\n */\n children: ReactNode;\n};\n\n/**\n * An item within a `DataList`. It should only contain `DataListItemLabel` and `DataListItemValue` components.\n */\n// eslint-disable-next-line @typescript-eslint/promise-function-async\nexport const DataListItem = ({ children }: DataListItemProps) => {\n return children;\n};\n\nDataListItem.displayName = 'DataListItem_UI';\n","import type { JSX } from 'react';\nimport type { TextProps } from '../Text';\nimport { Text } from '../Text';\n\n/**\n * The label of the `DataListItem`. Extends the [Text]() component.\n */\nexport const DataListItemLabel = (props: TextProps): JSX.Element => {\n return (\n <Text\n variant=\"label4\"\n {...props}\n renderAs=\"dt\"\n />\n );\n};\n\nDataListItemLabel.displayName = 'DataListItemLabel_UI';\n","import type { JSX } from 'react';\nimport type { TextProps } from '../Text';\nimport { Text } from '../Text';\n\n/**\n * The value of the `DataListItem`. Extends the [Text]() component.\n */\nexport const DataListItemValue = (props: TextProps): JSX.Element => {\n return (\n <Text\n variant=\"body3\"\n {...props}\n renderAs=\"dd\"\n />\n );\n};\n\nDataListItemValue.displayName = 'DataListItemValue_UI';\n","import type { ComponentPropsWithoutRef, JSX } from 'react';\nimport { styled, css } from 'styled-components';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp';\n\ntype DividerComponentProps = {\n $orientation: 'horizontal' | 'vertical';\n};\n\nexport type DividerProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Orientation of the divider.\n */\n orientation?: ResponsiveObject<'horizontal' | 'vertical'> | 'horizontal' | 'vertical';\n};\n\nconst horizontalBorderCss = css`\n border-top-color: var(--wui-color-border);\n border-top-style: solid;\n border-top-width: 1px;\n clear: both; /* for horizontal dividers, ensure it clears any floats */\n height: 0;\n`;\n\nconst verticalBorderCss = css`\n background-color: var(--wui-color-border);\n max-width: 1px;\n min-height: 100%;\n width: 1px;\n`;\n\nconst DividerComponent = styled.div<DividerComponentProps>`\n ${({ $orientation }) => {\n switch ($orientation) {\n case 'vertical':\n return verticalBorderCss;\n case 'horizontal':\n default:\n return horizontalBorderCss;\n }\n }}\n`;\n\n/**\n * A line used to visually separate content; note that dividers have no margin/spacing on their own.\n */\nexport const Divider = ({ orientation = 'horizontal', ...props }: DividerProps): JSX.Element => {\n const responsiveOrientation = useResponsiveProp(orientation);\n\n return (\n <DividerComponent\n $orientation={responsiveOrientation}\n aria-orientation={responsiveOrientation}\n role=\"separator\"\n {...props}\n />\n );\n};\n\nDivider.displayName = 'Divider_UI';\n","import type { JSX, KeyboardEvent } from 'react';\nimport { styled, css } from 'styled-components';\nimport { useState, useRef } from 'react';\nimport { ScreenReaderOnly } from '../ScreenReaderOnly';\nimport { Heading } from '../Heading';\nimport type { HeadingProps } from '../Heading';\nimport { variantStyleMap } from '../Heading/Heading';\nimport { Tooltip } from '../Tooltip';\nimport { Input } from '../Input';\n\nconst StyledInput = styled(Input)<{\n $height: string;\n $variant: NonNullable<HeadingProps['variant']>;\n}>`\n &:not([rows]) {\n min-height: unset;\n }\n\n &:focus {\n height: ${({ $height }) => `${$height}px !important`};\n }\n\n && {\n ${({ $variant }) => variantStyleMap[$variant]}\n /* The input font styles (edit mode) needs the same font styles as Heading */\n --wui-input-font-size: var(--font-size);\n --wui-input-font-weight: var(--font-weight);\n --wui-input-line-height: var(--line-height);\n\n font-family: var(--font-family);\n width: 100%;\n padding: var(--wui-space-02);\n border: none;\n height: ${({ $height }) => `${$height}px`};\n min-height: ${({ $height }) => `${$height}px`};\n resize: none;\n }\n`;\n\nconst editableStyles = css`\n &:has(+ :focus-within) {\n background: var(--wui-color-bg-surface-hover);\n }\n\n &:hover {\n background: var(--wui-color-bg-surface-hover);\n cursor: pointer;\n }\n`;\n\nconst StyledHeading = styled(Heading)<{ $editingDisabled: boolean }>`\n width: 100%;\n border-radius: var(--wui-border-radius-02);\n padding: var(--wui-space-02);\n overflow-wrap: anywhere;\n transition: all var(--wui-motion-duration-01) var(--wui-motion-ease);\n ${({ $editingDisabled }) => !$editingDisabled && editableStyles}\n`;\n\nexport type EditableHeadingProps = {\n /**\n * The initial text content of the heading.\n * This will be displayed and used as the starting value when editing begins.\n */\n children: string;\n\n /**\n * Callback fired when editing is completed (on blur or Enter key). Does not fire if the value is empty or the same as the previous value.\n * @param value The new text content after editing\n */\n onValueChange?: (value: string) => void;\n\n /**\n * Callback fired when the editing state changes.\n * @param isEditing True when entering edit mode, false when exiting\n */\n onEditingChange?: (isEditing: boolean) => void;\n\n /**\n * Custom tooltip text shown when hovering over the heading.\n */\n tooltipText?: string;\n\n /**\n * Sets an aria-label for the input and label for the screen reader only button.\n */\n ariaLabel?: string;\n\n /**\n * The text style to display. This will also affect what element (h1, h2, etc) is rendered, unless the `renderAs` prop is used\n */\n variant?: HeadingProps['variant'];\n\n /**\n * Force editing state for testing purposes\n * @ignore\n */\n __forceEditing?: boolean;\n\n /**\n * When true, prevents the heading from entering edit mode\n * @default false\n */\n editingDisabled?: boolean;\n};\n\n/**\n * A special heading component that allows for inline editing. When clicked or activated via keyboard,\n * it transforms into an editable text field. In its default state, it renders as a heading with\n * an accessible button that enables editing mode. The component handles empty values, keyboard\n * navigation (Enter to save, Escape to cancel), and provides callbacks for value and state changes.\n */\nexport const EditableHeading = ({\n children,\n onValueChange,\n onEditingChange,\n tooltipText = 'Click to edit title',\n ariaLabel = 'Edit title',\n variant = 'heading1',\n __forceEditing = false,\n editingDisabled = false,\n}: EditableHeadingProps): JSX.Element => {\n const [isEditing, setIsEditing] = useState(false);\n const [value, setValue] = useState(children);\n const [previousValue, setPreviousValue] = useState(children);\n const [headingHeight, setHeadingHeight] = useState<string>('60');\n const headingRef = useRef<HTMLHeadingElement>(null);\n\n const handleSetEditing = (editing: boolean) => {\n if (editingDisabled) {\n return;\n }\n\n if (editing && headingRef.current) {\n setHeadingHeight(`${headingRef.current.offsetHeight}`);\n }\n\n if (editing) {\n setPreviousValue(value);\n }\n setIsEditing(editing);\n onEditingChange?.(editing);\n };\n\n const handleFinishEditing = () => {\n const trimmedValue = value.trim();\n if (trimmedValue === '') {\n setValue(previousValue);\n } else if (trimmedValue !== previousValue && onValueChange) {\n onValueChange(trimmedValue);\n } else {\n setValue(trimmedValue);\n }\n handleSetEditing(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault();\n handleFinishEditing();\n }\n if (event.key === 'Escape') {\n setValue(previousValue);\n handleSetEditing(false);\n }\n };\n\n const HeadingComponent = (\n <StyledHeading\n ref={headingRef}\n $editingDisabled={editingDisabled}\n onClick={() => handleSetEditing(true)}\n variant={variant}\n >\n {value}\n </StyledHeading>\n );\n\n if (editingDisabled) {\n return HeadingComponent;\n }\n\n if (isEditing || __forceEditing) {\n return (\n <StyledInput\n $height={headingHeight}\n $variant={variant}\n autoFocus={true}\n fullWidth={true}\n onBlur={handleFinishEditing}\n onChange={(event) => setValue(event.target.value)}\n onFocus={(event) => {\n const { length } = event.currentTarget.value;\n\n // place caret at end of input on focus\n event.currentTarget.setSelectionRange(length, length);\n }}\n onKeyDown={handleKeyDown}\n type=\"multiline\"\n value={value}\n />\n );\n }\n\n return (\n <>\n <Tooltip content={tooltipText}>{HeadingComponent}</Tooltip>\n <ScreenReaderOnly>\n <button\n aria-label={ariaLabel}\n onClick={() => handleSetEditing(true)}\n type=\"button\"\n />\n </ScreenReaderOnly>\n </>\n );\n};\n","import type { ComponentPropsWithoutRef, ElementType, ForwardedRef, CSSProperties } from 'react';\nimport { useContext, useRef, forwardRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport { EditableTextContext } from './EditableTextRoot';\nimport { ClickRegion } from '../ClickRegion/ClickRegion';\nimport {\n getTypographicStyles,\n getDefaultTypographicElement,\n} from '../../private/helpers/getTypographicStyles/getTypographicStyles';\nimport type { TypographicVariant } from '../../private/helpers/getTypographicStyles/getTypographicStyles';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\nimport { makePolymorphic } from '../../private/helpers/makePolymorphic';\nimport { ellipsisStyle } from '../Ellipsis/Ellipsis';\nimport { lineClampCss } from '../../css/lineClampCss';\n\nexport type EditableTextDisplayProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * When true, the user can click on the display to edit the text\n */\n asTrigger?: boolean;\n renderAs?: ElementType;\n};\n\ntype StyledEditableTextDisplayProps = {\n $typographicVariant: TypographicVariant;\n as?: ElementType;\n $maxLines?: number | undefined;\n $minLines?: number | undefined;\n};\n\nconst StyledEditableTextDisplay = styled.div<StyledEditableTextDisplayProps>`\n ${({ $typographicVariant }) => getTypographicStyles($typographicVariant)}\n padding: var(--wui-editable-text-padding);\n border-radius: var(--wui-editable-text-border-radius);\n margin: 0;\n transition: all var(--wui-motion-duration-02) var(--wui-motion-ease);\n ${({ $maxLines }) => {\n if (isNotNil($maxLines)) {\n return css`\n ${ellipsisStyle};\n ${lineClampCss($maxLines)};\n `;\n }\n return undefined;\n }}\n ${({ $minLines }) =>\n isNotNil($minLines) &&\n css`\n min-height: calc(${$minLines}lh + calc(var(--wui-editable-text-padding) * 2));\n `}\n word-break: normal;\n overflow-wrap: anywhere;\n\n &[data-wui-editable-text-display='placeholder'] {\n color: var(--wui-color-text-secondary);\n }\n\n &:has(button) {\n user-select: none;\n cursor: pointer;\n\n &:hover,\n &:focus-within {\n background-color: var(--wui-color-bg-surface-hover);\n }\n }\n`;\n\nconst EditableTextDisplayComponent = forwardRef<HTMLElement, EditableTextDisplayProps>(\n ({ asTrigger, renderAs, ...props }, ref) => {\n const context = useContext(EditableTextContext);\n if (!context) {\n throw new Error('EditableTextDisplay must be used within an EditableTextRoot context');\n }\n const { value, typographicVariant, setIsEditing, placeholder, maxLines, isEditing, minLines } =\n context;\n\n const triggerButtonRef = useRef<HTMLButtonElement>(null);\n\n const handleTriggerClick = () => {\n setIsEditing(true);\n };\n\n const elementType = renderAs ?? getDefaultTypographicElement(typographicVariant);\n\n const displayText = value.length > 0 ? value : placeholder;\n const isPlaceholderVisible = value.length === 0 && Boolean(placeholder);\n\n if (isEditing) {\n return null;\n }\n\n if (asTrigger && !context.readOnly) {\n return (\n <ClickRegion targetRef={triggerButtonRef}>\n <StyledEditableTextDisplay\n ref={ref as ForwardedRef<HTMLDivElement>}\n $maxLines={maxLines}\n $minLines={minLines}\n $typographicVariant={typographicVariant}\n as={elementType}\n data-wui-editable-text-display={isPlaceholderVisible ? 'placeholder' : 'value'}\n {...props}\n >\n {displayText}\n <button\n ref={triggerButtonRef}\n onClick={handleTriggerClick}\n style={{ ...visuallyHiddenStyle } as CSSProperties}\n type=\"button\"\n >\n Edit text\n </button>\n </StyledEditableTextDisplay>\n </ClickRegion>\n );\n }\n\n return (\n <StyledEditableTextDisplay\n ref={ref as ForwardedRef<HTMLDivElement>}\n $maxLines={maxLines}\n $minLines={minLines}\n $typographicVariant={typographicVariant}\n as={elementType}\n data-placeholder-visible={isPlaceholderVisible || undefined}\n data-wui-editable-text-display={true}\n {...props}\n >\n {displayText}\n </StyledEditableTextDisplay>\n );\n },\n);\n\nEditableTextDisplayComponent.displayName = 'EditableTextDisplay_UI';\n\nexport const EditableTextDisplay = makePolymorphic<'h1', EditableTextDisplayProps>(\n // @ts-expect-error makePolymorphic is causing issues with types in R19\n EditableTextDisplayComponent,\n);\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { createContext, useMemo, useState, useCallback, useId } from 'react';\nimport { isNonEmptyString } from '@wistia/type-guards';\nimport { styled } from 'styled-components';\nimport type { TypographicVariant } from '../../private/helpers/getTypographicStyles/getTypographicStyles';\n\nconst LARGE_PADDING = 'var(--wui-space-02)';\nconst SMALL_PADDING = 'var(--wui-space-01)';\n\nconst getPaddingForVariant = (variant: TypographicVariant): string => {\n const largePaddingVariants = [\n 'hero',\n 'heading1',\n 'heading2',\n 'heading3',\n 'body1',\n 'label1',\n 'body1Mono',\n ];\n\n const smallPaddingVariants = [\n 'heading4',\n 'heading5',\n 'heading6',\n 'body2',\n 'body3',\n 'body4',\n 'label2',\n 'label3',\n 'label4',\n 'body2Mono',\n 'body3Mono',\n 'body4Mono',\n ];\n\n if (largePaddingVariants.includes(variant)) {\n return LARGE_PADDING;\n }\n\n if (smallPaddingVariants.includes(variant)) {\n return SMALL_PADDING;\n }\n\n return SMALL_PADDING;\n};\n\nconst StyledEditableTextRoot = styled.div<{ $typographicVariant: TypographicVariant }>`\n display: contents;\n\n --wui-editable-text-padding: ${({ $typographicVariant }) =>\n getPaddingForVariant($typographicVariant)};\n --wui-editable-text-border-radius: var(--wui-border-radius-01);\n`;\n\nexport type EditableTextRootProps = Omit<ComponentPropsWithoutRef<'div'>, 'defaultValue'> & {\n /**\n * The children of the editable text root.\n */\n children: ReactNode;\n /**\n * The initial value for the editable text\n */\n defaultValue?: string;\n /**\n * The current value for the editable text\n */\n value?: string;\n /**\n * Callback fired when the value changes\n */\n onValueChange?: (value: string) => void;\n /**\n * Callback fired when editing is committed (e.g., save button clicked, Enter pressed)\n */\n onValueCommit?: (value: string) => void;\n /**\n * Callback fired when editing is cancelled (e.g., cancel button clicked, Escape pressed)\n */\n onValueRevert?: (originalValue: string) => void;\n /**\n * Callback fired when the editing state changes (editing starts or stops)\n */\n onEditingChange?: (isEditing: boolean) => void;\n /**\n * The typographic variant to use for the display component\n */\n typographicVariant?: TypographicVariant;\n /**\n * The action(s) that trigger submit or dismiss in edit mode:\n * - \"enter\": Trigger submit when the enter key is pressed, or dismiss when the esc key is pressed\n * - \"blur\": Trigger submit when the editable is blurred, or dismiss when the esc key is pressed\n * - \"none\": No action will trigger submit or dismiss. You need to use the submit or dismiss buttons\n * - \"both\": Pressing Enter and blurring the input will trigger submit, or dismiss when the esc key is pressed\n */\n submitMode?: 'blur' | 'both' | 'enter' | 'none';\n /**\n * Whether the editable text is read only. If true, the editable text will not be editable and the trigger will not be shown.\n */\n readOnly?: boolean;\n /**\n * The id of the editable text.\n */\n id?: string;\n /**\n * The label of the editable text.\n */\n label: string;\n /**\n * Placeholder text for the input field and display\n */\n placeholder?: string;\n /**\n * Minimum number of lines to display.\n */\n minLines?: number;\n /**\n * Maximum number of lines to display. If not set, there is no maximum.\n */\n maxLines?: number | undefined;\n /**\n * The element to receive focus when the editable is closed.\n */\n finalFocusEl?: () => HTMLElement | null;\n};\n\nexport type EditableTextContextValues = {\n isEditing: boolean;\n setIsEditing: (editing: boolean) => void;\n value: string;\n setValue: (value: string) => void;\n originalValue: string;\n onValueCommit: ((value: string) => void) | undefined;\n onValueRevert: ((originalValue: string) => void) | undefined;\n typographicVariant: TypographicVariant;\n submitMode: 'blur' | 'both' | 'enter' | 'none';\n readOnly: boolean;\n id: string;\n label: string;\n placeholder: string;\n minLines: number;\n maxLines: number | undefined;\n finalFocusEl: (() => HTMLElement | null) | undefined;\n};\n\nexport const EditableTextContext = createContext<EditableTextContextValues | null>(null);\n\nexport const EditableTextRoot = ({\n children,\n defaultValue = '',\n value: controlledValue,\n onValueChange,\n onValueCommit,\n onValueRevert,\n onEditingChange,\n typographicVariant = 'body2',\n submitMode = 'both',\n readOnly = false,\n id,\n label,\n placeholder = 'Click to edit this text',\n minLines = 1,\n maxLines,\n finalFocusEl,\n ...props\n}: EditableTextRootProps): JSX.Element => {\n const isControlled = controlledValue !== undefined;\n const [internalValue, setInternalValue] = useState(defaultValue);\n const [originalValue, setOriginalValue] = useState(defaultValue);\n const [isEditing, setIsEditing] = useState(false);\n\n const value = isControlled ? controlledValue : internalValue;\n\n const generatedId = useId();\n const computedId = isNonEmptyString(id) ? id : `wistia-ui-editable-text-${generatedId}`;\n\n const handleSetIsEditing = useCallback(\n (editing: boolean) => {\n if (editing && !isEditing) {\n setOriginalValue(value);\n }\n setIsEditing(editing);\n onEditingChange?.(editing);\n },\n [isEditing, value, onEditingChange],\n );\n\n const setValue = useCallback(\n (newValue: string) => {\n if (!isControlled) {\n setInternalValue(newValue);\n }\n onValueChange?.(newValue);\n },\n [isControlled, onValueChange],\n );\n\n const context = useMemo<EditableTextContextValues>(() => {\n return {\n isEditing,\n setIsEditing: handleSetIsEditing,\n value,\n setValue,\n originalValue,\n onValueCommit,\n onValueRevert,\n typographicVariant,\n submitMode,\n readOnly,\n id: computedId,\n label,\n placeholder,\n minLines,\n maxLines,\n finalFocusEl,\n };\n }, [\n isEditing,\n handleSetIsEditing,\n value,\n setValue,\n originalValue,\n onValueCommit,\n onValueRevert,\n typographicVariant,\n submitMode,\n readOnly,\n computedId,\n label,\n placeholder,\n minLines,\n maxLines,\n finalFocusEl,\n ]);\n\n const getState = () => {\n if (readOnly) {\n return 'read-only';\n }\n if (isEditing) {\n return 'editing';\n }\n return 'idle';\n };\n\n return (\n <StyledEditableTextRoot\n $typographicVariant={typographicVariant}\n data-testid=\"editable-text-root\"\n data-wui-editable-text-root={true}\n data-wui-editable-text-state={getState()}\n {...props}\n >\n <EditableTextContext.Provider value={context}>{children}</EditableTextContext.Provider>\n </StyledEditableTextRoot>\n );\n};\n","import type { JSX, ChangeEvent, KeyboardEvent } from 'react';\nimport { useContext, useEffect, useRef } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport { EditableTextContext } from './EditableTextRoot';\nimport type { TypographicVariant } from '../../private/helpers/getTypographicStyles/getTypographicStyles';\nimport { getTypographicStyles } from '../../private/helpers/getTypographicStyles/getTypographicStyles';\n\nconst StyledInput = styled(Input)<{\n $typographicVariant: TypographicVariant;\n $minLines: number;\n $maxLines: number | 'infinity';\n}>`\n && {\n ${({ $minLines }) =>\n isNotNil($minLines) &&\n `min-height: calc(${$minLines}lh + calc(var(--wui-editable-text-padding) * 2));`}\n ${({ $maxLines }) =>\n isNotNil($maxLines) &&\n `max-height: calc(${$maxLines}lh + calc(var(--wui-editable-text-padding) * 2));`}\n ${({ $typographicVariant }) => getTypographicStyles($typographicVariant)}\n background-color: var(--wui-color-bg-surface);\n border-radius: var(--wui-editable-text-border-radius);\n padding: var(--wui-editable-text-padding);\n resize: none;\n }\n`;\n\nexport type EditableTextInputProps = Pick<InputProps, 'autoSelect'>;\n\nexport const EditableTextInput = (props: EditableTextInputProps): JSX.Element | null => {\n const context = useContext(EditableTextContext);\n if (!context) {\n throw new Error('EditableTextInput must be used within an EditableTextRoot context');\n }\n const {\n isEditing,\n value,\n setValue,\n onValueCommit,\n setIsEditing,\n typographicVariant,\n submitMode,\n originalValue,\n onValueRevert,\n id,\n placeholder,\n minLines,\n maxLines,\n finalFocusEl,\n } = context;\n\n const inputRef = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (inputRef.current) {\n if (isEditing) {\n const element = inputRef.current;\n const { style } = element;\n style.height = '0px';\n const { scrollHeight } = element;\n style.height = `${scrollHeight}px`;\n }\n if (isEditing) {\n inputRef.current.focus();\n }\n }\n }, [value, isEditing]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setValue(event.target.value);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if (\n (submitMode === 'enter' || submitMode === 'both') &&\n event.key === 'Enter' &&\n !event.shiftKey\n ) {\n event.preventDefault();\n onValueCommit?.(value);\n setIsEditing(false);\n setTimeout(() => {\n const element = finalFocusEl?.();\n if (element) {\n element.focus();\n }\n }, 0);\n }\n if (event.key === 'Escape') {\n event.preventDefault();\n setValue(originalValue);\n onValueRevert?.(originalValue);\n setIsEditing(false);\n setTimeout(() => {\n const element = finalFocusEl?.();\n if (element) {\n element.focus();\n }\n }, 0);\n }\n };\n\n const handleBlur = () => {\n if (submitMode === 'blur' || submitMode === 'both') {\n onValueCommit?.(value);\n setIsEditing(false);\n setTimeout(() => {\n const element = finalFocusEl?.();\n if (element) {\n element.focus();\n }\n }, 0);\n }\n };\n\n if (!isEditing) {\n return null;\n }\n\n return (\n <StyledInput\n ref={inputRef}\n $maxLines={maxLines ?? 'infinity'}\n $minLines={minLines}\n $typographicVariant={typographicVariant}\n data-wui-editable-text-input={true}\n id={id}\n onBlur={handleBlur}\n onChange={handleChange}\n onFocus={(event) => {\n const { length } = event.currentTarget.value;\n\n // place caret at end of input on focus\n event.currentTarget.setSelectionRange(length, length);\n }}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n type=\"multiline\"\n value={value}\n {...props}\n />\n );\n};\n","import { useContext } from 'react';\nimport type { LabelProps } from '../Label';\nimport { Label } from '../Label';\nimport { EditableTextContext } from './EditableTextRoot';\n\nexport type EditableTextLabelProps = Omit<LabelProps, 'disabled' | 'htmlFor' | 'required'>;\n\nexport const EditableTextLabel = ({ ...props }: EditableTextLabelProps) => {\n const context = useContext(EditableTextContext);\n if (!context) {\n throw new Error('EditableTextLabel must be used within an EditableTextRoot context');\n }\n const { id, label, isEditing } = context;\n\n return (\n <Label\n {...(isEditing && { htmlFor: id })} // only render `for` attr when editing\n {...props}\n >\n {label}\n </Label>\n );\n};\n","import type { JSX } from 'react';\nimport { EditableTextDisplay } from './EditableTextDisplay';\nimport { EditableTextInput } from './EditableTextInput';\nimport type { EditableTextRootProps } from './EditableTextRoot';\nimport { EditableTextRoot } from './EditableTextRoot';\nimport { EditableTextLabel } from './EditableTextLabel';\n\nexport type EditableTextProps = Omit<EditableTextRootProps, 'children'> & {\n /**\n * Whether to visually hide the label.\n */\n hideLabel?: boolean;\n};\n\n/**\n * Used for inline editing of text.\n */\nexport const EditableText = ({ hideLabel = true, ...props }: EditableTextProps): JSX.Element => (\n <EditableTextRoot {...props}>\n <EditableTextLabel screenReaderOnly={hideLabel} />\n <EditableTextInput />\n <EditableTextDisplay asTrigger={true} />\n </EditableTextRoot>\n);\n\nEditableText.displayName = 'EditableText_UI';\n","import { useContext, Children, cloneElement } from 'react';\nimport type { ReactElement, ComponentPropsWithRef, JSX } from 'react';\nimport { EditableTextContext } from './EditableTextRoot';\n\nexport const EditableTextSubmitButton = ({\n /**\n * A submit button, typically a [Button]() that will commit the value when clicked.\n */\n children,\n}: {\n children: ReactElement;\n}): JSX.Element | null => {\n const context = useContext(EditableTextContext);\n if (!context) {\n throw new Error('EditableTextSubmitButton must be used within an EditableTextRoot context');\n }\n const { setIsEditing, value, onValueCommit, finalFocusEl, isEditing } = context;\n\n const handleClick = () => {\n onValueCommit?.(value);\n setIsEditing(false);\n setTimeout(() => {\n const element = finalFocusEl?.();\n if (element) {\n element.focus();\n }\n }, 0);\n };\n\n const onlyChild = Children.only(children);\n\n const triggerProps: Partial<ComponentPropsWithRef<'button'>> & {\n 'data-wui-editable-text-submit'?: boolean;\n } = {\n onClick: handleClick,\n 'data-wui-editable-text-submit': true,\n };\n\n if (!isEditing) {\n return null;\n }\n\n return cloneElement(onlyChild, triggerProps);\n};\n","import type { JSX, ReactElement, ComponentPropsWithRef } from 'react';\nimport { useContext, Children, cloneElement } from 'react';\nimport { EditableTextContext } from './EditableTextRoot';\n\nexport type EditableTextCancelButtonProps = {\n /**\n * A cancel button, typically a [Button]() that will revert the value when clicked.\n */\n children: ReactElement;\n};\n\nexport const EditableTextCancelButton = ({\n children,\n}: EditableTextCancelButtonProps): JSX.Element | null => {\n const context = useContext(EditableTextContext);\n if (!context) {\n throw new Error('EditableTextCancelButton must be used within an EditableTextRoot context');\n }\n const { setIsEditing, originalValue, setValue, onValueRevert, finalFocusEl, isEditing } = context;\n\n const handleClick = () => {\n setValue(originalValue);\n onValueRevert?.(originalValue);\n setIsEditing(false);\n setTimeout(() => {\n const element = finalFocusEl?.();\n if (element) {\n element.focus();\n }\n }, 0);\n };\n\n const onlyChild = Children.only(children);\n\n const triggerProps: Partial<ComponentPropsWithRef<'button'>> & {\n 'data-wui-editable-text-cancel'?: boolean;\n } = {\n onClick: handleClick,\n 'data-wui-editable-text-cancel': true,\n };\n\n if (!isEditing) {\n return null;\n }\n\n return cloneElement(onlyChild, triggerProps);\n};\n","import { useContext, Children, cloneElement } from 'react';\nimport type { ReactElement, ComponentPropsWithRef, JSX } from 'react';\nimport { EditableTextContext } from './EditableTextRoot';\n\nexport type EditableTextTriggerProps = {\n /**\n * A trigger element, typically a [Button]() that will enter editing mode when clicked.\n */\n children: ReactElement;\n};\n\nexport const EditableTextTrigger = ({\n children,\n ...props\n}: EditableTextTriggerProps): JSX.Element | null => {\n const context = useContext(EditableTextContext);\n if (!context) {\n throw new Error('EditableTextTrigger must be used within an EditableTextRoot context');\n }\n const { setIsEditing, isEditing } = context;\n\n const handleClick = () => {\n setIsEditing(true);\n };\n\n const onlyChild = Children.only(children);\n\n const triggerProps: Partial<ComponentPropsWithRef<'button'>> & {\n 'data-wui-editable-text-trigger'?: boolean;\n } = {\n onClick: handleClick,\n 'data-wui-editable-text-trigger': true,\n ...props,\n };\n\n if (isEditing) {\n return null;\n }\n\n return cloneElement(onlyChild, triggerProps);\n};\n","import { useCallback, useState } from 'react';\nimport { serializeFormData } from './serializeFormData';\n\ntype ActionCallback<T> = (data: T, nextData: T) => Promise<T> | T;\n\nexport type Action = (data: FormData | null) => Promise<void>;\n\ntype FormActionState<T> = [{ data: T; error: Error | null }, Action, boolean];\n\nexport const useFormState = <T extends object>(\n action: ActionCallback<T>,\n initialData: Partial<T> = {} as T,\n): FormActionState<T> => {\n const [data, setData] = useState<T>(initialData as T);\n const [isPending, setIsPending] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const formAction = useCallback(\n async (nextFormData: FormData | null) => {\n if (nextFormData === null) {\n setData(initialData as T);\n setError(null);\n return;\n }\n\n const nextData = serializeFormData(nextFormData) as T;\n setIsPending(true);\n\n try {\n const result = await action(data, nextData);\n setData(result);\n } catch (err) {\n setError(err instanceof Error ? err : new Error(String(err)));\n } finally {\n setIsPending(false);\n }\n },\n [action, initialData, data],\n );\n\n return [\n {\n data,\n error,\n },\n formAction,\n isPending,\n ];\n};\n","import { useContext, useRef } from 'react';\nimport { isArray, isNotUndefined } from '@wistia/type-guards';\nimport { Link } from '../Link';\nimport { FormContext } from './Form';\n\ntype ErrorItemProps = {\n name: string;\n error: string;\n formId: string;\n};\n\nconst ErrorItem = ({ name, error, formId }: ErrorItemProps) => {\n return (\n <li key={name}>\n <Link href={`#${formId}-${name}`}>{error}</Link>\n </li>\n );\n};\n\ntype FormErrorSummaryProps = {\n description: string;\n};\n\nexport const FormErrorSummary = ({ description }: FormErrorSummaryProps) => {\n const ref = useRef(null);\n const { formId, errors, hasSubmitted } = useContext(FormContext);\n const isValid = Object.keys(errors).length === 0;\n\n if (isValid || !hasSubmitted) {\n return null;\n }\n\n return (\n <div ref={ref}>\n <p>{description}</p>\n <ul>\n {Object.entries(errors)\n .filter(([, error]) => isNotUndefined(error))\n .map(([name, error]) =>\n isArray(error) ? (\n error.map((err) => (\n <ErrorItem\n key={err}\n error={err}\n formId={formId}\n name={name}\n />\n ))\n ) : (\n <ErrorItem\n key={error}\n error={error ?? ''}\n formId={formId}\n name={name}\n />\n ),\n )}\n </ul>\n </div>\n );\n};\n","import type { JSX, ReactNode, ComponentPropsWithoutRef, ChangeEvent } from 'react';\nimport { Children, cloneElement, useContext } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isArray, isNotNil, isNotUndefined, isUndefined } from '@wistia/type-guards';\nimport { Text } from '../Text';\nimport { Label } from '../Label';\nimport { CheckboxGroupContext } from '../FormGroup/CheckboxGroup';\nimport { Checkbox } from '../Checkbox';\nimport { FormContext } from '../Form/Form';\nimport { FormControlLabelDescription } from '../../private/components/FormControlLabel/FormControlLabelDescription';\nimport { Stack } from '../Stack';\n\nconst inlineErrorStyles = css`\n grid-template-rows: 1fr auto;\n grid-template-areas: 'label-description input' '. error';\n`;\n\nconst inlineBaseGridAreaStyles = css`\n grid-template-rows: 1fr;\n grid-template-areas: 'label-description input';\n`;\n\nconst blockGridErrorStyles = css`\n grid-template-rows: auto 1fr auto;\n grid-template-areas: 'label-description' 'input' 'error';\n`;\n\nconst StyledFormField = styled.div<{\n 'data-label-position': 'block' | 'inline-compact' | 'inline';\n $hasError: boolean;\n}>`\n --form-field-spacing: var(--wui-space-02);\n --form-field-spacing-inline: var(--wui-space-02);\n --form-field-error-color: var(--wui-color-text-secondary-error);\n\n display: grid;\n gap: var(--form-field-spacing);\n justify-content: flex-start;\n align-items: center;\n grid-template-columns: auto 1fr;\n grid-template-rows: auto 1fr;\n\n &[data-label-position='inline-compact'] {\n gap: var(--form-field-spacing-inline);\n grid-template-columns: auto 1fr;\n ${inlineBaseGridAreaStyles}\n ${({ $hasError }) => $hasError && inlineErrorStyles}\n }\n\n &[data-label-position='inline'] {\n gap: var(--form-field-spacing-inline);\n grid-template-columns: minmax(auto, 1fr) 1fr;\n ${inlineBaseGridAreaStyles}\n ${({ $hasError }) => $hasError && inlineErrorStyles}\n }\n\n &[data-label-position='block'] {\n gap: var(--form-field-spacing);\n grid-template-columns: 1fr;\n grid-template-rows: auto 1fr;\n grid-template-areas: 'label-description' 'input';\n ${({ $hasError }) => $hasError && blockGridErrorStyles}\n }\n`;\n\nconst ErrorText = styled(Text)`\n grid-area: error;\n`;\n\nexport type FormFieldProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * This should be a single child that is a valid form field (or can pretend to be one).\n */\n children: JSX.Element;\n /**\n * Additional descriptive text to display below the form field\n */\n description?: ReactNode;\n /**\n * Valid label text\n */\n label: ReactNode;\n /**\n * If an id isn't supplied, one is generated internally.\n */\n id?: string;\n /**\n * Will show an error message and put the child input into an invalid state\n */\n error?: ReactNode;\n /**\n * The name attribute of the field. It will map to the form data passed into `useFormState`.\n */\n name: string;\n /**\n * Use if label describes a required form component\n */\n required?: boolean;\n /**\n * A value that overrides the basic value. This should pair with `onChange`.\n */\n value?: string;\n /**\n * Setting to `inline` will have the label and input appear on the same line. Setting to `block` will have the label above the input.\n */\n labelPosition?: 'block' | 'inline-compact' | 'inline';\n};\n\ntype ErrorsProps = {\n id: string;\n errors: ReactNode | ReactNode[];\n};\n\nconst StyledErrorList = styled.ul`\n margin: 0;\n padding: 0;\n padding-left: var(--wui-space-04);\n display: flex;\n flex-direction: column;\n gap: var(--wui-space-01);\n grid-area: error;\n`;\n\nconst ErrorMessages = ({ errors, id }: ErrorsProps) => {\n const isErrorArray = isArray(errors);\n const isMultipleErrors = isErrorArray && errors.length > 1;\n\n if (!isErrorArray) {\n return (\n <ErrorText\n key={id}\n colorScheme=\"error\"\n id={id}\n prominence=\"secondary\"\n variant=\"label4\"\n >\n {errors}\n </ErrorText>\n );\n }\n\n if (!isMultipleErrors) {\n return (\n <ErrorText\n key={id}\n colorScheme=\"error\"\n id={id}\n prominence=\"secondary\"\n variant=\"label4\"\n >\n {errors[0]}\n </ErrorText>\n );\n }\n\n return (\n <StyledErrorList>\n {errors.map((error, index) => (\n <Text\n // can't use error because it could be a ReactNode\n // eslint-disable-next-line react/no-array-index-key\n key={`${id}-${index}`}\n colorScheme=\"error\"\n id={`${id}-${index}`}\n prominence=\"secondary\"\n renderAs=\"li\"\n variant=\"label4\"\n >\n {error}\n </Text>\n ))}\n </StyledErrorList>\n );\n};\n\n/**\n * FormField is a compound component that combines a label, form control, and optional description and error message.\n */\nexport const FormField = ({\n children,\n description,\n error,\n id,\n label,\n labelPosition,\n name,\n required = false,\n value,\n ...props\n}: FormFieldProps): JSX.Element => {\n const formState = useContext(FormContext);\n const checkboxGroup = useContext(CheckboxGroupContext);\n const defaultValue = formState.values[name] as string;\n const isIntegratedLabel = children.type === Checkbox;\n const computedId = id ?? `${formState.formId}-${name}`;\n const computedError = error ?? formState.errors[name];\n const descriptionId = `${computedId}-description`;\n const errorId = `${computedId}-error`;\n const ariaDescribedby = [descriptionId, errorId].filter(Boolean).join(' ') || undefined;\n const hasDescription = isNotNil(description);\n const hasError = isNotNil(computedError);\n const shouldRenderLabelDescriptionWrapper = !isIntegratedLabel || hasDescription;\n let childProps = {\n name,\n id: computedId,\n label: isIntegratedLabel ? label : undefined,\n 'aria-describedby': ariaDescribedby,\n 'aria-invalid': hasError,\n style: { gridArea: 'input' },\n ...props,\n };\n\n if (isUndefined(value) && isNotUndefined(defaultValue)) {\n childProps = {\n ...childProps,\n defaultValue,\n };\n }\n\n if (isNotNil(checkboxGroup)) {\n const computedName = isNotNil(checkboxGroup.name) ? `${checkboxGroup.name}[${name}]` : name;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (isNotUndefined(props.onChange)) {\n props.onChange(event);\n }\n\n if (isNotUndefined(checkboxGroup.onChange)) {\n checkboxGroup.onChange(event);\n }\n };\n\n childProps = {\n ...childProps,\n name: computedName,\n onChange: handleChange,\n };\n }\n\n Children.only(children); // eslint-disable-line @typescript-eslint/no-floating-promises\n\n return (\n <StyledFormField\n {...props}\n $hasError={hasError}\n data-label-position={labelPosition ?? formState.labelPosition}\n >\n {shouldRenderLabelDescriptionWrapper ? (\n <Stack\n direction=\"vertical\"\n gap=\"space-01\"\n style={{\n gridArea: 'label-description',\n }}\n >\n {!isIntegratedLabel && (\n <Label\n htmlFor={computedId}\n required={required}\n >\n {label}\n </Label>\n )}\n {hasDescription ? (\n <FormControlLabelDescription id={descriptionId}>\n {description}\n </FormControlLabelDescription>\n ) : null}\n </Stack>\n ) : null}\n {cloneElement(children, childProps)}\n\n {hasError ? (\n <ErrorMessages\n errors={computedError}\n id={errorId}\n />\n ) : null}\n </StyledFormField>\n );\n};\n\nFormField.displayName = 'FormField_UI';\n","import type { ChangeEvent, JSX } from 'react';\nimport { createContext, useMemo, useContext } from 'react';\nimport type { FormGroupProps } from './FormGroup';\nimport { FormGroup } from './FormGroup';\nimport { FormContext } from '../Form/Form';\n\nexport type RadioGroupProps = FormGroupProps & {\n onChange?: ((event: ChangeEvent<HTMLInputElement>) => void) | undefined;\n value?: string | undefined;\n name: string;\n};\n\ntype RadioGroupContextValues = Pick<RadioGroupProps, 'name' | 'onChange' | 'value'>;\n\nexport const RadioGroupContext = createContext<RadioGroupContextValues | null>(null);\n\n/**\n * Connects Radio components with their parent RadioGroup; provides access to `name` and `onChange`\n */\nexport const useRadioGroup = () => {\n return useContext(RadioGroupContext);\n};\n\n/**\n * For grouping like form elements together. Can serve as a checkbox\n */\nexport const RadioGroup = ({\n children,\n name,\n onChange,\n value,\n ...props\n}: RadioGroupProps): JSX.Element => {\n const formState = useContext(FormContext);\n const derivedValue = typeof formState.values[name] === 'string' ? formState.values[name] : value;\n const context = useMemo<RadioGroupContextValues>(() => {\n return {\n name,\n onChange,\n value: derivedValue,\n };\n }, [name, derivedValue, onChange]);\n\n return (\n <RadioGroupContext.Provider value={context}>\n <FormGroup {...props}>{children}</FormGroup>\n </RadioGroupContext.Provider>\n );\n};\n\nRadioGroup.displayName = 'RadioGroup_UI';\n","import type { ReactNode, ComponentPropsWithoutRef, ElementType } from 'react';\nimport { forwardRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isRecord } from '@wistia/type-guards';\nimport { makePolymorphic } from '../../private/helpers/makePolymorphic';\nimport type { Spacings } from '../../css/designTokens/spacing';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\n\nconst DEFAULT_ELEMENT = 'div';\n\ntype StyledGridProps = {\n $maxColumns: number | 'auto';\n $minChildWidth: number;\n $columnGap: Spacings;\n $rowGap: Spacings;\n $expandItems: boolean;\n};\n\n/**\n * Determines the grid template columns CSS value based on the grid configuration\n */\nconst getGridTemplateColumns = (\n maxColumns: number | 'auto',\n minChildWidth: number | 'auto',\n expandItems: boolean,\n) => {\n if (minChildWidth === 'auto' && maxColumns === 'auto') {\n return css`\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n `;\n }\n const gridMode = expandItems ? 'auto-fit' : 'auto-fill';\n const minChildWidthValue = minChildWidth === 'auto' ? 0 : minChildWidth;\n\n if (maxColumns === 'auto') {\n return css`\n grid-template-columns: repeat(${gridMode}, minmax(${minChildWidthValue}px, 1fr));\n `;\n }\n\n return css`\n /* Adapted from https://9elements.com/blog/building-a-rock-solid-auto-grid/ */\n --wui-grid-total-column-gap-width: calc(${maxColumns - 1} * var(--wui-grid-column-gap));\n --wui-grid-max-column-width: calc(\n (100% - var(--wui-grid-total-column-gap-width)) / ${maxColumns}\n );\n\n grid-template-columns: repeat(\n ${gridMode},\n minmax(max(${minChildWidthValue}px, var(--wui-grid-max-column-width)), 1fr)\n );\n `;\n};\n\nconst StyledGrid = styled.div<StyledGridProps>`\n --wui-grid-column-gap: ${({ $columnGap }) => `var(--wui-${$columnGap})`};\n --wui-grid-row-gap: ${({ $rowGap }) => `var(--wui-${$rowGap})`};\n\n display: grid;\n gap: var(--wui-grid-column-gap) var(--wui-grid-row-gap);\n width: 100%;\n\n ${({ $maxColumns, $minChildWidth, $expandItems }) =>\n getGridTemplateColumns($maxColumns, $minChildWidth, $expandItems)}\n`;\n\ntype Gap = {\n column: Spacings;\n row: Spacings;\n};\n\ntype ResponsiveGap = ResponsiveObject<Gap | Spacings>;\n\nexport type GridProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * The content to be displayed in the grid\n */\n children: ReactNode;\n /**\n * When minChildWidth is 'auto', this will be the number of columns, otherwise it will be the maximum number of columns.\n */\n columns?: ResponsiveObject<number | 'auto'> | number | 'auto';\n /**\n * Sets the minimum width for each grid item.\n */\n minChildWidth?: ResponsiveObject<number | 'auto'> | number | 'auto';\n /**\n * Controls the spacing between grid items.\n */\n gap?: Gap | ResponsiveGap | Spacings;\n /**\n * Controls whether grid items expand to fill available space when there are fewer items than columns.\n * When true, items grow to fill space. When false, the grid will auto fill the additional space with empty tracks.\n */\n expandItems?: boolean;\n // This will inherit the jsdoc block from PolymorphicComponent\n renderAs?: ElementType;\n};\n\n/**\n * A flexible grid component that can either create a fixed number of columns\n * or an auto-filling grid based on the minimum child width.\n */\nconst GridComponent = forwardRef<typeof DEFAULT_ELEMENT, GridProps>(\n (\n {\n children,\n columns = 'auto',\n minChildWidth = 'auto',\n gap = 'space-02',\n expandItems = false,\n renderAs,\n ...props\n },\n ref,\n ) => {\n const responsiveGap = useResponsiveProp(gap);\n const { column, row } = isRecord(responsiveGap)\n ? responsiveGap\n : { column: responsiveGap, row: responsiveGap };\n const responsiveColumns = useResponsiveProp(columns);\n const responsiveMinChildWidth = useResponsiveProp(minChildWidth);\n\n return (\n <StyledGrid\n ref={ref}\n $columnGap={column}\n $expandItems={expandItems}\n $maxColumns={responsiveColumns}\n $minChildWidth={responsiveMinChildWidth}\n $rowGap={row}\n as={renderAs ?? DEFAULT_ELEMENT}\n {...props}\n >\n {children}\n </StyledGrid>\n );\n },\n);\n\nGridComponent.displayName = 'Grid_UI';\n\n// @ts-expect-error makePolymorphic is causing issues with types in R19\nexport const Grid = makePolymorphic<typeof DEFAULT_ELEMENT, GridProps>(GridComponent);\n","import type { JSX, MouseEvent } from 'react';\nimport { styled } from 'styled-components';\nimport { forwardRef, useEffect, useState } from 'react';\nimport { isFunction } from '@wistia/type-guards';\nimport type { InputProps } from '../Input/Input';\nimport { Input } from '../Input/Input';\nimport { Icon } from '../Icon';\nimport { copyToClipboard } from '../../helpers/copyToClipboard';\nimport { IconButton } from '../IconButton';\n\nconst StyledIconButton = styled(IconButton)`\n /* override size for icon button since prop gets changed by Input */\n height: var(--icon-button-size-sm);\n width: var(--icon-button-size-sm);\n\n /* override input padding variable since it is used for Input Icon positioning */\n --wui-input-horizontal-padding: 4px;\n`;\n\nexport type InputClickToCopyProps = Omit<\n InputProps,\n 'autoSelect' | 'disabled' | 'rightIcon' | 'type' | 'value'\n> & {\n /**\n * When disabled, the copy action will not be triggered\n */\n disabled?: boolean;\n\n /**\n * Callback function that is called when the value is copied to the clipboard\n */\n onCopy?: (value: string) => void;\n\n /**\n * the value of what is copied\n */\n value: string;\n};\n\nconst COPY_SUCCESS_DURATION = 2000;\n\n/**\n * Provides a readonly input that copies the text to the clipboard when clicked.\n */\nexport const InputClickToCopy = forwardRef<HTMLInputElement, InputClickToCopyProps>(\n ({ value, onCopy, disabled = false, ...props }, ref): JSX.Element => {\n const [isCopied, setIsCopied] = useState(false);\n\n useEffect(() => {\n if (isCopied) {\n const timeout = setTimeout(() => {\n setIsCopied(false);\n }, COPY_SUCCESS_DURATION);\n\n return () => {\n clearTimeout(timeout);\n };\n }\n\n return () => null;\n }, [isCopied]);\n\n const handleClick = (event: MouseEvent) => {\n event.preventDefault();\n\n if (disabled) {\n return;\n }\n\n if (isFunction(props.onClick)) {\n props.onClick(event);\n }\n\n void copyToClipboard(value).then(() => {\n setIsCopied(true);\n if (isFunction(onCopy)) {\n onCopy(value);\n }\n return value;\n });\n };\n\n return (\n <Input\n aria-label=\"Click to Copy\"\n {...(props as unknown as InputProps)}\n ref={ref}\n disabled={disabled}\n readOnly={true}\n rightIcon={\n <StyledIconButton\n colorScheme={isCopied ? 'success' : 'inherit'}\n disabled={disabled}\n label=\"Copy to clipboard\"\n onClick={handleClick}\n variant=\"ghost\"\n >\n {isCopied ? <Icon type=\"checkmark-circle\" /> : <Icon type=\"save-as-copy\" />}\n </StyledIconButton>\n }\n value={value}\n />\n );\n },\n);\n\nInputClickToCopy.displayName = 'InputClickToCopy_UI';\n","import type { JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { forwardRef, useState } from 'react';\nimport { isFunction } from '@wistia/type-guards';\nimport type { InputProps } from '../Input/Input';\nimport { Input } from '../Input/Input';\nimport { Icon } from '../Icon';\nimport { IconButton } from '../IconButton';\n\nconst StyledIconButton = styled(IconButton)`\n /* override size for icon button since prop gets changed by Input */\n height: var(--icon-button-size-sm);\n width: var(--icon-button-size-sm);\n\n /* override input padding variable since it is used for Input Icon positioning */\n --wui-input-horizontal-padding: 4px;\n`;\n\nexport type InputPasswordProps = Omit<\n InputProps,\n 'leftIcon' | 'monospace' | 'rightIcon' | 'type'\n> & {\n /**\n * Set the disabled state of the input\n */\n disabled?: boolean;\n /**\n * Callback function that is called when the visibility state changes\n */\n onVisibilityToggle?: (isVisible: boolean) => void;\n};\n\n/**\n * A password input component with a toggle button to show or hide the password text.\n */\nexport const InputPassword = forwardRef<HTMLInputElement, InputPasswordProps>(\n ({ onVisibilityToggle, disabled = false, ...props }, ref): JSX.Element => {\n const [isVisible, setIsVisible] = useState(false);\n\n const handleClick = () => {\n const newVisibility = !isVisible;\n setIsVisible(newVisibility);\n\n if (isFunction(onVisibilityToggle)) {\n onVisibilityToggle(newVisibility);\n }\n };\n\n return (\n <Input\n {...props}\n ref={ref}\n disabled={disabled}\n rightIcon={\n <StyledIconButton\n disabled={disabled}\n label={isVisible ? 'Hide password' : 'Show password'}\n onClick={handleClick}\n tabIndex={disabled ? -1 : 0}\n variant=\"ghost\"\n >\n <Icon type={isVisible ? 'preview' : 'hide'} />\n </StyledIconButton>\n }\n type={isVisible ? 'text' : 'password'}\n />\n );\n },\n);\n\nInputPassword.displayName = 'InputPassword_UI';\n","import type { ComponentPropsWithoutRef, JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { KeyboardKeys } from './KeyboardKeyTypes';\n\nexport type KeyboardShortcutProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * @description If set to true, the keyboard shortcut will stretch the full width of its container.\n */\n fullWidth?: boolean;\n /**\n * @description The keys displayed.\n */\n keyboardKeys: KeyboardKeys | KeyboardKeys[];\n /**\n * @description A visual label for the keyboard shortcut.\n */\n label?: string;\n};\n\nconst StyledKeyboardShortcut = styled.div<{ $fullWidth: boolean }>`\n align-items: center;\n display: flex;\n gap: var(--wui-space-02);\n ${({ $fullWidth }) => $fullWidth && 'width: 100%; justify-content: space-between;'}\n`;\n\nconst StyledKey = styled.kbd`\n align-items: center;\n background: var(--wui-color-bg-surface-secondary);\n border-bottom: 1px solid var(--wui-color-border-secondary);\n border-radius: 4px;\n color: var(--wui-color-text);\n display: flex;\n font-family: InterVariable, sans-serif;\n\n /* Adds serif to uppercase \"I\" to distinguish it from \"l\": https://rsms.me/inter/glyphs/?g=I.1 */\n font-feature-settings: 'cv08' on;\n font-size: 10px;\n\n /* Adds a slash to the zero to distinguish it from the letter \"O\": https://rsms.me/inter/glyphs/?g=zero.tf.slash */\n\n /* Adds tabular numbers to ensure the width of the key is consistent */\n font-variant-numeric: slashed-zero tabular-nums;\n height: 20px;\n justify-content: center;\n line-height: 20px;\n min-width: 20px;\n padding: 0 var(--wui-space-01);\n`;\n\nconst Label = styled.span`\n color: var(--wui-color-text);\n font-size: 12px;\n`;\n\nconst KeysContainer = styled.div`\n display: flex;\n gap: var(--wui-space-01);\n`;\n\nconst keyToString = (key: KeyboardKeys): string => {\n switch (\n key // eslint-disable-line @typescript-eslint/switch-exhaustiveness-check\n ) {\n // Arrow Keys\n case 'ArrowDown':\n return '↓';\n case 'ArrowLeft':\n return '←';\n case 'ArrowRight':\n return '→';\n case 'ArrowUp':\n return '↑';\n // Modifier Keys\n case 'Alt':\n return 'Alt';\n case 'Cmd':\n case 'Meta':\n if (/Mac|iPhone|iPad/.test(window.navigator.userAgent)) {\n return '⌘';\n }\n if (window.navigator.userAgent.includes('Win')) {\n return '⊞';\n }\n return '^';\n case 'Ctrl':\n return 'Ctrl';\n case 'Option':\n return '⌥';\n case 'Shift':\n return '⇧';\n // Whitespace Keys\n case 'Enter':\n return '↵';\n case 'Space':\n return 'Space';\n case 'Tab':\n return 'Tab';\n case 'Backspace':\n return 'Del';\n case 'Esc':\n return 'Esc';\n default:\n return key.toUpperCase();\n }\n};\n\nexport const KeyboardShortcut = ({\n label,\n keyboardKeys,\n fullWidth = false,\n ...otherProps\n}: KeyboardShortcutProps): JSX.Element => (\n <StyledKeyboardShortcut\n $fullWidth={fullWidth}\n {...otherProps}\n >\n {isNotNil(label) && <Label>{label}</Label>}\n <KeysContainer>\n {(Array.isArray(keyboardKeys) ? keyboardKeys : [keyboardKeys]).map((keyboardKey, index) => (\n <StyledKey\n // in this instance keyboardKey might not be unique, so index is our only option\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n >\n {keyToString(keyboardKey)}\n </StyledKey>\n ))}\n </KeysContainer>\n </StyledKeyboardShortcut>\n);\n\nKeyboardShortcut.displayName = 'KeyboardShortcut_UI';\n","import type { ComponentPropsWithoutRef, ReactNode, JSX } from 'react';\nimport { isNotNil } from '@wistia/type-guards';\nimport { styled, css } from 'styled-components';\nimport { ListItem } from './ListItem';\n\nconst spacesStyle = css`\n overflow: hidden;\n padding-left: 0;\n vertical-align: bottom;\n\n li {\n display: block;\n float: left;\n\n &::after {\n content: ' ';\n padding-right: var(--wui-space-03);\n }\n\n &:last-child {\n &::after {\n content: '' !important;\n padding-right: 0;\n }\n }\n }\n`;\n\nconst commasStyle = css`\n ${spacesStyle};\n\n li {\n &::after {\n content: ',' !important;\n padding-right: var(--wui-space-01);\n }\n }\n`;\n\nconst slashesStyle = css`\n ${spacesStyle};\n\n li {\n &::after {\n content: '/' !important;\n padding-left: var(--wui-space-01);\n padding-right: var(--wui-space-01);\n }\n }\n`;\n\nconst breadcrumbsStyle = css`\n ${spacesStyle};\n\n li {\n &::after {\n content: '>' !important;\n padding-left: var(--wui-space-01);\n padding-right: var(--wui-space-01);\n }\n }\n`;\n\nconst unbulletedStyle = css`\n list-style: none;\n padding-left: 0;\n`;\nexport type ListComponentProps = {\n variant: string;\n};\n\nconst ListComponent = styled.ul<ListComponentProps>`\n list-style-position: outside;\n margin: 0 0 var(--wui-space-01);\n padding: 0 0 0 var(--wui-space-04);\n ${({ variant }) => variant === 'unbulleted' && unbulletedStyle};\n ${({ variant }) => variant === 'spaces' && spacesStyle};\n ${({ variant }) => variant === 'commas' && commasStyle};\n ${({ variant }) => variant === 'slashes' && slashesStyle};\n ${({ variant }) => variant === 'breadcrumbs' && breadcrumbsStyle};\n\n > li:last-child {\n margin-bottom: 0;\n }\n\n ul,\n ol {\n margin-top: var(--wui-space-01);\n }\n\n /* nested lists should not have bottom margins because their container <li> will have one */\n li ul,\n li ol {\n margin-bottom: 0;\n }\n`;\n\nconst renderListComponent = (listItems: ReactNode, variant: VariantType, { ...otherProps }) => {\n // always use a `ul` unless we're rendering the \"ordered\" variant\n const elementType = variant === 'ordered' ? 'ol' : 'ul';\n\n return (\n <ListComponent\n as={elementType}\n variant={variant}\n {...otherProps}\n >\n {listItems}\n </ListComponent>\n );\n};\n\nconst renderListFromArray = (\n listItems: ItemType[],\n variant: VariantType,\n otherProps: Record<string, unknown>,\n) => {\n let itemCount = 0;\n const items = listItems.map((listItem, i) => {\n const item = listItem;\n const nextItem = listItems[i + 1];\n const key = `item-${(itemCount += 1)}`; // hacky way to autogenerate keys\n\n // if the *next* item in the array is a nested list then we need to include\n // the next <ul/ol> as a child of the current <li>\n if (Array.isArray(nextItem)) {\n return (\n <ListItem key={key}>\n {item}\n {renderListFromArray(nextItem, variant, otherProps)}\n </ListItem>\n );\n }\n\n // if the current item is an array, do nothing because we rendered\n // these items previously\n if (Array.isArray(item)) {\n return null;\n }\n\n return <ListItem key={key}>{item}</ListItem>;\n });\n\n return renderListComponent(items, variant, otherProps);\n};\n\nexport type VariantType =\n | 'breadcrumbs'\n | 'bullets'\n | 'commas'\n | 'ordered'\n | 'slashes'\n | 'spaces'\n | 'unbulleted';\n\ntype ItemType = ItemType[] | string[] | string;\n\nexport type ListProps = ComponentPropsWithoutRef<'ul'> & {\n /**\n * Children should be wrapped in `<ListItem>`\n */\n children?: ReactNode;\n /**\n * As an alternative to passing children you can supply an array of strings that\n * will be rendered as child `<ListItems>`s. Note that all items will be of the same variant.\n */\n items?: ItemType[];\n /**\n * The kind of list to render\n */\n variant?: VariantType;\n};\n\nexport const List = ({\n children,\n items,\n variant,\n ...otherProps\n}: ListProps): JSX.Element | null => {\n const listVariant = variant ?? 'bullets';\n if (isNotNil(children)) {\n // children exist, but it's an empty array so do nothing\n if (Array.isArray(children) && !children.length) {\n return null;\n }\n\n return renderListComponent(children, listVariant, otherProps);\n }\n\n if (isNotNil(items)) {\n // items is empty so do nothing\n if (!items.length) {\n return null;\n }\n\n return renderListFromArray(items, listVariant, otherProps);\n }\n\n // neither children nor items provided, so render nothing\n return null;\n};\n\nList.displayName = 'List_UI';\n","import type { ReactNode, JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { isNil } from '@wistia/type-guards';\n\nconst ListItemComponent = styled.li`\n margin-bottom: var(--wui-space-02);\n`;\n\nexport type ListItemProps = {\n /**\n * Pass an arbitrary child node\n */\n children?: ReactNode;\n};\n\nexport const ListItem = ({ children }: ListItemProps): JSX.Element | null => {\n if (isNil(children)) {\n return null;\n }\n\n return <ListItemComponent>{children}</ListItemComponent>;\n};\n\nListItem.displayName = 'ListItem_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\n\ntype StyledMarkProps = {\n children: ReactNode;\n $colorScheme: ColorSchemeTypes;\n};\n\nconst StyledMark = styled.mark<StyledMarkProps>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n background-color: var(--wui-color-bg-surface-tertiary);\n color: var(--wui-color-text);\n border-radius: var(--wui-border-radius-01);\n padding-inline: 0.1em;\n margin-inline: -0.1em;\n`;\n\nexport type MarkProps = ComponentPropsWithoutRef<'div'> & {\n /** The content of the Mark component. */\n children: ReactNode;\n colorScheme?: ColorSchemeTypes;\n};\n\n/**\n * Defines text that should be marked or highlighted.\n */\nexport const Mark = ({ children, colorScheme = 'inherit', ...props }: MarkProps): JSX.Element => (\n <StyledMark\n $colorScheme={colorScheme}\n {...props}\n >\n {children}\n </StyledMark>\n);\n\nMark.displayName = 'Mark_UI';\n","import type { ForwardedRef, ReactNode, ComponentPropsWithoutRef, RefObject, JSX } from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { Root as DialogRoot, Portal as DialogPortal } from '@radix-ui/react-dialog';\nimport { isNotNil } from '@wistia/type-guards';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalContent } from './ModalContent';\nimport { ModalOverlay } from './ModalOverlay';\n\nexport const DEFAULT_MODAL_WIDTH = '532px';\n\nconst ModalBody = styled.div`\n flex-direction: column;\n display: flex;\n flex: 1 0 0;\n padding: 0 var(--wui-space-05);\n`;\n\nconst ModalScrollArea = styled.div`\n order: 2;\n max-height: 90vh;\n overflow-y: auto;\n`;\n\nconst ModalFooter = styled.footer`\n padding: 0 var(--wui-space-05);\n order: 3;\n`;\n\nexport type ModalProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * The content of the modal.\n */\n children: ReactNode;\n /**\n * Content that should be static at the bottom of the modal here (e.g. action buttons).\n */\n footer?: ReactNode;\n /**\n * The variant of the modal position\n */\n positionVariant?: 'centered' | 'fixed-top' | 'right-side-panel';\n /**\n * Ref to the element that should receive focus when the modal opens\n */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /**\n * Determines if the modal is currently open\n */\n isOpen: boolean;\n /**\n * Determines if the close button is visible (if false, `esc` will still close the Modal)\n */\n hideCloseButton?: boolean;\n /**\n * Determines if the title is visible\n */\n hideTitle?: boolean;\n /**\n * When the Modal is dismissed, this function will be called. You'll typically want to set the\n * state of `isOpen` to false here\n */\n onRequestClose?: () => void;\n /**\n * The title for the modal. If you want to hide the title, set the `hideTitle` prop to `true`\n * and the title will be hidden but still accessible to screen readers.\n */\n title: string;\n /**\n * The width of the modal when space allows. On smaller screens, the modal automatically adjusts to fit the available space.\n */\n width?: string;\n};\n\n/**\n * A Modal is a focused UI element that appears atop the main interface, requiring\n * user interaction or dismissal before returning to the underlying content.\n */\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(\n (\n {\n children,\n footer,\n hideCloseButton = false,\n hideTitle = false,\n initialFocusRef,\n isOpen,\n onRequestClose,\n positionVariant = 'centered',\n title,\n width = DEFAULT_MODAL_WIDTH,\n ...props\n },\n ref: ForwardedRef<HTMLDivElement>,\n ): JSX.Element => {\n return (\n <DialogRoot\n onOpenChange={(open) => {\n if (!open && isNotNil(onRequestClose)) {\n onRequestClose();\n }\n }}\n open={isOpen}\n >\n <DialogPortal>\n <ModalOverlay />\n <ModalContent\n // see: https://www.radix-ui.com/primitives/docs/components/dialog#description\n ref={ref}\n onOpenAutoFocus={(event) => {\n // this callback fires right before the Dialog tries to focus the first focusable element\n // if `initialFocusRef` is provided, override the default focusing behavior\n if (isNotNil(initialFocusRef) && initialFocusRef.current) {\n event.preventDefault();\n requestAnimationFrame(() => {\n initialFocusRef.current?.focus();\n });\n }\n }}\n positionVariant={positionVariant}\n width={width}\n {...props}\n >\n <ModalScrollArea>\n <ModalBody>{children}</ModalBody>\n </ModalScrollArea>\n {isNotNil(footer) ? <ModalFooter>{footer}</ModalFooter> : null}\n {/* hide entire header if both child elements are hidden to remove any space in DOM */}\n {hideCloseButton && hideTitle ? null : (\n <ModalHeader\n hideCloseButton={hideCloseButton}\n hideTitle={hideTitle}\n title={title}\n />\n )}\n </ModalContent>\n </DialogPortal>\n </DialogRoot>\n );\n },\n);\n\nModal.displayName = 'Modal_UI';\n","import type { JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { Title as DialogTitle } from '@radix-ui/react-dialog';\nimport { ModalCloseButton } from './ModalCloseButton';\nimport { ScreenReaderOnly } from '../ScreenReaderOnly';\n\n// when the Modal opens we want to focus the first focusable element; if this were in natural order,\n// the close button would be focused first. instead we move `ModalHeader` lower in the dom and use `order`\n// here to visually place it at the top\nconst Header = styled.header<{\n $hideTitle: boolean;\n $hideCloseButon: boolean;\n}>`\n display: flex;\n order: 1;\n padding: 0 var(--wui-space-05);\n padding-bottom: 0;\n gap: var(--wui-space-01);\n justify-content: ${({ $hideTitle }) =>\n $hideTitle ? 'flex-end' : 'space-between'}; /* ensure ModalCloseButton is right-aligned */\n\n /* DialogTitle creates an h2 element which inherits some margin */\n h2 {\n margin: 0;\n padding-right: ${({ $hideCloseButon }) => ($hideCloseButon ? '0' : 'var(--wui-space-03)')};\n }\n\n button {\n position: absolute;\n right: var(--wui-space-03);\n top: var(--wui-space-03);\n }\n`;\n\nconst Title = styled(DialogTitle)`\n font-family: var(--wui-typography-heading-2-family);\n line-height: var(--wui-typography-heading-2-line-height);\n font-size: var(--wui-typography-heading-2-size);\n font-weight: var(--wui-typography-heading-2-weight);\n`;\n\nexport const ModalHeader = ({\n title,\n hideTitle,\n hideCloseButton,\n}: {\n title: string;\n hideTitle: boolean;\n hideCloseButton: boolean;\n}): JSX.Element => {\n // if we're hiding the title, we want to use a visually hidden element to\n // maintain a11y and avoid console warnings from radix\n const TitleComponent = hideTitle ? (\n <ScreenReaderOnly>\n <Title>{title}</Title>\n </ScreenReaderOnly>\n ) : (\n <Title>{title}</Title>\n );\n\n return (\n <Header\n $hideCloseButon={hideCloseButton}\n $hideTitle={hideTitle}\n >\n {TitleComponent}\n {hideCloseButton ? null : <ModalCloseButton />}\n </Header>\n );\n};\n","import { styled } from 'styled-components';\nimport { Close as DialogClose } from '@radix-ui/react-dialog';\nimport { Icon } from '../Icon';\nimport { IconButton } from '../IconButton';\n\nconst CloseButton = styled(DialogClose)`\n align-self: start;\n`;\n\nexport const ModalCloseButton = () => {\n return (\n <CloseButton asChild={true}>\n <IconButton\n label=\"Dismiss modal\"\n size=\"sm\"\n variant=\"ghost\"\n >\n <Icon type=\"close\" />\n </IconButton>\n </CloseButton>\n );\n};\n","import type { DialogContentProps } from '@radix-ui/react-dialog';\nimport { forwardRef } from 'react';\nimport { styled, css, keyframes } from 'styled-components';\nimport { Content as DialogContent } from '@radix-ui/react-dialog';\nimport { DEFAULT_MODAL_WIDTH } from './Modal';\nimport { mq } from '../../helpers/mq';\nimport { useFocusRestore } from '../../private/hooks/useFocusRestore';\n\ntype StyledModalContentProps = {\n $width?: string | undefined;\n $positionVariant: 'centered' | 'fixed-top' | 'right-side-panel';\n};\n\nconst modalEnter = keyframes`\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(calc(var(--wui-modal-translate-y) + 24px));\n }\n\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(var(--wui-modal-translate-y));\n }\n`;\n\nconst modalExit = keyframes`\n from {\n opacity: 1;\n transform: translateX(-50%) translateY(var(--wui-modal-translate-y));\n }\n\n to {\n opacity: 0;\n transform: translateX(-50%) translateY(calc(var(--wui-modal-translate-y) + 24px));\n }\n`;\n\nconst centeredModalStyles = css`\n --wui-modal-screen-offset: var(--wui-space-05);\n --wui-modal-translate-y: -50%;\n\n height: auto;\n max-height: calc(100vh - var(--wui-modal-screen-offset) * 2);\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(var(--wui-modal-translate-y));\n transform-origin: left center;\n animation: ${modalEnter} var(--wui-motion-duration-04) var(--wui-motion-ease-out);\n\n &[data-state='closed'] {\n animation: ${modalExit} var(--wui-motion-duration-03) var(--wui-motion-ease-out);\n }\n`;\n\nconst fixedTopModalStyles = css`\n --wui-modal-screen-offset-top: 15vh;\n --wui-modal-screen-offset-bottom: 5vh;\n --wui-modal-translate-y: 0%;\n\n height: auto;\n max-height: calc(\n 100vh - var(--wui-modal-screen-offset-top) - var(--wui-modal-screen-offset-bottom)\n );\n top: var(--wui-modal-screen-offset-top);\n left: 50%;\n transform: translateX(-50%) translateY(var(--wui-modal-translate-y));\n transform-origin: left center;\n animation: ${modalEnter} var(--wui-motion-duration-04) var(--wui-motion-ease-out);\n\n &[data-state='closed'] {\n animation: ${modalExit} var(--wui-motion-duration-03) var(--wui-motion-ease-out);\n }\n`;\n\nconst slideInRight = keyframes`\n from {\n opacity: 0;\n transform: translateX(100%);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n`;\n\nconst slideOutRight = keyframes`\n from {\n opacity: 1;\n transform: translateX(0);\n }\n\n to {\n opacity: 0;\n transform: translateX(100%);\n }\n`;\n\nconst rightSidePanelModalStyles = css`\n --wui-modal-screen-offset: var(--wui-space-05);\n\n height: calc(100vh - var(--wui-modal-screen-offset) * 2);\n top: var(--wui-modal-screen-offset);\n right: var(--wui-modal-screen-offset);\n animation: ${slideInRight} var(--wui-motion-duration-05) var(--wui-motion-ease-out);\n transform-origin: right center;\n\n &[data-state='closed'] {\n animation: ${slideOutRight} var(--wui-motion-duration-03) var(--wui-motion-ease-in);\n }\n`;\n\nconst positionStyleMap = {\n centered: centeredModalStyles,\n 'fixed-top': fixedTopModalStyles,\n 'right-side-panel': rightSidePanelModalStyles,\n};\n\nconst StyledModalContent = styled(DialogContent)<StyledModalContentProps>`\n position: fixed;\n display: flex;\n flex-direction: column;\n gap: var(--wui-space-03);\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n z-index: var(--wui-zindex-modal);\n box-sizing: border-box;\n padding: var(--wui-space-05) 0;\n background-color: var(--wui-color-bg-app);\n\n ${mq.smAndUp} {\n position: fixed;\n top: unset;\n left: unset;\n width: calc(100vw - var(--wui-space-05) * 2);\n max-width: ${({ $width }) => $width ?? DEFAULT_MODAL_WIDTH};\n border-radius: var(--wui-border-radius-03);\n animation-duration: var(--wui-motion-duration-03);\n animation-timing-function: var(--wui-motion-ease-out);\n will-change: transform, opacity;\n ${({ $positionVariant }) => positionStyleMap[$positionVariant]}\n }\n`;\n\ntype ModalContentProps = DialogContentProps & {\n width?: string | undefined;\n positionVariant: 'centered' | 'fixed-top' | 'right-side-panel';\n};\n\n// eslint-disable-next-line react/display-name\nexport const ModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n ({ width, positionVariant = 'fixed-top', children, ...props }, ref) => {\n useFocusRestore();\n\n return (\n <StyledModalContent\n ref={ref}\n $positionVariant={positionVariant}\n $width={width}\n aria-describedby={undefined}\n {...props}\n >\n {children}\n </StyledModalContent>\n );\n },\n);\n","import { useRef, useEffect } from 'react';\nimport { isNotNil } from '@wistia/type-guards';\n\n// this hook will focus on a referenced element when the component using it mounts (or when the\n// ref changes) and then attempts to restore the previously focused element when the component\n// unmounts (or when the ref changes again)\nexport const useFocusRestore = () => {\n // for tracking the element that was focused before we mounted\n const previouslyFocusedRef = useRef<HTMLElement | null>(null);\n\n // save the currently focused element on initial mount\n useEffect(() => {\n previouslyFocusedRef.current = document.activeElement as HTMLElement | null;\n }, []);\n\n // on unmount, restore focus to the previously focused element\n useEffect(() => {\n return () => {\n if (isNotNil(previouslyFocusedRef.current)) {\n // give unmounting a moment before focusing\n setTimeout(() => {\n previouslyFocusedRef.current?.focus();\n }, 0);\n }\n };\n }, []);\n};\n","import { DialogOverlay } from '@radix-ui/react-dialog';\nimport { styled, keyframes } from 'styled-components';\n\nconst backdropShow = keyframes`\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n`;\n\nconst backdropHide = keyframes`\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n`;\n\nexport const ModalOverlay = styled(DialogOverlay)`\n animation: ${backdropShow} var(--wui-motion-duration-02);\n background: var(--wui-color-backdrop);\n inset: 0;\n position: fixed;\n z-index: var(--wui-zindex-backdrop);\n\n &[data-state='closed'] {\n animation: ${backdropHide} var(--wui-motion-duration-02);\n }\n`;\n","import type { JSX, ReactNode } from 'react';\nimport { Heading } from '../Heading';\nimport { Stack } from '../Stack';\n\ntype ModalCalloutsProps = {\n /**\n * The content to be displayed in the modal callout.\n */\n children?: ReactNode;\n};\n\nexport const ModalCallouts = ({ children }: ModalCalloutsProps) => {\n return (\n <Stack\n direction=\"horizontal\"\n gap=\"space-08\"\n >\n {children}\n </Stack>\n );\n};\n\nModalCallouts.displayName = 'ModalCallouts_UI';\n\ntype ModalCalloutProps = {\n title: string;\n image: JSX.Element;\n /**\n * The content to be displayed in the modal callout.\n */\n children?: ReactNode;\n};\n\nexport const ModalCallout = ({ title, image, children }: ModalCalloutProps) => {\n return (\n <Stack direction=\"vertical\">\n {image}\n <Heading variant=\"heading4\">{title}</Heading>\n {children}\n </Stack>\n );\n};\n\nModalCallout.displayName = 'ModalCallout_UI';\n","/* eslint-disable @typescript-eslint/no-magic-numbers */\nimport type { CSSProperties, JSX, ReactNode } from 'react';\nimport type { PopoverContentProps } from '@radix-ui/react-popover';\nimport { Root, Trigger, Portal, Content, Close } from '@radix-ui/react-popover';\nimport { styled, css } from 'styled-components';\nimport { IconButton } from '../IconButton';\nimport { Icon } from '../Icon';\nimport { getControlProps } from '../../private/helpers/getControls/getControlProps';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { PopoverArrow } from './PopoverArrow';\n\ntype StyledPopoverProps = {\n $unstyled?: boolean;\n $colorScheme: ColorSchemeTypes;\n};\n\nconst StyledContent = styled(Content)<StyledPopoverProps>`\n z-index: var(--wui-zindex-popover);\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n ${({ $unstyled }) =>\n !$unstyled &&\n css`\n border-radius: var(--wui-border-radius-02);\n padding: var(--wui-space-04);\n max-width: var(--wui-popover-max-width, 320px);\n max-height: var(--wui-popover-max-height, auto);\n background-color: var(--wui-color-bg-surface);\n box-shadow: var(--wui-elevation-01);\n border: 1px solid var(--wui-color-border);\n overflow: auto;\n `}\n\n [data-wui-popover-close] {\n position: absolute;\n top: var(--wui-space-02);\n right: var(--wui-space-02);\n }\n`;\n\ntype ControlledPopoverProps = {\n /**\n * Is the popover open.\n * Must be used with `onOpenChange`.\n */\n isOpen: boolean;\n\n /** When an attempt to toggle the popover is triggered.\n * Must be used with `isOpen`.\n */\n onOpenChange: (isOpen: boolean) => void;\n};\n\ntype UncontrolledPopoverProps = {\n isOpen?: never;\n onOpenChange?: never;\n};\n\ntype PopoverControlProps = ControlledPopoverProps | UncontrolledPopoverProps;\n\ntype ContentProps = Omit<\n PopoverContentProps,\n | 'alignOffset'\n | 'arrowPadding'\n | 'asChild'\n | 'collisionPadding'\n | 'hideWhenDetached'\n | 'sideOffset'\n | 'updatePositionStrategy'\n>;\n\nexport type PopoverProps = ContentProps &\n PopoverControlProps & {\n /**\n * The content of the popover\n */\n children: ReactNode;\n\n /**\n * The maximum width of the popover\n */\n maxWidth?: string;\n\n /**\n * The maximum height of the popover\n */\n maxHeight?: string;\n\n /**\n * Determines if the close button is visible (if false, `esc` will still close the Modal)\n */\n hideCloseButton?: boolean;\n\n /**\n * An interactive element. Most commonly a [Button](?path=/docs/components-button--docs) or [IconButton]([Button](?path=/docs/components-iconbutton--docs)).\n */\n trigger: JSX.Element;\n\n /**\n * If true, the popover will use the unstyled Content component instead of StyledContent\n */\n unstyled?: boolean;\n\n /**\n * If true, the popover will use a custom radix arrow to trigger\n */\n withArrow?: boolean;\n\n /**\n * Only works if `withArrow` is true, animates the hotspot attached to the arrow\n */\n isAnimated?: boolean;\n\n colorScheme?: ColorSchemeTypes;\n };\n\n/**\n * Displays rich content in a portal, triggered by a button.\n */\nexport const Popover = ({\n children,\n trigger,\n isOpen = false,\n hideCloseButton = false,\n maxWidth = '320px',\n maxHeight = 'auto',\n onOpenChange,\n unstyled = false,\n withArrow = false,\n isAnimated = false,\n colorScheme = 'inherit',\n ...props\n}: PopoverProps): JSX.Element => {\n const sideOffset = withArrow ? -24 : 8;\n const style = {\n '--wui-popover-max-width': maxWidth,\n '--wui-popover-max-height': maxHeight,\n } as CSSProperties;\n\n return (\n <Root {...getControlProps(isOpen, onOpenChange)}>\n <Trigger asChild={true}>{trigger}</Trigger>\n <Portal>\n <StyledContent\n $colorScheme={colorScheme}\n sideOffset={sideOffset}\n {...props}\n $unstyled={unstyled}\n style={style}\n >\n {!hideCloseButton && (\n <Close asChild={true}>\n <IconButton\n data-wui-popover-close={true}\n label=\"Close\"\n variant=\"ghost\"\n >\n <Icon type=\"close\" />\n </IconButton>\n </Close>\n )}\n {withArrow ? <PopoverArrow isAnimated={isAnimated} /> : null}\n <div>{children}</div>\n </StyledContent>\n </Portal>\n </Root>\n );\n};\n\nPopover.displayName = 'Popover_UI';\n","import { isNotNil } from '@wistia/type-guards';\n\nexport const getControlProps = (\n isOpen: boolean | undefined,\n onOpenChange: ((next: boolean) => void) | undefined,\n) => {\n return isNotNil(onOpenChange) && isNotNil(isOpen) ? { open: isOpen, onOpenChange } : {};\n};\n","import type { JSX } from 'react';\nimport { PopoverArrow as RadixPopoverArrow } from '@radix-ui/react-popover';\nimport { styled, css, keyframes } from 'styled-components';\n\nconst StyledPath = styled.path`\n fill: var(--wui-color-border-secondary);\n`;\n\nconst circleAnimation = keyframes`\n 0% {\n opacity: var(--wui-popover-arrow-circle-starting-opacity);\n }\n 100% {\n opacity: 0;\n }\n`;\n\nconst StyledCircle = styled.circle<{ $isAnimated: boolean }>`\n stroke: var(--wui-color-border-active);\n animation-duration: 2s;\n animation-iteration-count: infinite;\n animation-direction: alternate;\n animation-timing-function: ease-in-out;\n\n &[data-wui-popover-arrow-inner-circle] {\n --wui-popover-arrow-circle-starting-opacity: 0.36;\n\n opacity: var(--wui-popover-arrow-circle-starting-opacity);\n }\n\n &[data-wui-popover-arrow-outer-circle] {\n --wui-popover-arrow-circle-starting-opacity: 0.2;\n\n animation-direction: alternate-reverse;\n opacity: 0.11;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n ${({ $isAnimated }) =>\n $isAnimated &&\n css`\n animation-name: ${circleAnimation};\n `}\n }\n`;\n\nexport type PopoverArrowProps = {\n /**\n * Should the arrow be animated with ripple effect\n */\n isAnimated: boolean;\n};\n\nexport const PopoverArrow = ({ isAnimated }: PopoverArrowProps): JSX.Element => {\n return (\n <RadixPopoverArrow asChild={true}>\n <svg\n fill=\"none\"\n height=\"56\"\n viewBox=\"0 0 48 56\"\n width=\"48\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <StyledPath d=\"M24 26.6667C21.0545 26.6667 18.6667 29.0545 18.6667 32C18.6667 34.9455 21.0545 37.3333 24 37.3333C26.9455 37.3333 29.3333 34.9455 29.3333 32C29.3333 29.0545 26.9455 26.6667 24 26.6667ZM23 0V32H25V0H23Z\" />\n <StyledCircle\n $isAnimated={isAnimated}\n cx=\"24\"\n cy=\"32\"\n data-wui-popover-arrow-inner-circle={true}\n r=\"10\"\n strokeWidth=\"4\"\n />\n <StyledCircle\n $isAnimated={isAnimated}\n cx=\"24\"\n cy=\"32\"\n data-wui-popover-arrow-outer-circle={true}\n r=\"20\"\n strokeWidth=\"8\"\n />\n </svg>\n </RadixPopoverArrow>\n );\n};\n\nPopoverArrow.displayName = 'PopoverArrow_UI';\n","import type { ComponentPropsWithoutRef, JSX, ReactNode } from 'react';\nimport { styled } from 'styled-components';\nimport { Root as ProgressRoot, Indicator as ProgressIndicator } from '@radix-ui/react-progress';\nimport { isNotNil } from '@wistia/type-guards';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\n\nconst ProgressBarWrapper = styled.div`\n --progress-bar-height: 8px;\n\n display: flex;\n align-items: center;\n gap: var(--wui-space-02);\n`;\n\n// this function is necessary because there's a subpixel amount of indicator when progress is 0\nconst getTranslateValue = (progress: number, max: number): string => {\n if (progress === 0) {\n return 'translateX(-101%)'; // needs to be -101% to hide the subpixel amount\n }\n\n // convert progress to percentage relative to max\n const progressPercentage = (progress / max) * 100;\n return `translateX(-${100 - progressPercentage}%)`;\n};\n\nconst ProgressBarLabel = styled.div`\n display: flex;\n line-height: var(--wui-typography-label-3-line-height);\n font-size: var(--wui-typography-label-3-size);\n font-weight: var(--wui-typography-weight-label);\n color: var(--wui-color-text-secondary);\n flex-shrink: 0;\n`;\n\nconst StyledProgressIndicator = styled(ProgressIndicator)<{\n $max: number;\n $progress: number;\n $colorScheme: ColorSchemeTypes;\n}>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)}\n background-color: var(--wui-color-bg-fill);\n width: 100%;\n height: 100%;\n border-top-right-radius: var(--wui-border-radius-rounded);\n border-bottom-right-radius: var(--wui-border-radius-rounded);\n transition: transform 660ms cubic-bezier(0.65, 0, 0.35, 1);\n transform: ${({ $progress, $max }) => getTranslateValue($progress, $max)};\n`;\n\ntype StyledProgressBarProps = {\n children: ReactNode;\n $colorScheme: ColorSchemeTypes;\n};\n\nconst StyledProgressBar = styled(ProgressRoot)<StyledProgressBarProps>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)}\n position: relative;\n overflow: hidden;\n background-color: var(--wui-color-bg-surface-secondary);\n border-radius: var(--wui-border-radius-rounded);\n width: 100%;\n height: var(--progress-bar-height);\n\n /* Fix overflow clipping in Safari: https://gist.github.com/domske/b66047671c780a238b51c51ffde8d3a0 */\n transform: translateZ(0);\n`;\n\nexport type ProgressBarProps = ComponentPropsWithoutRef<'div'> & {\n /**\n * Current numeric level of the progress (0 -> max)\n */\n progress: number;\n /**\n * The maximum progress value\n */\n max?: number;\n /**\n * Sets the [color scheme](../?path=/docs/docs-color-schemes--docs)\n */\n colorScheme?: ColorSchemeTypes;\n /**\n * Slot for additional content to be rendered to the left of the progress bar\n */\n labelLeft?: ReactNode;\n /**\n * Slot for additional content to be rendered to the right of the progress bar\n */\n labelRight?: ReactNode;\n};\n\n/**\n * A progress component that visually represents the completion status of a task\n */\nexport const ProgressBar = ({\n progress,\n max = 100,\n children,\n labelLeft,\n labelRight,\n colorScheme = 'inherit',\n ...props\n}: ProgressBarProps): JSX.Element => {\n return (\n <ProgressBarWrapper>\n {isNotNil(labelLeft) ? <ProgressBarLabel>{labelLeft}</ProgressBarLabel> : null}\n <StyledProgressBar\n $colorScheme={colorScheme}\n max={max}\n value={progress}\n {...props}\n >\n <StyledProgressIndicator\n $colorScheme={colorScheme}\n $max={max}\n $progress={progress}\n />\n </StyledProgressBar>\n {isNotNil(labelRight) ? <ProgressBarLabel>{labelRight}</ProgressBarLabel> : null}\n </ProgressBarWrapper>\n );\n};\n\nProgressBar.displayName = 'ProgressBar_UI';\n","import { isNonEmptyString, isNotUndefined } from '@wistia/type-guards';\nimport type { ChangeEvent, ComponentPropsWithoutRef, JSX, ReactNode } from 'react';\nimport { forwardRef, useId } from 'react';\nimport { styled, css } from 'styled-components';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\nimport { FormControlLabel } from '../../private/components/FormControlLabel';\nimport { useRadioGroup } from '../FormGroup/RadioGroup';\n\nexport type RadioSizeType = 'lg' | 'md' | 'sm';\n\nconst sizeSmall = css`\n --wui-radio-size: 14px;\n --wui-radio-icon-size: 7px;\n`;\n\nconst sizeMedium = css`\n --wui-radio-size: 16px;\n --wui-radio-icon-size: 8px;\n`;\n\nconst sizeLarge = css`\n --wui-radio-size: 20px;\n --wui-radio-icon-size: 10px;\n`;\n\nconst getSizeCss = (size: RadioSizeType) => {\n if (size === 'sm') {\n return sizeSmall;\n }\n if (size === 'lg') {\n return sizeLarge;\n }\n return sizeMedium;\n};\n\nconst StyledRadioWrapper = styled.div<{ $disabled: boolean; $hideLabel: boolean }>`\n --wui-radio-background-color: var(--wui-color-bg-surface);\n --wui-radio-border-color: var(--wui-color-border-secondary);\n --wui-radio-icon-color: transparent;\n --wui-radio-outline-color: transparent;\n\n &:hover {\n --wui-radio-border-color: var(--wui-color-border-secondary-hover);\n }\n\n &:has(input:checked) {\n --wui-radio-border-color: var(--wui-color-focus-ring);\n --wui-radio-icon-color: var(--wui-color-focus-ring);\n }\n\n &:has(input:focus-visible) {\n --wui-radio-outline-color: var(--wui-color-focus-ring);\n }\n\n &:has(input:disabled) {\n --wui-radio-background-color: var(--wui-color-bg-surface-disabled);\n --wui-radio-border-color: var(--wui-color-border-secondary);\n\n &:has(input:checked) {\n --wui-radio-icon-color: var(--wui-color-icon-disabled);\n }\n }\n\n display: flex;\n margin: 0;\n\n /* TODO this solves a problem but potentially causes and a11y issue */\n user-select: none;\n`;\n\nconst StyledRadioInput = styled.div<{ $size: RadioSizeType }>`\n ${({ $size }) => getSizeCss($size)}\n width: var(--wui-radio-size);\n height: var(--wui-radio-size);\n min-width: var(--wui-radio-size);\n min-height: var(--wui-radio-size);\n background-color: var(--wui-radio-background-color);\n box-shadow: inset 0 0 0 1px var(--wui-radio-border-color);\n border-radius: 100%;\n position: relative;\n cursor: pointer;\n transition: box-shadow var(--wui-motion-duration-03) var(--wui-motion-ease);\n margin-top: calc(calc(1lh - var(--wui-radio-size)) / 2);\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n background-color: var(--wui-radio-icon-color);\n border-radius: 100%;\n transform: translate(-50%, -50%);\n }\n`;\n\nconst StyledHiddenRadioInput = styled.input`\n ${visuallyHiddenStyle}\n`;\n\nexport type RadioProps = Omit<\n ComponentPropsWithoutRef<'input'>,\n 'hideLabel' | 'label' | 'onChange' | 'size' | 'value'\n> & {\n /**\n * Indicates the state of the radio\n */\n checked?: boolean;\n /**\n * Disables input\n */\n disabled?: boolean;\n /**\n * Indicates that there is an error with the input\n */\n 'aria-invalid'?: boolean;\n /**\n * Provides an ID for the input\n */\n id?: string;\n /**\n * The label for the input\n */\n label: ReactNode;\n /**\n * The description for the radio\n */\n description?: ReactNode | undefined;\n /**\n * Should match the ID attribute of the radio.\n * Can be used to group together multiple radios\n */\n name?: string;\n /**\n * Callback function invoked when the value changes\n */\n onChange?: (event: ChangeEvent) => unknown;\n /**\n * Indicates if the input is required\n */\n required?: boolean;\n /**\n * A predefined size for the radio\n */\n size?: RadioSizeType;\n /**\n * The value attribute of the input\n */\n value?: string;\n /**\n * Whether to visually hide the label (it will still be available to screen readers)\n */\n hideLabel?: boolean;\n};\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n (\n {\n checked,\n disabled = false,\n id,\n label,\n description,\n name,\n onChange,\n size = 'md',\n value = 'false',\n required = false,\n hideLabel = false,\n ...props\n }: RadioProps,\n ref,\n ): JSX.Element => {\n const generatedId = useId();\n const computedId = isNonEmptyString(id) ? id : `wistia-ui-radio-${generatedId}`;\n const radioGroupContext = useRadioGroup();\n\n // use context values if provided, otherwise fall back to the props\n const contextName = radioGroupContext?.name;\n const contextOnChange = radioGroupContext?.onChange;\n const contextValue = radioGroupContext?.value;\n const radioName = name ?? contextName;\n const handleOnChange = onChange ?? contextOnChange;\n const isChecked =\n isNotUndefined(value) && isNotUndefined(contextValue) ? contextValue === value : checked;\n\n return (\n <StyledRadioWrapper\n $disabled={disabled}\n $hideLabel={hideLabel}\n aria-invalid={props['aria-invalid']}\n >\n <StyledHiddenRadioInput\n {...props}\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n id={computedId}\n name={radioName}\n onChange={handleOnChange}\n required={required}\n type=\"radio\"\n value={value}\n />\n <FormControlLabel\n controlSlot={<StyledRadioInput $size={size} />}\n description={description}\n disabled={disabled}\n hideLabel={hideLabel}\n htmlFor={computedId}\n label={label}\n />\n </StyledRadioWrapper>\n );\n },\n);\n\nRadio.displayName = 'Radio_UI';\n","import type { ChangeEvent, ComponentPropsWithoutRef, JSX, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { RadioCardRoot } from './RadioCardRoot';\nimport { RadioCardDefaultLayout } from './RadioCardDefaultLayout';\nimport type { RadioCardDefaultLayoutProps } from './RadioCardDefaultLayout';\nimport { RadioCardChildrenContainer } from './RadioCardChildrenContainer';\n\ntype BaseRadioCardProps = Omit<\n ComponentPropsWithoutRef<'input'>,\n 'checked' | 'disabled' | 'id' | 'name' | 'onChange' | 'value'\n> & {\n /**\n * Indicates the state of the radio\n */\n checked?: boolean;\n /**\n * Disables the card\n */\n disabled?: boolean;\n /**\n * Provides an ID for the input\n */\n id?: string;\n /**\n * The name attribute of the input\n */\n name?: string;\n /**\n * Callback function invoked when the value changes\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The value attribute of the input\n */\n value: string;\n};\n\ntype RadioCardWithChildren = BaseRadioCardProps & {\n /**\n * Custom content to display inside the card.\n */\n children: ReactNode;\n icon?: never;\n label?: never;\n description?: never;\n showIndicator?: never;\n};\n\ntype RadioCardWithDefaultLayout = BaseRadioCardProps &\n RadioCardDefaultLayoutProps & {\n children?: never;\n };\n\nexport type RadioCardProps = RadioCardWithChildren | RadioCardWithDefaultLayout;\n\nexport const RadioCard = forwardRef<HTMLInputElement, RadioCardProps>(\n ({ icon, label, description, showIndicator, children, ...rootProps }, ref): JSX.Element => {\n return (\n <RadioCardRoot\n ref={ref}\n padding={children != null ? 'space-00' : 'space-04'}\n {...rootProps}\n >\n {children != null ? (\n <RadioCardChildrenContainer data-wui-radio-card-image=\"cover\">\n {children}\n </RadioCardChildrenContainer>\n ) : (\n <RadioCardDefaultLayout\n description={description}\n icon={icon}\n label={label}\n showIndicator={showIndicator}\n />\n )}\n </RadioCardRoot>\n );\n },\n);\n\nRadioCard.displayName = 'RadioCard_UI';\n","import type { ChangeEvent, ComponentPropsWithoutRef, ReactNode } from 'react';\nimport { forwardRef, useId } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isNonEmptyString, isNotUndefined } from '@wistia/type-guards';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\nimport { useRadioGroup } from '../FormGroup/RadioGroup';\nimport type { Spacings } from '../../css/designTokens/spacing';\n\nconst checkedStyles = css`\n --wui-radio-card-border-color: var(--wui-color-focus-ring);\n --wui-color-icon: var(--wui-color-icon-selected);\n --wui-radio-card-background-color: var(--wui-color-bg-surface-info);\n --wui-color-text: var(--wui-color-text-info);\n --wui-color-text-secondary: var(--wui-color-text-info);\n`;\n\nconst disabledStyles = css`\n --wui-radio-card-border-color: var(--wui-color-border-disabled);\n --wui-radio-card-background-color: var(--wui-color-bg-surface-disabled);\n --wui-radio-card-cursor: not-allowed;\n --wui-color-icon: var(--wui-color-icon-disabled);\n --wui-color-text: var(--wui-color-text-disabled);\n --wui-color-text-secondary: var(--wui-color-text-disabled);\n`;\n\nconst focusStyles = css`\n outline: 2px solid var(--wui-color-focus-ring);\n`;\n\nconst imageCoverStyles = css`\n --wui-radio-card-image-inset: 0px;\n --wui-radio-card-border-width: 0px;\n --wui-inset-shadow-width: 1px;\n --wui-radio-card-border-color: rgb(0 0 0 / 25%);\n\n overflow: hidden;\n\n &:has(input:checked) {\n --wui-radio-card-border-color: var(--wui-color-focus-ring);\n --wui-radio-card-image-inset: 2px;\n --wui-inset-shadow-width: 2px;\n }\n\n &:hover:not(:has(input:disabled, input:checked)) {\n --wui-radio-card-border-color: rgb(0 0 0 / 50%);\n }\n\n &::after {\n content: '';\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n border-radius: var(--wui-radio-card-border-radius);\n box-shadow:\n inset 0 0 0 var(--wui-inset-shadow-width) var(--wui-radio-card-border-color),\n inset 0 0 0 calc(var(--wui-radio-card-image-inset) * 2) var(--wui-radio-card-background-color);\n transition: all var(--wui-motion-duration-02) var(--wui-motion-ease);\n }\n`;\n\ntype StyledCardProps = {\n $aspectRatio: string;\n $padding: Spacings;\n};\n\nexport const StyledCard = styled.label<StyledCardProps>`\n --wui-radio-card-border-color: var(--wui-color-border-secondary);\n --wui-radio-card-background-color: var(--wui-color-bg-surface);\n --wui-radio-card-cursor: pointer;\n --wui-radio-card-border-width: 1px;\n --wui-radio-card-border-radius: var(--wui-border-radius-02);\n\n position: relative;\n display: inline-flex;\n padding: ${({ $padding }) => `var(--wui-${$padding})`};\n aspect-ratio: ${({ $aspectRatio }) => $aspectRatio};\n border: var(--wui-radio-card-border-width) solid var(--wui-radio-card-border-color);\n border-radius: var(--wui-radio-card-border-radius);\n background-color: var(--wui-radio-card-background-color);\n cursor: var(--wui-radio-card-cursor);\n overflow: hidden;\n transition: all var(--wui-motion-duration-03) var(--wui-motion-ease);\n\n svg {\n transition: all var(--wui-motion-duration-03) var(--wui-motion-ease);\n }\n\n &:hover {\n --wui-radio-card-border-color: var(--wui-color-border-secondary-hover);\n }\n\n &:active {\n --wui-radio-card-border-color: var(--wui-color-border-secondary-active);\n }\n\n &:has(input:checked) {\n ${checkedStyles}\n }\n\n &:has(input:disabled) {\n ${disabledStyles}\n }\n\n &:has(input:focus-visible) {\n ${focusStyles}\n }\n\n &:has([data-wui-radio-card-image]) {\n &:has(input:disabled) {\n [data-wui-radio-card-image] {\n filter: grayscale(100%);\n }\n }\n\n &:has([data-wui-radio-card-image='cover']) {\n ${imageCoverStyles}\n }\n }\n`;\n\nconst StyledHiddenInput = styled.input`\n ${visuallyHiddenStyle}\n`;\n\nexport type RadioCardRootProps = Omit<ComponentPropsWithoutRef<'input'>, 'onChange' | 'value'> & {\n /**\n * Indicates the state of the radio\n */\n checked?: boolean;\n /**\n * The content of the card\n */\n children: ReactNode;\n /**\n * Disables the card\n */\n disabled?: boolean;\n /**\n * Provides an ID for the input\n */\n id?: string;\n /**\n * The name attribute of the input\n */\n name?: string;\n /**\n * Callback function invoked when the value changes\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The value attribute of the input\n */\n value: string;\n /**\n * The aspect ratio of the card\n */\n aspectRatio?: string | undefined;\n /**\n * The padding of the card\n */\n padding?: Spacings;\n};\n\nexport const RadioCardRoot = forwardRef<HTMLInputElement, RadioCardRootProps>(\n (\n {\n children,\n disabled = false,\n id,\n name,\n onChange,\n value,\n aspectRatio = 'initial',\n padding = 'space-04',\n checked,\n ...props\n },\n ref,\n ) => {\n const generatedId = useId();\n const computedId = isNonEmptyString(id) ? id : `wistia-ui-radio-${generatedId}`;\n const radioGroupContext = useRadioGroup();\n\n // use context values if provided, otherwise fall back to the props\n const contextName = radioGroupContext?.name;\n const contextOnChange = radioGroupContext?.onChange;\n const contextValue = radioGroupContext?.value;\n const radioName = name ?? contextName;\n const handleOnChange = onChange ?? contextOnChange;\n const isChecked =\n isNotUndefined(value) && isNotUndefined(contextValue) ? contextValue === value : checked;\n\n return (\n <StyledCard\n $aspectRatio={aspectRatio}\n $padding={padding}\n htmlFor={computedId}\n >\n <StyledHiddenInput\n {...props}\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n id={computedId}\n name={radioName}\n onChange={handleOnChange}\n type=\"radio\"\n value={value}\n />\n {children}\n </StyledCard>\n );\n },\n);\n\nRadioCardRoot.displayName = 'RadioCardRoot_UI';\n","import type { JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport { Text } from '../Text';\nimport { Stack } from '../Stack';\nimport { RadioCardIndicator } from './RadioCardIndicator';\n\nconst StyledCardContent = styled.div`\n display: grid;\n grid-auto-flow: column;\n gap: var(--wui-space-02);\n`;\n\nconst StyledCardIcon = styled.div`\n display: contents;\n`;\n\nconst StyledIndicatorContainer = styled.div<{ $hasIcon: boolean }>`\n height: ${({ $hasIcon }) => ($hasIcon ? '24px' : '16px')};\n display: flex;\n align-items: center;\n`;\n\nexport type RadioCardDefaultLayoutProps = {\n /**\n * The icon to display\n */\n icon?: JSX.Element | undefined;\n /**\n * The main label text for the card.\n *\n * *Note: `label` only allows for a string as any interactive elements inside of a RadioCard would be an accessibility violation.*\n */\n label?: string | undefined;\n /**\n * The description text for the card\n *\n * *Note: `description` only allows for a string as any interactive elements inside of a RadioCard would be an accessibility violation.*\n */\n description?: string | undefined;\n /**\n * Whether to show the indicator\n */\n showIndicator?: boolean | undefined;\n};\n\nexport const RadioCardDefaultLayout = ({\n icon,\n label,\n description,\n showIndicator = true,\n}: RadioCardDefaultLayoutProps): JSX.Element => {\n return (\n <StyledCardContent>\n {showIndicator ? (\n <StyledIndicatorContainer $hasIcon={isNotNil(icon)}>\n <RadioCardIndicator data-testid=\"wui-radio-card-indicator\" />\n </StyledIndicatorContainer>\n ) : null}\n <Stack gap=\"space-02\">\n {isNotNil(icon) && <StyledCardIcon data-wui-radio-card-icon={true}>{icon}</StyledCardIcon>}\n <Stack\n gap=\"space-01\"\n style={isNotNil(icon) ? { paddingLeft: 2 } : undefined}\n >\n {isNotNil(label) && (\n <Text variant=\"label3\">\n <strong>{label}</strong>\n </Text>\n )}\n {isNotNil(description) && (\n <Text\n prominence=\"secondary\"\n variant=\"body3\"\n >\n {description}\n </Text>\n )}\n </Stack>\n </Stack>\n </StyledCardContent>\n );\n};\n\nRadioCardDefaultLayout.displayName = 'RadioCardDefaultLayout_UI';\n","import { styled } from 'styled-components';\nimport { StyledCard } from './RadioCardRoot';\n\nexport const RadioCardIndicator = styled.div`\n --wui-radio-card-indicator-size: 14px;\n --wui-radio-card-indicator-background-color: var(--wui-color-bg-surface);\n --wui-radio-card-indicator-fill-color: var(--wui-color-bg-fill);\n\n /* TODO: figure out radio / checkbox / switch colors */\n --wui-radio-card-indicator-border-color: var(--wui-color-border-secondary-active);\n\n width: var(--wui-radio-card-indicator-size);\n height: var(--wui-radio-card-indicator-size);\n min-width: var(--wui-radio-card-indicator-size);\n min-height: var(--wui-radio-card-indicator-size);\n background-color: var(--wui-radio-card-indicator-background-color);\n box-shadow: inset 0 0 0 1px var(--wui-radio-card-indicator-border-color);\n border-radius: 100%;\n position: relative;\n cursor: pointer;\n transition: border-color var(--wui-motion-duration-03) var(--wui-motion-ease);\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n width: 0;\n height: 0;\n background-color: var(--wui-radio-card-indicator-fill-color);\n border-radius: 100%;\n transform: translate(-50%, -50%);\n }\n\n ${StyledCard}:has(input:checked) & {\n --wui-radio-card-indicator-border-color: var(--wui-color-focus-ring);\n --wui-radio-card-indicator-fill-color: var(--wui-color-focus-ring);\n\n &::after {\n width: calc(var(--wui-radio-card-indicator-size) / 2);\n height: calc(var(--wui-radio-card-indicator-size) / 2);\n }\n }\n\n ${StyledCard}:has(input:disabled) & {\n --wui-radio-card-indicator-border-color: var(--wui-color-border-secondary);\n --wui-radio-card-indicator-background-color: var(--wui-color-bg-surface-disabled);\n }\n`;\n\nRadioCardIndicator.displayName = 'RadioCardIndicator_UI';\n","import { styled } from 'styled-components';\n\nexport const RadioCardChildrenContainer = styled.div`\n flex: 1 1 auto;\n`;\n","import type { ChangeEvent, ComponentPropsWithoutRef, JSX } from 'react';\nimport { forwardRef } from 'react';\nimport { RadioCardRoot } from './RadioCardRoot';\nimport { Image } from '../Image';\nimport type { Spacings } from '../../css/designTokens/spacing';\n\nexport type RadioCardImageProps = Omit<ComponentPropsWithoutRef<'input'>, 'onChange'> & {\n /**\n * Indicates the state of the radio\n */\n checked?: boolean;\n /**\n * Disables the card\n */\n disabled?: boolean;\n /**\n * Provides an ID for the input\n */\n id?: string;\n /**\n * The name attribute of the input\n */\n name?: string;\n /**\n * Callback function invoked when the value changes\n */\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * The value attribute of the input\n */\n value: string;\n /**\n * The label text for the radio card\n */\n label: string;\n /**\n * The source URL for the image to display\n */\n imageSrc: string;\n /**\n * The aspect ratio of the card\n */\n aspectRatio?: string;\n\n /**\n * The padding of the card\n */\n padding?: Spacings;\n};\n\nexport const RadioCardImage = forwardRef<HTMLInputElement, RadioCardImageProps>(\n ({ label, imageSrc, aspectRatio, padding = 'space-04', ...rootProps }, ref): JSX.Element => {\n return (\n <RadioCardRoot\n ref={ref}\n {...rootProps}\n aspectRatio={aspectRatio}\n padding={padding}\n >\n <Image\n alt={label}\n data-wui-radio-card-image={padding === 'space-00' ? 'cover' : 'contain'}\n fill={true}\n fit={padding === 'space-00' ? 'cover' : 'contain'}\n src={imageSrc}\n />\n </RadioCardRoot>\n );\n },\n);\n\nRadioCardImage.displayName = 'RadioCardImage_UI';\n","import type { HTMLAttributes, JSX, UIEventHandler } from 'react';\nimport { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { styled } from 'styled-components';\nimport { throttle } from 'throttle-debounce';\nimport { mergeRefs } from '../../helpers/mergeRefs';\n\nconst SHADOW_SIZE_PX = 8;\n\nconst Container = styled.div`\n overflow: hidden;\n position: relative;\n flex: 1 1 auto;\n`;\n\nconst ScrollContainer = styled.div<{ $locked?: boolean }>`\n overflow: ${({ $locked }) => ($locked ? 'hidden' : 'auto')};\n height: 100%;\n width: 100%;\n`;\n\nconst Shadow = styled.div<{ $isVisible: boolean }>`\n pointer-events: none;\n position: absolute;\n transition: box-shadow var(--wui-motion-duration-04) var(--wui-motion-ease);\n box-shadow: ${({ $isVisible }) =>\n $isVisible\n ? `0 0 ${SHADOW_SIZE_PX}px ${SHADOW_SIZE_PX}px var(--wui-color-drop-shadow)`\n : 'none'};\n z-index: 1;\n`;\n\nconst ShadowAtTop = styled(Shadow)`\n transform: translateY(-${SHADOW_SIZE_PX}px);\n height: 0;\n left: 0;\n right: 0;\n top: 0;\n`;\n\nconst ShadowAtBottom = styled(Shadow)`\n transform: translateY(${SHADOW_SIZE_PX}px);\n bottom: 0;\n height: 0;\n left: 0;\n right: 0;\n`;\n\nconst ShadowAtLeft = styled(Shadow)`\n transform: translateX(-${SHADOW_SIZE_PX}px);\n bottom: 0;\n left: 0;\n top: 0;\n width: 0;\n`;\n\nconst ShadowAtRight = styled(Shadow)`\n transform: translateX(${SHADOW_SIZE_PX}px);\n bottom: 0;\n right: 0;\n top: 0;\n width: 0;\n`;\n\ntype ScrollAreaProps = HTMLAttributes<HTMLDivElement> & {\n /**\n * When true, disables scrolling. Useful to temporarily prevent scrolling,\n * like when drag-and-dropping an item from inside to outside of the scroll\n * area.\n */\n locked?: boolean;\n};\n\n/**\n * ScrollArea is a simple scrollable container with shadow effects to indicate\n * scrollability.\n */\nexport const ScrollArea = forwardRef<HTMLDivElement, ScrollAreaProps>(\n ({ children, onScroll, style, locked = false, ...props }, forwardedRef): JSX.Element => {\n const scrollContainerRefInternal = useRef<HTMLDivElement>(null);\n const [shadowState, setShadowState] = useState({\n canScrollUp: false,\n canScrollLeft: false,\n canScrollDown: false,\n canScrollRight: false,\n });\n\n const scrollContainerRef = mergeRefs([scrollContainerRefInternal, forwardedRef]);\n\n const updateShadows = useCallback(() => {\n const scrollContainer = scrollContainerRefInternal.current;\n if (!scrollContainer) {\n return;\n }\n\n setShadowState({\n canScrollUp: scrollContainer.scrollTop > 0,\n canScrollLeft: scrollContainer.scrollLeft > 0,\n canScrollDown:\n scrollContainer.scrollTop + scrollContainer.clientHeight < scrollContainer.scrollHeight,\n canScrollRight:\n scrollContainer.scrollLeft + scrollContainer.clientWidth < scrollContainer.scrollWidth,\n });\n }, []);\n\n const throttledUpdateShadows = useMemo(() => throttle(100, updateShadows), [updateShadows]);\n\n const onScrollScrollContainer = useCallback<UIEventHandler<HTMLDivElement>>(\n (event) => {\n onScroll?.(event);\n\n throttledUpdateShadows();\n },\n [onScroll, throttledUpdateShadows],\n );\n\n useEffect(() => {\n updateShadows();\n }, [updateShadows]);\n\n return (\n <Container style={style}>\n <ShadowAtTop $isVisible={shadowState.canScrollUp} />\n <ShadowAtBottom $isVisible={shadowState.canScrollDown} />\n <ShadowAtLeft $isVisible={shadowState.canScrollLeft} />\n <ShadowAtRight $isVisible={shadowState.canScrollRight} />\n <ScrollContainer\n ref={scrollContainerRef}\n $locked={locked}\n onScroll={onScrollScrollContainer}\n {...props}\n >\n {children}\n </ScrollContainer>\n </Container>\n );\n },\n);\n\nScrollArea.displayName = 'ScrollArea_UI';\n","import type { JSX, ReactNode, ForwardedRef, ForwardRefExoticComponent, RefAttributes } from 'react';\nimport type { ToggleGroupSingleProps } from '@radix-ui/react-toggle-group';\nimport { forwardRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { Root as ToggleGroupRoot } from '@radix-ui/react-toggle-group';\nimport { isNil } from '@wistia/type-guards';\nimport { SelectedItemStyleProvider } from './useSelectedItemStyle';\nimport { SelectedItemIndicator } from './SelectedItemIndicator';\nimport { SegmentedControlValueProvider } from './useSegmentedControlValue';\n\ntype SegmentedControlStylesProps = {\n $fullWidth?: boolean | undefined;\n};\n\ntype StyledSegmentedControlProps = SegmentedControlStylesProps & ToggleGroupSingleProps;\n\nexport const segmentedControlStyles = css<SegmentedControlStylesProps>`\n display: inline-flex;\n background-color: var(--wui-color-bg-surface-secondary);\n border-radius: var(--wui-border-radius-rounded);\n gap: var(--wui-space-01);\n isolation: isolate;\n overflow: hidden;\n padding: 2px;\n position: relative;\n width: ${({ $fullWidth }) => ($fullWidth ? '100%' : 'auto')};\n`;\n\nconst StyledSegmentedControl = styled(ToggleGroupRoot)<StyledSegmentedControlProps>`\n ${segmentedControlStyles}\n`;\n\nexport type SegmentedControlProps = Omit<ToggleGroupSingleProps, 'type'> & {\n /**\n * `SegmentedControlItem`s that will be rendered in grouping\n */\n children?: ReactNode;\n /**\n * Set the entire `SegmentedControl` to be disabled\n */\n disabled?: boolean | undefined;\n /**\n * Force `SegmentedControl` to fill the width of it's container\n */\n fullWidth?: boolean | undefined;\n /**\n * Callback function invoked when the `SegmentedControlItem` value changes\n */\n onSelectedValueChange: (value: string) => void;\n /**\n * The value of the `SegmentedControlItem` which should be selected\n */\n selectedValue: string;\n};\n\n/**\n * Provides a horizontal set of segments for switching between different values\n */\nexport const SegmentedControl: ForwardRefExoticComponent<\n RefAttributes<HTMLDivElement> & SegmentedControlProps\n> = forwardRef(\n (\n {\n children,\n disabled = false,\n fullWidth = false,\n selectedValue,\n onSelectedValueChange,\n ...props\n }: SegmentedControlProps,\n ref: ForwardedRef<HTMLDivElement>,\n ): JSX.Element | null => {\n if (isNil(children)) {\n return null;\n }\n\n return (\n <StyledSegmentedControl\n ref={ref}\n $fullWidth={fullWidth}\n disabled={disabled}\n loop={true}\n onValueChange={onSelectedValueChange}\n rovingFocus={true}\n type=\"single\"\n value={selectedValue}\n {...props}\n >\n <SegmentedControlValueProvider value={selectedValue}>\n <SelectedItemStyleProvider>\n {children}\n <SelectedItemIndicator />\n </SelectedItemStyleProvider>\n </SegmentedControlValueProvider>\n </StyledSegmentedControl>\n );\n },\n);\n\nSegmentedControl.displayName = 'SegmentedControl_UI';\n","import { createContext, useContext, useMemo, useState } from 'react';\nimport type { JSX, PropsWithChildren, Dispatch, SetStateAction } from 'react';\nimport type { CSSProperties } from 'styled-components';\n\ntype SelectedItemMeasurements = {\n offsetHeight: number;\n offsetLeft: number;\n offsetWidth: number;\n};\n\ntype SelectedItemStyleContextValue = {\n setSelectedItemMeasurements: Dispatch<SetStateAction<SelectedItemMeasurements | null>>;\n selectedItemIndicatorStyle: Pick<CSSProperties, 'height' | 'transform' | 'width'> | undefined;\n};\n\nconst SelectedItemStyleContext = createContext<SelectedItemStyleContextValue | null>(null);\n\ntype SelectedItemStyleProviderProps = PropsWithChildren;\n\nexport const SelectedItemStyleProvider = ({\n children,\n}: SelectedItemStyleProviderProps): JSX.Element => {\n const [selectedItemMeasurements, setSelectedItemMeasurements] =\n useState<SelectedItemMeasurements | null>(null);\n\n const selectedItemIndicatorStyle = useMemo(\n () =>\n selectedItemMeasurements != null\n ? {\n height: `${selectedItemMeasurements.offsetHeight}px`,\n transform: `translateX(${selectedItemMeasurements.offsetLeft}px) translateY(-50%)`,\n width: `${selectedItemMeasurements.offsetWidth}px`,\n }\n : undefined,\n [selectedItemMeasurements],\n );\n\n const contextValue = useMemo(\n () => ({\n setSelectedItemMeasurements,\n selectedItemIndicatorStyle,\n }),\n [selectedItemIndicatorStyle],\n );\n\n return (\n <SelectedItemStyleContext.Provider value={contextValue}>\n {children}\n </SelectedItemStyleContext.Provider>\n );\n};\n\nexport const useSelectedItemStyle = (): SelectedItemStyleContextValue => {\n const context = useContext(SelectedItemStyleContext);\n if (context === null) {\n throw new Error('useSelectedItemStyle must be used within a SelectedItemStyleProvider');\n }\n return context;\n};\n","import type { JSX } from 'react';\nimport { styled, css } from 'styled-components';\nimport { isUndefined } from '@wistia/type-guards';\nimport { useSegmentedControlValue } from './useSegmentedControlValue';\nimport { useSelectedItemStyle } from './useSelectedItemStyle';\n\nexport const selectedItemIndicatorStyles = css`\n background-color: var(--wui-color-bg-fill-white);\n border-radius: var(--wui-border-radius-rounded);\n box-shadow: var(--wui-elevation-01);\n`;\n\nexport const SelectedItemIndicatorDiv = styled.div`\n ${selectedItemIndicatorStyles}\n left: 0;\n position: absolute;\n top: 50%;\n transition:\n transform var(--wui-motion-duration-02) var(--wui-motion-ease-out),\n width var(--wui-motion-duration-02) var(--wui-motion-ease-out);\n z-index: var(--wui-zindex-under);\n`;\n\nexport const SelectedItemIndicator = (): JSX.Element | null => {\n const selectedValue = useSegmentedControlValue();\n const { selectedItemIndicatorStyle } = useSelectedItemStyle();\n\n if (!selectedValue || isUndefined(selectedItemIndicatorStyle)) {\n return null;\n }\n\n return (\n <SelectedItemIndicatorDiv\n data-wui-selected-item-indicator={true}\n style={selectedItemIndicatorStyle}\n />\n );\n};\n","import { createContext, useContext } from 'react';\n\ntype SegmentedControlValueContextValue = string;\n\nconst SegmentedControlValueContext = createContext<SegmentedControlValueContextValue | null>(null);\n\nexport const SegmentedControlValueProvider = SegmentedControlValueContext.Provider;\n\nexport const useSegmentedControlValue = (): SegmentedControlValueContextValue => {\n const context = useContext(SegmentedControlValueContext);\n if (context === null) {\n throw new Error('useSegmentedControlValue must be used within a SegmentedControlValueProvider');\n }\n return context;\n};\n","import { forwardRef, useEffect, useRef } from 'react';\nimport type { JSX, MouseEvent, ReactNode } from 'react';\nimport type { ToggleGroupItemProps } from '@radix-ui/react-toggle-group';\nimport { styled, css } from 'styled-components';\nimport { Item as ToggleGroupItem } from '@radix-ui/react-toggle-group';\nimport { isNotNil } from '@wistia/type-guards';\nimport { useSegmentedControlValue } from './useSegmentedControlValue';\nimport { mergeRefs } from '../../helpers/mergeRefs';\nimport { useSelectedItemStyle } from './useSelectedItemStyle';\nimport { selectedItemIndicatorStyles } from './SelectedItemIndicator';\n\ntype StyledSegmentedControlItemProps = ToggleGroupItemProps & {\n $hasLabel?: boolean;\n};\n\nexport const segmentedControlItemStyles = css<StyledSegmentedControlItemProps>`\n all: unset; /* ToggleGroupItem is a button element */\n align-items: center;\n border-radius: var(--wui-border-radius-rounded);\n color: var(--wui-color-text-secondary);\n cursor: pointer;\n display: flex;\n gap: 2px;\n flex-grow: 1;\n flex-shrink: 1;\n font-size: var(--wui-typography-label-3-size);\n font-weight: var(--wui-typography-label-3-weight);\n line-height: var(--wui-typography-label-3-line-height);\n justify-content: center;\n padding: 6px ${({ $hasLabel }) => ($hasLabel ? '12px' : '6px')};\n user-select: none;\n transition: background-color var(--wui-motion-duration-01) var(--wui-motion-ease);\n\n /* Icon component */\n svg {\n height: 16px;\n width: 16px;\n flex: 0 0 16px;\n\n /* add right margin if there's a label and an icon */\n ${({ $hasLabel }) => ($hasLabel ? 'margin-right: var(--wui-space-01)' : '')}\n }\n\n &:focus-visible {\n outline: 2px solid var(--wui-color-focus-ring);\n }\n\n /* note: react-toggle-group uses 'aria-selected' and react-tabs uses \"active\" */\n\n /* we can't style off of 'data-state' since that gets overridden when wrapped in a Tooltip */\n &:hover:not([aria-checked='true'], [aria-selected='true']) {\n background-color: var(--wui-color-bg-surface-secondary-hover);\n }\n\n &[aria-checked='true'],\n &[aria-selected='true'] {\n color: var(--wui-color-text-selected);\n cursor: default;\n transition: none;\n\n svg path {\n fill: var(--wui-color-icon-selected);\n }\n\n /* This mkaes sure that the active styles appear on the initial value when the component renders */\n &:not(:has(~ [data-wui-selected-item-indicator])) {\n ${selectedItemIndicatorStyles}\n }\n }\n\n &[data-disabled] {\n cursor: not-allowed;\n color: var(--wui-color-text-disabled);\n\n svg path {\n fill: var(--wui-color-icon-disabled);\n }\n\n &:hover {\n background-color: inherit;\n }\n }\n`;\n\nconst StyledSegmentedControlItem = styled(ToggleGroupItem)<StyledSegmentedControlItemProps>`\n ${segmentedControlItemStyles}\n`;\n\ntype BaseProps = {\n /**\n * Disable the `SegmentedControlItem`\n */\n disabled?: boolean | undefined;\n /**\n * The value of the item\n */\n value: string;\n};\n\ntype IconWithLabel = {\n /**\n * The [Icon](?path=/docs/components-icon--docs) component to use, e.g. `<Icon type=\"favorite\" />`\n */\n icon?: JSX.Element;\n /**\n * The label of the item\n */\n label?: ReactNode | string | undefined;\n 'aria-label'?: never;\n};\n\ntype IconWithAriaLabel = {\n /**\n * The [Icon](?path=/docs/components-icon--docs) component to use, e.g. `<Icon type=\"favorite\" />`\n */\n icon?: JSX.Element;\n /**\n * Use this when displaying an icon without a label\n */\n 'aria-label'?: string | undefined;\n label?: never;\n};\n\ntype NoIcon = {\n icon?: undefined;\n /**\n * The label of the item\n */\n label?: ReactNode | string | undefined;\n 'aria-label'?: never;\n};\n\nexport type SegmentedControlItemProps = BaseProps & (IconWithAriaLabel | IconWithLabel | NoIcon);\n\nexport const SegmentedControlItem = forwardRef<HTMLButtonElement, SegmentedControlItemProps>(\n (\n { disabled, icon, label, 'aria-label': ariaLabel, value, ...otherProps },\n forwardedRef,\n ): JSX.Element => {\n const selectedValue = useSegmentedControlValue();\n const { setSelectedItemMeasurements } = useSelectedItemStyle();\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const combinedRef = mergeRefs([buttonRef, forwardedRef]);\n\n // note: this is necessary because ToggleGroupItem is toggleable and\n // in the event that the user clicks on the selected item, it will toggle off\n // so we prevent that from happening here\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n const target = event.target as HTMLElement;\n const { state } = target.dataset;\n\n if (state === 'on') {\n event.preventDefault();\n }\n };\n\n useEffect(() => {\n const buttonElem = buttonRef.current;\n\n if (!buttonElem) {\n return undefined;\n }\n\n if (selectedValue !== value) {\n return undefined;\n }\n\n setSelectedItemMeasurements({\n offsetLeft: buttonElem.offsetLeft,\n offsetWidth: buttonElem.offsetWidth,\n offsetHeight: buttonElem.offsetHeight,\n });\n\n const resizeObserver = new ResizeObserver(() => {\n setSelectedItemMeasurements({\n offsetLeft: buttonElem.offsetLeft,\n offsetWidth: buttonElem.offsetWidth,\n offsetHeight: buttonElem.offsetHeight,\n });\n });\n\n resizeObserver.observe(buttonElem);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [selectedValue, setSelectedItemMeasurements, value]);\n\n return (\n <StyledSegmentedControlItem\n ref={combinedRef}\n // We need to spread props here so that you can wrap SegmentedControlItem in a Tooltip\n // https://www.radix-ui.com/primitives/docs/guides/composition#your-component-must-spread-props\n {...otherProps}\n $hasLabel={isNotNil(label)}\n aria-label={isNotNil(label) ? undefined : ariaLabel}\n disabled={disabled}\n onClick={handleClick}\n value={value}\n >\n {icon}\n {label}\n </StyledSegmentedControlItem>\n );\n },\n);\n\nSegmentedControlItem.displayName = 'SegmentedControlItem_UI';\n","import {\n Root,\n Trigger,\n Portal,\n Content,\n ScrollUpButton,\n Viewport,\n Value,\n ScrollDownButton,\n} from '@radix-ui/react-select';\nimport type { JSX, ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { Icon } from '../Icon';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport { useResponsiveProp } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport { inputCss } from '../../css/inputCss';\n\nconst StyledTrigger = styled(Trigger)<{ $colorScheme: ColorSchemeTypes; $fullWidth?: boolean }>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n ${inputCss};\n padding: var(--wui-input-vertical-padding) var(--wui-input-horizontal-padding);\n background-color: var(--wui-input-color-bg);\n border: none;\n outline: 1px solid var(--wui-input-color-border);\n outline-offset: -2px;\n border-radius: var(--wui-input-border-radius);\n min-width: 200px;\n text-align: left;\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n max-width: 100%;\n width: ${({ $fullWidth = false }) => ($fullWidth ? '100%' : 'auto')};\n font-size: var(--wui-input-font-size);\n line-height: var(--wui-input-line-height);\n color: var(--wui-input-color-text);\n gap: var(--wui-space-01);\n\n > span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n &[aria-expanded='true'],\n &:focus {\n outline: 2px solid var(--wui-color-focus-ring);\n }\n\n &[aria-invalid='true'] {\n outline: 2px solid var(--wui-input-color-border-error);\n }\n\n &:disabled {\n outline-color: var(--wui-color-border-disabled);\n background-color: var(--wui-color-bg-surface-disabled);\n cursor: not-allowed;\n }\n\n &[data-placeholder] {\n color: var(--wui-input-placeholder);\n }\n`;\n\nconst StyledContent = styled(Content)`\n --wui-select-content-border: var(--wui-color-border);\n --wui-select-content-bg: var(--wui-color-bg-surface);\n --wui-select-content-border-radius: var(--wui-border-radius-02);\n --wui-select-option-padding: var(--wui-space-02);\n --wui-select-option-inner-gap: var(--wui-space-03);\n --wui-select-option-bg-hover: var(--wui-color-bg-surface-hover);\n\n overflow: hidden;\n background-color: var(--wui-select-content-bg);\n border: 1px solid var(--wui-select-content-border);\n border-radius: var(--wui-select-content-border-radius);\n box-shadow: var(--wui-elevation-01);\n padding: var(--wui-select-option-padding);\n min-width: var(--radix-select-trigger-width);\n max-height: var(--radix-select-content-available-height);\n z-index: var(--wui-zindex-select);\n\n [role='separator'] {\n margin: var(--wui-space-02) 0;\n }\n`;\n\nconst scrollButtonStyles = css`\n align-items: center;\n display: flex;\n justify-content: center;\n`;\n\nconst StyledScrollDownButton = styled(ScrollDownButton)`\n ${scrollButtonStyles}\n`;\n\nconst StyledScrollUpButton = styled(ScrollUpButton)`\n ${scrollButtonStyles}\n`;\n\nexport type SelectProps = {\n /**\n * Sets the validity status of the input\n *\n * @default false\n */\n 'aria-invalid'?: boolean;\n\n /**\n * A group of `Option` or `OptionGroup`s\n */\n children: ReactNode;\n\n /**\n * The color scheme of the select.\n *\n * @default inherit\n */\n colorScheme?: ColorSchemeTypes;\n\n /**\n * When true, the select can't be interacted with.\n *\n * @default false\n */\n disabled?: boolean;\n /**\n * @ignore\n * Force the Select to be open without user interaction (for debugging and CI)\n */\n forceOpen?: boolean;\n /**\n * If true, the select will fill its container\n */\n fullWidth?: ResponsiveObject<boolean> | boolean;\n\n /**\n * Called when the select is opened or closed\n */\n onOpenChange?: (open: boolean) => void;\n\n /**\n * Called when a value is changed.\n */\n onChange?: (value: string) => void;\n\n /**\n * Text shown when no value is selected\n */\n placeholder?: string;\n\n /**\n * The controlled value. Must be used in conjunction with `onChange`.\n */\n value?: string;\n};\n\n/**\n * Display a list of options and choose one of them. Replacement for the native Select HTML element.\n */\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(\n (\n {\n colorScheme = 'inherit',\n children,\n onOpenChange = () => null,\n onChange = () => null,\n placeholder = 'Select...',\n fullWidth = false,\n forceOpen = false,\n ...props\n },\n forwardedRef,\n ): JSX.Element => {\n const responsiveFullWidth = useResponsiveProp(fullWidth);\n\n const rootProps: Record<string, unknown> = {\n ...props,\n onOpenChange,\n onValueChange: onChange,\n };\n\n // add the open prop when forceOpen is true\n if (forceOpen) {\n rootProps['open'] = true;\n }\n\n return (\n <Root {...rootProps}>\n <StyledTrigger\n ref={forwardedRef}\n $colorScheme={colorScheme}\n $fullWidth={responsiveFullWidth}\n {...props}\n >\n <Value placeholder={placeholder} />\n <Icon\n size=\"md\"\n type=\"caret-down\"\n />\n </StyledTrigger>\n <Portal>\n <StyledContent\n position=\"popper\"\n sideOffset={8}\n >\n <StyledScrollUpButton>\n <Icon\n size=\"sm\"\n type=\"caret-up\"\n />\n </StyledScrollUpButton>\n <Viewport>{children}</Viewport>\n <StyledScrollDownButton>\n <Icon\n size=\"sm\"\n type=\"caret-down\"\n />\n </StyledScrollDownButton>\n </StyledContent>\n </Portal>\n </Root>\n );\n },\n);\n\nSelect.displayName = 'Select_UI';\n","import { Item, ItemText, ItemIndicator } from '@radix-ui/react-select';\nimport type { ReactNode } from 'react';\nimport { forwardRef } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport { Icon } from '../Icon';\nimport { getTypographicStyles } from '../../private/helpers/getTypographicStyles/getTypographicStyles';\n\nexport type SelectOptionProps = {\n /**\n * The visual content of the select\n */\n children: ReactNode;\n /**\n * The value to set. Leave this empty to define a placeholder option.\n */\n value: string;\n /**\n * When true, this option will not be selectable\n *\n * @default false\n */\n disabled?: boolean;\n /**\n * Optional content to display in the trigger when the option is selected. If undefined, it will show the `children`\n * prop instead.\n */\n selectedDisplayValue?: ReactNode;\n /**\n * Optional text used for typeahead purposes. By default the typeahead behavior will use the `.textContent` of the Option.\n * Use this when the content is complex, or you have non-textual content inside.\n */\n textValue?: string;\n /**\n * Vertical alignment of the checkmark icon when this option is selected.\n */\n checkmarkVerticalAlign?: 'center' | 'top';\n};\n\nconst StyledItem = styled(Item)<{\n $checkmarkVerticalAlign: SelectOptionProps['checkmarkVerticalAlign'];\n}>`\n ${getTypographicStyles('label3')}\n align-items: ${({ $checkmarkVerticalAlign }) =>\n $checkmarkVerticalAlign === 'center' ? 'center' : 'flex-start'};\n background-color: transparent;\n display: flex;\n padding: var(--wui-select-option-padding);\n justify-content: space-between;\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n border-radius: var(--wui-border-radius-01);\n cursor: pointer;\n\n &:hover,\n &:focus-visible {\n background-color: var(--wui-select-option-bg-hover);\n outline: none;\n }\n\n &[aria-disabled='true'] {\n color: var(--wui-color-text-disabled);\n }\n\n &[aria-disabled='true']:hover {\n background-color: transparent;\n }\n`;\n\nexport const SelectOption = forwardRef<HTMLDivElement, SelectOptionProps>(\n (\n { children, selectedDisplayValue, checkmarkVerticalAlign = 'center', ...props },\n forwardedRef,\n ) => {\n return (\n <StyledItem\n {...props}\n ref={forwardedRef}\n $checkmarkVerticalAlign={checkmarkVerticalAlign}\n >\n {isNotNil(selectedDisplayValue) ? (\n <div>\n {children}\n <div style={{ display: 'none' }}>\n <ItemText>{selectedDisplayValue}</ItemText>\n </div>\n </div>\n ) : (\n <ItemText>{children}</ItemText>\n )}\n\n <ItemIndicator>\n <Icon\n size=\"md\"\n type=\"checkmark\"\n />\n </ItemIndicator>\n </StyledItem>\n );\n },\n);\n\nSelectOption.displayName = 'SelectOption_UI';\n","import { Group, Label } from '@radix-ui/react-select';\nimport type { ReactNode } from 'react';\nimport { styled } from 'styled-components';\nimport { Heading } from '../Heading';\n\nexport type SelectOptionGroupProps = {\n /** The label of the group */\n label: string;\n /** At least one `Option` */\n children: ReactNode;\n};\n\nconst StyledLabel = styled(Label)`\n padding: var(--wui-select-option-padding);\n`;\n\nexport const SelectOptionGroup = ({ children, label, ...props }: SelectOptionGroupProps) => {\n return (\n <Group {...props}>\n <StyledLabel>\n <Heading\n renderAs=\"span\"\n variant=\"heading6\"\n >\n {label}\n </Heading>\n </StyledLabel>\n {children}\n </Group>\n );\n};\n","import type { JSX, ComponentPropsWithoutRef } from 'react';\nimport {\n Root as RadixSliderRoot,\n Track as RadixSliderTrack,\n Range as RadixSliderRange,\n Thumb as RadixSliderThumb,\n} from '@radix-ui/react-slider';\nimport { styled } from 'styled-components';\nimport { isNonEmptyString } from '@wistia/type-guards';\n\nconst SliderContainer = styled.div`\n --wui-slider-track-color: var(--wui-gray-6);\n --wui-slider-track-border-radius: var(--wui-border-radius-rounded);\n --wui-slider-range-color: var(--wui-color-bg-fill);\n --wui-slider-thumb-color: var(--wui-color-bg-surface);\n --wui-slider-thumb-border-color: var(--wui-color-border-secondary);\n\n [data-disabled] {\n --wui-slider-range-color: var(--wui-gray-6);\n --wui-slider-track-color: var(--wui-color-bg-surface-disabled);\n --wui-slider-thumb-color: var(--wui-color-bg-surface-disabled);\n --wui-slider-thumb-border-color: var(--wui-color-border-disabled);\n\n pointer-events: none;\n }\n`;\n\nconst StyledSliderRoot = styled(RadixSliderRoot)`\n position: relative;\n display: flex;\n align-items: center;\n user-select: none;\n touch-action: none;\n width: 100%;\n`;\n\nconst StyledSliderTrack = styled(RadixSliderTrack)`\n background-color: var(--wui-slider-track-color);\n border-radius: var(--wui-slider-track-border-radius);\n flex-grow: 1;\n height: 6px;\n position: relative;\n`;\n\nconst StyledSliderRange = styled(RadixSliderRange)`\n background-color: var(--wui-slider-range-color);\n border-radius: var(--wui-slider-track-border-radius);\n height: 100%;\n position: absolute;\n`;\n\nconst StyledSliderThumb = styled(RadixSliderThumb)`\n background-color: var(--wui-slider-thumb-color);\n border-radius: var(--wui-border-radius-rounded);\n cursor: grab;\n display: block;\n height: 16px;\n outline-color: var(--wui-slider-thumb-border-color);\n outline-style: solid;\n outline-width: 1px;\n transition-duration: 70ms;\n transition-property: border-width, box-shadow, transform;\n transition-timing-function: var(--wui-motion-ease-out);\n width: 16px;\n\n &:hover,\n &:active {\n transform-origin: center;\n transform: scale(1.2);\n transition-timing-function: var(--wui-motion-ease-in);\n }\n\n &:focus-visible {\n outline-color: var(--wui-color-focus-ring);\n outline-offset: -1px;\n outline-width: 2px;\n }\n`;\n\nexport type SliderProps = Omit<ComponentPropsWithoutRef<'div'>, 'onChange'> & {\n /**\n * aria-label for screen-readers to apply to the slider\n */\n 'aria-label'?: string;\n /**\n * aria-labelledby for screen-readers to apply to the slider\n */\n 'aria-labelledby'?: string;\n /**\n * @ignore\n */\n 'data-testid'?: string;\n /**\n * Determines the initial position(s) of the thumb(s)\n * Must be an array of numbers.\n */\n initialValue?: number[];\n /**\n * If `true` the thumbs can't be moved.\n */\n disabled?: boolean;\n /**\n * The maximum value of the slider.\n */\n max?: number;\n /**\n * The minimum value of the slider.\n */\n min?: number;\n /**\n * Callback called on value change\n */\n onChange?: (value: number[]) => void;\n /**\n * Value to be added or subtracted on each step\n */\n step?: number;\n /**\n * Current value of the slider\n * Must be an array of numbers if provided.\n */\n value?: number[];\n};\n\nexport const Slider = ({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n disabled = false,\n initialValue = [0],\n max = 100,\n min = 0,\n onChange,\n step = 1,\n value,\n 'data-testid': dataTestId = 'ui-slider',\n ...otherProps\n}: SliderProps): JSX.Element => {\n if (!(isNonEmptyString(ariaLabel) || isNonEmptyString(ariaLabelledby))) {\n throw new Error(\n 'UI Slider: Sliders should have an accessible name. Add a label using the aria-label or aria-labelledby prop.',\n );\n }\n\n const values = value ?? initialValue;\n\n const handleValueChange = (newValue: number[]) => {\n if (onChange) {\n onChange(newValue);\n }\n };\n\n return (\n <SliderContainer\n {...otherProps}\n data-testid={dataTestId}\n >\n <StyledSliderRoot\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n defaultValue={initialValue}\n disabled={disabled}\n max={max}\n min={min}\n onValueChange={handleValueChange}\n step={step}\n {...(value ? { value } : {})}\n >\n <StyledSliderTrack data-testid={`${dataTestId}-track`}>\n <StyledSliderRange data-testid={`${dataTestId}-range`} />\n </StyledSliderTrack>\n {values.map((_, index) => (\n <StyledSliderThumb\n key={`thumb-${index}`} // eslint-disable-line react/no-array-index-key\n data-testid={`${dataTestId}-thumb-${index}`}\n />\n ))}\n </StyledSliderRoot>\n </SliderContainer>\n );\n};\n\nSlider.displayName = 'Slider_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled, css } from 'styled-components';\nimport { visuallyHiddenStyle } from '../../css/visuallyHiddenStyle';\n\ntype StyledTableProps = {\n $divided?: boolean;\n $striped?: boolean;\n $visuallyHiddenHeader?: boolean;\n};\n\nconst StyledTable = styled.table<StyledTableProps>`\n width: 100%;\n border-collapse: collapse;\n\n ${({ $divided }) =>\n $divided &&\n css`\n tr {\n border-bottom: 1px solid var(--wui-color-border);\n }\n `}\n\n ${({ $striped }) =>\n $striped &&\n css`\n tbody tr:nth-child(even) {\n background-color: var(--wui-color-bg-surface-secondary);\n }\n `}\n\n ${({ $visuallyHiddenHeader }) =>\n $visuallyHiddenHeader &&\n css`\n thead {\n ${visuallyHiddenStyle}\n }\n `}\n`;\n\nexport type TableProps = ComponentPropsWithoutRef<'table'> & {\n /**\n * Should be some combination of `TableHead` and/or `TableBody` and/or `TableFoot`\n */\n children: ReactNode;\n /**\n * If true, will add dividing lines between rows\n */\n divided?: boolean;\n /**\n * If true, will stripe every other row\n */\n striped?: boolean;\n /**\n * If true, will visually hide the table header while keeping it accessible to screen readers\n *\n * @see https://www.accessibility-developer-guide.com/examples/tables/hidden-headers/\n */\n visuallyHiddenHeader?: boolean;\n};\n\n/**\n * Semantic table element for presenting data\n */\nexport const Table = ({\n children,\n divided = false,\n striped = false,\n visuallyHiddenHeader = false,\n ...props\n}: TableProps): JSX.Element => {\n return (\n <StyledTable\n $divided={divided}\n $striped={striped}\n $visuallyHiddenHeader={visuallyHiddenHeader}\n {...props}\n >\n {children}\n </StyledTable>\n );\n};\n","import type { JSX, ReactNode, HTMLAttributes } from 'react';\nimport { styled } from 'styled-components';\nimport { TableSectionContext } from './TableSectionContext';\n\nexport type TableBodyProps = HTMLAttributes<HTMLTableSectionElement> & {\n children?: ReactNode;\n};\n\nconst StyledTableBody = styled.tbody`\n width: 100%;\n`;\n\nexport const TableBody = ({ children, ...props }: TableBodyProps): JSX.Element => {\n return (\n <TableSectionContext.Provider value=\"body\">\n <StyledTableBody {...props}>{children}</StyledTableBody>\n </TableSectionContext.Provider>\n );\n};\n","import { createContext } from 'react';\n\nexport type TableSection = 'body' | 'footer' | 'head' | null;\n\n/**\n * Context used to determine if a <TableCell /> is rendered inside a <thead>, <tbody>, or <tfoot>\n */\nexport const TableSectionContext = createContext<TableSection>(null);\n","import type { JSX, ReactNode, TdHTMLAttributes, ThHTMLAttributes } from 'react';\nimport { useContext } from 'react';\nimport { styled, css } from 'styled-components';\nimport { TableSectionContext } from './TableSectionContext';\n\nconst sharedStyles = css`\n color: var(--wui-color-text);\n padding: var(--wui-space-02);\n text-align: left;\n`;\n\nconst StyledTh = styled.th`\n ${sharedStyles}\n font-size: var(--wui-typography-body-4-size);\n font-weight: var(--wui-typography-weight-label-bold);\n line-height: var(--wui-typography-body-4-line-height);\n`;\n\nconst StyledTd = styled.td`\n ${sharedStyles}\n font-size: var(--wui-typography-body-2-size);\n font-weight: var(--wui-typography-body-2-weight);\n line-height: var(--wui-typography-body-2-line-height);\n`;\n\ntype CellAttrs = Omit<TdHTMLAttributes<HTMLTableCellElement>, 'ref'> &\n Omit<ThHTMLAttributes<HTMLTableCellElement>, 'ref'>;\n\nexport type TableCellProps = CellAttrs & {\n children?: ReactNode;\n};\n\nexport const TableCell = ({ children, ...props }: TableCellProps): JSX.Element => {\n const section = useContext(TableSectionContext);\n\n if (section === 'head') {\n return <StyledTh {...props}>{children}</StyledTh>;\n }\n return <StyledTd {...props}>{children}</StyledTd>;\n};\n","import type { JSX, ReactNode, HTMLAttributes } from 'react';\nimport { styled } from 'styled-components';\nimport { TableSectionContext } from './TableSectionContext';\n\nconst StyledTableFoot = styled.tfoot`\n width: 100%;\n`;\n\nexport type TableFootProps = HTMLAttributes<HTMLTableSectionElement> & {\n children?: ReactNode;\n};\n\nexport const TableFoot = ({ children, ...props }: TableFootProps): JSX.Element => {\n return (\n <TableSectionContext.Provider value=\"footer\">\n <StyledTableFoot {...props}>{children}</StyledTableFoot>\n </TableSectionContext.Provider>\n );\n};\n","import type { JSX, ReactNode, HTMLAttributes } from 'react';\nimport { styled } from 'styled-components';\nimport { TableSectionContext } from './TableSectionContext';\n\nconst StyledThead = styled.thead`\n width: 100%;\n`;\n\nexport type TableHeadProps = HTMLAttributes<HTMLTableSectionElement> & {\n children?: ReactNode;\n};\n\nexport const TableHead = ({ children, ...props }: TableHeadProps): JSX.Element => {\n return (\n <TableSectionContext.Provider value=\"head\">\n <StyledThead {...props}>{children}</StyledThead>\n </TableSectionContext.Provider>\n );\n};\n","import type { JSX, ReactNode, HTMLAttributes } from 'react';\nimport { styled } from 'styled-components';\n\nconst StyledTableRow = styled.tr`\n width: 100%;\n`;\n\nexport type TableRowProps = HTMLAttributes<HTMLTableRowElement> & {\n children?: ReactNode;\n};\n\nexport const TableRow = ({ children, ...props }: TableRowProps): JSX.Element => {\n return <StyledTableRow {...props}>{children}</StyledTableRow>;\n};\n","import { Root as RadixTabsRoot } from '@radix-ui/react-tabs';\nimport type { JSX } from 'react';\nimport { useCallback, useState } from 'react';\nimport type { TabsProps as RadixTabRootProps } from '@radix-ui/react-tabs';\nimport { isNotNil } from '@wistia/type-guards';\nimport { TabsValueProvider } from './useTabsValue';\nimport { SelectedItemStyleProvider } from '../SegmentedControl/useSelectedItemStyle';\n\ntype TabsProps = Pick<RadixTabRootProps, 'children' | 'defaultValue' | 'onValueChange' | 'value'>;\n\nexport const Tabs = ({\n children,\n value: valueProp,\n onValueChange: onValueChangeProp,\n defaultValue,\n ...props\n}: TabsProps): JSX.Element => {\n // We track value internally so that even if the component is uncontrolled, we\n // can pass it to the TabsValueProvider\n const [value, setValue] = useState(valueProp ?? defaultValue);\n\n const onValueChange = useCallback(\n (newValue: string) => {\n setValue(newValue);\n if (onValueChangeProp) {\n onValueChangeProp(newValue);\n }\n },\n [onValueChangeProp],\n );\n\n const rootProps: TabsProps = {\n ...props,\n onValueChange,\n };\n\n if (isNotNil(value)) {\n rootProps.value = value;\n }\n\n if (isNotNil(defaultValue)) {\n rootProps.defaultValue = defaultValue;\n }\n\n return (\n <RadixTabsRoot {...rootProps}>\n <TabsValueProvider value={value ?? defaultValue}>\n <SelectedItemStyleProvider>{children}</SelectedItemStyleProvider>\n </TabsValueProvider>\n </RadixTabsRoot>\n );\n};\n\nTabs.displayName = 'Tabs_UI';\n","import { createContext, useContext } from 'react';\n\ntype TabsValueContextValue = string;\n\nconst TabsValueContext = createContext<TabsValueContextValue | null | undefined>(null);\n\nexport const TabsValueProvider = TabsValueContext.Provider;\n\nexport const useTabsValue = (): TabsValueContextValue | undefined => {\n const context = useContext(TabsValueContext);\n if (context === null) {\n throw new Error('useTabsValue must be used within a TabsValueProvider');\n }\n return context;\n};\n","import { Content as RadixTabsContent } from '@radix-ui/react-tabs';\nimport type { TabsContentProps as RadixTabsContentProps } from '@radix-ui/react-tabs';\nimport type { JSX } from 'react';\n\ntype TabsContentProps = Pick<RadixTabsContentProps, 'children' | 'value'>;\n\nexport const TabsContent = ({ children, value }: TabsContentProps): JSX.Element => {\n return <RadixTabsContent value={value}>{children}</RadixTabsContent>;\n};\n\nTabsContent.displayName = 'TabsContent_UI';\n","import { List as RadixTabList } from '@radix-ui/react-tabs';\nimport type { TabsListProps as RadixTabsListProps } from '@radix-ui/react-tabs';\nimport { styled } from 'styled-components';\nimport type { JSX, PropsWithChildren } from 'react';\nimport { segmentedControlStyles } from '../SegmentedControl/SegmentedControl';\nimport { SelectedTabIndicator } from './SelectedTabIndicator';\n\ntype TabsListProps = Pick<RadixTabsListProps, 'aria-label'> &\n PropsWithChildren<{\n fullWidth?: boolean;\n }>;\n\nconst StyledRadixTabsList = styled(RadixTabList)<{ $fullWidth: boolean }>`\n ${segmentedControlStyles}\n`;\n\nexport const TabsList = ({ children, fullWidth = true, ...props }: TabsListProps): JSX.Element => {\n return (\n <StyledRadixTabsList\n $fullWidth={fullWidth}\n aria-label={props['aria-label']}\n >\n {children}\n <SelectedTabIndicator />\n </StyledRadixTabsList>\n );\n};\n\nTabsList.displayName = 'TabsList_UI';\n","import type { JSX } from 'react';\nimport { isUndefined } from '@wistia/type-guards';\nimport { useTabsValue } from './useTabsValue';\nimport { useSelectedItemStyle } from '../SegmentedControl/useSelectedItemStyle';\nimport { TabsSelectedItemIndicatorDiv } from './TabsSelectedItemIndicatorDiv';\n\nexport const SelectedTabIndicator = (): JSX.Element | null => {\n const { selectedItemIndicatorStyle } = useSelectedItemStyle();\n const selectedValue = useTabsValue();\n\n if (selectedValue == null || isUndefined(selectedItemIndicatorStyle)) {\n return null;\n }\n\n return (\n <TabsSelectedItemIndicatorDiv\n data-wui-selected-item-indicator={true}\n style={selectedItemIndicatorStyle}\n />\n );\n};\n","import { styled } from 'styled-components';\nimport { SelectedItemIndicatorDiv } from '../SegmentedControl/SelectedItemIndicator';\n\nexport const TabsSelectedItemIndicatorDiv = styled(SelectedItemIndicatorDiv)`\n &:has(~ button[role='tab']:focus-visible) {\n outline: 2px solid var(--wui-color-focus-ring);\n }\n`;\n","import type { TabsTriggerProps as RadixTabsTriggerProps } from '@radix-ui/react-tabs';\nimport { forwardRef, useEffect, useRef } from 'react';\nimport type { ReactNode, JSX } from 'react';\nimport { isNotNil } from '@wistia/type-guards';\nimport { useSelectedItemStyle } from '../SegmentedControl/useSelectedItemStyle';\nimport { mergeRefs } from '../../helpers/mergeRefs';\nimport { useTabsValue } from './useTabsValue';\nimport { StyledRadixTabsTrigger } from './StyledRadixTabsTrigger';\n\ntype BaseProps = Pick<RadixTabsTriggerProps, 'disabled' | 'value'>;\n\ntype IconWithLabel = {\n /**\n * The [Icon](?path=/docs/components-icon--docs) component to use, e.g. `<Icon type=\"favorite\" />`\n */\n icon?: JSX.Element;\n /**\n * The label of the item\n */\n label?: ReactNode | string;\n 'aria-label'?: never;\n};\n\ntype IconWithAriaLabel = {\n /**\n * The [Icon](?path=/docs/components-icon--docs) component to use, e.g. `<Icon type=\"favorite\" />`\n */\n icon?: JSX.Element;\n /**\n * Use this when displaying an icon without a label\n */\n 'aria-label'?: string;\n label?: never;\n};\n\ntype NoIcon = {\n icon?: undefined;\n /**\n * The label of the item\n */\n label?: ReactNode | string;\n 'aria-label'?: never;\n};\n\ntype TabsTriggerProps = BaseProps & (IconWithAriaLabel | IconWithLabel | NoIcon);\n\nexport const TabsTrigger = forwardRef<HTMLButtonElement, TabsTriggerProps>(\n (\n { disabled = false, icon, label, 'aria-label': ariaLabel, value, ...otherProps },\n forwardedRef,\n ) => {\n const selectedValue = useTabsValue();\n\n const { setSelectedItemMeasurements } = useSelectedItemStyle();\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const combinedRef = mergeRefs([buttonRef, forwardedRef]);\n\n useEffect(() => {\n const buttonElem = buttonRef.current;\n\n if (!buttonElem) {\n return undefined;\n }\n\n if (selectedValue !== value) {\n return undefined;\n }\n\n setSelectedItemMeasurements({\n offsetLeft: buttonElem.offsetLeft,\n offsetWidth: buttonElem.offsetWidth,\n offsetHeight: buttonElem.offsetHeight,\n });\n\n const resizeObserver = new ResizeObserver(() => {\n setSelectedItemMeasurements({\n offsetLeft: buttonElem.offsetLeft,\n offsetWidth: buttonElem.offsetWidth,\n offsetHeight: buttonElem.offsetHeight,\n });\n });\n\n resizeObserver.observe(buttonElem);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [selectedValue, setSelectedItemMeasurements, value]);\n\n return (\n <StyledRadixTabsTrigger\n // We need to spread props here so that you can wrap this in a Tooltip and\n // have the tooltip work correctly\n // https://www.radix-ui.com/primitives/docs/guides/composition#your-component-must-spread-props\n {...otherProps}\n ref={combinedRef}\n $hasLabel={isNotNil(label)}\n aria-label={isNotNil(label) ? undefined : ariaLabel}\n disabled={disabled}\n value={value}\n >\n {icon}\n {label}\n </StyledRadixTabsTrigger>\n );\n },\n);\n\nTabsTrigger.displayName = 'TabsTrigger_UI';\n","import { styled } from 'styled-components';\nimport { Trigger as RadixTabsTrigger } from '@radix-ui/react-tabs';\nimport { segmentedControlItemStyles } from '../SegmentedControl/SegmentedControlItem';\n\ntype StyledRadixTabsTriggerProps = {\n $hasLabel?: boolean;\n};\n\nexport const StyledRadixTabsTrigger = styled(RadixTabsTrigger)<StyledRadixTabsTriggerProps>`\n ${segmentedControlItemStyles}\n\n &:focus-visible {\n outline: none;\n }\n`;\n","import type { JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\n\nconst StyledThumbnailBadge = styled.div`\n align-items: center;\n background-color: rgb(0 0 0 / 50%);\n border-radius: var(--wui-border-radius-01);\n bottom: var(--wui-thumbnail-badge-offset, var(--wui-space-01));\n color: var(--wui-color-text-on-fill);\n display: flex;\n font-size: var(--wui-typography-body-4-size);\n font-weight: var(--wui-typography-weight-body-bold);\n gap: var(--wui-space-01);\n padding: 0 var(--wui-space-01);\n position: absolute;\n right: var(--wui-thumbnail-badge-offset, var(--wui-space-01));\n z-index: 1;\n\n svg {\n height: 12px;\n width: 12px;\n flex: 0 0 12px;\n\n path {\n color: var(--wui-color-icon-on-fill);\n }\n }\n`;\n\nexport type ThumbnailBadgeProps = {\n /**\n * Icon to display on the left side of the badge\n */\n icon?: JSX.Element | undefined;\n /**\n * Text content to display in the badge\n */\n label: string;\n};\n\nexport const ThumbnailBadge = ({ icon, label, ...props }: ThumbnailBadgeProps): JSX.Element => {\n return (\n <StyledThumbnailBadge {...props}>\n {isNotNil(icon) && icon}\n <span>{label}</span>\n </StyledThumbnailBadge>\n );\n};\n\nThumbnailBadge.displayName = 'ThumbnailBadge_UI';\n","import type { ComponentPropsWithoutRef, JSX, MouseEvent, ReactNode } from 'react';\nimport { forwardRef, useState, useRef, useCallback, useMemo } from 'react';\nimport { styled } from 'styled-components';\nimport {\n isNil,\n isNotNil,\n isUndefined,\n isEmptyString,\n isString,\n isNonEmptyString,\n} from '@wistia/type-guards';\nimport type { GradientNameType } from '../../private/helpers/getBackgroundGradient';\nimport { getBackgroundGradient } from '../../private/helpers/getBackgroundGradient';\nimport { ThumbnailStoryboardViewer } from './ThumbnailStoryboardViewer';\n\nconst WIDE_ASPECT_RATIO = 16 / 9; // eslint-disable-line @typescript-eslint/no-magic-numbers\nconst SQUARE_ASPECT_RATIO = 1;\n\ntype AspectRatioType = 'square' | 'wide';\n\nconst getAspectRatioValue = (aspectRatio: AspectRatioType): number => {\n if (aspectRatio === 'square') {\n return SQUARE_ASPECT_RATIO;\n }\n return WIDE_ASPECT_RATIO;\n};\n\ntype ThumbnailImageProps = Pick<ThumbnailProps, 'thumbnailImageType'> & {\n thumbnailUrl: string;\n};\n\ntype StyledThumbnailProps = {\n $backgroundUrl: string | undefined;\n $gradientBackground?: GradientNameType;\n $isScrubbable?: boolean;\n};\n\ntype StyledThumbnailContainerProps = {\n $width: string;\n $aspectRatio: AspectRatioType;\n $isScrubbable?: boolean;\n};\n\nconst WideThumbnailImage = styled.img`\n height: 100%;\n object-fit: cover;\n width: 100%;\n`;\n\nconst SquareThumbnailImage = styled.img`\n backdrop-filter: blur(8px);\n object-fit: contain;\n width: 100%;\n`;\n\nconst ThumbnailImage = ({ thumbnailImageType, thumbnailUrl }: ThumbnailImageProps) => {\n if (thumbnailImageType === 'wide') {\n return (\n <WideThumbnailImage\n alt=\"\"\n role=\"img\"\n src={thumbnailUrl}\n />\n );\n }\n\n return (\n <SquareThumbnailImage\n alt=\"\"\n role=\"img\"\n src={thumbnailUrl}\n />\n );\n};\n\nconst StyledThumbnailContainer = styled.div<StyledThumbnailContainerProps>`\n container-type: size;\n aspect-ratio: ${({ $aspectRatio }) => getAspectRatioValue($aspectRatio)};\n width: ${({ $width }) => $width};\n display: flex;\n overflow: hidden;\n ${({ $isScrubbable }) => $isScrubbable && 'cursor: pointer;'}\n`;\n\nconst StyledThumbnail = styled.div<StyledThumbnailProps>`\n --wui-thumbnail-badge-offset: var(--wui-space-01);\n\n background-image: ${({ $backgroundUrl }) =>\n isNotNil($backgroundUrl) ? `url('${$backgroundUrl}')` : undefined};\n ${({ $backgroundUrl, $gradientBackground }) =>\n // if we don't have $backgroundUrl show a gradient\n isNil($backgroundUrl) ? getBackgroundGradient($gradientBackground) : undefined};\n background-position: center center;\n background-size: cover;\n display: flex;\n width: 100%;\n overflow: hidden;\n position: relative;\n\n &,\n img {\n border-radius: clamp(var(--wui-border-radius-01), 8cqh, var(--wui-border-radius-05));\n }\n\n @container (min-width: 200px) {\n --wui-thumbnail-badge-offset: var(--wui-space-02);\n }\n`;\n\n// note that this data structure is defined outside of this repo; potentially it could change\n// from underneath us and this would need to be altered\ntype Storyboard = {\n __typename?: string;\n aspectRatio: number;\n frameCount: number;\n frameHeight: number;\n frameWidth: number;\n height: number;\n id?: string;\n url: string;\n width: number;\n};\n\ntype StoryboardRendererProps = {\n storyboard: Storyboard;\n width: string;\n percent: number;\n cursorPosition: number | null;\n isStoryboardReady: boolean;\n aspectRatio: AspectRatioType;\n};\n\nconst StoryboardRenderer = ({\n storyboard,\n width,\n percent,\n cursorPosition,\n isStoryboardReady,\n aspectRatio,\n}: StoryboardRendererProps) => {\n const { url, width: sbWidth, height: sbHeight, frameHeight, frameWidth, frameCount } = storyboard;\n\n const targetWidth = isString(width) ? parseInt(width, 10) : Number(width);\n\n // ensure the scrub line only appears when the storyboard is fully loaded\n const effectiveCursorPosition = isStoryboardReady ? cursorPosition : null;\n\n return (\n <ThumbnailStoryboardViewer\n cursorPosition={effectiveCursorPosition}\n frameCount={frameCount}\n frameHeight={frameHeight}\n frameWidth={frameWidth}\n percent={percent}\n storyboardHeight={sbHeight}\n storyboardUrl={url}\n storyboardWidth={sbWidth}\n targetAspectRatio={getAspectRatioValue(aspectRatio)}\n targetWidth={targetWidth}\n />\n );\n};\n\nconst getRelativeMousePosition = (elem: HTMLElement, mouseEvent: MouseEvent) => {\n const rect = elem.getBoundingClientRect();\n const relativeLeft = mouseEvent.clientX - rect.left;\n const relativeTop = mouseEvent.clientY - rect.top;\n\n return {\n top: relativeTop,\n left: relativeLeft,\n };\n};\n\nconst hasValidThumbnailUrl = (thumbnailUrl: string | null | undefined) => {\n return isNotNil(thumbnailUrl) && isNonEmptyString(thumbnailUrl);\n};\n\nexport type ThumbnailProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'> & {\n /**\n * The desired display of the thumbnail, either wide or square\n */\n thumbnailImageType?: 'square' | 'wide' | undefined;\n /**\n * The URL of the thumbnail image to display\n */\n thumbnailUrl: string | null | undefined;\n /**\n * Children to render inside the thumbnail; must be a `ThumbnailBadge` component\n */\n children?: ReactNode;\n /**\n * The type of gradient to show either behind the icon or when there is no thumbnail image\n */\n gradientBackground?: GradientNameType;\n /**\n * The storyboard data for \"scrubbing\" functionality\n */\n storyboard?: Storyboard;\n /**\n * Width of the thumbnail. By default, the thumbnail will grow to fit its container.\n * Example: '320px'\n */\n width?: string;\n /**\n * The height of the thumbnail container when using storyboard.\n * Example: '180px'\n */\n height?: string;\n /**\n * The aspect ratio of the thumbnail container.\n * 'wide' maps to 16:9 ratio, 'square' maps to 1:1 ratio.\n */\n aspectRatio?: AspectRatioType;\n};\n\n/**\n * A `Thumbnail` is a small, reduced-size version of an image or video used as a preview or representative image.\n */\nexport const Thumbnail = forwardRef<HTMLDivElement, ThumbnailProps>(\n (\n {\n gradientBackground = 'defaultMidOne',\n thumbnailImageType = 'wide',\n thumbnailUrl,\n width = '100%',\n children,\n storyboard,\n height,\n aspectRatio = 'wide',\n ...props\n }: ThumbnailProps,\n ref,\n ): JSX.Element => {\n // keep the same order of useState calls as before for test compatibility\n const [percent, setPercent] = useState(0);\n const [isMouseOver, setIsMouseOver] = useState(false);\n const [isStoryboardReady, setIsStoryboardReady] = useState(false);\n const storyboardElementRef = useRef<HTMLImageElement | null>(null);\n const [cursorPosition, setCursorPosition] = useState<number | null>(null);\n\n // use thumbnailUrl as a background image if thumbnailImageType is square\n const backgroundUrl = useMemo(\n () =>\n thumbnailImageType === 'square' && hasValidThumbnailUrl(thumbnailUrl)\n ? thumbnailUrl\n : undefined,\n [thumbnailImageType, thumbnailUrl],\n );\n\n const isScrubbable = isNotNil(storyboard);\n\n const trackStoryboardLoadStatus = useCallback(() => {\n if (storyboardElementRef.current || !storyboard) {\n return storyboardElementRef.current;\n }\n\n // create an img element to utilize onload to track asset load status\n const asset = document.createElement('img');\n asset.onload = () => setIsStoryboardReady(true);\n asset.src = storyboard.url;\n\n storyboardElementRef.current = asset;\n return storyboardElementRef.current;\n }, [storyboard]);\n\n const handleMouseMove = useCallback(\n (mouseEvent: MouseEvent<HTMLDivElement>) => {\n if (!isScrubbable) {\n return;\n }\n\n const elem = mouseEvent.currentTarget;\n const relMousePos = getRelativeMousePosition(elem, mouseEvent);\n const newPercent = relMousePos.left / elem.clientWidth;\n\n trackStoryboardLoadStatus();\n\n setPercent(newPercent);\n setCursorPosition(relMousePos.left);\n setIsMouseOver(true);\n },\n [isScrubbable, trackStoryboardLoadStatus],\n );\n\n const handleMouseOut = useCallback(() => {\n if (!isScrubbable) {\n return;\n }\n setIsMouseOver(false);\n setCursorPosition(null);\n }, [isScrubbable]);\n\n const shouldRenderStoryboard = useMemo(() => {\n if (isNil(storyboard) || isUndefined(height) || isEmptyString(height)) {\n return false;\n }\n\n return isScrubbable && isMouseOver && isStoryboardReady;\n }, [isScrubbable, isMouseOver, isStoryboardReady, storyboard, height]);\n\n let thumbnailContent = null;\n if (storyboard && shouldRenderStoryboard) {\n thumbnailContent = (\n <StoryboardRenderer\n aspectRatio={aspectRatio}\n cursorPosition={cursorPosition}\n isStoryboardReady={isStoryboardReady}\n percent={percent}\n storyboard={storyboard}\n width={width}\n />\n );\n } else if (hasValidThumbnailUrl(thumbnailUrl)) {\n thumbnailContent = (\n <ThumbnailImage\n thumbnailImageType={thumbnailImageType}\n thumbnailUrl={thumbnailUrl}\n />\n );\n } else {\n thumbnailContent = null;\n }\n\n return (\n <StyledThumbnailContainer\n ref={ref}\n $aspectRatio={aspectRatio}\n $isScrubbable={isScrubbable}\n $width={width}\n data-wui-thumbnail-container={true}\n onBlur={handleMouseOut}\n onMouseMove={handleMouseMove}\n onMouseOut={handleMouseOut}\n role=\"presentation\"\n {...props}\n >\n <StyledThumbnail\n $backgroundUrl={backgroundUrl}\n $gradientBackground={gradientBackground}\n data-testid=\"thumbnail-inner\"\n >\n {isNotNil(children) ? children : null}\n {thumbnailContent}\n </StyledThumbnail>\n </StyledThumbnailContainer>\n );\n },\n);\n\nThumbnail.displayName = 'Thumbnail_UI';\n","import { isNotNil } from '@wistia/type-guards';\nimport { css } from 'styled-components';\n\nconst gradients = {\n defaultDarkOne: css`\n background-color: #222d66;\n background-image:\n radial-gradient(farthest-corner at top right, #222d66, transparent 70%),\n radial-gradient(farthest-corner at bottom right, #2949e5, transparent 50%),\n radial-gradient(farthest-corner at bottom left, #6b84ff, transparent 57%),\n radial-gradient(farthest-corner at top left, #2949e5, transparent 68%);\n `,\n defaultDarkTwo: css`\n background-color: #222d66;\n background-image:\n radial-gradient(farthest-corner at top left, #6b84ff, transparent 100%),\n radial-gradient(farthest-corner at bottom left, #222d66, transparent 57%),\n radial-gradient(farthest-corner at bottom right, #2949e5, transparent 50%),\n radial-gradient(farthest-corner at top right, #2949e5, transparent 70%);\n `,\n defaultLightOne: css`\n background-color: #ccd5ff;\n background-image:\n radial-gradient(farthest-corner at bottom right, #ccd5ff, transparent 55%),\n radial-gradient(farthest-corner at top left, #ccd5ff, transparent 65%),\n radial-gradient(farthest-corner at top right, #6b84ff, transparent 50%),\n radial-gradient(farthest-corner at bottom left, #f7f8ff, transparent 50%);\n `,\n defaultLightTwo: css`\n background-color: #ccd5ff;\n background-image:\n radial-gradient(ellipse at top, #ccd5ff, transparent),\n radial-gradient(ellipse at bottom, #6b84ff, transparent);\n `,\n defaultMidOne: css`\n background-color: #6b84ff;\n background-image:\n radial-gradient(farthest-corner at top right, #2949e5, transparent 70%),\n radial-gradient(farthest-corner at bottom right, #2949e5, transparent 50%),\n radial-gradient(farthest-corner at top left, #6b84ff, transparent 80%),\n radial-gradient(farthest-corner at bottom left, #222d66, transparent 57%);\n `,\n defaultMidTwo: css`\n background-color: #6b84ff;\n background-image:\n radial-gradient(ellipse at top, #2949e5, transparent),\n radial-gradient(ellipse at bottom, #ccd5ff, transparent);\n `,\n green: css`\n background-color: #fafffa;\n background-image:\n radial-gradient(farthest-corner at bottom left, #b0e5a5, transparent 50%),\n radial-gradient(farthest-corner at top right, #268713, transparent 50%),\n radial-gradient(farthest-corner at top left, #44b62d, transparent 65%),\n radial-gradient(farthest-corner at bottom right, #44b62d, transparent 55%);\n `,\n greenWithPop: css`\n background-color: #fafffa;\n background-image:\n radial-gradient(farthest-corner at bottom left, #b0e5a5, transparent 50%),\n radial-gradient(farthest-corner at top right, #2949e5, transparent 50%),\n radial-gradient(farthest-corner at top left, #44b62d, transparent 65%),\n radial-gradient(farthest-corner at bottom right, #44b62d, transparent 55%);\n `,\n pink: css`\n background-color: #fffff0;\n background-image:\n radial-gradient(farthest-corner at bottom left, #ffc7e8, transparent 50%),\n radial-gradient(farthest-corner at top right, #e0128e, transparent 70%),\n radial-gradient(farthest-corner at top left, #ff40b3, transparent 65%),\n radial-gradient(farthest-corner at bottom right, #ff40b3, transparent 55%);\n `,\n pinkWithPop: css`\n background-color: #fffff0;\n background-image:\n radial-gradient(farthest-corner at top right, #e0128e, transparent 70%),\n radial-gradient(farthest-corner at top left, #ff40b3, transparent 65%),\n radial-gradient(farthest-corner at bottom right, #ff40b3, transparent 55%),\n radial-gradient(farthest-corner at bottom left, #2949e5, transparent 50%);\n `,\n playfulGradientOne: css`\n background-color: #f7f8ff;\n background-image:\n radial-gradient(farthest-corner at top left, #d65cff, transparent 68%),\n radial-gradient(farthest-corner at bottom right, #2949e5, transparent 50%),\n radial-gradient(farthest-corner at bottom left, #ffc7e8, transparent 57%),\n radial-gradient(farthest-corner at top right, #ffcaba, transparent 70%);\n `,\n playfulGradientTwo: css`\n background-color: #f7f8ff;\n background-image:\n radial-gradient(farthest-corner at top left, #44b62d, transparent 68%),\n radial-gradient(farthest-corner at bottom right, #eff18d, transparent 50%),\n radial-gradient(farthest-corner at bottom left, #ccd5ff, transparent 57%),\n radial-gradient(farthest-corner at top right, #2949e5, transparent 70%);\n `,\n purple: css`\n background-color: #f2caff;\n background-image:\n radial-gradient(ellipse at 0% 100%, #f9e5ff, transparent 50%),\n radial-gradient(ellipse at 100% 0%, #e093fa, transparent 70%);\n `,\n purpleWithPop: css`\n background-color: #f2caff;\n background-image:\n radial-gradient(farthest-corner at bottom left, #f2caff, transparent 50%),\n radial-gradient(farthest-corner at top left, #d65cff, transparent 65%),\n radial-gradient(farthest-corner at bottom right, #d65cff, transparent 55%),\n radial-gradient(farthest-corner at top right, #2949e5, transparent 70%);\n `,\n yellow: css`\n background-color: #fffff0;\n background-image:\n radial-gradient(farthest-corner at bottom left, #eff18d, transparent 50%),\n radial-gradient(farthest-corner at top right, #bcbf19, transparent 70%),\n radial-gradient(farthest-corner at top left, #e8ec1e, transparent 65%),\n radial-gradient(farthest-corner at bottom right, #e8ec1e, transparent 55%);\n `,\n yellowWithPop: css`\n background-color: #fffff0;\n background-image:\n radial-gradient(farthest-corner at bottom left, #eff18d, transparent 50%),\n radial-gradient(farthest-corner at top right, #bcbf19, transparent 70%),\n radial-gradient(farthest-corner at top left, #e8ec1e, transparent 65%),\n radial-gradient(farthest-corner at bottom right, #2949e5, transparent 55%);\n `,\n};\n\nexport type GradientNameType = keyof typeof gradients;\n\nexport const gradientMap: GradientNameType[] = Object.keys(gradients) as GradientNameType[];\n\nexport type GetBackgroundGradientType = GradientNameType | undefined;\n\n/**\n * Retrieves the CSS background gradient corresponding to the given gradient name.\n * If the specified gradient name is not found, the default gradient ('defaultDarkOne') is returned.\n * @param {GradientName} gradientName - The name of the gradient to retrieve.\n * @returns {CssStyleType} The CSS string representing the specified gradient.\n */\nexport const getBackgroundGradient = (\n gradientName: GetBackgroundGradientType = undefined,\n): ReturnType<typeof css> => {\n return isNotNil(gradientName) ? gradients[gradientName] : gradients.defaultDarkOne;\n};\n","import type { CSSProperties, JSX } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\n\nexport type ThumbnailStoryboardViewerProps = {\n storyboardUrl: string;\n storyboardHeight: number;\n storyboardWidth: number;\n frameWidth: number;\n frameHeight: number;\n frameCount: number;\n percent: number;\n targetWidth?: number;\n targetHeight?: number;\n targetAspectRatio?: number;\n scaleFactor?: number;\n framesPerRow?: number;\n cursorPosition?: number | null;\n};\n\n// this is the element that appears underneath the cursor when scrubbing\nconst ScrubLine = styled.div`\n position: absolute;\n top: 0;\n height: 100%;\n width: 2px;\n background-color: var(--wui-color-bg-fill);\n z-index: 1;\n`;\n\n// scaled dimensions based on aspect ratios\nconst getScaledDimensions = (\n originalAspectRatio: number,\n targetAspectRatio: number,\n viewerWidth: number,\n viewerHeight: number,\n) => {\n let scaledHeight = viewerHeight;\n let scaledWidth = viewerWidth;\n\n if (targetAspectRatio > originalAspectRatio) {\n scaledHeight = viewerWidth / originalAspectRatio;\n } else {\n scaledWidth = viewerHeight * originalAspectRatio;\n }\n\n return { scaledHeight, scaledWidth };\n};\n\n// the position to overlay the image\nconst getCoverProps = (\n viewerWidth: number,\n viewerHeight: number,\n scaledWidth: number,\n scaledHeight: number,\n) => {\n const top = (viewerHeight - scaledHeight) / 2;\n const left = (viewerWidth - scaledWidth) / 2;\n\n return {\n width: scaledWidth,\n height: scaledHeight,\n top,\n left,\n };\n};\n\n// the position for a specific frame\nconst getFramePosition = (\n frameIndex: number,\n framesPerRow: number,\n width: number,\n height: number,\n scaleFactor: number,\n frameCount: number,\n targetHeight: number,\n) => {\n const col = frameIndex % framesPerRow;\n const row = Math.floor(frameIndex / framesPerRow);\n const imageX = -width * col * scaleFactor;\n const imageY = -height * row * scaleFactor;\n\n // Calculate vertical centering offset\n // The frame should be centered within the target height\n const rows = Math.ceil(frameCount / framesPerRow);\n const frameHeightInStoryboard = height / rows;\n const verticalCenterOffset = height > width ? (targetHeight - frameHeightInStoryboard) / 2 : 0;\n\n const adjustedY = imageY - verticalCenterOffset;\n\n return `${imageX}px ${adjustedY}px`;\n};\n\nexport const ThumbnailStoryboardViewer = ({\n storyboardUrl,\n storyboardHeight,\n storyboardWidth,\n frameWidth,\n frameHeight,\n frameCount,\n percent,\n targetWidth = 200,\n targetHeight,\n targetAspectRatio,\n scaleFactor = 1,\n framesPerRow = 10,\n cursorPosition,\n ...props\n}: ThumbnailStoryboardViewerProps): JSX.Element => {\n // dimensions based on aspect ratios\n const originalAspectRatio = frameWidth / frameHeight;\n const effectiveTargetAspectRatio = targetAspectRatio ?? originalAspectRatio;\n const calculatedHeight = targetWidth / effectiveTargetAspectRatio;\n const finalHeight = targetHeight ?? calculatedHeight;\n const viewerDimensions = {\n viewerWidth: targetWidth,\n viewerHeight: finalHeight,\n };\n\n // scaled dimensions to maintain aspect ratio\n const { scaledHeight, scaledWidth } = getScaledDimensions(\n originalAspectRatio,\n effectiveTargetAspectRatio,\n viewerDimensions.viewerWidth,\n viewerDimensions.viewerHeight,\n );\n\n // positioning to cover the viewer with the image\n const coverProps = getCoverProps(\n viewerDimensions.viewerWidth,\n viewerDimensions.viewerHeight,\n scaledWidth,\n scaledHeight,\n );\n\n // which frame to show based on percent\n const frameIndex = Math.floor(percent * frameCount);\n\n // the background position to show the correct frame\n const backgroundPosition = getFramePosition(\n frameIndex,\n framesPerRow,\n coverProps.width,\n coverProps.height,\n scaleFactor,\n frameCount,\n calculatedHeight,\n );\n\n // background size\n const scaleFactorFromAspectRatioFit = coverProps.height / frameHeight;\n const scaledStoryboardWidth = storyboardWidth * scaleFactorFromAspectRatioFit * scaleFactor;\n const scaledStoryboardHeight = Math.floor(\n storyboardHeight * scaleFactorFromAspectRatioFit * scaleFactor,\n );\n const backgroundSize = `${scaledStoryboardWidth}px ${scaledStoryboardHeight}px`;\n const backgroundImage = `url(${storyboardUrl})`;\n\n // only show the scrub line if the cursor position is available\n const showScrubLine = isNotNil(cursorPosition);\n\n // subtract 2px (scrubline width) to center the line under the cursor pointer\n const scrubLinePosition = isNotNil(cursorPosition) ? `${cursorPosition - 1}px` : '0';\n\n const viewerStyles: CSSProperties = {\n position: 'relative',\n overflow: 'hidden',\n pointerEvents: 'none',\n width: `${viewerDimensions.viewerWidth * scaleFactor}px`,\n height: `${viewerDimensions.viewerHeight * scaleFactor}px`,\n };\n\n const storyboardStyles: CSSProperties = {\n position: 'absolute',\n width: coverProps.width,\n height: coverProps.height,\n left: coverProps.left,\n top: coverProps.top,\n backgroundImage,\n backgroundPosition,\n backgroundSize,\n };\n\n return (\n <div\n {...props}\n style={viewerStyles}\n >\n <div style={storyboardStyles} />\n {showScrubLine ? (\n <ScrubLine\n style={{\n left: scrubLinePosition,\n }}\n />\n ) : null}\n </div>\n );\n};\n","import type { JSX, ReactElement } from 'react';\nimport { cloneElement, Children } from 'react';\nimport { styled } from 'styled-components';\nimport { isNonEmptyArray } from '@wistia/type-guards';\nimport type { GradientNameType } from '../../private/helpers/getBackgroundGradient';\nimport { Thumbnail } from '../Thumbnail';\nimport type { ThumbnailProps } from '../Thumbnail';\n\nconst ThumbnailCollageContainer = styled.div`\n container-type: size;\n width: 100%;\n aspect-ratio: 16 / 9;\n display: flex;\n`;\n\nconst StyledThumbnailCollage = styled.div<{ $gradientBackground: GradientNameType }>`\n display: grid;\n gap: var(--wui-space-01);\n width: 100%;\n grid-template-columns: 3fr 2fr;\n grid-template-rows: 1fr 1fr;\n\n &:has(:nth-child(1)) {\n grid-template-areas:\n 'a a'\n 'a a';\n }\n\n &:has(:nth-child(2)) {\n grid-template-areas:\n 'a b'\n 'a b';\n }\n\n &:has(:nth-child(3)) {\n grid-template-areas:\n 'a b'\n 'a c';\n }\n\n > :nth-child(1) {\n grid-area: a;\n }\n\n > :nth-child(2) {\n grid-area: b;\n }\n\n > :nth-child(3) {\n grid-area: c;\n }\n\n [data-wui-thumbnail-container] {\n container-type: unset;\n aspect-ratio: unset;\n height: 100%;\n width: 100%;\n }\n`;\n\nexport type ThumbnailCollageProps = {\n /**\n * An array of `Thumbnail` components to show in the collage. Supports up to 3 `Thumbnail`s.\n */\n children?: ReactElement<ThumbnailProps>[] | undefined;\n /**\n * The type of gradient to show if no `Thumbnail`s are provided\n */\n gradientBackground?: GradientNameType;\n};\n\n/**\n * A `ThumbnailCollage` is a component that displays multiple `Thumbnail` components in a responsive grid layout.\n * It supports up to 3 thumbnails arranged in different configurations based on the number of children provided.\n * If no thumbnails are provided, it displays a fallback thumbnail with a gradient background.\n */\nconst ThumbnailCollage = ({\n children = [],\n gradientBackground = 'defaultMidOne',\n ...props\n}: ThumbnailCollageProps): JSX.Element => {\n const thumbnailArray = Children.toArray(children);\n\n // limit children to a maximum of three thumbnails since that is the most we can display in the collage\n const truncatedThumbnails = thumbnailArray.slice(0, 3) as ReactElement<ThumbnailProps>[];\n\n const thumbnails = isNonEmptyArray(thumbnailArray)\n ? truncatedThumbnails.map((child) => {\n // Now that we know the child is a Thumbnail component, we can safely clone it\n return cloneElement(child, {\n ...child.props,\n children: undefined,\n });\n })\n : [\n // ThumbnailCollage will fallback to a Thumbnail with a gradient background if no children are provided\n <Thumbnail\n key=\"fallback\"\n gradientBackground={gradientBackground}\n thumbnailUrl={null}\n />,\n ];\n\n return (\n <ThumbnailCollageContainer>\n <StyledThumbnailCollage\n $gradientBackground={gradientBackground}\n data-wui-thumbnail-collage={true}\n {...props}\n >\n {thumbnails}\n </StyledThumbnailCollage>\n </ThumbnailCollageContainer>\n );\n};\n\nexport { ThumbnailCollage };\n","import { styled, css } from 'styled-components';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { isNotNil } from '@wistia/type-guards';\n\n// brandmark = the Wistia flags icon\n// logotype = the \"wistia\" text\n\n// because the flags are shorter than the logo text we need to have a 2nd path (and viewBox),\n// for when the brandmark is rendered without the logotype (paths below look similar but are unique)\nconst renderBrandmark = (brandmarkColor: string, iconOnly: boolean) => {\n if (iconOnly) {\n return (\n <g\n data-testid=\"ui-wistia-logo-brandmark\"\n fill={brandmarkColor}\n >\n <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\" />\n </g>\n );\n }\n\n return (\n <g\n data-testid=\"ui-wistia-logo-brandmark\"\n fill={brandmarkColor}\n >\n <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\" />\n </g>\n );\n};\n\nconst renderLogotype = (logotypeColor: string, iconOnly: boolean) => {\n if (iconOnly) {\n return null;\n }\n\n return (\n <g\n data-testid=\"ui-wistia-logo-logotype\"\n fill={logotypeColor}\n >\n <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\" />\n </g>\n );\n};\n\n// viewBox sizes differ depending on which parts of the logo are visible\nconst computedViewBox = (iconOnly: boolean) => {\n if (iconOnly) {\n return '0 0 34.4 26.78';\n }\n\n return '0 0 144 31.47';\n};\n\ntype WistiaLogoComponentProps = {\n height: number;\n $hoverColor: string | undefined;\n $opticallyCentered: boolean;\n $iconOnly: boolean;\n};\n\nconst WistiaLogoComponent = styled.svg<WistiaLogoComponentProps>`\n height: ${({ height }) => `${height}px`};\n\n /* ensure it will always fit on mobile */\n max-height: 22vw;\n max-width: 100%;\n\n &:hover {\n path {\n ${({ $hoverColor }) => ($hoverColor !== undefined ? `fill: ${$hoverColor}` : null)};\n }\n }\n\n ${({ $opticallyCentered, $iconOnly }) => {\n if ($opticallyCentered) {\n if ($iconOnly) {\n return css`\n aspect-ratio: 1;\n padding: 11.85% 3.12% 13.91%;\n `;\n }\n return css`\n aspect-ratio: 127 / 32;\n `;\n }\n return null;\n }}\n`;\n\nexport type WistiaLogoProps = Omit<ComponentPropsWithoutRef<'svg'>, 'height' | 'href'> & {\n /**\n * An optional accessible description for the logo\n */\n description?: string;\n /**\n * Height, in pixels, of the logo\n */\n height?: number;\n /**\n * If provided, will wrap the logo in a link\n */\n href?: string;\n /**\n * @ignore\n * Change the color when hovering over the logo\n */\n hoverColor?: string;\n /**\n * Display just the icon portion of the logo (ie. hide `Wistia` text)\n * note: there is no analogue to this because by brand guidelines, the\n * `Wistia` text must not be displayed without the \"flags\" iconography\n */\n iconOnly?: boolean;\n\n /**\n * An accessible title for the logo (defaults to \"Wistia Logo\")\n */\n title?: string;\n /**\n * Style of the logo\n */\n variant?: 'dark' | 'light' | 'standard';\n /**\n * If true, the logo will be optically centered within its container\n */\n opticallyCentered?: boolean;\n};\n\n/**\n * Render the Wistia logo in various ways.\n */\nexport const WistiaLogo = ({\n description = undefined,\n height = 100,\n hoverColor = undefined,\n href = undefined,\n iconOnly = false,\n opticallyCentered = false,\n title = 'Wistia Logo',\n variant = 'standard',\n ...props\n}: WistiaLogoProps) => {\n // can't use `useThemeColor` since these are not in our color palette yet\n const primaryColor = '#2949e5';\n const darkColor = '#000934';\n const lightColor = '#ffffff';\n\n const VARIANT_COLORS = {\n standard: {\n brandmark: primaryColor,\n logotype: darkColor,\n },\n dark: {\n brandmark: darkColor,\n logotype: darkColor,\n },\n light: {\n brandmark: lightColor,\n logotype: lightColor,\n },\n };\n const brandmarkColor = VARIANT_COLORS[variant].brandmark;\n const logotypeColor = VARIANT_COLORS[variant].logotype;\n\n const Logo = (\n <WistiaLogoComponent\n $hoverColor={hoverColor}\n $iconOnly={iconOnly}\n $opticallyCentered={opticallyCentered}\n height={height}\n preserveAspectRatio={opticallyCentered ? 'xMidYMin' : undefined}\n role=\"img\"\n viewBox={computedViewBox(iconOnly)}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <title>{title}</title>\n {isNotNil(description) ? <desc>{description}</desc> : null}\n {renderBrandmark(brandmarkColor, iconOnly)}\n {renderLogotype(logotypeColor, iconOnly)}\n </WistiaLogoComponent>\n );\n\n // wrap logo in a link if href prop is present\n return href !== undefined ? <a href={href}>{Logo}</a> : Logo;\n};\n\nWistiaLogo.displayName = 'WistiaLogo_UI';\n","import type { ComponentProps, JSX, ReactNode } from 'react';\nimport { styled } from 'styled-components';\nimport { isNotNil } from '@wistia/type-guards';\nimport { cloneElement } from 'react';\nimport type {\n ButtonAsButtonProps,\n ButtonAsLinkProps,\n ButtonProps,\n ButtonSizes,\n} from '../Button/Button';\nimport { IconButton } from '../IconButton';\nimport { Icon } from '../Icon';\nimport { Menu } from '../Menu';\nimport { Button } from '../Button';\nimport type { ResponsiveObject } from '../../private/hooks/useResponsiveProp/useResponsiveProp';\nimport type { ButtonVariants } from '../Button/buttonStyles';\nimport { getColorScheme } from '../../private/helpers/getColorScheme';\nimport type { ColorSchemeTypes } from '../ColorSchemeWrapper';\n\nconst StyledSplitButton = styled.span<{ $colorScheme: ColorSchemeTypes }>`\n ${({ $colorScheme }) => getColorScheme($colorScheme)};\n white-space: nowrap;\n\n &:has(:nth-child(2)) {\n > [data-wui-button='true']:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-right: 0;\n }\n\n > [data-wui-button='true']:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n display: inline-flex;\n }\n }\n`;\nexport type SplitButtonProps = {\n /**\n * The text for the primary button\n */\n children?: ButtonProps['children'];\n\n colorScheme?: ButtonProps['colorScheme'];\n /**\n * The icon to use for the menu toggle, defaults to a down caret\n * @default <Icon type=\"caret-down\" />\n */\n menuIcon?: JSX.Element;\n\n /**\n * The menu items to render within the menu. If the secondary behavior of `SplitButton` should be a button, rather than a menu, omit `menuItems` and use `secondaryAction` instead.\n */\n menuItems?: ReactNode;\n\n /**\n * The label to use for the menu, only for screenreaders\n */\n menuLabel?: string;\n\n /**\n * If using `menuItems`, any additional props to pass to the `Menu` component\n */\n menuProps?: Omit<ComponentProps<typeof Menu>, 'children' | 'disabled' | 'trigger'>;\n\n /**\n * Secondary action should not be used when menuItems is set\n */\n secondaryAction?: JSX.Element;\n\n /**\n * The size of button to display. Can be used as a [responsive prop](/docs/ui-docs-responsive-props--docs)\n */\n size?: ButtonSizes | ResponsiveObject<ButtonSizes>;\n\n /**\n * A visual style for the button\n */\n variant?: ButtonVariants;\n} & (ButtonAsButtonProps | ButtonAsLinkProps);\n\n/**\n * A SplitButton is an extension of [Button]() that adds a menu to the right hand side of the button.\n */\nexport const SplitButton = ({\n children,\n menuLabel = 'Select an option',\n menuIcon = <Icon type=\"caret-down\" />,\n menuItems,\n disabled = false,\n colorScheme = 'inherit',\n variant = 'solid',\n secondaryAction,\n size = 'md',\n unstyled = false,\n menuProps = {},\n ...props\n}: SplitButtonProps): JSX.Element => {\n return (\n <StyledSplitButton $colorScheme={colorScheme}>\n <Button\n disabled={disabled}\n size={size}\n unstyled={unstyled}\n variant={variant}\n {...props}\n >\n {children}\n </Button>\n {isNotNil(menuItems) && (\n <Menu\n {...menuProps}\n disabled={disabled}\n trigger={\n <IconButton\n disabled={disabled}\n label={menuLabel}\n size={size}\n unstyled={unstyled}\n variant={variant}\n >\n {menuIcon}\n </IconButton>\n }\n >\n {menuItems}\n </Menu>\n )}\n {isNotNil(secondaryAction) &&\n cloneElement(secondaryAction, { disabled, size, unstyled, variant, colorScheme })}\n </StyledSplitButton>\n );\n};\n\nSplitButton.displayName = 'SplitButton_UI';\n","import type { JSX, ReactNode, ComponentPropsWithoutRef } from 'react';\nimport { styled } from 'styled-components';\n\ntype CustomizableTokens =\n | '--wui-color-backdrop'\n | '--wui-color-bg-app'\n | '--wui-color-bg-fill-active'\n | '--wui-color-bg-fill-hover'\n | '--wui-color-bg-fill-white '\n | '--wui-color-bg-fill'\n | '--wui-color-bg-surface-active'\n | '--wui-color-bg-surface-disabled'\n | '--wui-color-bg-surface-hover'\n | '--wui-color-bg-surface-secondary-active'\n | '--wui-color-bg-surface-secondary-hover'\n | '--wui-color-bg-surface-secondary'\n | '--wui-color-bg-surface-selected-active'\n | '--wui-color-bg-surface-selected-hover'\n | '--wui-color-bg-surface-selected'\n | '--wui-color-bg-surface-tertiary'\n | '--wui-color-bg-surface'\n | '--wui-color-bg-tooltip'\n | '--wui-color-border-active-selected'\n | '--wui-color-border-active'\n | '--wui-color-border-disabled'\n | '--wui-color-border-hover-selected'\n | '--wui-color-border-hover'\n | '--wui-color-border-secondary-active'\n | '--wui-color-border-secondary-hover'\n | '--wui-color-border-secondary'\n | '--wui-color-border-selected'\n | '--wui-color-border'\n | '--wui-color-drop-shadow'\n | '--wui-color-focus-color'\n | '--wui-color-focus-ring-disabled'\n | '--wui-color-focus-ring'\n | '--wui-color-icon-disabled'\n | '--wui-color-icon-on-fill'\n | '--wui-color-icon-selected'\n | '--wui-color-icon'\n | '--wui-color-invalid-indicator'\n | '--wui-color-notification-pill-color'\n | '--wui-color-segmented-control-checked-background'\n | '--wui-color-text-button'\n | '--wui-color-text-disabled'\n | '--wui-color-text-link'\n | '--wui-color-text-on-fill-white-selected'\n | '--wui-color-text-on-fill'\n | '--wui-color-text-secondary'\n | '--wui-color-text-selected'\n | '--wui-color-text'\n | '--wui-typography-family-brand'\n | '--wui-typography-family-default'\n | '--wui-typography-family-mono'\n | '--wui-typography-weight-body-bold'\n | '--wui-typography-weight-body'\n | '--wui-typography-weight-heading'\n | '--wui-typography-weight-label-bold'\n | '--wui-typography-weight-label';\n\ntype StyledCustomizableThemeWrapperProps = {\n /* add styled-component props here */\n children: ReactNode;\n $overrides: Partial<Record<CustomizableTokens, number | string>>;\n};\n\nconst StyledCustomizableThemeWrapper = styled.div<StyledCustomizableThemeWrapperProps>(\n (props) => props.$overrides,\n);\n\nexport type CustomizableThemeWrapperProps = ComponentPropsWithoutRef<'div'> & {\n children: ReactNode;\n overrides: Partial<Record<CustomizableTokens, number | string>>;\n};\n\n/**\n * Used for overriding the default theme tokens with custom values.\n * This should only be used when the ui systems team has been consulted first.\n */\nexport const CustomizableThemeWrapper = ({\n children,\n overrides,\n ...props\n}: CustomizableThemeWrapperProps): JSX.Element => (\n <StyledCustomizableThemeWrapper\n {...props}\n $overrides={overrides}\n data-wui-theme=\"true\"\n >\n {children}\n </StyledCustomizableThemeWrapper>\n);\n\nCustomizableThemeWrapper.displayName = 'CustomizableThemeWrapper_UI';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,2BAA4C;AAC5C,IAAAC,gBAA0C;;;ACF1C,IAAAC,6BAAkC;;;ACAlC,+BAAoB;AAIb,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACJzC,IAAAC,6BAAoB;;;ACApB,IAAAC,4BAAoB;AAEb,IAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4U1B,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AEjCnB,IAAAC,4BAAoB;AAEb,IAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACFlC,IAAAC,4BAAoB;AAEb,IAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACF7B,IAAAC,4BAAoB;AAEb,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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","names":["Combobox","import_react","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_styled_components","import_react","import_jsx_runtime","import_jsx_runtime","TooltipProvider","import_type_guards","dateTime","dateTime","dateTime","import_type_guards","import_type_guards","import_type_guards","import_react","import_type_guards","import_react","import_react","import_react","import_react","useOriginalFilePicker","useOriginalImperativeFilePicker","import_react","import_type_guards","focusElement","import_react","import_react","import_react","import_react","import_type_guards","import_react","import_react","import_type_guards","import_react","mq","import_react","import_react","import_react","import_sonner","import_react","import_styled_components","import_type_guards","import_type_guards","import_styled_components","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_jsx_runtime","sonnerToast","import_react","import_styled_components","import_react","import_styled_components","import_type_guards","import_styled_components","import_styled_components","import_type_guards","import_styled_components","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_type_guards","import_react","mq","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_jsx_runtime","RouterLink","import_jsx_runtime","isLink","import_jsx_runtime","import_react","import_type_guards","import_styled_components","import_type_guards","import_styled_components","import_type_guards","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_react","import_styled_components","import_type_guards","import_jsx_runtime","getFillStyle","import_react","import_styled_components","import_type_guards","import_type_guards","import_jsx_runtime","DEFAULT_ELEMENT","import_react","import_styled_components","import_type_guards","import_jsx_runtime","variantStyleMap","DEFAULT_ELEMENT","variantElementMap","import_styled_components","import_type_guards","import_jsx_runtime","import_react","import_styled_components","import_jsx_runtime","StyledButton","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_react","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_react","import_styled_components","import_jsx_runtime","import_type_guards","import_react","import_styled_components","import_type_guards","import_styled_components","import_styled_components","import_type_guards","import_jsx_runtime","import_styled_components","import_type_guards","import_jsx_runtime","import_jsx_runtime","disabledStyle","import_react","import_type_guards","import_styled_components","import_react","import_type_guards","import_react","import_styled_components","import_jsx_runtime","DEFAULT_ELEMENT","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_jsx_runtime","handleBlur","import_jsx_runtime","import_jsx_runtime","import_react","import_type_guards","import_styled_components","import_jsx_runtime","CollapsibleRoot","import_react","import_react_collapsible","import_styled_components","import_jsx_runtime","import_jsx_runtime","import_styled_components","import_react_collapsible","import_type_guards","import_jsx_runtime","import_react","import_styled_components","import_react","import_fn","import_fn","import_fn","saturationChannel","valueChannel","import_jsx_runtime","import_styled_components","import_jsx_runtime","disabledStyle","StyledLabel","import_jsx_runtime","RadioGroupRoot","import_styled_components","import_react_radio_group","import_fn","import_styled_components","import_jsx_runtime","import_react_tooltip","import_styled_components","import_jsx_runtime","TooltipContent","TooltipRoot","TooltipTrigger","TooltipPortal","TooltipArrow","import_jsx_runtime","Container","RadioGroupItem","import_react","import_styled_components","import_jsx_runtime","Container","ToggleGroupRoot","import_styled_components","import_jsx_runtime","Container","ItemsContainer","LabelContainer","import_styled_components","import_react_toggle_group","import_fn","import_jsx_runtime","import_jsx_runtime","Container","ToggleGroupItem","import_jsx_runtime","PopoverRoot","import_react_popover","import_styled_components","import_jsx_runtime","PopoverContent","PopoverPortal","import_styled_components","import_jsx_runtime","Container","import_react","import_react_popover","import_styled_components","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","PopoverTrigger","import_styled_components","import_jsx_runtime","Container","import_react","import_react","import_styled_components","import_type_guards","import_jsx_runtime","getSizeCss","import_jsx_runtime","hasAccessibleDerivatives","import_jsx_runtime","import_jsx_runtime","import_react","import_fn","import_react","import_styled_components","import_type_guards","import_styled_components","import_jsx_runtime","handleFocus","import_jsx_runtime","import_react","import_styled_components","import_fn","import_react","import_styled_components","import_fn","import_jsx_runtime","import_jsx_runtime","Container","SliderRoot","SliderTrack","SliderThumb","import_react","import_styled_components","import_react","import_styled_components","import_jsx_runtime","Canvas","import_jsx_runtime","Container","Thumb","import_react","import_styled_components","import_type_guards","import_react","import_styled_components","import_type_guards","import_jsx_runtime","import_styled_components","variantStyleMap","variantElementMap","import_jsx_runtime","ComboboxPopover","ComboboxItem","Combobox","import_type_guards","import_react","import_type_guards","import_react","import_styled_components","import_react","import_jsx_runtime","import_styled_components","import_react_dropdown_menu","import_jsx_runtime","import_react","import_styled_components","import_react_dropdown_menu","import_type_guards","import_react","import_styled_components","import_type_guards","import_jsx_runtime","StyledButton","import_styled_components","import_jsx_runtime","import_jsx_runtime","Trigger","import_react","import_react_dropdown_menu","import_jsx_runtime","import_react_dropdown_menu","import_jsx_runtime","import_react_dropdown_menu","import_jsx_runtime","import_react_dropdown_menu","import_type_guards","import_jsx_runtime","import_react","import_react_dropdown_menu","import_jsx_runtime","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_jsx_runtime","StyledLabel","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_styled_components","import_react","import_jsx_runtime","StyledHeading","HeadingComponent","import_react","import_styled_components","import_type_guards","import_react","import_type_guards","import_styled_components","import_jsx_runtime","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_jsx_runtime","StyledInput","handleBlur","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_react","import_react","import_react","import_react","import_type_guards","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_jsx_runtime","DEFAULT_ELEMENT","import_styled_components","import_react","import_type_guards","import_jsx_runtime","import_styled_components","import_react","import_type_guards","import_jsx_runtime","StyledIconButton","import_styled_components","import_type_guards","import_jsx_runtime","Label","import_type_guards","import_styled_components","import_styled_components","import_type_guards","import_jsx_runtime","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_react","import_styled_components","import_react_dialog","import_type_guards","import_styled_components","import_react_dialog","import_styled_components","import_jsx_runtime","DialogClose","import_jsx_runtime","DialogTitle","import_react","import_styled_components","import_react_dialog","import_react","import_type_guards","import_jsx_runtime","DialogContent","import_react_dialog","import_styled_components","import_jsx_runtime","DialogRoot","open","DialogPortal","import_jsx_runtime","import_react_popover","import_styled_components","import_type_guards","import_react_popover","import_styled_components","import_jsx_runtime","RadixPopoverArrow","import_jsx_runtime","StyledContent","import_styled_components","import_type_guards","import_jsx_runtime","ProgressIndicator","ProgressRoot","import_type_guards","import_react","import_styled_components","import_jsx_runtime","sizeSmall","sizeMedium","sizeLarge","getSizeCss","import_react","import_react","import_styled_components","import_type_guards","import_jsx_runtime","StyledCard","import_styled_components","import_type_guards","import_styled_components","StyledCard","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_styled_components","import_throttle_debounce","import_jsx_runtime","Container","import_react","import_styled_components","import_react_toggle_group","import_type_guards","import_react","import_jsx_runtime","import_styled_components","import_type_guards","import_react","import_jsx_runtime","import_jsx_runtime","ToggleGroupRoot","import_react","import_styled_components","import_react_toggle_group","import_type_guards","import_jsx_runtime","ToggleGroupItem","import_react","import_styled_components","import_jsx_runtime","StyledTrigger","StyledContent","import_react_select","import_react","import_styled_components","import_type_guards","import_jsx_runtime","import_react_select","import_styled_components","import_jsx_runtime","StyledLabel","import_react_slider","import_styled_components","import_type_guards","import_jsx_runtime","RadixSliderRoot","RadixSliderTrack","RadixSliderRange","RadixSliderThumb","import_styled_components","import_jsx_runtime","import_styled_components","import_react","import_jsx_runtime","import_react","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_styled_components","import_jsx_runtime","import_react","import_type_guards","import_react","import_jsx_runtime","RadixTabsRoot","import_react_tabs","import_jsx_runtime","RadixTabsContent","import_react_tabs","import_styled_components","import_type_guards","import_styled_components","import_jsx_runtime","import_jsx_runtime","RadixTabList","import_react","import_type_guards","import_styled_components","import_react_tabs","RadixTabsTrigger","import_jsx_runtime","import_styled_components","import_type_guards","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_type_guards","import_styled_components","import_styled_components","import_type_guards","import_jsx_runtime","import_jsx_runtime","import_react","import_styled_components","import_type_guards","import_jsx_runtime","import_styled_components","import_type_guards","import_jsx_runtime","import_styled_components","import_type_guards","import_react","import_jsx_runtime","import_styled_components","import_jsx_runtime"]}