@zvoove/unity-ui 2.29.1 → 2.30.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.
@@ -128,9 +128,9 @@ export declare type AnnouncementType = 'added' | 'removed' | 'cleared' | 'compon
128
128
  export declare const Avatar: ({ size, type: typeProp, name, image, initialsAmount, variant, }: AvatarProps) => JSX.Element;
129
129
 
130
130
  declare const AVATAR_SIZES: {
131
- readonly SMALL: "small";
132
- readonly MEDIUM: "medium";
133
- readonly LARGE: "large";
131
+ readonly SM: "sm";
132
+ readonly MD: "md";
133
+ readonly LG: "lg";
134
134
  };
135
135
 
136
136
  export declare const AvatarGroup: ({ children, maxLength, total }: AvatarGroupProps) => JSX.Element;
@@ -152,10 +152,18 @@ export declare interface AvatarGroupProps {
152
152
 
153
153
  export declare interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
154
154
  /**
155
- * The size of the avatar
156
- * @default 'large'
155
+ * The size of the avatar.
156
+ *
157
+ * Accepts a single value or a responsive object keyed by viewport.
158
+ *
159
+ * @default 'md'
160
+ *
161
+ * @remarks
162
+ * The values `'small' | 'medium' | 'large'` are **deprecated** and kept for
163
+ * backwards compatibility. They are mapped to `'sm' | 'md' | 'lg'` and will
164
+ * be removed in v3.0.0.
157
165
  */
158
- size?: ResponsiveType<AvatarSize>;
166
+ size?: ResponsiveType<AvatarSize | AvatarSizeLegacy>;
159
167
  /**
160
168
  * The type of the avatar
161
169
  */
@@ -178,7 +186,9 @@ export declare interface AvatarProps extends React.HTMLAttributes<HTMLDivElement
178
186
  variant?: 'round' | 'square';
179
187
  }
180
188
 
181
- declare type AvatarSize = (typeof AVATAR_SIZES)[keyof typeof AVATAR_SIZES];
189
+ export declare type AvatarSize = (typeof AVATAR_SIZES)[keyof typeof AVATAR_SIZES];
190
+
191
+ /* Excluded from this release type: AvatarSizeLegacy */
182
192
 
183
193
  declare type AxisVariant = 'X' | 'Y';
184
194
 
@@ -236,6 +246,8 @@ declare const BREAKPOINTS: {
236
246
  readonly tablet: 1024;
237
247
  readonly laptop: 1280;
238
248
  readonly desktop: 1536;
249
+ readonly wide: 1920;
250
+ readonly ultrawide: 2560;
239
251
  };
240
252
 
241
253
  export declare const Button: {
@@ -294,7 +306,7 @@ export declare type ButtonsTranslations = {
294
306
  };
295
307
 
296
308
  export declare const Card: {
297
- <T extends React.ElementType = "div">({ children, header, headerBgColor, footer, footerBgColor, hideHeaderBorder, borderRadius, elevation, variant, padding, margin, className, overflow, bgColor, height, width, minHeight, maxHeight, minWidth, maxWidth, interactive, as, linkComponent, ...restProps }: CardProps<T> & {
309
+ <T extends React.ElementType = "div">({ children, header, headerBgColor, footer, footerBgColor, hideHeaderBorder, borderRadius, elevation, variant, padding, margin, className, overflow, bgColor, height, width, minHeight, maxHeight, minWidth, maxWidth, borderStyle, interactive, as, linkComponent, ...restProps }: CardProps<T> & {
298
310
  ref?: ForwardedRef<ComponentRef<T>>;
299
311
  }): JSX.Element;
300
312
  displayName: string;
@@ -310,6 +322,12 @@ export declare type CardProps<T extends React.ElementType = 'div'> = UnionAs_2 &
310
322
  * When provided, a border-bottom separator is added automatically.
311
323
  */
312
324
  header?: ReactNode;
325
+ /**
326
+ * The style of the border of the card. <br />
327
+ * Only used when variant is 'outlined'.
328
+ * @default 'solid'
329
+ */
330
+ borderStyle?: 'solid' | 'dashed' | 'dotted';
313
331
  /**
314
332
  * Background color applied to the header area.
315
333
  * Only used when `header` is provided.
@@ -910,7 +928,51 @@ export declare type CustomCommonIconNames = keyof typeof customCommonIconsMap;
910
928
  * their default duotone brand colors and a single inherited color.
911
929
  */
912
930
  export declare const customCommonIconsMap: {
913
- readonly zvoove: ({ size, color }: ZvoooveLogoProps) => JSX.Element;
931
+ readonly zvoove: ({ size, color }: ZvooveLogoProps) => JSX.Element;
932
+ readonly 'zvoove-one': ({ size, color }: {
933
+ size?: number;
934
+ color?: string;
935
+ }) => JSX.Element;
936
+ readonly 'zvoove-recruit': ({ size, color, }: {
937
+ size?: number;
938
+ color?: string;
939
+ }) => JSX.Element;
940
+ readonly 'zvoove-invoice-monitor': ({ size, color, }: {
941
+ size?: number;
942
+ color?: string;
943
+ }) => JSX.Element;
944
+ readonly 'zvoove-go': ({ size, color }: {
945
+ size?: number;
946
+ color?: string;
947
+ }) => JSX.Element;
948
+ readonly 'zvoove-intelligence': ({ size, color, }: {
949
+ size?: number;
950
+ color?: string;
951
+ }) => JSX.Element;
952
+ readonly 'zvoove-free': ({ size, color, }: {
953
+ size?: number;
954
+ color?: string;
955
+ }) => JSX.Element;
956
+ readonly 'zvoove-work-expert': ({ size, color, }: {
957
+ size?: number;
958
+ color?: string;
959
+ }) => JSX.Element;
960
+ readonly 'zvoove-elevate': ({ size, color, }: {
961
+ size?: number;
962
+ color?: string;
963
+ }) => JSX.Element;
964
+ readonly 'zvoove-cashlink': ({ size, color, }: {
965
+ size?: number;
966
+ color?: string;
967
+ }) => JSX.Element;
968
+ readonly 'zvoove-docs-ai': ({ size, color, }: {
969
+ size?: number;
970
+ color?: string;
971
+ }) => JSX.Element;
972
+ readonly 'cockpit-x': ({ size, color }: {
973
+ size?: number;
974
+ color?: string;
975
+ }) => JSX.Element;
914
976
  };
915
977
 
916
978
  declare interface CustomIconProps {
@@ -1464,6 +1526,19 @@ export declare interface FormLabelProps {
1464
1526
  required?: boolean;
1465
1527
  }
1466
1528
 
1529
+ export declare type Gap = SpacingKeys | {
1530
+ row?: SpacingKeys;
1531
+ column?: SpacingKeys;
1532
+ };
1533
+
1534
+ declare type GapAxisVariant = 'Row' | 'Column';
1535
+
1536
+ export declare type GapResponsiveStyles<Attr extends string> = {
1537
+ [K in GenerateGapResponsiveStyleKeys<Attr>]: Record<SpacingKeys, string>;
1538
+ };
1539
+
1540
+ declare type GenerateGapResponsiveStyleKeys<Attr extends string> = Attr | `${Attr}${ResponsiveBreakpoint}` | `${Attr}${GapAxisVariant}` | `${Attr}${GapAxisVariant}${ResponsiveBreakpoint}`;
1541
+
1467
1542
  export declare type GenerateResponsiveGenericStyleKeys<Attr extends string> = Attr | `${Attr}${ResponsiveBreakpoint}`;
1468
1543
 
1469
1544
  declare type GenerateResponsiveStyleKeys<Attr extends string> = Attr | `${Attr}${ResponsiveBreakpoint}` | `${Attr}${AxisVariant}` | `${Attr}${SideVariant}` | `${Attr}${AxisVariant}${ResponsiveBreakpoint}` | `${Attr}${SideVariant}${ResponsiveBreakpoint}`;
@@ -1483,6 +1558,10 @@ export declare type GenericResponsiveKeys<T extends string> = {
1483
1558
  */
1484
1559
  export declare const getBreakpoint: (width: number) => Viewport;
1485
1560
 
1561
+ export declare type GetGapPropsReturnType<Attr extends string> = {
1562
+ [K in GenerateGapResponsiveStyleKeys<Attr>]: SpacingKeys | undefined;
1563
+ };
1564
+
1486
1565
  export declare type GetGenericPropsReturnType<Attr extends string, T extends string> = {
1487
1566
  [K in GenerateSimpleResponsiveStyleKeys<Attr>]: T | undefined;
1488
1567
  };
@@ -1569,10 +1648,21 @@ export declare interface GridProps extends React.HTMLAttributes<HTMLDivElement>
1569
1648
  */
1570
1649
  rows?: ResponsiveType<number | string>;
1571
1650
  /**
1572
- * The gap between the columns.
1651
+ * The gap between grid items.
1652
+ *
1653
+ * Accepts either a single spacing key applied to both axes, or an object
1654
+ * with `row` / `column` keys to target each axis independently.
1655
+ * Fully responsive: any per-breakpoint value can itself be a spacing key
1656
+ * or a `{ row, column }` object.
1657
+ *
1658
+ * @example
1659
+ * gap="md"
1660
+ * gap={{ row: 'md', column: 'sm' }}
1661
+ * gap={{ minimum: 'sm', mobile: { row: 'md', column: 'lg' } }}
1662
+ *
1573
1663
  * @default 'none'
1574
1664
  */
1575
- gap?: ResponsiveType<SpacingKeys>;
1665
+ gap?: ResponsiveType<Gap>;
1576
1666
  /**
1577
1667
  * Define padding to the grid wrapper.
1578
1668
  * @default 'none'
@@ -1592,7 +1682,51 @@ export declare type HighlightStyle = {
1592
1682
  export declare const Icon: ({ name, size, weight, color, type, featured, ...props }: IconProps) => JSX.Element;
1593
1683
 
1594
1684
  declare const iconMap: {
1595
- readonly zvoove: ({ size, color }: ZvoooveLogoProps) => JSX.Element;
1685
+ readonly zvoove: ({ size, color }: ZvooveLogoProps) => JSX.Element;
1686
+ readonly 'zvoove-one': ({ size, color }: {
1687
+ size?: number;
1688
+ color?: string;
1689
+ }) => JSX.Element;
1690
+ readonly 'zvoove-recruit': ({ size, color, }: {
1691
+ size?: number;
1692
+ color?: string;
1693
+ }) => JSX.Element;
1694
+ readonly 'zvoove-invoice-monitor': ({ size, color, }: {
1695
+ size?: number;
1696
+ color?: string;
1697
+ }) => JSX.Element;
1698
+ readonly 'zvoove-go': ({ size, color }: {
1699
+ size?: number;
1700
+ color?: string;
1701
+ }) => JSX.Element;
1702
+ readonly 'zvoove-intelligence': ({ size, color, }: {
1703
+ size?: number;
1704
+ color?: string;
1705
+ }) => JSX.Element;
1706
+ readonly 'zvoove-free': ({ size, color, }: {
1707
+ size?: number;
1708
+ color?: string;
1709
+ }) => JSX.Element;
1710
+ readonly 'zvoove-work-expert': ({ size, color, }: {
1711
+ size?: number;
1712
+ color?: string;
1713
+ }) => JSX.Element;
1714
+ readonly 'zvoove-elevate': ({ size, color, }: {
1715
+ size?: number;
1716
+ color?: string;
1717
+ }) => JSX.Element;
1718
+ readonly 'zvoove-cashlink': ({ size, color, }: {
1719
+ size?: number;
1720
+ color?: string;
1721
+ }) => JSX.Element;
1722
+ readonly 'zvoove-docs-ai': ({ size, color, }: {
1723
+ size?: number;
1724
+ color?: string;
1725
+ }) => JSX.Element;
1726
+ readonly 'cockpit-x': ({ size, color }: {
1727
+ size?: number;
1728
+ color?: string;
1729
+ }) => JSX.Element;
1596
1730
  readonly add: Icon_2;
1597
1731
  readonly 'add-circle': Icon_2;
1598
1732
  readonly 'add-file': Icon_2;
@@ -2726,7 +2860,7 @@ export declare interface RejectedFile {
2726
2860
  errorMessage: string;
2727
2861
  }
2728
2862
 
2729
- declare type ResponsiveBreakpoint = 'SM' | 'MD' | 'LG' | 'XL' | '2XL';
2863
+ declare type ResponsiveBreakpoint = 'SM' | 'MD' | 'LG' | 'XL' | '2XL' | '3XL' | '4XL';
2730
2864
 
2731
2865
  export declare type ResponsiveGenericStyles<Attr extends string, T extends string = string> = {
2732
2866
  [K in GenerateResponsiveGenericStyleKeys<Attr>]: Record<T, string>;
@@ -3330,9 +3464,19 @@ export declare interface StackProps extends React.HTMLAttributes<HTMLDivElement>
3330
3464
  */
3331
3465
  children: ReactNode;
3332
3466
  /**
3333
- * Define gap between elements
3467
+ * Define gap between elements.
3468
+ *
3469
+ * Accepts either a single spacing key applied to both axes, or an object
3470
+ * with `row` / `column` keys to target each axis independently.
3471
+ * Fully responsive: any per-breakpoint value can itself be a spacing key
3472
+ * or a `{ row, column }` object.
3473
+ *
3474
+ * @example
3475
+ * gap="md"
3476
+ * gap={{ row: 'sm', column: 'md' }}
3477
+ * gap={{ minimum: 'sm', mobile: { row: 'md', column: 'lg' } }}
3334
3478
  */
3335
- gap?: ResponsiveType<SpacingKeys>;
3479
+ gap?: ResponsiveType<Gap>;
3336
3480
  /**
3337
3481
  * Define the direction of the stack
3338
3482
  */
@@ -3642,15 +3786,28 @@ export declare interface TagProps extends React.HTMLAttributes<HTMLSpanElement>
3642
3786
  */
3643
3787
  tone?: 'dark' | 'light';
3644
3788
  /**
3645
- * The size of the tag
3789
+ * The size of the tag.
3790
+ *
3791
+ * Accepts a single value or a responsive object keyed by viewport.
3792
+ *
3793
+ * @default 'md'
3794
+ *
3795
+ * @remarks
3796
+ * The values `'small' | 'medium' | 'large'` are **deprecated** and kept for
3797
+ * backwards compatibility. They are mapped to `'sm' | 'md' | 'lg'` and will
3798
+ * be removed in v3.0.0.
3646
3799
  */
3647
- size?: 'large' | 'medium' | 'small';
3800
+ size?: ResponsiveType<TagSize | TagSizeLegacy>;
3648
3801
  /**
3649
3802
  * The icon of the tag
3650
3803
  */
3651
3804
  icon?: CommonIconNames;
3652
3805
  }
3653
3806
 
3807
+ export declare type TagSize = 'sm' | 'md' | 'lg';
3808
+
3809
+ /* Excluded from this release type: TagSizeLegacy */
3810
+
3654
3811
  export declare const Textarea: ForwardRefExoticComponent<TextareaProps & RefAttributes<HTMLTextAreaElement>>;
3655
3812
 
3656
3813
  export declare interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'className' | 'style'> {
@@ -3824,8 +3981,17 @@ export declare type TypographyProps<T extends TypographyElements = 'p'> = Omit<R
3824
3981
  variant?: 'display' | 'body' | 'title' | 'headline' | 'label';
3825
3982
  /**
3826
3983
  * The size of the typography.
3984
+ *
3985
+ * Accepts a single value or a responsive object keyed by viewport.
3986
+ *
3987
+ * @default 'md'
3988
+ *
3989
+ * @remarks
3990
+ * The values `'small' | 'medium' | 'large'` are **deprecated** and kept for
3991
+ * backwards compatibility. They are mapped to `'sm' | 'md' | 'lg'` and will
3992
+ * be removed in v3.0.0.
3827
3993
  */
3828
- size?: 'small' | 'medium' | 'large';
3994
+ size?: ResponsiveType<TypographySize | TypographySizeLegacy>;
3829
3995
  /**
3830
3996
  * The html element of the typography. The TS type of the chosen element will be extended so you the component will accept all the props of the chosen element.
3831
3997
  */
@@ -3858,6 +4024,10 @@ export declare type TypographyProps<T extends TypographyElements = 'p'> = Omit<R
3858
4024
  wrap?: boolean;
3859
4025
  };
3860
4026
 
4027
+ export declare type TypographySize = 'sm' | 'md' | 'lg';
4028
+
4029
+ /* Excluded from this release type: TypographySizeLegacy */
4030
+
3861
4031
  declare type Union = {
3862
4032
  /**
3863
4033
  * Whether the select is multiple.
@@ -4687,37 +4857,95 @@ export declare interface ValidationEvent {
4687
4857
 
4688
4858
  export declare type Viewport = keyof typeof BREAKPOINTS;
4689
4859
 
4690
- declare interface ZvoooveLogoProps {
4691
- size?: number;
4692
- color?: string;
4693
- }
4694
-
4695
4860
  export declare const ZvooveBrand: {
4696
- ({ hideIcon, hideName, iconSize, nameHeight, }: ZvooveBrandProps): JSX.Element;
4861
+ ({ product, iconStyle, size, hideIcon, hideName, hideTagline, tagline: taglineProp, iconSize: iconSizeProp, nameHeight: nameHeightProp, taglineSize: taglineSizeProp, }: ZvooveBrandProps): JSX.Element;
4697
4862
  displayName: string;
4698
4863
  };
4699
4864
 
4865
+ /**
4866
+ * Visual style of the logomark.
4867
+ * - `duotone`: brand colors in light mode, switches to the themed flat
4868
+ * variant in dark mode so the logomark always follows the surface tone.
4869
+ * - `flat`: a single-color version using the surface foreground token,
4870
+ * themed in both light and dark mode.
4871
+ */
4872
+ export declare type ZvooveBrandIconStyle = 'duotone' | 'flat';
4873
+
4700
4874
  export declare interface ZvooveBrandProps {
4701
4875
  /**
4702
- * Hide the icon (logomark).
4876
+ * The zvoove product to display. Drives both the logomark and the tagline.
4877
+ * @default 'default'
4878
+ */
4879
+ product?: ZvooveProduct;
4880
+ /**
4881
+ * Visual style of the logomark.
4882
+ * @default 'duotone'
4883
+ */
4884
+ iconStyle?: ZvooveBrandIconStyle;
4885
+ /**
4886
+ * Overall size of the brand lock-up. Sets sensible defaults for the
4887
+ * logomark, wordmark and tagline while keeping the Figma design ratios.
4888
+ * Individual `iconSize`, `nameHeight` and `taglineSize` props can
4889
+ * override the values picked from the size.
4890
+ * @default 'md'
4891
+ */
4892
+ size?: ZvooveBrandSize;
4893
+ /**
4894
+ * Hide the logomark.
4703
4895
  * @default false
4704
4896
  */
4705
4897
  hideIcon?: boolean;
4706
4898
  /**
4707
- * Hide the name (wordmark).
4899
+ * Hide the "zvoove" wordmark.
4708
4900
  * @default false
4709
4901
  */
4710
4902
  hideName?: boolean;
4711
4903
  /**
4712
- * Size of the icon in pixels.
4713
- * @default 22
4904
+ * Hide the product tagline (e.g. "One", "Recruit").
4905
+ * Has no effect when `product="default"` since the default brand has no tagline.
4906
+ * @default false
4907
+ */
4908
+ hideTagline?: boolean;
4909
+ /**
4910
+ * Override the product tagline with a custom string. Falls back to the
4911
+ * tagline derived from `product` when omitted. Useful for sub-products,
4912
+ * environment labels (e.g. "Beta", "Staging") or fully custom branding.
4913
+ * Has no effect when `hideTagline` is `true`.
4914
+ */
4915
+ tagline?: string;
4916
+ /**
4917
+ * Override the logomark size in pixels. Falls back to the value derived
4918
+ * from `size`.
4714
4919
  */
4715
4920
  iconSize?: number;
4716
4921
  /**
4717
- * Height of the name in pixels.
4718
- * @default 12
4922
+ * Override the "zvoove" wordmark height in pixels. Falls back to the
4923
+ * value derived from `size`.
4719
4924
  */
4720
4925
  nameHeight?: number;
4926
+ /**
4927
+ * Override the product tagline font size in pixels. Falls back to the
4928
+ * value derived from `size`.
4929
+ */
4930
+ taglineSize?: number;
4931
+ }
4932
+
4933
+ /**
4934
+ * Overall size of the brand lock-up. Each tier scales the logomark,
4935
+ * wordmark and tagline together while keeping the design ratios.
4936
+ * `md` matches the Figma baseline (icon 32px, wordmark 13px, tagline 24px).
4937
+ */
4938
+ export declare type ZvooveBrandSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4939
+
4940
+ declare interface ZvooveLogoProps {
4941
+ size?: number;
4942
+ color?: string;
4721
4943
  }
4722
4944
 
4945
+ /**
4946
+ * The zvoove product whose brand identity to display.
4947
+ * Determines the logomark and the tagline text (e.g. "One", "Recruit").
4948
+ */
4949
+ export declare type ZvooveProduct = 'default' | 'one' | 'recruit' | 'invoice-monitor' | 'go' | 'insights' | 'work-expert' | 'elevate' | 'cashlink' | 'docs-ai';
4950
+
4723
4951
  export { }