@yahoo/uds 3.125.1 → 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.
Files changed (145) hide show
  1. package/dist/automated-config/dist/generated/autoVariants.cjs +35 -0
  2. package/dist/automated-config/dist/generated/autoVariants.d.cts +7 -0
  3. package/dist/automated-config/dist/generated/autoVariants.d.ts +7 -0
  4. package/dist/automated-config/dist/generated/autoVariants.js +35 -0
  5. package/dist/automated-config/dist/generated/generatedConfigs.cjs +1493 -0
  6. package/dist/automated-config/dist/generated/generatedConfigs.d.cts +222 -1
  7. package/dist/automated-config/dist/generated/generatedConfigs.d.ts +222 -1
  8. package/dist/automated-config/dist/generated/generatedConfigs.js +1493 -1
  9. package/dist/automated-config/dist/generated/universalTokensConfigAuto.cjs +314 -0
  10. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.cts +2 -1
  11. package/dist/automated-config/dist/generated/universalTokensConfigAuto.d.ts +2 -1
  12. package/dist/automated-config/dist/generated/universalTokensConfigAuto.js +314 -0
  13. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.cts +2 -2
  14. package/dist/automated-config/dist/utils/getConfigVariantProperties.d.ts +2 -2
  15. package/dist/components/Banner/Banner.cjs +167 -0
  16. package/dist/components/Banner/Banner.d.cts +56 -0
  17. package/dist/components/Banner/Banner.d.ts +56 -0
  18. package/dist/components/Banner/Banner.js +165 -0
  19. package/dist/components/Banner/BannerContent.cjs +20 -0
  20. package/dist/components/Banner/BannerContent.d.cts +13 -0
  21. package/dist/components/Banner/BannerContent.d.ts +13 -0
  22. package/dist/components/Banner/BannerContent.js +18 -0
  23. package/dist/components/Banner/BannerDescription.cjs +47 -0
  24. package/dist/components/Banner/BannerDescription.d.cts +36 -0
  25. package/dist/components/Banner/BannerDescription.d.ts +36 -0
  26. package/dist/components/Banner/BannerDescription.js +45 -0
  27. package/dist/components/Banner/BannerTitle.cjs +42 -0
  28. package/dist/components/Banner/BannerTitle.d.cts +34 -0
  29. package/dist/components/Banner/BannerTitle.d.ts +34 -0
  30. package/dist/components/Banner/BannerTitle.js +40 -0
  31. package/dist/components/Banner/index.cjs +11 -0
  32. package/dist/components/Banner/index.d.cts +6 -0
  33. package/dist/components/Banner/index.d.ts +6 -0
  34. package/dist/components/Banner/index.js +7 -0
  35. package/dist/components/Banner/utils.cjs +56 -0
  36. package/dist/components/Banner/utils.d.cts +26 -0
  37. package/dist/components/Banner/utils.d.ts +26 -0
  38. package/dist/components/Banner/utils.js +52 -0
  39. package/dist/components/Divider/DividerCore.cjs +1 -1
  40. package/dist/components/Divider/DividerCore.js +1 -1
  41. package/dist/components/client/Avatar/AvatarIcon.cjs +2 -2
  42. package/dist/components/client/Avatar/AvatarIcon.js +2 -2
  43. package/dist/components/client/Avatar/AvatarText.cjs +1 -1
  44. package/dist/components/client/Avatar/AvatarText.js +1 -1
  45. package/dist/components/client/Badge.cjs +1 -1
  46. package/dist/components/client/Badge.js +1 -1
  47. package/dist/components/client/BottomSheet/BottomSheetHeader.cjs +1 -1
  48. package/dist/components/client/BottomSheet/BottomSheetHeader.js +1 -1
  49. package/dist/components/client/Button.cjs +1 -1
  50. package/dist/components/client/Button.js +1 -1
  51. package/dist/components/client/Checkbox.cjs +2 -2
  52. package/dist/components/client/Checkbox.js +2 -2
  53. package/dist/components/client/Chip/ChipBase.cjs +2 -2
  54. package/dist/components/client/Chip/ChipBase.js +2 -2
  55. package/dist/components/client/Chip/ChipDismissible.cjs +2 -2
  56. package/dist/components/client/Chip/ChipDismissible.js +2 -2
  57. package/dist/components/client/IconButton.cjs +1 -1
  58. package/dist/components/client/IconButton.js +1 -1
  59. package/dist/components/client/Input/Input.cjs +1 -1
  60. package/dist/components/client/Input/Input.js +1 -1
  61. package/dist/components/client/Input/InputHelpTextInternal.cjs +1 -1
  62. package/dist/components/client/Input/InputHelpTextInternal.js +1 -1
  63. package/dist/components/client/Menu/Menu.ItemBase.cjs +2 -2
  64. package/dist/components/client/Menu/Menu.ItemBase.js +2 -2
  65. package/dist/components/client/Menu/Menu.ItemCheckbox.cjs +1 -1
  66. package/dist/components/client/Menu/Menu.ItemCheckbox.js +1 -1
  67. package/dist/components/client/Popover/PopoverContent.cjs +3 -3
  68. package/dist/components/client/Popover/PopoverContent.js +3 -3
  69. package/dist/components/client/Popover/UDSPopoverConfigProvider.d.cts +1 -1
  70. package/dist/components/client/Popover/UDSPopoverConfigProvider.d.ts +1 -1
  71. package/dist/components/client/Switch.cjs +1 -1
  72. package/dist/components/client/Switch.js +1 -1
  73. package/dist/components/client/Toast/Toast.cjs +3 -3
  74. package/dist/components/client/Toast/Toast.js +3 -3
  75. package/dist/components/client/Toast/UDSToastConfigProvider.d.cts +5 -5
  76. package/dist/components/client/Toast/UDSToastConfigProvider.d.ts +5 -5
  77. package/dist/components/client/Tooltip/TooltipContent.cjs +2 -2
  78. package/dist/components/client/Tooltip/TooltipContent.js +2 -2
  79. package/dist/components/client/index.cjs +1 -1
  80. package/dist/components/client/index.js +1 -1
  81. package/dist/components/experimental/Spinner.cjs +1 -1
  82. package/dist/components/experimental/Spinner.js +1 -1
  83. package/dist/components/experimental/Table.cjs +1 -1
  84. package/dist/components/experimental/Table.js +1 -1
  85. package/dist/components/experimental/client/Accordion.cjs +4 -4
  86. package/dist/components/experimental/client/Accordion.js +4 -4
  87. package/dist/components/experimental/client/Modal.cjs +2 -2
  88. package/dist/components/experimental/client/Modal.js +2 -2
  89. package/dist/components/experimental/client/SegmentedControl.cjs +3 -3
  90. package/dist/components/experimental/client/SegmentedControl.js +3 -3
  91. package/dist/components/experimental/client/SwitchV2.cjs +1 -1
  92. package/dist/components/experimental/client/SwitchV2.js +1 -1
  93. package/dist/components/experimental/client/Tabs.cjs +2 -2
  94. package/dist/components/experimental/client/Tabs.js +2 -2
  95. package/dist/components/index.cjs +15 -3
  96. package/dist/components/index.d.cts +6 -1
  97. package/dist/components/index.d.ts +6 -1
  98. package/dist/components/index.js +12 -4
  99. package/dist/config/dist/index.cjs +381 -46
  100. package/dist/config/dist/index.js +381 -46
  101. package/dist/index.cjs +12 -3
  102. package/dist/index.d.cts +7 -3
  103. package/dist/index.d.ts +7 -3
  104. package/dist/index.js +9 -5
  105. package/dist/styles/styler.d.cts +79 -72
  106. package/dist/styles/styler.d.ts +79 -72
  107. package/dist/styles/variants.d.cts +45 -0
  108. package/dist/styles/variants.d.ts +45 -0
  109. package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.cjs +35 -0
  110. package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.js +35 -0
  111. package/dist/tailwind/dist/automated-config/dist/generated/autoVariants.js.map +1 -1
  112. package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.cjs +1493 -0
  113. package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.js +1493 -1
  114. package/dist/tailwind/dist/automated-config/dist/generated/generatedConfigs.js.map +1 -1
  115. package/dist/tailwind/dist/config/dist/index.cjs +381 -46
  116. package/dist/tailwind/dist/config/dist/index.js +381 -46
  117. package/dist/tailwind/dist/config/dist/index.js.map +1 -1
  118. package/dist/tailwind/dist/tailwind/plugins/components.cjs +1 -0
  119. package/dist/tailwind/dist/tailwind/plugins/components.js +2 -1
  120. package/dist/tailwind/dist/tailwind/plugins/components.js.map +1 -1
  121. package/dist/tailwind/dist/types/dist/index.d.cts.map +1 -1
  122. package/dist/tailwind/dist/types/dist/index.d.ts.map +1 -1
  123. package/dist/tokens/automation/configs/index.cjs +1 -0
  124. package/dist/tokens/automation/configs/index.d.cts +2 -2
  125. package/dist/tokens/automation/configs/index.d.ts +2 -2
  126. package/dist/tokens/automation/configs/index.js +2 -2
  127. package/dist/tokens/automation/index.cjs +1 -0
  128. package/dist/tokens/automation/index.d.cts +2 -2
  129. package/dist/tokens/automation/index.d.ts +2 -2
  130. package/dist/tokens/automation/index.js +2 -2
  131. package/dist/tokens/index.cjs +1 -0
  132. package/dist/tokens/index.d.cts +3 -3
  133. package/dist/tokens/index.d.ts +3 -3
  134. package/dist/tokens/index.js +2 -2
  135. package/dist/tokens/types.d.cts +2 -2
  136. package/dist/tokens/types.d.ts +2 -2
  137. package/dist/types/dist/index.d.cts +19 -1
  138. package/dist/types/dist/index.d.ts +19 -1
  139. package/dist/uds/generated/componentData.cjs +1566 -1418
  140. package/dist/uds/generated/componentData.js +1496 -1372
  141. package/dist/uds/generated/tailwindPurge.cjs +19 -0
  142. package/dist/uds/generated/tailwindPurge.js +19 -0
  143. package/generated/componentData.json +2085 -1934
  144. package/generated/tailwindPurge.ts +4 -4
  145. package/package.json +1 -1
@@ -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 };
@@ -0,0 +1,45 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ import { cx, getStyles } from "../../styles/styler.js";
3
+ import { Text } from "../Text.js";
4
+ import { forwardRef } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+
7
+ //#region src/components/Banner/BannerDescription.tsx
8
+ /**
9
+ * **Styled description for use inside `BannerContent`.**
10
+ *
11
+ * @description
12
+ * Applies the Banner description typography tokens and truncates text to
13
+ * 3 lines. Use this subcomponent instead of the `description` prop when
14
+ * you need rich ReactNode content.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <Banner variant="alert" startIcon={Error}>
19
+ * <BannerContent>
20
+ * <BannerTitle>Something went wrong</BannerTitle>
21
+ * <BannerDescription>
22
+ * Please try again or <Link href="/support">contact support</Link>.
23
+ * </BannerDescription>
24
+ * </BannerContent>
25
+ * </Banner>
26
+ * ```
27
+ *
28
+ * @see {@link Banner} for the parent component
29
+ * @see {@link BannerContent} for the required wrapper
30
+ */
31
+ const BannerDescription = forwardRef(function BannerDescription({ children, className, ...rest }, ref) {
32
+ return /* @__PURE__ */ jsx(Text, {
33
+ ref,
34
+ className: cx(getStyles({
35
+ bannerSizeDescription: "default",
36
+ className: "w-full line-clamp-3"
37
+ }), className),
38
+ ...rest,
39
+ children
40
+ });
41
+ });
42
+ BannerDescription.displayName = "BannerDescription";
43
+
44
+ //#endregion
45
+ export { BannerDescription };
@@ -0,0 +1,42 @@
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/BannerTitle.tsx
10
+ /**
11
+ * **Styled title for use inside `BannerContent`.**
12
+ *
13
+ * @description
14
+ * Applies the Banner title typography tokens. Renders a single line of text.
15
+ * Use this subcomponent instead of the `title` prop when you need rich
16
+ * ReactNode content (e.g. bold segments, inline icons).
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <Banner variant="info" startIcon={Info}>
21
+ * <BannerContent>
22
+ * <BannerTitle>Update <strong>available</strong></BannerTitle>
23
+ * <BannerDescription>A new version is ready to install.</BannerDescription>
24
+ * </BannerContent>
25
+ * </Banner>
26
+ * ```
27
+ *
28
+ * @see {@link Banner} for the parent component
29
+ * @see {@link BannerContent} for the required wrapper
30
+ */
31
+ const BannerTitle = (0, react.forwardRef)(function BannerTitle({ children, className, ...rest }, ref) {
32
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_Text.Text, {
33
+ ref,
34
+ className: require_styles_styler.cx(require_styles_styler.getStyles({ bannerSizeTitle: "default" }), "w-full truncate", className),
35
+ ...rest,
36
+ children
37
+ });
38
+ });
39
+ BannerTitle.displayName = "BannerTitle";
40
+
41
+ //#endregion
42
+ exports.BannerTitle = BannerTitle;
@@ -0,0 +1,34 @@
1
+
2
+ import * as react from "react";
3
+ import { ReactNode } from "react";
4
+
5
+ //#region src/components/Banner/BannerTitle.d.ts
6
+ type HtmlSpanProps = Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>;
7
+ interface BannerTitleProps extends HtmlSpanProps {
8
+ children: ReactNode;
9
+ className?: string;
10
+ }
11
+ /**
12
+ * **Styled title for use inside `BannerContent`.**
13
+ *
14
+ * @description
15
+ * Applies the Banner title typography tokens. Renders a single line of text.
16
+ * Use this subcomponent instead of the `title` prop when you need rich
17
+ * ReactNode content (e.g. bold segments, inline icons).
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <Banner variant="info" startIcon={Info}>
22
+ * <BannerContent>
23
+ * <BannerTitle>Update <strong>available</strong></BannerTitle>
24
+ * <BannerDescription>A new version is ready to install.</BannerDescription>
25
+ * </BannerContent>
26
+ * </Banner>
27
+ * ```
28
+ *
29
+ * @see {@link Banner} for the parent component
30
+ * @see {@link BannerContent} for the required wrapper
31
+ */
32
+ declare const BannerTitle: react.ForwardRefExoticComponent<BannerTitleProps & react.RefAttributes<HTMLElement>>;
33
+ //#endregion
34
+ export { BannerTitle, type BannerTitleProps };
@@ -0,0 +1,34 @@
1
+
2
+ import * as react from "react";
3
+ import { ReactNode } from "react";
4
+
5
+ //#region src/components/Banner/BannerTitle.d.ts
6
+ type HtmlSpanProps = Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>;
7
+ interface BannerTitleProps extends HtmlSpanProps {
8
+ children: ReactNode;
9
+ className?: string;
10
+ }
11
+ /**
12
+ * **Styled title for use inside `BannerContent`.**
13
+ *
14
+ * @description
15
+ * Applies the Banner title typography tokens. Renders a single line of text.
16
+ * Use this subcomponent instead of the `title` prop when you need rich
17
+ * ReactNode content (e.g. bold segments, inline icons).
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <Banner variant="info" startIcon={Info}>
22
+ * <BannerContent>
23
+ * <BannerTitle>Update <strong>available</strong></BannerTitle>
24
+ * <BannerDescription>A new version is ready to install.</BannerDescription>
25
+ * </BannerContent>
26
+ * </Banner>
27
+ * ```
28
+ *
29
+ * @see {@link Banner} for the parent component
30
+ * @see {@link BannerContent} for the required wrapper
31
+ */
32
+ declare const BannerTitle: react.ForwardRefExoticComponent<BannerTitleProps & react.RefAttributes<HTMLElement>>;
33
+ //#endregion
34
+ export { BannerTitle, type BannerTitleProps };
@@ -0,0 +1,40 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ import { cx, getStyles } from "../../styles/styler.js";
3
+ import { Text } from "../Text.js";
4
+ import { forwardRef } from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+
7
+ //#region src/components/Banner/BannerTitle.tsx
8
+ /**
9
+ * **Styled title for use inside `BannerContent`.**
10
+ *
11
+ * @description
12
+ * Applies the Banner title typography tokens. Renders a single line of text.
13
+ * Use this subcomponent instead of the `title` prop when you need rich
14
+ * ReactNode content (e.g. bold segments, inline icons).
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <Banner variant="info" startIcon={Info}>
19
+ * <BannerContent>
20
+ * <BannerTitle>Update <strong>available</strong></BannerTitle>
21
+ * <BannerDescription>A new version is ready to install.</BannerDescription>
22
+ * </BannerContent>
23
+ * </Banner>
24
+ * ```
25
+ *
26
+ * @see {@link Banner} for the parent component
27
+ * @see {@link BannerContent} for the required wrapper
28
+ */
29
+ const BannerTitle = forwardRef(function BannerTitle({ children, className, ...rest }, ref) {
30
+ return /* @__PURE__ */ jsx(Text, {
31
+ ref,
32
+ className: cx(getStyles({ bannerSizeTitle: "default" }), "w-full truncate", className),
33
+ ...rest,
34
+ children
35
+ });
36
+ });
37
+ BannerTitle.displayName = "BannerTitle";
38
+
39
+ //#endregion
40
+ export { BannerTitle };
@@ -0,0 +1,11 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
+ const require_components_Banner_Banner = require('./Banner.cjs');
4
+ const require_components_Banner_BannerContent = require('./BannerContent.cjs');
5
+ const require_components_Banner_BannerDescription = require('./BannerDescription.cjs');
6
+ const require_components_Banner_BannerTitle = require('./BannerTitle.cjs');
7
+
8
+ exports.Banner = require_components_Banner_Banner.Banner;
9
+ exports.BannerContent = require_components_Banner_BannerContent.BannerContent;
10
+ exports.BannerDescription = require_components_Banner_BannerDescription.BannerDescription;
11
+ exports.BannerTitle = require_components_Banner_BannerTitle.BannerTitle;
@@ -0,0 +1,6 @@
1
+
2
+ import { Banner, BannerProps } from "./Banner.cjs";
3
+ import { BannerContent, BannerContentProps } from "./BannerContent.cjs";
4
+ import { BannerDescription, BannerDescriptionProps } from "./BannerDescription.cjs";
5
+ import { BannerTitle, BannerTitleProps } from "./BannerTitle.cjs";
6
+ export { Banner, BannerContent, type BannerContentProps, BannerDescription, type BannerDescriptionProps, type BannerProps, BannerTitle, type BannerTitleProps };
@@ -0,0 +1,6 @@
1
+
2
+ import { Banner, BannerProps } from "./Banner.js";
3
+ import { BannerContent, BannerContentProps } from "./BannerContent.js";
4
+ import { BannerDescription, BannerDescriptionProps } from "./BannerDescription.js";
5
+ import { BannerTitle, BannerTitleProps } from "./BannerTitle.js";
6
+ export { Banner, BannerContent, type BannerContentProps, BannerDescription, type BannerDescriptionProps, type BannerProps, BannerTitle, type BannerTitleProps };
@@ -0,0 +1,7 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ import { Banner } from "./Banner.js";
3
+ import { BannerContent } from "./BannerContent.js";
4
+ import { BannerDescription } from "./BannerDescription.js";
5
+ import { BannerTitle } from "./BannerTitle.js";
6
+
7
+ export { Banner, BannerContent, BannerDescription, BannerTitle };
@@ -0,0 +1,56 @@
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
+ let react = require("react");
5
+
6
+ //#region src/components/Banner/utils.ts
7
+ /**
8
+ * Maps banner variants to button variants following the Figma spec.
9
+ * Secondary banner variants map to secondary button variants.
10
+ */
11
+ const BANNER_TO_BUTTON_VARIANT = {
12
+ primary: "brand",
13
+ secondary: "brand",
14
+ brand: "brand",
15
+ "brand-secondary": "brand-secondary",
16
+ alert: "alert",
17
+ "alert-secondary": "alert-secondary",
18
+ warning: "warning",
19
+ "warning-secondary": "warning-secondary",
20
+ success: "positive",
21
+ "success-secondary": "positive-secondary",
22
+ info: "info",
23
+ "info-secondary": "info-secondary"
24
+ };
25
+ /**
26
+ * Checks whether a React element has a specific displayName.
27
+ * Handles both regular function components and forwardRef components
28
+ * (which have typeof type === 'object').
29
+ */
30
+ function hasDisplayName(child, name) {
31
+ if (!(0, react.isValidElement)(child)) return false;
32
+ const type = child.type;
33
+ return (typeof type === "function" || typeof type === "object" && type !== null) && "displayName" in type && type.displayName === name;
34
+ }
35
+ /**
36
+ * Separates Banner children into content (BannerContent) and action elements.
37
+ * Skips falsy children so conditional patterns like {show && <Button />} work.
38
+ */
39
+ function separateChildren(children) {
40
+ let content = null;
41
+ const actions = [];
42
+ react.Children.forEach(children, (child) => {
43
+ if (child == null || child === false || child === true || child === "") return;
44
+ if (hasDisplayName(child, "BannerContent")) content = child;
45
+ else actions.push(child);
46
+ });
47
+ return {
48
+ content,
49
+ actions
50
+ };
51
+ }
52
+
53
+ //#endregion
54
+ exports.BANNER_TO_BUTTON_VARIANT = BANNER_TO_BUTTON_VARIANT;
55
+ exports.hasDisplayName = hasDisplayName;
56
+ exports.separateChildren = separateChildren;
@@ -0,0 +1,26 @@
1
+
2
+ import { BannerVariant } from "../../types/dist/index.cjs";
3
+ import { ReactNode } from "react";
4
+
5
+ //#region src/components/Banner/utils.d.ts
6
+ /**
7
+ * Maps banner variants to button variants following the Figma spec.
8
+ * Secondary banner variants map to secondary button variants.
9
+ */
10
+ declare const BANNER_TO_BUTTON_VARIANT: Record<BannerVariant, string>;
11
+ /**
12
+ * Checks whether a React element has a specific displayName.
13
+ * Handles both regular function components and forwardRef components
14
+ * (which have typeof type === 'object').
15
+ */
16
+ declare function hasDisplayName(child: ReactNode, name: string): boolean;
17
+ /**
18
+ * Separates Banner children into content (BannerContent) and action elements.
19
+ * Skips falsy children so conditional patterns like {show && <Button />} work.
20
+ */
21
+ declare function separateChildren(children: ReactNode): {
22
+ content: ReactNode | null;
23
+ actions: ReactNode[];
24
+ };
25
+ //#endregion
26
+ export { BANNER_TO_BUTTON_VARIANT, hasDisplayName, separateChildren };
@@ -0,0 +1,26 @@
1
+
2
+ import { BannerVariant } from "../../types/dist/index.js";
3
+ import { ReactNode } from "react";
4
+
5
+ //#region src/components/Banner/utils.d.ts
6
+ /**
7
+ * Maps banner variants to button variants following the Figma spec.
8
+ * Secondary banner variants map to secondary button variants.
9
+ */
10
+ declare const BANNER_TO_BUTTON_VARIANT: Record<BannerVariant, string>;
11
+ /**
12
+ * Checks whether a React element has a specific displayName.
13
+ * Handles both regular function components and forwardRef components
14
+ * (which have typeof type === 'object').
15
+ */
16
+ declare function hasDisplayName(child: ReactNode, name: string): boolean;
17
+ /**
18
+ * Separates Banner children into content (BannerContent) and action elements.
19
+ * Skips falsy children so conditional patterns like {show && <Button />} work.
20
+ */
21
+ declare function separateChildren(children: ReactNode): {
22
+ content: ReactNode | null;
23
+ actions: ReactNode[];
24
+ };
25
+ //#endregion
26
+ export { BANNER_TO_BUTTON_VARIANT, hasDisplayName, separateChildren };
@@ -0,0 +1,52 @@
1
+ /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
+ import { Children, isValidElement } from "react";
3
+
4
+ //#region src/components/Banner/utils.ts
5
+ /**
6
+ * Maps banner variants to button variants following the Figma spec.
7
+ * Secondary banner variants map to secondary button variants.
8
+ */
9
+ const BANNER_TO_BUTTON_VARIANT = {
10
+ primary: "brand",
11
+ secondary: "brand",
12
+ brand: "brand",
13
+ "brand-secondary": "brand-secondary",
14
+ alert: "alert",
15
+ "alert-secondary": "alert-secondary",
16
+ warning: "warning",
17
+ "warning-secondary": "warning-secondary",
18
+ success: "positive",
19
+ "success-secondary": "positive-secondary",
20
+ info: "info",
21
+ "info-secondary": "info-secondary"
22
+ };
23
+ /**
24
+ * Checks whether a React element has a specific displayName.
25
+ * Handles both regular function components and forwardRef components
26
+ * (which have typeof type === 'object').
27
+ */
28
+ function hasDisplayName(child, name) {
29
+ if (!isValidElement(child)) return false;
30
+ const type = child.type;
31
+ return (typeof type === "function" || typeof type === "object" && type !== null) && "displayName" in type && type.displayName === name;
32
+ }
33
+ /**
34
+ * Separates Banner children into content (BannerContent) and action elements.
35
+ * Skips falsy children so conditional patterns like {show && <Button />} work.
36
+ */
37
+ function separateChildren(children) {
38
+ let content = null;
39
+ const actions = [];
40
+ Children.forEach(children, (child) => {
41
+ if (child == null || child === false || child === true || child === "") return;
42
+ if (hasDisplayName(child, "BannerContent")) content = child;
43
+ else actions.push(child);
44
+ });
45
+ return {
46
+ content,
47
+ actions
48
+ };
49
+ }
50
+
51
+ //#endregion
52
+ export { BANNER_TO_BUTTON_VARIANT, hasDisplayName, separateChildren };
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
3
  const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
4
4
  const require_styles_styler = require('../../styles/styler.cjs');
5
+ const require_components_Text = require('../Text.cjs');
5
6
  const require_components_Box = require('../Box.cjs');
6
7
  const require_components_HStack = require('../HStack.cjs');
7
- const require_components_Text = require('../Text.cjs');
8
8
  const require_components_VStack = require('../VStack.cjs');
9
9
  let react = require("react");
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -1,8 +1,8 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  import { cx } from "../../styles/styler.js";
3
+ import { Text } from "../Text.js";
3
4
  import { Box } from "../Box.js";
4
5
  import { HStack } from "../HStack.js";
5
- import { Text } from "../Text.js";
6
6
  import { VStack } from "../VStack.js";
7
7
  import { forwardRef, useMemo } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -3,12 +3,12 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
5
5
  const require_styles_styler = require('../../../styles/styler.cjs');
6
- const require_components_Box = require('../../Box.cjs');
7
6
  const require_components_IconSlot = require('../../IconSlot.cjs');
7
+ const require_components_Box = require('../../Box.cjs');
8
8
  const require_components_client_Avatar_utils = require('./utils.cjs');
9
+ let _yahoo_uds_icons = require("@yahoo/uds-icons");
9
10
  let react = require("react");
10
11
  let react_jsx_runtime = require("react/jsx-runtime");
11
- let _yahoo_uds_icons = require("@yahoo/uds-icons");
12
12
 
13
13
  //#region src/components/client/Avatar/AvatarIcon.tsx
14
14
  /** Maps avatar variant to icon */
@@ -1,12 +1,12 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  "use client";
3
3
  import { cx, getStyles } from "../../../styles/styler.js";
4
- import { Box } from "../../Box.js";
5
4
  import { IconSlot } from "../../IconSlot.js";
5
+ import { Box } from "../../Box.js";
6
6
  import { DEFAULT_AVATAR_SIZE, DEFAULT_AVATAR_VARIANT, buildAvatarRootClasses, buildInlineSizeStyles } from "./utils.js";
7
+ import { Building, Person } from "@yahoo/uds-icons";
7
8
  import { forwardRef, useMemo } from "react";
8
9
  import { jsx } from "react/jsx-runtime";
9
- import { Building, Person } from "@yahoo/uds-icons";
10
10
 
11
11
  //#region src/components/client/Avatar/AvatarIcon.tsx
12
12
  /** Maps avatar variant to icon */
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
5
5
  const require_styles_styler = require('../../../styles/styler.cjs');
6
- const require_components_Box = require('../../Box.cjs');
7
6
  const require_components_Text = require('../../Text.cjs');
7
+ const require_components_Box = require('../../Box.cjs');
8
8
  const require_components_client_Avatar_utils = require('./utils.cjs');
9
9
  let react = require("react");
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -1,8 +1,8 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  "use client";
3
3
  import { cx } from "../../../styles/styler.js";
4
- import { Box } from "../../Box.js";
5
4
  import { Text } from "../../Text.js";
5
+ import { Box } from "../../Box.js";
6
6
  import { DEFAULT_AVATAR_SIZE, DEFAULT_AVATAR_VARIANT, buildAvatarRootClasses, buildInlineSizeStyles, generateAvatarAbbreviation } from "./utils.js";
7
7
  import { forwardRef, useMemo } from "react";
8
8
  import { jsx } from "react/jsx-runtime";
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
5
5
  const require_styles_styler = require('../../styles/styler.cjs');
6
- const require_components_HStack = require('../HStack.cjs');
7
6
  const require_components_IconSlot = require('../IconSlot.cjs');
7
+ const require_components_HStack = require('../HStack.cjs');
8
8
  let react = require("react");
9
9
  react = require_runtime.__toESM(react);
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -1,8 +1,8 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  "use client";
3
3
  import { cx, getStyles } from "../../styles/styler.js";
4
- import { HStack } from "../HStack.js";
5
4
  import { IconSlot } from "../IconSlot.js";
5
+ import { HStack } from "../HStack.js";
6
6
  import React, { forwardRef, useMemo } from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
 
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
5
5
  const require_styles_styler = require('../../../styles/styler.cjs');
6
- const require_components_Box = require('../../Box.cjs');
7
6
  const require_components_Text = require('../../Text.cjs');
7
+ const require_components_Box = require('../../Box.cjs');
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
 
10
10
  //#region src/components/client/BottomSheet/BottomSheetHeader.tsx
@@ -1,8 +1,8 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  "use client";
3
3
  import { cx, getStyles } from "../../../styles/styler.js";
4
- import { Box } from "../../Box.js";
5
4
  import { Text } from "../../Text.js";
5
+ import { Box } from "../../Box.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
 
8
8
  //#region src/components/client/BottomSheet/BottomSheetHeader.tsx
@@ -10,10 +10,10 @@ const require_components_IconSlot = require('../IconSlot.cjs');
10
10
  const require_generateDefaultClassName = require('../../automated-config/dist/utils/generateDefaultClassName.cjs');
11
11
  const require_components_client_buttonConstants = require('./buttonConstants.cjs');
12
12
  const require_components_client_SpringMotionConfig = require('./SpringMotionConfig.cjs');
13
+ let _yahoo_uds_icons = require("@yahoo/uds-icons");
13
14
  let react = require("react");
14
15
  react = require_runtime.__toESM(react);
15
16
  let react_jsx_runtime = require("react/jsx-runtime");
16
- let _yahoo_uds_icons = require("@yahoo/uds-icons");
17
17
  let motion_react = require("motion/react");
18
18
 
19
19
  //#region src/components/client/Button.tsx
@@ -8,9 +8,9 @@ import { IconSlot } from "../IconSlot.js";
8
8
  import { generateDefaultClassName } from "../../automated-config/dist/utils/generateDefaultClassName.js";
9
9
  import { buttonIconSvgSize } from "./buttonConstants.js";
10
10
  import { SpringMotionConfig } from "./SpringMotionConfig.js";
11
+ import { Progress } from "@yahoo/uds-icons";
11
12
  import React, { cloneElement, forwardRef, isValidElement, useImperativeHandle, useMemo, useRef } from "react";
12
13
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
13
- import { Progress } from "@yahoo/uds-icons";
14
14
  import { AnimatePresence, m, useReducedMotion } from "motion/react";
15
15
 
16
16
  //#region src/components/client/Button.tsx
@@ -3,14 +3,14 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
5
5
  const require_styles_styler = require('../../styles/styler.cjs');
6
+ const require_components_Icon = require('../Icon.cjs');
6
7
  const require_components_Box = require('../Box.cjs');
7
8
  const require_components_FormLabel = require('../FormLabel.cjs');
8
- const require_components_Icon = require('../Icon.cjs');
9
9
  const require_components_client_SpringMotionConfig = require('./SpringMotionConfig.cjs');
10
+ let _yahoo_uds_icons = require("@yahoo/uds-icons");
10
11
  let react = require("react");
11
12
  react = require_runtime.__toESM(react);
12
13
  let react_jsx_runtime = require("react/jsx-runtime");
13
- let _yahoo_uds_icons = require("@yahoo/uds-icons");
14
14
  let motion_react = require("motion/react");
15
15
 
16
16
  //#region src/components/client/Checkbox.tsx
@@ -1,13 +1,13 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  "use client";
3
3
  import { cx, getStyles } from "../../styles/styler.js";
4
+ import { Icon } from "../Icon.js";
4
5
  import { Box } from "../Box.js";
5
6
  import { FormLabel } from "../FormLabel.js";
6
- import { Icon } from "../Icon.js";
7
7
  import { SpringMotionConfig } from "./SpringMotionConfig.js";
8
+ import { Check, Minus } from "@yahoo/uds-icons";
8
9
  import React, { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
9
10
  import { jsx, jsxs } from "react/jsx-runtime";
10
- import { Check, Minus } from "@yahoo/uds-icons";
11
11
  import { m, useReducedMotion } from "motion/react";
12
12
 
13
13
  //#region src/components/client/Checkbox.tsx
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
  const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
5
5
  const require_styles_styler = require('../../../styles/styler.cjs');
6
- const require_components_HStack = require('../../HStack.cjs');
7
- const require_components_Text = require('../../Text.cjs');
8
6
  const require_components_IconSlot = require('../../IconSlot.cjs');
7
+ const require_components_Text = require('../../Text.cjs');
8
+ const require_components_HStack = require('../../HStack.cjs');
9
9
  let react = require("react");
10
10
  react = require_runtime.__toESM(react);
11
11
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -1,9 +1,9 @@
1
1
  /*! © 2026 Yahoo, Inc. UDS v0.0.0-development */
2
2
  "use client";
3
3
  import { cx, getStyles } from "../../../styles/styler.js";
4
- import { HStack } from "../../HStack.js";
5
- import { Text } from "../../Text.js";
6
4
  import { IconSlot } from "../../IconSlot.js";
5
+ import { Text } from "../../Text.js";
6
+ import { HStack } from "../../HStack.js";
7
7
  import React, { forwardRef, useMemo } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { useReducedMotion } from "motion/react";