@yahoo/uds 3.125.0 → 3.126.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.
- package/dist/automated-config/dist/generated/autoVariants.cjs +35 -0
- package/dist/automated-config/dist/generated/autoVariants.d.cts +7 -0
- package/dist/automated-config/dist/generated/autoVariants.d.ts +7 -0
- package/dist/automated-config/dist/generated/autoVariants.js +35 -0
- package/dist/automated-config/dist/generated/generatedConfigs.cjs +1493 -0
- package/dist/automated-config/dist/generated/generatedConfigs.d.cts +222 -1
- package/dist/automated-config/dist/generated/generatedConfigs.d.ts +222 -1
- package/dist/automated-config/dist/generated/generatedConfigs.js +1493 -1
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +314 -0
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +2 -1
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.ts +2 -1
- package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +314 -0
- package/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +2 -2
- package/dist/automated-config/dist/utils/getConfigVariantProperties.d.ts +2 -2
- package/dist/components/Banner/Banner.cjs +167 -0
- package/dist/components/Banner/Banner.d.cts +56 -0
- package/dist/components/Banner/Banner.d.ts +56 -0
- package/dist/components/Banner/Banner.js +165 -0
- package/dist/components/Banner/BannerContent.cjs +20 -0
- package/dist/components/Banner/BannerContent.d.cts +13 -0
- package/dist/components/Banner/BannerContent.d.ts +13 -0
- package/dist/components/Banner/BannerContent.js +18 -0
- package/dist/components/Banner/BannerDescription.cjs +47 -0
- package/dist/components/Banner/BannerDescription.d.cts +36 -0
- package/dist/components/Banner/BannerDescription.d.ts +36 -0
- package/dist/components/Banner/BannerDescription.js +45 -0
- package/dist/components/Banner/BannerTitle.cjs +42 -0
- package/dist/components/Banner/BannerTitle.d.cts +34 -0
- package/dist/components/Banner/BannerTitle.d.ts +34 -0
- package/dist/components/Banner/BannerTitle.js +40 -0
- package/dist/components/Banner/index.cjs +11 -0
- package/dist/components/Banner/index.d.cts +6 -0
- package/dist/components/Banner/index.d.ts +6 -0
- package/dist/components/Banner/index.js +7 -0
- package/dist/components/Banner/utils.cjs +56 -0
- package/dist/components/Banner/utils.d.cts +26 -0
- package/dist/components/Banner/utils.d.ts +26 -0
- package/dist/components/Banner/utils.js +52 -0
- package/dist/components/Divider/DividerCore.cjs +1 -1
- package/dist/components/Divider/DividerCore.js +1 -1
- package/dist/components/FormLabel.cjs +4 -2
- package/dist/components/FormLabel.d.cts +2 -17
- package/dist/components/FormLabel.d.ts +2 -17
- package/dist/components/FormLabel.js +4 -2
- package/dist/components/Image.cjs +4 -2
- package/dist/components/Image.d.cts +2 -61
- package/dist/components/Image.d.ts +2 -61
- package/dist/components/Image.js +4 -2
- package/dist/components/client/Avatar/AvatarIcon.cjs +2 -2
- package/dist/components/client/Avatar/AvatarIcon.js +2 -2
- package/dist/components/client/Avatar/AvatarImage.cjs +1 -0
- package/dist/components/client/Avatar/AvatarImage.js +1 -0
- package/dist/components/client/Avatar/AvatarText.cjs +1 -1
- package/dist/components/client/Avatar/AvatarText.js +1 -1
- package/dist/components/client/Badge.cjs +1 -1
- package/dist/components/client/Badge.js +1 -1
- package/dist/components/client/BottomSheet/BottomSheetHeader.cjs +1 -1
- package/dist/components/client/BottomSheet/BottomSheetHeader.js +1 -1
- package/dist/components/client/Button.cjs +1 -1
- package/dist/components/client/Button.js +1 -1
- package/dist/components/client/Checkbox.cjs +4 -3
- package/dist/components/client/Checkbox.js +4 -3
- package/dist/components/client/Chip/ChipBase.cjs +2 -2
- package/dist/components/client/Chip/ChipBase.js +2 -2
- package/dist/components/client/Chip/ChipDismissible.cjs +2 -2
- package/dist/components/client/Chip/ChipDismissible.js +2 -2
- package/dist/components/client/IconButton.cjs +1 -1
- package/dist/components/client/IconButton.js +1 -1
- package/dist/components/client/Input/Input.cjs +3 -2
- package/dist/components/client/Input/Input.js +3 -2
- package/dist/components/client/Input/InputHelpTextInternal.cjs +4 -3
- package/dist/components/client/Input/InputHelpTextInternal.d.cts +1 -14
- package/dist/components/client/Input/InputHelpTextInternal.d.ts +1 -14
- package/dist/components/client/Input/InputHelpTextInternal.js +5 -4
- package/dist/components/client/Menu/Menu.ItemBase.cjs +2 -2
- package/dist/components/client/Menu/Menu.ItemBase.js +2 -2
- package/dist/components/client/Menu/Menu.ItemCheckbox.cjs +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.d.ts +1 -1
- package/dist/components/client/Menu/Menu.ItemCheckbox.js +1 -1
- package/dist/components/client/Popover/PopoverContent.cjs +3 -3
- package/dist/components/client/Popover/PopoverContent.js +3 -3
- package/dist/components/client/Radio/Radio.cjs +2 -1
- package/dist/components/client/Radio/Radio.js +2 -1
- package/dist/components/client/Switch.cjs +4 -4
- package/dist/components/client/Switch.js +4 -4
- package/dist/components/client/Toast/Toast.cjs +3 -3
- package/dist/components/client/Toast/Toast.js +3 -3
- package/dist/components/client/Toast/UDSToastConfigProvider.d.cts +5 -5
- package/dist/components/client/Toast/UDSToastConfigProvider.d.ts +5 -5
- package/dist/components/client/Tooltip/TooltipContent.cjs +2 -2
- package/dist/components/client/Tooltip/TooltipContent.js +2 -2
- package/dist/components/client/index.cjs +1 -1
- package/dist/components/client/index.js +1 -1
- package/dist/components/experimental/Spinner.cjs +1 -1
- package/dist/components/experimental/Spinner.js +1 -1
- package/dist/components/experimental/Table.cjs +1 -1
- package/dist/components/experimental/Table.js +1 -1
- package/dist/components/experimental/client/Accordion.cjs +4 -4
- package/dist/components/experimental/client/Accordion.js +4 -4
- package/dist/components/experimental/client/Modal.cjs +2 -2
- package/dist/components/experimental/client/Modal.js +2 -2
- package/dist/components/experimental/client/SegmentedControl.cjs +3 -3
- package/dist/components/experimental/client/SegmentedControl.d.cts +1 -2
- package/dist/components/experimental/client/SegmentedControl.js +3 -3
- package/dist/components/experimental/client/SwitchV2.cjs +1 -1
- package/dist/components/experimental/client/SwitchV2.js +1 -1
- package/dist/components/experimental/client/Tabs.cjs +2 -2
- package/dist/components/experimental/client/Tabs.js +2 -2
- package/dist/components/index.cjs +15 -3
- package/dist/components/index.d.cts +6 -1
- package/dist/components/index.d.ts +6 -1
- package/dist/components/index.js +12 -4
- package/dist/config/dist/index.cjs +381 -46
- package/dist/config/dist/index.js +381 -46
- package/dist/index.cjs +12 -3
- package/dist/index.d.cts +7 -3
- package/dist/index.d.ts +7 -3
- package/dist/index.js +9 -5
- package/dist/styles/styler.d.cts +100 -93
- package/dist/styles/styler.d.ts +100 -93
- package/dist/styles/variants.d.cts +45 -0
- package/dist/styles/variants.d.ts +45 -0
- package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.cjs +35 -0
- package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.js +35 -0
- package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.js.map +1 -1
- package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.cjs +1493 -0
- package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.js +1493 -1
- package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.js.map +1 -1
- package/dist/tailwind/dist/config/dist/index.cjs +381 -46
- package/dist/tailwind/dist/config/dist/index.js +381 -46
- package/dist/tailwind/dist/config/dist/index.js.map +1 -1
- package/dist/tailwind/dist/tailwind/plugins/components.cjs +1 -0
- package/dist/tailwind/dist/tailwind/plugins/components.js +2 -1
- package/dist/tailwind/dist/tailwind/plugins/components.js.map +1 -1
- package/dist/tailwind/dist/types/dist/index.d.cts.map +1 -1
- package/dist/tailwind/dist/types/dist/index.d.ts.map +1 -1
- package/dist/tokens/automation/configs/index.cjs +1 -0
- package/dist/tokens/automation/configs/index.d.cts +2 -2
- package/dist/tokens/automation/configs/index.d.ts +2 -2
- package/dist/tokens/automation/configs/index.js +2 -2
- package/dist/tokens/automation/index.cjs +1 -0
- package/dist/tokens/automation/index.d.cts +2 -2
- package/dist/tokens/automation/index.d.ts +2 -2
- package/dist/tokens/automation/index.js +2 -2
- package/dist/tokens/index.cjs +1 -0
- package/dist/tokens/index.d.cts +3 -3
- package/dist/tokens/index.d.ts +3 -3
- package/dist/tokens/index.js +2 -2
- package/dist/tokens/types.d.cts +2 -2
- package/dist/tokens/types.d.ts +2 -2
- package/dist/types/dist/index.d.cts +19 -1
- package/dist/types/dist/index.d.ts +19 -1
- package/dist/uds/generated/componentData.cjs +1486 -1338
- package/dist/uds/generated/componentData.js +1465 -1341
- package/dist/uds/generated/tailwindPurge.cjs +28 -1
- package/dist/uds/generated/tailwindPurge.js +28 -1
- package/generated/componentData.json +1916 -1765
- package/generated/tailwindPurge.ts +4 -4
- package/package.json +1 -1
- package/dist/uds/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +0 -2
- package/dist/uds/dist/automated-config/dist/properties.d.cts +0 -5
- package/dist/uds/dist/automated-config/dist/types/ComponentConfig.d.cts +0 -3
- package/dist/uds/dist/automated-config/dist/types/ComponentStyles.d.cts +0 -2
- package/dist/uds/dist/automated-config/dist/types/ConfigSchema.d.cts +0 -2
- package/dist/uds/dist/automated-config/dist/utils/buildConfigSchema.d.cts +0 -7
- package/dist/uds/dist/automated-config/dist/utils/coalesceConfigVariant.d.cts +0 -2
- package/dist/uds/dist/automated-config/dist/utils/defaults.d.cts +0 -2
- package/dist/uds/dist/automated-config/dist/utils/getConfigVariantComponentStatesMatrix.d.cts +0 -2
- package/dist/uds/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +0 -3
- package/dist/uds/dist/automated-config/dist/utils/getConfigVariantPseudoStates.d.cts +0 -3
- package/dist/uds/dist/automated-config/dist/utils/getConfigVariants.d.cts +0 -2
- package/dist/uds/dist/automated-config/dist/utils/index.d.cts +0 -12
- package/dist/uds/dist/automated-config/dist/utils/subcomponents.d.cts +0 -2
- package/dist/uds/dist/components/Box.d.cts +0 -4
- package/dist/uds/dist/components/Divider/Divider.d.cts +0 -3
- package/dist/uds/dist/components/Divider/DividerCore.d.cts +0 -5
- package/dist/uds/dist/components/Divider/DividerInternal.d.cts +0 -5
- package/dist/uds/dist/components/Divider/index.d.cts +0 -2
- package/dist/uds/dist/components/FormLabel.d.cts +0 -4
- package/dist/uds/dist/components/HStack.d.cts +0 -5
- package/dist/uds/dist/components/Icon.d.cts +0 -4
- package/dist/uds/dist/components/Image.d.cts +0 -3
- package/dist/uds/dist/components/Link.d.cts +0 -4
- package/dist/uds/dist/components/Scrim.d.cts +0 -3
- package/dist/uds/dist/components/Text.d.cts +0 -4
- package/dist/uds/dist/components/VStack.d.cts +0 -5
- package/dist/uds/dist/components/client/Avatar/Avatar.d.cts +0 -5
- package/dist/uds/dist/components/client/Avatar/AvatarIcon.d.cts +0 -7
- package/dist/uds/dist/components/client/Avatar/AvatarImage.d.cts +0 -9
- package/dist/uds/dist/components/client/Avatar/AvatarText.d.cts +0 -7
- package/dist/uds/dist/components/client/Avatar/index.d.cts +0 -7
- package/dist/uds/dist/components/client/Badge.d.cts +0 -6
- package/dist/uds/dist/components/client/BottomSheet/BottomSheet.d.cts +0 -7
- package/dist/uds/dist/components/client/BottomSheet/BottomSheetContent.d.cts +0 -4
- package/dist/uds/dist/components/client/BottomSheet/BottomSheetHeader.d.cts +0 -4
- package/dist/uds/dist/components/client/BottomSheet/BottomSheetProvider.d.cts +0 -5
- package/dist/uds/dist/components/client/BottomSheet/UDSBottomSheetConfigProvider.d.cts +0 -5
- package/dist/uds/dist/components/client/BottomSheet/index.d.cts +0 -9
- package/dist/uds/dist/components/client/BottomSheet/useBottomSheetStore.d.cts +0 -4
- package/dist/uds/dist/components/client/Button.d.cts +0 -7
- package/dist/uds/dist/components/client/Checkbox.d.cts +0 -6
- package/dist/uds/dist/components/client/Chip/Chip.d.cts +0 -7
- package/dist/uds/dist/components/client/Chip/ChipBase.d.cts +0 -8
- package/dist/uds/dist/components/client/Chip/ChipButton.d.cts +0 -7
- package/dist/uds/dist/components/client/Chip/ChipDismissible.d.cts +0 -7
- package/dist/uds/dist/components/client/Chip/ChipLink.d.cts +0 -7
- package/dist/uds/dist/components/client/Chip/ChipToggle.d.cts +0 -7
- package/dist/uds/dist/components/client/Chip/index.d.cts +0 -8
- package/dist/uds/dist/components/client/IconButton.d.cts +0 -7
- package/dist/uds/dist/components/client/Input/Input.d.cts +0 -9
- package/dist/uds/dist/components/client/Input/InputHelpText.d.cts +0 -4
- package/dist/uds/dist/components/client/Input/InputHelpTextInternal.d.cts +0 -8
- package/dist/uds/dist/components/client/Input/index.d.cts +0 -5
- package/dist/uds/dist/components/client/Menu/Menu.Content.d.cts +0 -8
- package/dist/uds/dist/components/client/Menu/Menu.Divider.d.cts +0 -5
- package/dist/uds/dist/components/client/Menu/Menu.Item.d.cts +0 -8
- package/dist/uds/dist/components/client/Menu/Menu.ItemCheckbox.d.cts +0 -8
- package/dist/uds/dist/components/client/Menu/Menu.Provider.d.cts +0 -5
- package/dist/uds/dist/components/client/Menu/Menu.Trigger.d.cts +0 -7
- package/dist/uds/dist/components/client/Menu/Menu.d.cts +0 -4
- package/dist/uds/dist/components/client/Menu/Menu.index.d.cts +0 -11
- package/dist/uds/dist/components/client/Menu/index.d.cts +0 -11
- package/dist/uds/dist/components/client/Popover/Popover.d.cts +0 -4
- package/dist/uds/dist/components/client/Popover/PopoverContent.d.cts +0 -7
- package/dist/uds/dist/components/client/Popover/PopoverTrigger.d.cts +0 -4
- package/dist/uds/dist/components/client/Popover/UDSPopoverConfigProvider.d.cts +0 -6
- package/dist/uds/dist/components/client/Popover/index.d.cts +0 -8
- package/dist/uds/dist/components/client/Pressable.d.cts +0 -6
- package/dist/uds/dist/components/client/Radio/Radio.d.cts +0 -6
- package/dist/uds/dist/components/client/Radio/RadioGroupProvider.d.cts +0 -6
- package/dist/uds/dist/components/client/Radio/index.d.cts +0 -5
- package/dist/uds/dist/components/client/SpringMotionConfig.d.cts +0 -7
- package/dist/uds/dist/components/client/Switch.d.cts +0 -6
- package/dist/uds/dist/components/client/Toast/Toast.d.cts +0 -10
- package/dist/uds/dist/components/client/Toast/ToastContainer.d.cts +0 -8
- package/dist/uds/dist/components/client/Toast/ToastPortal.d.cts +0 -5
- package/dist/uds/dist/components/client/Toast/UDSToastConfigProvider.d.cts +0 -7
- package/dist/uds/dist/components/client/Toast/createToast.d.cts +0 -8
- package/dist/uds/dist/components/client/Toast/index.d.cts +0 -8
- package/dist/uds/dist/components/client/Tooltip/Tooltip.d.cts +0 -4
- package/dist/uds/dist/components/client/Tooltip/TooltipContent.d.cts +0 -5
- package/dist/uds/dist/components/client/Tooltip/TooltipTrigger.d.cts +0 -4
- package/dist/uds/dist/components/client/Tooltip/UDSTooltipConfigProvider.d.cts +0 -7
- package/dist/uds/dist/components/client/Tooltip/index.d.cts +0 -8
- package/dist/uds/dist/components/client/index.d.cts +0 -61
- package/dist/uds/dist/components/client/providers/UDSBreakpointsConfigProvider.d.cts +0 -6
- package/dist/uds/dist/components/client/providers/UDSConfigProvider.d.cts +0 -5
- package/dist/uds/dist/components/index.d.cts +0 -61
- package/dist/uds/dist/config/dist/index.d.cts +0 -4
- package/dist/uds/dist/css-tokens/dist/index.d.cts +0 -2
- package/dist/uds/dist/fixtures/dist/index.d.cts +0 -2
- package/dist/uds/dist/fonts/dist/index.d.cts +0 -2
- package/dist/uds/dist/index.d.cts +0 -93
- package/dist/uds/dist/modes/dist/index.d.cts +0 -2
- package/dist/uds/dist/runtime/bottomSheetConfig.d.cts +0 -3
- package/dist/uds/dist/runtime/breakpointsConfig.d.cts +0 -4
- package/dist/uds/dist/runtime/index.d.cts +0 -7
- package/dist/uds/dist/runtime/popoverConfig.d.cts +0 -5
- package/dist/uds/dist/runtime/toastConfig.d.cts +0 -4
- package/dist/uds/dist/runtime/tooltipConfig.d.cts +0 -5
- package/dist/uds/dist/runtime/udsConfig.d.cts +0 -8
- package/dist/uds/dist/styles/styler.d.cts +0 -2
- package/dist/uds/dist/styles/stylerTypes.d.cts +0 -3
- package/dist/uds/dist/tailwind/dist/config/dist/index.d.cts +0 -2
- package/dist/uds/dist/tailwind/dist/index.d.cts +0 -3
- package/dist/uds/dist/tailwind/dist/tailwind/components/getResponsiveTextStyles.d.cts +0 -2
- package/dist/uds/dist/tailwind/dist/utils/parseTokens.d.cts +0 -2
- package/dist/uds/dist/tokens/automation/index.d.cts +0 -10
- package/dist/uds/dist/tokens/configs/shadow.d.cts +0 -3
- package/dist/uds/dist/tokens/consts/cssTokens.d.cts +0 -2
- package/dist/uds/dist/tokens/consts/defaultModes.d.cts +0 -2
- package/dist/uds/dist/tokens/consts/fontDeclarationsMap.d.cts +0 -2
- package/dist/uds/dist/tokens/index.d.cts +0 -28
- package/dist/uds/dist/tokens/parseButtonVariants.d.cts +0 -3
- package/dist/uds/dist/tokens/types.d.cts +0 -9
- package/dist/uds/dist/tokens/utils/getFontUrls.d.cts +0 -4
- package/dist/uds/dist/tokens/utils/spectrum.d.cts +0 -3
- package/dist/uds/dist/types/dist/index.d.cts +0 -11
- package/dist/uds/dist/types.d.cts +0 -2
|
@@ -11,8 +11,8 @@ import { SelectedConfigurableProperty } from "../properties.js";
|
|
|
11
11
|
* @returns A Record of layer names to their properties, or null if no properties are found
|
|
12
12
|
*/
|
|
13
13
|
declare function getConfigVariantProperties(variant?: VariantConfig): {
|
|
14
|
-
[x: string]: Readonly<Record<string, SelectedConfigurableProperty<"
|
|
15
|
-
root: Readonly<Record<string, SelectedConfigurableProperty<"
|
|
14
|
+
[x: string]: Readonly<Record<string, SelectedConfigurableProperty<"backgroundColor" | "borderWidth" | "strokeWidth" | "borderRadius" | "borderRadiusVar" | "borderColor" | "stroke" | "buttonSize" | "buttonVariant" | "fontFamily" | "fontSize" | "fontVariationSettings" | "lineHeight" | "textTransform" | "letterSpacing" | "gap" | "color" | "opacity" | "fillOpacity" | "fontWeight" | "iconSize" | "spacing" | "iconVariant" | "horizontalMargin" | "bottomMargin" | "spacingHorizontal" | "spacingVertical" | "textVariant" | "textDecorationLine" | "shadow" | "shadowVar" | "insetShadow" | "height" | "width" | "scaleEffect" | "backdropBlur" | "blurBackgroundColor" | "blurBackgroundColorFallback" | "scrimBackgroundColor" | "scrimOpacity", string, readonly ("backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases" | "elevationAliases")[] | readonly ("elevationAliases" | "borderWidths" | "spacingAliases")[] | readonly "borderRadii"[] | readonly ("spectrumColors" | "alwaysPaletteAliases" | "elevationAliases" | "linePaletteColors")[] | readonly "buttonSizes"[] | readonly "buttonVariantsFlat"[] | readonly "textVariants"[] | readonly "spacingAliases"[] | readonly ("spectrumColors" | "alwaysPaletteAliases" | "foregroundPaletteColors")[] | readonly "opacitySteps"[] | readonly "iconSizes"[] | readonly "iconVariants"[] | readonly "textDecorationLines"[] | readonly ("elevationAliases" | "shadowVariants" | "shadowVariantConfig")[] | readonly ("shadowVariantConfig" | "shadowVariantsWithInvert")[] | readonly "scaleEffects"[] | readonly "positiveIntegers"[] | readonly ("backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases")[], readonly (readonly unknown[])[]>>>;
|
|
15
|
+
root: Readonly<Record<string, SelectedConfigurableProperty<"backgroundColor" | "borderWidth" | "strokeWidth" | "borderRadius" | "borderRadiusVar" | "borderColor" | "stroke" | "buttonSize" | "buttonVariant" | "fontFamily" | "fontSize" | "fontVariationSettings" | "lineHeight" | "textTransform" | "letterSpacing" | "gap" | "color" | "opacity" | "fillOpacity" | "fontWeight" | "iconSize" | "spacing" | "iconVariant" | "horizontalMargin" | "bottomMargin" | "spacingHorizontal" | "spacingVertical" | "textVariant" | "textDecorationLine" | "shadow" | "shadowVar" | "insetShadow" | "height" | "width" | "scaleEffect" | "backdropBlur" | "blurBackgroundColor" | "blurBackgroundColorFallback" | "scrimBackgroundColor" | "scrimOpacity", string, readonly ("backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases" | "elevationAliases")[] | readonly ("elevationAliases" | "borderWidths" | "spacingAliases")[] | readonly "borderRadii"[] | readonly ("spectrumColors" | "alwaysPaletteAliases" | "elevationAliases" | "linePaletteColors")[] | readonly "buttonSizes"[] | readonly "buttonVariantsFlat"[] | readonly "textVariants"[] | readonly "spacingAliases"[] | readonly ("spectrumColors" | "alwaysPaletteAliases" | "foregroundPaletteColors")[] | readonly "opacitySteps"[] | readonly "iconSizes"[] | readonly "iconVariants"[] | readonly "textDecorationLines"[] | readonly ("elevationAliases" | "shadowVariants" | "shadowVariantConfig")[] | readonly ("shadowVariantConfig" | "shadowVariantsWithInvert")[] | readonly "scaleEffects"[] | readonly "positiveIntegers"[] | readonly ("backgroundPaletteColors" | "spectrumColors" | "alwaysPaletteAliases")[], readonly (readonly unknown[])[]>>>;
|
|
16
16
|
} | null; //#endregion
|
|
17
17
|
//#endregion
|
|
18
18
|
export { getConfigVariantProperties };
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
3
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
4
|
+
const require_styles_styler = require('../../styles/styler.cjs');
|
|
5
|
+
const require_components_client_Pressable = require('../client/Pressable.cjs');
|
|
6
|
+
const require_components_IconSlot = require('../IconSlot.cjs');
|
|
7
|
+
const require_components_Text = require('../Text.cjs');
|
|
8
|
+
const require_components_Banner_utils = require('./utils.cjs');
|
|
9
|
+
let _yahoo_uds_icons = require("@yahoo/uds-icons");
|
|
10
|
+
let react = require("react");
|
|
11
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
12
|
+
|
|
13
|
+
//#region src/components/Banner/Banner.tsx
|
|
14
|
+
const BASE_CLASS = "uds-banner";
|
|
15
|
+
/**
|
|
16
|
+
* Inject button variants on Button children that don't have an explicit
|
|
17
|
+
* variant set. The last unset Button gets the banner-mapped "primary"
|
|
18
|
+
* variant; any preceding unset Buttons get "secondary". Leaves Link,
|
|
19
|
+
* other elements, and Buttons with an explicit variant untouched.
|
|
20
|
+
*/
|
|
21
|
+
function bindActionVariants(actions, bannerVariant) {
|
|
22
|
+
const primaryVariant = require_components_Banner_utils.BANNER_TO_BUTTON_VARIANT[bannerVariant];
|
|
23
|
+
const unsetIndices = [];
|
|
24
|
+
actions.forEach((child, i) => {
|
|
25
|
+
if (require_components_Banner_utils.hasDisplayName(child, "Button") && (0, react.isValidElement)(child) && child.props.variant === void 0) unsetIndices.push(i);
|
|
26
|
+
});
|
|
27
|
+
return actions.map((child, i) => {
|
|
28
|
+
if (!unsetIndices.includes(i)) return child;
|
|
29
|
+
const variant = i === unsetIndices[unsetIndices.length - 1] ? primaryVariant : "secondary";
|
|
30
|
+
return (0, react.cloneElement)(child, {
|
|
31
|
+
key: child.key ?? i,
|
|
32
|
+
variant
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* **An inline notification banner for contextual messages with optional actions.**
|
|
38
|
+
*
|
|
39
|
+
* @componentType Server component
|
|
40
|
+
*
|
|
41
|
+
* @description
|
|
42
|
+
* Banner is an inline, non-floating notification component that sits in normal document flow.
|
|
43
|
+
* It supports 12 color variants, an optional icon, title, description (truncated to 3 lines),
|
|
44
|
+
* composable actions via children, and an optional dismiss button.
|
|
45
|
+
*
|
|
46
|
+
* Use `title` and `description` props for simple text content, or pass `BannerContent`
|
|
47
|
+
* with `BannerTitle` and `BannerDescription` subcomponents for rich ReactNode content.
|
|
48
|
+
* Any non-BannerContent children are rendered in the actions area.
|
|
49
|
+
*
|
|
50
|
+
* @see
|
|
51
|
+
* Check out the {@link https://uds.build/docs/components/banner Banner Docs} for more info
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* // Simple — props-based
|
|
56
|
+
* <Banner variant="info" startIcon={Info} title="Update available" />
|
|
57
|
+
*
|
|
58
|
+
* // With actions as children
|
|
59
|
+
* <Banner variant="brand-secondary" startIcon={Megaphone} title="Notification"
|
|
60
|
+
* description="Description text." onDismiss={() => {}}>
|
|
61
|
+
* <Link href="/docs">Learn more</Link>
|
|
62
|
+
* <Button variant="secondary" size="sm">Edit</Button>
|
|
63
|
+
* <Button variant="brand" size="sm">Send</Button>
|
|
64
|
+
* </Banner>
|
|
65
|
+
*
|
|
66
|
+
* // Rich content via subcomponents
|
|
67
|
+
* <Banner variant="alert" startIcon={Error} onDismiss={() => {}}>
|
|
68
|
+
* <BannerContent>
|
|
69
|
+
* <BannerTitle>Error <strong>occurred</strong></BannerTitle>
|
|
70
|
+
* <BannerDescription>Something went wrong.</BannerDescription>
|
|
71
|
+
* </BannerContent>
|
|
72
|
+
* <Button variant="alert" size="sm">Retry</Button>
|
|
73
|
+
* </Banner>
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @related [Badge](https://uds.build/docs/components/badge), [Toast](https://uds.build/docs/components/toast)
|
|
77
|
+
**/
|
|
78
|
+
const Banner = (0, react.forwardRef)(function Banner({ variant = "primary", size = "default", startIcon, title, description, onDismiss, dismissAriaLabel = "Dismiss", className, children, ...rest }, ref) {
|
|
79
|
+
const hasTitle = !!(typeof title === "string" ? title.trim() : title);
|
|
80
|
+
const hasDescription = !!(typeof description === "string" ? description.trim() : description);
|
|
81
|
+
const rootStyles = require_styles_styler.getStyles({
|
|
82
|
+
bannerVariantRoot: variant,
|
|
83
|
+
bannerSizeRoot: size,
|
|
84
|
+
className: require_styles_styler.cx(BASE_CLASS, "flex flex-row", hasTitle !== hasDescription ? "items-center" : "items-start", "min-w-[300px]", "shadow-[inset_0px_-20px_20px_-10px_rgba(31,31,31,0.05)]", className)
|
|
85
|
+
});
|
|
86
|
+
const iconStyles = require_styles_styler.getStyles({
|
|
87
|
+
bannerVariantIcon: variant,
|
|
88
|
+
bannerSizeIcon: size
|
|
89
|
+
});
|
|
90
|
+
const titleStyles = require_styles_styler.getStyles({
|
|
91
|
+
bannerSizeTitle: size,
|
|
92
|
+
className: "truncate"
|
|
93
|
+
});
|
|
94
|
+
const descriptionStyles = require_styles_styler.getStyles({
|
|
95
|
+
bannerSizeDescription: size,
|
|
96
|
+
className: "line-clamp-3"
|
|
97
|
+
});
|
|
98
|
+
const dismissStyles = require_styles_styler.getStyles({ bannerSizeClose: size });
|
|
99
|
+
const { content: bannerContent, actions: rawActions } = require_components_Banner_utils.separateChildren(children);
|
|
100
|
+
const actions = bindActionVariants(rawActions, variant);
|
|
101
|
+
const hasActions = actions.length > 0;
|
|
102
|
+
const contentArea = bannerContent ?? (hasTitle || hasDescription ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
103
|
+
className: "flex flex-col self-stretch flex-1 min-w-0 gap-0.5",
|
|
104
|
+
"data-testid": "banner-content",
|
|
105
|
+
children: [hasTitle && (typeof title === "string" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Text.Text, {
|
|
106
|
+
className: titleStyles,
|
|
107
|
+
"data-testid": "banner-title",
|
|
108
|
+
children: title
|
|
109
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
110
|
+
className: "w-full truncate leading-none",
|
|
111
|
+
"data-testid": "banner-title",
|
|
112
|
+
children: title
|
|
113
|
+
})), hasDescription && (typeof description === "string" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Text.Text, {
|
|
114
|
+
className: descriptionStyles,
|
|
115
|
+
"data-testid": "banner-description",
|
|
116
|
+
children: description
|
|
117
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
118
|
+
className: "w-full line-clamp-3",
|
|
119
|
+
"data-testid": "banner-description",
|
|
120
|
+
children: description
|
|
121
|
+
}))]
|
|
122
|
+
}) : null);
|
|
123
|
+
const dismissContainerStyles = require_styles_styler.getStyles({
|
|
124
|
+
spacing: "2",
|
|
125
|
+
borderRadius: "full",
|
|
126
|
+
className: require_styles_styler.cx("transition-[background-color] motion-safe:duration-120", "bg-carbon-15/0 hover:bg-carbon-15/10 active:bg-carbon-15/15", "uds-ring", "shrink-0 self-start")
|
|
127
|
+
});
|
|
128
|
+
const dismissButton = onDismiss ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_client_Pressable.Pressable, {
|
|
129
|
+
"aria-label": dismissAriaLabel,
|
|
130
|
+
onClick: onDismiss,
|
|
131
|
+
className: dismissContainerStyles,
|
|
132
|
+
"data-testid": "banner-dismiss",
|
|
133
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
|
|
134
|
+
icon: _yahoo_uds_icons.Cross,
|
|
135
|
+
iconProps: {
|
|
136
|
+
color: "current",
|
|
137
|
+
className: dismissStyles
|
|
138
|
+
}
|
|
139
|
+
})
|
|
140
|
+
}) : null;
|
|
141
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
142
|
+
ref,
|
|
143
|
+
className: rootStyles,
|
|
144
|
+
...rest,
|
|
145
|
+
children: [
|
|
146
|
+
startIcon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_IconSlot.IconSlot, {
|
|
147
|
+
icon: startIcon,
|
|
148
|
+
iconProps: { color: "current" },
|
|
149
|
+
className: require_styles_styler.cx(iconStyles, "shrink-0"),
|
|
150
|
+
"data-testid": "banner-start-icon"
|
|
151
|
+
}),
|
|
152
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
153
|
+
className: require_styles_styler.cx("flex flex-1 min-w-0 flex-col items-start gap-[inherit] uds-sm:flex-row", hasTitle !== hasDescription && "uds-sm:items-center"),
|
|
154
|
+
children: [contentArea, hasActions && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
155
|
+
className: "flex self-stretch flex-row items-center gap-1.5 uds-sm:self-center uds-sm:shrink-0",
|
|
156
|
+
"data-testid": "banner-actions",
|
|
157
|
+
children: actions
|
|
158
|
+
})]
|
|
159
|
+
}),
|
|
160
|
+
dismissButton
|
|
161
|
+
]
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
Banner.displayName = "Banner";
|
|
165
|
+
|
|
166
|
+
//#endregion
|
|
167
|
+
exports.Banner = Banner;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
|
|
2
|
+
import { UniversalBannerProps } from "../../types/dist/index.cjs";
|
|
3
|
+
import "../../tokens/index.cjs";
|
|
4
|
+
import * as react from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/Banner/Banner.d.ts
|
|
7
|
+
type HtmlDivProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>;
|
|
8
|
+
interface BannerProps extends HtmlDivProps, UniversalBannerProps {
|
|
9
|
+
/** Accessible label for the dismiss button. @default "Dismiss" */
|
|
10
|
+
dismissAriaLabel?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* **An inline notification banner for contextual messages with optional actions.**
|
|
14
|
+
*
|
|
15
|
+
* @componentType Server component
|
|
16
|
+
*
|
|
17
|
+
* @description
|
|
18
|
+
* Banner is an inline, non-floating notification component that sits in normal document flow.
|
|
19
|
+
* It supports 12 color variants, an optional icon, title, description (truncated to 3 lines),
|
|
20
|
+
* composable actions via children, and an optional dismiss button.
|
|
21
|
+
*
|
|
22
|
+
* Use `title` and `description` props for simple text content, or pass `BannerContent`
|
|
23
|
+
* with `BannerTitle` and `BannerDescription` subcomponents for rich ReactNode content.
|
|
24
|
+
* Any non-BannerContent children are rendered in the actions area.
|
|
25
|
+
*
|
|
26
|
+
* @see
|
|
27
|
+
* Check out the {@link https://uds.build/docs/components/banner Banner Docs} for more info
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* // Simple — props-based
|
|
32
|
+
* <Banner variant="info" startIcon={Info} title="Update available" />
|
|
33
|
+
*
|
|
34
|
+
* // With actions as children
|
|
35
|
+
* <Banner variant="brand-secondary" startIcon={Megaphone} title="Notification"
|
|
36
|
+
* description="Description text." onDismiss={() => {}}>
|
|
37
|
+
* <Link href="/docs">Learn more</Link>
|
|
38
|
+
* <Button variant="secondary" size="sm">Edit</Button>
|
|
39
|
+
* <Button variant="brand" size="sm">Send</Button>
|
|
40
|
+
* </Banner>
|
|
41
|
+
*
|
|
42
|
+
* // Rich content via subcomponents
|
|
43
|
+
* <Banner variant="alert" startIcon={Error} onDismiss={() => {}}>
|
|
44
|
+
* <BannerContent>
|
|
45
|
+
* <BannerTitle>Error <strong>occurred</strong></BannerTitle>
|
|
46
|
+
* <BannerDescription>Something went wrong.</BannerDescription>
|
|
47
|
+
* </BannerContent>
|
|
48
|
+
* <Button variant="alert" size="sm">Retry</Button>
|
|
49
|
+
* </Banner>
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @related [Badge](https://uds.build/docs/components/badge), [Toast](https://uds.build/docs/components/toast)
|
|
53
|
+
**/
|
|
54
|
+
declare const Banner: react.ForwardRefExoticComponent<BannerProps & react.RefAttributes<HTMLDivElement>>;
|
|
55
|
+
//#endregion
|
|
56
|
+
export { Banner, type BannerProps };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
|
|
2
|
+
import { UniversalBannerProps } from "../../types/dist/index.js";
|
|
3
|
+
import "../../tokens/index.js";
|
|
4
|
+
import * as react from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/components/Banner/Banner.d.ts
|
|
7
|
+
type HtmlDivProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>;
|
|
8
|
+
interface BannerProps extends HtmlDivProps, UniversalBannerProps {
|
|
9
|
+
/** Accessible label for the dismiss button. @default "Dismiss" */
|
|
10
|
+
dismissAriaLabel?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* **An inline notification banner for contextual messages with optional actions.**
|
|
14
|
+
*
|
|
15
|
+
* @componentType Server component
|
|
16
|
+
*
|
|
17
|
+
* @description
|
|
18
|
+
* Banner is an inline, non-floating notification component that sits in normal document flow.
|
|
19
|
+
* It supports 12 color variants, an optional icon, title, description (truncated to 3 lines),
|
|
20
|
+
* composable actions via children, and an optional dismiss button.
|
|
21
|
+
*
|
|
22
|
+
* Use `title` and `description` props for simple text content, or pass `BannerContent`
|
|
23
|
+
* with `BannerTitle` and `BannerDescription` subcomponents for rich ReactNode content.
|
|
24
|
+
* Any non-BannerContent children are rendered in the actions area.
|
|
25
|
+
*
|
|
26
|
+
* @see
|
|
27
|
+
* Check out the {@link https://uds.build/docs/components/banner Banner Docs} for more info
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* // Simple — props-based
|
|
32
|
+
* <Banner variant="info" startIcon={Info} title="Update available" />
|
|
33
|
+
*
|
|
34
|
+
* // With actions as children
|
|
35
|
+
* <Banner variant="brand-secondary" startIcon={Megaphone} title="Notification"
|
|
36
|
+
* description="Description text." onDismiss={() => {}}>
|
|
37
|
+
* <Link href="/docs">Learn more</Link>
|
|
38
|
+
* <Button variant="secondary" size="sm">Edit</Button>
|
|
39
|
+
* <Button variant="brand" size="sm">Send</Button>
|
|
40
|
+
* </Banner>
|
|
41
|
+
*
|
|
42
|
+
* // Rich content via subcomponents
|
|
43
|
+
* <Banner variant="alert" startIcon={Error} onDismiss={() => {}}>
|
|
44
|
+
* <BannerContent>
|
|
45
|
+
* <BannerTitle>Error <strong>occurred</strong></BannerTitle>
|
|
46
|
+
* <BannerDescription>Something went wrong.</BannerDescription>
|
|
47
|
+
* </BannerContent>
|
|
48
|
+
* <Button variant="alert" size="sm">Retry</Button>
|
|
49
|
+
* </Banner>
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @related [Badge](https://uds.build/docs/components/badge), [Toast](https://uds.build/docs/components/toast)
|
|
53
|
+
**/
|
|
54
|
+
declare const Banner: react.ForwardRefExoticComponent<BannerProps & react.RefAttributes<HTMLDivElement>>;
|
|
55
|
+
//#endregion
|
|
56
|
+
export { Banner, type BannerProps };
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
import { cx, getStyles } from "../../styles/styler.js";
|
|
3
|
+
import { Pressable } from "../client/Pressable.js";
|
|
4
|
+
import { IconSlot } from "../IconSlot.js";
|
|
5
|
+
import { Text } from "../Text.js";
|
|
6
|
+
import { BANNER_TO_BUTTON_VARIANT, hasDisplayName, separateChildren } from "./utils.js";
|
|
7
|
+
import { Cross } from "@yahoo/uds-icons";
|
|
8
|
+
import { cloneElement, forwardRef, isValidElement } from "react";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
|
|
11
|
+
//#region src/components/Banner/Banner.tsx
|
|
12
|
+
const BASE_CLASS = "uds-banner";
|
|
13
|
+
/**
|
|
14
|
+
* Inject button variants on Button children that don't have an explicit
|
|
15
|
+
* variant set. The last unset Button gets the banner-mapped "primary"
|
|
16
|
+
* variant; any preceding unset Buttons get "secondary". Leaves Link,
|
|
17
|
+
* other elements, and Buttons with an explicit variant untouched.
|
|
18
|
+
*/
|
|
19
|
+
function bindActionVariants(actions, bannerVariant) {
|
|
20
|
+
const primaryVariant = BANNER_TO_BUTTON_VARIANT[bannerVariant];
|
|
21
|
+
const unsetIndices = [];
|
|
22
|
+
actions.forEach((child, i) => {
|
|
23
|
+
if (hasDisplayName(child, "Button") && isValidElement(child) && child.props.variant === void 0) unsetIndices.push(i);
|
|
24
|
+
});
|
|
25
|
+
return actions.map((child, i) => {
|
|
26
|
+
if (!unsetIndices.includes(i)) return child;
|
|
27
|
+
const variant = i === unsetIndices[unsetIndices.length - 1] ? primaryVariant : "secondary";
|
|
28
|
+
return cloneElement(child, {
|
|
29
|
+
key: child.key ?? i,
|
|
30
|
+
variant
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* **An inline notification banner for contextual messages with optional actions.**
|
|
36
|
+
*
|
|
37
|
+
* @componentType Server component
|
|
38
|
+
*
|
|
39
|
+
* @description
|
|
40
|
+
* Banner is an inline, non-floating notification component that sits in normal document flow.
|
|
41
|
+
* It supports 12 color variants, an optional icon, title, description (truncated to 3 lines),
|
|
42
|
+
* composable actions via children, and an optional dismiss button.
|
|
43
|
+
*
|
|
44
|
+
* Use `title` and `description` props for simple text content, or pass `BannerContent`
|
|
45
|
+
* with `BannerTitle` and `BannerDescription` subcomponents for rich ReactNode content.
|
|
46
|
+
* Any non-BannerContent children are rendered in the actions area.
|
|
47
|
+
*
|
|
48
|
+
* @see
|
|
49
|
+
* Check out the {@link https://uds.build/docs/components/banner Banner Docs} for more info
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* // Simple — props-based
|
|
54
|
+
* <Banner variant="info" startIcon={Info} title="Update available" />
|
|
55
|
+
*
|
|
56
|
+
* // With actions as children
|
|
57
|
+
* <Banner variant="brand-secondary" startIcon={Megaphone} title="Notification"
|
|
58
|
+
* description="Description text." onDismiss={() => {}}>
|
|
59
|
+
* <Link href="/docs">Learn more</Link>
|
|
60
|
+
* <Button variant="secondary" size="sm">Edit</Button>
|
|
61
|
+
* <Button variant="brand" size="sm">Send</Button>
|
|
62
|
+
* </Banner>
|
|
63
|
+
*
|
|
64
|
+
* // Rich content via subcomponents
|
|
65
|
+
* <Banner variant="alert" startIcon={Error} onDismiss={() => {}}>
|
|
66
|
+
* <BannerContent>
|
|
67
|
+
* <BannerTitle>Error <strong>occurred</strong></BannerTitle>
|
|
68
|
+
* <BannerDescription>Something went wrong.</BannerDescription>
|
|
69
|
+
* </BannerContent>
|
|
70
|
+
* <Button variant="alert" size="sm">Retry</Button>
|
|
71
|
+
* </Banner>
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @related [Badge](https://uds.build/docs/components/badge), [Toast](https://uds.build/docs/components/toast)
|
|
75
|
+
**/
|
|
76
|
+
const Banner = forwardRef(function Banner({ variant = "primary", size = "default", startIcon, title, description, onDismiss, dismissAriaLabel = "Dismiss", className, children, ...rest }, ref) {
|
|
77
|
+
const hasTitle = !!(typeof title === "string" ? title.trim() : title);
|
|
78
|
+
const hasDescription = !!(typeof description === "string" ? description.trim() : description);
|
|
79
|
+
const rootStyles = getStyles({
|
|
80
|
+
bannerVariantRoot: variant,
|
|
81
|
+
bannerSizeRoot: size,
|
|
82
|
+
className: cx(BASE_CLASS, "flex flex-row", hasTitle !== hasDescription ? "items-center" : "items-start", "min-w-[300px]", "shadow-[inset_0px_-20px_20px_-10px_rgba(31,31,31,0.05)]", className)
|
|
83
|
+
});
|
|
84
|
+
const iconStyles = getStyles({
|
|
85
|
+
bannerVariantIcon: variant,
|
|
86
|
+
bannerSizeIcon: size
|
|
87
|
+
});
|
|
88
|
+
const titleStyles = getStyles({
|
|
89
|
+
bannerSizeTitle: size,
|
|
90
|
+
className: "truncate"
|
|
91
|
+
});
|
|
92
|
+
const descriptionStyles = getStyles({
|
|
93
|
+
bannerSizeDescription: size,
|
|
94
|
+
className: "line-clamp-3"
|
|
95
|
+
});
|
|
96
|
+
const dismissStyles = getStyles({ bannerSizeClose: size });
|
|
97
|
+
const { content: bannerContent, actions: rawActions } = separateChildren(children);
|
|
98
|
+
const actions = bindActionVariants(rawActions, variant);
|
|
99
|
+
const hasActions = actions.length > 0;
|
|
100
|
+
const contentArea = bannerContent ?? (hasTitle || hasDescription ? /* @__PURE__ */ jsxs("div", {
|
|
101
|
+
className: "flex flex-col self-stretch flex-1 min-w-0 gap-0.5",
|
|
102
|
+
"data-testid": "banner-content",
|
|
103
|
+
children: [hasTitle && (typeof title === "string" ? /* @__PURE__ */ jsx(Text, {
|
|
104
|
+
className: titleStyles,
|
|
105
|
+
"data-testid": "banner-title",
|
|
106
|
+
children: title
|
|
107
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
108
|
+
className: "w-full truncate leading-none",
|
|
109
|
+
"data-testid": "banner-title",
|
|
110
|
+
children: title
|
|
111
|
+
})), hasDescription && (typeof description === "string" ? /* @__PURE__ */ jsx(Text, {
|
|
112
|
+
className: descriptionStyles,
|
|
113
|
+
"data-testid": "banner-description",
|
|
114
|
+
children: description
|
|
115
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
116
|
+
className: "w-full line-clamp-3",
|
|
117
|
+
"data-testid": "banner-description",
|
|
118
|
+
children: description
|
|
119
|
+
}))]
|
|
120
|
+
}) : null);
|
|
121
|
+
const dismissContainerStyles = getStyles({
|
|
122
|
+
spacing: "2",
|
|
123
|
+
borderRadius: "full",
|
|
124
|
+
className: cx("transition-[background-color] motion-safe:duration-120", "bg-carbon-15/0 hover:bg-carbon-15/10 active:bg-carbon-15/15", "uds-ring", "shrink-0 self-start")
|
|
125
|
+
});
|
|
126
|
+
const dismissButton = onDismiss ? /* @__PURE__ */ jsx(Pressable, {
|
|
127
|
+
"aria-label": dismissAriaLabel,
|
|
128
|
+
onClick: onDismiss,
|
|
129
|
+
className: dismissContainerStyles,
|
|
130
|
+
"data-testid": "banner-dismiss",
|
|
131
|
+
children: /* @__PURE__ */ jsx(IconSlot, {
|
|
132
|
+
icon: Cross,
|
|
133
|
+
iconProps: {
|
|
134
|
+
color: "current",
|
|
135
|
+
className: dismissStyles
|
|
136
|
+
}
|
|
137
|
+
})
|
|
138
|
+
}) : null;
|
|
139
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
140
|
+
ref,
|
|
141
|
+
className: rootStyles,
|
|
142
|
+
...rest,
|
|
143
|
+
children: [
|
|
144
|
+
startIcon && /* @__PURE__ */ jsx(IconSlot, {
|
|
145
|
+
icon: startIcon,
|
|
146
|
+
iconProps: { color: "current" },
|
|
147
|
+
className: cx(iconStyles, "shrink-0"),
|
|
148
|
+
"data-testid": "banner-start-icon"
|
|
149
|
+
}),
|
|
150
|
+
/* @__PURE__ */ jsxs("div", {
|
|
151
|
+
className: cx("flex flex-1 min-w-0 flex-col items-start gap-[inherit] uds-sm:flex-row", hasTitle !== hasDescription && "uds-sm:items-center"),
|
|
152
|
+
children: [contentArea, hasActions && /* @__PURE__ */ jsx("div", {
|
|
153
|
+
className: "flex self-stretch flex-row items-center gap-1.5 uds-sm:self-center uds-sm:shrink-0",
|
|
154
|
+
"data-testid": "banner-actions",
|
|
155
|
+
children: actions
|
|
156
|
+
})]
|
|
157
|
+
}),
|
|
158
|
+
dismissButton
|
|
159
|
+
]
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
Banner.displayName = "Banner";
|
|
163
|
+
|
|
164
|
+
//#endregion
|
|
165
|
+
export { Banner };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
3
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
4
|
+
const require_styles_styler = require('../../styles/styler.cjs');
|
|
5
|
+
let react = require("react");
|
|
6
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
+
|
|
8
|
+
//#region src/components/Banner/BannerContent.tsx
|
|
9
|
+
const BannerContent = (0, react.forwardRef)(function BannerContent({ children, className, ...rest }, ref) {
|
|
10
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
11
|
+
ref,
|
|
12
|
+
className: require_styles_styler.cx("flex flex-col items-start self-stretch flex-1 min-w-0", className),
|
|
13
|
+
...rest,
|
|
14
|
+
children
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
BannerContent.displayName = "BannerContent";
|
|
18
|
+
|
|
19
|
+
//#endregion
|
|
20
|
+
exports.BannerContent = BannerContent;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
import * as react from "react";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/Banner/BannerContent.d.ts
|
|
6
|
+
type HtmlDivProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>;
|
|
7
|
+
interface BannerContentProps extends HtmlDivProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const BannerContent: react.ForwardRefExoticComponent<BannerContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { BannerContent, type BannerContentProps };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
import * as react from "react";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/Banner/BannerContent.d.ts
|
|
6
|
+
type HtmlDivProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'color'>;
|
|
7
|
+
interface BannerContentProps extends HtmlDivProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const BannerContent: react.ForwardRefExoticComponent<BannerContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { BannerContent, type BannerContentProps };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
import { cx } from "../../styles/styler.js";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/Banner/BannerContent.tsx
|
|
7
|
+
const BannerContent = forwardRef(function BannerContent({ children, className, ...rest }, ref) {
|
|
8
|
+
return /* @__PURE__ */ jsx("div", {
|
|
9
|
+
ref,
|
|
10
|
+
className: cx("flex flex-col items-start self-stretch flex-1 min-w-0", className),
|
|
11
|
+
...rest,
|
|
12
|
+
children
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
BannerContent.displayName = "BannerContent";
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { BannerContent };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
3
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
4
|
+
const require_styles_styler = require('../../styles/styler.cjs');
|
|
5
|
+
const require_components_Text = require('../Text.cjs');
|
|
6
|
+
let react = require("react");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
|
|
9
|
+
//#region src/components/Banner/BannerDescription.tsx
|
|
10
|
+
/**
|
|
11
|
+
* **Styled description for use inside `BannerContent`.**
|
|
12
|
+
*
|
|
13
|
+
* @description
|
|
14
|
+
* Applies the Banner description typography tokens and truncates text to
|
|
15
|
+
* 3 lines. Use this subcomponent instead of the `description` prop when
|
|
16
|
+
* you need rich ReactNode content.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <Banner variant="alert" startIcon={Error}>
|
|
21
|
+
* <BannerContent>
|
|
22
|
+
* <BannerTitle>Something went wrong</BannerTitle>
|
|
23
|
+
* <BannerDescription>
|
|
24
|
+
* Please try again or <Link href="/support">contact support</Link>.
|
|
25
|
+
* </BannerDescription>
|
|
26
|
+
* </BannerContent>
|
|
27
|
+
* </Banner>
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @see {@link Banner} for the parent component
|
|
31
|
+
* @see {@link BannerContent} for the required wrapper
|
|
32
|
+
*/
|
|
33
|
+
const BannerDescription = (0, react.forwardRef)(function BannerDescription({ children, className, ...rest }, ref) {
|
|
34
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Text.Text, {
|
|
35
|
+
ref,
|
|
36
|
+
className: require_styles_styler.cx(require_styles_styler.getStyles({
|
|
37
|
+
bannerSizeDescription: "default",
|
|
38
|
+
className: "w-full line-clamp-3"
|
|
39
|
+
}), className),
|
|
40
|
+
...rest,
|
|
41
|
+
children
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
BannerDescription.displayName = "BannerDescription";
|
|
45
|
+
|
|
46
|
+
//#endregion
|
|
47
|
+
exports.BannerDescription = BannerDescription;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
import * as react from "react";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/Banner/BannerDescription.d.ts
|
|
6
|
+
type HtmlSpanProps = Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>;
|
|
7
|
+
interface BannerDescriptionProps extends HtmlSpanProps {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* **Styled description for use inside `BannerContent`.**
|
|
13
|
+
*
|
|
14
|
+
* @description
|
|
15
|
+
* Applies the Banner description typography tokens and truncates text to
|
|
16
|
+
* 3 lines. Use this subcomponent instead of the `description` prop when
|
|
17
|
+
* you need rich ReactNode content.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <Banner variant="alert" startIcon={Error}>
|
|
22
|
+
* <BannerContent>
|
|
23
|
+
* <BannerTitle>Something went wrong</BannerTitle>
|
|
24
|
+
* <BannerDescription>
|
|
25
|
+
* Please try again or <Link href="/support">contact support</Link>.
|
|
26
|
+
* </BannerDescription>
|
|
27
|
+
* </BannerContent>
|
|
28
|
+
* </Banner>
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* @see {@link Banner} for the parent component
|
|
32
|
+
* @see {@link BannerContent} for the required wrapper
|
|
33
|
+
*/
|
|
34
|
+
declare const BannerDescription: react.ForwardRefExoticComponent<BannerDescriptionProps & react.RefAttributes<HTMLElement>>;
|
|
35
|
+
//#endregion
|
|
36
|
+
export { BannerDescription, type BannerDescriptionProps };
|