@fanvue/ui 2.17.0 → 2.19.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 (51) hide show
  1. package/dist/cjs/components/Checkbox/Checkbox.cjs +19 -6
  2. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  3. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +189 -11
  4. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  5. package/dist/cjs/components/Icons/{AiCallIcon.cjs → AICallIcon.cjs} +1 -1
  6. package/dist/cjs/components/Icons/{AiCallIcon.cjs.map → AICallIcon.cjs.map} +1 -1
  7. package/dist/cjs/components/Icons/CardIcon.cjs +8 -7
  8. package/dist/cjs/components/Icons/CardIcon.cjs.map +1 -1
  9. package/dist/cjs/components/Icons/Pin2Icon.cjs +101 -0
  10. package/dist/cjs/components/Icons/Pin2Icon.cjs.map +1 -0
  11. package/dist/cjs/components/Icons/PrivacyIcon.cjs +1 -1
  12. package/dist/cjs/components/Icons/PrivacyIcon.cjs.map +1 -1
  13. package/dist/cjs/components/Icons/ShareIcon.cjs +1 -1
  14. package/dist/cjs/components/Icons/ShareIcon.cjs.map +1 -1
  15. package/dist/cjs/components/Icons/TickCircleIcon.cjs +1 -1
  16. package/dist/cjs/components/Icons/TickCircleIcon.cjs.map +1 -1
  17. package/dist/cjs/components/Icons/ToolsIcon.cjs +1 -1
  18. package/dist/cjs/components/Icons/ToolsIcon.cjs.map +1 -1
  19. package/dist/cjs/components/Table/Table.cjs +66 -46
  20. package/dist/cjs/components/Table/Table.cjs.map +1 -1
  21. package/dist/cjs/components/Table/TablePagination.cjs +7 -7
  22. package/dist/cjs/components/Table/TablePagination.cjs.map +1 -1
  23. package/dist/cjs/index.cjs +8 -2
  24. package/dist/cjs/index.cjs.map +1 -1
  25. package/dist/components/Checkbox/Checkbox.mjs +19 -6
  26. package/dist/components/Checkbox/Checkbox.mjs.map +1 -1
  27. package/dist/components/DropdownMenu/DropdownMenu.mjs +189 -11
  28. package/dist/components/DropdownMenu/DropdownMenu.mjs.map +1 -1
  29. package/dist/components/Icons/{AiCallIcon.mjs → AICallIcon.mjs} +1 -1
  30. package/dist/components/Icons/{AiCallIcon.mjs.map → AICallIcon.mjs.map} +1 -1
  31. package/dist/components/Icons/CardIcon.mjs +8 -7
  32. package/dist/components/Icons/CardIcon.mjs.map +1 -1
  33. package/dist/components/Icons/Pin2Icon.mjs +84 -0
  34. package/dist/components/Icons/Pin2Icon.mjs.map +1 -0
  35. package/dist/components/Icons/PrivacyIcon.mjs +1 -1
  36. package/dist/components/Icons/PrivacyIcon.mjs.map +1 -1
  37. package/dist/components/Icons/ShareIcon.mjs +1 -1
  38. package/dist/components/Icons/ShareIcon.mjs.map +1 -1
  39. package/dist/components/Icons/TickCircleIcon.mjs +1 -1
  40. package/dist/components/Icons/TickCircleIcon.mjs.map +1 -1
  41. package/dist/components/Icons/ToolsIcon.mjs +1 -1
  42. package/dist/components/Icons/ToolsIcon.mjs.map +1 -1
  43. package/dist/components/Table/Table.mjs +66 -46
  44. package/dist/components/Table/Table.mjs.map +1 -1
  45. package/dist/components/Table/TablePagination.mjs +7 -7
  46. package/dist/components/Table/TablePagination.mjs.map +1 -1
  47. package/dist/index.d.ts +237 -31
  48. package/dist/index.mjs +9 -3
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/styles/base.css +2 -0
  51. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1078,7 +1078,7 @@ export declare const CheckBoxOnIcon: React_2.ForwardRefExoticComponent<BaseIconP
1078
1078
  export declare type CheckBoxOnIconProps = BaseIconProps;
1079
1079
 
1080
1080
  export declare interface CheckboxProps extends Omit<React_2.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, "asChild"> {
1081
- /** Size variant that controls label and helper text typography. @default "default" */
1081
+ /** Size variant. @default "20" */
1082
1082
  size?: CheckboxSize;
1083
1083
  /** Label text displayed next to the checkbox. */
1084
1084
  label?: string;
@@ -1086,8 +1086,19 @@ export declare interface CheckboxProps extends Omit<React_2.ComponentPropsWithou
1086
1086
  helperText?: string;
1087
1087
  }
1088
1088
 
1089
- /** Size variant controlling label and helper text typography. */
1090
- export declare type CheckboxSize = "default" | "small";
1089
+ /**
1090
+ * Size variant for the checkbox.
1091
+ *
1092
+ * - `"20"` (default) — 20px box, body-lg label.
1093
+ * - `"16"` — 16px box, body-md label, used in compact contexts like data tables.
1094
+ * - `"default"` and `"small"` are legacy aliases retained for back-compat
1095
+ * (`"default"` → `"20"`, `"small"` → `"20"` with smaller label typography).
1096
+ */
1097
+ export declare type CheckboxSize = "20" | "16"
1098
+ /** @deprecated Use `"20"` instead. */
1099
+ | "default"
1100
+ /** @deprecated Use `"20"` (the smaller-typography variant remains via `"small"`). */
1101
+ | "small";
1091
1102
 
1092
1103
  /** A checkmark inside a filled circle icon (20 × 20). */
1093
1104
  export declare const CheckCircleIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
@@ -1964,6 +1975,62 @@ export declare const DropdownMenuGroup: React_2.ForwardRefExoticComponent<Dropdo
1964
1975
  /** Props for the {@link DropdownMenuGroup} component. */
1965
1976
  export declare type DropdownMenuGroupProps = React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Group>;
1966
1977
 
1978
+ /**
1979
+ * Optional header rendered at the top of a {@link DropdownMenuContent}. Use
1980
+ * `type="default"` to title the menu, or `type="search"` to embed a search
1981
+ * input for filtering long lists.
1982
+ *
1983
+ * Renders an inset separator beneath the row so it slots cleanly above the
1984
+ * first group of items.
1985
+ *
1986
+ * @example
1987
+ * ```tsx
1988
+ * <DropdownMenuContent>
1989
+ * <DropdownMenuHeader title="Sort by" onClose={() => setOpen(false)} />
1990
+ * <DropdownMenuItem>Newest</DropdownMenuItem>
1991
+ * <DropdownMenuItem>Oldest</DropdownMenuItem>
1992
+ * </DropdownMenuContent>
1993
+ * ```
1994
+ */
1995
+ export declare const DropdownMenuHeader: React_2.ForwardRefExoticComponent<DropdownMenuHeaderProps & React_2.RefAttributes<HTMLDivElement>>;
1996
+
1997
+ export declare interface DropdownMenuHeaderProps extends React_2.HTMLAttributes<HTMLDivElement> {
1998
+ /** Visual type. `"default"` shows a title; `"search"` shows a search input. @default "default" */
1999
+ type?: DropdownMenuHeaderType;
2000
+ /** Height preset for the header row. @default "40" */
2001
+ size?: DropdownMenuHeaderSize;
2002
+ /** Title text shown when `type="default"`. Ignored if `children` is provided. */
2003
+ title?: string;
2004
+ /** Configuration for the embedded search input when `type="search"`. */
2005
+ searchProps?: DropdownMenuHeaderSearchProps;
2006
+ /** Whether to render the close icon button on the right. @default true */
2007
+ showClose?: boolean;
2008
+ /** Fires when the close icon button is activated. */
2009
+ onClose?: () => void;
2010
+ /** Accessible label for the close button. @default "Close menu" */
2011
+ closeLabel?: string;
2012
+ }
2013
+
2014
+ /** Search-input configuration for {@link DropdownMenuHeader} when `type="search"`. */
2015
+ export declare interface DropdownMenuHeaderSearchProps {
2016
+ /** Controlled value of the search input. */
2017
+ value?: string;
2018
+ /** Uncontrolled default value. */
2019
+ defaultValue?: string;
2020
+ /** Fires when the input value changes. */
2021
+ onChange?: (value: string) => void;
2022
+ /** Placeholder text shown when the input is empty. @default "Search…" */
2023
+ placeholder?: string;
2024
+ /** Accessible label for the search input. @default "Search" */
2025
+ "aria-label"?: string;
2026
+ }
2027
+
2028
+ /** Header height preset. Matches the menu item sizing scale. */
2029
+ export declare type DropdownMenuHeaderSize = "40" | "32";
2030
+
2031
+ /** Header type. `"default"` shows a title; `"search"` shows a search input. */
2032
+ export declare type DropdownMenuHeaderType = "default" | "search";
2033
+
1967
2034
  /**
1968
2035
  * An individual item within a {@link DropdownMenuContent}.
1969
2036
  *
@@ -1982,32 +2049,86 @@ export declare type DropdownMenuGroupProps = React_2.ComponentPropsWithoutRef<ty
1982
2049
  export declare const DropdownMenuItem: React_2.ForwardRefExoticComponent<DropdownMenuItemProps & React_2.RefAttributes<HTMLDivElement>>;
1983
2050
 
1984
2051
  export declare interface DropdownMenuItemProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {
1985
- /** Height of the menu item row. @default "sm" */
2052
+ /** Height of the menu item row. @default "40" */
1986
2053
  size?: DropdownMenuItemSize;
1987
- /** Whether the item uses destructive (error) styling. */
2054
+ /** Applies the destructive (error) treatment. Use for irreversible actions. @default false */
1988
2055
  destructive?: boolean;
1989
- /** Icon rendered before the label. */
2056
+ /** Icon (or other node) rendered before the label. */
1990
2057
  leadingIcon?: React_2.ReactNode;
1991
- /** Icon rendered after the label. */
2058
+ /** Icon (or other node) rendered after the label. */
1992
2059
  trailingIcon?: React_2.ReactNode;
1993
- /** Whether the item is in a selected state. */
2060
+ /** Marks the item as the current selection in a single-select menu. @default false */
1994
2061
  selected?: boolean;
1995
2062
  }
1996
2063
 
1997
- /** Available sizes for a dropdown menu item. */
1998
- export declare type DropdownMenuItemSize = "sm" | "md";
2064
+ /**
2065
+ * Height preset for a dropdown menu item.
2066
+ *
2067
+ * `"40"` (default) and `"32"` are the v2 numeric tokens that mirror the Figma
2068
+ * design system. `"sm"` and `"md"` are deprecated aliases retained for
2069
+ * backwards compatibility — `"sm"` maps to `"32"`, `"md"` maps to `"40"`.
2070
+ */
2071
+ export declare type DropdownMenuItemSize = "40" | "32"
2072
+ /** @deprecated Use `"32"` instead. */
2073
+ | "sm"
2074
+ /** @deprecated Use `"40"` instead. */
2075
+ | "md";
1999
2076
 
2000
- /** A label for a group of items. Not focusable or selectable. */
2077
+ /** A non-interactive label that groups related items within a menu. */
2001
2078
  export declare const DropdownMenuLabel: React_2.ForwardRefExoticComponent<DropdownMenuLabelProps & React_2.RefAttributes<HTMLDivElement>>;
2002
2079
 
2080
+ /** Vertical placement of a {@link DropdownMenuLabel} within its group. */
2081
+ export declare type DropdownMenuLabelPosition = "default" | "top";
2082
+
2003
2083
  /** Props for the {@link DropdownMenuLabel} component. */
2004
2084
  export declare interface DropdownMenuLabelProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> {
2085
+ /**
2086
+ * Vertical placement within the surrounding group. `"top"` is used for the
2087
+ * first label directly under a header; `"default"` adds extra top padding to
2088
+ * separate it from preceding items. @default "default"
2089
+ */
2090
+ position?: DropdownMenuLabelPosition;
2005
2091
  }
2006
2092
 
2007
2093
  /** Props for the {@link DropdownMenu} root component. */
2008
2094
  export declare interface DropdownMenuProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {
2009
2095
  }
2010
2096
 
2097
+ /**
2098
+ * Groups {@link DropdownMenuRadioItem} children so they behave as a
2099
+ * single-select set. Controlled via `value`/`onValueChange`.
2100
+ *
2101
+ * @example
2102
+ * ```tsx
2103
+ * <DropdownMenuRadioGroup value={sort} onValueChange={setSort}>
2104
+ * <DropdownMenuRadioItem value="newest">Newest first</DropdownMenuRadioItem>
2105
+ * <DropdownMenuRadioItem value="oldest">Oldest first</DropdownMenuRadioItem>
2106
+ * </DropdownMenuRadioGroup>
2107
+ * ```
2108
+ */
2109
+ export declare const DropdownMenuRadioGroup: React_2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuRadioGroupProps & React_2.RefAttributes<HTMLDivElement>>;
2110
+
2111
+ /** Props for the {@link DropdownMenuRadioGroup} component. */
2112
+ export declare interface DropdownMenuRadioGroupProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioGroup> {
2113
+ }
2114
+
2115
+ /**
2116
+ * A single radio-style choice within a {@link DropdownMenuRadioGroup}. Shows
2117
+ * a circular indicator that fills when selected, plus an optional helper line
2118
+ * underneath the title.
2119
+ */
2120
+ export declare const DropdownMenuRadioItem: React_2.ForwardRefExoticComponent<DropdownMenuRadioItemProps & React_2.RefAttributes<HTMLDivElement>>;
2121
+
2122
+ export declare interface DropdownMenuRadioItemProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem> {
2123
+ /** Optional secondary text shown below the title. */
2124
+ helper?: string;
2125
+ /** Height of the item row. @default "40" */
2126
+ size?: DropdownMenuRadioItemSize;
2127
+ }
2128
+
2129
+ /** Height preset for a {@link DropdownMenuRadioItem}. */
2130
+ export declare type DropdownMenuRadioItemSize = "40";
2131
+
2011
2132
  /** Visual separator between groups of items. */
2012
2133
  export declare const DropdownMenuSeparator: React_2.ForwardRefExoticComponent<DropdownMenuSeparatorProps & React_2.RefAttributes<HTMLDivElement>>;
2013
2134
 
@@ -3093,6 +3214,19 @@ export declare interface PillProps extends React_2.HTMLAttributes<HTMLSpanElemen
3093
3214
  /** Colour variant of the pill. */
3094
3215
  export declare type PillVariant = "green" | "grey" | "blue" | "gold" | "pinkLight" | "base" | "brand" | "brandLight" | "beta" | "error";
3095
3216
 
3217
+ /**
3218
+ * Pin 2 icon. Renders at sizes 16, 24, or 32 px with outlined and filled variants.
3219
+ *
3220
+ * @example
3221
+ * ```tsx
3222
+ * <Pin2Icon size={24} filled />
3223
+ * ```
3224
+ */
3225
+ export declare const Pin2Icon: React_2.ForwardRefExoticComponent<BaseIconProps & React_2.RefAttributes<SVGSVGElement>>;
3226
+
3227
+ /** Props for {@link Pin2Icon}. See {@link BaseIconProps} for the shared shape. */
3228
+ export declare type Pin2IconProps = BaseIconProps;
3229
+
3096
3230
  /**
3097
3231
  * Pin icon. Renders at sizes 16, 24, or 32 px with outlined and filled variants.
3098
3232
  *
@@ -3850,20 +3984,25 @@ export declare type SwitchToggleSize = "24" | "32" | "40";
3850
3984
  */
3851
3985
  export declare const Table: React_2.ForwardRefExoticComponent<TableProps & React_2.RefAttributes<HTMLTableElement>>;
3852
3986
 
3987
+ /**
3988
+ * `<tbody>` wrapper. Removes the bottom border on cells in the final row to
3989
+ * match the Figma `V2 Table Final Row` treatment.
3990
+ */
3853
3991
  export declare const TableBody: React_2.ForwardRefExoticComponent<TableBodyProps & React_2.RefAttributes<HTMLTableSectionElement>>;
3854
3992
 
3855
3993
  export declare interface TableBodyProps extends React_2.HTMLAttributes<HTMLTableSectionElement> {
3856
3994
  }
3857
3995
 
3858
3996
  /**
3859
- * Surface wrapper for data tables: rounded container, spacing, and size
3860
- * context for {@link TableCell} descendants. Compose with {@link TableScrollArea},
3861
- * {@link Table}, {@link TableHeader}, {@link TableBody}, {@link TableRow},
3997
+ * Surface wrapper for data tables: rounded 24px container with a strong
3998
+ * outer border, inner spacing, and size context for {@link TableCell}
3999
+ * descendants. Compose with {@link TableScrollArea}, {@link Table},
4000
+ * {@link TableHeader}, {@link TableBody}, {@link TableRow},
3862
4001
  * {@link TableHead}, and {@link TableCell}.
3863
4002
  *
3864
4003
  * @example
3865
4004
  * ```tsx
3866
- * <TableCard size="md">
4005
+ * <TableCard>
3867
4006
  * <TableScrollArea>
3868
4007
  * <Table>
3869
4008
  * <TableHeader>
@@ -3888,10 +4027,41 @@ export declare interface TableCardProps extends React_2.HTMLAttributes<HTMLDivEl
3888
4027
  size?: TableSize;
3889
4028
  }
3890
4029
 
4030
+ /**
4031
+ * Body cell. v2: `h-16` (or `h-20` when the parent {@link TableCard} uses
4032
+ * `size="lg"`), `px-4 py-3` padding, body-sm typography, and a single
4033
+ * `border-border-primary` rule that is zeroed by {@link TableBody} for the
4034
+ * final row.
4035
+ */
3891
4036
  export declare const TableCell: React_2.ForwardRefExoticComponent<TableCellProps & React_2.RefAttributes<HTMLTableCellElement>>;
3892
4037
 
3893
4038
  /**
3894
- * Horizontal group for icons, chips, and metadata inside a {@link TableCell} (Figma `gap-[10px]`).
4039
+ * Two-line content slot matching Figma `V2 Table Content` primary line
4040
+ * (semibold) over an optional secondary line (regular, muted) with a 2px
4041
+ * gap. Use inside {@link TableCell} for the common stacked-text pattern.
4042
+ */
4043
+ export declare function TableCellContent({ primary, secondary, primaryAdornment, secondaryAdornment, className, }: TableCellContentProps): JSX.Element;
4044
+
4045
+ export declare namespace TableCellContent {
4046
+ var displayName: string;
4047
+ }
4048
+
4049
+ export declare interface TableCellContentProps {
4050
+ /** Primary line (semibold body-sm). */
4051
+ primary: React_2.ReactNode;
4052
+ /** Optional secondary line (regular body-sm, secondary color). */
4053
+ secondary?: React_2.ReactNode;
4054
+ /** Inline node rendered next to the primary line (icon, chip). */
4055
+ primaryAdornment?: React_2.ReactNode;
4056
+ /** Inline node rendered next to the secondary line. */
4057
+ secondaryAdornment?: React_2.ReactNode;
4058
+ /** Class for the outer wrapper. */
4059
+ className?: string;
4060
+ }
4061
+
4062
+ /**
4063
+ * Horizontal group for icons, chips, and metadata inside a {@link TableCell}
4064
+ * (Figma `gap-[4px]`).
3895
4065
  */
3896
4066
  export declare const TableCellGroup: React_2.ForwardRefExoticComponent<TableCellGroupProps & React_2.RefAttributes<HTMLDivElement>>;
3897
4067
 
@@ -3902,7 +4072,7 @@ export declare interface TableCellGroupProps extends React_2.HTMLAttributes<HTML
3902
4072
  export declare type TableCellIntent = "default" | "checkbox" | "stacked" | "multiline" | "sideLabel";
3903
4073
 
3904
4074
  export declare interface TableCellProps extends React_2.TdHTMLAttributes<HTMLTableCellElement> {
3905
- /** `pillProgress` uses wider horizontal padding; row dividers match the default weight for visibility. @default "default" */
4075
+ /** Padding preset for the cell. v2 uses identical padding across variants; values are kept for back-compat. @default "default" */
3906
4076
  cellVariant?: TableCellVariant;
3907
4077
  /** Alignment and typography preset for common cell types. @default "default" */
3908
4078
  intent?: TableCellIntent;
@@ -3916,6 +4086,10 @@ export declare const TableFooter: React_2.ForwardRefExoticComponent<TableFooterP
3916
4086
  export declare interface TableFooterProps extends React_2.HTMLAttributes<HTMLTableSectionElement> {
3917
4087
  }
3918
4088
 
4089
+ /**
4090
+ * Header cell. v2: transparent background, 48px min height, tertiary text,
4091
+ * `border-border-primary` bottom rule.
4092
+ */
3919
4093
  export declare const TableHead: React_2.ForwardRefExoticComponent<TableHeadProps & React_2.RefAttributes<HTMLTableCellElement>>;
3920
4094
 
3921
4095
  export declare const TableHeader: React_2.ForwardRefExoticComponent<TableHeaderProps & React_2.RefAttributes<HTMLTableSectionElement>>;
@@ -3942,7 +4116,8 @@ export declare interface TableLineClampProps extends React_2.HTMLAttributes<HTML
3942
4116
  }
3943
4117
 
3944
4118
  /**
3945
- * Rounded thumbnail sized from {@link TableCard} `size` (`md` vs `lg`).
4119
+ * Square 48px thumbnail used inside {@link TableCell} for media columns
4120
+ * (Figma `V2 Media Thumbnail Item`).
3946
4121
  */
3947
4122
  export declare const TableMediaThumbnail: React_2.ForwardRefExoticComponent<TableMediaThumbnailProps & React_2.RefAttributes<HTMLDivElement>>;
3948
4123
 
@@ -3951,20 +4126,25 @@ export declare interface TableMediaThumbnailProps extends Omit<React_2.HTMLAttri
3951
4126
  src: string;
3952
4127
  /** Alt text for the image. @default "" */
3953
4128
  alt?: string;
3954
- /** Applies the tables blurred-media treatment. @default false */
4129
+ /** Applies the table's blurred-media treatment. @default false */
3955
4130
  blurred?: boolean;
3956
4131
  /** `center` uses the fixed media column width from the lg spec. @default "start" */
3957
4132
  align?: "start" | "center";
3958
4133
  }
3959
4134
 
3960
4135
  /**
3961
- * Footer bar for data tables: rows-per-page control, page navigation, and range
3962
- * summary. Pair `paginationSlot` with {@link Pagination} for numbered controls.
4136
+ * Footer bar for data tables: rows-per-page control, page navigation, and
4137
+ * range summary. Pair `paginationSlot` with {@link Pagination} for numbered
4138
+ * controls.
4139
+ *
4140
+ * v2 sits flush inside {@link TableCard} (`px-3` matches the card's inner
4141
+ * gutter); the chip styling now lives on the {@link TableRowsPerPageSelect}
4142
+ * trigger itself.
3963
4143
  *
3964
4144
  * @example
3965
4145
  * ```tsx
3966
4146
  * <TablePagination
3967
- * leadingSlot={<Select size="32" aria-label="Rows per page">…</Select>}
4147
+ * leadingSlot={<TableRowsPerPageSelect />}
3968
4148
  * paginationSlot={<Pagination totalPages={5} currentPage={2} onPageChange={setPage} />}
3969
4149
  * summary="20–30 of 100 rows"
3970
4150
  * />
@@ -4014,7 +4194,8 @@ export declare interface TableRowProps extends React_2.HTMLAttributes<HTMLTableR
4014
4194
  }
4015
4195
 
4016
4196
  /**
4017
- * Rows-per-page {@link Select} styled for {@link TablePagination} (Figma field).
4197
+ * Rows-per-page {@link Select} styled for {@link TablePagination}. v2 uses a
4198
+ * subtle pill trigger with the table's secondary-surface background.
4018
4199
  */
4019
4200
  export declare function TableRowsPerPageSelect(props: TableRowsPerPageSelectProps): JSX.Element;
4020
4201
 
@@ -4026,31 +4207,56 @@ export declare interface TableRowsPerPageSelectProps {
4026
4207
  }
4027
4208
 
4028
4209
  /**
4029
- * Horizontal scroll container for wide tables. Uses an inner scrollport so the
4030
- * table respects the card radius (plain `overflow-x-auto` on the table
4031
- * wrapper often loses rounded corners with `border-collapse`).
4210
+ * Horizontal scroll container for wide tables. The inner scrollport keeps
4211
+ * `border-collapse` styles intact when the table wraps.
4032
4212
  */
4033
4213
  export declare const TableScrollArea: React_2.ForwardRefExoticComponent<TableScrollAreaProps & React_2.RefAttributes<HTMLDivElement>>;
4034
4214
 
4035
4215
  export declare interface TableScrollAreaProps extends React_2.HTMLAttributes<HTMLDivElement> {
4036
- /** Rounds the top of the table block to match {@link TableCard}. Set `false` when {@link TableToolbar} is above this scroll area. @default true */
4216
+ /**
4217
+ * No longer needed in v2 — {@link TableCard} handles corner rounding via
4218
+ * its own `overflow-hidden rounded-3xl`. Accepted for back-compat.
4219
+ *
4220
+ * @deprecated v2 ignores this prop; safe to remove.
4221
+ */
4037
4222
  roundTop?: boolean;
4038
4223
  }
4039
4224
 
4040
- /** Row density for body cells — `md` (60px min height) or `lg` (80px). */
4041
- export declare type TableSize = "md" | "lg";
4225
+ /**
4226
+ * Row density for body cells.
4227
+ *
4228
+ * - `"md"` (default) → 64px Figma `V2 Table Cell` Small.
4229
+ * - `"lg"` → 80px Figma `V2 Table Cell` Large.
4230
+ *
4231
+ * `"default"` is the v2 numeric-token equivalent of `"md"` and is preferred
4232
+ * for new code.
4233
+ */
4234
+ export declare type TableSize = "md" | "lg" | "default";
4235
+
4236
+ /** Current sort direction of a {@link TableSortLabel}. `null` means unsorted. */
4237
+ export declare type TableSortDirection = "asc" | "desc" | null;
4042
4238
 
4043
4239
  /**
4044
- * Sortable column label with caption typography and a sort affordance.
4240
+ * Sortable column label. v2 expresses the sort state with a 1px underline
4241
+ * beneath the label plus a directional arrow when sorted.
4045
4242
  */
4046
4243
  export declare const TableSortLabel: React_2.ForwardRefExoticComponent<TableSortLabelProps & React_2.RefAttributes<HTMLSpanElement>>;
4047
4244
 
4048
4245
  export declare interface TableSortLabelProps extends React_2.HTMLAttributes<HTMLSpanElement> {
4049
4246
  children: React_2.ReactNode;
4247
+ /**
4248
+ * Visual indicator of the column's sort state. When set to `"asc"` or
4249
+ * `"desc"`, a 1px underline accent appears beneath the label and a small
4250
+ * directional arrow is shown next to it. @default null
4251
+ */
4252
+ direction?: TableSortDirection;
4050
4253
  }
4051
4254
 
4052
4255
  /**
4053
- * Two-line primary + secondary text block for cell + info patterns.
4256
+ * Two-line primary + secondary text block for "cell + info" patterns.
4257
+ *
4258
+ * @deprecated Prefer {@link TableCellContent} which supports adornments and
4259
+ * matches the Figma `V2 Table Content` slot.
4054
4260
  */
4055
4261
  export declare function TableStackedText({ title, subtitle }: TableStackedTextProps): JSX.Element;
4056
4262
 
package/dist/index.mjs CHANGED
@@ -27,14 +27,14 @@ import { CyclingText } from "./components/CyclingText/CyclingText.mjs";
27
27
  import { Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger } from "./components/Dialog/Dialog.mjs";
28
28
  import { Divider } from "./components/Divider/Divider.mjs";
29
29
  import { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerTitle, DrawerTrigger } from "./components/Drawer/Drawer.mjs";
30
- import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from "./components/DropdownMenu/DropdownMenu.mjs";
30
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuHeader, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuTrigger } from "./components/DropdownMenu/DropdownMenu.mjs";
31
31
  import { EmptyState } from "./components/EmptyState/EmptyState.mjs";
32
32
  import { IconButton } from "./components/IconButton/IconButton.mjs";
33
33
  import { AddIcon } from "./components/Icons/AddIcon.mjs";
34
34
  import { AI2Icon } from "./components/Icons/AI2Icon.mjs";
35
+ import { AICallIcon } from "./components/Icons/AICallIcon.mjs";
35
36
  import { AIDisclosureIcon } from "./components/Icons/AIDisclosureIcon.mjs";
36
37
  import { AIIcon } from "./components/Icons/AIIcon.mjs";
37
- import { AICallIcon } from "./components/Icons/AiCallIcon.mjs";
38
38
  import { AlertIcon } from "./components/Icons/AlertIcon.mjs";
39
39
  import { AppsIcon } from "./components/Icons/AppsIcon.mjs";
40
40
  import { ArrowDownIcon } from "./components/Icons/ArrowDownIcon.mjs";
@@ -134,6 +134,7 @@ import { PauseIcon } from "./components/Icons/PauseIcon.mjs";
134
134
  import { PeopleIcon } from "./components/Icons/PeopleIcon.mjs";
135
135
  import { PhoneIcon } from "./components/Icons/PhoneIcon.mjs";
136
136
  import { PhoneOffIcon } from "./components/Icons/PhoneOffIcon.mjs";
137
+ import { Pin2Icon } from "./components/Icons/Pin2Icon.mjs";
137
138
  import { PinIcon } from "./components/Icons/PinIcon.mjs";
138
139
  import { PlayIcon } from "./components/Icons/PlayIcon.mjs";
139
140
  import { PlusIcon } from "./components/Icons/PlusIcon.mjs";
@@ -211,7 +212,7 @@ import { StepperStep } from "./components/Stepper/StepperStep.mjs";
211
212
  import { Switch } from "./components/Switch/Switch.mjs";
212
213
  import { SwitchField } from "./components/SwitchField/SwitchField.mjs";
213
214
  import { SwitchToggle } from "./components/SwitchToggle/SwitchToggle.mjs";
214
- import { Table, TableBody, TableCard, TableCell, TableCellGroup, TableFooter, TableHead, TableHeader, TableLineClamp, TableMediaThumbnail, TablePillProgressLayout, TableProgressTrack, TableRow, TableRowsPerPageSelect, TableScrollArea, TableSortLabel, TableStackedText, TableStatusDot, TableToolbar } from "./components/Table/Table.mjs";
215
+ import { Table, TableBody, TableCard, TableCell, TableCellContent, TableCellGroup, TableFooter, TableHead, TableHeader, TableLineClamp, TableMediaThumbnail, TablePillProgressLayout, TableProgressTrack, TableRow, TableRowsPerPageSelect, TableScrollArea, TableSortLabel, TableStackedText, TableStatusDot, TableToolbar } from "./components/Table/Table.mjs";
215
216
  import { TablePagination } from "./components/Table/TablePagination.mjs";
216
217
  import { Tabs } from "./components/Tabs/Tabs.mjs";
217
218
  import { TabsContent } from "./components/Tabs/TabsContent.mjs";
@@ -331,8 +332,11 @@ export {
331
332
  DropdownMenu,
332
333
  DropdownMenuContent,
333
334
  DropdownMenuGroup,
335
+ DropdownMenuHeader,
334
336
  DropdownMenuItem,
335
337
  DropdownMenuLabel,
338
+ DropdownMenuRadioGroup,
339
+ DropdownMenuRadioItem,
336
340
  DropdownMenuSeparator,
337
341
  DropdownMenuTrigger,
338
342
  EditIcon,
@@ -404,6 +408,7 @@ export {
404
408
  PhoneIcon,
405
409
  PhoneOffIcon,
406
410
  Pill,
411
+ Pin2Icon,
407
412
  PinIcon,
408
413
  PlayIcon,
409
414
  PlusIcon,
@@ -449,6 +454,7 @@ export {
449
454
  TableBody,
450
455
  TableCard,
451
456
  TableCell,
457
+ TableCellContent,
452
458
  TableCellGroup,
453
459
  TableFooter,
454
460
  TableHead,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -131,8 +131,10 @@
131
131
 
132
132
  :root {
133
133
  --color-special-bottom-nav-highlight: var(--primitives-color-green-500);
134
+ --color-content-disabled: var(--primitives-color-gray-450);
134
135
  }
135
136
 
136
137
  .dark {
137
138
  --color-special-bottom-nav-highlight: var(--primitives-color-gray-white);
139
+ --color-content-disabled: var(--primitives-color-gray-450);
138
140
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fanvue/ui",
3
- "version": "2.17.0",
3
+ "version": "2.19.0",
4
4
  "description": "React component library built with Tailwind CSS for Fanvue ecosystem",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org",