@spear-ai/spectral 1.15.3 → 1.15.5

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 (277) hide show
  1. package/dist/Accordion.d.ts.map +1 -1
  2. package/dist/Accordion.js +1 -1
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/Alert/AlertBase.d.ts.map +1 -1
  5. package/dist/Alert/AlertBase.js.map +1 -1
  6. package/dist/Alert.js.map +1 -1
  7. package/dist/Avatar.js.map +1 -1
  8. package/dist/Badge.d.ts.map +1 -1
  9. package/dist/Badge.js.map +1 -1
  10. package/dist/Button.js +6 -6
  11. package/dist/Button.js.map +1 -1
  12. package/dist/ButtonGroup/ButtonGroupButton.d.ts +1 -1
  13. package/dist/ButtonGroup/ButtonGroupButton.d.ts.map +1 -1
  14. package/dist/ButtonGroup/ButtonGroupButton.js +2 -1
  15. package/dist/ButtonGroup/ButtonGroupButton.js.map +1 -1
  16. package/dist/ButtonGroup.d.ts +2 -2
  17. package/dist/ButtonGroup.d.ts.map +1 -1
  18. package/dist/ButtonGroup.js +2 -1
  19. package/dist/ButtonGroup.js.map +1 -1
  20. package/dist/ButtonIcon.d.ts.map +1 -1
  21. package/dist/ButtonIcon.js +6 -5
  22. package/dist/ButtonIcon.js.map +1 -1
  23. package/dist/ButtonIconSlideout.d.ts +49 -0
  24. package/dist/ButtonIconSlideout.d.ts.map +1 -0
  25. package/dist/ButtonIconSlideout.js +108 -0
  26. package/dist/ButtonIconSlideout.js.map +1 -0
  27. package/dist/Checkbox/CheckboxBase.js.map +1 -1
  28. package/dist/Checkbox.js.map +1 -1
  29. package/dist/Combobox.js.map +1 -1
  30. package/dist/ControlGroup/ControlGroupSelect.js.map +1 -1
  31. package/dist/ControlGroup.d.ts.map +1 -1
  32. package/dist/ControlGroup.js +1 -1
  33. package/dist/ControlGroup.js.map +1 -1
  34. package/dist/DataCard/Card.d.ts.map +1 -1
  35. package/dist/DataCard/Card.js.map +1 -1
  36. package/dist/DataCard.js.map +1 -1
  37. package/dist/DateTimePicker/Calendar.js.map +1 -1
  38. package/dist/DateTimePicker/DateTimeDisplayInput.js.map +1 -1
  39. package/dist/DateTimePicker/TimePeriodSelect.js.map +1 -1
  40. package/dist/DateTimePicker/TimePicker.js.map +1 -1
  41. package/dist/DateTimePicker.js.map +1 -1
  42. package/dist/Dialog.d.ts.map +1 -1
  43. package/dist/Dialog.js +2 -2
  44. package/dist/Dialog.js.map +1 -1
  45. package/dist/Drawer.js +3 -3
  46. package/dist/Drawer.js.map +1 -1
  47. package/dist/DropdownMenu.js.map +1 -1
  48. package/dist/FormFieldMessage.d.ts.map +1 -1
  49. package/dist/FormFieldMessage.js.map +1 -1
  50. package/dist/HoverCard.d.ts.map +1 -1
  51. package/dist/HoverCard.js.map +1 -1
  52. package/dist/Icons/AdjustmentsIcon.d.ts.map +1 -1
  53. package/dist/Icons/AdjustmentsIcon.js.map +1 -1
  54. package/dist/Icons/AnalyzeIcon.d.ts.map +1 -1
  55. package/dist/Icons/AnalyzeIcon.js.map +1 -1
  56. package/dist/Icons/AnnotationsIcon.d.ts.map +1 -1
  57. package/dist/Icons/AnnotationsIcon.js.map +1 -1
  58. package/dist/Icons/ApprovedIcon.d.ts.map +1 -1
  59. package/dist/Icons/ApprovedIcon.js.map +1 -1
  60. package/dist/Icons/ArrowDownIcon.d.ts.map +1 -1
  61. package/dist/Icons/ArrowDownIcon.js.map +1 -1
  62. package/dist/Icons/ArrowUpIcon.d.ts.map +1 -1
  63. package/dist/Icons/ArrowUpIcon.js.map +1 -1
  64. package/dist/Icons/BoxToolIcon.d.ts.map +1 -1
  65. package/dist/Icons/BoxToolIcon.js.map +1 -1
  66. package/dist/Icons/CalendarIcon.d.ts.map +1 -1
  67. package/dist/Icons/CalendarIcon.js.map +1 -1
  68. package/dist/Icons/CheckCircleIcon.d.ts.map +1 -1
  69. package/dist/Icons/CheckCircleIcon.js.map +1 -1
  70. package/dist/Icons/CheckSquareIcon.d.ts.map +1 -1
  71. package/dist/Icons/CheckSquareIcon.js.map +1 -1
  72. package/dist/Icons/CheckmarkIcon.d.ts.map +1 -1
  73. package/dist/Icons/CheckmarkIcon.js.map +1 -1
  74. package/dist/Icons/ChevronDownIcon.d.ts.map +1 -1
  75. package/dist/Icons/ChevronDownIcon.js.map +1 -1
  76. package/dist/Icons/ChevronUpIcon.d.ts.map +1 -1
  77. package/dist/Icons/ChevronUpIcon.js.map +1 -1
  78. package/dist/Icons/ClockIcon.d.ts.map +1 -1
  79. package/dist/Icons/ClockIcon.js.map +1 -1
  80. package/dist/Icons/CloseCircleIcon.d.ts.map +1 -1
  81. package/dist/Icons/CloseCircleIcon.js.map +1 -1
  82. package/dist/Icons/CloseIcon.d.ts.map +1 -1
  83. package/dist/Icons/CloseIcon.js.map +1 -1
  84. package/dist/Icons/Crosshairs2Icon.d.ts.map +1 -1
  85. package/dist/Icons/Crosshairs2Icon.js.map +1 -1
  86. package/dist/Icons/CrosshairsIcon.d.ts.map +1 -1
  87. package/dist/Icons/CrosshairsIcon.js.map +1 -1
  88. package/dist/Icons/DashboardIcon.d.ts.map +1 -1
  89. package/dist/Icons/DashboardIcon.js.map +1 -1
  90. package/dist/Icons/DatabaseIcon.d.ts.map +1 -1
  91. package/dist/Icons/DatabaseIcon.js.map +1 -1
  92. package/dist/Icons/DeleteIcon.d.ts.map +1 -1
  93. package/dist/Icons/DeleteIcon.js.map +1 -1
  94. package/dist/Icons/DurationIcon.d.ts.map +1 -1
  95. package/dist/Icons/DurationIcon.js.map +1 -1
  96. package/dist/Icons/EditIcon.d.ts.map +1 -1
  97. package/dist/Icons/EditIcon.js.map +1 -1
  98. package/dist/Icons/EmailIcon.d.ts.map +1 -1
  99. package/dist/Icons/EmailIcon.js.map +1 -1
  100. package/dist/Icons/EraserIcon.d.ts.map +1 -1
  101. package/dist/Icons/EraserIcon.js.map +1 -1
  102. package/dist/Icons/ErrorIcon.d.ts.map +1 -1
  103. package/dist/Icons/ErrorIcon.js.map +1 -1
  104. package/dist/Icons/EyeClosedIcon.d.ts.map +1 -1
  105. package/dist/Icons/EyeClosedIcon.js.map +1 -1
  106. package/dist/Icons/EyeClosedIcon2.d.ts.map +1 -1
  107. package/dist/Icons/EyeClosedIcon2.js.map +1 -1
  108. package/dist/Icons/EyeOpenIcon.d.ts.map +1 -1
  109. package/dist/Icons/EyeOpenIcon.js.map +1 -1
  110. package/dist/Icons/FileDownloadIcon.d.ts.map +1 -1
  111. package/dist/Icons/FileDownloadIcon.js.map +1 -1
  112. package/dist/Icons/GoToFirstIcon.d.ts.map +1 -1
  113. package/dist/Icons/GoToFirstIcon.js.map +1 -1
  114. package/dist/Icons/GoToLastIcon.d.ts.map +1 -1
  115. package/dist/Icons/GoToLastIcon.js.map +1 -1
  116. package/dist/Icons/HarmonicCursorsIcon.d.ts.map +1 -1
  117. package/dist/Icons/HarmonicCursorsIcon.js.map +1 -1
  118. package/dist/Icons/InfoIcon.d.ts.map +1 -1
  119. package/dist/Icons/InfoIcon.js.map +1 -1
  120. package/dist/Icons/KeyboardIcon.d.ts.map +1 -1
  121. package/dist/Icons/KeyboardIcon.js.map +1 -1
  122. package/dist/Icons/LabelIcon.d.ts.map +1 -1
  123. package/dist/Icons/LabelIcon.js.map +1 -1
  124. package/dist/Icons/LassoIcon.d.ts.map +1 -1
  125. package/dist/Icons/LassoIcon.js.map +1 -1
  126. package/dist/Icons/LineToolIcon.d.ts.map +1 -1
  127. package/dist/Icons/LineToolIcon.js.map +1 -1
  128. package/dist/Icons/LiveViewIcon.d.ts.map +1 -1
  129. package/dist/Icons/LiveViewIcon.js.map +1 -1
  130. package/dist/Icons/LoaderIcon.d.ts.map +1 -1
  131. package/dist/Icons/LoaderIcon.js.map +1 -1
  132. package/dist/Icons/LocationIcon.d.ts.map +1 -1
  133. package/dist/Icons/LocationIcon.js.map +1 -1
  134. package/dist/Icons/LogoutIcon.d.ts.map +1 -1
  135. package/dist/Icons/LogoutIcon.js.map +1 -1
  136. package/dist/Icons/MaximizeIcon.d.ts.map +1 -1
  137. package/dist/Icons/MaximizeIcon.js.map +1 -1
  138. package/dist/Icons/MeasureIcon.d.ts.map +1 -1
  139. package/dist/Icons/MeasureIcon.js.map +1 -1
  140. package/dist/Icons/MenuDotsIcon.d.ts.map +1 -1
  141. package/dist/Icons/MenuDotsIcon.js.map +1 -1
  142. package/dist/Icons/MenuIcon.d.ts.map +1 -1
  143. package/dist/Icons/MenuIcon.js.map +1 -1
  144. package/dist/Icons/MessagesIcon.d.ts.map +1 -1
  145. package/dist/Icons/MessagesIcon.js.map +1 -1
  146. package/dist/Icons/MetadataIcon.d.ts.map +1 -1
  147. package/dist/Icons/MetadataIcon.js.map +1 -1
  148. package/dist/Icons/MinimizeIcon.d.ts.map +1 -1
  149. package/dist/Icons/MinimizeIcon.js.map +1 -1
  150. package/dist/Icons/MinusIcon.d.ts.map +1 -1
  151. package/dist/Icons/MinusIcon.js.map +1 -1
  152. package/dist/Icons/OntologyIcon.d.ts.map +1 -1
  153. package/dist/Icons/OntologyIcon.js.map +1 -1
  154. package/dist/Icons/PanelIconClose.d.ts.map +1 -1
  155. package/dist/Icons/PanelIconClose.js.map +1 -1
  156. package/dist/Icons/PanelIconOpen.d.ts.map +1 -1
  157. package/dist/Icons/PanelIconOpen.js.map +1 -1
  158. package/dist/Icons/PauseIcon.d.ts.map +1 -1
  159. package/dist/Icons/PauseIcon.js.map +1 -1
  160. package/dist/Icons/PlayIcon.d.ts.map +1 -1
  161. package/dist/Icons/PlayIcon.js.map +1 -1
  162. package/dist/Icons/PlusIcon.d.ts.map +1 -1
  163. package/dist/Icons/PlusIcon.js.map +1 -1
  164. package/dist/Icons/PolygonIcon.d.ts.map +1 -1
  165. package/dist/Icons/PolygonIcon.js.map +1 -1
  166. package/dist/Icons/PrinterIcon.d.ts.map +1 -1
  167. package/dist/Icons/PrinterIcon.js.map +1 -1
  168. package/dist/Icons/ProgressCheckIcon.d.ts.map +1 -1
  169. package/dist/Icons/ProgressCheckIcon.js.map +1 -1
  170. package/dist/Icons/ResetIcon.d.ts.map +1 -1
  171. package/dist/Icons/ResetIcon.js.map +1 -1
  172. package/dist/Icons/ReviewedIcon.d.ts.map +1 -1
  173. package/dist/Icons/ReviewedIcon.js.map +1 -1
  174. package/dist/Icons/ScissorsIcon.d.ts.map +1 -1
  175. package/dist/Icons/ScissorsIcon.js.map +1 -1
  176. package/dist/Icons/SearchIcon.d.ts.map +1 -1
  177. package/dist/Icons/SearchIcon.js.map +1 -1
  178. package/dist/Icons/SettingsIcon.d.ts.map +1 -1
  179. package/dist/Icons/SettingsIcon.js.map +1 -1
  180. package/dist/Icons/SortAscendingIcon.d.ts.map +1 -1
  181. package/dist/Icons/SortAscendingIcon.js.map +1 -1
  182. package/dist/Icons/SortAtoZIcon.d.ts.map +1 -1
  183. package/dist/Icons/SortAtoZIcon.js.map +1 -1
  184. package/dist/Icons/SortDescendingIcon.d.ts.map +1 -1
  185. package/dist/Icons/SortDescendingIcon.js.map +1 -1
  186. package/dist/Icons/SortZtoAIcon.d.ts.map +1 -1
  187. package/dist/Icons/SortZtoAIcon.js.map +1 -1
  188. package/dist/Icons/SparklesIcon.d.ts.map +1 -1
  189. package/dist/Icons/SparklesIcon.js.map +1 -1
  190. package/dist/Icons/StackIcon.d.ts.map +1 -1
  191. package/dist/Icons/StackIcon.js.map +1 -1
  192. package/dist/Icons/StarIcon.d.ts.map +1 -1
  193. package/dist/Icons/StarIcon.js.map +1 -1
  194. package/dist/Icons/SyncIcon.d.ts.map +1 -1
  195. package/dist/Icons/SyncIcon.js.map +1 -1
  196. package/dist/Icons/SyncOffIcon.d.ts.map +1 -1
  197. package/dist/Icons/SyncOffIcon.js.map +1 -1
  198. package/dist/Icons/TrashIcon.d.ts.map +1 -1
  199. package/dist/Icons/TrashIcon.js.map +1 -1
  200. package/dist/Icons/UndoIcon.d.ts.map +1 -1
  201. package/dist/Icons/UndoIcon.js.map +1 -1
  202. package/dist/Icons/UploadIcon.d.ts.map +1 -1
  203. package/dist/Icons/UploadIcon.js.map +1 -1
  204. package/dist/Icons/User2Icon.d.ts.map +1 -1
  205. package/dist/Icons/User2Icon.js.map +1 -1
  206. package/dist/Icons/UserIcon.d.ts.map +1 -1
  207. package/dist/Icons/UserIcon.js.map +1 -1
  208. package/dist/Icons/WarningIcon.d.ts.map +1 -1
  209. package/dist/Icons/WarningIcon.js.map +1 -1
  210. package/dist/Icons/ZoomAllIcon.d.ts.map +1 -1
  211. package/dist/Icons/ZoomAllIcon.js.map +1 -1
  212. package/dist/Icons/ZoomXIcon.d.ts.map +1 -1
  213. package/dist/Icons/ZoomXIcon.js.map +1 -1
  214. package/dist/Icons/ZoomYIcon.d.ts.map +1 -1
  215. package/dist/Icons/ZoomYIcon.js.map +1 -1
  216. package/dist/IconsAnimated/PanelLeftCloseIcon.js.map +1 -1
  217. package/dist/IconsAnimated/PanelLeftOpenIcon.js.map +1 -1
  218. package/dist/Input.js +1 -1
  219. package/dist/Input.js.map +1 -1
  220. package/dist/InputNumeric.d.ts.map +1 -1
  221. package/dist/InputNumeric.js.map +1 -1
  222. package/dist/InputOTP.d.ts.map +1 -1
  223. package/dist/InputOTP.js.map +1 -1
  224. package/dist/Kbd.d.ts.map +1 -1
  225. package/dist/Kbd.js.map +1 -1
  226. package/dist/Label.js.map +1 -1
  227. package/dist/MultiSelect/MultiSelectBase.js.map +1 -1
  228. package/dist/MultiSelect.js.map +1 -1
  229. package/dist/Popover.d.ts.map +1 -1
  230. package/dist/Popover.js.map +1 -1
  231. package/dist/RadioButton.js +4 -1
  232. package/dist/RadioButton.js.map +1 -1
  233. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts +1 -1
  234. package/dist/RadioButtonGroup/RadioButtonGroupBase.d.ts.map +1 -1
  235. package/dist/RadioButtonGroup/RadioButtonGroupBase.js +7 -2
  236. package/dist/RadioButtonGroup/RadioButtonGroupBase.js.map +1 -1
  237. package/dist/RadioButtonGroup.d.ts.map +1 -1
  238. package/dist/RadioButtonGroup.js.map +1 -1
  239. package/dist/RadioGroup.d.ts.map +1 -1
  240. package/dist/RadioGroup.js +1 -1
  241. package/dist/RadioGroup.js.map +1 -1
  242. package/dist/Select.js.map +1 -1
  243. package/dist/Skeleton.js.map +1 -1
  244. package/dist/Slider.js.map +1 -1
  245. package/dist/Switch/SwitchBase.d.ts.map +1 -1
  246. package/dist/Switch/SwitchBase.js.map +1 -1
  247. package/dist/Switch.js.map +1 -1
  248. package/dist/Tabs/TabsBase.d.ts.map +1 -1
  249. package/dist/Tabs/TabsBase.js.map +1 -1
  250. package/dist/Tabs.d.ts.map +1 -1
  251. package/dist/Tabs.js.map +1 -1
  252. package/dist/Textarea.js.map +1 -1
  253. package/dist/Toast.d.ts.map +1 -1
  254. package/dist/Toast.js.map +1 -1
  255. package/dist/Toggle/ToggleBase.js.map +1 -1
  256. package/dist/Toggle.d.ts +1 -1
  257. package/dist/Toggle.d.ts.map +1 -1
  258. package/dist/Toggle.js +7 -2
  259. package/dist/Toggle.js.map +1 -1
  260. package/dist/ToggleGroup/ToggleGroupBase.d.ts.map +1 -1
  261. package/dist/ToggleGroup/ToggleGroupBase.js.map +1 -1
  262. package/dist/ToggleGroup/ToggleGroupItem.js +1 -1
  263. package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
  264. package/dist/ToggleGroup/ToggleGroupSplitMenuItem.js +1 -1
  265. package/dist/ToggleGroup/ToggleGroupSplitMenuItem.js.map +1 -1
  266. package/dist/ToggleGroup.js +9 -1
  267. package/dist/ToggleGroup.js.map +1 -1
  268. package/dist/Tooltip.d.ts.map +1 -1
  269. package/dist/Tooltip.js.map +1 -1
  270. package/dist/Tray.d.ts.map +1 -1
  271. package/dist/Tray.js +1 -1
  272. package/dist/Tray.js.map +1 -1
  273. package/dist/index.d.ts +2 -1
  274. package/dist/index.js +3 -2
  275. package/dist/styles/horizon/utilities.css +13 -8
  276. package/dist/styles/spectral.css +1 -1
  277. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","names":[],"sources":["../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as TooltipPrimitive from '@radix-ui/react-tooltip'\nimport { cn } from '@utils/twUtils'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { type ComponentProps } from 'react'\n\nexport const TooltipProvider = ({ delayDuration = 0, ...props }: ComponentProps<typeof TooltipPrimitive.Provider>) => {\n return (\n <TooltipPrimitive.Provider\n data-slot='tooltip-provider'\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nexport const Tooltip = ({ ...props }: ComponentProps<typeof TooltipPrimitive.Root>) => {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root\n data-slot='tooltip'\n data-testid='spectral-tooltip'\n {...props}\n />\n </TooltipProvider>\n )\n}\n\nexport const TooltipTrigger = ({ asChild, children, ...props }: ComponentProps<typeof TooltipPrimitive.Trigger>) => {\n return (\n <TooltipPrimitive.Trigger\n asChild={asChild}\n className='w-fit'\n data-slot='tooltip-trigger'\n data-testid='spectral-tooltip-trigger'\n {...props}\n >\n {children}\n </TooltipPrimitive.Trigger>\n )\n}\n\nconst tooltipVariants = cva(\n `tooltip-effects rounded-md px-3 py-1.5 text-xs pointer-events-auto z-50 w-fit bg-tooltip-bg text-text-primary outline-none select-none motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2 motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:animate-in motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=open]:zoom-in-95`,\n {\n variants: {\n variant: {\n default: '',\n outline: 'border-2 border-tooltip-outline-border',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nconst tooltipArrowVariants = cva('size-2.5 z-[-1] rotate-45 rounded-[2px] bg-tooltip-arrow fill-tooltip-arrow', {\n variants: {\n variant: {\n default: '-translate-y-[calc(50%+1px)]',\n outline: '-translate-y-[calc(50%-1.5px)] border-2 border-t-0 border-l-0 border-tooltip-outline-arrow',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n})\n\nexport const TooltipContent = ({\n children,\n className,\n showArrow = false,\n side,\n sideOffset = 0,\n variant = 'default',\n ...props\n}: ComponentProps<typeof TooltipPrimitive.Content> &\n VariantProps<typeof tooltipVariants> & {\n showArrow?: boolean\n }) => {\n return (\n <TooltipPrimitive.Portal\n data-testid='spectral-tooltip-portal'\n data-slot='tooltip-portal'\n >\n <TooltipPrimitive.Content\n className={cn(tooltipVariants({ variant }), className)}\n data-slot='tooltip-content'\n data-testid='spectral-tooltip-content'\n side={side}\n sideOffset={sideOffset}\n {...props}\n >\n {children}\n {showArrow && (\n <TooltipPrimitive.Arrow\n className={cn(tooltipArrowVariants({ variant }))}\n height={8}\n />\n )}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n"],"mappings":";;;;;;;;AAKA,MAAa,mBAAmB,EAAE,gBAAgB,GAAG,GAAG,YAA8D;AACpH,QACE,oBAAC,iBAAiB,UAAlB;EACE,aAAU;EACK;EACf,GAAI;EACJ;;AAIN,MAAa,WAAW,EAAE,GAAG,YAA0D;AACrF,QACE,oBAAC,iBAAD,YACE,oBAAC,iBAAiB,MAAlB;EACE,aAAU;EACV,eAAY;EACZ,GAAI;EACJ,GACc;;AAItB,MAAa,kBAAkB,EAAE,SAAS,UAAU,GAAG,YAA6D;AAClH,QACE,oBAAC,iBAAiB,SAAlB;EACW;EACT,WAAU;EACV,aAAU;EACV,eAAY;EACZ,GAAI;EAEH;EACwB;;AAI/B,MAAM,kBAAkB,IACtB,mlBACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,MAAM,uBAAuB,IAAI,+EAA+E;CAC9G,UAAU,EACR,SAAS;EACP,SAAS;EACT,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CAAC;AAEF,MAAa,kBAAkB,EAC7B,UACA,WACA,YAAY,OACZ,MACA,aAAa,GACb,UAAU,WACV,GAAG,YAIG;AACN,QACE,oBAAC,iBAAiB,QAAlB;EACE,eAAY;EACZ,aAAU;YAEV,qBAAC,iBAAiB,SAAlB;GACE,WAAW,GAAG,gBAAgB,EAAE,SAAS,CAAC,EAAE,UAAU;GACtD,aAAU;GACV,eAAY;GACN;GACM;GACZ,GAAI;aANN,CAQG,UACA,aACC,oBAAC,iBAAiB,OAAlB;IACE,WAAW,GAAG,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAChD,QAAQ;IACR,EAEqB;;EACH"}
1
+ {"version":3,"file":"Tooltip.js","names":[],"sources":["../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as TooltipPrimitive from '@radix-ui/react-tooltip'\nimport { cn } from '@utils/twUtils'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { type ComponentProps } from 'react'\n\nexport const TooltipProvider = ({ delayDuration = 0, ...props }: ComponentProps<typeof TooltipPrimitive.Provider>) => {\n return <TooltipPrimitive.Provider data-slot='tooltip-provider' delayDuration={delayDuration} {...props} />\n}\n\nexport const Tooltip = ({ ...props }: ComponentProps<typeof TooltipPrimitive.Root>) => {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot='tooltip' data-testid='spectral-tooltip' {...props} />\n </TooltipProvider>\n )\n}\n\nexport const TooltipTrigger = ({ asChild, children, ...props }: ComponentProps<typeof TooltipPrimitive.Trigger>) => {\n return (\n <TooltipPrimitive.Trigger asChild={asChild} className='w-fit' data-slot='tooltip-trigger' data-testid='spectral-tooltip-trigger' {...props}>\n {children}\n </TooltipPrimitive.Trigger>\n )\n}\n\nconst tooltipVariants = cva(\n `tooltip-effects rounded-md px-3 py-1.5 text-xs pointer-events-auto z-50 w-fit bg-tooltip-bg text-text-primary outline-none select-none motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2 motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:animate-in motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=open]:zoom-in-95`,\n {\n variants: {\n variant: {\n default: '',\n outline: 'border-2 border-tooltip-outline-border',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n)\n\nconst tooltipArrowVariants = cva('size-2.5 z-[-1] rotate-45 rounded-[2px] bg-tooltip-arrow fill-tooltip-arrow', {\n variants: {\n variant: {\n default: '-translate-y-[calc(50%+1px)]',\n outline: '-translate-y-[calc(50%-1.5px)] border-2 border-t-0 border-l-0 border-tooltip-outline-arrow',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n})\n\nexport const TooltipContent = ({\n children,\n className,\n showArrow = false,\n side,\n sideOffset = 0,\n variant = 'default',\n ...props\n}: ComponentProps<typeof TooltipPrimitive.Content> &\n VariantProps<typeof tooltipVariants> & {\n showArrow?: boolean\n }) => {\n return (\n <TooltipPrimitive.Portal data-testid='spectral-tooltip-portal' data-slot='tooltip-portal'>\n <TooltipPrimitive.Content className={cn(tooltipVariants({ variant }), className)} data-slot='tooltip-content' data-testid='spectral-tooltip-content' side={side} sideOffset={sideOffset} {...props}>\n {children}\n {showArrow && <TooltipPrimitive.Arrow className={cn(tooltipArrowVariants({ variant }))} height={8} />}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n"],"mappings":";;;;;;;;AAKA,MAAa,mBAAmB,EAAE,gBAAgB,GAAG,GAAG,YAA8D;AACpH,QAAO,oBAAC,iBAAiB,UAAlB;EAA2B,aAAU;EAAkC;EAAe,GAAI;EAAS;;AAG5G,MAAa,WAAW,EAAE,GAAG,YAA0D;AACrF,QACE,oBAAC,iBAAD,YACE,oBAAC,iBAAiB,MAAlB;EAAuB,aAAU;EAAU,eAAY;EAAmB,GAAI;EAAS,GACvE;;AAItB,MAAa,kBAAkB,EAAE,SAAS,UAAU,GAAG,YAA6D;AAClH,QACE,oBAAC,iBAAiB,SAAlB;EAAmC;EAAS,WAAU;EAAQ,aAAU;EAAkB,eAAY;EAA2B,GAAI;EAClI;EACwB;;AAI/B,MAAM,kBAAkB,IACtB,mlBACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,MAAM,uBAAuB,IAAI,+EAA+E;CAC9G,UAAU,EACR,SAAS;EACP,SAAS;EACT,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CAAC;AAEF,MAAa,kBAAkB,EAC7B,UACA,WACA,YAAY,OACZ,MACA,aAAa,GACb,UAAU,WACV,GAAG,YAIG;AACN,QACE,oBAAC,iBAAiB,QAAlB;EAAyB,eAAY;EAA0B,aAAU;YACvE,qBAAC,iBAAiB,SAAlB;GAA0B,WAAW,GAAG,gBAAgB,EAAE,SAAS,CAAC,EAAE,UAAU;GAAE,aAAU;GAAkB,eAAY;GAAiC;GAAkB;GAAY,GAAI;aAA7L,CACG,UACA,aAAa,oBAAC,iBAAiB,OAAlB;IAAwB,WAAW,GAAG,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAAE,QAAQ;IAAK,EAC5E;;EACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tray.d.ts","names":[],"sources":["../src/components/Tray/Tray.tsx"],"mappings":";;;;;;;;cAQM,mBAAA,GAAmB,KAAA;;IAYvB,iCAAA,CAAA,SAAA;AAAA,KAkBU,aAAA,GAAgB,wBAAA,QAAgC,MAAA,CAAS,IAAA;EACnE,QAAA,GAAW,SAAA;EACX,IAAA;AAAA;AAAA;EAGqB,QAAA;EAAU,IAAA;EAAA,GAAgB;AAAA,GAAS,aAAA,GAAa,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EA4BrE,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA,QAAgC,MAAA,CAAS,OAAA;EAC1C,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EAYC,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA,QAAgC,MAAA,CAAS,KAAA;EAC1C,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;KA6BW,gBAAA,GAAmB,wBAAA,QAAgC,MAAA,CAAS,OAAA,IACtE,YAAA,QAAoB,mBAAA;sFAElB,YAAA;EACA,QAAA,GAAW,SAAA;AAAA;AAAA;gBAIC,SAAA;EACd,QAAA;EACA,SAAA;EACA,GAAA;EACA,IAAA,EAAM,QAAA;EAAA,GACH;AAAA,GACF,gBAAA;EACD,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EA0BC,QAAA;EACA,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA;EACD,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EAoBC,QAAA;EACA,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA;EACD,GAAA,GAAM,GAAA,CAAI,kBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EAaC,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA;EACD,GAAA,GAAM,GAAA,CAAI,oBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;KAUW,aAAA,GAAgB,wBAAA;EAC1B,YAAA;AAAA;AAAA;EAIA,YAAA,EAAc,OAAA;EACd,QAAA;EACA,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,aAAA;EACD,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA"}
1
+ {"version":3,"file":"Tray.d.ts","names":[],"sources":["../src/components/Tray/Tray.tsx"],"mappings":";;;;;;;;cAQM,mBAAA,GAAmB,KAAA;;IAYvB,iCAAA,CAAA,SAAA;AAAA,KAkBU,aAAA,GAAgB,wBAAA,QAAgC,MAAA,CAAS,IAAA;EACnE,QAAA,GAAW,SAAA;EACX,IAAA;AAAA;AAAA;EAGqB,QAAA;EAAU,IAAA;EAAA,GAAgB;AAAA,GAAS,aAAA,GAAa,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EAyBrE,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA,QAAgC,MAAA,CAAS,OAAA;EAC1C,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EAIC,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA,QAAgC,MAAA,CAAS,KAAA;EAC1C,GAAA,GAAM,GAAA,CAAI,iBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;KAgBW,gBAAA,GAAmB,wBAAA,QAAgC,MAAA,CAAS,OAAA,IACtE,YAAA,QAAoB,mBAAA;sFAElB,YAAA;EACA,QAAA,GAAW,SAAA;AAAA;AAAA;gBAIC,SAAA;EACd,QAAA;EACA,SAAA;EACA,GAAA;EACA,IAAA,EAAM,QAAA;EAAA,GACH;AAAA,GACF,gBAAA;EACD,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EAqBC,QAAA;EACA,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA;EACD,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EAWC,QAAA;EACA,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA;EACD,GAAA,GAAM,GAAA,CAAI,kBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;;EAQC,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,wBAAA;EACD,GAAA,GAAM,GAAA,CAAI,oBAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;KAGW,aAAA,GAAgB,wBAAA;EAC1B,YAAA;AAAA;AAAA;EAIA,YAAA,EAAc,OAAA;EACd,QAAA;EACA,SAAA;EACA,GAAA;EAAA,GACG;AAAA,GACF,aAAA;EACD,GAAA,GAAM,GAAA,CAAI,cAAA;AAAA,IACX,oBAAA,CAAA,GAAA,CAAA,OAAA;AAAA"}
package/dist/Tray.js CHANGED
@@ -88,7 +88,7 @@ const TrayContent = ({ "aria-label": ariaLabel, children, className, ref, size:
88
88
  };
89
89
  TrayContent.displayName = "TrayContent";
90
90
  const TrayHeader = ({ children, className, ref, ...props }) => /* @__PURE__ */ jsxs("div", {
91
- className: cn("gap-1.5 pb-4 relative flex flex-col text-start", className),
91
+ className: cn("relative flex flex-col gap-1.5 pb-4 text-start", className),
92
92
  "data-testid": "spectral-tray-header",
93
93
  ref,
94
94
  ...props,
package/dist/Tray.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tray.js","names":["TrayBase"],"sources":["../src/components/Tray/Tray.tsx"],"sourcesContent":["import { ButtonIcon } from '@components/ButtonIcon/ButtonIcon'\nimport { CloseIcon } from '@components/Icons'\nimport { cn } from '@utils/twUtils'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { AnimatePresence, motion } from 'motion/react'\nimport { createContext, useContext, useMemo, useRef, type ComponentPropsWithoutRef, type ReactNode, type Ref } from 'react'\nimport { Drawer as TrayBase } from 'vaul'\n\nconst TrayContentVariants = cva('bottom-4 rounded-2xl sm:max-md:max-w-full fixed left-1/2 z-10 w-full -translate-x-1/2 overflow-hidden bg-drawer-bg outline-none', {\n variants: {\n size: {\n sm: 'max-w-[400px]',\n md: 'max-w-[600px]',\n lg: 'max-w-[800px]',\n full: 'max-w-full',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n})\n\ninterface TrayContextValue {\n animationKey: string | number\n setAnimationKey: (key: string | number) => void\n size: 'sm' | 'md' | 'lg' | 'full'\n}\n\nconst TrayContext = createContext<TrayContextValue | undefined>(undefined)\n\nconst useTrayContext = () => {\n const context = useContext(TrayContext)\n if (!context) {\n throw new Error('Tray components must be used within Tray root')\n }\n return context\n}\n\nexport type TrayBaseProps = ComponentPropsWithoutRef<typeof TrayBase.Root> & {\n children?: ReactNode\n size?: 'sm' | 'md' | 'lg' | 'full'\n}\n\nexport const Tray = ({ children, size = 'sm', ...props }: TrayBaseProps) => {\n const animationKeyRef = useRef<string | number>('default')\n\n const contextValue = useMemo(\n () => ({\n animationKey: animationKeyRef.current,\n setAnimationKey: (key: string | number) => {\n animationKeyRef.current = key\n },\n size,\n }),\n [size],\n )\n\n return (\n <TrayContext.Provider value={contextValue}>\n <TrayBase.Root\n data-testid='spectral-tray'\n {...props}\n >\n {children}\n </TrayBase.Root>\n </TrayContext.Provider>\n )\n}\nTray.displayName = 'Tray'\n\nexport const TrayTrigger = ({\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<typeof TrayBase.Trigger> & {\n ref?: Ref<HTMLButtonElement>\n}) => (\n <TrayBase.Trigger\n className={cn(className)}\n data-testid='spectral-tray-trigger'\n data-vaul-no-drag=''\n ref={ref}\n {...props}\n />\n)\nTrayTrigger.displayName = 'TrayTrigger'\n\nexport const TrayClose = ({\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<typeof TrayBase.Close> & {\n ref?: Ref<HTMLButtonElement>\n}) => (\n <TrayBase.Close\n asChild\n className={cn(className)}\n data-testid='spectral-tray-close'\n data-vaul-no-drag=''\n ref={ref}\n {...props}\n >\n <CloseIcon />\n </TrayBase.Close>\n)\nTrayClose.displayName = 'TrayClose'\n\nconst TrayOverlay = ({\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<typeof TrayBase.Overlay> & {\n ref?: Ref<HTMLDivElement>\n}) => (\n <TrayBase.Overlay\n className={cn('inset-0 fixed z-10 bg-overlay', className)}\n ref={ref}\n {...props}\n />\n)\nTrayOverlay.displayName = 'TrayOverlay'\n\nexport type TrayContentProps = ComponentPropsWithoutRef<typeof TrayBase.Content> &\n VariantProps<typeof TrayContentVariants> & {\n /** Accessible label for the tray (used when no visible `TrayTitle` is provided). */\n 'aria-label'?: string\n children?: ReactNode\n }\n\nexport const TrayContent = ({\n 'aria-label': ariaLabel,\n children,\n className,\n ref,\n size: sizeProp,\n ...props\n}: TrayContentProps & {\n ref?: Ref<HTMLDivElement>\n}) => {\n const { size: contextSize } = useTrayContext()\n const size = sizeProp ?? contextSize\n\n return (\n <TrayBase.Portal>\n <TrayOverlay />\n <TrayBase.Content\n aria-describedby={undefined}\n asChild\n className={cn(TrayContentVariants({ size }), className)}\n data-testid='spectral-tray-content'\n ref={ref}\n {...props}\n >\n <div>\n <TrayBase.Title className='sr-only'>{ariaLabel ?? 'Tray'}</TrayBase.Title>\n <div className='px-6 pb-6 pt-2.5 antialiased'>{children}</div>\n </div>\n </TrayBase.Content>\n </TrayBase.Portal>\n )\n}\nTrayContent.displayName = 'TrayContent'\n\nexport const TrayHeader = ({\n children,\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<'div'> & {\n ref?: Ref<HTMLDivElement>\n}) => (\n <div\n className={cn('gap-1.5 pb-4 relative flex flex-col text-start', className)}\n data-testid='spectral-tray-header'\n ref={ref}\n {...props}\n >\n {children}\n <TrayClose className='text-neutral-400 hover:text-neutral-100 p-1 top-0 absolute right-[-14px] z-10 cursor-pointer rounded-full transition-colors hover:scale-110 hover:bg-level-four'>\n <ButtonIcon\n icon={<CloseIcon />}\n label='Close tray'\n shape='circle'\n />\n </TrayClose>\n </div>\n)\nTrayHeader.displayName = 'TrayHeader'\n\nexport const TrayTitle = ({\n children,\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<'h2'> & {\n ref?: Ref<HTMLHeadingElement>\n}) => (\n <h2\n className={cn('text-xl font-semibold text-text-primary', className)}\n data-testid='spectral-tray-title'\n ref={ref}\n {...props}\n >\n {children}\n </h2>\n)\nTrayTitle.displayName = 'TrayTitle'\n\nexport const TraySubtitle = ({\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<'p'> & {\n ref?: Ref<HTMLParagraphElement>\n}) => (\n <p\n className={cn('text-sm text-text-secondary', className)}\n data-testid='spectral-tray-subtitle'\n ref={ref}\n {...props}\n />\n)\nTraySubtitle.displayName = 'TraySubtitle'\n\nexport type TrayBodyProps = ComponentPropsWithoutRef<'div'> & {\n animationKey?: string | number\n}\n\nexport const TrayBody = ({\n animationKey: keyProp,\n children,\n className,\n ref,\n ...props\n}: TrayBodyProps & {\n ref?: Ref<HTMLDivElement>\n}) => {\n const { animationKey: contextKey } = useTrayContext()\n const key = keyProp ?? contextKey\n\n return (\n <div\n ref={ref}\n data-testid='spectral-tray-body'\n className={cn(className)}\n {...props}\n >\n <AnimatePresence\n initial={false}\n mode='wait'\n custom={key}\n >\n <motion.div\n animate={{ opacity: 1, scale: 1, y: 0 }}\n exit={{ opacity: 0, scale: 0.96 }}\n initial={{ opacity: 0, scale: 0.96 }}\n key={key}\n transition={{\n duration: 0.2,\n ease: 'easeOut',\n }}\n >\n {children}\n </motion.div>\n </AnimatePresence>\n </div>\n )\n}\nTrayBody.displayName = 'TrayBody'\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tray.js","names":["TrayBase"],"sources":["../src/components/Tray/Tray.tsx"],"sourcesContent":["import { ButtonIcon } from '@components/ButtonIcon/ButtonIcon'\nimport { CloseIcon } from '@components/Icons'\nimport { cn } from '@utils/twUtils'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { AnimatePresence, motion } from 'motion/react'\nimport { createContext, useContext, useMemo, useRef, type ComponentPropsWithoutRef, type ReactNode, type Ref } from 'react'\nimport { Drawer as TrayBase } from 'vaul'\n\nconst TrayContentVariants = cva('bottom-4 rounded-2xl sm:max-md:max-w-full fixed left-1/2 z-10 w-full -translate-x-1/2 overflow-hidden bg-drawer-bg outline-none', {\n variants: {\n size: {\n sm: 'max-w-[400px]',\n md: 'max-w-[600px]',\n lg: 'max-w-[800px]',\n full: 'max-w-full',\n },\n },\n defaultVariants: {\n size: 'sm',\n },\n})\n\ninterface TrayContextValue {\n animationKey: string | number\n setAnimationKey: (key: string | number) => void\n size: 'sm' | 'md' | 'lg' | 'full'\n}\n\nconst TrayContext = createContext<TrayContextValue | undefined>(undefined)\n\nconst useTrayContext = () => {\n const context = useContext(TrayContext)\n if (!context) {\n throw new Error('Tray components must be used within Tray root')\n }\n return context\n}\n\nexport type TrayBaseProps = ComponentPropsWithoutRef<typeof TrayBase.Root> & {\n children?: ReactNode\n size?: 'sm' | 'md' | 'lg' | 'full'\n}\n\nexport const Tray = ({ children, size = 'sm', ...props }: TrayBaseProps) => {\n const animationKeyRef = useRef<string | number>('default')\n\n const contextValue = useMemo(\n () => ({\n animationKey: animationKeyRef.current,\n setAnimationKey: (key: string | number) => {\n animationKeyRef.current = key\n },\n size,\n }),\n [size],\n )\n\n return (\n <TrayContext.Provider value={contextValue}>\n <TrayBase.Root data-testid='spectral-tray' {...props}>\n {children}\n </TrayBase.Root>\n </TrayContext.Provider>\n )\n}\nTray.displayName = 'Tray'\n\nexport const TrayTrigger = ({\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<typeof TrayBase.Trigger> & {\n ref?: Ref<HTMLButtonElement>\n}) => <TrayBase.Trigger className={cn(className)} data-testid='spectral-tray-trigger' data-vaul-no-drag='' ref={ref} {...props} />\nTrayTrigger.displayName = 'TrayTrigger'\n\nexport const TrayClose = ({\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<typeof TrayBase.Close> & {\n ref?: Ref<HTMLButtonElement>\n}) => (\n <TrayBase.Close asChild className={cn(className)} data-testid='spectral-tray-close' data-vaul-no-drag='' ref={ref} {...props}>\n <CloseIcon />\n </TrayBase.Close>\n)\nTrayClose.displayName = 'TrayClose'\n\nconst TrayOverlay = ({\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<typeof TrayBase.Overlay> & {\n ref?: Ref<HTMLDivElement>\n}) => <TrayBase.Overlay className={cn('inset-0 fixed z-10 bg-overlay', className)} ref={ref} {...props} />\nTrayOverlay.displayName = 'TrayOverlay'\n\nexport type TrayContentProps = ComponentPropsWithoutRef<typeof TrayBase.Content> &\n VariantProps<typeof TrayContentVariants> & {\n /** Accessible label for the tray (used when no visible `TrayTitle` is provided). */\n 'aria-label'?: string\n children?: ReactNode\n }\n\nexport const TrayContent = ({\n 'aria-label': ariaLabel,\n children,\n className,\n ref,\n size: sizeProp,\n ...props\n}: TrayContentProps & {\n ref?: Ref<HTMLDivElement>\n}) => {\n const { size: contextSize } = useTrayContext()\n const size = sizeProp ?? contextSize\n\n return (\n <TrayBase.Portal>\n <TrayOverlay />\n <TrayBase.Content aria-describedby={undefined} asChild className={cn(TrayContentVariants({ size }), className)} data-testid='spectral-tray-content' ref={ref} {...props}>\n <div>\n <TrayBase.Title className='sr-only'>{ariaLabel ?? 'Tray'}</TrayBase.Title>\n <div className='px-6 pb-6 pt-2.5 antialiased'>\n {children}\n </div>\n </div>\n </TrayBase.Content>\n </TrayBase.Portal>\n )\n}\nTrayContent.displayName = 'TrayContent'\n\nexport const TrayHeader = ({\n children,\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<'div'> & {\n ref?: Ref<HTMLDivElement>\n}) => (\n <div className={cn('relative flex flex-col gap-1.5 pb-4 text-start', className)} data-testid='spectral-tray-header' ref={ref} {...props}>\n {children}\n <TrayClose className='text-neutral-400 hover:text-neutral-100 p-1 top-0 absolute right-[-14px] z-10 cursor-pointer rounded-full transition-colors hover:scale-110 hover:bg-level-four'>\n <ButtonIcon icon={<CloseIcon />} label='Close tray' shape='circle' />\n </TrayClose>\n </div>\n)\nTrayHeader.displayName = 'TrayHeader'\n\nexport const TrayTitle = ({\n children,\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<'h2'> & {\n ref?: Ref<HTMLHeadingElement>\n}) => (\n <h2 className={cn('text-xl font-semibold text-text-primary', className)} data-testid='spectral-tray-title' ref={ref} {...props}>\n {children}\n </h2>\n)\nTrayTitle.displayName = 'TrayTitle'\n\nexport const TraySubtitle = ({\n className,\n ref,\n ...props\n}: ComponentPropsWithoutRef<'p'> & {\n ref?: Ref<HTMLParagraphElement>\n}) => <p className={cn('text-sm text-text-secondary', className)} data-testid='spectral-tray-subtitle' ref={ref} {...props} />\nTraySubtitle.displayName = 'TraySubtitle'\n\nexport type TrayBodyProps = ComponentPropsWithoutRef<'div'> & {\n animationKey?: string | number\n}\n\nexport const TrayBody = ({\n animationKey: keyProp,\n children,\n className,\n ref,\n ...props\n}: TrayBodyProps & {\n ref?: Ref<HTMLDivElement>\n}) => {\n const { animationKey: contextKey } = useTrayContext()\n const key = keyProp ?? contextKey\n\n return (\n <div ref={ref} data-testid='spectral-tray-body' className={cn(className)} {...props}>\n <AnimatePresence initial={false} mode='wait' custom={key}>\n <motion.div\n animate={{ opacity: 1, scale: 1, y: 0 }}\n exit={{ opacity: 0, scale: 0.96 }}\n initial={{ opacity: 0, scale: 0.96 }}\n key={key}\n transition={{\n duration: 0.2,\n ease: 'easeOut',\n }}\n >\n {children}\n </motion.div>\n </AnimatePresence>\n </div>\n )\n}\nTrayBody.displayName = 'TrayBody'\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import { Button, ButtonProps } from "./Button.js";
7
7
  import { Separator, SeparatorProps } from "./Separator.js";
8
8
  import { ButtonGroup, ButtonGroupItem, ButtonGroupProps, ButtonGroupSeparator } from "./ButtonGroup.js";
9
9
  import { ButtonIcon, ButtonIconProps } from "./ButtonIcon.js";
10
+ import { ButtonIconSlideout, ButtonIconSlideoutProps } from "./ButtonIconSlideout.js";
10
11
  import { ErrorMessage, FormFieldMessageValue, WarningMessage } from "./FormFieldMessage.js";
11
12
  import { Checkbox, CheckboxProps } from "./Checkbox.js";
12
13
  import { Combobox, ComboboxOption, ComboboxProps } from "./Combobox.js";
@@ -128,4 +129,4 @@ import { useControllableState } from "./hooks/useControllableState.js";
128
129
  import { useUncontrolledState } from "./hooks/useUncontrolledState.js";
129
130
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./primitives/input-group.js";
130
131
  import { cn } from "./utils/twUtils.js";
131
- export { Accordion, type AccordionProps, AdjustmentsIcon, Alert, type AlertProps, AnalyzeIcon, AnnotationsIcon, ApprovedIcon, ArrowDownIcon, ArrowUpIcon, Avatar, type AvatarProps, Badge, type BadgeProps, BoxToolIcon, Button, ButtonGroup, ButtonGroupItem, type ButtonGroupProps, ButtonGroupSeparator, ButtonIcon, type ButtonIconProps, type ButtonProps, CalendarIcon, CheckCircleIcon, CheckSquareIcon, Checkbox, type CheckboxProps, CheckmarkIcon, ChevronDownIcon, ChevronUpIcon, ClockIcon, CloseCircleIcon, CloseIcon, Combobox, type ComboboxOption, type ComboboxProps, ControlGroupSelect, type ControlGroupSelectCaptionLayout, type ControlGroupSelectProps, Crosshairs2Icon, CrosshairsIcon, DashboardIcon, DataCard, type DataCardProps, DatabaseIcon, DateTimePicker, type DateTimePickerProps, DeleteIcon, Dialog, Drawer, type DrawerProps, DurationIcon, EditIcon, EmailIcon, EraserIcon, ErrorIcon, ErrorMessage, EyeClosedIcon, EyeClosedIcon2, EyeOpenIcon, FileDownloadIcon, type FormFieldMessageValue, GoToFirstIcon, GoToLastIcon, HarmonicCursorsIcon, HoverCard, HoverCardContent, type HoverCardProps, HoverCardTrigger, IconBase, InfoIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumeric, type InputNumericProps, InputOTP, type InputOTPBaseProps, type InputOTPProps, type InputProps, Kbd, KbdGroup, type KbdGroupProps, type KbdProps, type KbdSymbol, KeyboardIcon, Label, LabelIcon, type LabelProps, LassoIcon, LineToolIcon, LiveViewIcon, LoaderIcon, LocationIcon, LogoutIcon, MaximizeIcon, MeasureIcon, MenuDotsIcon, MenuIcon, MessagesIcon, MetadataIcon, MinimizeIcon, MinusIcon, MultiSelect, type MultiSelectProps, OntologyIcon, PanelIconClose, PanelIconOpen, PauseIcon, PlayIcon, PlusIcon, PolygonIcon, Popover, PopoverContent, type PopoverContentProps, PopoverTrigger, PrinterIcon, ProgressCheckIcon, RadioButton, RadioButtonGroup, RadioButtonGroupItem, type RadioButtonGroupItemProps, type RadioButtonGroupProps, type RadioButtonProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, ResetIcon, ReviewedIcon, ScissorsIcon, SearchIcon, Select, type SelectExtendedProps, type SelectProps, Separator, type SeparatorProps, SettingsIcon, Skeleton, Slider, type SliderProps, SortAscendingIcon, SortAtoZIcon, SortDescendingIcon, SortZtoAIcon, SparklesIcon, SpectralProvider, type SpectralProviderProps, StackIcon, StarIcon, SvgIdContext, Switch, type SwitchProps, SyncIcon, SyncOffIcon, Tabs, type TabsProps, Textarea, type TextareaProps, Toast, type ToastProps, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, ToggleGroupSplitMenuItem, type ToggleGroupSplitMenuItemProps, type ToggleProps, Tooltip, TooltipContent, TooltipTrigger, TrashIcon, Tray, type TrayBaseProps, type TrayBodyProps, type TrayContentProps, UndoIcon, UploadIcon, User2Icon, UserIcon, WarningIcon, WarningMessage, ZoomAllIcon, ZoomXIcon, ZoomYIcon, cn, toast, useAccordionAutoScroll, useControllableState, useUncontrolledState };
132
+ export { Accordion, type AccordionProps, AdjustmentsIcon, Alert, type AlertProps, AnalyzeIcon, AnnotationsIcon, ApprovedIcon, ArrowDownIcon, ArrowUpIcon, Avatar, type AvatarProps, Badge, type BadgeProps, BoxToolIcon, Button, ButtonGroup, ButtonGroupItem, type ButtonGroupProps, ButtonGroupSeparator, ButtonIcon, type ButtonIconProps, ButtonIconSlideout, type ButtonIconSlideoutProps, type ButtonProps, CalendarIcon, CheckCircleIcon, CheckSquareIcon, Checkbox, type CheckboxProps, CheckmarkIcon, ChevronDownIcon, ChevronUpIcon, ClockIcon, CloseCircleIcon, CloseIcon, Combobox, type ComboboxOption, type ComboboxProps, ControlGroupSelect, type ControlGroupSelectCaptionLayout, type ControlGroupSelectProps, Crosshairs2Icon, CrosshairsIcon, DashboardIcon, DataCard, type DataCardProps, DatabaseIcon, DateTimePicker, type DateTimePickerProps, DeleteIcon, Dialog, Drawer, type DrawerProps, DurationIcon, EditIcon, EmailIcon, EraserIcon, ErrorIcon, ErrorMessage, EyeClosedIcon, EyeClosedIcon2, EyeOpenIcon, FileDownloadIcon, type FormFieldMessageValue, GoToFirstIcon, GoToLastIcon, HarmonicCursorsIcon, HoverCard, HoverCardContent, type HoverCardProps, HoverCardTrigger, IconBase, InfoIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumeric, type InputNumericProps, InputOTP, type InputOTPBaseProps, type InputOTPProps, type InputProps, Kbd, KbdGroup, type KbdGroupProps, type KbdProps, type KbdSymbol, KeyboardIcon, Label, LabelIcon, type LabelProps, LassoIcon, LineToolIcon, LiveViewIcon, LoaderIcon, LocationIcon, LogoutIcon, MaximizeIcon, MeasureIcon, MenuDotsIcon, MenuIcon, MessagesIcon, MetadataIcon, MinimizeIcon, MinusIcon, MultiSelect, type MultiSelectProps, OntologyIcon, PanelIconClose, PanelIconOpen, PauseIcon, PlayIcon, PlusIcon, PolygonIcon, Popover, PopoverContent, type PopoverContentProps, PopoverTrigger, PrinterIcon, ProgressCheckIcon, RadioButton, RadioButtonGroup, RadioButtonGroupItem, type RadioButtonGroupItemProps, type RadioButtonGroupProps, type RadioButtonProps, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, ResetIcon, ReviewedIcon, ScissorsIcon, SearchIcon, Select, type SelectExtendedProps, type SelectProps, Separator, type SeparatorProps, SettingsIcon, Skeleton, Slider, type SliderProps, SortAscendingIcon, SortAtoZIcon, SortDescendingIcon, SortZtoAIcon, SparklesIcon, SpectralProvider, type SpectralProviderProps, StackIcon, StarIcon, SvgIdContext, Switch, type SwitchProps, SyncIcon, SyncOffIcon, Tabs, type TabsProps, Textarea, type TextareaProps, Toast, type ToastProps, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, ToggleGroupSplitMenuItem, type ToggleGroupSplitMenuItemProps, type ToggleProps, Tooltip, TooltipContent, TooltipTrigger, TrashIcon, Tray, type TrayBaseProps, type TrayBodyProps, type TrayContentProps, UndoIcon, UploadIcon, User2Icon, UserIcon, WarningIcon, WarningMessage, ZoomAllIcon, ZoomXIcon, ZoomYIcon, cn, toast, useAccordionAutoScroll, useControllableState, useUncontrolledState };
package/dist/index.js CHANGED
@@ -92,6 +92,8 @@ import { Button } from "./Button.js";
92
92
  import { Separator } from "./Separator.js";
93
93
  import { ButtonGroup, ButtonGroupItem, ButtonGroupSeparator } from "./ButtonGroup.js";
94
94
  import { ButtonIcon } from "./ButtonIcon.js";
95
+ import { useControllableState } from "./hooks/useControllableState.js";
96
+ import { ButtonIconSlideout } from "./ButtonIconSlideout.js";
95
97
  import { ErrorMessage, WarningMessage } from "./FormFieldMessage.js";
96
98
  import { useUncontrolledState } from "./hooks/useUncontrolledState.js";
97
99
  import { Checkbox } from "./Checkbox.js";
@@ -127,6 +129,5 @@ import { ToggleGroupSplitMenuItem } from "./ToggleGroup/ToggleGroupSplitMenuItem
127
129
  import { ToggleGroup } from "./ToggleGroup.js";
128
130
  import { Tooltip, TooltipContent, TooltipTrigger } from "./Tooltip.js";
129
131
  import { Tray } from "./Tray.js";
130
- import { useControllableState } from "./hooks/useControllableState.js";
131
132
 
132
- export { Accordion, AdjustmentsIcon, Alert, AnalyzeIcon, AnnotationsIcon, ApprovedIcon, ArrowDownIcon, ArrowUpIcon, Avatar, Badge, BoxToolIcon, Button, ButtonGroup, ButtonGroupItem, ButtonGroupSeparator, ButtonIcon, CalendarIcon, CheckCircleIcon, CheckSquareIcon, Checkbox, CheckmarkIcon, ChevronDownIcon, ChevronUpIcon, ClockIcon, CloseCircleIcon, CloseIcon, Combobox, ControlGroupSelect, Crosshairs2Icon, CrosshairsIcon, DashboardIcon, DataCard, DatabaseIcon, DateTimePicker, DeleteIcon, Dialog, Drawer, DurationIcon, EditIcon, EmailIcon, EraserIcon, ErrorIcon, ErrorMessage, EyeClosedIcon, EyeClosedIcon2, EyeOpenIcon, FileDownloadIcon, GoToFirstIcon, GoToLastIcon, HarmonicCursorsIcon, HoverCard, HoverCardContent, HoverCardTrigger, IconBase, InfoIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumeric, InputOTP, Kbd, KbdGroup, KeyboardIcon, Label, LabelIcon, LassoIcon, LineToolIcon, LiveViewIcon, LoaderIcon, LocationIcon, LogoutIcon, MaximizeIcon, MeasureIcon, MenuDotsIcon, MenuIcon, MessagesIcon, MetadataIcon, MinimizeIcon, MinusIcon, MultiSelect, OntologyIcon, PanelIconClose, PanelIconOpen, PauseIcon, PlayIcon, PlusIcon, PolygonIcon, Popover, PopoverContent, PopoverTrigger, PrinterIcon, ProgressCheckIcon, RadioButton, RadioButtonGroup, RadioButtonGroupItem, RadioGroup, RadioGroupItem, ResetIcon, ReviewedIcon, ScissorsIcon, SearchIcon, Select, Separator, SettingsIcon, Skeleton, Slider, SortAscendingIcon, SortAtoZIcon, SortDescendingIcon, SortZtoAIcon, SparklesIcon, SpectralProvider, StackIcon, StarIcon, SvgIdContext, Switch, SyncIcon, SyncOffIcon, Tabs, Textarea, Toast, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupSplitMenuItem, Tooltip, TooltipContent, TooltipTrigger, TrashIcon, Tray, UndoIcon, UploadIcon, User2Icon, UserIcon, WarningIcon, WarningMessage, ZoomAllIcon, ZoomXIcon, ZoomYIcon, cn, toast, useAccordionAutoScroll, useControllableState, useUncontrolledState };
133
+ export { Accordion, AdjustmentsIcon, Alert, AnalyzeIcon, AnnotationsIcon, ApprovedIcon, ArrowDownIcon, ArrowUpIcon, Avatar, Badge, BoxToolIcon, Button, ButtonGroup, ButtonGroupItem, ButtonGroupSeparator, ButtonIcon, ButtonIconSlideout, CalendarIcon, CheckCircleIcon, CheckSquareIcon, Checkbox, CheckmarkIcon, ChevronDownIcon, ChevronUpIcon, ClockIcon, CloseCircleIcon, CloseIcon, Combobox, ControlGroupSelect, Crosshairs2Icon, CrosshairsIcon, DashboardIcon, DataCard, DatabaseIcon, DateTimePicker, DeleteIcon, Dialog, Drawer, DurationIcon, EditIcon, EmailIcon, EraserIcon, ErrorIcon, ErrorMessage, EyeClosedIcon, EyeClosedIcon2, EyeOpenIcon, FileDownloadIcon, GoToFirstIcon, GoToLastIcon, HarmonicCursorsIcon, HoverCard, HoverCardContent, HoverCardTrigger, IconBase, InfoIcon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumeric, InputOTP, Kbd, KbdGroup, KeyboardIcon, Label, LabelIcon, LassoIcon, LineToolIcon, LiveViewIcon, LoaderIcon, LocationIcon, LogoutIcon, MaximizeIcon, MeasureIcon, MenuDotsIcon, MenuIcon, MessagesIcon, MetadataIcon, MinimizeIcon, MinusIcon, MultiSelect, OntologyIcon, PanelIconClose, PanelIconOpen, PauseIcon, PlayIcon, PlusIcon, PolygonIcon, Popover, PopoverContent, PopoverTrigger, PrinterIcon, ProgressCheckIcon, RadioButton, RadioButtonGroup, RadioButtonGroupItem, RadioGroup, RadioGroupItem, ResetIcon, ReviewedIcon, ScissorsIcon, SearchIcon, Select, Separator, SettingsIcon, Skeleton, Slider, SortAscendingIcon, SortAtoZIcon, SortDescendingIcon, SortZtoAIcon, SparklesIcon, SpectralProvider, StackIcon, StarIcon, SvgIdContext, Switch, SyncIcon, SyncOffIcon, Tabs, Textarea, Toast, Toggle, ToggleGroup, ToggleGroupItem, ToggleGroupSplitMenuItem, Tooltip, TooltipContent, TooltipTrigger, TrashIcon, Tray, UndoIcon, UploadIcon, User2Icon, UserIcon, WarningIcon, WarningMessage, ZoomAllIcon, ZoomXIcon, ZoomYIcon, cn, toast, useAccordionAutoScroll, useControllableState, useUncontrolledState };
@@ -82,16 +82,16 @@
82
82
  box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.10) inset, 0 20px 40px 0 rgba(0, 0, 0, 0.25), 0 15px 30px 0 rgba(0, 0, 0, 0.15), 0 5px 10px 0 rgba(0, 0, 0, 0.05);
83
83
  }
84
84
 
85
- .tooltip-effects {
86
- box-shadow: 3px 3px 6px 3px rgba(0,0,0,0.3);
87
- }
88
-
89
- .map-card-effects {
90
- background: var(--color-background);
85
+ .card-effects-dark {
86
+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.00) 52%), rgba(38, 38, 38, 0.57);
91
87
  backdrop-filter: blur(12px);
92
- border: 0.5px solid rgba(255, 255, 255, 0.05);
88
+ border: 0.5px solid rgba(255, 255, 255, 0.06);
93
89
  border-radius: 1rem;
94
- box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.10) inset, 0 20px 40px 0 rgba(0, 0, 0, 0.25), 0 15px 30px 0 rgba(0, 0, 0, 0.15), 0 5px 10px 0 rgba(0, 0, 0, 0.05);
90
+ box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.03) inset, 0 -1px 0 0 rgba(0, 0, 0, 0.22) inset, 0 22px 44px -8px rgba(0, 0, 0, 0.34), 0 10px 20px -8px rgba(0, 0, 0, 0.24);
91
+ }
92
+
93
+ .tooltip-effects {
94
+ box-shadow: 3px 3px 6px 3px rgba(0,0,0,0.3);
95
95
  }
96
96
 
97
97
  @supports not (backdrop-filter: blur(0)) {
@@ -100,6 +100,11 @@
100
100
  /* Fallback: slightly opaque fill to hint depth without blur */
101
101
  background-color: hsla(240, 4%, 14%, 0.6);
102
102
  }
103
+
104
+ .card-effects-dark {
105
+ /* Fallback tuned for level-zero dark surfaces */
106
+ background-color: hsla(240, 4%, 16%, 0.72);
107
+ }
103
108
  }
104
109
 
105
110
  /* DatePicker styles */