@neut/ui 0.0.17 → 0.0.18

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 (707) hide show
  1. package/dist/components/accordion/Accordion/Accordion.js +3 -0
  2. package/dist/components/accordion/Accordion/Accordion.js.map +1 -1
  3. package/dist/components/accordion/AccordionContent/AccordionContent.js +27 -21
  4. package/dist/components/accordion/AccordionContent/AccordionContent.js.map +1 -1
  5. package/dist/components/accordion/AccordionItem/AccordionItem.js +3 -0
  6. package/dist/components/accordion/AccordionItem/AccordionItem.js.map +1 -1
  7. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js +19 -18
  8. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js.map +1 -1
  9. package/dist/components/alert/Alert/Alert.js +8 -3
  10. package/dist/components/alert/Alert/Alert.js.map +1 -1
  11. package/dist/components/alert/AlertAction/AlertAction.js +8 -3
  12. package/dist/components/alert/AlertAction/AlertAction.js.map +1 -1
  13. package/dist/components/alert/AlertDescription/AlertDescription.js +8 -3
  14. package/dist/components/alert/AlertDescription/AlertDescription.js.map +1 -1
  15. package/dist/components/alert/AlertTitle/AlertTitle.js +8 -3
  16. package/dist/components/alert/AlertTitle/AlertTitle.js.map +1 -1
  17. package/dist/components/alert-dialog/AlertDialog/AlertDialog.d.ts +3 -1
  18. package/dist/components/alert-dialog/AlertDialog/AlertDialog.js +6 -1
  19. package/dist/components/alert-dialog/AlertDialog/AlertDialog.js.map +1 -1
  20. package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js +9 -7
  21. package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js.map +1 -1
  22. package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.types.d.ts +9 -3
  23. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js +8 -3
  24. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js.map +1 -1
  25. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js +8 -3
  26. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js.map +1 -1
  27. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js +8 -3
  28. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js.map +1 -1
  29. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js +8 -3
  30. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js.map +1 -1
  31. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js +8 -3
  32. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js.map +1 -1
  33. package/dist/components/aspect-ratio/AspectRatio.js +3 -0
  34. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  35. package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js +15 -7
  36. package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js.map +1 -1
  37. package/dist/components/avatar/Avatar/Avatar.context.d.ts +7 -0
  38. package/dist/components/avatar/Avatar/Avatar.context.js +1 -1
  39. package/dist/components/avatar/Avatar/Avatar.context.js.map +1 -1
  40. package/dist/components/avatar/Avatar/Avatar.js +7 -2
  41. package/dist/components/avatar/Avatar/Avatar.js.map +1 -1
  42. package/dist/components/avatar/AvatarBadge/AvatarBadge.js +8 -3
  43. package/dist/components/avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  44. package/dist/components/avatar/AvatarFallback/AvatarFallback.js +10 -5
  45. package/dist/components/avatar/AvatarFallback/AvatarFallback.js.map +1 -1
  46. package/dist/components/avatar/AvatarGroup/AvatarGroup.js +8 -3
  47. package/dist/components/avatar/AvatarGroup/AvatarGroup.js.map +1 -1
  48. package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js +8 -3
  49. package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js.map +1 -1
  50. package/dist/components/avatar/AvatarImage/AvatarImage.js +19 -12
  51. package/dist/components/avatar/AvatarImage/AvatarImage.js.map +1 -1
  52. package/dist/components/badge/Badge.js +9 -4
  53. package/dist/components/badge/Badge.js.map +1 -1
  54. package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js +8 -3
  55. package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js.map +1 -1
  56. package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js +8 -3
  57. package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
  58. package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js +3 -0
  59. package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js.map +1 -1
  60. package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js +8 -3
  61. package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js.map +1 -1
  62. package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js +8 -3
  63. package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js.map +1 -1
  64. package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js +8 -3
  65. package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js.map +1 -1
  66. package/dist/components/bubble/BubbleContent/BubbleContent.js +21 -10
  67. package/dist/components/bubble/BubbleContent/BubbleContent.js.map +1 -1
  68. package/dist/components/button/Button.js +3 -0
  69. package/dist/components/button/Button.js.map +1 -1
  70. package/dist/components/button-group/ButtonGroup/ButtonGroup.js +3 -0
  71. package/dist/components/button-group/ButtonGroup/ButtonGroup.js.map +1 -1
  72. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js +16 -7
  73. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js.map +1 -1
  74. package/dist/components/calendar/Calendar/Calendar.d.ts +2 -3
  75. package/dist/components/calendar/Calendar/Calendar.js +89 -264
  76. package/dist/components/calendar/Calendar/Calendar.js.map +1 -1
  77. package/dist/components/calendar/Calendar/Calendar.options.d.ts +43 -0
  78. package/dist/components/calendar/Calendar/Calendar.options.js +38 -0
  79. package/dist/components/calendar/Calendar/Calendar.options.js.map +1 -0
  80. package/dist/components/calendar/Calendar/Calendar.selection.d.ts +16 -0
  81. package/dist/components/calendar/Calendar/Calendar.selection.js +50 -0
  82. package/dist/components/calendar/Calendar/Calendar.selection.js.map +1 -0
  83. package/dist/components/calendar/Calendar/Calendar.styles.d.ts +8 -0
  84. package/dist/components/calendar/Calendar/Calendar.styles.js +32 -0
  85. package/dist/components/calendar/Calendar/Calendar.styles.js.map +1 -0
  86. package/dist/components/calendar/Calendar/Calendar.utils.d.ts +3 -1
  87. package/dist/components/calendar/Calendar/Calendar.utils.js +4 -1
  88. package/dist/components/calendar/Calendar/Calendar.utils.js.map +1 -1
  89. package/dist/components/calendar/Calendar/CalendarDay.d.ts +28 -0
  90. package/dist/components/calendar/Calendar/CalendarDay.js +41 -0
  91. package/dist/components/calendar/Calendar/CalendarDay.js.map +1 -0
  92. package/dist/components/calendar/Calendar/CalendarMonth.d.ts +35 -0
  93. package/dist/components/calendar/Calendar/CalendarMonth.js +127 -0
  94. package/dist/components/calendar/Calendar/CalendarMonth.js.map +1 -0
  95. package/dist/components/calendar/Calendar/CalendarMonthCaption.d.ts +22 -0
  96. package/dist/components/calendar/Calendar/CalendarMonthCaption.js +103 -0
  97. package/dist/components/calendar/Calendar/CalendarMonthCaption.js.map +1 -0
  98. package/dist/components/calendar/index.js +3 -2
  99. package/dist/components/card/Card/Card.js +3 -0
  100. package/dist/components/card/Card/Card.js.map +1 -1
  101. package/dist/components/card/CardAction/CardAction.js +8 -3
  102. package/dist/components/card/CardAction/CardAction.js.map +1 -1
  103. package/dist/components/card/CardContent/CardContent.js +8 -3
  104. package/dist/components/card/CardContent/CardContent.js.map +1 -1
  105. package/dist/components/card/CardDescription/CardDescription.js +8 -3
  106. package/dist/components/card/CardDescription/CardDescription.js.map +1 -1
  107. package/dist/components/card/CardFooter/CardFooter.js +8 -3
  108. package/dist/components/card/CardFooter/CardFooter.js.map +1 -1
  109. package/dist/components/card/CardHeader/CardHeader.js +8 -3
  110. package/dist/components/card/CardHeader/CardHeader.js.map +1 -1
  111. package/dist/components/card/CardTitle/CardTitle.js +8 -3
  112. package/dist/components/card/CardTitle/CardTitle.js.map +1 -1
  113. package/dist/components/carousel/Carousel/Carousel.context.js +1 -1
  114. package/dist/components/carousel/Carousel/Carousel.context.js.map +1 -1
  115. package/dist/components/carousel/Carousel/Carousel.js +19 -12
  116. package/dist/components/carousel/Carousel/Carousel.js.map +1 -1
  117. package/dist/components/carousel/Carousel/useKeyboardNavigation.d.ts +11 -1
  118. package/dist/components/carousel/Carousel/useKeyboardNavigation.js +5 -4
  119. package/dist/components/carousel/Carousel/useKeyboardNavigation.js.map +1 -1
  120. package/dist/components/carousel/CarouselContent/CarouselContent.js +8 -3
  121. package/dist/components/carousel/CarouselContent/CarouselContent.js.map +1 -1
  122. package/dist/components/carousel/CarouselNext/CarouselNext.js +29 -16
  123. package/dist/components/carousel/CarouselNext/CarouselNext.js.map +1 -1
  124. package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js +29 -16
  125. package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js.map +1 -1
  126. package/dist/components/checkbox/Checkbox/Checkbox.js +32 -25
  127. package/dist/components/checkbox/Checkbox/Checkbox.js.map +1 -1
  128. package/dist/components/collapsible/Collapsible/Collapsible.context.js +1 -1
  129. package/dist/components/collapsible/Collapsible/Collapsible.context.js.map +1 -1
  130. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js +13 -12
  131. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js.map +1 -1
  132. package/dist/components/combobox/Combobox/Combobox.js +52 -52
  133. package/dist/components/combobox/Combobox/Combobox.js.map +1 -1
  134. package/dist/components/combobox/Combobox/Combobox.types.d.ts +15 -6
  135. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js +7 -3
  136. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js.map +1 -1
  137. package/dist/components/combobox/ComboboxClear/ComboboxClear.js +1 -1
  138. package/dist/components/combobox/ComboboxClear/ComboboxClear.js.map +1 -1
  139. package/dist/components/combobox/ComboboxInput/ComboboxInput.js +26 -10
  140. package/dist/components/combobox/ComboboxInput/ComboboxInput.js.map +1 -1
  141. package/dist/components/combobox/ComboboxItem/ComboboxItem.js +6 -5
  142. package/dist/components/combobox/ComboboxItem/ComboboxItem.js.map +1 -1
  143. package/dist/components/combobox/ComboboxList/ComboboxList.js +17 -11
  144. package/dist/components/combobox/ComboboxList/ComboboxList.js.map +1 -1
  145. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js +8 -1
  146. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js.map +1 -1
  147. package/dist/components/context-menu/ContextMenu/ContextMenu.js +10 -8
  148. package/dist/components/context-menu/ContextMenu/ContextMenu.js.map +1 -1
  149. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.d.ts +33 -0
  150. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.js +41 -0
  151. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.js.map +1 -0
  152. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.d.ts +25 -0
  153. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.js +20 -0
  154. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.js.map +1 -0
  155. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.d.ts +31 -0
  156. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.js +39 -0
  157. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.js.map +1 -0
  158. package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js +70 -136
  159. package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js.map +1 -1
  160. package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js +2 -1
  161. package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js.map +1 -1
  162. package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js +20 -10
  163. package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js.map +1 -1
  164. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.d.ts +24 -0
  165. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.js +26 -0
  166. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.js.map +1 -0
  167. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.d.ts +35 -0
  168. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.js +17 -0
  169. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.js.map +1 -0
  170. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.d.ts +9 -11
  171. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js +36 -33
  172. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js.map +1 -1
  173. package/dist/components/context-menu/context-menu.keyboard.d.ts +29 -0
  174. package/dist/components/context-menu/context-menu.keyboard.js +52 -0
  175. package/dist/components/context-menu/context-menu.keyboard.js.map +1 -0
  176. package/dist/components/context-menu/context-menu.typeahead.d.ts +27 -0
  177. package/dist/components/context-menu/context-menu.typeahead.js +19 -0
  178. package/dist/components/context-menu/context-menu.typeahead.js.map +1 -0
  179. package/dist/components/context-menu/context-menu.utils.d.ts +5 -2
  180. package/dist/components/context-menu/context-menu.utils.js +17 -39
  181. package/dist/components/context-menu/context-menu.utils.js.map +1 -1
  182. package/dist/components/date-picker/DatePicker/DatePicker.js +6 -0
  183. package/dist/components/date-picker/DatePicker/DatePicker.js.map +1 -1
  184. package/dist/components/dialog/Dialog/Dialog.context.js +1 -1
  185. package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
  186. package/dist/components/dialog/Dialog/Dialog.js +24 -15
  187. package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
  188. package/dist/components/dialog/Dialog/Dialog.types.d.ts +5 -0
  189. package/dist/components/dialog/DialogClose/DialogClose.js +20 -19
  190. package/dist/components/dialog/DialogClose/DialogClose.js.map +1 -1
  191. package/dist/components/dialog/DialogContent/DialogContent.context.js +1 -1
  192. package/dist/components/dialog/DialogContent/DialogContent.context.js.map +1 -1
  193. package/dist/components/dialog/DialogDescription/DialogDescription.js +8 -3
  194. package/dist/components/dialog/DialogDescription/DialogDescription.js.map +1 -1
  195. package/dist/components/dialog/DialogFooter/DialogFooter.js +8 -3
  196. package/dist/components/dialog/DialogFooter/DialogFooter.js.map +1 -1
  197. package/dist/components/dialog/DialogHeader/DialogHeader.js +8 -3
  198. package/dist/components/dialog/DialogHeader/DialogHeader.js.map +1 -1
  199. package/dist/components/dialog/DialogOverlay/DialogOverlay.js +3 -0
  200. package/dist/components/dialog/DialogOverlay/DialogOverlay.js.map +1 -1
  201. package/dist/components/dialog/DialogSurface/DialogSurface.js +34 -26
  202. package/dist/components/dialog/DialogSurface/DialogSurface.js.map +1 -1
  203. package/dist/components/dialog/DialogTitle/DialogTitle.js +8 -3
  204. package/dist/components/dialog/DialogTitle/DialogTitle.js.map +1 -1
  205. package/dist/components/drawer/Drawer/Drawer.js +1 -1
  206. package/dist/components/drawer/Drawer/Drawer.js.map +1 -1
  207. package/dist/components/drawer/Drawer/create-change-event-details.js +4 -20
  208. package/dist/components/drawer/Drawer/create-change-event-details.js.map +1 -1
  209. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.d.ts +32 -0
  210. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.js +36 -0
  211. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.js.map +1 -0
  212. package/dist/components/drawer/DrawerContent/useDrawerSwipe.d.ts +3 -0
  213. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js +22 -42
  214. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js.map +1 -1
  215. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js +1 -1
  216. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js.map +1 -1
  217. package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js +7 -7
  218. package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js.map +1 -1
  219. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.d.ts +7 -1
  220. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js +10 -10
  221. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js.map +1 -1
  222. package/dist/components/field/Field/Field.js +3 -0
  223. package/dist/components/field/Field/Field.js.map +1 -1
  224. package/dist/components/field/FieldContent/FieldContent.js +8 -3
  225. package/dist/components/field/FieldContent/FieldContent.js.map +1 -1
  226. package/dist/components/field/FieldDescription/FieldDescription.js +8 -3
  227. package/dist/components/field/FieldDescription/FieldDescription.js.map +1 -1
  228. package/dist/components/field/FieldError/FieldError.js +8 -3
  229. package/dist/components/field/FieldError/FieldError.js.map +1 -1
  230. package/dist/components/field/FieldGroup/FieldGroup.js +8 -3
  231. package/dist/components/field/FieldGroup/FieldGroup.js.map +1 -1
  232. package/dist/components/field/FieldLabel/FieldLabel.js +3 -0
  233. package/dist/components/field/FieldLabel/FieldLabel.js.map +1 -1
  234. package/dist/components/field/FieldLegend/FieldLegend.js +3 -0
  235. package/dist/components/field/FieldLegend/FieldLegend.js.map +1 -1
  236. package/dist/components/field/FieldSeparator/FieldSeparator.js +3 -0
  237. package/dist/components/field/FieldSeparator/FieldSeparator.js.map +1 -1
  238. package/dist/components/field/FieldSet/FieldSet.js +8 -3
  239. package/dist/components/field/FieldSet/FieldSet.js.map +1 -1
  240. package/dist/components/field/FieldTitle/FieldTitle.js +8 -3
  241. package/dist/components/field/FieldTitle/FieldTitle.js.map +1 -1
  242. package/dist/components/image/Image.utils.d.ts +14 -16
  243. package/dist/components/image/Image.utils.js +146 -190
  244. package/dist/components/image/Image.utils.js.map +1 -1
  245. package/dist/components/image/ImageElement.js +31 -27
  246. package/dist/components/image/ImageElement.js.map +1 -1
  247. package/dist/components/image/lib/blur.d.ts +31 -0
  248. package/dist/components/image/lib/blur.js +24 -0
  249. package/dist/components/image/lib/blur.js.map +1 -0
  250. package/dist/components/image/lib/dev-checks.d.ts +52 -0
  251. package/dist/components/image/lib/handle-loading.d.ts +13 -0
  252. package/dist/components/image/lib/handle-loading.js +20 -0
  253. package/dist/components/image/lib/handle-loading.js.map +1 -0
  254. package/dist/components/image/lib/loader.d.ts +39 -0
  255. package/dist/components/image/lib/loader.js +57 -0
  256. package/dist/components/image/lib/loader.js.map +1 -0
  257. package/dist/components/image/lib/static-import.d.ts +14 -0
  258. package/dist/components/image/lib/static-import.js +17 -0
  259. package/dist/components/image/lib/static-import.js.map +1 -0
  260. package/dist/components/input-group/InputGroup/InputGroup.js +8 -3
  261. package/dist/components/input-group/InputGroup/InputGroup.js.map +1 -1
  262. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js +3 -0
  263. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js.map +1 -1
  264. package/dist/components/input-group/InputGroupButton/InputGroupButton.js +3 -0
  265. package/dist/components/input-group/InputGroupButton/InputGroupButton.js.map +1 -1
  266. package/dist/components/input-group/InputGroupInput/InputGroupInput.js +3 -0
  267. package/dist/components/input-group/InputGroupInput/InputGroupInput.js.map +1 -1
  268. package/dist/components/input-group/InputGroupText/InputGroupText.js +8 -3
  269. package/dist/components/input-group/InputGroupText/InputGroupText.js.map +1 -1
  270. package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js +3 -0
  271. package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js.map +1 -1
  272. package/dist/components/item/Item/Item.js +9 -0
  273. package/dist/components/item/Item/Item.js.map +1 -1
  274. package/dist/components/item/ItemActions/ItemActions.js +8 -3
  275. package/dist/components/item/ItemActions/ItemActions.js.map +1 -1
  276. package/dist/components/item/ItemContent/ItemContent.js +8 -3
  277. package/dist/components/item/ItemContent/ItemContent.js.map +1 -1
  278. package/dist/components/item/ItemDescription/ItemDescription.js +8 -3
  279. package/dist/components/item/ItemDescription/ItemDescription.js.map +1 -1
  280. package/dist/components/item/ItemFooter/ItemFooter.js +8 -3
  281. package/dist/components/item/ItemFooter/ItemFooter.js.map +1 -1
  282. package/dist/components/item/ItemGroup/ItemGroup.js +8 -3
  283. package/dist/components/item/ItemGroup/ItemGroup.js.map +1 -1
  284. package/dist/components/item/ItemHeader/ItemHeader.js +8 -3
  285. package/dist/components/item/ItemHeader/ItemHeader.js.map +1 -1
  286. package/dist/components/item/ItemMedia/ItemMedia.js +3 -0
  287. package/dist/components/item/ItemMedia/ItemMedia.js.map +1 -1
  288. package/dist/components/item/ItemSeparator/ItemSeparator.js +3 -0
  289. package/dist/components/item/ItemSeparator/ItemSeparator.js.map +1 -1
  290. package/dist/components/item/ItemTitle/ItemTitle.js +8 -3
  291. package/dist/components/item/ItemTitle/ItemTitle.js.map +1 -1
  292. package/dist/components/kbd/Kbd.js +16 -6
  293. package/dist/components/kbd/Kbd.js.map +1 -1
  294. package/dist/components/label/Label.js +3 -0
  295. package/dist/components/label/Label.js.map +1 -1
  296. package/dist/components/marker/Marker/Marker.styles.d.ts +1 -1
  297. package/dist/components/message-scroller/message-scroller.anchoring.d.ts +60 -0
  298. package/dist/components/message-scroller/message-scroller.anchoring.js +139 -0
  299. package/dist/components/message-scroller/message-scroller.anchoring.js.map +1 -0
  300. package/dist/components/message-scroller/message-scroller.anchors.d.ts +12 -0
  301. package/dist/components/message-scroller/message-scroller.anchors.js +23 -0
  302. package/dist/components/message-scroller/message-scroller.anchors.js.map +1 -0
  303. package/dist/components/message-scroller/message-scroller.commands.d.ts +43 -0
  304. package/dist/components/message-scroller/message-scroller.commands.js +51 -0
  305. package/dist/components/message-scroller/message-scroller.commands.js.map +1 -0
  306. package/dist/components/message-scroller/message-scroller.dom-measure.d.ts +29 -0
  307. package/dist/components/message-scroller/message-scroller.dom-measure.js +37 -0
  308. package/dist/components/message-scroller/message-scroller.dom-measure.js.map +1 -0
  309. package/dist/components/message-scroller/message-scroller.measure.d.ts +27 -0
  310. package/dist/components/message-scroller/message-scroller.measure.js +21 -0
  311. package/dist/components/message-scroller/message-scroller.measure.js.map +1 -0
  312. package/dist/components/message-scroller/message-scroller.scroll-state.d.ts +54 -0
  313. package/dist/components/message-scroller/message-scroller.scroll-state.js +74 -0
  314. package/dist/components/message-scroller/message-scroller.scroll-state.js.map +1 -0
  315. package/dist/components/message-scroller/message-scroller.scroll-target.d.ts +27 -0
  316. package/dist/components/message-scroller/message-scroller.scroll-target.js +33 -0
  317. package/dist/components/message-scroller/message-scroller.scroll-target.js.map +1 -0
  318. package/dist/components/message-scroller/message-scroller.utils.d.ts +7 -0
  319. package/dist/components/message-scroller/message-scroller.utils.js +3 -2
  320. package/dist/components/message-scroller/message-scroller.utils.js.map +1 -1
  321. package/dist/components/message-scroller/message-scroller.visibility.d.ts +43 -0
  322. package/dist/components/message-scroller/message-scroller.visibility.js +82 -0
  323. package/dist/components/message-scroller/message-scroller.visibility.js.map +1 -0
  324. package/dist/components/message-scroller/useMessageScrollerEngine.js +87 -337
  325. package/dist/components/message-scroller/useMessageScrollerEngine.js.map +1 -1
  326. package/dist/components/number-input/NumberInput/NumberInput.js +21 -19
  327. package/dist/components/number-input/NumberInput/NumberInput.js.map +1 -1
  328. package/dist/components/number-input/NumberInput/NumberInput.utils.d.ts +6 -2
  329. package/dist/components/number-input/NumberInput/NumberInput.utils.js +1 -3
  330. package/dist/components/number-input/NumberInput/NumberInput.utils.js.map +1 -1
  331. package/dist/components/number-input/NumberInput/create-change-event-details.d.ts +1 -2
  332. package/dist/components/number-input/NumberInput/create-change-event-details.js +4 -20
  333. package/dist/components/number-input/NumberInput/create-change-event-details.js.map +1 -1
  334. package/dist/components/pagination/Pagination/Pagination.js +8 -3
  335. package/dist/components/pagination/Pagination/Pagination.js.map +1 -1
  336. package/dist/components/pagination/PaginationContent/PaginationContent.js +8 -3
  337. package/dist/components/pagination/PaginationContent/PaginationContent.js.map +1 -1
  338. package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js +8 -3
  339. package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js.map +1 -1
  340. package/dist/components/pagination/PaginationLink/PaginationLink.js +3 -0
  341. package/dist/components/pagination/PaginationLink/PaginationLink.js.map +1 -1
  342. package/dist/components/pagination/PaginationNext/PaginationNext.js +3 -0
  343. package/dist/components/pagination/PaginationNext/PaginationNext.js.map +1 -1
  344. package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js +3 -0
  345. package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js.map +1 -1
  346. package/dist/components/popover/PopoverContent/PopoverContent.js +3 -0
  347. package/dist/components/popover/PopoverContent/PopoverContent.js.map +1 -1
  348. package/dist/components/progress/Progress/Progress.context.js +1 -1
  349. package/dist/components/progress/Progress/Progress.context.js.map +1 -1
  350. package/dist/components/progress/Progress/Progress.js +3 -0
  351. package/dist/components/progress/Progress/Progress.js.map +1 -1
  352. package/dist/components/progress/ProgressIndicator/ProgressIndicator.js +3 -0
  353. package/dist/components/progress/ProgressIndicator/ProgressIndicator.js.map +1 -1
  354. package/dist/components/progress/ProgressLabel/ProgressLabel.js +8 -3
  355. package/dist/components/progress/ProgressLabel/ProgressLabel.js.map +1 -1
  356. package/dist/components/progress/ProgressTrack/ProgressTrack.js +3 -0
  357. package/dist/components/progress/ProgressTrack/ProgressTrack.js.map +1 -1
  358. package/dist/components/progress/ProgressValue/ProgressValue.js +8 -3
  359. package/dist/components/progress/ProgressValue/ProgressValue.js.map +1 -1
  360. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.d.ts +48 -0
  361. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.js +23 -0
  362. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.js.map +1 -0
  363. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js +62 -49
  364. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js.map +1 -1
  365. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js +4 -1
  366. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js.map +1 -1
  367. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js +1 -2
  368. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js.map +1 -1
  369. package/dist/components/questionnaire/questionnaire.answers.d.ts +42 -0
  370. package/dist/components/questionnaire/questionnaire.answers.js +62 -0
  371. package/dist/components/questionnaire/questionnaire.answers.js.map +1 -0
  372. package/dist/components/questionnaire/questionnaire.aria.d.ts +34 -0
  373. package/dist/components/questionnaire/questionnaire.aria.js +28 -0
  374. package/dist/components/questionnaire/questionnaire.aria.js.map +1 -0
  375. package/dist/components/questionnaire/questionnaire.dom-watch.d.ts +9 -0
  376. package/dist/components/questionnaire/questionnaire.dom-watch.js +18 -0
  377. package/dist/components/questionnaire/questionnaire.dom-watch.js.map +1 -0
  378. package/dist/components/questionnaire/questionnaire.focus.d.ts +26 -0
  379. package/dist/components/questionnaire/questionnaire.focus.js +19 -0
  380. package/dist/components/questionnaire/questionnaire.focus.js.map +1 -0
  381. package/dist/components/questionnaire/questionnaire.item-view.d.ts +50 -0
  382. package/dist/components/questionnaire/questionnaire.item-view.js +36 -0
  383. package/dist/components/questionnaire/questionnaire.item-view.js.map +1 -0
  384. package/dist/components/questionnaire/questionnaire.keys.d.ts +29 -0
  385. package/dist/components/questionnaire/questionnaire.keys.js +34 -0
  386. package/dist/components/questionnaire/questionnaire.keys.js.map +1 -0
  387. package/dist/components/questionnaire/questionnaire.registry.d.ts +21 -0
  388. package/dist/components/questionnaire/questionnaire.registry.js +15 -0
  389. package/dist/components/questionnaire/questionnaire.registry.js.map +1 -0
  390. package/dist/components/questionnaire/questionnaire.shortcuts.d.ts +24 -0
  391. package/dist/components/questionnaire/questionnaire.shortcuts.js +31 -0
  392. package/dist/components/questionnaire/questionnaire.shortcuts.js.map +1 -0
  393. package/dist/components/questionnaire/questionnaire.utils.d.ts +17 -1
  394. package/dist/components/questionnaire/questionnaire.utils.js +5 -2
  395. package/dist/components/questionnaire/questionnaire.utils.js.map +1 -1
  396. package/dist/components/questionnaire/questionnaire.validation.d.ts +43 -0
  397. package/dist/components/questionnaire/questionnaire.validation.js +17 -0
  398. package/dist/components/questionnaire/questionnaire.validation.js.map +1 -0
  399. package/dist/components/questionnaire/useQuestionnaireItem.d.ts +0 -2
  400. package/dist/components/questionnaire/useQuestionnaireItem.js +83 -121
  401. package/dist/components/questionnaire/useQuestionnaireItem.js.map +1 -1
  402. package/dist/components/questionnaire/useQuestionnaireRoot.js +78 -99
  403. package/dist/components/questionnaire/useQuestionnaireRoot.js.map +1 -1
  404. package/dist/components/radio-group/RadioGroup/RadioGroup.js +3 -0
  405. package/dist/components/radio-group/RadioGroup/RadioGroup.js.map +1 -1
  406. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js +3 -0
  407. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js.map +1 -1
  408. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.d.ts +37 -0
  409. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.js +37 -0
  410. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.js.map +1 -0
  411. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.d.ts +24 -0
  412. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.js +36 -0
  413. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.js.map +1 -0
  414. package/dist/components/resizable/ResizableHandle/useResizableHandle.d.ts +3 -4
  415. package/dist/components/resizable/ResizableHandle/useResizableHandle.js +30 -63
  416. package/dist/components/resizable/ResizableHandle/useResizableHandle.js.map +1 -1
  417. package/dist/components/resizable/ResizablePanel/ResizablePanel.d.ts +4 -2
  418. package/dist/components/resizable/ResizablePanel/ResizablePanel.js +23 -50
  419. package/dist/components/resizable/ResizablePanel/ResizablePanel.js.map +1 -1
  420. package/dist/components/resizable/ResizablePanel/useResizablePanel.d.ts +30 -0
  421. package/dist/components/resizable/ResizablePanel/useResizablePanel.js +37 -0
  422. package/dist/components/resizable/ResizablePanel/useResizablePanel.js.map +1 -0
  423. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.d.ts +4 -1
  424. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js +10 -17
  425. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js.map +1 -1
  426. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.d.ts +11 -0
  427. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.js +17 -0
  428. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.js.map +1 -0
  429. package/dist/components/resizable/resizable.collapse.d.ts +27 -0
  430. package/dist/components/resizable/resizable.collapse.js +24 -0
  431. package/dist/components/resizable/resizable.collapse.js.map +1 -0
  432. package/dist/components/resizable/resizable.commands.d.ts +32 -0
  433. package/dist/components/resizable/resizable.commands.js +40 -0
  434. package/dist/components/resizable/resizable.commands.js.map +1 -0
  435. package/dist/components/resizable/resizable.constraints.d.ts +23 -0
  436. package/dist/components/resizable/resizable.constraints.js +32 -0
  437. package/dist/components/resizable/resizable.constraints.js.map +1 -0
  438. package/dist/components/resizable/resizable.lifecycle.d.ts +35 -0
  439. package/dist/components/resizable/resizable.lifecycle.js +32 -0
  440. package/dist/components/resizable/resizable.lifecycle.js.map +1 -0
  441. package/dist/components/resizable/resizable.registry.d.ts +31 -0
  442. package/dist/components/resizable/resizable.registry.js +38 -0
  443. package/dist/components/resizable/resizable.registry.js.map +1 -0
  444. package/dist/components/resizable/resizable.reporting.d.ts +36 -0
  445. package/dist/components/resizable/resizable.reporting.js +33 -0
  446. package/dist/components/resizable/resizable.reporting.js.map +1 -0
  447. package/dist/components/resizable/resizable.resize.d.ts +47 -0
  448. package/dist/components/resizable/resizable.resize.js +28 -0
  449. package/dist/components/resizable/resizable.resize.js.map +1 -0
  450. package/dist/components/resizable/resizable.sizes.d.ts +31 -0
  451. package/dist/components/resizable/resizable.sizes.js +46 -0
  452. package/dist/components/resizable/resizable.sizes.js.map +1 -0
  453. package/dist/components/resizable/resizable.storage.d.ts +17 -0
  454. package/dist/components/resizable/resizable.storage.js +29 -0
  455. package/dist/components/resizable/resizable.storage.js.map +1 -0
  456. package/dist/components/resizable/resizable.utils.d.ts +10 -3
  457. package/dist/components/resizable/resizable.utils.js +16 -10
  458. package/dist/components/resizable/resizable.utils.js.map +1 -1
  459. package/dist/components/resizable/useResizablePanelGroup.js +62 -164
  460. package/dist/components/resizable/useResizablePanelGroup.js.map +1 -1
  461. package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js +1 -1
  462. package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js.map +1 -1
  463. package/dist/components/scroll-area/ScrollArea/ScrollArea.d.ts +9 -0
  464. package/dist/components/scroll-area/ScrollArea/ScrollArea.js +28 -39
  465. package/dist/components/scroll-area/ScrollArea/ScrollArea.js.map +1 -1
  466. package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js +3 -3
  467. package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js.map +1 -1
  468. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.d.ts +22 -0
  469. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.js +34 -0
  470. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.js.map +1 -0
  471. package/dist/components/scroll-area/ScrollBar/ScrollBar.d.ts +8 -0
  472. package/dist/components/scroll-area/ScrollBar/ScrollBar.js +38 -71
  473. package/dist/components/scroll-area/ScrollBar/ScrollBar.js.map +1 -1
  474. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.d.ts +56 -0
  475. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.js +61 -0
  476. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.js.map +1 -0
  477. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.d.ts +25 -0
  478. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.js +26 -0
  479. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.js.map +1 -0
  480. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.d.ts +19 -0
  481. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.js +37 -0
  482. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.js.map +1 -0
  483. package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +5 -7
  484. package/dist/components/scroll-arrows/ScrollArrowButton.js +14 -44
  485. package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -1
  486. package/dist/components/scroll-arrows/ScrollArrows.d.ts +4 -3
  487. package/dist/components/scroll-arrows/ScrollArrows.js +16 -22
  488. package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -1
  489. package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +7 -7
  490. package/dist/components/scroll-arrows/useHoverScroll.d.ts +29 -0
  491. package/dist/components/scroll-arrows/useHoverScroll.js +39 -0
  492. package/dist/components/scroll-arrows/useHoverScroll.js.map +1 -0
  493. package/dist/components/select/SelectContent/useSelectContent.js +3 -3
  494. package/dist/components/select/SelectGroup/SelectGroup.d.ts +8 -2
  495. package/dist/components/select/SelectGroup/SelectGroup.js +20 -6
  496. package/dist/components/select/SelectGroup/SelectGroup.js.map +1 -1
  497. package/dist/components/select/SelectGroup/SelectGroup.types.d.ts +9 -0
  498. package/dist/components/select/SelectGroup/index.d.ts +1 -0
  499. package/dist/components/select/SelectTrigger/SelectTrigger.js.map +1 -1
  500. package/dist/components/select/SelectTrigger/useSelectTrigger.js +1 -1
  501. package/dist/components/select/SelectTrigger/useSelectTrigger.js.map +1 -1
  502. package/dist/components/separator/Separator.js +3 -0
  503. package/dist/components/separator/Separator.js.map +1 -1
  504. package/dist/components/sheet/SheetClose/SheetClose.js +18 -17
  505. package/dist/components/sheet/SheetClose/SheetClose.js.map +1 -1
  506. package/dist/components/sidebar/Sidebar/Sidebar.js +14 -6
  507. package/dist/components/sidebar/Sidebar/Sidebar.js.map +1 -1
  508. package/dist/components/sidebar/SidebarContent/SidebarContent.js +8 -3
  509. package/dist/components/sidebar/SidebarContent/SidebarContent.js.map +1 -1
  510. package/dist/components/sidebar/SidebarFooter/SidebarFooter.js +8 -3
  511. package/dist/components/sidebar/SidebarFooter/SidebarFooter.js.map +1 -1
  512. package/dist/components/sidebar/SidebarGroup/SidebarGroup.js +8 -3
  513. package/dist/components/sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
  514. package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js +3 -0
  515. package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js.map +1 -1
  516. package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js +8 -3
  517. package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js.map +1 -1
  518. package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js +3 -0
  519. package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js.map +1 -1
  520. package/dist/components/sidebar/SidebarHeader/SidebarHeader.js +8 -3
  521. package/dist/components/sidebar/SidebarHeader/SidebarHeader.js.map +1 -1
  522. package/dist/components/sidebar/SidebarInput/SidebarInput.js +3 -0
  523. package/dist/components/sidebar/SidebarInput/SidebarInput.js.map +1 -1
  524. package/dist/components/sidebar/SidebarInset/SidebarInset.js +8 -3
  525. package/dist/components/sidebar/SidebarInset/SidebarInset.js.map +1 -1
  526. package/dist/components/sidebar/SidebarMenu/SidebarMenu.js +8 -3
  527. package/dist/components/sidebar/SidebarMenu/SidebarMenu.js.map +1 -1
  528. package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js +8 -3
  529. package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js.map +1 -1
  530. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js +6 -0
  531. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js.map +1 -1
  532. package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js +8 -3
  533. package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js.map +1 -1
  534. package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js +8 -3
  535. package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js.map +1 -1
  536. package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js +8 -3
  537. package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js.map +1 -1
  538. package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js +3 -0
  539. package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js.map +1 -1
  540. package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js +8 -3
  541. package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js.map +1 -1
  542. package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js +1 -1
  543. package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js.map +1 -1
  544. package/dist/components/sidebar/SidebarProvider/SidebarProvider.js +30 -27
  545. package/dist/components/sidebar/SidebarProvider/SidebarProvider.js.map +1 -1
  546. package/dist/components/sidebar/SidebarProvider/useIsMobile.d.ts +10 -0
  547. package/dist/components/sidebar/SidebarProvider/useIsMobile.js +14 -0
  548. package/dist/components/sidebar/SidebarProvider/useIsMobile.js.map +1 -0
  549. package/dist/components/sidebar/SidebarRail/SidebarRail.js +8 -3
  550. package/dist/components/sidebar/SidebarRail/SidebarRail.js.map +1 -1
  551. package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js +3 -0
  552. package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js.map +1 -1
  553. package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js +3 -0
  554. package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js.map +1 -1
  555. package/dist/components/skeleton/Skeleton.js +8 -3
  556. package/dist/components/skeleton/Skeleton.js.map +1 -1
  557. package/dist/components/slider/Slider/Slider.context.js +1 -1
  558. package/dist/components/slider/Slider/Slider.context.js.map +1 -1
  559. package/dist/components/slider/Slider/Slider.js +3 -0
  560. package/dist/components/slider/Slider/Slider.js.map +1 -1
  561. package/dist/components/slider/SliderControl/SliderControl.js +4 -1
  562. package/dist/components/slider/SliderControl/SliderControl.js.map +1 -1
  563. package/dist/components/slider/SliderIndicator/SliderIndicator.js +3 -0
  564. package/dist/components/slider/SliderIndicator/SliderIndicator.js.map +1 -1
  565. package/dist/components/slider/SliderThumb/SliderThumb.js +18 -3
  566. package/dist/components/slider/SliderThumb/SliderThumb.js.map +1 -1
  567. package/dist/components/slider/SliderThumb/useSliderThumb.d.ts +1 -0
  568. package/dist/components/slider/SliderThumb/useSliderThumb.js +3 -2
  569. package/dist/components/slider/SliderThumb/useSliderThumb.js.map +1 -1
  570. package/dist/components/slider/SliderTrack/SliderTrack.js +3 -0
  571. package/dist/components/slider/SliderTrack/SliderTrack.js.map +1 -1
  572. package/dist/components/spinner/Spinner.js +3 -0
  573. package/dist/components/spinner/Spinner.js.map +1 -1
  574. package/dist/components/switch/Switch.js +7 -0
  575. package/dist/components/switch/Switch.js.map +1 -1
  576. package/dist/components/tabs/Tabs/Tabs.context.js +1 -1
  577. package/dist/components/tabs/Tabs/Tabs.context.js.map +1 -1
  578. package/dist/components/tabs/Tabs/useTabsKeyboard.d.ts +7 -11
  579. package/dist/components/tabs/Tabs/useTabsKeyboard.js +8 -42
  580. package/dist/components/tabs/Tabs/useTabsKeyboard.js.map +1 -1
  581. package/dist/components/tabs/TabsList/TabsList.context.js +1 -1
  582. package/dist/components/tabs/TabsList/TabsList.context.js.map +1 -1
  583. package/dist/components/tabs/TabsList/TabsList.js +10 -10
  584. package/dist/components/tabs/TabsList/TabsList.js.map +1 -1
  585. package/dist/components/tabs/TabsTrigger/TabsTrigger.js +8 -8
  586. package/dist/components/tabs/TabsTrigger/TabsTrigger.js.map +1 -1
  587. package/dist/components/textarea/Textarea.js +8 -3
  588. package/dist/components/textarea/Textarea.js.map +1 -1
  589. package/dist/components/time-picker/TimePicker/create-change-event-details.d.ts +1 -2
  590. package/dist/components/time-picker/TimePicker/create-change-event-details.js +4 -20
  591. package/dist/components/time-picker/TimePicker/create-change-event-details.js.map +1 -1
  592. package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js +1 -3
  593. package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js.map +1 -1
  594. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.d.ts +34 -0
  595. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.js +43 -0
  596. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.js.map +1 -0
  597. package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js +34 -59
  598. package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js.map +1 -1
  599. package/dist/components/toast/Toast/Toast.d.ts +8 -2
  600. package/dist/components/toast/Toast/Toast.js +92 -146
  601. package/dist/components/toast/Toast/Toast.js.map +1 -1
  602. package/dist/components/toast/Toast/Toast.types.d.ts +1 -1
  603. package/dist/components/toast/Toast/Toast.types.js.map +1 -1
  604. package/dist/components/toast/Toast/Toast.utils.d.ts +47 -0
  605. package/dist/components/toast/Toast/Toast.utils.js +47 -0
  606. package/dist/components/toast/Toast/Toast.utils.js.map +1 -0
  607. package/dist/components/toast/Toast/ToastActionButton.d.ts +16 -0
  608. package/dist/components/toast/Toast/ToastActionButton.js +27 -0
  609. package/dist/components/toast/Toast/ToastActionButton.js.map +1 -0
  610. package/dist/components/toast/Toast/ToastActions.d.ts +12 -0
  611. package/dist/components/toast/Toast/ToastActions.js +65 -0
  612. package/dist/components/toast/Toast/ToastActions.js.map +1 -0
  613. package/dist/components/toast/Toast/ToastCloseButton.d.ts +12 -0
  614. package/dist/components/toast/Toast/ToastCloseButton.js +26 -0
  615. package/dist/components/toast/Toast/ToastCloseButton.js.map +1 -0
  616. package/dist/components/toast/Toast/ToastContent.d.ts +8 -0
  617. package/dist/components/toast/Toast/ToastContent.js +30 -0
  618. package/dist/components/toast/Toast/ToastContent.js.map +1 -0
  619. package/dist/components/toast/Toast/ToastIcon.d.ts +14 -0
  620. package/dist/components/toast/Toast/ToastIcon.js +36 -0
  621. package/dist/components/toast/Toast/ToastIcon.js.map +1 -0
  622. package/dist/components/toast/Toast/useToastLifecycle.d.ts +29 -0
  623. package/dist/components/toast/Toast/useToastLifecycle.js +30 -0
  624. package/dist/components/toast/Toast/useToastLifecycle.js.map +1 -0
  625. package/dist/components/toast/Toaster/ToastViewport.d.ts +33 -0
  626. package/dist/components/toast/Toaster/ToastViewport.js +73 -0
  627. package/dist/components/toast/Toaster/ToastViewport.js.map +1 -0
  628. package/dist/components/toast/Toaster/Toaster.d.ts +4 -0
  629. package/dist/components/toast/Toaster/Toaster.js +64 -82
  630. package/dist/components/toast/Toaster/Toaster.js.map +1 -1
  631. package/dist/components/toast/Toaster/Toaster.utils.d.ts +15 -0
  632. package/dist/components/toast/Toaster/Toaster.utils.js +4 -1
  633. package/dist/components/toast/Toaster/Toaster.utils.js.map +1 -1
  634. package/dist/components/toast/Toaster/useToaster.d.ts +28 -0
  635. package/dist/components/toast/Toaster/useToaster.js +26 -0
  636. package/dist/components/toast/Toaster/useToaster.js.map +1 -0
  637. package/dist/components/toast/index.js +4 -3
  638. package/dist/components/toast/state/promise-toast.d.ts +17 -0
  639. package/dist/components/toast/state/promise-toast.js +33 -0
  640. package/dist/components/toast/state/promise-toast.js.map +1 -0
  641. package/dist/components/toast/state/store.d.ts +21 -0
  642. package/dist/components/toast/state/store.js +45 -0
  643. package/dist/components/toast/state/store.js.map +1 -0
  644. package/dist/components/toast/state/toast.d.ts +9 -10
  645. package/dist/components/toast/state/toast.js +30 -89
  646. package/dist/components/toast/state/toast.js.map +1 -1
  647. package/dist/components/toggle/Toggle/Toggle.js +2 -1
  648. package/dist/components/toggle/Toggle/Toggle.js.map +1 -1
  649. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js +1 -1
  650. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -1
  651. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.d.ts +6 -2
  652. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js +4 -20
  653. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js.map +1 -1
  654. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.d.ts +7 -10
  655. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js +10 -40
  656. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js.map +1 -1
  657. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js +5 -5
  658. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -1
  659. package/dist/components/tooltip/TooltipContent/usePresence.d.ts +27 -0
  660. package/dist/components/tooltip/TooltipContent/usePresence.js +24 -0
  661. package/dist/components/tooltip/TooltipContent/usePresence.js.map +1 -0
  662. package/dist/components/tooltip/TooltipContent/useTooltipContent.js +22 -35
  663. package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
  664. package/dist/hooks/useFontLoader.js +1 -1
  665. package/dist/hooks/useFontLoader.js.map +1 -1
  666. package/dist/hooks/useScrollLock.js +13 -16
  667. package/dist/hooks/useScrollLock.js.map +1 -1
  668. package/dist/index.js +328 -320
  669. package/dist/lib/positioner/index.d.ts +1 -0
  670. package/dist/lib/positioner/utils/dom.d.ts +8 -0
  671. package/dist/lib/positioner/utils/dom.js +1 -1
  672. package/dist/lib/positioner/utils/dom.js.map +1 -1
  673. package/dist/types/props.types.d.ts +1 -1
  674. package/dist/ui.css +1 -1
  675. package/dist/utils/call-event-handler.d.ts +16 -0
  676. package/dist/utils/call-event-handler.js +15 -0
  677. package/dist/utils/call-event-handler.js.map +1 -0
  678. package/dist/utils/clsx.d.ts +1 -1
  679. package/dist/utils/clsx.js +2 -7
  680. package/dist/utils/create-change-event-details.d.ts +25 -0
  681. package/dist/utils/create-change-event-details.js +25 -0
  682. package/dist/utils/create-change-event-details.js.map +1 -0
  683. package/dist/utils/get-style.d.ts +7 -9
  684. package/dist/utils/get-style.js +16 -0
  685. package/dist/utils/get-style.js.map +1 -0
  686. package/dist/utils/index.d.ts +8 -0
  687. package/dist/utils/index.js +7 -1
  688. package/dist/utils/number.d.ts +7 -0
  689. package/dist/utils/number.js +8 -0
  690. package/dist/utils/number.js.map +1 -0
  691. package/dist/utils/roving-navigation.d.ts +64 -0
  692. package/dist/utils/roving-navigation.js +66 -0
  693. package/dist/utils/roving-navigation.js.map +1 -0
  694. package/dist/utils/string.d.ts +17 -0
  695. package/dist/utils/string.js +11 -0
  696. package/dist/utils/string.js.map +1 -0
  697. package/package.json +18 -7
  698. package/dist/components/carousel/Carousel/Carousel.utils.d.ts +0 -0
  699. package/dist/components/field/FieldError/useFieldError.d.ts +0 -0
  700. package/dist/components/hover-card/hover-card.utils.d.ts +0 -6
  701. package/dist/components/tabs/Tabs/call-event-handler.d.ts +0 -5
  702. package/dist/components/tabs/Tabs/call-event-handler.js +0 -9
  703. package/dist/components/tabs/Tabs/call-event-handler.js.map +0 -1
  704. package/dist/components/toggle-group/call-event-handler.d.ts +0 -5
  705. package/dist/components/toggle-group/call-event-handler.js +0 -9
  706. package/dist/components/toggle-group/call-event-handler.js.map +0 -1
  707. package/dist/utils/clsx.js.map +0 -1
@@ -1,26 +1,17 @@
1
1
  import { clsx as e } from "../../../utils/clsx.js";
2
- import { toastIconVariants as t, toastVariants as n } from "./Toast.styles.js";
3
- import { isAction as r } from "./Toast.types.js";
4
- import { className as i, createComponent as a, delegateEvents as o, effect as s, insert as c, memo as l, setAttribute as u, style as d, template as f } from "solid-js/web";
5
- import { Show as p, createEffect as m, createMemo as h, createSignal as g, onCleanup as _, onMount as v, splitProps as y } from "solid-js";
6
- import { CircleCheck as b, CircleX as x, Info as S, LoaderCircle as C, TriangleAlert as w, X as T } from "lucide-solid";
2
+ import { toastVariants as t } from "./Toast.styles.js";
3
+ import { getAnimationClasses as n, getToastStyle as r } from "./Toast.utils.js";
4
+ import { ToastActions as i } from "./ToastActions.js";
5
+ import { ToastCloseButton as a, isCloseButtonVisible as o } from "./ToastCloseButton.js";
6
+ import { ToastContent as s } from "./ToastContent.js";
7
+ import { ToastIcon as c } from "./ToastIcon.js";
8
+ import { useToastLifecycle as l } from "./useToastLifecycle.js";
9
+ import { className as u, createComponent as d, effect as f, insert as p, setAttribute as m, style as h, template as g } from "solid-js/web";
10
+ import { Show as _, createMemo as v, splitProps as y } from "solid-js";
7
11
  //#region src/components/toast/Toast/Toast.tsx
8
- var E = /*#__PURE__*/ f("<li data-slot=toast>"), D = /*#__PURE__*/ f("<div data-slot=toast-icon>"), O = /*#__PURE__*/ f("<div data-slot=toast-description>"), k = /*#__PURE__*/ f("<div data-slot=toast-content><div data-slot=toast-title>"), A = /*#__PURE__*/ f("<button type=button data-slot=toast-action>"), j = /*#__PURE__*/ f("<button type=button data-slot=toast-cancel>"), M = /*#__PURE__*/ f("<button type=button data-slot=toast-close>"), N = 4e3, P = 200;
9
- function F(e) {
10
- switch (e) {
11
- case "success": return a(b, {});
12
- case "info": return a(S, {});
13
- case "warning": return a(w, {});
14
- case "error": return a(x, {});
15
- case "loading": return a(C, { class: "animate-spin" });
16
- default: return;
17
- }
18
- }
19
- function I(e) {
20
- return typeof e == "function" ? e() : e;
21
- }
22
- function L(o) {
23
- let [f] = y(o, [
12
+ var b = /*#__PURE__*/ g("<li data-slot=toast>");
13
+ function x(i) {
14
+ let [a] = y(i, [
24
15
  "toast",
25
16
  "closeButton",
26
17
  "duration",
@@ -34,136 +25,51 @@ function L(o) {
34
25
  "expanded",
35
26
  "position",
36
27
  "gap"
37
- ]), [b, x] = g("closed"), S = () => f.toast, C = h(() => S().type ?? "default"), w = h(() => S().richColors ?? f.defaultRichColors ?? !1), L = h(() => S().dismissible !== !1), R = h(() => C() === "loading");
38
- v(() => {
39
- let e = requestAnimationFrame(() => x("open"));
40
- _(() => cancelAnimationFrame(e));
41
- });
42
- let z = () => {
43
- b() === "open" && (x("closed"), S().onDismiss?.(S()), setTimeout(() => f.onRemove(S().id), P));
44
- };
45
- m(() => {
46
- S().delete && b() === "open" && z();
47
- }), m(() => {
48
- let e = S();
49
- if (e.delete || e.type === "loading" || e.duration === Infinity || e.duration === 0) return;
50
- let t = e.duration ?? f.duration ?? N, n = setTimeout(() => {
51
- e.onAutoClose?.(e), z();
52
- }, t);
53
- _(() => clearTimeout(n));
28
+ ]), o = () => a.toast, s = v(() => o().type ?? "default"), c = v(() => o().richColors ?? a.defaultRichColors ?? !1), { animationState: g, close: x } = l({
29
+ toast: o,
30
+ duration: () => a.duration,
31
+ onRemove: (e) => a.onRemove(e)
32
+ }), C = () => r({
33
+ toast: o(),
34
+ index: a.index,
35
+ total: a.total,
36
+ expanded: a.expanded,
37
+ position: a.position,
38
+ gap: a.gap
39
+ }), w = () => n({
40
+ index: a.index,
41
+ expanded: a.expanded,
42
+ position: a.position
54
43
  });
55
- let B = () => S().icon === void 0 ? f.icons?.[C()] ?? F(C()) : S().icon, V = () => f.index === 0, H = () => f.position.startsWith("top") ? "top" : "bottom", U = () => {
56
- if (V()) return;
57
- let e = H() === "bottom" ? -1 : 1, t = Math.max(.8, 1 - f.index * .05);
58
- return `translateY(calc(${e * f.gap * f.index}px)) scale(${t})`;
59
- }, W = () => ({
60
- ...S().style,
61
- "z-index": f.total - f.index,
62
- ...f.expanded ? {} : {
63
- "grid-area": "1 / 1",
64
- "align-self": H() === "bottom" ? "end" : "start",
65
- transform: U(),
66
- "pointer-events": V() ? "auto" : "none"
67
- }
68
- }), G = () => H() === "bottom" ? "data-[state=open]:slide-in-from-bottom-2" : "data-[state=open]:slide-in-from-top-2", K = () => H() === "bottom" ? "data-[state=closed]:slide-out-to-bottom" : "data-[state=closed]:slide-out-to-top", q = () => V() || f.expanded ? `${G()} ${K()} data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:fill-mode-both data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:fill-mode-both` : "";
69
44
  return (() => {
70
- var o = E();
71
- return c(o, a(p, {
45
+ var n = b();
46
+ return p(n, d(_, {
72
47
  get when() {
73
- return S().jsx;
48
+ return o().jsx;
74
49
  },
75
50
  get fallback() {
76
- return [
77
- a(p, {
78
- get when() {
79
- return B();
80
- },
81
- get children() {
82
- var n = D();
83
- return c(n, B), s(() => i(n, e(t({ type: C() }), S().classes?.icon))), n;
84
- }
85
- }),
86
- (() => {
87
- var t = k(), n = t.firstChild;
88
- return c(n, () => I(S().title)), c(t, a(p, {
89
- get when() {
90
- return S().description;
91
- },
92
- get children() {
93
- var t = O();
94
- return c(t, () => I(S().description)), s(() => i(t, e("text-sm leading-relaxed text-muted-foreground", S().descriptionClass, S().classes?.description))), t;
95
- }
96
- }), null), s((r) => {
97
- var a = e("flex min-w-0 flex-1 flex-col gap-0.5", S().classes?.content), o = e("text-sm font-medium leading-snug", S().classes?.title);
98
- return a !== r.e && i(t, r.e = a), o !== r.t && i(n, r.t = o), r;
99
- }, {
100
- e: void 0,
101
- t: void 0
102
- }), t;
103
- })(),
104
- a(p, {
105
- get when() {
106
- return l(() => !!S().action)() && r(S().action);
107
- },
108
- get children() {
109
- var t = A();
110
- return t.$$click = (e) => {
111
- let t = S().action;
112
- r(t) && (t.onClick?.(e), e.defaultPrevented || z());
113
- }, c(t, () => S().action.label), s(() => i(t, e("shrink-0 rounded-md bg-foreground px-2.5 py-1 text-xs font-medium text-background outline-none transition-colors hover:bg-foreground/80", S().classes?.actionButton))), t;
114
- }
115
- }),
116
- a(p, {
117
- get when() {
118
- return l(() => !!S().cancel)() && r(S().cancel);
119
- },
120
- get children() {
121
- var t = j();
122
- return t.$$click = (e) => {
123
- let t = S().cancel;
124
- r(t) && (t.onClick?.(e), e.defaultPrevented || z());
125
- }, c(t, () => S().cancel.label), s(() => i(t, e("shrink-0 rounded-md bg-foreground/10 px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-foreground/15", S().classes?.cancelButton))), t;
126
- }
127
- }),
128
- a(p, {
129
- get when() {
130
- return l(() => !!S().action)() && !r(S().action);
131
- },
132
- get children() {
133
- return S().action;
134
- }
135
- }),
136
- a(p, {
137
- get when() {
138
- return l(() => !!S().cancel)() && !r(S().cancel);
139
- },
140
- get children() {
141
- return S().cancel;
142
- }
143
- }),
144
- a(p, {
145
- get when() {
146
- return l(() => !!(f.closeButton && L()))() && !R();
147
- },
148
- get children() {
149
- var t = M();
150
- return t.$$click = z, c(t, a(T, { class: "size-3.5" })), s((n) => {
151
- var r = f.closeButtonAriaLabel ?? "Close toast", a = e("absolute top-2.5 right-2.5 flex size-5 shrink-0 items-center justify-center rounded-full text-muted-foreground transition-colors hover:text-foreground", S().classes?.closeButton);
152
- return r !== n.e && u(t, "aria-label", n.e = r), a !== n.t && i(t, n.t = a), n;
153
- }, {
154
- e: void 0,
155
- t: void 0
156
- }), t;
157
- }
158
- })
159
- ];
51
+ return d(S, {
52
+ get toast() {
53
+ return o();
54
+ },
55
+ get icons() {
56
+ return a.icons;
57
+ },
58
+ get closeButton() {
59
+ return a.closeButton;
60
+ },
61
+ get closeButtonAriaLabel() {
62
+ return a.closeButtonAriaLabel;
63
+ },
64
+ onClose: x
65
+ });
160
66
  },
161
67
  get children() {
162
- return S().jsx;
68
+ return o().jsx;
163
69
  }
164
- })), s((t) => {
165
- var r = C(), a = b(), s = w(), c = S().testId, l = e(n({ type: C() }), f.closeButton && "pr-8", q(), f.class, S().class, S().classes?.toast, S().classes?.[C()]), p = W();
166
- return r !== t.e && u(o, "data-type", t.e = r), a !== t.t && u(o, "data-state", t.t = a), s !== t.a && u(o, "data-rich-colors", t.a = s), c !== t.o && u(o, "data-testid", t.o = c), l !== t.i && i(o, t.i = l), t.n = d(o, p, t.n), t;
70
+ })), f((r) => {
71
+ var i = s(), l = g(), d = c(), f = o().testId, p = e(t({ type: s() }), a.closeButton && "pr-8", w(), a.class, o().class, o().classes?.toast, o().classes?.[s()]), _ = C();
72
+ return i !== r.e && m(n, "data-type", r.e = i), l !== r.t && m(n, "data-state", r.t = l), d !== r.a && m(n, "data-rich-colors", r.a = d), f !== r.o && m(n, "data-testid", r.o = f), p !== r.i && u(n, r.i = p), r.n = h(n, _, r.n), r;
167
73
  }, {
168
74
  e: void 0,
169
75
  t: void 0,
@@ -171,11 +77,51 @@ function L(o) {
171
77
  o: void 0,
172
78
  i: void 0,
173
79
  n: void 0
174
- }), o;
80
+ }), n;
175
81
  })();
176
82
  }
177
- o(["click"]);
83
+ function S(e) {
84
+ return [
85
+ d(c, {
86
+ get toast() {
87
+ return e.toast;
88
+ },
89
+ get icons() {
90
+ return e.icons;
91
+ }
92
+ }),
93
+ d(s, { get toast() {
94
+ return e.toast;
95
+ } }),
96
+ d(i, {
97
+ get toast() {
98
+ return e.toast;
99
+ },
100
+ get onClose() {
101
+ return e.onClose;
102
+ }
103
+ }),
104
+ d(_, {
105
+ get when() {
106
+ return o(e.toast, e.closeButton);
107
+ },
108
+ get children() {
109
+ return d(a, {
110
+ get ariaLabel() {
111
+ return e.closeButtonAriaLabel;
112
+ },
113
+ get class() {
114
+ return e.toast.classes?.closeButton;
115
+ },
116
+ get onClose() {
117
+ return e.onClose;
118
+ }
119
+ });
120
+ }
121
+ })
122
+ ];
123
+ }
178
124
  //#endregion
179
- export { L as Toast };
125
+ export { x as Toast };
180
126
 
181
127
  //# sourceMappingURL=Toast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","names":["Show","JSX","createEffect","createMemo","createSignal","onCleanup","onMount","splitProps","CircleCheck","CircleX","Info","LoaderCircle","TriangleAlert","X","clsx","toastIconVariants","toastVariants","isAction","ToastIcons","ToastProps","ToastT","ToastTypes","TOAST_LIFETIME","EXIT_ANIMATION_MS","getDefaultIcon","type","_$createComponent","undefined","resolveContent","value","Toast","props","local","animationState","setAnimationState","toast","toastType","richColors","defaultRichColors","dismissible","isBusy","raf","requestAnimationFrame","cancelAnimationFrame","close","onDismiss","setTimeout","onRemove","id","delete","current","duration","Infinity","delay","timer","onAutoClose","clearTimeout","icon","icons","isFront","index","yPosition","position","startsWith","collapsedTransform","lift","scale","Math","max","gap","toastStyle","style","total","expanded","transform","CSSProperties","slideInClass","slideOutClass","animationClasses","_el$","_tmpl$","_$insert","when","jsx","fallback","children","_el$2","_tmpl$2","_$effect","_$className","classes","_el$3","_tmpl$4","_el$4","firstChild","title","description","_el$5","_tmpl$3","descriptionClass","_p$","_v$7","content","_v$8","e","t","_$memo","action","_el$6","_tmpl$5","$$click","onClick","defaultPrevented","Extract","label","actionButton","cancel","_el$7","_tmpl$6","cancelButton","Element","closeButton","_el$8","_tmpl$7","_v$9","closeButtonAriaLabel","_v$0","_$setAttribute","_v$","_v$2","_v$3","_v$4","testId","_v$5","class","_v$6","a","o","i","n","_$style","_$delegateEvents","_$createComponent","_$className","_$memo","_$setAttribute","_$style","_$delegateEvents","_tmpl$","_tmpl$2","_tmpl$3","_tmpl$4","_tmpl$5","_tmpl$6","_tmpl$7","TOAST_LIFETIME","EXIT_ANIMATION_MS","getDefaultIcon","type","createComponent","CircleCheck","Info","TriangleAlert","CircleX","LoaderCircle","\"class\"","resolveContent","value","Toast","local","splitProps","props","animationState","setAnimationState","createSignal","toast","toastType","createMemo","richColors","dismissible","isBusy","raf","close","createEffect","current","delay","timer","icon","isFront","yPosition","collapsedTransform","lift","scale","toastStyle","slideInClass","slideOutClass","animationClasses","_el$","insert","Show","_el$2","effect","className","clsx","toastIconVariants","_el$3","_el$4","_el$5","_v$7","_v$8","_p$","memo","isAction","_el$6","action","_el$7","cancel","_el$8","X","_v$9","_v$0","setAttribute","_v$","_v$2","_v$3","_v$4","_v$5","toastVariants","_v$6","style","delegateEvents"],"sources":["../../../../src/components/toast/Toast/Toast.tsx"],"sourcesContent":["import {\n Show,\n type JSX,\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n onMount,\n splitProps,\n} from \"solid-js\";\nimport {\n CircleCheck,\n CircleX,\n Info,\n LoaderCircle,\n TriangleAlert,\n X,\n} from \"lucide-solid\";\nimport { clsx } from \"~/utils\";\nimport { toastIconVariants, toastVariants } from \"./Toast.styles\";\nimport {\n isAction,\n type ToastIcons,\n type ToastProps,\n type ToastT,\n type ToastTypes,\n} from \"./Toast.types\";\n\nconst TOAST_LIFETIME = 4000;\nconst EXIT_ANIMATION_MS = 200;\n\nfunction getDefaultIcon(type: ToastTypes) {\n switch (type) {\n case \"success\":\n return <CircleCheck />;\n case \"info\":\n return <Info />;\n case \"warning\":\n return <TriangleAlert />;\n case \"error\":\n return <CircleX />;\n case \"loading\":\n return <LoaderCircle class=\"animate-spin\" />;\n default:\n return undefined;\n }\n}\n\nfunction resolveContent(value: ToastT[\"title\"]) {\n return typeof value === \"function\" ? value() : value;\n}\n\nexport function Toast(props: ToastProps) {\n const [local] = splitProps(props, [\n \"toast\",\n \"closeButton\",\n \"duration\",\n \"class\",\n \"icons\",\n \"closeButtonAriaLabel\",\n \"defaultRichColors\",\n \"onRemove\",\n \"index\",\n \"total\",\n \"expanded\",\n \"position\",\n \"gap\",\n ]);\n\n const [animationState, setAnimationState] = createSignal<\"open\" | \"closed\">(\n \"closed\",\n );\n\n const toast = () => local.toast;\n const toastType = createMemo(() => toast().type ?? \"default\");\n const richColors = createMemo(\n () => toast().richColors ?? local.defaultRichColors ?? false,\n );\n const dismissible = createMemo(() => toast().dismissible !== false);\n const isBusy = createMemo(() => toastType() === \"loading\");\n\n onMount(() => {\n const raf = requestAnimationFrame(() => setAnimationState(\"open\"));\n onCleanup(() => cancelAnimationFrame(raf));\n });\n\n const close = () => {\n if (animationState() !== \"open\") return;\n setAnimationState(\"closed\");\n toast().onDismiss?.(toast());\n setTimeout(() => local.onRemove(toast().id), EXIT_ANIMATION_MS);\n };\n\n // 外部 dismiss:把 delete 标记转换成退场动画\n createEffect(() => {\n if (toast().delete && animationState() === \"open\") {\n close();\n }\n });\n\n // 自动关闭计时器\n createEffect(() => {\n const current = toast();\n if (\n current.delete ||\n current.type === \"loading\" ||\n current.duration === Infinity ||\n current.duration === 0\n ) {\n return;\n }\n\n const delay = current.duration ?? local.duration ?? TOAST_LIFETIME;\n const timer = setTimeout(() => {\n current.onAutoClose?.(current);\n close();\n }, delay);\n\n onCleanup(() => clearTimeout(timer));\n });\n\n const icon = () => {\n if (toast().icon !== undefined) return toast().icon;\n return (\n local.icons?.[toastType() as keyof ToastIcons] ??\n getDefaultIcon(toastType())\n );\n };\n\n const isFront = () => local.index === 0;\n const yPosition = () => (local.position.startsWith(\"top\") ? \"top\" : \"bottom\");\n\n const collapsedTransform = () => {\n if (isFront()) return undefined;\n const lift = yPosition() === \"bottom\" ? -1 : 1;\n const scale = Math.max(0.8, 1 - local.index * 0.05);\n return `translateY(calc(${lift * local.gap * local.index}px)) scale(${scale})`;\n };\n\n const toastStyle = () =>\n ({\n ...toast().style,\n \"z-index\": local.total - local.index,\n ...(local.expanded\n ? {}\n : {\n \"grid-area\": \"1 / 1\",\n \"align-self\": yPosition() === \"bottom\" ? \"end\" : \"start\",\n transform: collapsedTransform(),\n \"pointer-events\": isFront() ? \"auto\" : \"none\",\n }),\n }) as JSX.CSSProperties;\n\n const slideInClass = () =>\n yPosition() === \"bottom\"\n ? \"data-[state=open]:slide-in-from-bottom-2\"\n : \"data-[state=open]:slide-in-from-top-2\";\n\n const slideOutClass = () =>\n yPosition() === \"bottom\"\n ? \"data-[state=closed]:slide-out-to-bottom\"\n : \"data-[state=closed]:slide-out-to-top\";\n\n const animationClasses = () =>\n isFront() || local.expanded\n ? `${slideInClass()} ${slideOutClass()} data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:fill-mode-both data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:fill-mode-both`\n : \"\";\n\n return (\n <li\n data-slot=\"toast\"\n data-type={toastType()}\n data-state={animationState()}\n data-rich-colors={richColors()}\n data-testid={toast().testId}\n class={clsx(\n toastVariants({ type: toastType() }),\n local.closeButton && \"pr-8\",\n animationClasses(),\n local.class,\n toast().class,\n toast().classes?.toast,\n toast().classes?.[toastType()],\n )}\n style={toastStyle()}\n >\n <Show\n when={toast().jsx}\n fallback={\n <>\n <Show when={icon()}>\n <div\n data-slot=\"toast-icon\"\n class={clsx(\n toastIconVariants({ type: toastType() }),\n toast().classes?.icon,\n )}\n >\n {icon()}\n </div>\n </Show>\n\n <div\n data-slot=\"toast-content\"\n class={clsx(\n \"flex min-w-0 flex-1 flex-col gap-0.5\",\n toast().classes?.content,\n )}\n >\n <div\n data-slot=\"toast-title\"\n class={clsx(\n \"text-sm font-medium leading-snug\",\n toast().classes?.title,\n )}\n >\n {resolveContent(toast().title)}\n </div>\n <Show when={toast().description}>\n <div\n data-slot=\"toast-description\"\n class={clsx(\n \"text-sm leading-relaxed text-muted-foreground\",\n toast().descriptionClass,\n toast().classes?.description,\n )}\n >\n {resolveContent(toast().description)}\n </div>\n </Show>\n </div>\n\n <Show when={toast().action && isAction(toast().action)}>\n <button\n type=\"button\"\n data-slot=\"toast-action\"\n class={clsx(\n \"shrink-0 rounded-md bg-foreground px-2.5 py-1 text-xs font-medium text-background outline-none transition-colors hover:bg-foreground/80\",\n toast().classes?.actionButton,\n )}\n onClick={(e) => {\n const action = toast().action;\n if (!isAction(action)) return;\n action.onClick?.(e);\n if (!e.defaultPrevented) close();\n }}\n >\n {\n (\n toast().action as Extract<\n ToastT[\"action\"],\n { label: unknown }\n >\n ).label\n }\n </button>\n </Show>\n\n <Show when={toast().cancel && isAction(toast().cancel)}>\n <button\n type=\"button\"\n data-slot=\"toast-cancel\"\n class={clsx(\n \"shrink-0 rounded-md bg-foreground/10 px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-foreground/15\",\n toast().classes?.cancelButton,\n )}\n onClick={(e) => {\n const cancel = toast().cancel;\n if (!isAction(cancel)) return;\n cancel.onClick?.(e);\n if (!e.defaultPrevented) close();\n }}\n >\n {\n (\n toast().cancel as Extract<\n ToastT[\"action\"],\n { label: unknown }\n >\n ).label\n }\n </button>\n </Show>\n\n <Show when={toast().action && !isAction(toast().action)}>\n {toast().action as JSX.Element}\n </Show>\n <Show when={toast().cancel && !isAction(toast().cancel)}>\n {toast().cancel as JSX.Element}\n </Show>\n\n <Show when={local.closeButton && dismissible() && !isBusy()}>\n <button\n type=\"button\"\n data-slot=\"toast-close\"\n aria-label={local.closeButtonAriaLabel ?? \"Close toast\"}\n class={clsx(\n \"absolute top-2.5 right-2.5 flex size-5 shrink-0 items-center justify-center rounded-full text-muted-foreground transition-colors hover:text-foreground\",\n toast().classes?.closeButton,\n )}\n onClick={close}\n >\n <X class=\"size-3.5\" />\n </button>\n </Show>\n </>\n }\n >\n {toast().jsx}\n </Show>\n </li>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Toast.js","names":["Show","createMemo","splitProps","clsx","toastVariants","ToastIcons","ToastProps","ToastT","getAnimationClasses","getToastStyle","ToastActions","ToastCloseButton","isCloseButtonVisible","ToastContent","ToastIcon","useToastLifecycle","Toast","props","local","toast","toastType","type","richColors","defaultRichColors","animationState","close","duration","onRemove","id","toastStyle","index","total","expanded","position","gap","animationClasses","_el$","_tmpl$","_$insert","_$createComponent","when","jsx","fallback","ToastBody","icons","closeButton","closeButtonAriaLabel","onClose","children","_$effect","_p$","_v$","_v$2","_v$3","_v$4","testId","_v$5","class","classes","_v$6","e","_$setAttribute","t","a","o","i","_$className","n","_$style","undefined","ariaLabel","_$createComponent","_$setAttribute","_$className","_$style","_tmpl$","Toast","local","splitProps","props","toast","toastType","createMemo","richColors","useToastLifecycle","id","toastStyle","getToastStyle","animationClasses","getAnimationClasses","_el$","insert","createComponent","Show","ToastBody","close","effect","_v$","_v$2","animationState","_v$3","_v$4","_v$5","clsx","toastVariants","_v$6","_p$","setAttribute","className","style","ToastIcon","ToastContent","ToastActions","isCloseButtonVisible","ToastCloseButton","\"class\""],"sources":["../../../../src/components/toast/Toast/Toast.tsx"],"sourcesContent":["import { Show, createMemo, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { toastVariants } from \"./Toast.styles\";\nimport type { ToastIcons, ToastProps, ToastT } from \"./Toast.types\";\nimport { getAnimationClasses, getToastStyle } from \"./Toast.utils\";\nimport { ToastActions } from \"./ToastActions\";\nimport { ToastCloseButton, isCloseButtonVisible } from \"./ToastCloseButton\";\nimport { ToastContent } from \"./ToastContent\";\nimport { ToastIcon } from \"./ToastIcon\";\nimport { useToastLifecycle } from \"./useToastLifecycle\";\n\n/**\n * 单条 toast 的骨架:状态属性(data-*)+ 尺寸/层叠样式 + 四个插槽。\n *\n * 渲染层只做组合,具体内容分别由\n * `ToastIcon` / `ToastContent` / `ToastActions` / `ToastCloseButton` 承担,\n * 进出场与自动关闭由 `useToastLifecycle` 承担。\n */\nexport function Toast(props: ToastProps) {\n const [local] = splitProps(props, [\n \"toast\",\n \"closeButton\",\n \"duration\",\n \"class\",\n \"icons\",\n \"closeButtonAriaLabel\",\n \"defaultRichColors\",\n \"onRemove\",\n \"index\",\n \"total\",\n \"expanded\",\n \"position\",\n \"gap\",\n ]);\n\n const toast = () => local.toast;\n const toastType = createMemo(() => toast().type ?? \"default\");\n const richColors = createMemo(\n () => toast().richColors ?? local.defaultRichColors ?? false,\n );\n\n const { animationState, close } = useToastLifecycle({\n toast,\n duration: () => local.duration,\n onRemove: (id) => local.onRemove(id),\n });\n\n const toastStyle = () =>\n getToastStyle({\n toast: toast(),\n index: local.index,\n total: local.total,\n expanded: local.expanded,\n position: local.position,\n gap: local.gap,\n });\n\n const animationClasses = () =>\n getAnimationClasses({\n index: local.index,\n expanded: local.expanded,\n position: local.position,\n });\n\n return (\n <li\n data-slot=\"toast\"\n data-type={toastType()}\n data-state={animationState()}\n data-rich-colors={richColors()}\n data-testid={toast().testId}\n class={clsx(\n toastVariants({ type: toastType() }),\n local.closeButton && \"pr-8\",\n animationClasses(),\n local.class,\n toast().class,\n toast().classes?.toast,\n toast().classes?.[toastType()],\n )}\n style={toastStyle()}\n >\n <Show\n when={toast().jsx}\n fallback={\n <ToastBody\n toast={toast()}\n icons={local.icons}\n closeButton={local.closeButton}\n closeButtonAriaLabel={local.closeButtonAriaLabel}\n onClose={close}\n />\n }\n >\n {toast().jsx}\n </Show>\n </li>\n );\n}\n\n/** 默认内容布局:图标 / 文案 / 操作 / 关闭按钮(依次排布,各自独立) */\nfunction ToastBody(props: {\n toast: ToastT;\n icons?: ToastIcons;\n closeButton: boolean;\n closeButtonAriaLabel?: string;\n onClose: () => void;\n}) {\n return (\n <>\n <ToastIcon toast={props.toast} icons={props.icons} />\n <ToastContent toast={props.toast} />\n <ToastActions toast={props.toast} onClose={props.onClose} />\n <Show when={isCloseButtonVisible(props.toast, props.closeButton)}>\n <ToastCloseButton\n ariaLabel={props.closeButtonAriaLabel}\n class={props.toast.classes?.closeButton}\n onClose={props.onClose}\n />\n </Show>\n </>\n );\n}\n"],"mappings":"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"}
@@ -87,4 +87,4 @@ export interface ToastProps {
87
87
  position: Position;
88
88
  gap: number;
89
89
  }
90
- export declare const isAction: (action: Action | JSXElement) => action is Action;
90
+ export declare const isAction: (action: Action | JSXElement | undefined) => action is Action;
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.types.js","names":["isAction","action"],"sources":["../../../../src/components/toast/Toast/Toast.types.ts"],"sourcesContent":["import type { JSX, JSXElement } from \"solid-js\";\n\nexport type ToastTypes =\n | \"success\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"loading\"\n | \"default\";\n\nexport type Position =\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-center\"\n | \"bottom-center\";\n\nexport type Theme = \"light\" | \"dark\";\nexport type SwipeDirection = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nexport interface Action {\n label: JSXElement;\n onClick: JSX.EventHandler<HTMLButtonElement, MouseEvent>;\n actionButtonStyle?: JSX.CSSProperties;\n}\n\nexport interface ToastIcons {\n success?: JSXElement;\n info?: JSXElement;\n warning?: JSXElement;\n error?: JSXElement;\n loading?: JSXElement;\n close?: JSXElement;\n}\n\nexport interface ToastClassnames {\n toast?: string;\n title?: string;\n description?: string;\n loader?: string;\n cancelButton?: string;\n actionButton?: string;\n closeButton?: string;\n success?: string;\n error?: string;\n info?: string;\n warning?: string;\n loading?: string;\n default?: string;\n content?: string;\n icon?: string;\n}\n\nexport type PromiseT<Data = any> = Promise<Data> | (() => Promise<Data>);\n\nexport type PromiseTResult<Data = any> =\n | string\n | JSXElement\n | ((data: Data) => JSXElement | string | Promise<JSXElement | string>);\n\nexport interface PromiseData<ToastData = any> {\n loading?: string | JSXElement;\n success?: PromiseTResult<ToastData>;\n error?: PromiseTResult;\n description?: PromiseTResult;\n finally?: () => void | Promise<void>;\n}\n\nexport interface ToastT {\n id: string;\n toasterId?: string;\n title?: JSXElement | (() => JSXElement);\n description?: JSXElement | (() => JSXElement);\n type?: ToastTypes;\n icon?: JSXElement;\n jsx?: JSXElement;\n richColors?: boolean;\n invert?: boolean;\n closeButton?: boolean;\n dismissible?: boolean;\n duration?: number;\n delete?: boolean;\n action?: Action | JSXElement;\n cancel?: Action | JSXElement;\n onDismiss?: (toast: ToastT) => void;\n onAutoClose?: (toast: ToastT) => void;\n promise?: PromiseT;\n style?: JSX.CSSProperties;\n class?: string;\n classes?: ToastClassnames;\n descriptionClass?: string;\n position?: Position;\n testId?: string;\n}\n\nexport type ExternalToast = Omit<\n ToastT,\n \"id\" | \"type\" | \"title\" | \"jsx\" | \"delete\" | \"promise\"\n> & {\n id?: string;\n toasterId?: string;\n};\n\nexport interface ToastProps {\n toast: ToastT;\n closeButton: boolean;\n duration?: number;\n class?: string;\n icons?: ToastIcons;\n closeButtonAriaLabel?: string;\n defaultRichColors?: boolean;\n onRemove: (id: string) => void;\n index: number;\n total: number;\n expanded: boolean;\n position: Position;\n gap: number;\n}\n\nexport const isAction = (action: Action | JSXElement): action is Action => {\n return (action as Action)?.label !== undefined;\n};\n"],"mappings":";AAwHA,IAAaA,KAAY,MACfC,GAAmB,UAAU,KAAA"}
1
+ {"version":3,"file":"Toast.types.js","names":["isAction","action"],"sources":["../../../../src/components/toast/Toast/Toast.types.ts"],"sourcesContent":["import type { JSX, JSXElement } from \"solid-js\";\n\nexport type ToastTypes =\n | \"success\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"loading\"\n | \"default\";\n\nexport type Position =\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"top-center\"\n | \"bottom-center\";\n\nexport type Theme = \"light\" | \"dark\";\nexport type SwipeDirection = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nexport interface Action {\n label: JSXElement;\n onClick: JSX.EventHandler<HTMLButtonElement, MouseEvent>;\n actionButtonStyle?: JSX.CSSProperties;\n}\n\nexport interface ToastIcons {\n success?: JSXElement;\n info?: JSXElement;\n warning?: JSXElement;\n error?: JSXElement;\n loading?: JSXElement;\n close?: JSXElement;\n}\n\nexport interface ToastClassnames {\n toast?: string;\n title?: string;\n description?: string;\n loader?: string;\n cancelButton?: string;\n actionButton?: string;\n closeButton?: string;\n success?: string;\n error?: string;\n info?: string;\n warning?: string;\n loading?: string;\n default?: string;\n content?: string;\n icon?: string;\n}\n\nexport type PromiseT<Data = any> = Promise<Data> | (() => Promise<Data>);\n\nexport type PromiseTResult<Data = any> =\n | string\n | JSXElement\n | ((data: Data) => JSXElement | string | Promise<JSXElement | string>);\n\nexport interface PromiseData<ToastData = any> {\n loading?: string | JSXElement;\n success?: PromiseTResult<ToastData>;\n error?: PromiseTResult;\n description?: PromiseTResult;\n finally?: () => void | Promise<void>;\n}\n\nexport interface ToastT {\n id: string;\n toasterId?: string;\n title?: JSXElement | (() => JSXElement);\n description?: JSXElement | (() => JSXElement);\n type?: ToastTypes;\n icon?: JSXElement;\n jsx?: JSXElement;\n richColors?: boolean;\n invert?: boolean;\n closeButton?: boolean;\n dismissible?: boolean;\n duration?: number;\n delete?: boolean;\n action?: Action | JSXElement;\n cancel?: Action | JSXElement;\n onDismiss?: (toast: ToastT) => void;\n onAutoClose?: (toast: ToastT) => void;\n promise?: PromiseT;\n style?: JSX.CSSProperties;\n class?: string;\n classes?: ToastClassnames;\n descriptionClass?: string;\n position?: Position;\n testId?: string;\n}\n\nexport type ExternalToast = Omit<\n ToastT,\n \"id\" | \"type\" | \"title\" | \"jsx\" | \"delete\" | \"promise\"\n> & {\n id?: string;\n toasterId?: string;\n};\n\nexport interface ToastProps {\n toast: ToastT;\n closeButton: boolean;\n duration?: number;\n class?: string;\n icons?: ToastIcons;\n closeButtonAriaLabel?: string;\n defaultRichColors?: boolean;\n onRemove: (id: string) => void;\n index: number;\n total: number;\n expanded: boolean;\n position: Position;\n gap: number;\n}\n\nexport const isAction = (\n action: Action | JSXElement | undefined,\n): action is Action => {\n return (action as Action)?.label !== undefined;\n};\n"],"mappings":";AAwHA,IAAaA,KACX,MAEQC,GAAmB,UAAU,KAAA"}
@@ -0,0 +1,47 @@
1
+ import { JSX } from 'solid-js';
2
+ import { Action, Position, ToastT } from './Toast.types';
3
+ /**
4
+ * `action` / `cancel` 既可以是"带 label 的操作对象",也可以是任意自定义元素。
5
+ * 这里把判定收敛成一个收窄函数:渲染层拿到的要么是可用的 `Action`,
6
+ * 要么是 `undefined`(自定义元素走另一条 Show 分支),避免每个按钮各写一遍守卫。
7
+ */
8
+ export declare function getToastAction(value: ToastT["action"]): Action | undefined;
9
+ /**
10
+ * `title` / `description` 允许写成惰性函数:内容可能是随信号变化的元素。
11
+ * 这里是唯一的求值点,渲染层只消费结果。
12
+ */
13
+ export declare function resolveToastContent(value: ToastT["title"]): JSX.Element;
14
+ /** 堆叠的纵向朝向:`top-*` 从顶部向下堆,其余从底部向上堆。 */
15
+ export declare function getVerticalAxis(position: Position): "top" | "bottom";
16
+ /** 只有最前面的一层参与进出场动画、接收指针事件。 */
17
+ export declare function isFrontToast(index: number): boolean;
18
+ /**
19
+ * 非最前层的"堆叠"变换:沿纵向让出 `gap * index` 的位移,并逐层缩小。
20
+ * 缩放下限 0.8,避免层数多时缩到几乎不可见。
21
+ */
22
+ export declare function getCollapsedTransform(options: {
23
+ index: number;
24
+ gap: number;
25
+ position: Position;
26
+ }): string | undefined;
27
+ /**
28
+ * 折叠态用 `grid-area: 1 / 1` 让所有层叠在同一格,靠 transform 错开;
29
+ * 展开态交还给容器的 flex 排列,因此不写这些定位属性。
30
+ */
31
+ export declare function getToastStyle(options: {
32
+ toast: ToastT;
33
+ index: number;
34
+ total: number;
35
+ expanded: boolean;
36
+ position: Position;
37
+ gap: number;
38
+ }): JSX.CSSProperties;
39
+ /**
40
+ * 进出场动画只给最前面的层(展开时给所有层):后层在折叠态只是"背景卡片",
41
+ * 播放位移动画会穿帮。
42
+ */
43
+ export declare function getAnimationClasses(options: {
44
+ index: number;
45
+ expanded: boolean;
46
+ position: Position;
47
+ }): string;
@@ -0,0 +1,47 @@
1
+ import { isAction as e } from "./Toast.types.js";
2
+ //#region src/components/toast/Toast/Toast.utils.ts
3
+ function t(t) {
4
+ return e(t) ? t : void 0;
5
+ }
6
+ function n(e) {
7
+ return typeof e == "function" ? e() : e;
8
+ }
9
+ function r(e) {
10
+ return e.startsWith("top") ? "top" : "bottom";
11
+ }
12
+ function i(e) {
13
+ return e === 0;
14
+ }
15
+ function a(e) {
16
+ let { index: t, gap: n, position: a } = e;
17
+ if (i(t)) return;
18
+ let o = r(a) === "bottom" ? -1 : 1, s = Math.max(.8, 1 - t * .05);
19
+ return `translateY(calc(${o * n * t}px)) scale(${s})`;
20
+ }
21
+ function o(e) {
22
+ let { toast: t, index: n, total: o, expanded: s, position: c, gap: l } = e;
23
+ return {
24
+ ...t.style,
25
+ "z-index": o - n,
26
+ ...s ? {} : {
27
+ "grid-area": "1 / 1",
28
+ "align-self": r(c) === "bottom" ? "end" : "start",
29
+ transform: a({
30
+ index: n,
31
+ gap: l,
32
+ position: c
33
+ }),
34
+ "pointer-events": i(n) ? "auto" : "none"
35
+ }
36
+ };
37
+ }
38
+ function s(e) {
39
+ let { index: t, expanded: n, position: a } = e;
40
+ if (!i(t) && !n) return "";
41
+ let o = r(a) === "bottom";
42
+ return `${o ? "data-[state=open]:slide-in-from-bottom-2" : "data-[state=open]:slide-in-from-top-2"} ${o ? "data-[state=closed]:slide-out-to-bottom" : "data-[state=closed]:slide-out-to-top"} data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:fill-mode-both data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:fill-mode-both`;
43
+ }
44
+ //#endregion
45
+ export { s as getAnimationClasses, a as getCollapsedTransform, t as getToastAction, o as getToastStyle, r as getVerticalAxis, i as isFrontToast, n as resolveToastContent };
46
+
47
+ //# sourceMappingURL=Toast.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast.utils.js","names":["getToastAction","isAction","value","resolveToastContent","getVerticalAxis","position","isFrontToast","index","getCollapsedTransform","options","lift","scale","gap","getToastStyle","toast","total","expanded","getAnimationClasses","isBottom"],"sources":["../../../../src/components/toast/Toast/Toast.utils.ts"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport {\n type Action,\n isAction,\n type Position,\n type ToastT,\n} from \"./Toast.types\";\n\n/**\n * `action` / `cancel` 既可以是\"带 label 的操作对象\",也可以是任意自定义元素。\n * 这里把判定收敛成一个收窄函数:渲染层拿到的要么是可用的 `Action`,\n * 要么是 `undefined`(自定义元素走另一条 Show 分支),避免每个按钮各写一遍守卫。\n */\nexport function getToastAction(value: ToastT[\"action\"]): Action | undefined {\n return isAction(value) ? value : undefined;\n}\n\n/**\n * `title` / `description` 允许写成惰性函数:内容可能是随信号变化的元素。\n * 这里是唯一的求值点,渲染层只消费结果。\n */\nexport function resolveToastContent(value: ToastT[\"title\"]): JSX.Element {\n return typeof value === \"function\" ? value() : value;\n}\n\n/** 堆叠的纵向朝向:`top-*` 从顶部向下堆,其余从底部向上堆。 */\nexport function getVerticalAxis(position: Position): \"top\" | \"bottom\" {\n return position.startsWith(\"top\") ? \"top\" : \"bottom\";\n}\n\n/** 只有最前面的一层参与进出场动画、接收指针事件。 */\nexport function isFrontToast(index: number): boolean {\n return index === 0;\n}\n\n/**\n * 非最前层的\"堆叠\"变换:沿纵向让出 `gap * index` 的位移,并逐层缩小。\n * 缩放下限 0.8,避免层数多时缩到几乎不可见。\n */\nexport function getCollapsedTransform(options: {\n index: number;\n gap: number;\n position: Position;\n}): string | undefined {\n const { index, gap, position } = options;\n if (isFrontToast(index)) return undefined;\n\n const lift = getVerticalAxis(position) === \"bottom\" ? -1 : 1;\n const scale = Math.max(0.8, 1 - index * 0.05);\n return `translateY(calc(${lift * gap * index}px)) scale(${scale})`;\n}\n\n/**\n * 折叠态用 `grid-area: 1 / 1` 让所有层叠在同一格,靠 transform 错开;\n * 展开态交还给容器的 flex 排列,因此不写这些定位属性。\n */\nexport function getToastStyle(options: {\n toast: ToastT;\n index: number;\n total: number;\n expanded: boolean;\n position: Position;\n gap: number;\n}): JSX.CSSProperties {\n const { toast, index, total, expanded, position, gap } = options;\n\n return {\n ...toast.style,\n // 越靠前层级越高,避免后加入的层盖住最前面的层\n \"z-index\": total - index,\n ...(expanded\n ? {}\n : {\n \"grid-area\": \"1 / 1\",\n \"align-self\":\n getVerticalAxis(position) === \"bottom\" ? \"end\" : \"start\",\n transform: getCollapsedTransform({ index, gap, position }),\n \"pointer-events\": isFrontToast(index) ? \"auto\" : \"none\",\n }),\n } as JSX.CSSProperties;\n}\n\n/**\n * 进出场动画只给最前面的层(展开时给所有层):后层在折叠态只是\"背景卡片\",\n * 播放位移动画会穿帮。\n */\nexport function getAnimationClasses(options: {\n index: number;\n expanded: boolean;\n position: Position;\n}): string {\n const { index, expanded, position } = options;\n if (!isFrontToast(index) && !expanded) return \"\";\n\n const isBottom = getVerticalAxis(position) === \"bottom\";\n const slideIn = isBottom\n ? \"data-[state=open]:slide-in-from-bottom-2\"\n : \"data-[state=open]:slide-in-from-top-2\";\n const slideOut = isBottom\n ? \"data-[state=closed]:slide-out-to-bottom\"\n : \"data-[state=closed]:slide-out-to-top\";\n\n return `${slideIn} ${slideOut} data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:fill-mode-both data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:fill-mode-both`;\n}\n"],"mappings":";;AAaA,SAAgBA,EAAe,GAA6C;CAC1E,OAAOC,EAASC,CAAK,IAAIA,IAAQ,KAAA;AACnC;AAMA,SAAgBC,EAAoB,GAAqC;CACvE,OAAO,OAAOD,KAAU,aAAaA,EAAM,IAAIA;AACjD;AAGA,SAAgBE,EAAgB,GAAsC;CACpE,OAAOC,EAAS,WAAW,KAAK,IAAI,QAAQ;AAC9C;AAGA,SAAgBC,EAAa,GAAwB;CACnD,OAAOC,MAAU;AACnB;AAMA,SAAgBC,EAAsB,GAIf;CACrB,IAAM,EAAE,UAAO,QAAK,gBAAaC;CACjC,IAAIH,EAAaC,CAAK,GAAG;CAEzB,IAAMG,IAAON,EAAgBC,CAAQ,MAAM,WAAW,KAAK,GACrDM,IAAQ,KAAK,IAAI,IAAK,IAAIJ,IAAQ,GAAI;CAC5C,OAAO,mBAAmBG,IAAOE,IAAML,EAAM,aAAaI,EAAM;AAClE;AAMA,SAAgBE,EAAc,GAOR;CACpB,IAAM,EAAE,UAAO,UAAO,UAAO,aAAU,aAAU,WAAQJ;CAEzD,OAAO;EACL,GAAGK,EAAM;EAET,WAAWC,IAAQR;EACnB,GAAIS,IACA,CAAC,IACD;GACE,aAAa;GACb,cACEZ,EAAgBC,CAAQ,MAAM,WAAW,QAAQ;GACnD,WAAWG,EAAsB;IAAE;IAAO;IAAK;GAAS,CAAC;GACzD,kBAAkBF,EAAaC,CAAK,IAAI,SAAS;EACnD;CACN;AACF;AAMA,SAAgBU,EAAoB,GAIzB;CACT,IAAM,EAAE,UAAO,aAAU,gBAAaR;CACtC,IAAI,CAACH,EAAaC,CAAK,KAAK,CAACS,GAAU,OAAO;CAE9C,IAAME,IAAWd,EAAgBC,CAAQ,MAAM;CAQ/C,OAAO,GAPSa,IACZ,6CACA,wCAKc,GAJDA,IACb,4CACA,uCAE0B;AAChC"}
@@ -0,0 +1,16 @@
1
+ import { JSX } from 'solid-js';
2
+ import { Action } from './Toast.types';
3
+ export interface ToastActionButtonProps {
4
+ /** 已经收窄过的操作对象 */
5
+ action: Action;
6
+ /** action 与 cancel 共用同一套按钮行为,仅插槽名与配色不同 */
7
+ variant: "action" | "cancel";
8
+ class?: string;
9
+ onClose: () => void;
10
+ }
11
+ /**
12
+ * toast 上的"操作/取消"按钮:一个职责——把点击派发给 `action.onClick`,
13
+ * 并在调用方没有 `preventDefault()` 时请求关闭。
14
+ * 关闭本身由 `onClose` 注入,按钮不碰 toast 的生命周期状态。
15
+ */
16
+ export declare function ToastActionButton(props: ToastActionButtonProps): JSX.Element;
@@ -0,0 +1,27 @@
1
+ import { clsx as e } from "../../../utils/clsx.js";
2
+ import { className as t, delegateEvents as n, effect as r, insert as i, setAttribute as a, template as o } from "solid-js/web";
3
+ //#region src/components/toast/Toast/ToastActionButton.tsx
4
+ var s = /*#__PURE__*/ o("<button type=button>"), c = {
5
+ action: "bg-foreground text-background hover:bg-foreground/80",
6
+ cancel: "bg-foreground/10 text-foreground hover:bg-foreground/15"
7
+ };
8
+ function l(n) {
9
+ let o = () => n.variant === "action";
10
+ return (() => {
11
+ var l = s();
12
+ return l.$$click = (e) => {
13
+ n.action.onClick?.(e), e.defaultPrevented || n.onClose();
14
+ }, i(l, () => n.action.label), r((r) => {
15
+ var i = o() ? "toast-action" : "toast-cancel", s = e("shrink-0 rounded-md px-2.5 py-1 text-xs font-medium outline-none transition-colors", c[n.variant], n.class);
16
+ return i !== r.e && a(l, "data-slot", r.e = i), s !== r.t && t(l, r.t = s), r;
17
+ }, {
18
+ e: void 0,
19
+ t: void 0
20
+ }), l;
21
+ })();
22
+ }
23
+ n(["click"]);
24
+ //#endregion
25
+ export { l as ToastActionButton };
26
+
27
+ //# sourceMappingURL=ToastActionButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastActionButton.js","names":["JSX","clsx","Action","ToastActionButtonProps","action","variant","class","onClose","VARIANT_CLASS","Record","cancel","ToastActionButton","props","Element","isAction","_el$","_tmpl$","$$click","event","onClick","defaultPrevented","_$insert","label","_$effect","_p$","_v$","_v$2","e","_$setAttribute","t","_$className","undefined","_$delegateEvents","_$setAttribute","_$className","_$delegateEvents","_tmpl$","VARIANT_CLASS","ToastActionButton","isAction","props","_el$","event","insert","effect","_v$","_v$2","clsx","_p$","setAttribute","className","delegateEvents"],"sources":["../../../../src/components/toast/Toast/ToastActionButton.tsx"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { Action } from \"./Toast.types\";\n\nexport interface ToastActionButtonProps {\n /** 已经收窄过的操作对象 */\n action: Action;\n /** action 与 cancel 共用同一套按钮行为,仅插槽名与配色不同 */\n variant: \"action\" | \"cancel\";\n class?: string;\n onClose: () => void;\n}\n\nconst VARIANT_CLASS: Record<ToastActionButtonProps[\"variant\"], string> = {\n action: \"bg-foreground text-background hover:bg-foreground/80\",\n cancel: \"bg-foreground/10 text-foreground hover:bg-foreground/15\",\n};\n\n/**\n * toast 上的\"操作/取消\"按钮:一个职责——把点击派发给 `action.onClick`,\n * 并在调用方没有 `preventDefault()` 时请求关闭。\n * 关闭本身由 `onClose` 注入,按钮不碰 toast 的生命周期状态。\n */\nexport function ToastActionButton(props: ToastActionButtonProps): JSX.Element {\n const isAction = () => props.variant === \"action\";\n\n return (\n <button\n type=\"button\"\n data-slot={isAction() ? \"toast-action\" : \"toast-cancel\"}\n class={clsx(\n \"shrink-0 rounded-md px-2.5 py-1 text-xs font-medium outline-none transition-colors\",\n VARIANT_CLASS[props.variant],\n props.class,\n )}\n onClick={(event) => {\n props.action.onClick?.(event);\n if (!event.defaultPrevented) props.onClose();\n }}\n >\n {props.action.label}\n </button>\n );\n}\n"],"mappings":";;;iDAaMQ,IAAmE;CACvEJ,QAAQ;CACRM,QAAQ;AACV;AAOA,SAAgBC,EAAkBC,GAA4C;CAC5E,IAAME,UAAiBF,EAAMP,YAAY;CAEzC,cAAA;EAAA,IAAAU,IAAAC,EAAA;EAQK,OARLD,EAAAE,WAScC,MAAU;GAElB,AADAN,EAAMR,OAAOe,UAAUD,CAAK,GACvBA,EAAME,oBAAkBR,EAAML,QAAQ;EAC7C,GAACc,EAAAN,SAEAH,EAAMR,OAAOkB,KAAK,GAAAC,GAAAC,MAAA;GAAA,IAAAC,IAXRX,EAAS,IAAI,iBAAiB,gBAAcY,IAChDzB,EACL,sFACAO,EAAcI,EAAMP,UACpBO,EAAMN,KACR;GAAC,OAAAmB,MAAAD,EAAAG,KAAAC,EAAAb,GAAA,aAAAS,EAAAG,IAAAF,CAAA,GAAAC,MAAAF,EAAAK,KAAAC,EAAAf,GAAAS,EAAAK,IAAAH,CAAA,GAAAF;EAAA,GAAA;GAAAG,GAAAI,KAAAA;GAAAF,GAAAE,KAAAA;EAAA,CAAA,GAAAhB;CAAA,EAAA,CAAA;AASP;AAACiB,EAAA,CAAA,OAAA,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { JSX } from 'solid-js';
2
+ import { ToastT } from './Toast.types';
3
+ /**
4
+ * toast 的操作区:`action` 与 `cancel` 各自既可以是"带 label 的操作对象",
5
+ * 也可以是任意自定义元素。两种形态互斥,因此这里成对处理:
6
+ * - 操作对象 → 复用 `ToastActionButton`(关闭语义由 `onClose` 注入);
7
+ * - 自定义元素 → 原样渲染,不附加任何行为。
8
+ */
9
+ export declare function ToastActions(props: {
10
+ toast: ToastT;
11
+ onClose: () => void;
12
+ }): JSX.Element;
@@ -0,0 +1,65 @@
1
+ import { isAction as e } from "./Toast.types.js";
2
+ import { getToastAction as t } from "./Toast.utils.js";
3
+ import { ToastActionButton as n } from "./ToastActionButton.js";
4
+ import { createComponent as r, memo as i } from "solid-js/web";
5
+ import { Show as a } from "solid-js";
6
+ //#region src/components/toast/Toast/ToastActions.tsx
7
+ function o(o) {
8
+ let s = () => o.toast.action, c = () => o.toast.cancel;
9
+ return [
10
+ r(a, {
11
+ get when() {
12
+ return t(s());
13
+ },
14
+ children: (e) => r(n, {
15
+ get action() {
16
+ return e();
17
+ },
18
+ variant: "action",
19
+ get class() {
20
+ return o.toast.classes?.actionButton;
21
+ },
22
+ get onClose() {
23
+ return o.onClose;
24
+ }
25
+ })
26
+ }),
27
+ r(a, {
28
+ get when() {
29
+ return t(c());
30
+ },
31
+ children: (e) => r(n, {
32
+ get action() {
33
+ return e();
34
+ },
35
+ variant: "cancel",
36
+ get class() {
37
+ return o.toast.classes?.cancelButton;
38
+ },
39
+ get onClose() {
40
+ return o.onClose;
41
+ }
42
+ })
43
+ }),
44
+ r(a, {
45
+ get when() {
46
+ return i(() => !!s())() && !e(s());
47
+ },
48
+ get children() {
49
+ return s();
50
+ }
51
+ }),
52
+ r(a, {
53
+ get when() {
54
+ return i(() => !!c())() && !e(c());
55
+ },
56
+ get children() {
57
+ return c();
58
+ }
59
+ })
60
+ ];
61
+ }
62
+ //#endregion
63
+ export { o as ToastActions };
64
+
65
+ //# sourceMappingURL=ToastActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastActions.js","names":["Show","JSX","isAction","ToastT","getToastAction","ToastActionButton","ToastActions","props","toast","onClose","action","cancel","_$createComponent","when","children","entry","variant","class","classes","actionButton","cancelButton","_$memo","Element","_$createComponent","_$memo","ToastActions","action","props","cancel","createComponent","Show","getToastAction","ToastActionButton","entry","\"class\"","memo","isAction"],"sources":["../../../../src/components/toast/Toast/ToastActions.tsx"],"sourcesContent":["import { Show, type JSX } from \"solid-js\";\nimport { isAction, type ToastT } from \"./Toast.types\";\nimport { getToastAction } from \"./Toast.utils\";\nimport { ToastActionButton } from \"./ToastActionButton\";\n\n/**\n * toast 的操作区:`action` 与 `cancel` 各自既可以是\"带 label 的操作对象\",\n * 也可以是任意自定义元素。两种形态互斥,因此这里成对处理:\n * - 操作对象 → 复用 `ToastActionButton`(关闭语义由 `onClose` 注入);\n * - 自定义元素 → 原样渲染,不附加任何行为。\n */\nexport function ToastActions(props: { toast: ToastT; onClose: () => void }) {\n const action = () => props.toast.action;\n const cancel = () => props.toast.cancel;\n\n return (\n <>\n <Show when={getToastAction(action())}>\n {(entry) => (\n <ToastActionButton\n action={entry()}\n variant=\"action\"\n class={props.toast.classes?.actionButton}\n onClose={props.onClose}\n />\n )}\n </Show>\n\n <Show when={getToastAction(cancel())}>\n {(entry) => (\n <ToastActionButton\n action={entry()}\n variant=\"cancel\"\n class={props.toast.classes?.cancelButton}\n onClose={props.onClose}\n />\n )}\n </Show>\n\n <Show when={action() && !isAction(action())}>\n {action() as JSX.Element}\n </Show>\n <Show when={cancel() && !isAction(cancel())}>\n {cancel() as JSX.Element}\n </Show>\n </>\n );\n}\n"],"mappings":";;;;;;AAWA,SAAgBM,EAAaC,GAA+C;CAC1E,IAAMG,UAAeH,EAAMC,MAAME,QAC3BC,UAAeJ,EAAMC,MAAMG;CAEjC,OAAA;EAAAC,EAEKZ,GAAI;GAAA,IAACa,OAAI;IAAA,OAAET,EAAeM,EAAO,CAAC;GAAC;GAAAI,WAChCC,MAAKH,EACJP,GAAiB;IAAA,IAChBK,SAAM;KAAA,OAAEK,EAAM;IAAC;IACfC,SAAO;IAAA,IAAAkB,QAAA;KAAA,OACA3B,EAAMC,MAAMU,SAASC;IAAY;IAAA,IACxCV,UAAO;KAAA,OAAEF,EAAME;IAAO;GAAA,CAAA;EAEzB,CAAA;EAAAG,EAGFZ,GAAI;GAAA,IAACa,OAAI;IAAA,OAAET,EAAeO,EAAO,CAAC;GAAC;GAAAG,WAChCC,MAAKH,EACJP,GAAiB;IAAA,IAChBK,SAAM;KAAA,OAAEK,EAAM;IAAC;IACfC,SAAO;IAAA,IAAAkB,QAAA;KAAA,OACA3B,EAAMC,MAAMU,SAASE;IAAY;IAAA,IACxCX,UAAO;KAAA,OAAEF,EAAME;IAAO;GAAA,CAAA;EAEzB,CAAA;EAAAG,EAGFZ,GAAI;GAAA,IAACa,OAAI;IAAA,OAAEQ,QAAA,CAAA,CAAAX,EAAO,CAAC,CAAA,CAAA,KAAI,CAACR,EAASQ,EAAO,CAAC;GAAC;GAAA,IAAAI,WAAA;IAAA,OACxCJ,EAAO;GAAgB;EAAA,CAAA;EAAAE,EAEzBZ,GAAI;GAAA,IAACa,OAAI;IAAA,OAAEQ,QAAA,CAAA,CAAAV,EAAO,CAAC,CAAA,CAAA,KAAI,CAACT,EAASS,EAAO,CAAC;GAAC;GAAA,IAAAG,WAAA;IAAA,OACxCH,EAAO;GAAgB;EAAA,CAAA;CAAA;AAIhC"}
@@ -0,0 +1,12 @@
1
+ import { ToastT } from './Toast.types';
2
+ /**
3
+ * 关闭按钮。只负责"长什么样 + 报告点击",是否显示、点了之后做什么
4
+ * 都由调用方决定(关闭本身属于生命周期,不在渲染层)。
5
+ */
6
+ export declare function ToastCloseButton(props: {
7
+ ariaLabel?: string;
8
+ class?: string;
9
+ onClose: () => void;
10
+ }): import('solid-js').JSX.Element;
11
+ /** 关闭按钮的可见性:显式开启、可关闭、且不是常驻的 loading */
12
+ export declare function isCloseButtonVisible(toast: ToastT, closeButton: boolean): boolean;