@fanvue/ui 1.20.1 → 2.0.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 (256) hide show
  1. package/dist/charts.d.ts +1 -1
  2. package/dist/cjs/components/Accordion/AccordionContent.cjs +1 -1
  3. package/dist/cjs/components/Accordion/AccordionContent.cjs.map +1 -1
  4. package/dist/cjs/components/Accordion/AccordionItem.cjs +1 -1
  5. package/dist/cjs/components/Accordion/AccordionItem.cjs.map +1 -1
  6. package/dist/cjs/components/Accordion/AccordionTrigger.cjs +5 -5
  7. package/dist/cjs/components/Accordion/AccordionTrigger.cjs.map +1 -1
  8. package/dist/cjs/components/Alert/Alert.cjs +11 -11
  9. package/dist/cjs/components/Alert/Alert.cjs.map +1 -1
  10. package/dist/cjs/components/AudioUpload/AudioUpload.cjs +12 -12
  11. package/dist/cjs/components/AudioUpload/AudioUpload.cjs.map +1 -1
  12. package/dist/cjs/components/AudioUpload/AudioWaveform.cjs +1 -1
  13. package/dist/cjs/components/AudioUpload/AudioWaveform.cjs.map +1 -1
  14. package/dist/cjs/components/Autocomplete/Autocomplete.cjs +12 -12
  15. package/dist/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
  16. package/dist/cjs/components/Autocomplete/AutocompleteDropdownContent.cjs +3 -3
  17. package/dist/cjs/components/Autocomplete/AutocompleteDropdownContent.cjs.map +1 -1
  18. package/dist/cjs/components/Autocomplete/AutocompleteOptionItem.cjs +3 -3
  19. package/dist/cjs/components/Autocomplete/AutocompleteOptionItem.cjs.map +1 -1
  20. package/dist/cjs/components/Autocomplete/AutocompleteTag.cjs +2 -2
  21. package/dist/cjs/components/Autocomplete/AutocompleteTag.cjs.map +1 -1
  22. package/dist/cjs/components/Avatar/Avatar.cjs +3 -3
  23. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  24. package/dist/cjs/components/Badge/Badge.cjs +23 -23
  25. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  26. package/dist/cjs/components/Banner/Banner.cjs +71 -0
  27. package/dist/cjs/components/Banner/Banner.cjs.map +1 -0
  28. package/dist/cjs/components/BottomNavigation/BottomNavigation.cjs +1 -1
  29. package/dist/cjs/components/BottomNavigation/BottomNavigation.cjs.map +1 -1
  30. package/dist/cjs/components/BottomNavigation/BottomNavigationAction.cjs +2 -2
  31. package/dist/cjs/components/BottomNavigation/BottomNavigationAction.cjs.map +1 -1
  32. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs +3 -3
  33. package/dist/cjs/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  34. package/dist/cjs/components/Button/Button.cjs +10 -10
  35. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  36. package/dist/cjs/components/Card/Card.cjs +6 -6
  37. package/dist/cjs/components/Card/Card.cjs.map +1 -1
  38. package/dist/cjs/components/Chart/ChartCard.cjs +6 -6
  39. package/dist/cjs/components/Chart/ChartCard.cjs.map +1 -1
  40. package/dist/cjs/components/Chart/ChartCenterLabel.cjs +2 -2
  41. package/dist/cjs/components/Chart/ChartCenterLabel.cjs.map +1 -1
  42. package/dist/cjs/components/Chart/ChartContainer.cjs +7 -7
  43. package/dist/cjs/components/Chart/ChartContainer.cjs.map +1 -1
  44. package/dist/cjs/components/Chart/ChartLegend.cjs +1 -1
  45. package/dist/cjs/components/Chart/ChartLegend.cjs.map +1 -1
  46. package/dist/cjs/components/Chart/ChartLoadingOverlay.cjs +1 -1
  47. package/dist/cjs/components/Chart/ChartLoadingOverlay.cjs.map +1 -1
  48. package/dist/cjs/components/Chart/ChartPieLegend.cjs +2 -2
  49. package/dist/cjs/components/Chart/ChartPieLegend.cjs.map +1 -1
  50. package/dist/cjs/components/Chart/ChartSeriesToggle.cjs +2 -2
  51. package/dist/cjs/components/Chart/ChartSeriesToggle.cjs.map +1 -1
  52. package/dist/cjs/components/Chart/ChartTooltip.cjs +4 -4
  53. package/dist/cjs/components/Chart/ChartTooltip.cjs.map +1 -1
  54. package/dist/cjs/components/Checkbox/Checkbox.cjs +13 -13
  55. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  56. package/dist/cjs/components/Chip/Chip.cjs +7 -7
  57. package/dist/cjs/components/Chip/Chip.cjs.map +1 -1
  58. package/dist/cjs/components/Count/Count.cjs +7 -7
  59. package/dist/cjs/components/Count/Count.cjs.map +1 -1
  60. package/dist/cjs/components/DatePicker/DatePicker.cjs +14 -14
  61. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -1
  62. package/dist/cjs/components/Dialog/Dialog.cjs +6 -6
  63. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  64. package/dist/cjs/components/Divider/Divider.cjs +4 -4
  65. package/dist/cjs/components/Divider/Divider.cjs.map +1 -1
  66. package/dist/cjs/components/Drawer/Drawer.cjs +5 -5
  67. package/dist/cjs/components/Drawer/Drawer.cjs.map +1 -1
  68. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +111 -0
  69. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -0
  70. package/dist/cjs/components/IconButton/IconButton.cjs +10 -10
  71. package/dist/cjs/components/IconButton/IconButton.cjs.map +1 -1
  72. package/dist/cjs/components/Icons/LockerOffIcon.cjs +1 -1
  73. package/dist/cjs/components/Icons/LockerOffIcon.cjs.map +1 -1
  74. package/dist/cjs/components/Icons/LockerOnIcon.cjs +1 -1
  75. package/dist/cjs/components/Icons/LockerOnIcon.cjs.map +1 -1
  76. package/dist/cjs/components/InfoBox/InfoBox.cjs +6 -6
  77. package/dist/cjs/components/InfoBox/InfoBox.cjs.map +1 -1
  78. package/dist/cjs/components/Loader/Loader.cjs +1 -1
  79. package/dist/cjs/components/Loader/Loader.cjs.map +1 -1
  80. package/dist/cjs/components/Logo/Logo.cjs +13 -13
  81. package/dist/cjs/components/Logo/Logo.cjs.map +1 -1
  82. package/dist/cjs/components/MobileStepper/MobileStepper.cjs +2 -2
  83. package/dist/cjs/components/MobileStepper/MobileStepper.cjs.map +1 -1
  84. package/dist/cjs/components/OnlineBlinkingIcon/OnlineBlinkingIcon.cjs +45 -0
  85. package/dist/cjs/components/OnlineBlinkingIcon/OnlineBlinkingIcon.cjs.map +1 -0
  86. package/dist/cjs/components/Pagination/Pagination.cjs +3 -3
  87. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  88. package/dist/cjs/components/PasswordField/PasswordField.cjs +1 -1
  89. package/dist/cjs/components/PasswordField/PasswordField.cjs.map +1 -1
  90. package/dist/cjs/components/Pill/Pill.cjs +10 -10
  91. package/dist/cjs/components/Pill/Pill.cjs.map +1 -1
  92. package/dist/cjs/components/ProgressBar/ProgressBar.cjs +13 -13
  93. package/dist/cjs/components/ProgressBar/ProgressBar.cjs.map +1 -1
  94. package/dist/cjs/components/Radio/Radio.cjs +4 -4
  95. package/dist/cjs/components/Radio/Radio.cjs.map +1 -1
  96. package/dist/cjs/components/Select/Select.cjs +13 -13
  97. package/dist/cjs/components/Select/Select.cjs.map +1 -1
  98. package/dist/cjs/components/Skeleton/Skeleton.cjs +2 -2
  99. package/dist/cjs/components/Skeleton/Skeleton.cjs.map +1 -1
  100. package/dist/cjs/components/Slider/Slider.cjs +1 -1
  101. package/dist/cjs/components/Slider/Slider.cjs.map +1 -1
  102. package/dist/cjs/components/Slider/SliderLayout.cjs +5 -12
  103. package/dist/cjs/components/Slider/SliderLayout.cjs.map +1 -1
  104. package/dist/cjs/components/Slider/SliderThumb.cjs +6 -6
  105. package/dist/cjs/components/Slider/SliderThumb.cjs.map +1 -1
  106. package/dist/cjs/components/Snackbar/Snackbar.cjs +9 -9
  107. package/dist/cjs/components/Snackbar/Snackbar.cjs.map +1 -1
  108. package/dist/cjs/components/Switch/Switch.cjs +3 -3
  109. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  110. package/dist/cjs/components/SwitchField/SwitchField.cjs +5 -5
  111. package/dist/cjs/components/SwitchField/SwitchField.cjs.map +1 -1
  112. package/dist/cjs/components/SwitchToggle/SwitchToggle.cjs +4 -4
  113. package/dist/cjs/components/SwitchToggle/SwitchToggle.cjs.map +1 -1
  114. package/dist/cjs/components/Tabs/TabsList.cjs +3 -3
  115. package/dist/cjs/components/Tabs/TabsList.cjs.map +1 -1
  116. package/dist/cjs/components/Tabs/TabsTrigger.cjs +8 -8
  117. package/dist/cjs/components/Tabs/TabsTrigger.cjs.map +1 -1
  118. package/dist/cjs/components/TextArea/TextArea.cjs +7 -7
  119. package/dist/cjs/components/TextArea/TextArea.cjs.map +1 -1
  120. package/dist/cjs/components/TextField/TextField.cjs +11 -11
  121. package/dist/cjs/components/TextField/TextField.cjs.map +1 -1
  122. package/dist/cjs/components/Toast/Toast.cjs +7 -7
  123. package/dist/cjs/components/Toast/Toast.cjs.map +1 -1
  124. package/dist/cjs/components/Tooltip/Tooltip.cjs +1 -1
  125. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  126. package/dist/cjs/index.cjs +12 -0
  127. package/dist/cjs/index.cjs.map +1 -1
  128. package/dist/components/Accordion/AccordionContent.mjs +1 -1
  129. package/dist/components/Accordion/AccordionContent.mjs.map +1 -1
  130. package/dist/components/Accordion/AccordionItem.mjs +1 -1
  131. package/dist/components/Accordion/AccordionItem.mjs.map +1 -1
  132. package/dist/components/Accordion/AccordionTrigger.mjs +5 -5
  133. package/dist/components/Accordion/AccordionTrigger.mjs.map +1 -1
  134. package/dist/components/Alert/Alert.mjs +11 -11
  135. package/dist/components/Alert/Alert.mjs.map +1 -1
  136. package/dist/components/AudioUpload/AudioUpload.mjs +12 -12
  137. package/dist/components/AudioUpload/AudioUpload.mjs.map +1 -1
  138. package/dist/components/AudioUpload/AudioWaveform.mjs +1 -1
  139. package/dist/components/AudioUpload/AudioWaveform.mjs.map +1 -1
  140. package/dist/components/Autocomplete/Autocomplete.mjs +12 -12
  141. package/dist/components/Autocomplete/Autocomplete.mjs.map +1 -1
  142. package/dist/components/Autocomplete/AutocompleteDropdownContent.mjs +3 -3
  143. package/dist/components/Autocomplete/AutocompleteDropdownContent.mjs.map +1 -1
  144. package/dist/components/Autocomplete/AutocompleteOptionItem.mjs +3 -3
  145. package/dist/components/Autocomplete/AutocompleteOptionItem.mjs.map +1 -1
  146. package/dist/components/Autocomplete/AutocompleteTag.mjs +2 -2
  147. package/dist/components/Autocomplete/AutocompleteTag.mjs.map +1 -1
  148. package/dist/components/Avatar/Avatar.mjs +3 -3
  149. package/dist/components/Avatar/Avatar.mjs.map +1 -1
  150. package/dist/components/Badge/Badge.mjs +23 -23
  151. package/dist/components/Badge/Badge.mjs.map +1 -1
  152. package/dist/components/Banner/Banner.mjs +54 -0
  153. package/dist/components/Banner/Banner.mjs.map +1 -0
  154. package/dist/components/BottomNavigation/BottomNavigation.mjs +1 -1
  155. package/dist/components/BottomNavigation/BottomNavigation.mjs.map +1 -1
  156. package/dist/components/BottomNavigation/BottomNavigationAction.mjs +2 -2
  157. package/dist/components/BottomNavigation/BottomNavigationAction.mjs.map +1 -1
  158. package/dist/components/Breadcrumb/Breadcrumb.mjs +3 -3
  159. package/dist/components/Breadcrumb/Breadcrumb.mjs.map +1 -1
  160. package/dist/components/Button/Button.mjs +10 -10
  161. package/dist/components/Button/Button.mjs.map +1 -1
  162. package/dist/components/Card/Card.mjs +6 -6
  163. package/dist/components/Card/Card.mjs.map +1 -1
  164. package/dist/components/Chart/ChartCard.mjs +6 -6
  165. package/dist/components/Chart/ChartCard.mjs.map +1 -1
  166. package/dist/components/Chart/ChartCenterLabel.mjs +2 -2
  167. package/dist/components/Chart/ChartCenterLabel.mjs.map +1 -1
  168. package/dist/components/Chart/ChartContainer.mjs +7 -7
  169. package/dist/components/Chart/ChartContainer.mjs.map +1 -1
  170. package/dist/components/Chart/ChartLegend.mjs +1 -1
  171. package/dist/components/Chart/ChartLegend.mjs.map +1 -1
  172. package/dist/components/Chart/ChartLoadingOverlay.mjs +1 -1
  173. package/dist/components/Chart/ChartLoadingOverlay.mjs.map +1 -1
  174. package/dist/components/Chart/ChartPieLegend.mjs +2 -2
  175. package/dist/components/Chart/ChartPieLegend.mjs.map +1 -1
  176. package/dist/components/Chart/ChartSeriesToggle.mjs +2 -2
  177. package/dist/components/Chart/ChartSeriesToggle.mjs.map +1 -1
  178. package/dist/components/Chart/ChartTooltip.mjs +4 -4
  179. package/dist/components/Chart/ChartTooltip.mjs.map +1 -1
  180. package/dist/components/Checkbox/Checkbox.mjs +13 -13
  181. package/dist/components/Checkbox/Checkbox.mjs.map +1 -1
  182. package/dist/components/Chip/Chip.mjs +7 -7
  183. package/dist/components/Chip/Chip.mjs.map +1 -1
  184. package/dist/components/Count/Count.mjs +7 -7
  185. package/dist/components/Count/Count.mjs.map +1 -1
  186. package/dist/components/DatePicker/DatePicker.mjs +14 -14
  187. package/dist/components/DatePicker/DatePicker.mjs.map +1 -1
  188. package/dist/components/Dialog/Dialog.mjs +6 -6
  189. package/dist/components/Dialog/Dialog.mjs.map +1 -1
  190. package/dist/components/Divider/Divider.mjs +4 -4
  191. package/dist/components/Divider/Divider.mjs.map +1 -1
  192. package/dist/components/Drawer/Drawer.mjs +5 -5
  193. package/dist/components/Drawer/Drawer.mjs.map +1 -1
  194. package/dist/components/DropdownMenu/DropdownMenu.mjs +93 -0
  195. package/dist/components/DropdownMenu/DropdownMenu.mjs.map +1 -0
  196. package/dist/components/IconButton/IconButton.mjs +10 -10
  197. package/dist/components/IconButton/IconButton.mjs.map +1 -1
  198. package/dist/components/Icons/LockerOffIcon.mjs +1 -1
  199. package/dist/components/Icons/LockerOffIcon.mjs.map +1 -1
  200. package/dist/components/Icons/LockerOnIcon.mjs +1 -1
  201. package/dist/components/Icons/LockerOnIcon.mjs.map +1 -1
  202. package/dist/components/InfoBox/InfoBox.mjs +6 -6
  203. package/dist/components/InfoBox/InfoBox.mjs.map +1 -1
  204. package/dist/components/Loader/Loader.mjs +1 -1
  205. package/dist/components/Loader/Loader.mjs.map +1 -1
  206. package/dist/components/Logo/Logo.mjs +13 -13
  207. package/dist/components/Logo/Logo.mjs.map +1 -1
  208. package/dist/components/MobileStepper/MobileStepper.mjs +2 -2
  209. package/dist/components/MobileStepper/MobileStepper.mjs.map +1 -1
  210. package/dist/components/OnlineBlinkingIcon/OnlineBlinkingIcon.mjs +28 -0
  211. package/dist/components/OnlineBlinkingIcon/OnlineBlinkingIcon.mjs.map +1 -0
  212. package/dist/components/Pagination/Pagination.mjs +3 -3
  213. package/dist/components/Pagination/Pagination.mjs.map +1 -1
  214. package/dist/components/PasswordField/PasswordField.mjs +1 -1
  215. package/dist/components/PasswordField/PasswordField.mjs.map +1 -1
  216. package/dist/components/Pill/Pill.mjs +10 -10
  217. package/dist/components/Pill/Pill.mjs.map +1 -1
  218. package/dist/components/ProgressBar/ProgressBar.mjs +13 -13
  219. package/dist/components/ProgressBar/ProgressBar.mjs.map +1 -1
  220. package/dist/components/Radio/Radio.mjs +4 -4
  221. package/dist/components/Radio/Radio.mjs.map +1 -1
  222. package/dist/components/Select/Select.mjs +13 -13
  223. package/dist/components/Select/Select.mjs.map +1 -1
  224. package/dist/components/Skeleton/Skeleton.mjs +2 -2
  225. package/dist/components/Skeleton/Skeleton.mjs.map +1 -1
  226. package/dist/components/Slider/Slider.mjs +1 -1
  227. package/dist/components/Slider/Slider.mjs.map +1 -1
  228. package/dist/components/Slider/SliderLayout.mjs +5 -12
  229. package/dist/components/Slider/SliderLayout.mjs.map +1 -1
  230. package/dist/components/Slider/SliderThumb.mjs +6 -6
  231. package/dist/components/Slider/SliderThumb.mjs.map +1 -1
  232. package/dist/components/Snackbar/Snackbar.mjs +9 -9
  233. package/dist/components/Snackbar/Snackbar.mjs.map +1 -1
  234. package/dist/components/Switch/Switch.mjs +3 -3
  235. package/dist/components/Switch/Switch.mjs.map +1 -1
  236. package/dist/components/SwitchField/SwitchField.mjs +5 -5
  237. package/dist/components/SwitchField/SwitchField.mjs.map +1 -1
  238. package/dist/components/SwitchToggle/SwitchToggle.mjs +4 -4
  239. package/dist/components/SwitchToggle/SwitchToggle.mjs.map +1 -1
  240. package/dist/components/Tabs/TabsList.mjs +3 -3
  241. package/dist/components/Tabs/TabsList.mjs.map +1 -1
  242. package/dist/components/Tabs/TabsTrigger.mjs +8 -8
  243. package/dist/components/Tabs/TabsTrigger.mjs.map +1 -1
  244. package/dist/components/TextArea/TextArea.mjs +7 -7
  245. package/dist/components/TextArea/TextArea.mjs.map +1 -1
  246. package/dist/components/TextField/TextField.mjs +11 -11
  247. package/dist/components/TextField/TextField.mjs.map +1 -1
  248. package/dist/components/Toast/Toast.mjs +7 -7
  249. package/dist/components/Toast/Toast.mjs.map +1 -1
  250. package/dist/components/Tooltip/Tooltip.mjs +1 -1
  251. package/dist/components/Tooltip/Tooltip.mjs.map +1 -1
  252. package/dist/index.d.ts +152 -0
  253. package/dist/index.mjs +12 -0
  254. package/dist/index.mjs.map +1 -1
  255. package/dist/styles/theme.css +378 -253
  256. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.mjs","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import * as ToastPrimitive from \"@radix-ui/react-toast\";\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Avatar } from \"../Avatar/Avatar\";\nimport { Button } from \"../Button/Button\";\nimport { IconButton } from \"../IconButton/IconButton\";\nimport { CloseIcon } from \"../Icons/CloseIcon\";\nimport { ErrorIcon } from \"../Icons/ErrorIcon\";\nimport { InfoIcon } from \"../Icons/InfoIcon\";\nimport { SuccessIcon } from \"../Icons/SuccessIcon\";\nimport { WarningIcon } from \"../Icons/WarningIcon\";\n\n/** Visual/semantic variant of the toast notification. */\nexport type ToastVariant = \"info\" | \"warning\" | \"success\" | \"error\" | \"messageToast\";\n\nexport interface ToastProps\n extends Omit<Omit<React.ComponentPropsWithoutRef<typeof ToastPrimitive.Root>, \"type\">, \"title\"> {\n /** Visual/semantic variant of the toast. @default \"info\" */\n variant?: ToastVariant;\n /** Title text displayed in bold at the top of the toast. */\n title?: string;\n /** Description or body content displayed below the title. */\n description?: React.ReactNode;\n /** Label for the optional action button. @default \"Action\" */\n actionLabel?: string;\n /** Click handler for the action button. When provided, the action button is rendered. */\n onActionClick?: () => void;\n /** Whether to show the close button. @default true */\n showClose?: boolean;\n /** Accessible label for the close button. @default \"Close notification\" */\n closeLabel?: string;\n /** Avatar image URL (used by the `messageToast` variant). */\n avatarSrc?: string;\n /** Alt text for the avatar image. */\n avatarAlt?: string;\n /** Fallback content for the avatar (e.g. initials). */\n avatarFallback?: string;\n}\n\n/** Props for the {@link ToastProvider}. Wraps Radix `Toast.Provider`. */\nexport interface ToastProviderProps extends ToastPrimitive.ToastProviderProps {}\n/** Props for the {@link ToastViewport}. Controls where toasts are rendered on screen. */\nexport interface ToastViewportProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Viewport> {}\n\n/** Provides toast context. Wrap your application (or a subtree) with this provider. */\nexport const ToastProvider: React.FC<ToastProviderProps> = ToastPrimitive.Provider;\n\n/** Fixed-position container that renders active toasts. Place once at the root of your app. */\nexport const ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitive.Viewport>,\n ToastViewportProps\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Viewport\n ref={ref}\n className={cn(\n \"pointer-events-none fixed right-0 bottom-0 z-100 flex max-h-screen w-full flex-col-reverse gap-3 p-4 md:max-w-[420px]\",\n className,\n )}\n {...props}\n />\n));\n\nToastViewport.displayName = \"ToastViewport\";\n\nconst VariantIcon = ({ variant }: { variant: ToastVariant }) => {\n switch (variant) {\n case \"info\":\n return <InfoIcon className=\"size-5 text-info-default\" />;\n case \"warning\":\n return <WarningIcon className=\"size-5 text-warning-default\" />;\n case \"success\":\n return <SuccessIcon className=\"size-5 text-success-default\" />;\n case \"error\":\n return <ErrorIcon className=\"size-5 text-error-default\" />;\n }\n};\n\n/**\n * A dismissible notification that appears temporarily. Supports `info`,\n * `warning`, `success`, `error`, and `messageToast` variants with optional\n * action button, close control, and avatar.\n *\n * Use inside a {@link ToastProvider} with a {@link ToastViewport}.\n *\n * @example\n * ```tsx\n * <Toast variant=\"success\" title=\"Saved\" description=\"Your changes are live.\" />\n * ```\n */\nexport const Toast = React.forwardRef<React.ComponentRef<typeof ToastPrimitive.Root>, ToastProps>(\n (\n {\n className,\n variant = \"info\",\n title,\n description,\n actionLabel,\n onActionClick,\n showClose = true,\n closeLabel = \"Close notification\",\n avatarSrc,\n avatarAlt,\n avatarFallback,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <ToastPrimitive.Root\n ref={ref}\n data-testid=\"toast\"\n className={cn(\n // Base styles\n \"group pointer-events-auto relative flex w-full flex-col items-start gap-3 overflow-hidden rounded-lg border-none bg-surface-pageinverse p-4 text-foreground-inverse shadow-lg transition-all\",\n // Dark mode\n \"dark:border-opacity-100\",\n // Animation\n \"data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-bottom-full data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-(--radix-toast-swipe-end-x) data-[swipe=move]:translate-x-(--radix-toast-swipe-move-x) data-[state=closed]:animate-out data-[state=open]:animate-in data-[swipe=end]:animate-out data-[swipe=move]:transition-none\",\n // Manual CSS overrides\n className,\n )}\n {...props}\n >\n <div className=\"flex w-full items-center gap-3\">\n <div className=\"self-start\">\n {variant === \"messageToast\" ? (\n avatarSrc && <Avatar src={avatarSrc} alt={avatarAlt} fallback={avatarFallback} />\n ) : (\n <VariantIcon variant={variant} />\n )}\n </div>\n <div className=\"flex flex-1 flex-col items-start\">\n {title && (\n <ToastPrimitive.Title className=\"typography-semibold-body-md\">\n {title}\n </ToastPrimitive.Title>\n )}\n {description && (\n <ToastPrimitive.Description className=\"typography-regular-body-md mt-1 opacity-90\">\n {description}\n </ToastPrimitive.Description>\n )}\n {children}\n {onActionClick && (\n <Button\n variant=\"secondary\"\n // These styles are basically inverted from the selected theme\n className=\"mt-4 border-foreground-inverse text-foreground-inverse\"\n size=\"32\"\n onClick={onActionClick}\n >\n {actionLabel ?? \"Action\"}\n </Button>\n )}\n </div>\n </div>\n {showClose && (\n <ToastPrimitive.Close asChild>\n <IconButton\n icon={<CloseIcon />}\n aria-label={closeLabel}\n // same as the button above\n className=\"absolute top-2 right-2 text-foreground-inverse\"\n variant=\"tertiary\"\n size=\"24\"\n />\n </ToastPrimitive.Close>\n )}\n </ToastPrimitive.Root>\n );\n },\n);\n\nToast.displayName = \"Toast\";\n"],"names":[],"mappings":";;;;;;;;;;;;;AA8CO,MAAM,gBAA8C,eAAe;AAGnE,MAAM,gBAAgB,MAAM,WAGjC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1B;AAAA,EAAC,eAAe;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IAAA;AAAA,IAED,GAAG;AAAA,EAAA;AACN,CACD;AAED,cAAc,cAAc;AAE5B,MAAM,cAAc,CAAC,EAAE,cAAyC;AAC9D,UAAQ,SAAA;AAAA,IACN,KAAK;AACH,aAAO,oBAAC,UAAA,EAAS,WAAU,2BAAA,CAA2B;AAAA,IACxD,KAAK;AACH,aAAO,oBAAC,aAAA,EAAY,WAAU,8BAAA,CAA8B;AAAA,IAC9D,KAAK;AACH,aAAO,oBAAC,aAAA,EAAY,WAAU,8BAAA,CAA8B;AAAA,IAC9D,KAAK;AACH,aAAO,oBAAC,WAAA,EAAU,WAAU,4BAAA,CAA4B;AAAA,EAAA;AAE9D;AAcO,MAAM,QAAQ,MAAM;AAAA,EACzB,CACE;AAAA,IACE;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GAEL,QACG;AACH,WACE;AAAA,MAAC,eAAe;AAAA,MAAf;AAAA,QACC;AAAA,QACA,eAAY;AAAA,QACZ,WAAW;AAAA;AAAA,UAET;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA,QAAA;AAAA,QAED,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAU,kCACb,UAAA;AAAA,YAAA,oBAAC,SAAI,WAAU,cACZ,sBAAY,iBACX,iCAAc,QAAA,EAAO,KAAK,WAAW,KAAK,WAAW,UAAU,eAAA,CAAgB,IAE/E,oBAAC,aAAA,EAAY,SAAkB,EAAA,CAEnC;AAAA,YACA,qBAAC,OAAA,EAAI,WAAU,oCACZ,UAAA;AAAA,cAAA,6BACE,eAAe,OAAf,EAAqB,WAAU,+BAC7B,UAAA,OACH;AAAA,cAED,eACC,oBAAC,eAAe,aAAf,EAA2B,WAAU,8CACnC,UAAA,aACH;AAAA,cAED;AAAA,cACA,iBACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBAER,WAAU;AAAA,kBACV,MAAK;AAAA,kBACL,SAAS;AAAA,kBAER,UAAA,eAAe;AAAA,gBAAA;AAAA,cAAA;AAAA,YAClB,EAAA,CAEJ;AAAA,UAAA,GACF;AAAA,UACC,aACC,oBAAC,eAAe,OAAf,EAAqB,SAAO,MAC3B,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,0BAAO,WAAA,EAAU;AAAA,cACjB,cAAY;AAAA,cAEZ,WAAU;AAAA,cACV,SAAQ;AAAA,cACR,MAAK;AAAA,YAAA;AAAA,UAAA,EACP,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEA,MAAM,cAAc;"}
1
+ {"version":3,"file":"Toast.mjs","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import * as ToastPrimitive from \"@radix-ui/react-toast\";\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Avatar } from \"../Avatar/Avatar\";\nimport { Button } from \"../Button/Button\";\nimport { IconButton } from \"../IconButton/IconButton\";\nimport { CloseIcon } from \"../Icons/CloseIcon\";\nimport { ErrorIcon } from \"../Icons/ErrorIcon\";\nimport { InfoIcon } from \"../Icons/InfoIcon\";\nimport { SuccessIcon } from \"../Icons/SuccessIcon\";\nimport { WarningIcon } from \"../Icons/WarningIcon\";\n\n/** Visual/semantic variant of the toast notification. */\nexport type ToastVariant = \"info\" | \"warning\" | \"success\" | \"error\" | \"messageToast\";\n\nexport interface ToastProps\n extends Omit<Omit<React.ComponentPropsWithoutRef<typeof ToastPrimitive.Root>, \"type\">, \"title\"> {\n /** Visual/semantic variant of the toast. @default \"info\" */\n variant?: ToastVariant;\n /** Title text displayed in bold at the top of the toast. */\n title?: string;\n /** Description or body content displayed below the title. */\n description?: React.ReactNode;\n /** Label for the optional action button. @default \"Action\" */\n actionLabel?: string;\n /** Click handler for the action button. When provided, the action button is rendered. */\n onActionClick?: () => void;\n /** Whether to show the close button. @default true */\n showClose?: boolean;\n /** Accessible label for the close button. @default \"Close notification\" */\n closeLabel?: string;\n /** Avatar image URL (used by the `messageToast` variant). */\n avatarSrc?: string;\n /** Alt text for the avatar image. */\n avatarAlt?: string;\n /** Fallback content for the avatar (e.g. initials). */\n avatarFallback?: string;\n}\n\n/** Props for the {@link ToastProvider}. Wraps Radix `Toast.Provider`. */\nexport interface ToastProviderProps extends ToastPrimitive.ToastProviderProps {}\n/** Props for the {@link ToastViewport}. Controls where toasts are rendered on screen. */\nexport interface ToastViewportProps\n extends React.ComponentPropsWithoutRef<typeof ToastPrimitive.Viewport> {}\n\n/** Provides toast context. Wrap your application (or a subtree) with this provider. */\nexport const ToastProvider: React.FC<ToastProviderProps> = ToastPrimitive.Provider;\n\n/** Fixed-position container that renders active toasts. Place once at the root of your app. */\nexport const ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitive.Viewport>,\n ToastViewportProps\n>(({ className, ...props }, ref) => (\n <ToastPrimitive.Viewport\n ref={ref}\n className={cn(\n \"pointer-events-none fixed right-0 bottom-0 z-100 flex max-h-screen w-full flex-col-reverse gap-3 p-4 md:max-w-[420px]\",\n className,\n )}\n {...props}\n />\n));\n\nToastViewport.displayName = \"ToastViewport\";\n\nconst VariantIcon = ({ variant }: { variant: ToastVariant }) => {\n switch (variant) {\n case \"info\":\n return <InfoIcon className=\"size-5 text-info-content\" />;\n case \"warning\":\n return <WarningIcon className=\"size-5 text-warning-content\" />;\n case \"success\":\n return <SuccessIcon className=\"size-5 text-success-content\" />;\n case \"error\":\n return <ErrorIcon className=\"size-5 text-error-content\" />;\n }\n};\n\n/**\n * A dismissible notification that appears temporarily. Supports `info`,\n * `warning`, `success`, `error`, and `messageToast` variants with optional\n * action button, close control, and avatar.\n *\n * Use inside a {@link ToastProvider} with a {@link ToastViewport}.\n *\n * @example\n * ```tsx\n * <Toast variant=\"success\" title=\"Saved\" description=\"Your changes are live.\" />\n * ```\n */\nexport const Toast = React.forwardRef<React.ComponentRef<typeof ToastPrimitive.Root>, ToastProps>(\n (\n {\n className,\n variant = \"info\",\n title,\n description,\n actionLabel,\n onActionClick,\n showClose = true,\n closeLabel = \"Close notification\",\n avatarSrc,\n avatarAlt,\n avatarFallback,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <ToastPrimitive.Root\n ref={ref}\n data-testid=\"toast\"\n className={cn(\n // Base styles\n \"group pointer-events-auto relative flex w-full flex-col items-start gap-3 overflow-hidden rounded-xs border-none bg-surface-primary-inverted p-4 text-content-primary-inverted shadow-lg transition-all\",\n // Dark mode\n \"dark:border-opacity-100\",\n // Animation\n \"data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-bottom-full data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-(--radix-toast-swipe-end-x) data-[swipe=move]:translate-x-(--radix-toast-swipe-move-x) data-[state=closed]:animate-out data-[state=open]:animate-in data-[swipe=end]:animate-out data-[swipe=move]:transition-none\",\n // Manual CSS overrides\n className,\n )}\n {...props}\n >\n <div className=\"flex w-full items-center gap-3\">\n <div className=\"self-start\">\n {variant === \"messageToast\" ? (\n avatarSrc && <Avatar src={avatarSrc} alt={avatarAlt} fallback={avatarFallback} />\n ) : (\n <VariantIcon variant={variant} />\n )}\n </div>\n <div className=\"flex flex-1 flex-col items-start\">\n {title && (\n <ToastPrimitive.Title className=\"typography-semibold-body-md\">\n {title}\n </ToastPrimitive.Title>\n )}\n {description && (\n <ToastPrimitive.Description className=\"typography-regular-body-md mt-1 opacity-90\">\n {description}\n </ToastPrimitive.Description>\n )}\n {children}\n {onActionClick && (\n <Button\n variant=\"secondary\"\n // These styles are basically inverted from the selected theme\n className=\"mt-4 border-content-primary-inverted text-content-primary-inverted\"\n size=\"32\"\n onClick={onActionClick}\n >\n {actionLabel ?? \"Action\"}\n </Button>\n )}\n </div>\n </div>\n {showClose && (\n <ToastPrimitive.Close asChild>\n <IconButton\n icon={<CloseIcon />}\n aria-label={closeLabel}\n // same as the button above\n className=\"absolute top-2 right-2 text-content-primary-inverted\"\n variant=\"tertiary\"\n size=\"24\"\n />\n </ToastPrimitive.Close>\n )}\n </ToastPrimitive.Root>\n );\n },\n);\n\nToast.displayName = \"Toast\";\n"],"names":[],"mappings":";;;;;;;;;;;;;AA8CO,MAAM,gBAA8C,eAAe;AAGnE,MAAM,gBAAgB,MAAM,WAGjC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,QAC1B;AAAA,EAAC,eAAe;AAAA,EAAf;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IAAA;AAAA,IAED,GAAG;AAAA,EAAA;AACN,CACD;AAED,cAAc,cAAc;AAE5B,MAAM,cAAc,CAAC,EAAE,cAAyC;AAC9D,UAAQ,SAAA;AAAA,IACN,KAAK;AACH,aAAO,oBAAC,UAAA,EAAS,WAAU,2BAAA,CAA2B;AAAA,IACxD,KAAK;AACH,aAAO,oBAAC,aAAA,EAAY,WAAU,8BAAA,CAA8B;AAAA,IAC9D,KAAK;AACH,aAAO,oBAAC,aAAA,EAAY,WAAU,8BAAA,CAA8B;AAAA,IAC9D,KAAK;AACH,aAAO,oBAAC,WAAA,EAAU,WAAU,4BAAA,CAA4B;AAAA,EAAA;AAE9D;AAcO,MAAM,QAAQ,MAAM;AAAA,EACzB,CACE;AAAA,IACE;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GAEL,QACG;AACH,WACE;AAAA,MAAC,eAAe;AAAA,MAAf;AAAA,QACC;AAAA,QACA,eAAY;AAAA,QACZ,WAAW;AAAA;AAAA,UAET;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA,QAAA;AAAA,QAED,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAU,kCACb,UAAA;AAAA,YAAA,oBAAC,SAAI,WAAU,cACZ,sBAAY,iBACX,iCAAc,QAAA,EAAO,KAAK,WAAW,KAAK,WAAW,UAAU,eAAA,CAAgB,IAE/E,oBAAC,aAAA,EAAY,SAAkB,EAAA,CAEnC;AAAA,YACA,qBAAC,OAAA,EAAI,WAAU,oCACZ,UAAA;AAAA,cAAA,6BACE,eAAe,OAAf,EAAqB,WAAU,+BAC7B,UAAA,OACH;AAAA,cAED,eACC,oBAAC,eAAe,aAAf,EAA2B,WAAU,8CACnC,UAAA,aACH;AAAA,cAED;AAAA,cACA,iBACC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBAER,WAAU;AAAA,kBACV,MAAK;AAAA,kBACL,SAAS;AAAA,kBAER,UAAA,eAAe;AAAA,gBAAA;AAAA,cAAA;AAAA,YAClB,EAAA,CAEJ;AAAA,UAAA,GACF;AAAA,UACC,aACC,oBAAC,eAAe,OAAf,EAAqB,SAAO,MAC3B,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,0BAAO,WAAA,EAAU;AAAA,cACjB,cAAY;AAAA,cAEZ,WAAU;AAAA,cACV,SAAQ;AAAA,cACR,MAAK;AAAA,YAAA;AAAA,UAAA,EACP,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEA,MAAM,cAAc;"}
@@ -15,7 +15,7 @@ const TooltipContent = React.forwardRef(({ className, sideOffset = 8, style, ...
15
15
  collisionPadding: 8,
16
16
  style: { zIndex: "var(--fanvue-ui-portal-z-index, 50)", ...style },
17
17
  className: cn(
18
- "typography-semibold-body-sm max-w-[320px] rounded-full bg-surface-pageinverse px-4 py-2 text-foreground-inverse shadow-[0px_1px_4px_0px_rgba(0,0,0,0.06),0px_1px_3px_0px_rgba(0,0,0,0.05)]",
18
+ "typography-semibold-body-sm max-w-[320px] rounded-full bg-surface-primary-inverted px-4 py-2 text-content-primary-inverted shadow-[0px_1px_4px_0px_rgba(0,0,0,0.06),0px_1px_3px_0px_rgba(0,0,0,0.05)]",
19
19
  className
20
20
  ),
21
21
  align: "center",
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.mjs","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Props for the {@link TooltipProvider}. Wraps Radix `Tooltip.Provider`. */\nexport type TooltipProviderProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>;\n\n/** Provides tooltip delay and skip-delay context. Wrap your app or a subtree. */\nexport const TooltipProvider = TooltipPrimitive.Provider;\n\n/** Props for the {@link Tooltip} root component. */\nexport interface TooltipProps extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root> {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n defaultOpen?: boolean;\n}\n\n/** Root component that manages open/close state for a single tooltip. */\nexport const Tooltip = TooltipPrimitive.Root;\n\n/** Props for the {@link TooltipTrigger} component. */\nexport type TooltipTriggerProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Trigger>;\n\n/** The element that triggers the tooltip on hover/focus. */\nexport const TooltipTrigger = TooltipPrimitive.Trigger;\n\nexport type TooltipContentProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>;\n\nexport const TooltipContent = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitive.Content>,\n TooltipContentProps\n>(({ className, sideOffset = 8, style, ...props }, ref) => {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n collisionPadding={8}\n style={{ zIndex: \"var(--fanvue-ui-portal-z-index, 50)\", ...style }}\n className={cn(\n \"typography-semibold-body-sm max-w-[320px] rounded-full bg-surface-pageinverse px-4 py-2 text-foreground-inverse shadow-[0px_1px_4px_0px_rgba(0,0,0,0.06),0px_1px_3px_0px_rgba(0,0,0,0.05)]\",\n className,\n )}\n align=\"center\"\n {...props}\n />\n </TooltipPrimitive.Portal>\n );\n});\nTooltipContent.displayName = \"TooltipContent\";\n"],"names":[],"mappings":";;;;;AAQO,MAAM,kBAAkB,iBAAiB;AAUzC,MAAM,UAAU,iBAAiB;AAMjC,MAAM,iBAAiB,iBAAiB;AAIxC,MAAM,iBAAiB,MAAM,WAGlC,CAAC,EAAE,WAAW,aAAa,GAAG,OAAO,GAAG,MAAA,GAAS,QAAQ;AACzD,SACE,oBAAC,iBAAiB,QAAjB,EACC,UAAA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,OAAO,EAAE,QAAQ,uCAAuC,GAAG,MAAA;AAAA,MAC3D,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,OAAM;AAAA,MACL,GAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ,CAAC;AACD,eAAe,cAAc;"}
1
+ {"version":3,"file":"Tooltip.mjs","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Props for the {@link TooltipProvider}. Wraps Radix `Tooltip.Provider`. */\nexport type TooltipProviderProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider>;\n\n/** Provides tooltip delay and skip-delay context. Wrap your app or a subtree. */\nexport const TooltipProvider = TooltipPrimitive.Provider;\n\n/** Props for the {@link Tooltip} root component. */\nexport interface TooltipProps extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root> {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n defaultOpen?: boolean;\n}\n\n/** Root component that manages open/close state for a single tooltip. */\nexport const Tooltip = TooltipPrimitive.Root;\n\n/** Props for the {@link TooltipTrigger} component. */\nexport type TooltipTriggerProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Trigger>;\n\n/** The element that triggers the tooltip on hover/focus. */\nexport const TooltipTrigger = TooltipPrimitive.Trigger;\n\nexport type TooltipContentProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>;\n\nexport const TooltipContent = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitive.Content>,\n TooltipContentProps\n>(({ className, sideOffset = 8, style, ...props }, ref) => {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n collisionPadding={8}\n style={{ zIndex: \"var(--fanvue-ui-portal-z-index, 50)\", ...style }}\n className={cn(\n \"typography-semibold-body-sm max-w-[320px] rounded-full bg-surface-primary-inverted px-4 py-2 text-content-primary-inverted shadow-[0px_1px_4px_0px_rgba(0,0,0,0.06),0px_1px_3px_0px_rgba(0,0,0,0.05)]\",\n className,\n )}\n align=\"center\"\n {...props}\n />\n </TooltipPrimitive.Portal>\n );\n});\nTooltipContent.displayName = \"TooltipContent\";\n"],"names":[],"mappings":";;;;;AAQO,MAAM,kBAAkB,iBAAiB;AAUzC,MAAM,UAAU,iBAAiB;AAMjC,MAAM,iBAAiB,iBAAiB;AAIxC,MAAM,iBAAiB,MAAM,WAGlC,CAAC,EAAE,WAAW,aAAa,GAAG,OAAO,GAAG,MAAA,GAAS,QAAQ;AACzD,SACE,oBAAC,iBAAiB,QAAjB,EACC,UAAA;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,OAAO,EAAE,QAAQ,uCAAuC,GAAG,MAAA;AAAA,MAC3D,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAEF,OAAM;AAAA,MACL,GAAG;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ,CAAC;AACD,eAAe,cAAc;"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
4
4
  import { ClassValue } from 'clsx';
5
5
  import { default as default_2 } from 'react';
6
6
  import * as DialogPrimitive from '@radix-ui/react-dialog';
7
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
7
8
  import { JSX } from 'react/jsx-runtime';
8
9
  import * as PopoverPrimitive from '@radix-ui/react-popover';
9
10
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
@@ -370,6 +371,46 @@ export declare const BankIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttr
370
371
  className?: string;
371
372
  } & React_2.RefAttributes<SVGSVGElement>>;
372
373
 
374
+ /**
375
+ * A promotional banner card with gradient backgrounds, optional badge,
376
+ * heading, description, and call-to-action button.
377
+ *
378
+ * @example
379
+ * ```tsx
380
+ * <Banner
381
+ * variant="primary"
382
+ * badgeLabel="New"
383
+ * heading="Boost your earnings"
384
+ * description="Try our latest feature to grow faster."
385
+ * cta={{ label: "Learn more", onClick: handleClick }}
386
+ * />
387
+ * ```
388
+ */
389
+ export declare const Banner: React_2.ForwardRefExoticComponent<BannerProps & React_2.RefAttributes<HTMLDivElement>>;
390
+
391
+ export declare interface BannerProps extends React_2.HTMLAttributes<HTMLDivElement> {
392
+ /** Gradient variant controlling the background colours. @default "primary" */
393
+ variant?: BannerVariant;
394
+ /** Text rendered inside a `Badge` at the top of the banner. */
395
+ badgeLabel?: string;
396
+ /** Primary heading displayed below the badge. Rendered as an `<h3>`. */
397
+ heading?: React_2.ReactNode;
398
+ /** Supporting copy displayed below the heading. */
399
+ description?: React_2.ReactNode;
400
+ /**
401
+ * Call-to-action button config. Renders a text-style `Button` with an arrow icon.
402
+ * Pass `icon` to override the default `ArrowRightIcon`.
403
+ */
404
+ cta?: {
405
+ label: string;
406
+ onClick: () => void;
407
+ icon?: React_2.ReactNode;
408
+ };
409
+ }
410
+
411
+ /** Gradient variant of the banner. */
412
+ export declare type BannerVariant = "primary" | "secondary" | "tertiary";
413
+
373
414
  export declare const BellIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
374
415
  className?: string;
375
416
  } & React_2.RefAttributes<SVGSVGElement>>;
@@ -1104,6 +1145,97 @@ export declare const DrawerTrigger: React_2.ForwardRefExoticComponent<DialogPrim
1104
1145
  /** Props for the {@link DrawerTrigger} component. */
1105
1146
  export declare type DrawerTriggerProps = React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
1106
1147
 
1148
+ /** Root component that manages open/close state for a dropdown menu. */
1149
+ export declare const DropdownMenu: React_2.FC<DropdownMenuPrimitive.DropdownMenuProps>;
1150
+
1151
+ /**
1152
+ * The positioned content panel rendered inside a portal.
1153
+ *
1154
+ * Override the portal z-index per-instance via `style={{ zIndex: 1500 }}` or
1155
+ * globally with the `--fanvue-ui-portal-z-index` CSS custom property.
1156
+ *
1157
+ * @example
1158
+ * ```tsx
1159
+ * <DropdownMenu>
1160
+ * <DropdownMenuTrigger asChild>
1161
+ * <Button>Open</Button>
1162
+ * </DropdownMenuTrigger>
1163
+ * <DropdownMenuContent>
1164
+ * <DropdownMenuItem>Option 1</DropdownMenuItem>
1165
+ * <DropdownMenuItem>Option 2</DropdownMenuItem>
1166
+ * </DropdownMenuContent>
1167
+ * </DropdownMenu>
1168
+ * ```
1169
+ */
1170
+ export declare const DropdownMenuContent: React_2.ForwardRefExoticComponent<DropdownMenuContentProps & React_2.RefAttributes<HTMLDivElement>>;
1171
+
1172
+ /** Props for the {@link DropdownMenuContent} component. */
1173
+ export declare interface DropdownMenuContentProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content> {
1174
+ }
1175
+
1176
+ /** Groups related menu items. Accepts an optional `DropdownMenuLabel`. */
1177
+ export declare const DropdownMenuGroup: React_2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuGroupProps & React_2.RefAttributes<HTMLDivElement>>;
1178
+
1179
+ /** Props for the {@link DropdownMenuGroup} component. */
1180
+ export declare type DropdownMenuGroupProps = React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Group>;
1181
+
1182
+ /**
1183
+ * An individual item within a {@link DropdownMenuContent}.
1184
+ *
1185
+ * @example
1186
+ * ```tsx
1187
+ * <DropdownMenuItem>Edit profile</DropdownMenuItem>
1188
+ * <DropdownMenuItem destructive>Delete</DropdownMenuItem>
1189
+ * <DropdownMenuItem leadingIcon={<EditIcon />}>Edit</DropdownMenuItem>
1190
+ *
1191
+ * // As a link
1192
+ * <DropdownMenuItem asChild>
1193
+ * <a href="/settings">Settings</a>
1194
+ * </DropdownMenuItem>
1195
+ * ```
1196
+ */
1197
+ export declare const DropdownMenuItem: React_2.ForwardRefExoticComponent<DropdownMenuItemProps & React_2.RefAttributes<HTMLDivElement>>;
1198
+
1199
+ export declare interface DropdownMenuItemProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {
1200
+ /** Height of the menu item row. @default "sm" */
1201
+ size?: DropdownMenuItemSize;
1202
+ /** Whether the item uses destructive (error) styling. */
1203
+ destructive?: boolean;
1204
+ /** Icon rendered before the label. */
1205
+ leadingIcon?: React_2.ReactNode;
1206
+ /** Icon rendered after the label. */
1207
+ trailingIcon?: React_2.ReactNode;
1208
+ /** Whether the item is in a selected state. */
1209
+ selected?: boolean;
1210
+ }
1211
+
1212
+ /** Available sizes for a dropdown menu item. */
1213
+ export declare type DropdownMenuItemSize = "sm" | "md";
1214
+
1215
+ /** A label for a group of items. Not focusable or selectable. */
1216
+ export declare const DropdownMenuLabel: React_2.ForwardRefExoticComponent<DropdownMenuLabelProps & React_2.RefAttributes<HTMLDivElement>>;
1217
+
1218
+ /** Props for the {@link DropdownMenuLabel} component. */
1219
+ export declare interface DropdownMenuLabelProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> {
1220
+ }
1221
+
1222
+ /** Props for the {@link DropdownMenu} root component. */
1223
+ export declare interface DropdownMenuProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {
1224
+ }
1225
+
1226
+ /** Visual separator between groups of items. */
1227
+ export declare const DropdownMenuSeparator: React_2.ForwardRefExoticComponent<DropdownMenuSeparatorProps & React_2.RefAttributes<HTMLDivElement>>;
1228
+
1229
+ /** Props for the {@link DropdownMenuSeparator} component. */
1230
+ export declare interface DropdownMenuSeparatorProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> {
1231
+ }
1232
+
1233
+ /** The element that toggles the dropdown menu when clicked. */
1234
+ export declare const DropdownMenuTrigger: React_2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
1235
+
1236
+ /** Props for the {@link DropdownMenuTrigger} component. */
1237
+ export declare type DropdownMenuTriggerProps = React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>;
1238
+
1107
1239
  export declare const EditIcon: React_2.ForwardRefExoticComponent<React_2.SVGAttributes<SVGSVGElement> & {
1108
1240
  className?: string;
1109
1241
  } & React_2.RefAttributes<SVGSVGElement>>;
@@ -1475,6 +1607,26 @@ export declare const MoreVerticalIcon: React_2.ForwardRefExoticComponent<React_2
1475
1607
  */
1476
1608
  export declare type OmitDistributed<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
1477
1609
 
1610
+ /**
1611
+ * A small pulsing green dot indicator used to show online status.
1612
+ * Decorative only — pair with a visually-hidden label at the usage site
1613
+ * to convey status to screen readers.
1614
+ *
1615
+ * @example
1616
+ * ```tsx
1617
+ * <OnlineBlinkingIcon />
1618
+ * <OnlineBlinkingIcon size="md" />
1619
+ * ```
1620
+ */
1621
+ export declare const OnlineBlinkingIcon: React_2.ForwardRefExoticComponent<OnlineBlinkingIconProps & React_2.RefAttributes<HTMLSpanElement>>;
1622
+
1623
+ export declare interface OnlineBlinkingIconProps extends React_2.HTMLAttributes<HTMLSpanElement> {
1624
+ /** @default "sm" */
1625
+ size?: OnlineBlinkingIconSize;
1626
+ }
1627
+
1628
+ export declare type OnlineBlinkingIconSize = "sm" | "md";
1629
+
1478
1630
  /**
1479
1631
  * Page navigation control with previous/next buttons and numbered page
1480
1632
  * indicators. Supports a numbered-buttons layout (`"default"`) and a compact
package/dist/index.mjs CHANGED
@@ -9,6 +9,7 @@ import { useAudioRecorder } from "./components/AudioUpload/useAudioRecorder.mjs"
9
9
  import { Autocomplete } from "./components/Autocomplete/Autocomplete.mjs";
10
10
  import { Avatar, AvatarFallback, AvatarImage, AvatarRoot } from "./components/Avatar/Avatar.mjs";
11
11
  import { Badge } from "./components/Badge/Badge.mjs";
12
+ import { Banner } from "./components/Banner/Banner.mjs";
12
13
  import { BottomNavigation } from "./components/BottomNavigation/BottomNavigation.mjs";
13
14
  import { BottomNavigationAction } from "./components/BottomNavigation/BottomNavigationAction.mjs";
14
15
  import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/Breadcrumb/Breadcrumb.mjs";
@@ -20,6 +21,7 @@ import { Count } from "./components/Count/Count.mjs";
20
21
  import { Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger } from "./components/Dialog/Dialog.mjs";
21
22
  import { Divider } from "./components/Divider/Divider.mjs";
22
23
  import { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerTitle, DrawerTrigger } from "./components/Drawer/Drawer.mjs";
24
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from "./components/DropdownMenu/DropdownMenu.mjs";
23
25
  import { IconButton } from "./components/IconButton/IconButton.mjs";
24
26
  import { AddIcon } from "./components/Icons/AddIcon.mjs";
25
27
  import { AIIcon } from "./components/Icons/AIIcon.mjs";
@@ -143,6 +145,7 @@ import { InfoBox, InfoBoxContent, InfoBoxTrigger } from "./components/InfoBox/In
143
145
  import { Loader } from "./components/Loader/Loader.mjs";
144
146
  import { Logo } from "./components/Logo/Logo.mjs";
145
147
  import { MobileStepper } from "./components/MobileStepper/MobileStepper.mjs";
148
+ import { OnlineBlinkingIcon } from "./components/OnlineBlinkingIcon/OnlineBlinkingIcon.mjs";
146
149
  import { Pagination } from "./components/Pagination/Pagination.mjs";
147
150
  import { PasswordField } from "./components/PasswordField/PasswordField.mjs";
148
151
  import { Pill } from "./components/Pill/Pill.mjs";
@@ -188,6 +191,7 @@ export {
188
191
  AvatarRoot,
189
192
  Badge,
190
193
  BankIcon,
194
+ Banner,
191
195
  BellIcon,
192
196
  BellOffIcon,
193
197
  BoltIcon,
@@ -254,6 +258,13 @@ export {
254
258
  DrawerOverlay,
255
259
  DrawerTitle,
256
260
  DrawerTrigger,
261
+ DropdownMenu,
262
+ DropdownMenuContent,
263
+ DropdownMenuGroup,
264
+ DropdownMenuItem,
265
+ DropdownMenuLabel,
266
+ DropdownMenuSeparator,
267
+ DropdownMenuTrigger,
257
268
  EditIcon,
258
269
  EmojiIcon,
259
270
  ErrorCircleIcon,
@@ -299,6 +310,7 @@ export {
299
310
  MoonIcon,
300
311
  MoreIcon,
301
312
  MoreVerticalIcon,
313
+ OnlineBlinkingIcon,
302
314
  Pagination,
303
315
  PasswordField,
304
316
  PauseIcon,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}