@zvoove/unity-ui 2.19.1 → 2.20.1

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.
@@ -54,6 +54,46 @@ export declare interface AccordionProps<T extends readonly AccordionItem[] = rea
54
54
  allowMultipleOpenItems?: boolean;
55
55
  }
56
56
 
57
+ export declare const ActionCard: {
58
+ ({ header, children, footer }: ActionCardProps): JSX.Element;
59
+ displayName: string;
60
+ };
61
+
62
+ export declare interface ActionCardProps {
63
+ /**
64
+ * Content rendered inside the card header area with a
65
+ * `surface-container-lowest` background. Wrapped in a horizontal Stack
66
+ * with standardised padding so the consumer only provides the inner nodes.
67
+ */
68
+ header?: ReactNode;
69
+ /** Card body content. */
70
+ children: ReactNode;
71
+ /**
72
+ * Content rendered inside the card footer area. Wrapped in a horizontal
73
+ * Stack with standardised padding so the consumer only provides the inner
74
+ * nodes (typically action buttons).
75
+ */
76
+ footer?: ReactNode;
77
+ }
78
+
79
+ export declare interface ActionConfirmation {
80
+ /**
81
+ * Icon to swap to when confirmed (e.g. `'check'` for a copy action).
82
+ * When omitted, the original icon is kept and shown as filled instead.
83
+ */
84
+ icon?: CommonIconNames;
85
+ /**
86
+ * Confirmation text shown next to the action group (e.g. "Copied").
87
+ */
88
+ text?: string;
89
+ /**
90
+ * Duration in ms before the confirmation auto-reverts.
91
+ * Defaults to `3000`. Set to `0` for toggle actions that stay until toggled off.
92
+ * @default 3000
93
+ */
94
+ duration?: number;
95
+ }
96
+
57
97
  declare const align: {
58
98
  readonly LEFT: "left";
59
99
  readonly CENTER: "center";
@@ -101,7 +141,7 @@ export declare interface AvatarProps extends React.HTMLAttributes<HTMLDivElement
101
141
  /**
102
142
  * The type of the avatar
103
143
  */
104
- type?: 'initials' | 'check' | 'avatar' | 'image';
144
+ type?: 'initials' | 'check' | 'avatar' | 'image' | 'zvoove';
105
145
  /**
106
146
  * The image of the avatar
107
147
  */
@@ -236,7 +276,27 @@ export declare interface CardProps extends React.HTMLAttributes<HTMLDivElement>
236
276
  /**
237
277
  * The content of the card.
238
278
  */
239
- children: ReactNode;
279
+ children?: ReactNode;
280
+ /**
281
+ * Content rendered in the header area.
282
+ * When provided, a border-bottom separator is added automatically.
283
+ */
284
+ header?: ReactNode;
285
+ /**
286
+ * Background color applied to the header area.
287
+ * Only used when `header` is provided.
288
+ */
289
+ headerBgColor?: BackgroundColors;
290
+ /**
291
+ * Content rendered below the body.
292
+ * Receives no extra styling — the consumer controls its appearance.
293
+ */
294
+ footer?: ReactNode;
295
+ /**
296
+ * Background color applied to the footer area.
297
+ * Only used when `footer` is provided.
298
+ */
299
+ footerBgColor?: BackgroundColors;
240
300
  /**
241
301
  * @deprecated Use the `height`, `width`, `minHeight`, `maxHeight`, `minWidth`, `maxWidth` props instead.
242
302
  */
@@ -332,6 +392,68 @@ export declare interface ChangeEvent {
332
392
  };
333
393
  }
334
394
 
395
+ export declare const ChatBubble: ForwardRefExoticComponent<ChatBubbleProps & RefAttributes<HTMLDivElement>>;
396
+
397
+ export declare const ChatBubbleMedia: ForwardRefExoticComponent<ChatBubbleMediaProps & RefAttributes<HTMLElement>>;
398
+
399
+ export declare interface ChatBubbleMediaProps extends React.HTMLAttributes<HTMLElement> {
400
+ /** The media element (img, video, or iframe) to render. */
401
+ children: React.ReactNode;
402
+ /** Optional caption displayed below the media. */
403
+ caption?: string;
404
+ }
405
+
406
+ export declare interface ChatBubbleProps extends React.HTMLAttributes<HTMLDivElement> {
407
+ /**
408
+ * The variant determines alignment and styling of the bubble.
409
+ * - sender: right-aligned, primary blue background
410
+ * - receiver: left-aligned, light surface background
411
+ */
412
+ variant?: ChatBubbleVariant;
413
+ /**
414
+ * Visual state of the bubble.
415
+ * - default: renders children inside a styled bubble
416
+ * - thinking: receiver-only, shows italic label with animated dots
417
+ * - error: reserved for error state styling
418
+ * @default 'default'
419
+ */
420
+ state?: ChatBubbleState;
421
+ /**
422
+ * The message content to display in the bubble. Accepts any ReactNode —
423
+ * plain text, HTML via ContentBlock, custom components, media, tables, etc.
424
+ */
425
+ children?: React.ReactNode;
426
+ /**
427
+ * Phrases to cycle through while in the "thinking" state.
428
+ * Each phrase is shown with animated dots appended.
429
+ * @default ['Einen Moment bitte', 'Ich denke nach', 'Wird verarbeitet']
430
+ */
431
+ thinkingPhrases?: string[];
432
+ /**
433
+ * Props forwarded to the Avatar component.
434
+ * When not provided, defaults to `{ type: 'zvoove' }` for receiver
435
+ * and auto-detects type based on `image`/`name` for sender.
436
+ */
437
+ avatar?: AvatarProps;
438
+ /**
439
+ * Rich content rendered below the bubble without bubble styling — cards,
440
+ * tables, or structured data. When both `children` and `attachment` are set,
441
+ * the text appears inside a styled bubble and the attachment renders directly
442
+ * below, aligned with the bubble. When only `attachment` is set, it renders
443
+ * next to the avatar without a surrounding bubble.
444
+ */
445
+ attachment?: React.ReactNode;
446
+ /**
447
+ * Footer content rendered at the bottom of the ContentSlot, below the bubble
448
+ * and attachment. Typically used for `MessageActions`.
449
+ */
450
+ footer?: React.ReactNode;
451
+ }
452
+
453
+ export declare type ChatBubbleState = 'default' | 'thinking' | 'error';
454
+
455
+ export declare type ChatBubbleVariant = 'sender' | 'receiver';
456
+
335
457
  export declare const Checkbox: ({ checked, name, id, disabled, error, indeterminate, value, label, onChange, }: CheckboxProps) => JSX.Element;
336
458
 
337
459
  export declare interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange'> {
@@ -551,6 +673,7 @@ export declare const commonIconsMap: {
551
673
  readonly lock: Icon_2;
552
674
  readonly menu: Icon_2;
553
675
  readonly metadata: Icon_2;
676
+ readonly code: Icon_2;
554
677
  readonly microphone: Icon_2;
555
678
  readonly minus: Icon_2;
556
679
  readonly 'more-horizontal': Icon_2;
@@ -591,6 +714,8 @@ export declare const commonIconsMap: {
591
714
  readonly stop: Icon_2;
592
715
  readonly sick: Icon_2;
593
716
  readonly table: Icon_2;
717
+ readonly 'thumb-up': Icon_2;
718
+ readonly 'thumb-down': Icon_2;
594
719
  readonly taxi: Icon_2;
595
720
  readonly 'text-align-center': Icon_2;
596
721
  readonly 'text-align-justify': Icon_2;
@@ -630,72 +755,6 @@ export declare enum COMPONENT_ERROR {
630
755
  DUPLICATE_FILE = "duplicate-file"
631
756
  }
632
757
 
633
- export declare const ConfirmationCard: {
634
- ({ title, children, variant, icon, actions, status, statusLabel, }: ConfirmationCardProps): JSX.Element;
635
- displayName: string;
636
- };
637
-
638
- export declare interface ConfirmationCardAction {
639
- /**
640
- * The label of the action button.
641
- */
642
- label: string;
643
- /**
644
- * Callback fired when the action button is clicked.
645
- */
646
- onClick?: (event: MouseEvent_2<HTMLElement>) => void;
647
- /**
648
- * The visual variant of the button.
649
- * @default 'outlined'
650
- */
651
- variant?: ConfirmationCardActionVariant;
652
- /**
653
- * Icon to display in the action button.
654
- */
655
- icon?: CommonIconNames | Omit<IconProps, 'size' | 'color'>;
656
- }
657
-
658
- export declare type ConfirmationCardActionVariant = 'text' | 'textSecondary' | 'filled' | 'outlined' | 'elevated' | 'tonal' | 'positive' | 'negative';
659
-
660
- export declare interface ConfirmationCardProps {
661
- /**
662
- * The title displayed next to the icon.
663
- */
664
- title: string;
665
- /**
666
- * The content of the ConfirmationCard. Accepts any valid ReactNode.
667
- */
668
- children?: ReactNode;
669
- /**
670
- * The semantic variant of the ConfirmationCard.
671
- * @default 'info'
672
- */
673
- variant?: ConfirmationCardVariant;
674
- /**
675
- * Icon to display in the ConfirmationCard. If not provided, uses the default icon for the variant.
676
- */
677
- icon?: CommonIconNames | Omit<IconProps, 'size' | 'color'>;
678
- /**
679
- * Action buttons displayed below the card.
680
- * Hidden when `status` is set.
681
- */
682
- actions?: ConfirmationCardAction[];
683
- /**
684
- * The resolved status of the card. When set, action buttons are replaced
685
- * by a readonly Chip indicating the outcome.
686
- */
687
- status?: ConfirmationCardStatus;
688
- /**
689
- * Custom label for the status chip. Use this to provide translated labels.
690
- * @default 'Confirmed', 'Rejected', or 'Skipped' based on `status`
691
- */
692
- statusLabel?: string;
693
- }
694
-
695
- export declare type ConfirmationCardStatus = 'confirmed' | 'rejected' | 'skipped';
696
-
697
- export declare type ConfirmationCardVariant = 'info' | 'success' | 'warning' | 'error';
698
-
699
758
  export declare const ContentBlock: {
700
759
  ({ children }: ContentBlockProps): JSX.Element;
701
760
  displayName: string;
@@ -926,6 +985,8 @@ declare interface ExpandableRowConfig {
926
985
  */
927
986
  export declare function extractText(node: ReactNode): string;
928
987
 
988
+ export declare type FeedbackType = 'positive' | 'negative' | null;
989
+
929
990
  /**
930
991
  * Error types that can occur for individual files during validation.
931
992
  */
@@ -1339,6 +1400,7 @@ declare const iconMap: {
1339
1400
  readonly lock: Icon_2;
1340
1401
  readonly menu: Icon_2;
1341
1402
  readonly metadata: Icon_2;
1403
+ readonly code: Icon_2;
1342
1404
  readonly microphone: Icon_2;
1343
1405
  readonly minus: Icon_2;
1344
1406
  readonly 'more-horizontal': Icon_2;
@@ -1379,6 +1441,8 @@ declare const iconMap: {
1379
1441
  readonly stop: Icon_2;
1380
1442
  readonly sick: Icon_2;
1381
1443
  readonly table: Icon_2;
1444
+ readonly 'thumb-up': Icon_2;
1445
+ readonly 'thumb-down': Icon_2;
1382
1446
  readonly taxi: Icon_2;
1383
1447
  readonly 'text-align-center': Icon_2;
1384
1448
  readonly 'text-align-justify': Icon_2;
@@ -1565,6 +1629,72 @@ export declare type MenuItem<T extends React.ElementType = 'a'> = {
1565
1629
  icon: CommonIconNames | React.ReactElement;
1566
1630
  } & Omit<React.ComponentPropsWithoutRef<T>, 'children'>;
1567
1631
 
1632
+ export declare interface MessageAction {
1633
+ /**
1634
+ * The icon to display for this action.
1635
+ */
1636
+ icon: CommonIconNames;
1637
+ /**
1638
+ * Accessible label for the action (used as tooltip and aria-label).
1639
+ */
1640
+ label: string;
1641
+ /**
1642
+ * Callback fired when the action button is clicked.
1643
+ */
1644
+ onClick?: (event: MouseEvent_2<HTMLButtonElement>) => void;
1645
+ /**
1646
+ * Whether this action is currently in an active/toggled state.
1647
+ * @default false
1648
+ */
1649
+ active?: boolean;
1650
+ /**
1651
+ * Feedback group for mutual exclusion (e.g. thumbs up/down).
1652
+ * Actions sharing the same group are mutually exclusive — activating one deactivates the other.
1653
+ */
1654
+ feedbackType?: 'positive' | 'negative';
1655
+ /**
1656
+ * Confirmation behavior on click — animation, icon swap, and text.
1657
+ * Provides a consistent pattern for copy ("Copied"), feedback ("Thanks for your feedback"), etc.
1658
+ */
1659
+ confirmation?: ActionConfirmation;
1660
+ }
1661
+
1662
+ export declare const MessageActions: ForwardRefExoticComponent<MessageActionsProps & RefAttributes<HTMLDivElement>>;
1663
+
1664
+ export declare interface MessageActionsProps {
1665
+ /**
1666
+ * The layout variant matching the parent ChatBubble alignment.
1667
+ * - `receiver`: actions on the left, timestamp on the right
1668
+ * - `sender`: timestamp on the left, actions on the right
1669
+ * @default 'receiver'
1670
+ */
1671
+ variant?: MessageActionsVariant;
1672
+ /**
1673
+ * The timestamp text to display (e.g. "10:01").
1674
+ */
1675
+ timestamp?: string;
1676
+ /**
1677
+ * The action buttons to display.
1678
+ * Defaults to copy, thumb-up, thumb-down, and more-horizontal.
1679
+ */
1680
+ actions?: MessageAction[];
1681
+ /**
1682
+ * Menu items shown in the "More" action popup menu.
1683
+ * When provided, the last default action (more-horizontal) opens a PopUpMenu.
1684
+ */
1685
+ menuItems?: PopUpMenuItem[];
1686
+ /**
1687
+ * Callback fired when a feedback action (thumbs up/down) is selected.
1688
+ */
1689
+ onFeedback?: (feedback: FeedbackType) => void;
1690
+ /**
1691
+ * Additional CSS class name.
1692
+ */
1693
+ className?: string;
1694
+ }
1695
+
1696
+ export declare type MessageActionsVariant = 'sender' | 'receiver';
1697
+
1568
1698
  declare type NonNullable_2<T> = Exclude<T, null | undefined>;
1569
1699
  export { NonNullable_2 as NonNullable }
1570
1700
 
@@ -1972,6 +2102,51 @@ export declare type ResponsiveTypeFixed<T> = {
1972
2102
 
1973
2103
  export declare type RowsPerPage = 10 | 20 | 50 | 100 | 200;
1974
2104
 
2105
+ export declare const ScoreCard: ForwardRefExoticComponent<ScoreCardProps & RefAttributes<HTMLDivElement>>;
2106
+
2107
+ export declare interface ScoreCardProps {
2108
+ /**
2109
+ * Main KPI value displayed prominently (e.g. "0,00", "156", "92,3%").
2110
+ */
2111
+ value: string | number;
2112
+ /**
2113
+ * Secondary label below the value (e.g. "Parameter", "davon 12 in kritischem Status").
2114
+ */
2115
+ parameter?: string;
2116
+ /**
2117
+ * Icon shown to the left of the parameter text.
2118
+ */
2119
+ parameterIcon?: CommonIconNames;
2120
+ /**
2121
+ * Whether to show the parameter icon.
2122
+ * @default true
2123
+ */
2124
+ showIcon?: boolean;
2125
+ /**
2126
+ * Color variant controlling background and text colors.
2127
+ * @default 'neutral'
2128
+ */
2129
+ variant?: ScoreCardVariant;
2130
+ /**
2131
+ * Size variant controlling padding and typography scale.
2132
+ * @default 'large'
2133
+ */
2134
+ size?: ScoreCardSize;
2135
+ /**
2136
+ * Locale for number formatting (e.g. 'de-DE', 'en-US').
2137
+ * When omitted, uses the browser's default locale.
2138
+ */
2139
+ locale?: string;
2140
+ /**
2141
+ * Fully custom content — replaces the default value/parameter layout.
2142
+ */
2143
+ children?: ReactNode;
2144
+ }
2145
+
2146
+ export declare type ScoreCardSize = 'large' | 'medium' | 'small';
2147
+
2148
+ export declare type ScoreCardVariant = 'negative' | 'active' | 'positive' | 'neutral' | 'ghost';
2149
+
1975
2150
  export declare const SegmentButton: <T extends React.ElementType = "button", V = string>({ label, active, matchSiblings, icon, value, as, linkComponent, ...props }: SegmentButtonProps<T, V>) => JSX.Element;
1976
2151
 
1977
2152
  export declare type SegmentButtonProps<T extends React.ElementType, V = string> = React.ComponentPropsWithoutRef<T> & {
@@ -2565,7 +2740,7 @@ declare type TabItem<T extends React.ElementType = 'button'> = {
2565
2740
  } & Omit<React.ComponentPropsWithoutRef<T>, 'children'>;
2566
2741
 
2567
2742
  export declare const Table: {
2568
- <T extends readonly TableColumnProps[]>({ data, columns, title, subtitle, actions, filters, footer, orderBy, onOrderByChange, emptyState, hiddenColumns, loading, expandedRows, }: TableProps<T>): JSX.Element;
2743
+ <T extends readonly TableColumnProps[]>({ data, columns, title, subtitle, actions, filters, footer, orderBy, onOrderByChange, emptyState, hiddenColumns, loading, expandedRows, headerBackgroundColor, }: TableProps<T>): JSX.Element;
2569
2744
  displayName: string;
2570
2745
  };
2571
2746
 
@@ -2658,6 +2833,11 @@ export declare interface TableProps<T extends readonly TableColumnProps[] = read
2658
2833
  * The footer of the Table.
2659
2834
  */
2660
2835
  footer?: React.ReactNode;
2836
+ /**
2837
+ * The background color of the table header.
2838
+ * @default false
2839
+ */
2840
+ headerBackgroundColor?: boolean;
2661
2841
  }
2662
2842
 
2663
2843
  export declare type TableRowData<T extends readonly TableColumnProps[]> = {