@fanvue/ui 3.5.0 → 3.6.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.
package/dist/index.d.ts CHANGED
@@ -1104,6 +1104,21 @@ export declare interface ChatInputProps extends Omit<React_2.TextareaHTMLAttribu
1104
1104
  * Ignored when `toolbarRight` is provided.
1105
1105
  */
1106
1106
  selectOptions?: ChatInputSelectOption[];
1107
+ /**
1108
+ * How the built-in selector presents its options:
1109
+ * - `"menu"` (default) — a dropdown anchored to the trigger, for pointer/desktop.
1110
+ * - `"sheet"` — a bottom sheet, for mobile/touch viewports.
1111
+ *
1112
+ * The viewport decision belongs to the consumer (it owns the breakpoint
1113
+ * source of truth), so pass e.g. `selectVariant={isDesktop ? "menu" : "sheet"}`.
1114
+ * @default "menu"
1115
+ */
1116
+ selectVariant?: "menu" | "sheet";
1117
+ /**
1118
+ * Title shown at the top of the `"sheet"` variant of the built-in selector
1119
+ * (e.g. "Switch AI Model"). @default "Select an option"
1120
+ */
1121
+ selectMenuTitle?: string;
1107
1122
  /** Currently selected value for the built-in dropdown. Should match one of `selectOptions[].value`. */
1108
1123
  selectValue?: string;
1109
1124
  /** When `true`, disables only the built-in dropdown selector. @default false */
@@ -1133,8 +1148,15 @@ export declare interface ChatInputProps extends Omit<React_2.TextareaHTMLAttribu
1133
1148
  export declare interface ChatInputSelectOption {
1134
1149
  /** Unique value for this option. */
1135
1150
  value: string;
1136
- /** Display label. */
1151
+ /** Short label shown on the collapsed trigger button (e.g. "Sonnet 4.6"). */
1137
1152
  label: string;
1153
+ /**
1154
+ * Optional longer title shown on the option's row inside the open menu/sheet
1155
+ * (e.g. "Claude Sonnet 4.6"). Falls back to {@link label} when omitted.
1156
+ */
1157
+ menuLabel?: string;
1158
+ /** Optional secondary text shown below the label in the dropdown menu. */
1159
+ description?: string;
1138
1160
  /** Optional icon rendered to the left of the label. */
1139
1161
  icon?: React_2.ReactNode;
1140
1162
  }
@@ -1961,6 +1983,11 @@ export declare interface DrawerContentProps extends React_2.ComponentPropsWithou
1961
1983
  * @default "sm"
1962
1984
  */
1963
1985
  size?: DrawerSize;
1986
+ /**
1987
+ * Visual treatment of the panel. Use `"sheet"` (with `position="bottom"`) for
1988
+ * a bottom sheet with the modal surface treatment. @default "panel"
1989
+ */
1990
+ variant?: DrawerVariant;
1964
1991
  /**
1965
1992
  * Whether to render the default {@link DrawerOverlay} behind the content.
1966
1993
  * Set to `false` to provide your own overlay or omit it entirely.
@@ -2063,6 +2090,16 @@ export declare const DrawerTrigger: React_2.ForwardRefExoticComponent<Omit<Dialo
2063
2090
  /** Props for the {@link DrawerTrigger} component. */
2064
2091
  export declare type DrawerTriggerProps = React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
2065
2092
 
2093
+ /**
2094
+ * Visual treatment of the drawer panel.
2095
+ *
2096
+ * - `"panel"` (default) — the standard edge-anchored surface.
2097
+ * - `"sheet"` — a bottom-sheet treatment matching the modal surface: large
2098
+ * top-only radius (32px), modal background/stroke, and menu blur+shadow.
2099
+ * Intended for `position="bottom"`.
2100
+ */
2101
+ export declare type DrawerVariant = "panel" | "sheet";
2102
+
2066
2103
  /** Root component that manages open/close state for a dropdown menu. */
2067
2104
  export declare function DropdownMenu({ open: openProp, defaultOpen, onOpenChange, children, ...props }: DropdownMenuProps): JSX.Element;
2068
2105
 
@@ -2179,6 +2216,12 @@ export declare interface DropdownMenuItemProps extends React_2.ComponentPropsWit
2179
2216
  leadingIcon?: React_2.ReactNode;
2180
2217
  /** Icon (or other node) rendered after the label. */
2181
2218
  trailingIcon?: React_2.ReactNode;
2219
+ /**
2220
+ * Optional secondary text rendered on a second line below the label. When
2221
+ * provided, the row switches to a two-line layout and the leading/trailing
2222
+ * icons align to the title line (top) rather than the row's vertical centre.
2223
+ */
2224
+ description?: React_2.ReactNode;
2182
2225
  /** Marks the item as the current selection in a single-select menu. @default false */
2183
2226
  selected?: boolean;
2184
2227
  }
@@ -2913,12 +2956,14 @@ export declare const LockerOnIcon: React_2.ForwardRefExoticComponent<React_2.SVG
2913
2956
  } & React_2.RefAttributes<SVGSVGElement>>;
2914
2957
 
2915
2958
  /**
2916
- * The Fanvue brand logo. Supports full (icon + wordmark), icon-only, wordmark-only,
2917
- * and portrait (stacked) layouts with multiple colour schemes.
2959
+ * The Fanvue brand logo. Supports full (icon + wordmark), icon-only, wordmark-only, and
2960
+ * portrait (stacked) layouts with multiple colour schemes. `version="agencies"` renders the
2961
+ * sub-brand lockup: a glossy purple icon and an "AGENCIES" label beneath the wordmark.
2918
2962
  *
2919
2963
  * @example
2920
2964
  * ```tsx
2921
- * <Logo type="full" color="fullColour" />
2965
+ * <Logo variant="full" color="fullColour" />
2966
+ * <Logo variant="full" version="agencies" />
2922
2967
  * ```
2923
2968
  */
2924
2969
  export declare const Logo: React_2.ForwardRefExoticComponent<LogoProps & React_2.RefAttributes<HTMLDivElement>>;
@@ -2931,10 +2976,12 @@ export declare interface LogoProps extends React_2.HTMLAttributes<HTMLDivElement
2931
2976
  variant?: LogoVariant;
2932
2977
  /** Colour scheme of the logo. @default "fullColour" */
2933
2978
  color?: LogoColor;
2979
+ /** Sub-brand version of the logo. @default "default" */
2980
+ version?: LogoVersion;
2934
2981
  /** Height of the logo in pixels. @default "32" (or "40" when `variant="icon"`) */
2935
2982
  size?: LogoSize;
2936
2983
  /**
2937
- * Accessible label for the logo. Required when `type` is `"icon"` and
2984
+ * Accessible label for the logo. Required when `variant` is `"icon"` and
2938
2985
  * the logo is used inside interactive contexts (links, buttons).
2939
2986
  *
2940
2987
  * @example "Fanvue home"
@@ -2961,6 +3008,9 @@ export declare type LogoutIconProps = BaseIconProps;
2961
3008
  /** Layout variant of the logo. */
2962
3009
  export declare type LogoVariant = "full" | "icon" | "wordmark" | "portrait";
2963
3010
 
3011
+ /** Sub-brand version of the logo. */
3012
+ declare type LogoVersion = "default" | "agencies";
3013
+
2964
3014
  /**
2965
3015
  * Love icon. Renders at sizes 16, 24, or 32 px with outlined and filled variants.
2966
3016
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fanvue/ui",
3
- "version": "3.5.0",
3
+ "version": "3.6.0",
4
4
  "description": "React component library built with Tailwind CSS for Fanvue ecosystem",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org",
@@ -153,7 +153,7 @@
153
153
  "svgo": "4.0.1",
154
154
  "tailwindcss": "4.1.18",
155
155
  "typescript": "5.9.3",
156
- "vite": "7.3.2",
156
+ "vite": "7.3.5",
157
157
  "vite-plugin-dts": "4.5.4",
158
158
  "vitest": "4.1.8",
159
159
  "vitest-axe": "1.0.0-pre.3"
@@ -167,9 +167,12 @@
167
167
  "brace-expansion": ">=5.0.5",
168
168
  "yaml": ">=2.8.3",
169
169
  "postcss": ">=8.5.10",
170
- "tmp": ">=0.2.6",
170
+ "tmp": ">=0.2.7",
171
171
  "ws": ">=8.20.1",
172
- "qs": ">=6.15.2"
172
+ "qs": ">=6.15.2",
173
+ "esbuild": ">=0.28.1",
174
+ "js-yaml": ">=4.2.0",
175
+ "@babel/core": ">=7.29.6"
173
176
  }
174
177
  },
175
178
  "size-limit": [