@fanvue/ui 3.12.1 → 3.13.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 (42) hide show
  1. package/dist/cjs/components/Accordion/AccordionTrigger.cjs +11 -2
  2. package/dist/cjs/components/Accordion/AccordionTrigger.cjs.map +1 -1
  3. package/dist/cjs/components/Avatar/Avatar.cjs +2 -2
  4. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  5. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +25 -2
  6. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  7. package/dist/cjs/components/Icons/GifIcon.cjs +12 -36
  8. package/dist/cjs/components/Icons/GifIcon.cjs.map +1 -1
  9. package/dist/cjs/components/ProgressBar/ProgressBar.cjs +30 -5
  10. package/dist/cjs/components/ProgressBar/ProgressBar.cjs.map +1 -1
  11. package/dist/cjs/components/ProgressBar/ProgressBarItem.cjs +49 -0
  12. package/dist/cjs/components/ProgressBar/ProgressBarItem.cjs.map +1 -0
  13. package/dist/cjs/components/ProgressBar/ProgressBarSteps.cjs +66 -0
  14. package/dist/cjs/components/ProgressBar/ProgressBarSteps.cjs.map +1 -0
  15. package/dist/cjs/components/TextArea/TextArea.cjs +4 -4
  16. package/dist/cjs/components/TextArea/TextArea.cjs.map +1 -1
  17. package/dist/cjs/components/TextField/TextField.cjs +105 -62
  18. package/dist/cjs/components/TextField/TextField.cjs.map +1 -1
  19. package/dist/cjs/index.cjs +4 -0
  20. package/dist/cjs/index.cjs.map +1 -1
  21. package/dist/components/Accordion/AccordionTrigger.mjs +11 -2
  22. package/dist/components/Accordion/AccordionTrigger.mjs.map +1 -1
  23. package/dist/components/Avatar/Avatar.mjs +2 -2
  24. package/dist/components/Avatar/Avatar.mjs.map +1 -1
  25. package/dist/components/DropdownMenu/DropdownMenu.mjs +25 -2
  26. package/dist/components/DropdownMenu/DropdownMenu.mjs.map +1 -1
  27. package/dist/components/Icons/GifIcon.mjs +12 -36
  28. package/dist/components/Icons/GifIcon.mjs.map +1 -1
  29. package/dist/components/ProgressBar/ProgressBar.mjs +30 -5
  30. package/dist/components/ProgressBar/ProgressBar.mjs.map +1 -1
  31. package/dist/components/ProgressBar/ProgressBarItem.mjs +32 -0
  32. package/dist/components/ProgressBar/ProgressBarItem.mjs.map +1 -0
  33. package/dist/components/ProgressBar/ProgressBarSteps.mjs +49 -0
  34. package/dist/components/ProgressBar/ProgressBarSteps.mjs.map +1 -0
  35. package/dist/components/TextArea/TextArea.mjs +4 -4
  36. package/dist/components/TextArea/TextArea.mjs.map +1 -1
  37. package/dist/components/TextField/TextField.mjs +105 -62
  38. package/dist/components/TextField/TextField.mjs.map +1 -1
  39. package/dist/index.d.ts +103 -9
  40. package/dist/index.mjs +4 -0
  41. package/dist/index.mjs.map +1 -1
  42. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -64,14 +64,26 @@ export declare type AccordionProps = React_2.ComponentPropsWithoutRef<typeof Acc
64
64
 
65
65
  /** An interactive button that toggles the visibility of its associated {@link AccordionContent} panel. */
66
66
  export declare const AccordionTrigger: React_2.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & {
67
- /** Custom icon element. Defaults to `ChevronDownIcon`. Pass `null` to suppress the icon entirely. */
67
+ /** Trailing indicator icon. Defaults to `ChevronDownIcon` (rotates when open). Pass `null` to suppress it. */
68
68
  icon?: React_2.ReactNode | null;
69
+ /** Secondary line rendered under the title, for extra context. */
70
+ description?: React_2.ReactNode;
71
+ /** Leading icon shown before the title (sized to 16px). */
72
+ leadingIcon?: React_2.ReactNode;
73
+ /** Leading avatar shown before the title, for headers representing a person or account. Pass an `Avatar` sized to `24`. */
74
+ avatar?: React_2.ReactNode;
69
75
  } & React_2.RefAttributes<HTMLButtonElement>>;
70
76
 
71
77
  /** Props for the {@link AccordionTrigger} button component. */
72
78
  export declare type AccordionTriggerProps = React_2.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> & {
73
- /** Custom icon element. Defaults to `ChevronDownIcon`. Pass `null` to suppress the icon entirely. */
79
+ /** Trailing indicator icon. Defaults to `ChevronDownIcon` (rotates when open). Pass `null` to suppress it. */
74
80
  icon?: React_2.ReactNode | null;
81
+ /** Secondary line rendered under the title, for extra context. */
82
+ description?: React_2.ReactNode;
83
+ /** Leading icon shown before the title (sized to 16px). */
84
+ leadingIcon?: React_2.ReactNode;
85
+ /** Leading avatar shown before the title, for headers representing a person or account. Pass an `Avatar` sized to `24`. */
86
+ avatar?: React_2.ReactNode;
75
87
  };
76
88
 
77
89
  /**
@@ -2257,6 +2269,11 @@ export declare type DropdownMenuHeaderType = "default" | "search";
2257
2269
  * <DropdownMenuItem destructive>Delete</DropdownMenuItem>
2258
2270
  * <DropdownMenuItem leadingIcon={<EditIcon />}>Edit</DropdownMenuItem>
2259
2271
  *
2272
+ * // Feature-rich row with an avatar and a trailing count
2273
+ * <DropdownMenuItem avatar={<Avatar size={24} src={src} />} count="12">
2274
+ * Jane Doe
2275
+ * </DropdownMenuItem>
2276
+ *
2260
2277
  * // As a link
2261
2278
  * <DropdownMenuItem asChild>
2262
2279
  * <a href="/settings">Settings</a>
@@ -2270,10 +2287,18 @@ export declare interface DropdownMenuItemProps extends React_2.ComponentPropsWit
2270
2287
  size?: DropdownMenuItemSize;
2271
2288
  /** Applies the destructive (error) treatment. Use for irreversible actions. @default false */
2272
2289
  destructive?: boolean;
2273
- /** Icon (or other node) rendered before the label. */
2290
+ /** Icon (or other node) rendered before the label. Ignored when {@link DropdownMenuItemProps.avatar} is set. */
2274
2291
  leadingIcon?: React_2.ReactNode;
2292
+ /**
2293
+ * Leading avatar rendered in place of {@link DropdownMenuItemProps.leadingIcon},
2294
+ * for rows that represent a person or account. Pass an `Avatar` sized to `24`.
2295
+ * Takes precedence over `leadingIcon`.
2296
+ */
2297
+ avatar?: React_2.ReactNode;
2275
2298
  /** Icon (or other node) rendered after the label. */
2276
2299
  trailingIcon?: React_2.ReactNode;
2300
+ /** Trailing count or number (e.g. an unread total) rendered before {@link DropdownMenuItemProps.trailingIcon}. */
2301
+ count?: React_2.ReactNode;
2277
2302
  /**
2278
2303
  * Optional secondary text rendered on a second line below the label. When
2279
2304
  * provided, the row switches to a two-line layout and the leading/trailing
@@ -3678,12 +3703,38 @@ export declare type ProfileStatusSize = "sm" | "md";
3678
3703
  */
3679
3704
  export declare const ProgressBar: React_2.ForwardRefExoticComponent<ProgressBarProps & React_2.RefAttributes<HTMLDivElement>>;
3680
3705
 
3706
+ /**
3707
+ * A single rounded segment used to compose a stepped progress indicator. Render
3708
+ * a row of these (see {@link ProgressBarSteps}) to represent discrete steps.
3709
+ *
3710
+ * @example
3711
+ * ```tsx
3712
+ * <ProgressBarItem active variant="brand" />
3713
+ * ```
3714
+ */
3715
+ export declare const ProgressBarItem: React_2.ForwardRefExoticComponent<ProgressBarItemProps & React_2.RefAttributes<HTMLDivElement>>;
3716
+
3717
+ export declare interface ProgressBarItemProps extends React_2.HTMLAttributes<HTMLDivElement> {
3718
+ /** Whether this item is filled (completed). @default false */
3719
+ active?: boolean;
3720
+ /** Colour mode. @default "brand" */
3721
+ variant?: ProgressBarItemVariant;
3722
+ /** Pill thickness — `"default"` (8px) or `"small"` (4px). @default "default" */
3723
+ size?: ProgressBarItemSize;
3724
+ }
3725
+
3726
+ /** Pill thickness — `"default"` (8px) or `"small"` (4px). */
3727
+ export declare type ProgressBarItemSize = "default" | "small";
3728
+
3729
+ /** Colour mode for a progress bar item — brand green or theme-aware monochrome. */
3730
+ export declare type ProgressBarItemVariant = "brand" | "mono";
3731
+
3681
3732
  export declare interface ProgressBarProps extends Omit<React_2.HTMLAttributes<HTMLDivElement>, "title"> {
3682
3733
  /** Current progress value, clamped to 0–100. */
3683
3734
  value: number;
3684
3735
  /** Track height — `"default"` (12px) or `"small"` (6px). @default "default" */
3685
3736
  size?: ProgressBarSize;
3686
- /** Colour mode `"default"` is colour-coded by value, `"generic"` always uses brand green, `"neutral"` uses a theme-aware inverse colour. @default "default" */
3737
+ /** Colour mode. Prefer `"brand"` or `"mono"` (V2); `"default"`/`"generic"`/`"neutral"` are legacy. @default "default" */
3687
3738
  variant?: ProgressBarVariant;
3688
3739
  /** Title content shown at the top-left of the bar. */
3689
3740
  title?: React_2.ReactNode;
@@ -3706,8 +3757,41 @@ export declare interface ProgressBarProps extends Omit<React_2.HTMLAttributes<HT
3706
3757
  /** Track height — `"default"` (12px) or `"small"` (6px). */
3707
3758
  export declare type ProgressBarSize = "default" | "small";
3708
3759
 
3709
- /** Colour mode — `"default"` uses red/yellow/green by value, `"generic"` always uses brand green, `"neutral"` uses a theme-aware inverse colour. */
3710
- export declare type ProgressBarVariant = "default" | "generic" | "neutral";
3760
+ /**
3761
+ * A segmented (stepped) progress indicator built from {@link ProgressBarItem}
3762
+ * pills. Fills the first `value` of `steps` segments.
3763
+ *
3764
+ * @example
3765
+ * ```tsx
3766
+ * <ProgressBarSteps steps={4} value={2} variant="brand" />
3767
+ * ```
3768
+ */
3769
+ export declare const ProgressBarSteps: React_2.ForwardRefExoticComponent<ProgressBarStepsProps & React_2.RefAttributes<HTMLDivElement>>;
3770
+
3771
+ export declare interface ProgressBarStepsProps extends React_2.HTMLAttributes<HTMLDivElement> {
3772
+ /** Total number of steps (segments). Values below 1 are treated as 1. */
3773
+ steps: number;
3774
+ /** Number of completed steps, clamped to `0`–`steps`. */
3775
+ value: number;
3776
+ /** Colour mode. @default "brand" */
3777
+ variant?: ProgressBarItemVariant;
3778
+ /** Pill thickness — `"default"` (8px) or `"small"` (4px). @default "default" */
3779
+ size?: ProgressBarItemSize;
3780
+ /** Accessible label for the `progressbar` role. @default "Progress" */
3781
+ ariaLabel?: string;
3782
+ /** Human-readable text alternative for the current value (e.g. "Step 2 of 4"). */
3783
+ ariaValueText?: string;
3784
+ }
3785
+
3786
+ /**
3787
+ * Colour mode.
3788
+ * - `"brand"` — V2 brand (green) fill on a tinted track.
3789
+ * - `"mono"` — V2 monochrome fill on a tinted track (theme-aware).
3790
+ * - `"default"` — legacy value-coded red/yellow/green.
3791
+ * - `"generic"` — legacy solid brand green on a neutral track.
3792
+ * - `"neutral"` — legacy theme-aware inverse colour on a neutral track.
3793
+ */
3794
+ export declare type ProgressBarVariant = "brand" | "mono" | "default" | "generic" | "neutral";
3711
3795
 
3712
3796
  /**
3713
3797
  * Queue icon. Renders at sizes 16, 24, or 32 px.
@@ -5011,10 +5095,11 @@ export declare interface TextAreaProps extends Omit<React_2.TextareaHTMLAttribut
5011
5095
  export declare type TextAreaSize = "48" | "40" | "32";
5012
5096
 
5013
5097
  /**
5014
- * A text input field with optional label, helper/error text, and icon slots.
5098
+ * A text input field with optional label, helper/error text, icon slots, and side labels.
5015
5099
  *
5016
- * Provide at least one of `label`, `aria-label`, or `aria-labelledby` for
5017
- * accessibility a console warning is emitted in development if none are set.
5100
+ * Use `leftLabel` / `rightLabel` for fixed unit or prefix affordances (currency symbol,
5101
+ * country code, domain suffix). Provide at least one of `label`, `aria-label`, or
5102
+ * `aria-labelledby` for accessibility — a console warning is emitted in development if none are set.
5018
5103
  *
5019
5104
  * @example
5020
5105
  * ```tsx
@@ -5025,6 +5110,11 @@ export declare type TextAreaSize = "48" | "40" | "32";
5025
5110
  * errorMessage={emailError}
5026
5111
  * />
5027
5112
  * ```
5113
+ *
5114
+ * @example
5115
+ * ```tsx
5116
+ * <TextField label="Price" leftLabel="$" rightLabel="USD" placeholder="0.00" />
5117
+ * ```
5028
5118
  */
5029
5119
  export declare const TextField: React_2.ForwardRefExoticComponent<TextFieldProps & React_2.RefAttributes<HTMLInputElement>>;
5030
5120
 
@@ -5045,6 +5135,10 @@ export declare interface TextFieldProps extends Omit<React_2.InputHTMLAttributes
5045
5135
  leftIcon?: React_2.ReactNode;
5046
5136
  /** Icon element displayed at the right side of the input. */
5047
5137
  rightIcon?: React_2.ReactNode;
5138
+ /** Fixed, non-editable label pinned inside the left edge of the field — for a prefix such as a currency symbol or country code. */
5139
+ leftLabel?: React_2.ReactNode;
5140
+ /** Fixed, non-editable label pinned inside the right edge of the field — for a unit or suffix such as a currency code or domain. */
5141
+ rightLabel?: React_2.ReactNode;
5048
5142
  /** Whether the text field stretches to fill its container width. @default false */
5049
5143
  fullWidth?: boolean;
5050
5144
  }
package/dist/index.mjs CHANGED
@@ -209,6 +209,8 @@ import { Pill } from "./components/Pill/Pill.mjs";
209
209
  import { ProfileOnlineStatus } from "./components/ProfileOnlineStatus/ProfileOnlineStatus.mjs";
210
210
  import { ProfileStatus } from "./components/ProfileStatus/ProfileStatus.mjs";
211
211
  import { ProgressBar } from "./components/ProgressBar/ProgressBar.mjs";
212
+ import { ProgressBarItem } from "./components/ProgressBar/ProgressBarItem.mjs";
213
+ import { ProgressBarSteps } from "./components/ProgressBar/ProgressBarSteps.mjs";
212
214
  import { Radio } from "./components/Radio/Radio.mjs";
213
215
  import { RadioGroup } from "./components/RadioGroup/RadioGroup.mjs";
214
216
  import { RatingSummary } from "./components/RatingSummary/RatingSummary.mjs";
@@ -438,6 +440,8 @@ export {
438
440
  ProfileOnlineStatus,
439
441
  ProfileStatus,
440
442
  ProgressBar,
443
+ ProgressBarItem,
444
+ ProgressBarSteps,
441
445
  QueueIcon,
442
446
  Radio,
443
447
  RadioGroup,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fanvue/ui",
3
- "version": "3.12.1",
3
+ "version": "3.13.0",
4
4
  "description": "React component library built with Tailwind CSS for Fanvue ecosystem",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org",