@neut/ui 0.0.16 → 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 (1031) 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/Bubble/Bubble.d.ts +3 -0
  67. package/dist/components/bubble/Bubble/Bubble.js +39 -0
  68. package/dist/components/bubble/Bubble/Bubble.js.map +1 -0
  69. package/dist/components/bubble/Bubble/Bubble.styles.d.ts +7 -0
  70. package/dist/components/bubble/Bubble/Bubble.styles.js +18 -0
  71. package/dist/components/bubble/Bubble/Bubble.styles.js.map +1 -0
  72. package/dist/components/bubble/Bubble/Bubble.types.d.ts +8 -0
  73. package/dist/components/bubble/Bubble/index.d.ts +2 -0
  74. package/dist/components/bubble/BubbleContent/BubbleContent.d.ts +7 -0
  75. package/dist/components/bubble/BubbleContent/BubbleContent.js +28 -0
  76. package/dist/components/bubble/BubbleContent/BubbleContent.js.map +1 -0
  77. package/dist/components/bubble/BubbleContent/BubbleContent.styles.d.ts +1 -0
  78. package/dist/components/bubble/BubbleContent/BubbleContent.styles.js +6 -0
  79. package/dist/components/bubble/BubbleContent/BubbleContent.styles.js.map +1 -0
  80. package/dist/components/bubble/BubbleContent/BubbleContent.types.d.ts +3 -0
  81. package/dist/components/bubble/BubbleContent/index.d.ts +2 -0
  82. package/dist/components/bubble/BubbleGroup/BubbleGroup.d.ts +3 -0
  83. package/dist/components/bubble/BubbleGroup/BubbleGroup.js +24 -0
  84. package/dist/components/bubble/BubbleGroup/BubbleGroup.js.map +1 -0
  85. package/dist/components/bubble/BubbleGroup/BubbleGroup.types.d.ts +2 -0
  86. package/dist/components/bubble/BubbleGroup/index.d.ts +2 -0
  87. package/dist/components/bubble/BubbleReactions/BubbleReactions.d.ts +6 -0
  88. package/dist/components/bubble/BubbleReactions/BubbleReactions.js +42 -0
  89. package/dist/components/bubble/BubbleReactions/BubbleReactions.js.map +1 -0
  90. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.d.ts +4 -0
  91. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js +22 -0
  92. package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js.map +1 -0
  93. package/dist/components/bubble/BubbleReactions/BubbleReactions.types.d.ts +4 -0
  94. package/dist/components/bubble/BubbleReactions/index.d.ts +2 -0
  95. package/dist/components/bubble/index.d.ts +8 -0
  96. package/dist/components/bubble/index.js +5 -0
  97. package/dist/components/button/Button.js +3 -0
  98. package/dist/components/button/Button.js.map +1 -1
  99. package/dist/components/button-group/ButtonGroup/ButtonGroup.js +3 -0
  100. package/dist/components/button-group/ButtonGroup/ButtonGroup.js.map +1 -1
  101. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js +16 -7
  102. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js.map +1 -1
  103. package/dist/components/calendar/Calendar/Calendar.d.ts +2 -3
  104. package/dist/components/calendar/Calendar/Calendar.js +89 -264
  105. package/dist/components/calendar/Calendar/Calendar.js.map +1 -1
  106. package/dist/components/calendar/Calendar/Calendar.options.d.ts +43 -0
  107. package/dist/components/calendar/Calendar/Calendar.options.js +38 -0
  108. package/dist/components/calendar/Calendar/Calendar.options.js.map +1 -0
  109. package/dist/components/calendar/Calendar/Calendar.selection.d.ts +16 -0
  110. package/dist/components/calendar/Calendar/Calendar.selection.js +50 -0
  111. package/dist/components/calendar/Calendar/Calendar.selection.js.map +1 -0
  112. package/dist/components/calendar/Calendar/Calendar.styles.d.ts +8 -0
  113. package/dist/components/calendar/Calendar/Calendar.styles.js +32 -0
  114. package/dist/components/calendar/Calendar/Calendar.styles.js.map +1 -0
  115. package/dist/components/calendar/Calendar/Calendar.utils.d.ts +3 -1
  116. package/dist/components/calendar/Calendar/Calendar.utils.js +4 -1
  117. package/dist/components/calendar/Calendar/Calendar.utils.js.map +1 -1
  118. package/dist/components/calendar/Calendar/CalendarDay.d.ts +28 -0
  119. package/dist/components/calendar/Calendar/CalendarDay.js +41 -0
  120. package/dist/components/calendar/Calendar/CalendarDay.js.map +1 -0
  121. package/dist/components/calendar/Calendar/CalendarMonth.d.ts +35 -0
  122. package/dist/components/calendar/Calendar/CalendarMonth.js +127 -0
  123. package/dist/components/calendar/Calendar/CalendarMonth.js.map +1 -0
  124. package/dist/components/calendar/Calendar/CalendarMonthCaption.d.ts +22 -0
  125. package/dist/components/calendar/Calendar/CalendarMonthCaption.js +103 -0
  126. package/dist/components/calendar/Calendar/CalendarMonthCaption.js.map +1 -0
  127. package/dist/components/calendar/index.js +3 -2
  128. package/dist/components/card/Card/Card.js +3 -0
  129. package/dist/components/card/Card/Card.js.map +1 -1
  130. package/dist/components/card/CardAction/CardAction.js +8 -3
  131. package/dist/components/card/CardAction/CardAction.js.map +1 -1
  132. package/dist/components/card/CardContent/CardContent.js +8 -3
  133. package/dist/components/card/CardContent/CardContent.js.map +1 -1
  134. package/dist/components/card/CardDescription/CardDescription.js +8 -3
  135. package/dist/components/card/CardDescription/CardDescription.js.map +1 -1
  136. package/dist/components/card/CardFooter/CardFooter.js +8 -3
  137. package/dist/components/card/CardFooter/CardFooter.js.map +1 -1
  138. package/dist/components/card/CardHeader/CardHeader.js +8 -3
  139. package/dist/components/card/CardHeader/CardHeader.js.map +1 -1
  140. package/dist/components/card/CardTitle/CardTitle.js +8 -3
  141. package/dist/components/card/CardTitle/CardTitle.js.map +1 -1
  142. package/dist/components/carousel/Carousel/Carousel.context.js +1 -1
  143. package/dist/components/carousel/Carousel/Carousel.context.js.map +1 -1
  144. package/dist/components/carousel/Carousel/Carousel.js +19 -12
  145. package/dist/components/carousel/Carousel/Carousel.js.map +1 -1
  146. package/dist/components/carousel/Carousel/useKeyboardNavigation.d.ts +11 -1
  147. package/dist/components/carousel/Carousel/useKeyboardNavigation.js +5 -4
  148. package/dist/components/carousel/Carousel/useKeyboardNavigation.js.map +1 -1
  149. package/dist/components/carousel/CarouselContent/CarouselContent.js +8 -3
  150. package/dist/components/carousel/CarouselContent/CarouselContent.js.map +1 -1
  151. package/dist/components/carousel/CarouselNext/CarouselNext.js +29 -16
  152. package/dist/components/carousel/CarouselNext/CarouselNext.js.map +1 -1
  153. package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js +29 -16
  154. package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js.map +1 -1
  155. package/dist/components/checkbox/Checkbox/Checkbox.js +32 -25
  156. package/dist/components/checkbox/Checkbox/Checkbox.js.map +1 -1
  157. package/dist/components/collapsible/Collapsible/Collapsible.context.js +1 -1
  158. package/dist/components/collapsible/Collapsible/Collapsible.context.js.map +1 -1
  159. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js +13 -12
  160. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js.map +1 -1
  161. package/dist/components/combobox/Combobox/Combobox.js +52 -52
  162. package/dist/components/combobox/Combobox/Combobox.js.map +1 -1
  163. package/dist/components/combobox/Combobox/Combobox.types.d.ts +15 -6
  164. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js +7 -3
  165. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js.map +1 -1
  166. package/dist/components/combobox/ComboboxClear/ComboboxClear.js +1 -1
  167. package/dist/components/combobox/ComboboxClear/ComboboxClear.js.map +1 -1
  168. package/dist/components/combobox/ComboboxInput/ComboboxInput.js +26 -10
  169. package/dist/components/combobox/ComboboxInput/ComboboxInput.js.map +1 -1
  170. package/dist/components/combobox/ComboboxItem/ComboboxItem.js +6 -5
  171. package/dist/components/combobox/ComboboxItem/ComboboxItem.js.map +1 -1
  172. package/dist/components/combobox/ComboboxList/ComboboxList.js +17 -11
  173. package/dist/components/combobox/ComboboxList/ComboboxList.js.map +1 -1
  174. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js +8 -1
  175. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js.map +1 -1
  176. package/dist/components/context-menu/ContextMenu/ContextMenu.js +10 -8
  177. package/dist/components/context-menu/ContextMenu/ContextMenu.js.map +1 -1
  178. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.d.ts +33 -0
  179. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.js +41 -0
  180. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.js.map +1 -0
  181. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.d.ts +25 -0
  182. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.js +20 -0
  183. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.js.map +1 -0
  184. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.d.ts +31 -0
  185. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.js +39 -0
  186. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.js.map +1 -0
  187. package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js +70 -136
  188. package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js.map +1 -1
  189. package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js +2 -1
  190. package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js.map +1 -1
  191. package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js +20 -10
  192. package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js.map +1 -1
  193. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.d.ts +24 -0
  194. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.js +26 -0
  195. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.js.map +1 -0
  196. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.d.ts +35 -0
  197. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.js +17 -0
  198. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.js.map +1 -0
  199. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.d.ts +9 -11
  200. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js +36 -33
  201. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js.map +1 -1
  202. package/dist/components/context-menu/context-menu.keyboard.d.ts +29 -0
  203. package/dist/components/context-menu/context-menu.keyboard.js +52 -0
  204. package/dist/components/context-menu/context-menu.keyboard.js.map +1 -0
  205. package/dist/components/context-menu/context-menu.typeahead.d.ts +27 -0
  206. package/dist/components/context-menu/context-menu.typeahead.js +19 -0
  207. package/dist/components/context-menu/context-menu.typeahead.js.map +1 -0
  208. package/dist/components/context-menu/context-menu.utils.d.ts +5 -2
  209. package/dist/components/context-menu/context-menu.utils.js +17 -39
  210. package/dist/components/context-menu/context-menu.utils.js.map +1 -1
  211. package/dist/components/date-picker/DatePicker/DatePicker.js +6 -0
  212. package/dist/components/date-picker/DatePicker/DatePicker.js.map +1 -1
  213. package/dist/components/dialog/Dialog/Dialog.context.js +1 -1
  214. package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
  215. package/dist/components/dialog/Dialog/Dialog.js +24 -15
  216. package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
  217. package/dist/components/dialog/Dialog/Dialog.types.d.ts +5 -0
  218. package/dist/components/dialog/DialogClose/DialogClose.js +20 -19
  219. package/dist/components/dialog/DialogClose/DialogClose.js.map +1 -1
  220. package/dist/components/dialog/DialogContent/DialogContent.context.js +1 -1
  221. package/dist/components/dialog/DialogContent/DialogContent.context.js.map +1 -1
  222. package/dist/components/dialog/DialogDescription/DialogDescription.js +8 -3
  223. package/dist/components/dialog/DialogDescription/DialogDescription.js.map +1 -1
  224. package/dist/components/dialog/DialogFooter/DialogFooter.js +8 -3
  225. package/dist/components/dialog/DialogFooter/DialogFooter.js.map +1 -1
  226. package/dist/components/dialog/DialogHeader/DialogHeader.js +8 -3
  227. package/dist/components/dialog/DialogHeader/DialogHeader.js.map +1 -1
  228. package/dist/components/dialog/DialogOverlay/DialogOverlay.js +3 -0
  229. package/dist/components/dialog/DialogOverlay/DialogOverlay.js.map +1 -1
  230. package/dist/components/dialog/DialogSurface/DialogSurface.js +34 -26
  231. package/dist/components/dialog/DialogSurface/DialogSurface.js.map +1 -1
  232. package/dist/components/dialog/DialogTitle/DialogTitle.js +8 -3
  233. package/dist/components/dialog/DialogTitle/DialogTitle.js.map +1 -1
  234. package/dist/components/drawer/Drawer/Drawer.context.d.ts +3 -0
  235. package/dist/components/drawer/Drawer/Drawer.context.js +12 -0
  236. package/dist/components/drawer/Drawer/Drawer.context.js.map +1 -0
  237. package/dist/components/drawer/Drawer/Drawer.d.ts +7 -0
  238. package/dist/components/drawer/Drawer/Drawer.js +63 -0
  239. package/dist/components/drawer/Drawer/Drawer.js.map +1 -0
  240. package/dist/components/drawer/Drawer/Drawer.types.d.ts +50 -0
  241. package/dist/components/drawer/Drawer/create-change-event-details.d.ts +3 -0
  242. package/dist/components/drawer/Drawer/create-change-event-details.js +9 -0
  243. package/dist/components/drawer/Drawer/create-change-event-details.js.map +1 -0
  244. package/dist/components/drawer/Drawer/index.d.ts +3 -0
  245. package/dist/components/drawer/DrawerClose/DrawerClose.d.ts +5 -0
  246. package/dist/components/drawer/DrawerClose/DrawerClose.js +26 -0
  247. package/dist/components/drawer/DrawerClose/DrawerClose.js.map +1 -0
  248. package/dist/components/drawer/DrawerClose/index.d.ts +1 -0
  249. package/dist/components/drawer/DrawerContent/DrawerContent.d.ts +6 -0
  250. package/dist/components/drawer/DrawerContent/DrawerContent.js +103 -0
  251. package/dist/components/drawer/DrawerContent/DrawerContent.js.map +1 -0
  252. package/dist/components/drawer/DrawerContent/DrawerContent.styles.d.ts +10 -0
  253. package/dist/components/drawer/DrawerContent/DrawerContent.styles.js +25 -0
  254. package/dist/components/drawer/DrawerContent/DrawerContent.styles.js.map +1 -0
  255. package/dist/components/drawer/DrawerContent/DrawerContent.types.d.ts +2 -0
  256. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.d.ts +32 -0
  257. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.js +36 -0
  258. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.js.map +1 -0
  259. package/dist/components/drawer/DrawerContent/index.d.ts +2 -0
  260. package/dist/components/drawer/DrawerContent/useDrawerSwipe.d.ts +14 -0
  261. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js +36 -0
  262. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js.map +1 -0
  263. package/dist/components/drawer/DrawerDescription/DrawerDescription.d.ts +2 -0
  264. package/dist/components/drawer/DrawerDescription/DrawerDescription.js +28 -0
  265. package/dist/components/drawer/DrawerDescription/DrawerDescription.js.map +1 -0
  266. package/dist/components/drawer/DrawerDescription/DrawerDescription.types.d.ts +2 -0
  267. package/dist/components/drawer/DrawerDescription/index.d.ts +2 -0
  268. package/dist/components/drawer/DrawerFooter/DrawerFooter.d.ts +2 -0
  269. package/dist/components/drawer/DrawerFooter/DrawerFooter.js +24 -0
  270. package/dist/components/drawer/DrawerFooter/DrawerFooter.js.map +1 -0
  271. package/dist/components/drawer/DrawerFooter/DrawerFooter.types.d.ts +2 -0
  272. package/dist/components/drawer/DrawerFooter/index.d.ts +2 -0
  273. package/dist/components/drawer/DrawerHeader/DrawerHeader.d.ts +2 -0
  274. package/dist/components/drawer/DrawerHeader/DrawerHeader.js +24 -0
  275. package/dist/components/drawer/DrawerHeader/DrawerHeader.js.map +1 -0
  276. package/dist/components/drawer/DrawerHeader/DrawerHeader.types.d.ts +2 -0
  277. package/dist/components/drawer/DrawerHeader/index.d.ts +2 -0
  278. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.d.ts +3 -0
  279. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js +43 -0
  280. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js.map +1 -0
  281. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.types.d.ts +2 -0
  282. package/dist/components/drawer/DrawerOverlay/index.d.ts +2 -0
  283. package/dist/components/drawer/DrawerPortal/DrawerPortal.d.ts +2 -0
  284. package/dist/components/drawer/DrawerPortal/DrawerPortal.js +10 -0
  285. package/dist/components/drawer/DrawerPortal/DrawerPortal.js.map +1 -0
  286. package/dist/components/drawer/DrawerPortal/DrawerPortal.types.d.ts +2 -0
  287. package/dist/components/drawer/DrawerPortal/index.d.ts +2 -0
  288. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.d.ts +6 -0
  289. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js +27 -0
  290. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js.map +1 -0
  291. package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.types.d.ts +2 -0
  292. package/dist/components/drawer/DrawerSwipeHandle/index.d.ts +2 -0
  293. package/dist/components/drawer/DrawerTitle/DrawerTitle.d.ts +2 -0
  294. package/dist/components/drawer/DrawerTitle/DrawerTitle.js +28 -0
  295. package/dist/components/drawer/DrawerTitle/DrawerTitle.js.map +1 -0
  296. package/dist/components/drawer/DrawerTitle/DrawerTitle.types.d.ts +2 -0
  297. package/dist/components/drawer/DrawerTitle/index.d.ts +2 -0
  298. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.d.ts +5 -0
  299. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js +38 -0
  300. package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js.map +1 -0
  301. package/dist/components/drawer/DrawerTrigger/index.d.ts +1 -0
  302. package/dist/components/drawer/index.d.ts +20 -0
  303. package/dist/components/drawer/index.js +13 -0
  304. package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js +7 -7
  305. package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js.map +1 -1
  306. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.d.ts +7 -1
  307. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js +10 -10
  308. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js.map +1 -1
  309. package/dist/components/field/Field/Field.js +3 -0
  310. package/dist/components/field/Field/Field.js.map +1 -1
  311. package/dist/components/field/FieldContent/FieldContent.js +8 -3
  312. package/dist/components/field/FieldContent/FieldContent.js.map +1 -1
  313. package/dist/components/field/FieldDescription/FieldDescription.js +8 -3
  314. package/dist/components/field/FieldDescription/FieldDescription.js.map +1 -1
  315. package/dist/components/field/FieldError/FieldError.js +8 -3
  316. package/dist/components/field/FieldError/FieldError.js.map +1 -1
  317. package/dist/components/field/FieldGroup/FieldGroup.js +8 -3
  318. package/dist/components/field/FieldGroup/FieldGroup.js.map +1 -1
  319. package/dist/components/field/FieldLabel/FieldLabel.js +3 -0
  320. package/dist/components/field/FieldLabel/FieldLabel.js.map +1 -1
  321. package/dist/components/field/FieldLegend/FieldLegend.js +3 -0
  322. package/dist/components/field/FieldLegend/FieldLegend.js.map +1 -1
  323. package/dist/components/field/FieldSeparator/FieldSeparator.js +3 -0
  324. package/dist/components/field/FieldSeparator/FieldSeparator.js.map +1 -1
  325. package/dist/components/field/FieldSet/FieldSet.js +8 -3
  326. package/dist/components/field/FieldSet/FieldSet.js.map +1 -1
  327. package/dist/components/field/FieldTitle/FieldTitle.js +8 -3
  328. package/dist/components/field/FieldTitle/FieldTitle.js.map +1 -1
  329. package/dist/components/hover-card/HoverCard/HoverCard.d.ts +7 -0
  330. package/dist/components/hover-card/HoverCard/HoverCard.js +47 -0
  331. package/dist/components/hover-card/HoverCard/HoverCard.js.map +1 -0
  332. package/dist/components/hover-card/HoverCard/index.d.ts +1 -0
  333. package/dist/components/hover-card/HoverCardContent/HoverCardContent.d.ts +6 -0
  334. package/dist/components/hover-card/HoverCardContent/HoverCardContent.js +74 -0
  335. package/dist/components/hover-card/HoverCardContent/HoverCardContent.js.map +1 -0
  336. package/dist/components/hover-card/HoverCardContent/index.d.ts +1 -0
  337. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.d.ts +16 -0
  338. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js +58 -0
  339. package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js.map +1 -0
  340. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.d.ts +4 -0
  341. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js +40 -0
  342. package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js.map +1 -0
  343. package/dist/components/hover-card/HoverCardTrigger/index.d.ts +1 -0
  344. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.d.ts +18 -0
  345. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js +34 -0
  346. package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js.map +1 -0
  347. package/dist/components/hover-card/hover-card.context.d.ts +3 -0
  348. package/dist/components/hover-card/hover-card.context.js +12 -0
  349. package/dist/components/hover-card/hover-card.context.js.map +1 -0
  350. package/dist/components/hover-card/hover-card.types.d.ts +50 -0
  351. package/dist/components/hover-card/index.d.ts +4 -0
  352. package/dist/components/hover-card/index.js +4 -0
  353. package/dist/components/image/Image.utils.d.ts +14 -16
  354. package/dist/components/image/Image.utils.js +146 -190
  355. package/dist/components/image/Image.utils.js.map +1 -1
  356. package/dist/components/image/ImageElement.js +31 -27
  357. package/dist/components/image/ImageElement.js.map +1 -1
  358. package/dist/components/image/lib/blur.d.ts +31 -0
  359. package/dist/components/image/lib/blur.js +24 -0
  360. package/dist/components/image/lib/blur.js.map +1 -0
  361. package/dist/components/image/lib/dev-checks.d.ts +52 -0
  362. package/dist/components/image/lib/handle-loading.d.ts +13 -0
  363. package/dist/components/image/lib/handle-loading.js +20 -0
  364. package/dist/components/image/lib/handle-loading.js.map +1 -0
  365. package/dist/components/image/lib/loader.d.ts +39 -0
  366. package/dist/components/image/lib/loader.js +57 -0
  367. package/dist/components/image/lib/loader.js.map +1 -0
  368. package/dist/components/image/lib/static-import.d.ts +14 -0
  369. package/dist/components/image/lib/static-import.js +17 -0
  370. package/dist/components/image/lib/static-import.js.map +1 -0
  371. package/dist/components/input-group/InputGroup/InputGroup.js +8 -3
  372. package/dist/components/input-group/InputGroup/InputGroup.js.map +1 -1
  373. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js +3 -0
  374. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js.map +1 -1
  375. package/dist/components/input-group/InputGroupButton/InputGroupButton.js +3 -0
  376. package/dist/components/input-group/InputGroupButton/InputGroupButton.js.map +1 -1
  377. package/dist/components/input-group/InputGroupInput/InputGroupInput.js +3 -0
  378. package/dist/components/input-group/InputGroupInput/InputGroupInput.js.map +1 -1
  379. package/dist/components/input-group/InputGroupText/InputGroupText.js +8 -3
  380. package/dist/components/input-group/InputGroupText/InputGroupText.js.map +1 -1
  381. package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js +3 -0
  382. package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js.map +1 -1
  383. package/dist/components/item/Item/Item.js +9 -0
  384. package/dist/components/item/Item/Item.js.map +1 -1
  385. package/dist/components/item/ItemActions/ItemActions.js +8 -3
  386. package/dist/components/item/ItemActions/ItemActions.js.map +1 -1
  387. package/dist/components/item/ItemContent/ItemContent.js +8 -3
  388. package/dist/components/item/ItemContent/ItemContent.js.map +1 -1
  389. package/dist/components/item/ItemDescription/ItemDescription.js +8 -3
  390. package/dist/components/item/ItemDescription/ItemDescription.js.map +1 -1
  391. package/dist/components/item/ItemFooter/ItemFooter.js +8 -3
  392. package/dist/components/item/ItemFooter/ItemFooter.js.map +1 -1
  393. package/dist/components/item/ItemGroup/ItemGroup.js +8 -3
  394. package/dist/components/item/ItemGroup/ItemGroup.js.map +1 -1
  395. package/dist/components/item/ItemHeader/ItemHeader.js +8 -3
  396. package/dist/components/item/ItemHeader/ItemHeader.js.map +1 -1
  397. package/dist/components/item/ItemMedia/ItemMedia.js +3 -0
  398. package/dist/components/item/ItemMedia/ItemMedia.js.map +1 -1
  399. package/dist/components/item/ItemSeparator/ItemSeparator.js +3 -0
  400. package/dist/components/item/ItemSeparator/ItemSeparator.js.map +1 -1
  401. package/dist/components/item/ItemTitle/ItemTitle.js +8 -3
  402. package/dist/components/item/ItemTitle/ItemTitle.js.map +1 -1
  403. package/dist/components/kbd/Kbd.js +16 -6
  404. package/dist/components/kbd/Kbd.js.map +1 -1
  405. package/dist/components/label/Label.js +3 -0
  406. package/dist/components/label/Label.js.map +1 -1
  407. package/dist/components/marker/Marker/Marker.d.ts +7 -0
  408. package/dist/components/marker/Marker/Marker.js +35 -0
  409. package/dist/components/marker/Marker/Marker.js.map +1 -0
  410. package/dist/components/marker/Marker/Marker.styles.d.ts +3 -0
  411. package/dist/components/marker/Marker/Marker.styles.js +14 -0
  412. package/dist/components/marker/Marker/Marker.styles.js.map +1 -0
  413. package/dist/components/marker/Marker/Marker.types.d.ts +5 -0
  414. package/dist/components/marker/Marker/index.d.ts +3 -0
  415. package/dist/components/marker/MarkerContent/MarkerContent.d.ts +2 -0
  416. package/dist/components/marker/MarkerContent/MarkerContent.js +24 -0
  417. package/dist/components/marker/MarkerContent/MarkerContent.js.map +1 -0
  418. package/dist/components/marker/MarkerContent/MarkerContent.types.d.ts +2 -0
  419. package/dist/components/marker/MarkerContent/index.d.ts +2 -0
  420. package/dist/components/marker/MarkerIcon/MarkerIcon.d.ts +3 -0
  421. package/dist/components/marker/MarkerIcon/MarkerIcon.js +25 -0
  422. package/dist/components/marker/MarkerIcon/MarkerIcon.js.map +1 -0
  423. package/dist/components/marker/MarkerIcon/MarkerIcon.types.d.ts +2 -0
  424. package/dist/components/marker/MarkerIcon/index.d.ts +2 -0
  425. package/dist/components/marker/index.d.ts +6 -0
  426. package/dist/components/marker/index.js +5 -0
  427. package/dist/components/message/Message/Message.d.ts +3 -0
  428. package/dist/components/message/Message/Message.js +31 -0
  429. package/dist/components/message/Message/Message.js.map +1 -0
  430. package/dist/components/message/Message/Message.types.d.ts +5 -0
  431. package/dist/components/message/Message/index.d.ts +2 -0
  432. package/dist/components/message/MessageAvatar/MessageAvatar.d.ts +5 -0
  433. package/dist/components/message/MessageAvatar/MessageAvatar.js +24 -0
  434. package/dist/components/message/MessageAvatar/MessageAvatar.js.map +1 -0
  435. package/dist/components/message/MessageAvatar/MessageAvatar.types.d.ts +2 -0
  436. package/dist/components/message/MessageAvatar/index.d.ts +2 -0
  437. package/dist/components/message/MessageContent/MessageContent.d.ts +3 -0
  438. package/dist/components/message/MessageContent/MessageContent.js +24 -0
  439. package/dist/components/message/MessageContent/MessageContent.js.map +1 -0
  440. package/dist/components/message/MessageContent/MessageContent.types.d.ts +2 -0
  441. package/dist/components/message/MessageContent/index.d.ts +2 -0
  442. package/dist/components/message/MessageFooter/MessageFooter.d.ts +3 -0
  443. package/dist/components/message/MessageFooter/MessageFooter.js +24 -0
  444. package/dist/components/message/MessageFooter/MessageFooter.js.map +1 -0
  445. package/dist/components/message/MessageFooter/MessageFooter.types.d.ts +2 -0
  446. package/dist/components/message/MessageFooter/index.d.ts +2 -0
  447. package/dist/components/message/MessageGroup/MessageGroup.d.ts +3 -0
  448. package/dist/components/message/MessageGroup/MessageGroup.js +24 -0
  449. package/dist/components/message/MessageGroup/MessageGroup.js.map +1 -0
  450. package/dist/components/message/MessageGroup/MessageGroup.types.d.ts +2 -0
  451. package/dist/components/message/MessageGroup/index.d.ts +2 -0
  452. package/dist/components/message/MessageHeader/MessageHeader.d.ts +3 -0
  453. package/dist/components/message/MessageHeader/MessageHeader.js +24 -0
  454. package/dist/components/message/MessageHeader/MessageHeader.js.map +1 -0
  455. package/dist/components/message/MessageHeader/MessageHeader.types.d.ts +2 -0
  456. package/dist/components/message/MessageHeader/index.d.ts +2 -0
  457. package/dist/components/message/index.d.ts +12 -0
  458. package/dist/components/message/index.js +7 -0
  459. package/dist/components/message-scroller/MessageScroller/MessageScroller.d.ts +3 -0
  460. package/dist/components/message-scroller/MessageScroller/MessageScroller.js +35 -0
  461. package/dist/components/message-scroller/MessageScroller/MessageScroller.js.map +1 -0
  462. package/dist/components/message-scroller/MessageScroller/index.d.ts +1 -0
  463. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.d.ts +6 -0
  464. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js +90 -0
  465. package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js.map +1 -0
  466. package/dist/components/message-scroller/MessageScrollerButton/index.d.ts +1 -0
  467. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.d.ts +6 -0
  468. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js +46 -0
  469. package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js.map +1 -0
  470. package/dist/components/message-scroller/MessageScrollerContent/index.d.ts +1 -0
  471. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.d.ts +6 -0
  472. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js +42 -0
  473. package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js.map +1 -0
  474. package/dist/components/message-scroller/MessageScrollerItem/index.d.ts +1 -0
  475. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.d.ts +4 -0
  476. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js +37 -0
  477. package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js.map +1 -0
  478. package/dist/components/message-scroller/MessageScrollerProvider/index.d.ts +1 -0
  479. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.d.ts +6 -0
  480. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js +55 -0
  481. package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js.map +1 -0
  482. package/dist/components/message-scroller/MessageScrollerViewport/index.d.ts +1 -0
  483. package/dist/components/message-scroller/index.d.ts +10 -0
  484. package/dist/components/message-scroller/index.js +10 -0
  485. package/dist/components/message-scroller/message-scroller.anchoring.d.ts +60 -0
  486. package/dist/components/message-scroller/message-scroller.anchoring.js +139 -0
  487. package/dist/components/message-scroller/message-scroller.anchoring.js.map +1 -0
  488. package/dist/components/message-scroller/message-scroller.anchors.d.ts +12 -0
  489. package/dist/components/message-scroller/message-scroller.anchors.js +23 -0
  490. package/dist/components/message-scroller/message-scroller.anchors.js.map +1 -0
  491. package/dist/components/message-scroller/message-scroller.commands.d.ts +43 -0
  492. package/dist/components/message-scroller/message-scroller.commands.js +51 -0
  493. package/dist/components/message-scroller/message-scroller.commands.js.map +1 -0
  494. package/dist/components/message-scroller/message-scroller.context.d.ts +3 -0
  495. package/dist/components/message-scroller/message-scroller.context.js +12 -0
  496. package/dist/components/message-scroller/message-scroller.context.js.map +1 -0
  497. package/dist/components/message-scroller/message-scroller.dom-measure.d.ts +29 -0
  498. package/dist/components/message-scroller/message-scroller.dom-measure.js +37 -0
  499. package/dist/components/message-scroller/message-scroller.dom-measure.js.map +1 -0
  500. package/dist/components/message-scroller/message-scroller.measure.d.ts +27 -0
  501. package/dist/components/message-scroller/message-scroller.measure.js +21 -0
  502. package/dist/components/message-scroller/message-scroller.measure.js.map +1 -0
  503. package/dist/components/message-scroller/message-scroller.scroll-state.d.ts +54 -0
  504. package/dist/components/message-scroller/message-scroller.scroll-state.js +74 -0
  505. package/dist/components/message-scroller/message-scroller.scroll-state.js.map +1 -0
  506. package/dist/components/message-scroller/message-scroller.scroll-target.d.ts +27 -0
  507. package/dist/components/message-scroller/message-scroller.scroll-target.js +33 -0
  508. package/dist/components/message-scroller/message-scroller.scroll-target.js.map +1 -0
  509. package/dist/components/message-scroller/message-scroller.types.d.ts +92 -0
  510. package/dist/components/message-scroller/message-scroller.utils.d.ts +14 -0
  511. package/dist/components/message-scroller/message-scroller.utils.js +10 -0
  512. package/dist/components/message-scroller/message-scroller.utils.js.map +1 -0
  513. package/dist/components/message-scroller/message-scroller.visibility.d.ts +43 -0
  514. package/dist/components/message-scroller/message-scroller.visibility.js +82 -0
  515. package/dist/components/message-scroller/message-scroller.visibility.js.map +1 -0
  516. package/dist/components/message-scroller/useMessageScroller.d.ts +6 -0
  517. package/dist/components/message-scroller/useMessageScroller.js +14 -0
  518. package/dist/components/message-scroller/useMessageScroller.js.map +1 -0
  519. package/dist/components/message-scroller/useMessageScrollerEngine.d.ts +15 -0
  520. package/dist/components/message-scroller/useMessageScrollerEngine.js +125 -0
  521. package/dist/components/message-scroller/useMessageScrollerEngine.js.map +1 -0
  522. package/dist/components/message-scroller/useMessageScrollerScrollable.d.ts +5 -0
  523. package/dist/components/message-scroller/useMessageScrollerScrollable.js +13 -0
  524. package/dist/components/message-scroller/useMessageScrollerScrollable.js.map +1 -0
  525. package/dist/components/message-scroller/useMessageScrollerVisibility.d.ts +7 -0
  526. package/dist/components/message-scroller/useMessageScrollerVisibility.js +17 -0
  527. package/dist/components/message-scroller/useMessageScrollerVisibility.js.map +1 -0
  528. package/dist/components/number-input/NumberInput/NumberInput.js +21 -19
  529. package/dist/components/number-input/NumberInput/NumberInput.js.map +1 -1
  530. package/dist/components/number-input/NumberInput/NumberInput.utils.d.ts +6 -2
  531. package/dist/components/number-input/NumberInput/NumberInput.utils.js +1 -3
  532. package/dist/components/number-input/NumberInput/NumberInput.utils.js.map +1 -1
  533. package/dist/components/number-input/NumberInput/create-change-event-details.d.ts +1 -2
  534. package/dist/components/number-input/NumberInput/create-change-event-details.js +4 -20
  535. package/dist/components/number-input/NumberInput/create-change-event-details.js.map +1 -1
  536. package/dist/components/pagination/Pagination/Pagination.js +8 -3
  537. package/dist/components/pagination/Pagination/Pagination.js.map +1 -1
  538. package/dist/components/pagination/PaginationContent/PaginationContent.js +8 -3
  539. package/dist/components/pagination/PaginationContent/PaginationContent.js.map +1 -1
  540. package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js +8 -3
  541. package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js.map +1 -1
  542. package/dist/components/pagination/PaginationLink/PaginationLink.js +3 -0
  543. package/dist/components/pagination/PaginationLink/PaginationLink.js.map +1 -1
  544. package/dist/components/pagination/PaginationNext/PaginationNext.js +3 -0
  545. package/dist/components/pagination/PaginationNext/PaginationNext.js.map +1 -1
  546. package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js +3 -0
  547. package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js.map +1 -1
  548. package/dist/components/popover/PopoverContent/PopoverContent.js +3 -0
  549. package/dist/components/popover/PopoverContent/PopoverContent.js.map +1 -1
  550. package/dist/components/popover/PopoverContent/PopoverContent.utils.d.ts +6 -13
  551. package/dist/components/popover/PopoverContent/PopoverContent.utils.js +7 -30
  552. package/dist/components/popover/PopoverContent/PopoverContent.utils.js.map +1 -1
  553. package/dist/components/progress/Progress/Progress.context.js +1 -1
  554. package/dist/components/progress/Progress/Progress.context.js.map +1 -1
  555. package/dist/components/progress/Progress/Progress.js +3 -0
  556. package/dist/components/progress/Progress/Progress.js.map +1 -1
  557. package/dist/components/progress/ProgressIndicator/ProgressIndicator.js +3 -0
  558. package/dist/components/progress/ProgressIndicator/ProgressIndicator.js.map +1 -1
  559. package/dist/components/progress/ProgressLabel/ProgressLabel.js +8 -3
  560. package/dist/components/progress/ProgressLabel/ProgressLabel.js.map +1 -1
  561. package/dist/components/progress/ProgressTrack/ProgressTrack.js +3 -0
  562. package/dist/components/progress/ProgressTrack/ProgressTrack.js.map +1 -1
  563. package/dist/components/progress/ProgressValue/ProgressValue.js +8 -3
  564. package/dist/components/progress/ProgressValue/ProgressValue.js.map +1 -1
  565. package/dist/components/questionnaire/Questionnaire/Questionnaire.d.ts +3 -0
  566. package/dist/components/questionnaire/Questionnaire/Questionnaire.js +68 -0
  567. package/dist/components/questionnaire/Questionnaire/Questionnaire.js.map +1 -0
  568. package/dist/components/questionnaire/Questionnaire/index.d.ts +1 -0
  569. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.d.ts +3 -0
  570. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js +24 -0
  571. package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js.map +1 -0
  572. package/dist/components/questionnaire/QuestionnaireActions/index.d.ts +1 -0
  573. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.d.ts +3 -0
  574. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js +99 -0
  575. package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js.map +1 -0
  576. package/dist/components/questionnaire/QuestionnaireChoice/index.d.ts +1 -0
  577. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.d.ts +48 -0
  578. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.js +23 -0
  579. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.js.map +1 -0
  580. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.d.ts +38 -0
  581. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js +80 -0
  582. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js.map +1 -0
  583. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.d.ts +3 -0
  584. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js +28 -0
  585. package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js.map +1 -0
  586. package/dist/components/questionnaire/QuestionnaireChoices/index.d.ts +1 -0
  587. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.d.ts +4 -0
  588. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js +30 -0
  589. package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js.map +1 -0
  590. package/dist/components/questionnaire/QuestionnaireDescription/index.d.ts +1 -0
  591. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.d.ts +4 -0
  592. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js +43 -0
  593. package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js.map +1 -0
  594. package/dist/components/questionnaire/QuestionnaireError/index.d.ts +1 -0
  595. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.d.ts +3 -0
  596. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js +78 -0
  597. package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js.map +1 -0
  598. package/dist/components/questionnaire/QuestionnaireInput/index.d.ts +1 -0
  599. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.d.ts +37 -0
  600. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js +61 -0
  601. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js.map +1 -0
  602. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.d.ts +3 -0
  603. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js +88 -0
  604. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js.map +1 -0
  605. package/dist/components/questionnaire/QuestionnaireItem/index.d.ts +1 -0
  606. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.d.ts +5 -0
  607. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js +104 -0
  608. package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js.map +1 -0
  609. package/dist/components/questionnaire/QuestionnaireNavigation/index.d.ts +1 -0
  610. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.d.ts +4 -0
  611. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js +62 -0
  612. package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js.map +1 -0
  613. package/dist/components/questionnaire/QuestionnaireProgress/index.d.ts +1 -0
  614. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.d.ts +4 -0
  615. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js +27 -0
  616. package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js.map +1 -0
  617. package/dist/components/questionnaire/QuestionnaireTitle/index.d.ts +1 -0
  618. package/dist/components/questionnaire/index.d.ts +12 -0
  619. package/dist/components/questionnaire/index.js +12 -0
  620. package/dist/components/questionnaire/questionnaire.answers.d.ts +42 -0
  621. package/dist/components/questionnaire/questionnaire.answers.js +62 -0
  622. package/dist/components/questionnaire/questionnaire.answers.js.map +1 -0
  623. package/dist/components/questionnaire/questionnaire.aria.d.ts +34 -0
  624. package/dist/components/questionnaire/questionnaire.aria.js +28 -0
  625. package/dist/components/questionnaire/questionnaire.aria.js.map +1 -0
  626. package/dist/components/questionnaire/questionnaire.context.d.ts +65 -0
  627. package/dist/components/questionnaire/questionnaire.context.js +18 -0
  628. package/dist/components/questionnaire/questionnaire.context.js.map +1 -0
  629. package/dist/components/questionnaire/questionnaire.dom-watch.d.ts +9 -0
  630. package/dist/components/questionnaire/questionnaire.dom-watch.js +18 -0
  631. package/dist/components/questionnaire/questionnaire.dom-watch.js.map +1 -0
  632. package/dist/components/questionnaire/questionnaire.focus.d.ts +26 -0
  633. package/dist/components/questionnaire/questionnaire.focus.js +19 -0
  634. package/dist/components/questionnaire/questionnaire.focus.js.map +1 -0
  635. package/dist/components/questionnaire/questionnaire.item-view.d.ts +50 -0
  636. package/dist/components/questionnaire/questionnaire.item-view.js +36 -0
  637. package/dist/components/questionnaire/questionnaire.item-view.js.map +1 -0
  638. package/dist/components/questionnaire/questionnaire.keys.d.ts +29 -0
  639. package/dist/components/questionnaire/questionnaire.keys.js +34 -0
  640. package/dist/components/questionnaire/questionnaire.keys.js.map +1 -0
  641. package/dist/components/questionnaire/questionnaire.registry.d.ts +21 -0
  642. package/dist/components/questionnaire/questionnaire.registry.js +15 -0
  643. package/dist/components/questionnaire/questionnaire.registry.js.map +1 -0
  644. package/dist/components/questionnaire/questionnaire.shortcuts.d.ts +24 -0
  645. package/dist/components/questionnaire/questionnaire.shortcuts.js +31 -0
  646. package/dist/components/questionnaire/questionnaire.shortcuts.js.map +1 -0
  647. package/dist/components/questionnaire/questionnaire.types.d.ts +82 -0
  648. package/dist/components/questionnaire/questionnaire.utils.d.ts +40 -0
  649. package/dist/components/questionnaire/questionnaire.utils.js +41 -0
  650. package/dist/components/questionnaire/questionnaire.utils.js.map +1 -0
  651. package/dist/components/questionnaire/questionnaire.validation.d.ts +43 -0
  652. package/dist/components/questionnaire/questionnaire.validation.js +17 -0
  653. package/dist/components/questionnaire/questionnaire.validation.js.map +1 -0
  654. package/dist/components/questionnaire/useQuestionnaireItem.d.ts +32 -0
  655. package/dist/components/questionnaire/useQuestionnaireItem.js +103 -0
  656. package/dist/components/questionnaire/useQuestionnaireItem.js.map +1 -0
  657. package/dist/components/questionnaire/useQuestionnaireRoot.d.ts +30 -0
  658. package/dist/components/questionnaire/useQuestionnaireRoot.js +123 -0
  659. package/dist/components/questionnaire/useQuestionnaireRoot.js.map +1 -0
  660. package/dist/components/radio-group/RadioGroup/RadioGroup.js +3 -0
  661. package/dist/components/radio-group/RadioGroup/RadioGroup.js.map +1 -1
  662. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js +3 -0
  663. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js.map +1 -1
  664. package/dist/components/resizable/ResizableHandle/ResizableHandle.d.ts +6 -0
  665. package/dist/components/resizable/ResizableHandle/ResizableHandle.js +92 -0
  666. package/dist/components/resizable/ResizableHandle/ResizableHandle.js.map +1 -0
  667. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.d.ts +3 -0
  668. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js +6 -0
  669. package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js.map +1 -0
  670. package/dist/components/resizable/ResizableHandle/index.d.ts +1 -0
  671. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.d.ts +37 -0
  672. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.js +37 -0
  673. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.js.map +1 -0
  674. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.d.ts +24 -0
  675. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.js +36 -0
  676. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.js.map +1 -0
  677. package/dist/components/resizable/ResizableHandle/useResizableHandle.d.ts +16 -0
  678. package/dist/components/resizable/ResizableHandle/useResizableHandle.js +39 -0
  679. package/dist/components/resizable/ResizableHandle/useResizableHandle.js.map +1 -0
  680. package/dist/components/resizable/ResizablePanel/ResizablePanel.d.ts +8 -0
  681. package/dist/components/resizable/ResizablePanel/ResizablePanel.js +64 -0
  682. package/dist/components/resizable/ResizablePanel/ResizablePanel.js.map +1 -0
  683. package/dist/components/resizable/ResizablePanel/index.d.ts +1 -0
  684. package/dist/components/resizable/ResizablePanel/useResizablePanel.d.ts +30 -0
  685. package/dist/components/resizable/ResizablePanel/useResizablePanel.js +37 -0
  686. package/dist/components/resizable/ResizablePanel/useResizablePanel.js.map +1 -0
  687. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.d.ts +9 -0
  688. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js +59 -0
  689. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js.map +1 -0
  690. package/dist/components/resizable/ResizablePanelGroup/index.d.ts +1 -0
  691. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.d.ts +11 -0
  692. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.js +17 -0
  693. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.js.map +1 -0
  694. package/dist/components/resizable/index.d.ts +4 -0
  695. package/dist/components/resizable/index.js +4 -0
  696. package/dist/components/resizable/resizable.collapse.d.ts +27 -0
  697. package/dist/components/resizable/resizable.collapse.js +24 -0
  698. package/dist/components/resizable/resizable.collapse.js.map +1 -0
  699. package/dist/components/resizable/resizable.commands.d.ts +32 -0
  700. package/dist/components/resizable/resizable.commands.js +40 -0
  701. package/dist/components/resizable/resizable.commands.js.map +1 -0
  702. package/dist/components/resizable/resizable.constraints.d.ts +23 -0
  703. package/dist/components/resizable/resizable.constraints.js +32 -0
  704. package/dist/components/resizable/resizable.constraints.js.map +1 -0
  705. package/dist/components/resizable/resizable.context.d.ts +38 -0
  706. package/dist/components/resizable/resizable.context.js +12 -0
  707. package/dist/components/resizable/resizable.context.js.map +1 -0
  708. package/dist/components/resizable/resizable.lifecycle.d.ts +35 -0
  709. package/dist/components/resizable/resizable.lifecycle.js +32 -0
  710. package/dist/components/resizable/resizable.lifecycle.js.map +1 -0
  711. package/dist/components/resizable/resizable.registry.d.ts +31 -0
  712. package/dist/components/resizable/resizable.registry.js +38 -0
  713. package/dist/components/resizable/resizable.registry.js.map +1 -0
  714. package/dist/components/resizable/resizable.reporting.d.ts +36 -0
  715. package/dist/components/resizable/resizable.reporting.js +33 -0
  716. package/dist/components/resizable/resizable.reporting.js.map +1 -0
  717. package/dist/components/resizable/resizable.resize.d.ts +47 -0
  718. package/dist/components/resizable/resizable.resize.js +28 -0
  719. package/dist/components/resizable/resizable.resize.js.map +1 -0
  720. package/dist/components/resizable/resizable.sizes.d.ts +31 -0
  721. package/dist/components/resizable/resizable.sizes.js +46 -0
  722. package/dist/components/resizable/resizable.sizes.js.map +1 -0
  723. package/dist/components/resizable/resizable.storage.d.ts +17 -0
  724. package/dist/components/resizable/resizable.storage.js +29 -0
  725. package/dist/components/resizable/resizable.storage.js.map +1 -0
  726. package/dist/components/resizable/resizable.types.d.ts +76 -0
  727. package/dist/components/resizable/resizable.utils.d.ts +23 -0
  728. package/dist/components/resizable/resizable.utils.js +51 -0
  729. package/dist/components/resizable/resizable.utils.js.map +1 -0
  730. package/dist/components/resizable/useResizablePanelGroup.d.ts +22 -0
  731. package/dist/components/resizable/useResizablePanelGroup.js +74 -0
  732. package/dist/components/resizable/useResizablePanelGroup.js.map +1 -0
  733. package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js +1 -1
  734. package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js.map +1 -1
  735. package/dist/components/scroll-area/ScrollArea/ScrollArea.d.ts +9 -0
  736. package/dist/components/scroll-area/ScrollArea/ScrollArea.js +28 -39
  737. package/dist/components/scroll-area/ScrollArea/ScrollArea.js.map +1 -1
  738. package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js +3 -3
  739. package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js.map +1 -1
  740. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.d.ts +22 -0
  741. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.js +34 -0
  742. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.js.map +1 -0
  743. package/dist/components/scroll-area/ScrollBar/ScrollBar.d.ts +8 -0
  744. package/dist/components/scroll-area/ScrollBar/ScrollBar.js +38 -71
  745. package/dist/components/scroll-area/ScrollBar/ScrollBar.js.map +1 -1
  746. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.d.ts +56 -0
  747. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.js +61 -0
  748. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.js.map +1 -0
  749. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.d.ts +25 -0
  750. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.js +26 -0
  751. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.js.map +1 -0
  752. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.d.ts +19 -0
  753. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.js +37 -0
  754. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.js.map +1 -0
  755. package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +5 -4
  756. package/dist/components/scroll-arrows/ScrollArrowButton.js +13 -34
  757. package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -1
  758. package/dist/components/scroll-arrows/ScrollArrows.d.ts +6 -2
  759. package/dist/components/scroll-arrows/ScrollArrows.js +16 -16
  760. package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -1
  761. package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +9 -2
  762. package/dist/components/scroll-arrows/useHoverScroll.d.ts +29 -0
  763. package/dist/components/scroll-arrows/useHoverScroll.js +39 -0
  764. package/dist/components/scroll-arrows/useHoverScroll.js.map +1 -0
  765. package/dist/components/select/SelectContent/useSelectContent.js +3 -3
  766. package/dist/components/select/SelectGroup/SelectGroup.d.ts +8 -2
  767. package/dist/components/select/SelectGroup/SelectGroup.js +20 -6
  768. package/dist/components/select/SelectGroup/SelectGroup.js.map +1 -1
  769. package/dist/components/select/SelectGroup/SelectGroup.types.d.ts +9 -0
  770. package/dist/components/select/SelectGroup/index.d.ts +1 -0
  771. package/dist/components/select/SelectTrigger/SelectTrigger.js.map +1 -1
  772. package/dist/components/select/SelectTrigger/useSelectTrigger.js +1 -1
  773. package/dist/components/select/SelectTrigger/useSelectTrigger.js.map +1 -1
  774. package/dist/components/separator/Separator.js +3 -0
  775. package/dist/components/separator/Separator.js.map +1 -1
  776. package/dist/components/sheet/Sheet/Sheet.d.ts +6 -0
  777. package/dist/components/sheet/Sheet/Sheet.js +10 -0
  778. package/dist/components/sheet/Sheet/Sheet.js.map +1 -0
  779. package/dist/components/sheet/Sheet/index.d.ts +1 -0
  780. package/dist/components/sheet/SheetClose/SheetClose.d.ts +6 -0
  781. package/dist/components/sheet/SheetClose/SheetClose.js +40 -0
  782. package/dist/components/sheet/SheetClose/SheetClose.js.map +1 -0
  783. package/dist/components/sheet/SheetClose/index.d.ts +1 -0
  784. package/dist/components/sheet/SheetContent/SheetContent.d.ts +6 -0
  785. package/dist/components/sheet/SheetContent/SheetContent.js +48 -0
  786. package/dist/components/sheet/SheetContent/SheetContent.js.map +1 -0
  787. package/dist/components/sheet/SheetContent/SheetContent.styles.d.ts +10 -0
  788. package/dist/components/sheet/SheetContent/SheetContent.styles.js +17 -0
  789. package/dist/components/sheet/SheetContent/SheetContent.styles.js.map +1 -0
  790. package/dist/components/sheet/SheetContent/index.d.ts +1 -0
  791. package/dist/components/sheet/SheetDescription/SheetDescription.d.ts +2 -0
  792. package/dist/components/sheet/SheetDescription/SheetDescription.js +25 -0
  793. package/dist/components/sheet/SheetDescription/SheetDescription.js.map +1 -0
  794. package/dist/components/sheet/SheetDescription/SheetDescription.styles.d.ts +1 -0
  795. package/dist/components/sheet/SheetDescription/SheetDescription.styles.js +6 -0
  796. package/dist/components/sheet/SheetDescription/SheetDescription.styles.js.map +1 -0
  797. package/dist/components/sheet/SheetDescription/index.d.ts +1 -0
  798. package/dist/components/sheet/SheetFooter/SheetFooter.d.ts +2 -0
  799. package/dist/components/sheet/SheetFooter/SheetFooter.js +24 -0
  800. package/dist/components/sheet/SheetFooter/SheetFooter.js.map +1 -0
  801. package/dist/components/sheet/SheetFooter/index.d.ts +1 -0
  802. package/dist/components/sheet/SheetHeader/SheetHeader.d.ts +2 -0
  803. package/dist/components/sheet/SheetHeader/SheetHeader.js +24 -0
  804. package/dist/components/sheet/SheetHeader/SheetHeader.js.map +1 -0
  805. package/dist/components/sheet/SheetHeader/index.d.ts +1 -0
  806. package/dist/components/sheet/SheetTitle/SheetTitle.d.ts +3 -0
  807. package/dist/components/sheet/SheetTitle/SheetTitle.js +25 -0
  808. package/dist/components/sheet/SheetTitle/SheetTitle.js.map +1 -0
  809. package/dist/components/sheet/SheetTitle/SheetTitle.styles.d.ts +1 -0
  810. package/dist/components/sheet/SheetTitle/SheetTitle.styles.js +6 -0
  811. package/dist/components/sheet/SheetTitle/SheetTitle.styles.js.map +1 -0
  812. package/dist/components/sheet/SheetTitle/index.d.ts +1 -0
  813. package/dist/components/sheet/SheetTrigger/SheetTrigger.d.ts +8 -0
  814. package/dist/components/sheet/SheetTrigger/SheetTrigger.js +32 -0
  815. package/dist/components/sheet/SheetTrigger/SheetTrigger.js.map +1 -0
  816. package/dist/components/sheet/SheetTrigger/index.d.ts +1 -0
  817. package/dist/components/sheet/index.d.ts +9 -0
  818. package/dist/components/sheet/index.js +9 -0
  819. package/dist/components/sheet/sheet.types.d.ts +19 -0
  820. package/dist/components/sidebar/Sidebar/Sidebar.js +14 -6
  821. package/dist/components/sidebar/Sidebar/Sidebar.js.map +1 -1
  822. package/dist/components/sidebar/SidebarContent/SidebarContent.js +8 -3
  823. package/dist/components/sidebar/SidebarContent/SidebarContent.js.map +1 -1
  824. package/dist/components/sidebar/SidebarFooter/SidebarFooter.js +8 -3
  825. package/dist/components/sidebar/SidebarFooter/SidebarFooter.js.map +1 -1
  826. package/dist/components/sidebar/SidebarGroup/SidebarGroup.js +8 -3
  827. package/dist/components/sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
  828. package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js +3 -0
  829. package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js.map +1 -1
  830. package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js +8 -3
  831. package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js.map +1 -1
  832. package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js +3 -0
  833. package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js.map +1 -1
  834. package/dist/components/sidebar/SidebarHeader/SidebarHeader.js +8 -3
  835. package/dist/components/sidebar/SidebarHeader/SidebarHeader.js.map +1 -1
  836. package/dist/components/sidebar/SidebarInput/SidebarInput.js +3 -0
  837. package/dist/components/sidebar/SidebarInput/SidebarInput.js.map +1 -1
  838. package/dist/components/sidebar/SidebarInset/SidebarInset.js +8 -3
  839. package/dist/components/sidebar/SidebarInset/SidebarInset.js.map +1 -1
  840. package/dist/components/sidebar/SidebarMenu/SidebarMenu.js +8 -3
  841. package/dist/components/sidebar/SidebarMenu/SidebarMenu.js.map +1 -1
  842. package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js +8 -3
  843. package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js.map +1 -1
  844. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js +6 -0
  845. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js.map +1 -1
  846. package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js +8 -3
  847. package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js.map +1 -1
  848. package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js +8 -3
  849. package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js.map +1 -1
  850. package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js +8 -3
  851. package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js.map +1 -1
  852. package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js +3 -0
  853. package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js.map +1 -1
  854. package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js +8 -3
  855. package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js.map +1 -1
  856. package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js +1 -1
  857. package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js.map +1 -1
  858. package/dist/components/sidebar/SidebarProvider/SidebarProvider.js +30 -27
  859. package/dist/components/sidebar/SidebarProvider/SidebarProvider.js.map +1 -1
  860. package/dist/components/sidebar/SidebarProvider/useIsMobile.d.ts +10 -0
  861. package/dist/components/sidebar/SidebarProvider/useIsMobile.js +14 -0
  862. package/dist/components/sidebar/SidebarProvider/useIsMobile.js.map +1 -0
  863. package/dist/components/sidebar/SidebarRail/SidebarRail.js +8 -3
  864. package/dist/components/sidebar/SidebarRail/SidebarRail.js.map +1 -1
  865. package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js +3 -0
  866. package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js.map +1 -1
  867. package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js +3 -0
  868. package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js.map +1 -1
  869. package/dist/components/skeleton/Skeleton.js +8 -3
  870. package/dist/components/skeleton/Skeleton.js.map +1 -1
  871. package/dist/components/slider/Slider/Slider.context.js +1 -1
  872. package/dist/components/slider/Slider/Slider.context.js.map +1 -1
  873. package/dist/components/slider/Slider/Slider.js +3 -0
  874. package/dist/components/slider/Slider/Slider.js.map +1 -1
  875. package/dist/components/slider/SliderControl/SliderControl.js +4 -1
  876. package/dist/components/slider/SliderControl/SliderControl.js.map +1 -1
  877. package/dist/components/slider/SliderIndicator/SliderIndicator.js +3 -0
  878. package/dist/components/slider/SliderIndicator/SliderIndicator.js.map +1 -1
  879. package/dist/components/slider/SliderThumb/SliderThumb.js +18 -3
  880. package/dist/components/slider/SliderThumb/SliderThumb.js.map +1 -1
  881. package/dist/components/slider/SliderThumb/useSliderThumb.d.ts +1 -0
  882. package/dist/components/slider/SliderThumb/useSliderThumb.js +3 -2
  883. package/dist/components/slider/SliderThumb/useSliderThumb.js.map +1 -1
  884. package/dist/components/slider/SliderTrack/SliderTrack.js +3 -0
  885. package/dist/components/slider/SliderTrack/SliderTrack.js.map +1 -1
  886. package/dist/components/spinner/Spinner.js +3 -0
  887. package/dist/components/spinner/Spinner.js.map +1 -1
  888. package/dist/components/switch/Switch.js +7 -0
  889. package/dist/components/switch/Switch.js.map +1 -1
  890. package/dist/components/tabs/Tabs/Tabs.context.js +1 -1
  891. package/dist/components/tabs/Tabs/Tabs.context.js.map +1 -1
  892. package/dist/components/tabs/Tabs/useTabsKeyboard.d.ts +7 -11
  893. package/dist/components/tabs/Tabs/useTabsKeyboard.js +8 -42
  894. package/dist/components/tabs/Tabs/useTabsKeyboard.js.map +1 -1
  895. package/dist/components/tabs/TabsList/TabsList.context.js +1 -1
  896. package/dist/components/tabs/TabsList/TabsList.context.js.map +1 -1
  897. package/dist/components/tabs/TabsList/TabsList.js +10 -10
  898. package/dist/components/tabs/TabsList/TabsList.js.map +1 -1
  899. package/dist/components/tabs/TabsTrigger/TabsTrigger.js +8 -8
  900. package/dist/components/tabs/TabsTrigger/TabsTrigger.js.map +1 -1
  901. package/dist/components/textarea/Textarea.js +8 -3
  902. package/dist/components/textarea/Textarea.js.map +1 -1
  903. package/dist/components/time-picker/TimePicker/create-change-event-details.d.ts +1 -2
  904. package/dist/components/time-picker/TimePicker/create-change-event-details.js +4 -20
  905. package/dist/components/time-picker/TimePicker/create-change-event-details.js.map +1 -1
  906. package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js +1 -3
  907. package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js.map +1 -1
  908. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.d.ts +34 -0
  909. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.js +43 -0
  910. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.js.map +1 -0
  911. package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js +34 -59
  912. package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js.map +1 -1
  913. package/dist/components/toast/Toast/Toast.d.ts +8 -2
  914. package/dist/components/toast/Toast/Toast.js +92 -146
  915. package/dist/components/toast/Toast/Toast.js.map +1 -1
  916. package/dist/components/toast/Toast/Toast.types.d.ts +1 -1
  917. package/dist/components/toast/Toast/Toast.types.js.map +1 -1
  918. package/dist/components/toast/Toast/Toast.utils.d.ts +47 -0
  919. package/dist/components/toast/Toast/Toast.utils.js +47 -0
  920. package/dist/components/toast/Toast/Toast.utils.js.map +1 -0
  921. package/dist/components/toast/Toast/ToastActionButton.d.ts +16 -0
  922. package/dist/components/toast/Toast/ToastActionButton.js +27 -0
  923. package/dist/components/toast/Toast/ToastActionButton.js.map +1 -0
  924. package/dist/components/toast/Toast/ToastActions.d.ts +12 -0
  925. package/dist/components/toast/Toast/ToastActions.js +65 -0
  926. package/dist/components/toast/Toast/ToastActions.js.map +1 -0
  927. package/dist/components/toast/Toast/ToastCloseButton.d.ts +12 -0
  928. package/dist/components/toast/Toast/ToastCloseButton.js +26 -0
  929. package/dist/components/toast/Toast/ToastCloseButton.js.map +1 -0
  930. package/dist/components/toast/Toast/ToastContent.d.ts +8 -0
  931. package/dist/components/toast/Toast/ToastContent.js +30 -0
  932. package/dist/components/toast/Toast/ToastContent.js.map +1 -0
  933. package/dist/components/toast/Toast/ToastIcon.d.ts +14 -0
  934. package/dist/components/toast/Toast/ToastIcon.js +36 -0
  935. package/dist/components/toast/Toast/ToastIcon.js.map +1 -0
  936. package/dist/components/toast/Toast/useToastLifecycle.d.ts +29 -0
  937. package/dist/components/toast/Toast/useToastLifecycle.js +30 -0
  938. package/dist/components/toast/Toast/useToastLifecycle.js.map +1 -0
  939. package/dist/components/toast/Toaster/ToastViewport.d.ts +33 -0
  940. package/dist/components/toast/Toaster/ToastViewport.js +73 -0
  941. package/dist/components/toast/Toaster/ToastViewport.js.map +1 -0
  942. package/dist/components/toast/Toaster/Toaster.d.ts +4 -0
  943. package/dist/components/toast/Toaster/Toaster.js +64 -82
  944. package/dist/components/toast/Toaster/Toaster.js.map +1 -1
  945. package/dist/components/toast/Toaster/Toaster.utils.d.ts +15 -0
  946. package/dist/components/toast/Toaster/Toaster.utils.js +4 -1
  947. package/dist/components/toast/Toaster/Toaster.utils.js.map +1 -1
  948. package/dist/components/toast/Toaster/useToaster.d.ts +28 -0
  949. package/dist/components/toast/Toaster/useToaster.js +26 -0
  950. package/dist/components/toast/Toaster/useToaster.js.map +1 -0
  951. package/dist/components/toast/index.js +4 -3
  952. package/dist/components/toast/state/promise-toast.d.ts +17 -0
  953. package/dist/components/toast/state/promise-toast.js +33 -0
  954. package/dist/components/toast/state/promise-toast.js.map +1 -0
  955. package/dist/components/toast/state/store.d.ts +21 -0
  956. package/dist/components/toast/state/store.js +45 -0
  957. package/dist/components/toast/state/store.js.map +1 -0
  958. package/dist/components/toast/state/toast.d.ts +9 -10
  959. package/dist/components/toast/state/toast.js +30 -89
  960. package/dist/components/toast/state/toast.js.map +1 -1
  961. package/dist/components/toggle/Toggle/Toggle.js +2 -1
  962. package/dist/components/toggle/Toggle/Toggle.js.map +1 -1
  963. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js +1 -1
  964. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -1
  965. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.d.ts +6 -2
  966. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js +4 -20
  967. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js.map +1 -1
  968. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.d.ts +7 -10
  969. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js +10 -40
  970. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js.map +1 -1
  971. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js +5 -5
  972. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -1
  973. package/dist/components/tooltip/TooltipContent/TooltipContent.js +1 -1
  974. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +5 -49
  975. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +10 -39
  976. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
  977. package/dist/components/tooltip/TooltipContent/usePresence.d.ts +27 -0
  978. package/dist/components/tooltip/TooltipContent/usePresence.js +24 -0
  979. package/dist/components/tooltip/TooltipContent/usePresence.js.map +1 -0
  980. package/dist/components/tooltip/TooltipContent/useTooltipContent.js +27 -39
  981. package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
  982. package/dist/hooks/useFontLoader.js +1 -1
  983. package/dist/hooks/useFontLoader.js.map +1 -1
  984. package/dist/hooks/useScrollEdges.d.ts +3 -0
  985. package/dist/hooks/useScrollEdges.js +18 -16
  986. package/dist/hooks/useScrollEdges.js.map +1 -1
  987. package/dist/hooks/useScrollLock.js +13 -16
  988. package/dist/hooks/useScrollLock.js.map +1 -1
  989. package/dist/index.d.ts +9 -0
  990. package/dist/index.js +328 -260
  991. package/dist/lib/positioner/index.d.ts +2 -0
  992. package/dist/lib/positioner/utils/dom.d.ts +8 -0
  993. package/dist/lib/positioner/utils/dom.js +1 -1
  994. package/dist/lib/positioner/utils/dom.js.map +1 -1
  995. package/dist/lib/positioner/utils/floating.d.ts +25 -0
  996. package/dist/lib/positioner/utils/floating.js +42 -0
  997. package/dist/lib/positioner/utils/floating.js.map +1 -0
  998. package/dist/types/props.types.d.ts +1 -1
  999. package/dist/ui.css +1 -1
  1000. package/dist/utils/call-event-handler.d.ts +16 -0
  1001. package/dist/utils/call-event-handler.js +15 -0
  1002. package/dist/utils/call-event-handler.js.map +1 -0
  1003. package/dist/utils/clsx.d.ts +1 -1
  1004. package/dist/utils/clsx.js +2 -7
  1005. package/dist/utils/create-change-event-details.d.ts +25 -0
  1006. package/dist/utils/create-change-event-details.js +25 -0
  1007. package/dist/utils/create-change-event-details.js.map +1 -0
  1008. package/dist/utils/get-style.d.ts +7 -9
  1009. package/dist/utils/get-style.js +16 -0
  1010. package/dist/utils/get-style.js.map +1 -0
  1011. package/dist/utils/index.d.ts +8 -0
  1012. package/dist/utils/index.js +7 -1
  1013. package/dist/utils/number.d.ts +7 -0
  1014. package/dist/utils/number.js +8 -0
  1015. package/dist/utils/number.js.map +1 -0
  1016. package/dist/utils/roving-navigation.d.ts +64 -0
  1017. package/dist/utils/roving-navigation.js +66 -0
  1018. package/dist/utils/roving-navigation.js.map +1 -0
  1019. package/dist/utils/string.d.ts +17 -0
  1020. package/dist/utils/string.js +11 -0
  1021. package/dist/utils/string.js.map +1 -0
  1022. package/package.json +18 -7
  1023. package/dist/components/carousel/Carousel/Carousel.utils.d.ts +0 -0
  1024. package/dist/components/field/FieldError/useFieldError.d.ts +0 -0
  1025. package/dist/components/tabs/Tabs/call-event-handler.d.ts +0 -5
  1026. package/dist/components/tabs/Tabs/call-event-handler.js +0 -9
  1027. package/dist/components/tabs/Tabs/call-event-handler.js.map +0 -1
  1028. package/dist/components/toggle-group/call-event-handler.d.ts +0 -5
  1029. package/dist/components/toggle-group/call-event-handler.js +0 -9
  1030. package/dist/components/toggle-group/call-event-handler.js.map +0 -1
  1031. package/dist/utils/clsx.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollArea.js","names":["createSignal","onCleanup","splitProps","ScrollAreaProps","ScrollMetrics","clsx","ScrollBar","ScrollAreaContext","computeMetrics","ScrollArea","props","viewportRef","HTMLDivElement","local","others","hovering","setHovering","dragging","setDragging","verticalMetrics","setVerticalMetrics","thumbRatio","thumbOffset","scrollable","horizontalMetrics","setHorizontalMetrics","updateMetrics","el","HTMLElement","clientHeight","scrollTop","scrollHeight","clientWidth","scrollLeft","scrollWidth","setup","update","ro","ResizeObserver","observe","firstElementChild","addEventListener","passive","disconnect","removeEventListener","_el$","_tmpl$2","_$spread","_$mergeProps","class","_$insert","_$createComponent","Provider","value","vertical","horizontal","children","_el$2","_tmpl$","_ref$","_$use","_$effect","_p$","_v$","_v$2","orientation","e","_$setAttribute","t","_$className","undefined","_$mergeProps","_$createComponent","_$use","_$setAttribute","_$className","_tmpl$","_tmpl$2","ScrollArea","viewportRef","local","others","splitProps","props","hovering","setHovering","createSignal","dragging","setDragging","verticalMetrics","setVerticalMetrics","horizontalMetrics","setHorizontalMetrics","updateMetrics","computeMetrics","el","setup","update","ro","onCleanup","_el$","spread","mergeProps","\"class\"","clsx","insert","createComponent","ScrollAreaContext","_el$2","_ref$","use","effect","_v$","_v$2","_p$","setAttribute","className","ScrollBar"],"sources":["../../../../src/components/scroll-area/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import { createSignal, onCleanup, splitProps } from \"solid-js\";\nimport type { ScrollAreaProps, ScrollMetrics } from \"./ScrollArea.types\";\nimport { clsx } from \"~/utils\";\nimport { ScrollBar } from \"../ScrollBar\";\nimport { ScrollAreaContext } from \"./ScrollArea.context\";\nimport { computeMetrics } from \"./ScrollArea.utils\";\n\nexport const ScrollArea = (props: ScrollAreaProps) => {\n let viewportRef: HTMLDivElement | undefined;\n\n const [local, others] = splitProps(props, [\n \"orientation\",\n \"class\",\n \"classList\",\n \"children\",\n \"aria-label\",\n ]);\n\n const [hovering, setHovering] = createSignal(false);\n const [dragging, setDragging] = createSignal<\n \"vertical\" | \"horizontal\" | null\n >(null);\n\n const [verticalMetrics, setVerticalMetrics] = createSignal<ScrollMetrics>({\n thumbRatio: 1,\n thumbOffset: 0,\n scrollable: false,\n });\n const [horizontalMetrics, setHorizontalMetrics] = createSignal<ScrollMetrics>(\n {\n thumbRatio: 1,\n thumbOffset: 0,\n scrollable: false,\n },\n );\n\n function updateMetrics(el: HTMLElement) {\n setVerticalMetrics(\n computeMetrics(el.clientHeight, el.scrollTop, el.scrollHeight),\n );\n setHorizontalMetrics(\n computeMetrics(el.clientWidth, el.scrollLeft, el.scrollWidth),\n );\n }\n\n function setup(el: HTMLDivElement) {\n viewportRef = el; // ref 赋值\n\n updateMetrics(el);\n\n const update = () => updateMetrics(el);\n\n const ro = new ResizeObserver(update);\n ro.observe(el);\n\n if (el.firstElementChild) {\n ro.observe(el.firstElementChild);\n }\n\n el.addEventListener(\"scroll\", update, { passive: true });\n\n onCleanup(() => {\n ro.disconnect();\n el.removeEventListener(\"scroll\", update);\n });\n }\n\n return (\n <div\n data-slot=\"scroll-area\"\n class={clsx(\"relative\", local.class)}\n onMouseEnter={() => setHovering(true)}\n onMouseLeave={() => setHovering(false)}\n {...others}\n >\n <ScrollAreaContext.Provider\n value={{\n hovering,\n viewportRef: () => viewportRef,\n dragging,\n setDragging,\n vertical: verticalMetrics,\n horizontal: horizontalMetrics,\n }}\n >\n <div\n ref={setup}\n data-slot=\"scroll-area-viewport\"\n role=\"region\"\n aria-label={local[\"aria-label\"] ?? \"Scrollable content\"}\n class={clsx(\n // \"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-neutral-400/50 dark:focus-visible:ring-neutral-500/50 focus-visible:outline-1\",\n // \"overflow-scroll\",\n // \"[scrollbar-width:none]\",\n \"size-full rounded-[inherit] transition-[color,box-shadow] outline-none\",\n // Native scrollbars hidden via CSS; custom ones provided below\n \"scrollbar-none [&::-webkit-scrollbar]:hidden\",\n // Focus ring — meets WCAG 2.4.7\n \"focus-visible:ring-2 focus-visible:ring-offset-1\",\n \"focus-visible:ring-ring/50\",\n // Overflow based on which scrollbars are active\n local.orientation === \"vertical\"\n ? \"overflow-y-scroll overflow-x-hidden\"\n : local.orientation === \"horizontal\"\n ? \"overflow-x-scroll overflow-y-hidden\"\n : \"overflow-scroll\",\n )}\n >\n {local.children}\n </div>\n <ScrollBar orientation={local.orientation} />\n </ScrollAreaContext.Provider>\n </div>\n );\n};\n"],"mappings":";;;;;;;iIAOaS,KAAcC,MAA2B;CACpD,IAAIC,GAEE,CAACE,GAAOC,KAAUZ,EAAWQ,GAAO;EACxC;EACA;EACA;EACA;EACA;CAAY,CACb,GAEK,CAACK,GAAUC,KAAehB,EAAa,EAAK,GAC5C,CAACiB,GAAUC,KAAelB,EAE9B,IAAI,GAEA,CAACmB,GAAiBC,KAAsBpB,EAA4B;EACxEqB,YAAY;EACZC,aAAa;EACbC,YAAY;CACd,CAAC,GACK,CAACC,GAAmBC,KAAwBzB,EAChD;EACEqB,YAAY;EACZC,aAAa;EACbC,YAAY;CACd,CACF;CAEA,SAASG,EAAcC,GAAiB;EAItCF,AAHAL,EACEZ,EAAemB,EAAGE,cAAcF,EAAGG,WAAWH,EAAGI,YAAY,CAC/D,GACAN,EACEjB,EAAemB,EAAGK,aAAaL,EAAGM,YAAYN,EAAGO,WAAW,CAC9D;CACF;CAEA,SAASC,EAAMR,GAAoB;EAGjCD,AAFAf,IAAcgB,GAEdD,EAAcC,CAAE;EAEhB,IAAMS,UAAeV,EAAcC,CAAE,GAE/BU,IAAK,IAAIC,eAAeF,CAAM;EASpCnC,AARAoC,EAAGE,QAAQZ,CAAE,GAETA,EAAGa,qBACLH,EAAGE,QAAQZ,EAAGa,iBAAiB,GAGjCb,EAAGc,iBAAiB,UAAUL,GAAQ,EAAEM,SAAS,GAAK,CAAC,GAEvDzC,QAAgB;GAEd0B,AADAU,EAAGM,WAAW,GACdhB,EAAGiB,oBAAoB,UAAUR,CAAM;EACzC,CAAC;CACH;CAEA,cAAA;EAAA,IAAAS,IAAAC,EAAA;EA2C+C,OA3C/CD,EAAAJ,iBAAA,oBAKwBzB,EAAY,EAAK,CAAC,GAAA6B,EAAAJ,iBAAA,oBADlBzB,EAAY,EAAI,CAAC,GAAA+B,EAAAF,GAAAG,EAAA,EAAA,IAAAuD,QAAA;GAAA,OAD9BlG,EAAK,YAAYQ,EAAMoC,KAAK;EAAC,EAAA,GAGhCnC,CAAM,GAAA,IAAA,EAAA,GAAAoC,EAAAL,GAAAM,EAET5C,EAAkB6C,UAAQ;GACzBC,OAAO;IACLtC;IACAJ,mBAAmBA;IACnBM;IACAC;IACAoC,UAAUnC;IACVoC,YAAY/B;GACd;GAAC,IAAAgC,WAAA;IAAA,OAAA,QAAA;KAAA,IAAAC,IAAAC,EAAA,GAAAC,IAGMxB;KAoBJ,OApBS,OAAAwB,KAAA,aAAAC,EAAAD,GAAAF,CAAA,IAALtB,IAAKsB,GAAAP,EAAAO,SAsBT5C,EAAM2C,QAAQ,GAAAK,GAAAC,MAAA;MAAA,IAAAC,IAnBHlD,EAAM,iBAAiB,sBAAoBmD,IAChD3D,EAIL,0EAEA,gDAEA,oDACA,8BAEAQ,EAAMoD,gBAAgB,aAClB,wCACApD,EAAMoD,gBAAgB,eACpB,wCACA,iBACR;MAAC,OAAAF,MAAAD,EAAAI,KAAAC,EAAAV,GAAA,cAAAK,EAAAI,IAAAH,CAAA,GAAAC,MAAAF,EAAAM,KAAAC,EAAAZ,GAAAK,EAAAM,IAAAJ,CAAA,GAAAF;KAAA,GAAA;MAAAI,GAAAI,KAAAA;MAAAF,GAAAE,KAAAA;KAAA,CAAA,GAAAb;IAAA,EAAA,CAAA,GAAAN,EAIF7C,GAAS,EAAA,IAAC2D,cAAW;KAAA,OAAEpD,EAAMoD;IAAW,EAAA,CAAA,CAAA;GAAA;EAAA,CAAA,CAAA,GAAApB;CAAA,EAAA,CAAA;AAIjD"}
1
+ {"version":3,"file":"ScrollArea.js","names":["createSignal","splitProps","ScrollAreaProps","clsx","ScrollBar","ScrollAreaContext","useScrollAreaMetrics","ScrollArea","props","local","others","hovering","setHovering","dragging","setDragging","metrics","overflowClass","orientation","_el$","_tmpl$2","addEventListener","_$spread","_$mergeProps","class","classList","_$insert","_$createComponent","Provider","value","viewportRef","vertical","horizontal","children","_el$2","_tmpl$","_ref$","setup","_$use","_$effect","_p$","_v$","_v$2","e","_$setAttribute","t","_$className","undefined","_$mergeProps","_$createComponent","_$use","_$setAttribute","_$className","_tmpl$","_tmpl$2","ScrollArea","local","others","splitProps","props","hovering","setHovering","createSignal","dragging","setDragging","metrics","useScrollAreaMetrics","overflowClass","_el$","spread","mergeProps","\"class\"","clsx","insert","createComponent","ScrollAreaContext","_el$2","_ref$","use","effect","_v$","_v$2","_p$","setAttribute","className","ScrollBar"],"sources":["../../../../src/components/scroll-area/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import { createSignal, splitProps } from \"solid-js\";\nimport type { ScrollAreaProps } from \"./ScrollArea.types\";\nimport { clsx } from \"~/utils\";\nimport { ScrollBar } from \"../ScrollBar\";\nimport { ScrollAreaContext } from \"./ScrollArea.context\";\nimport { useScrollAreaMetrics } from \"./useScrollAreaMetrics\";\n\n/**\n * 自定义滚动容器。\n *\n * 职责边界(SRP):\n * - 指标采集(scroll / resize)→ `useScrollAreaMetrics.ts`\n * - 尺寸换算 → `ScrollArea.utils.ts`\n * - 滚动条交互 → `ScrollBar/`\n * - 本文件只负责:组合 Provider、渲染视口 DOM 与样式\n */\nexport const ScrollArea = (props: ScrollAreaProps) => {\n const [local, others] = splitProps(props, [\n \"orientation\",\n \"class\",\n \"classList\",\n \"children\",\n \"aria-label\",\n ]);\n\n const [hovering, setHovering] = createSignal(false);\n const [dragging, setDragging] = createSignal<\n \"vertical\" | \"horizontal\" | null\n >(null);\n\n const metrics = useScrollAreaMetrics();\n\n const overflowClass = () => {\n if (local.orientation === \"vertical\") {\n return \"overflow-y-scroll overflow-x-hidden\";\n }\n if (local.orientation === \"horizontal\") {\n return \"overflow-x-scroll overflow-y-hidden\";\n }\n return \"overflow-scroll\";\n };\n\n return (\n <div\n data-slot=\"scroll-area\"\n class={clsx(\"relative\", local.class, local.classList)}\n classList={local.classList}\n onMouseEnter={() => setHovering(true)}\n onMouseLeave={() => setHovering(false)}\n {...others}\n >\n <ScrollAreaContext.Provider\n value={{\n hovering,\n viewportRef: metrics.viewportRef,\n dragging,\n setDragging,\n vertical: metrics.vertical,\n horizontal: metrics.horizontal,\n }}\n >\n <div\n ref={metrics.setup}\n data-slot=\"scroll-area-viewport\"\n role=\"region\"\n aria-label={local[\"aria-label\"] ?? \"Scrollable content\"}\n class={clsx(\n \"size-full rounded-[inherit] transition-[color,box-shadow] outline-none\",\n // Native scrollbars hidden via CSS; custom ones provided below\n \"scrollbar-none [&::-webkit-scrollbar]:hidden\",\n // Focus ring — meets WCAG 2.4.7\n \"focus-visible:ring-2 focus-visible:ring-offset-1\",\n \"focus-visible:ring-ring/50\",\n overflowClass(),\n )}\n >\n {local.children}\n </div>\n <ScrollBar orientation={local.orientation} />\n </ScrollAreaContext.Provider>\n </div>\n );\n};\n"],"mappings":";;;;;;;iIAgBaO,KAAcC,MAA2B;CACpD,IAAM,CAACC,GAAOC,KAAUT,EAAWO,GAAO;EACxC;EACA;EACA;EACA;EACA;CAAY,CACb,GAEK,CAACG,GAAUC,KAAeZ,EAAa,EAAK,GAC5C,CAACa,GAAUC,KAAed,EAE9B,IAAI,GAEAe,IAAUT,EAAqB,GAE/BU,UACAP,EAAMQ,gBAAgB,aACjB,wCAELR,EAAMQ,gBAAgB,eACjB,wCAEF;CAGT,cAAA;EAAA,IAAAC,IAAAC,EAAA;EAoC+C,OApC/CD,EAAAE,iBAAA,oBAMwBR,EAAY,EAAK,CAAC,GAAAM,EAAAE,iBAAA,oBADlBR,EAAY,EAAI,CAAC,GAAAS,EAAAH,GAAAI,EAAA;GAAA,IAAAgD,QAAA;IAAA,OAF9BnE,EAAK,YAAYM,EAAMc,OAAOd,EAAMe,SAAS;GAAC;GAAA,IACrDA,YAAS;IAAA,OAAEf,EAAMe;GAAS;EAAA,GAGtBd,CAAM,GAAA,IAAA,EAAA,GAAAe,EAAAP,GAAAQ,EAETrB,EAAkBsB,UAAQ;GAAA,IACzBC,QAAK;IAAA,OAAE;KACLjB;KACAkB,aAAad,EAAQc;KACrBhB;KACAC;KACAgB,UAAUf,EAAQe;KAClBC,YAAYhB,EAAQgB;IACtB;GAAC;GAAA,IAAAC,WAAA;IAAA,OAAA,QAAA;KAAA,IAAAC,IAAAC,EAAA,GAAAC,IAGMpB,EAAQqB;KAYZ,OAZiB,OAAAD,KAAA,aAAAE,EAAAF,GAAAF,CAAA,IAAblB,EAAQqB,QAAKH,GAAAR,EAAAQ,SAcjBxB,EAAMuB,QAAQ,GAAAM,GAAAC,MAAA;MAAA,IAAAC,IAXH/B,EAAM,iBAAiB,sBAAoBgC,IAChDtC,EACL,0EAEA,gDAEA,oDACA,8BACAa,EAAc,CAChB;MAAC,OAAAwB,MAAAD,EAAAG,KAAAC,EAAAV,GAAA,cAAAM,EAAAG,IAAAF,CAAA,GAAAC,MAAAF,EAAAK,KAAAC,EAAAZ,GAAAM,EAAAK,IAAAH,CAAA,GAAAF;KAAA,GAAA;MAAAG,GAAAI,KAAAA;MAAAF,GAAAE,KAAAA;KAAA,CAAA,GAAAb;IAAA,EAAA,CAAA,GAAAP,EAIFtB,GAAS,EAAA,IAACa,cAAW;KAAA,OAAER,EAAMQ;IAAW,EAAA,CAAA,CAAA;GAAA;EAAA,CAAA,CAAA,GAAAC;CAAA,EAAA,CAAA;AAIjD"}
@@ -6,10 +6,10 @@ function e(e, t, n) {
6
6
  thumbOffset: 0,
7
7
  scrollable: !1
8
8
  };
9
- let i = e / n, a = n - e;
9
+ let i = n - e;
10
10
  return {
11
- thumbRatio: i,
12
- thumbOffset: a > 0 ? t / a : 0,
11
+ thumbRatio: e / n,
12
+ thumbOffset: t / i,
13
13
  scrollable: r
14
14
  };
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollArea.utils.js","names":["computeMetrics","scrollable","scrollSize","client","thumbRatio","maxScroll","scroll"],"sources":["../../../../src/components/scroll-area/ScrollArea/ScrollArea.utils.ts"],"sourcesContent":["import type { ScrollMetrics } from \"./ScrollArea.types\";\n\nexport function computeMetrics(\n client: number,\n scroll: number,\n scrollSize: number,\n): ScrollMetrics {\n const scrollable = scrollSize > client + 1; // +1 to absorb sub-pixel rounding\n if (!scrollable) return { thumbRatio: 1, thumbOffset: 0, scrollable: false };\n const thumbRatio = client / scrollSize;\n const maxScroll = scrollSize - client;\n const thumbOffset = maxScroll > 0 ? scroll / maxScroll : 0;\n return { thumbRatio, thumbOffset, scrollable };\n}\n"],"mappings":";AAEA,SAAgBA,EACd,GACA,GACA,GACe;CACf,IAAMC,IAAaC,IAAaC,IAAS;CACzC,IAAI,CAACF,GAAY,OAAO;EAAE,YAAY;EAAG,aAAa;EAAG,YAAY;CAAM;CAC3E,IAAMG,IAAaD,IAASD,GACtBG,IAAYH,IAAaC;CAE/B,OAAO;EAAE;EAAY,aADDE,IAAY,IAAIC,IAASD,IAAY;EACvB;CAAW;AAC/C"}
1
+ {"version":3,"file":"ScrollArea.utils.js","names":["computeMetrics","scrollable","scrollSize","client","maxScroll","scroll"],"sources":["../../../../src/components/scroll-area/ScrollArea/ScrollArea.utils.ts"],"sourcesContent":["import type { ScrollMetrics } from \"./ScrollArea.types\";\n\nexport function computeMetrics(\n client: number,\n scroll: number,\n scrollSize: number,\n): ScrollMetrics {\n // +1 吸收亚像素舍入:仅超出 1px 以内视为不可滚动\n const scrollable = scrollSize > client + 1;\n if (!scrollable) return { thumbRatio: 1, thumbOffset: 0, scrollable: false };\n // scrollable 蕴含 maxScroll >= 2,因此这里不需要再兜底除零\n const maxScroll = scrollSize - client;\n return {\n thumbRatio: client / scrollSize,\n thumbOffset: scroll / maxScroll,\n scrollable,\n };\n}\n"],"mappings":";AAEA,SAAgBA,EACd,GACA,GACA,GACe;CAEf,IAAMC,IAAaC,IAAaC,IAAS;CACzC,IAAI,CAACF,GAAY,OAAO;EAAE,YAAY;EAAG,aAAa;EAAG,YAAY;CAAM;CAE3E,IAAMG,IAAYF,IAAaC;CAC/B,OAAO;EACL,YAAYA,IAASD;EACrB,aAAaG,IAASD;EACtB;CACF;AACF"}
@@ -0,0 +1,22 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { ScrollMetrics } from './ScrollArea.types';
3
+ export interface ScrollAreaMetrics {
4
+ vertical: Accessor<ScrollMetrics>;
5
+ horizontal: Accessor<ScrollMetrics>;
6
+ /** 视口元素访问器(供 ScrollBar 读写滚动位置) */
7
+ viewportRef: () => HTMLDivElement | undefined;
8
+ /** 传给视口的 `ref`:绑定监听与观察器 */
9
+ setup: (el: HTMLDivElement) => void;
10
+ }
11
+ /**
12
+ * 视口(viewport)的滚动指标采集。
13
+ *
14
+ * 单一职责:监听视口的 `scroll` 与尺寸变化(`ResizeObserver` 同时观察视口与
15
+ * 其内容元素),把尺寸换算成 `ScrollMetrics`。不关心渲染与交互。
16
+ *
17
+ * 注意:内容元素必须等 Solid 挂载完成后才能拿到——`ref` 回调执行时子节点
18
+ * 尚未插入(Solid 延迟创建 children),此时读 `firstElementChild` 会拿到一个
19
+ * 随后被替换掉的占位节点,导致内容尺寸变化永远不触发刷新。因此这里在
20
+ * `onMount` 里才去观察内容元素。
21
+ */
22
+ export declare function useScrollAreaMetrics(): ScrollAreaMetrics;
@@ -0,0 +1,34 @@
1
+ import { computeMetrics as e } from "./ScrollArea.utils.js";
2
+ import { createSignal as t, onCleanup as n, onMount as r } from "solid-js";
3
+ //#region src/components/scroll-area/ScrollArea/useScrollAreaMetrics.ts
4
+ var i = {
5
+ thumbRatio: 1,
6
+ thumbOffset: 0,
7
+ scrollable: !1
8
+ };
9
+ function a() {
10
+ let [a, o] = t(i), [s, c] = t(i), l, u = null, d = null, f = null, p = () => {
11
+ l && (o(e(l.clientHeight, l.scrollTop, l.scrollHeight)), c(e(l.clientWidth, l.scrollLeft, l.scrollWidth)));
12
+ }, m = () => {
13
+ let e = l?.firstElementChild ?? null;
14
+ d && e !== u && (u && d.unobserve(u), u = e, u && d.observe(u));
15
+ };
16
+ return n(() => {
17
+ d?.disconnect(), d = null, f?.disconnect(), f = null, u = null, l?.removeEventListener("scroll", p), l = void 0;
18
+ }), r(() => {
19
+ m(), p();
20
+ }), {
21
+ vertical: a,
22
+ horizontal: s,
23
+ viewportRef: () => l,
24
+ setup: (e) => {
25
+ l = e, p(), d?.disconnect(), d = new ResizeObserver(() => p()), d.observe(e), u = null, m(), e.addEventListener("scroll", p, { passive: !0 }), typeof MutationObserver < "u" && (f = new MutationObserver(() => {
26
+ m(), p();
27
+ }), f.observe(e, { childList: !0 }));
28
+ }
29
+ };
30
+ }
31
+ //#endregion
32
+ export { a as useScrollAreaMetrics };
33
+
34
+ //# sourceMappingURL=useScrollAreaMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollAreaMetrics.js","names":["EMPTY_METRICS","useScrollAreaMetrics","vertical","setVertical","createSignal","horizontal","setHorizontal","viewport","content","observer","mutations","measure","computeMetrics","observeContent","next","onCleanup","onMount","el"],"sources":["../../../../src/components/scroll-area/ScrollArea/useScrollAreaMetrics.ts"],"sourcesContent":["import { type Accessor, createSignal, onCleanup, onMount } from \"solid-js\";\nimport type { ScrollMetrics } from \"./ScrollArea.types\";\nimport { computeMetrics } from \"./ScrollArea.utils\";\n\nconst EMPTY_METRICS: ScrollMetrics = {\n thumbRatio: 1,\n thumbOffset: 0,\n scrollable: false,\n};\n\nexport interface ScrollAreaMetrics {\n vertical: Accessor<ScrollMetrics>;\n horizontal: Accessor<ScrollMetrics>;\n /** 视口元素访问器(供 ScrollBar 读写滚动位置) */\n viewportRef: () => HTMLDivElement | undefined;\n /** 传给视口的 `ref`:绑定监听与观察器 */\n setup: (el: HTMLDivElement) => void;\n}\n\n/**\n * 视口(viewport)的滚动指标采集。\n *\n * 单一职责:监听视口的 `scroll` 与尺寸变化(`ResizeObserver` 同时观察视口与\n * 其内容元素),把尺寸换算成 `ScrollMetrics`。不关心渲染与交互。\n *\n * 注意:内容元素必须等 Solid 挂载完成后才能拿到——`ref` 回调执行时子节点\n * 尚未插入(Solid 延迟创建 children),此时读 `firstElementChild` 会拿到一个\n * 随后被替换掉的占位节点,导致内容尺寸变化永远不触发刷新。因此这里在\n * `onMount` 里才去观察内容元素。\n */\nexport function useScrollAreaMetrics(): ScrollAreaMetrics {\n const [vertical, setVertical] = createSignal<ScrollMetrics>(EMPTY_METRICS);\n const [horizontal, setHorizontal] =\n createSignal<ScrollMetrics>(EMPTY_METRICS);\n\n let viewport: HTMLDivElement | undefined;\n let content: Element | null = null;\n let observer: ResizeObserver | null = null;\n let mutations: MutationObserver | null = null;\n\n const measure = () => {\n if (!viewport) return;\n setVertical(\n computeMetrics(\n viewport.clientHeight,\n viewport.scrollTop,\n viewport.scrollHeight,\n ),\n );\n setHorizontal(\n computeMetrics(\n viewport.clientWidth,\n viewport.scrollLeft,\n viewport.scrollWidth,\n ),\n );\n };\n\n const observeContent = () => {\n const next = viewport?.firstElementChild ?? null;\n if (!observer || next === content) return;\n if (content) observer.unobserve(content);\n content = next;\n if (content) observer.observe(content);\n };\n\n const setup = (el: HTMLDivElement) => {\n viewport = el;\n measure();\n\n observer?.disconnect();\n observer = new ResizeObserver(() => measure());\n observer.observe(el);\n content = null;\n // 内容还没挂载,先不观察;onMount 时再观察真实的内容元素\n observeContent();\n\n el.addEventListener(\"scroll\", measure, { passive: true });\n\n // 内容元素可能被替换(动态 children、spacer 增删),\n // 变化后重新指向真正的内容元素,否则它的大小变化不会触发刷新\n if (typeof MutationObserver !== \"undefined\") {\n mutations = new MutationObserver(() => {\n observeContent();\n measure();\n });\n mutations.observe(el, { childList: true });\n }\n };\n\n // 注意:cleanup 必须注册在 hook 作用域,不能写进 ref 回调里——\n // ref 回调执行时 owner 已经脱离,`onCleanup` 注册的清理函数永远不会被调用,\n // 结果就是 ResizeObserver 与 scroll 监听泄漏。\n onCleanup(() => {\n observer?.disconnect();\n observer = null;\n mutations?.disconnect();\n mutations = null;\n content = null;\n viewport?.removeEventListener(\"scroll\", measure);\n viewport = undefined;\n });\n\n onMount(() => {\n observeContent();\n measure();\n });\n\n return { vertical, horizontal, viewportRef: () => viewport, setup };\n}\n"],"mappings":";;;AAIA,IAAMA,IAA+B;CACnC,YAAY;CACZ,aAAa;CACb,YAAY;AACd;AAsBA,SAAgBC,IAA0C;CACxD,IAAM,CAACC,GAAUC,KAAeC,EAA4BJ,CAAa,GACnE,CAACK,GAAYC,KACjBF,EAA4BJ,CAAa,GAEvCO,GACAC,IAA0B,MAC1BC,IAAkC,MAClCC,IAAqC,MAEnCC,UAAgB;EACpB,AAAKJ,MACLJ,EACES,EACEL,EAAS,cACTA,EAAS,WACTA,EAAS,YACX,CACF,GACAD,EACEM,EACEL,EAAS,aACTA,EAAS,YACTA,EAAS,WACX,CACF;CACF,GAEMM,UAAuB;EAC3B,IAAMC,IAAOP,GAAU,qBAAqB;EAC5C,AAAKE,KAAYK,MAASN,MACtBA,KAASC,EAAS,UAAUD,CAAO,GACvC,IAAUM,GACNN,KAASC,EAAS,QAAQD,CAAO;CACvC;CA4CA,OAfAO,QAAgB;EAOd,AANAN,GAAU,WAAW,GACrB,IAAW,MACXC,GAAW,WAAW,GACtB,IAAY,MACZ,IAAU,MACVH,GAAU,oBAAoB,UAAUI,CAAO,GAC/C,IAAW,KAAA;CACb,CAAC,GAEDK,QAAc;EAEZ,AADAH,EAAe,GACfF,EAAQ;CACV,CAAC,GAEM;EAAE;EAAU;EAAY,mBAAmBJ;EAAU,QA1C7C,MAAuB;GAepC,AAdA,IAAWU,GACXN,EAAQ,GAERF,GAAU,WAAW,GACrB,IAAW,IAAI,qBAAqBE,EAAQ,CAAC,GAC7CF,EAAS,QAAQQ,CAAE,GACnB,IAAU,MAEVJ,EAAe,GAEfI,EAAG,iBAAiB,UAAUN,GAAS,EAAE,SAAS,GAAK,CAAC,GAIpD,OAAO,mBAAqB,QAC9B,IAAY,IAAI,uBAAuB;IAErC,AADAE,EAAe,GACfF,EAAQ;GACV,CAAC,GACDD,EAAU,QAAQO,GAAI,EAAE,WAAW,GAAK,CAAC;EAE7C;CAoBkE;AACpE"}
@@ -1,2 +1,10 @@
1
1
  import { ScrollBarProps } from './ScrollBar.types';
2
+ /**
3
+ * 自定义滚动条。
4
+ *
5
+ * 职责边界(SRP):
6
+ * - 数值/几何换算 → `ScrollBar.utils.ts`(纯函数,可独立单测)
7
+ * - 指针/键盘事件 → `useScrollBarInteraction.ts`
8
+ * - 本文件只负责:从 Context 读取指标、组装状态、渲染 DOM 与样式
9
+ */
2
10
  export declare const ScrollBar: (props: ScrollBarProps) => import('solid-js').JSX.Element;
@@ -1,89 +1,56 @@
1
1
  import { clsx as e } from "../../../utils/clsx.js";
2
- import { useScrollAreaContext as t } from "../ScrollArea/ScrollArea.context.js";
3
- import { className as n, delegateEvents as r, effect as i, mergeProps as a, setAttribute as o, spread as s, style as c, template as l, use as u } from "solid-js/web";
4
- import { createMemo as d, createSignal as f, mergeProps as p, onCleanup as m, splitProps as h } from "solid-js";
2
+ import { computeAriaValueNow as t, computeThumbStyle as n, isScrollBarVisible as r, isVertical as i } from "./ScrollBar.utils.js";
3
+ import { useScrollBarInteraction as a } from "./useScrollBarInteraction.js";
4
+ import { useScrollAreaContext as o } from "../ScrollArea/ScrollArea.context.js";
5
+ import { addEventListener as s, className as c, delegateEvents as l, effect as u, mergeProps as d, setAttribute as f, spread as p, style as m, template as h, use as g } from "solid-js/web";
6
+ import { createMemo as _, createSignal as v, mergeProps as y, splitProps as b } from "solid-js";
5
7
  //#region src/components/scroll-area/ScrollBar/ScrollBar.tsx
6
- var g = /*#__PURE__*/ l("<div data-slot=scroll-area-scrollbar role=scrollbar aria-controls=scroll-area-viewport aria-valuemin=0 aria-valuemax=100 tabindex=0><div data-slot=scroll-area-thumb>"), _ = 20, v = (r) => {
7
- let l = t(), v, y = p({ orientation: "vertical" }, r), [b, x] = h(y, [
8
+ var x = /*#__PURE__*/ h("<div data-slot=scroll-area-scrollbar role=scrollbar aria-controls=scroll-area-viewport aria-valuemin=0 aria-valuemax=100 tabindex=0><div data-slot=scroll-area-thumb>"), S = (l) => {
9
+ let h = o(), S = y({ orientation: "vertical" }, l), [C, w] = b(S, [
8
10
  "orientation",
9
11
  "class",
10
12
  "classList"
11
- ]), [S, C] = f(!1), w = () => b.orientation === "vertical", T = d(() => w() ? l.vertical() : l.horizontal()), E = d(() => {
12
- let e = T(), t = (w() ? v?.clientHeight ?? 0 : v?.clientWidth ?? 0) - 2, n = t * e.thumbRatio, r = Math.max(n, _), i = Math.max(0, t - r) * e.thumbOffset;
13
- return w() ? {
14
- height: `${r}px`,
15
- transform: `translateY(${i}px)`
16
- } : {
17
- width: `${r}px`,
18
- transform: `translateX(${i}px)`
19
- };
20
- }), D = d(() => Math.round(T().thumbOffset * 100));
21
- function O(e) {
22
- e.preventDefault(), e.stopPropagation();
23
- let t = l.viewportRef();
24
- if (!t) return;
25
- l.setDragging(b.orientation), C(!0);
26
- let n = w() ? e.clientY : e.clientX, r = w() ? t.scrollTop : t.scrollLeft, i = w() ? t.scrollHeight - t.clientHeight : t.scrollWidth - t.clientWidth, a = i / ((w() ? v.clientHeight : v.clientWidth) - 2 - (w() ? e.currentTarget.clientHeight : e.currentTarget.clientWidth));
27
- function o(e) {
28
- let o = (w() ? e.clientY : e.clientX) - n, s = Math.max(0, Math.min(i, r + o * a));
29
- w() ? t.scrollTop = s : t.scrollLeft = s;
13
+ ]), [T, E] = v(), [D, O] = v(!1), k = () => C.orientation, A = () => i(k()), j = _(() => A() ? h.vertical() : h.horizontal()), M = _(() => {
14
+ let e = T(), t = e ? A() ? e.clientHeight : e.clientWidth : 0;
15
+ return n(k(), j(), t);
16
+ }), N = _(() => t(j())), P = _(() => r(h.hovering(), h.dragging(), k(), D())), F = a({
17
+ track: T,
18
+ viewport: h.viewportRef,
19
+ orientation: k,
20
+ onDragChange: (e) => {
21
+ h.setDragging(e ? k() : null), O(e);
30
22
  }
31
- function s() {
32
- l.setDragging(null), C(!1), window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", s);
33
- }
34
- window.addEventListener("pointermove", o), window.addEventListener("pointerup", s), m(() => {
35
- window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", s);
36
- });
37
- }
38
- function k(e) {
39
- if (e.target.dataset.slot === "scroll-area-thumb") return;
40
- let t = l.viewportRef();
41
- if (!t) return;
42
- let n = v.getBoundingClientRect(), r = (w() ? (e.clientY - n.top) / n.height : (e.clientX - n.left) / n.width) * (w() ? t.scrollHeight - t.clientHeight : t.scrollWidth - t.clientWidth);
43
- t.scrollTo({
44
- [w() ? "top" : "left"]: r,
45
- behavior: "smooth"
46
- });
47
- }
48
- function A(e) {
49
- let t = l.viewportRef();
50
- if (!t) return;
51
- let n = w() ? t.clientHeight : t.clientWidth, r = {
52
- ArrowDown: 40,
53
- ArrowRight: 40,
54
- ArrowUp: -40,
55
- ArrowLeft: -40,
56
- PageDown: n,
57
- PageUp: -n,
58
- Home: -Infinity,
59
- End: Infinity
60
- }[e.key];
61
- r !== void 0 && (e.preventDefault(), w() ? t.scrollTop = Math.max(0, Math.min(t.scrollHeight - t.clientHeight, r === Infinity ? t.scrollHeight : r === -Infinity ? 0 : t.scrollTop + r)) : t.scrollLeft = Math.max(0, Math.min(t.scrollWidth - t.clientWidth, r === Infinity ? t.scrollWidth : r === -Infinity ? 0 : t.scrollLeft + r)));
62
- }
63
- let j = d(() => l.hovering() || l.dragging() === r.orientation || S());
23
+ });
64
24
  return (() => {
65
- var t = g(), r = t.firstChild;
66
- t.$$keydown = A, t.$$pointerdown = k;
67
- var d = v;
68
- return typeof d == "function" ? u(d, t) : v = t, s(t, a({
25
+ var t = x(), n = t.firstChild;
26
+ return g(E, t), p(t, d({
69
27
  get "aria-orientation"() {
70
- return b.orientation;
28
+ return k();
71
29
  },
72
30
  get "aria-valuenow"() {
73
- return D();
31
+ return N();
32
+ },
33
+ get onPointerDown() {
34
+ return F.onTrackPointerDown;
35
+ },
36
+ get onKeyDown() {
37
+ return F.onKeyDown;
74
38
  },
75
39
  get "data-orientation"() {
76
- return b.orientation;
40
+ return k();
77
41
  },
78
42
  get "data-hovering"() {
79
- return l.hovering() ? "" : void 0;
43
+ return h.hovering() ? "" : void 0;
80
44
  },
81
45
  get class() {
82
- return e("absolute touch-none select-none transition-opacity duration-150", j() ? "opacity-100" : "opacity-0", w() ? "right-0 top-0 h-full w-2.5 border-l border-l-transparent p-px flex flex-col" : "bottom-0 left-0 w-full h-2.5 border-t border-t-transparent p-px flex flex-row", "outline-none focus-visible:ring-2 focus-visible:ring-neutral-400/70 dark:focus-visible:ring-neutral-500/70", b.class);
46
+ return e("absolute touch-none select-none transition-opacity duration-150", P() ? "opacity-100" : "opacity-0", A() ? "right-0 top-0 h-full w-2.5 border-l border-l-transparent p-px flex flex-col" : "bottom-0 left-0 w-full h-2.5 border-t border-t-transparent p-px flex flex-row", "outline-none focus-visible:ring-2 focus-visible:ring-neutral-400/70 dark:focus-visible:ring-neutral-500/70", C.class, C.classList);
47
+ },
48
+ get classList() {
49
+ return C.classList;
83
50
  }
84
- }, x), !1, !0), r.$$pointerdown = O, i((t) => {
85
- var i = b.orientation, a = e("relative rounded-full bg-border", "hover:bg-neutral-400 dark:hover:bg-white/30", S() ? "bg-neutral-500 dark:bg-white/40" : "", "transition-colors duration-100", w() ? "min-h-5 w-full" : "min-w-5 h-full"), s = E();
86
- return i !== t.e && o(r, "data-orientation", t.e = i), a !== t.t && n(r, t.t = a), t.a = c(r, s, t.a), t;
51
+ }, w), !1, !0), s(n, "pointerdown", F.onThumbPointerDown, !0), u((t) => {
52
+ var r = k(), i = e("relative rounded-full bg-border", "hover:bg-neutral-400 dark:hover:bg-white/30", D() ? "bg-neutral-500 dark:bg-white/40" : "", "transition-colors duration-100", A() ? "min-h-5 w-full" : "min-w-5 h-full"), a = M();
53
+ return r !== t.e && f(n, "data-orientation", t.e = r), i !== t.t && c(n, t.t = i), t.a = m(n, a, t.a), t;
87
54
  }, {
88
55
  e: void 0,
89
56
  t: void 0,
@@ -91,8 +58,8 @@ var g = /*#__PURE__*/ l("<div data-slot=scroll-area-scrollbar role=scrollbar ari
91
58
  }), t;
92
59
  })();
93
60
  };
94
- r(["pointerdown", "keydown"]);
61
+ l(["pointerdown"]);
95
62
  //#endregion
96
- export { v as ScrollBar };
63
+ export { S as ScrollBar };
97
64
 
98
65
  //# sourceMappingURL=ScrollBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollBar.js","names":["createMemo","createSignal","mergeProps","onCleanup","splitProps","ScrollBarProps","clsx","useScrollAreaContext","MIN_THUMB_PX","ScrollBar","props","ctx","trackEl","HTMLDivElement","merged","orientation","const","local","others","active","setActive","isVertical","metrics","vertical","horizontal","thumbStyle","m","trackSize","clientHeight","clientWidth","trackInnerSize","rawThumbSize","thumbRatio","thumbSize","Math","max","maxOffset","offset","thumbOffset","height","transform","width","ariaValueNow","round","onThumbPointerDown","e","PointerEvent","preventDefault","stopPropagation","viewport","viewportRef","setDragging","startPointer","clientY","clientX","startScroll","scrollTop","scrollLeft","maxScroll","scrollHeight","scrollWidth","currentTarget","scrollRatio","onMove","me","delta","newScroll","min","onUp","window","removeEventListener","addEventListener","onTrackPointerDown","target","HTMLElement","dataset","slot","rect","getBoundingClientRect","clickPos","top","left","scrollTo","behavior","onKeyDown","KeyboardEvent","step","pageSize","keyMap","Record","ArrowDown","ArrowRight","ArrowUp","ArrowLeft","PageDown","PageUp","Home","Infinity","End","key","undefined","visible","hovering","dragging","_el$","_tmpl$","_el$2","firstChild","$$keydown","$$pointerdown","_ref$","_$use","_$spread","_$mergeProps","aria-orientation","aria-valuenow","data-orientation","data-hovering","class","_$effect","_p$","_v$","_v$2","_v$3","_$setAttribute","t","_$className","a","_$style","_$delegateEvents","mergeProps","_$use","_$mergeProps","_$setAttribute","_$className","_$style","_$delegateEvents","mergeProps$1","_tmpl$","MIN_THUMB_PX","ScrollBar","ctx","useScrollAreaContext","trackEl","merged","props","local","others","splitProps","active","setActive","createSignal","isVertical","metrics","createMemo","thumbStyle","m","trackInnerSize","rawThumbSize","thumbSize","offset","ariaValueNow","onThumbPointerDown","viewport","startPointer","startScroll","maxScroll","scrollRatio","onMove","delta","me","newScroll","onUp","onCleanup","onTrackPointerDown","rect","target","onKeyDown","pageSize","visible","_el$","_el$2","_ref$","use","spread","mergeProps","\"class\"","clsx","effect","_v$","_v$2","_v$3","_p$","setAttribute","className","style","delegateEvents"],"sources":["../../../../src/components/scroll-area/ScrollBar/ScrollBar.tsx"],"sourcesContent":["import {\n createMemo,\n createSignal,\n mergeProps,\n onCleanup,\n splitProps,\n} from \"solid-js\";\nimport type { ScrollBarProps } from \"./ScrollBar.types\";\nimport { clsx } from \"~/utils\";\nimport { useScrollAreaContext } from \"../ScrollArea\";\n\n// Minimum thumb length in px so it's always clickable\nconst MIN_THUMB_PX = 20;\n\nexport const ScrollBar = (props: ScrollBarProps) => {\n const ctx = useScrollAreaContext();\n\n let trackEl!: HTMLDivElement;\n\n const merged = mergeProps({ orientation: \"vertical\" } as const, props);\n\n const [local, others] = splitProps(merged, [\n \"orientation\",\n \"class\",\n \"classList\",\n ]);\n\n const [active, setActive] = createSignal(false);\n const isVertical = () => local.orientation === \"vertical\";\n\n const metrics = createMemo(() =>\n isVertical() ? ctx.vertical() : ctx.horizontal(),\n );\n\n /**\n * Compute thumb CSS: we clamp to MIN_THUMB_PX, then shift the offset so the\n * thumb never overflows the track.\n */\n const thumbStyle = createMemo(() => {\n const m = metrics();\n\n const trackSize = isVertical()\n ? (trackEl?.clientHeight ?? 0)\n : (trackEl?.clientWidth ?? 0);\n\n const trackInnerSize = trackSize - 2; // track有内边距\n\n const rawThumbSize = trackInnerSize * m.thumbRatio;\n const thumbSize = Math.max(rawThumbSize, MIN_THUMB_PX);\n\n // Adjust offset to account for clamping\n const maxOffset = Math.max(0, trackInnerSize - thumbSize);\n const offset = maxOffset * m.thumbOffset;\n\n if (isVertical()) {\n return {\n height: `${thumbSize}px`,\n transform: `translateY(${offset}px)`,\n };\n }\n return {\n width: `${thumbSize}px`,\n transform: `translateX(${offset}px)`,\n };\n });\n\n // ARIA value: 0–100 integer representing scroll position\n const ariaValueNow = createMemo(() =>\n Math.round(metrics().thumbOffset * 100),\n );\n\n // ── Drag handling ─────────────────────────────────────────────────────────\n function onThumbPointerDown(e: PointerEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const viewport = ctx.viewportRef();\n if (!viewport) return;\n\n ctx.setDragging(local.orientation);\n setActive(true);\n\n const startPointer = isVertical() ? e.clientY : e.clientX;\n const startScroll = isVertical() ? viewport.scrollTop : viewport.scrollLeft;\n const maxScroll = isVertical()\n ? viewport.scrollHeight - viewport.clientHeight\n : viewport.scrollWidth - viewport.clientWidth;\n\n const trackSize = isVertical() ? trackEl.clientHeight : trackEl.clientWidth;\n const trackInnerSize = trackSize - 2; // track有内边距\n\n const thumbSize = isVertical()\n ? (e.currentTarget as HTMLDivElement).clientHeight\n : (e.currentTarget as HTMLDivElement).clientWidth;\n const scrollRatio = maxScroll / (trackInnerSize - thumbSize);\n\n function onMove(me: PointerEvent) {\n const delta = (isVertical() ? me.clientY : me.clientX) - startPointer;\n\n const newScroll = Math.max(\n 0,\n Math.min(maxScroll, startScroll + delta * scrollRatio),\n );\n if (isVertical()) {\n viewport!.scrollTop = newScroll;\n } else {\n viewport!.scrollLeft = newScroll;\n }\n }\n\n function onUp() {\n ctx.setDragging(null);\n setActive(false);\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onUp);\n }\n\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onUp);\n\n onCleanup(() => {\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onUp);\n });\n }\n\n // ── Track click: page-scroll (click above/below thumb) ───────────────────\n function onTrackPointerDown(e: PointerEvent) {\n // Ignore if the target is the thumb itself\n if ((e.target as HTMLElement).dataset.slot === \"scroll-area-thumb\") return;\n\n const viewport = ctx.viewportRef();\n if (!viewport) return;\n\n const rect = trackEl.getBoundingClientRect();\n const clickPos = isVertical()\n ? (e.clientY - rect.top) / rect.height\n : (e.clientX - rect.left) / rect.width;\n\n const maxScroll = isVertical()\n ? viewport.scrollHeight - viewport.clientHeight\n : viewport.scrollWidth - viewport.clientWidth;\n\n const target = clickPos * maxScroll;\n\n viewport.scrollTo({\n [isVertical() ? \"top\" : \"left\"]: target,\n behavior: \"smooth\",\n });\n }\n\n // ── Keyboard scrolling on the scrollbar track ─────────────────────────────\n function onKeyDown(e: KeyboardEvent) {\n const viewport = ctx.viewportRef();\n if (!viewport) return;\n\n const step = 40; // px per keypress\n const pageSize = isVertical()\n ? viewport.clientHeight\n : viewport.clientWidth;\n\n const keyMap: Record<string, number> = {\n ArrowDown: step,\n ArrowRight: step,\n ArrowUp: -step,\n ArrowLeft: -step,\n PageDown: pageSize,\n PageUp: -pageSize,\n Home: -Infinity,\n End: Infinity,\n };\n\n const delta = keyMap[e.key];\n if (delta === undefined) return;\n\n e.preventDefault();\n\n if (isVertical()) {\n viewport.scrollTop = Math.max(\n 0,\n Math.min(\n viewport.scrollHeight - viewport.clientHeight,\n delta === Infinity\n ? viewport.scrollHeight\n : delta === -Infinity\n ? 0\n : viewport.scrollTop + delta,\n ),\n );\n } else {\n viewport.scrollLeft = Math.max(\n 0,\n Math.min(\n viewport.scrollWidth - viewport.clientWidth,\n delta === Infinity\n ? viewport.scrollWidth\n : delta === -Infinity\n ? 0\n : viewport.scrollLeft + delta,\n ),\n );\n }\n }\n\n // ── Visibility: show while hovering or dragging ───────────────────────────\n const visible = createMemo(\n () => ctx.hovering() || ctx.dragging() === props.orientation || active(),\n );\n\n return (\n <div\n ref={trackEl}\n data-slot=\"scroll-area-scrollbar\"\n // WCAG 4.1.2: expose as scrollbar widget\n role=\"scrollbar\"\n aria-controls=\"scroll-area-viewport\"\n aria-orientation={local.orientation}\n aria-valuenow={ariaValueNow()}\n aria-valuemin={0}\n aria-valuemax={100}\n tabIndex={0}\n onPointerDown={onTrackPointerDown}\n onKeyDown={onKeyDown}\n data-orientation={local.orientation}\n data-hovering={ctx.hovering() ? \"\" : undefined}\n class={clsx(\n // Layout\n \"absolute touch-none select-none transition-opacity duration-150\",\n // Opacity — visible on hover/drag, hidden otherwise\n visible() ? \"opacity-100\" : \"opacity-0\",\n // Axis-specific positioning & size\n isVertical()\n ? \"right-0 top-0 h-full w-2.5 border-l border-l-transparent p-px flex flex-col\"\n : \"bottom-0 left-0 w-full h-2.5 border-t border-t-transparent p-px flex flex-row\",\n // Keyboard focus ring\n \"outline-none focus-visible:ring-2 focus-visible:ring-neutral-400/70 dark:focus-visible:ring-neutral-500/70\",\n local.class,\n )}\n {...others}\n >\n <div\n data-slot=\"scroll-area-thumb\"\n onPointerDown={onThumbPointerDown}\n data-orientation={local.orientation}\n class={clsx(\n \"relative rounded-full bg-border\",\n // Hover / active state\n \"hover:bg-neutral-400 dark:hover:bg-white/30\",\n active() ? \"bg-neutral-500 dark:bg-white/40\" : \"\",\n \"transition-colors duration-100\",\n // Ensure thumb is always reachable\n isVertical() ? \"min-h-5 w-full\" : \"min-w-5 h-full\",\n )}\n style={thumbStyle()}\n />\n </div>\n );\n};\n"],"mappings":";;;;;kMAYMQ,IAAe,IAERC,KAAaC,MAA0B;CAClD,IAAMC,IAAMJ,EAAqB,GAE7BK,GAEEE,IAASZ,EAAW,EAAEa,aAAa,WAAW,GAAYL,CAAK,GAE/D,CAACO,GAAOC,KAAUd,EAAWU,GAAQ;EACzC;EACA;EACA;CAAW,CACZ,GAEK,CAACK,GAAQC,KAAanB,EAAa,EAAK,GACxCoB,UAAmBJ,EAAMF,gBAAgB,YAEzCO,IAAUtB,QACdqB,EAAW,IAAIV,EAAIY,SAAS,IAAIZ,EAAIa,WAAW,CACjD,GAMMC,IAAazB,QAAiB;EAClC,IAAM0B,IAAIJ,EAAQ,GAMZQ,KAJYT,EAAW,IACxBT,GAASgB,gBAAgB,IACzBhB,GAASiB,eAAe,KAEM,GAE7BE,IAAeD,IAAiBJ,EAAEM,YAClCC,IAAYC,KAAKC,IAAIJ,GAAcvB,CAAY,GAI/C6B,IADYH,KAAKC,IAAI,GAAGL,IAAiBG,CAChCG,IAAYV,EAAEY;EAQ7B,OANIjB,EAAW,IACN;GACLkB,QAAQ,GAAGN,EAAS;GACpBO,WAAW,cAAcH,EAAM;EACjC,IAEK;GACLI,OAAO,GAAGR,EAAS;GACnBO,WAAW,cAAcH,EAAM;EACjC;CACF,CAAC,GAGKK,IAAe1C,QACnBkC,KAAKS,MAAMrB,EAAQ,CAAC,CAACgB,cAAc,GAAG,CACxC;CAGA,SAASM,EAAmBC,GAAiB;EAE3CA,AADAA,EAAEE,eAAe,GACjBF,EAAEG,gBAAgB;EAElB,IAAMC,IAAWtC,EAAIuC,YAAY;EACjC,IAAI,CAACD,GAAU;EAGf7B,AADAT,EAAIwC,YAAYlC,EAAMF,WAAW,GACjCK,EAAU,EAAI;EAEd,IAAMgC,IAAe/B,EAAW,IAAIwB,EAAEQ,UAAUR,EAAES,SAC5CC,IAAclC,EAAW,IAAI4B,EAASO,YAAYP,EAASQ,YAC3DC,IAAYrC,EAAW,IACzB4B,EAASU,eAAeV,EAASrB,eACjCqB,EAASW,cAAcX,EAASpB,aAQ9BiC,IAAcJ,MANFrC,EAAW,IAAIT,EAAQgB,eAAehB,EAAQiB,eAC7B,KAEjBR,EAAW,IACxBwB,EAAEgB,cAAiCjC,eACnCiB,EAAEgB,cAAiChC;EAGxC,SAASkC,EAAOC,GAAkB;GAChC,IAAMC,KAAS5C,EAAW,IAAI2C,EAAGX,UAAUW,EAAGV,WAAWF,GAEnDc,IAAYhC,KAAKC,IACrB,GACAD,KAAKiC,IAAIT,GAAWH,IAAcU,IAAQH,CAAW,CACvD;GACA,AAAIzC,EAAW,IACb4B,EAAUO,YAAYU,IAEtBjB,EAAUQ,aAAaS;EAE3B;EAEA,SAASE,IAAO;GAIdC,AAHA1D,EAAIwC,YAAY,IAAI,GACpB/B,EAAU,EAAK,GACfiD,OAAOC,oBAAoB,eAAeP,CAAM,GAChDM,OAAOC,oBAAoB,aAAaF,CAAI;EAC9C;EAKAjE,AAHAkE,OAAOE,iBAAiB,eAAeR,CAAM,GAC7CM,OAAOE,iBAAiB,aAAaH,CAAI,GAEzCjE,QAAgB;GAEdkE,AADAA,OAAOC,oBAAoB,eAAeP,CAAM,GAChDM,OAAOC,oBAAoB,aAAaF,CAAI;EAC9C,CAAC;CACH;CAGA,SAASI,EAAmB3B,GAAiB;EAE3C,IAAKA,EAAE4B,OAAuBE,QAAQC,SAAS,qBAAqB;EAEpE,IAAM3B,IAAWtC,EAAIuC,YAAY;EACjC,IAAI,CAACD,GAAU;EAEf,IAAM4B,IAAOjE,EAAQkE,sBAAsB,GASrCL,KARWpD,EAAW,KACvBwB,EAAEQ,UAAUwB,EAAKG,OAAOH,EAAKtC,UAC7BM,EAAES,UAAUuB,EAAKI,QAAQJ,EAAKpC,UAEjBpB,EAAW,IACzB4B,EAASU,eAAeV,EAASrB,eACjCqB,EAASW,cAAcX,EAASpB;EAIpCoB,EAASiC,SAAS;IACf7D,EAAW,IAAI,QAAQ,SAASoD;GACjCU,UAAU;EACZ,CAAC;CACH;CAGA,SAASC,EAAUvC,GAAkB;EACnC,IAAMI,IAAWtC,EAAIuC,YAAY;EACjC,IAAI,CAACD,GAAU;EAEf,IACMsC,IAAWlE,EAAW,IACxB4B,EAASrB,eACTqB,EAASpB,aAaPoC,IAAQuB;GAVZE,WAAWJ;GACXK,YAAYL;GACZM,SAAS;GACTC,WAAW;GACXC,UAAUP;GACVQ,QAAQ,CAACR;GACTS,MAAM;GACNE,KAAKD;EAGOT,EAAO3C,EAAEsD;EACvB,AAAIlC,MAAUmC,KAAAA,MAEdvD,EAAEE,eAAe,GAEb1B,EAAW,IACb4B,EAASO,YAAYtB,KAAKC,IACxB,GACAD,KAAKiC,IACHlB,EAASU,eAAeV,EAASrB,cACjCqC,MAAUgC,WACNhD,EAASU,eACTM,MAAU,YACR,IACAhB,EAASO,YAAYS,CAC7B,CACF,IAEAhB,EAASQ,aAAavB,KAAKC,IACzB,GACAD,KAAKiC,IACHlB,EAASW,cAAcX,EAASpB,aAChCoC,MAAUgC,WACNhD,EAASW,cACTK,MAAU,YACR,IACAhB,EAASQ,aAAaQ,CAC9B,CACF;CAEJ;CAGA,IAAMoC,IAAUrG,QACRW,EAAI2F,SAAS,KAAK3F,EAAI4F,SAAS,MAAM7F,EAAMK,eAAeI,EAAO,CACzE;CAEA,cAAA;EAAA,IAAAqF,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EAawBH,AAbxBA,EAAAI,YAaexB,GAASoB,EAAAK,gBADLrC;EAAkB,IAAAsC,IAV5BlG;EA0CgB,OA1CT,OAAAkG,KAAA,aAAAC,EAAAD,GAAAN,CAAA,IAAP5F,IAAO4F,GAAAQ,EAAAR,GAAAS,EAAA;GAAA,IAAA,qBAAA;IAAA,OAKMhG,EAAMF;GAAW;GAAA,IAAA,kBAAA;IAAA,OACpB2B,EAAa;GAAC;GAAA,IAAA,qBAAA;IAAA,OAMXzB,EAAMF;GAAW;GAAA,IAAA,kBAAA;IAAA,OACpBJ,EAAI2F,SAAS,IAAI,KAAKF,KAAAA;GAAS;GAAA,IAAAsF,QAAA;IAAA,OACvCpL,EAEL,mEAEA+F,EAAQ,IAAI,gBAAgB,aAE5BhF,EAAW,IACP,gFACA,iFAEJ,8GACAJ,EAAMqG,KACR;GAAC;EAAA,GACGpG,CAAM,GAAA,IAAA,EAAA,GAAAwF,EAAAG,gBAIOjE,GAAkB2E,GAAAC,MAAA;GAAA,IAAAC,IACfxG,EAAMF,aAAW2G,IAC5BpH,EACL,mCAEA,+CACAa,EAAO,IAAI,oCAAoC,IAC/C,kCAEAE,EAAW,IAAI,mBAAmB,gBACpC,GAACsG,IACMlG,EAAW;GAAC,OAAAgG,MAAAD,EAAA3E,KAAA+E,EAAAlB,GAAA,oBAAAc,EAAA3E,IAAA4E,CAAA,GAAAC,MAAAF,EAAAK,KAAAC,EAAApB,GAAAc,EAAAK,IAAAH,CAAA,GAAAF,EAAAO,IAAAC,EAAAtB,GAAAiB,GAAAH,EAAAO,CAAA,GAAAP;EAAA,GAAA;GAAA3E,GAAAuD,KAAAA;GAAAyB,GAAAzB,KAAAA;GAAA2B,GAAA3B,KAAAA;EAAA,CAAA,GAAAI;CAAA,EAAA,CAAA;AAI3B;AAAEyB,EAAA,CAAA,eAAA,SAAA,CAAA"}
1
+ {"version":3,"file":"ScrollBar.js","names":["createMemo","createSignal","mergeProps","splitProps","ScrollBarProps","clsx","useScrollAreaContext","computeAriaValueNow","computeThumbStyle","isScrollBarVisible","isVertical","useScrollBarInteraction","ScrollBar","props","ctx","merged","orientation","const","local","others","trackEl","setTrackEl","HTMLDivElement","active","setActive","isVerticalAxis","metrics","vertical","horizontal","thumbStyle","el","trackSize","clientHeight","clientWidth","ariaValueNow","visible","hovering","dragging","interaction","track","viewport","viewportRef","onDragChange","setDragging","_el$","_tmpl$","_el$2","firstChild","_$use","_$spread","_$mergeProps","aria-orientation","aria-valuenow","onPointerDown","onTrackPointerDown","onKeyDown","data-orientation","data-hovering","undefined","class","classList","_$addEventListener","onThumbPointerDown","_$effect","_p$","_v$","_v$2","_v$3","e","_$setAttribute","t","_$className","a","_$style","_$delegateEvents","mergeProps","_$mergeProps","_$setAttribute","_$className","_$style","_$delegateEvents","mergeProps$1","_tmpl$","ScrollBar","ctx","useScrollAreaContext","merged","props","local","others","splitProps","trackEl","setTrackEl","createSignal","active","setActive","orientation","isVerticalAxis","isVertical","metrics","createMemo","thumbStyle","el","trackSize","computeThumbStyle","ariaValueNow","computeAriaValueNow","visible","isScrollBarVisible","interaction","useScrollBarInteraction","dragging","_el$","_el$2","use","spread","mergeProps","\"class\"","clsx","addEventListener","effect","_v$","_v$2","_v$3","_p$","setAttribute","className","style","delegateEvents"],"sources":["../../../../src/components/scroll-area/ScrollBar/ScrollBar.tsx"],"sourcesContent":["import { createMemo, createSignal, mergeProps, splitProps } from \"solid-js\";\nimport type { ScrollBarProps } from \"./ScrollBar.types\";\nimport { clsx } from \"~/utils\";\nimport { useScrollAreaContext } from \"../ScrollArea\";\nimport {\n computeAriaValueNow,\n computeThumbStyle,\n isScrollBarVisible,\n isVertical,\n} from \"./ScrollBar.utils\";\nimport { useScrollBarInteraction } from \"./useScrollBarInteraction\";\n\n/**\n * 自定义滚动条。\n *\n * 职责边界(SRP):\n * - 数值/几何换算 → `ScrollBar.utils.ts`(纯函数,可独立单测)\n * - 指针/键盘事件 → `useScrollBarInteraction.ts`\n * - 本文件只负责:从 Context 读取指标、组装状态、渲染 DOM 与样式\n */\nexport const ScrollBar = (props: ScrollBarProps) => {\n const ctx = useScrollAreaContext();\n\n const merged = mergeProps({ orientation: \"vertical\" } as const, props);\n\n const [local, others] = splitProps(merged, [\n \"orientation\",\n \"class\",\n \"classList\",\n ]);\n\n const [trackEl, setTrackEl] = createSignal<HTMLDivElement>();\n const [active, setActive] = createSignal(false);\n\n const orientation = () => local.orientation;\n const isVerticalAxis = () => isVertical(orientation());\n\n const metrics = createMemo(() =>\n isVerticalAxis() ? ctx.vertical() : ctx.horizontal(),\n );\n\n /** 滑块内联样式:先夹住最小长度,再重算位移避免溢出 track */\n const thumbStyle = createMemo(() => {\n const el = trackEl();\n const trackSize = el\n ? isVerticalAxis()\n ? el.clientHeight\n : el.clientWidth\n : 0;\n return computeThumbStyle(orientation(), metrics(), trackSize);\n });\n\n const ariaValueNow = createMemo(() => computeAriaValueNow(metrics()));\n\n const visible = createMemo(() =>\n isScrollBarVisible(ctx.hovering(), ctx.dragging(), orientation(), active()),\n );\n\n const interaction = useScrollBarInteraction({\n track: trackEl,\n viewport: ctx.viewportRef,\n orientation,\n onDragChange: (dragging) => {\n ctx.setDragging(dragging ? orientation() : null);\n setActive(dragging);\n },\n });\n\n return (\n <div\n ref={setTrackEl}\n data-slot=\"scroll-area-scrollbar\"\n // WCAG 4.1.2: expose as scrollbar widget\n role=\"scrollbar\"\n aria-controls=\"scroll-area-viewport\"\n aria-orientation={orientation()}\n aria-valuenow={ariaValueNow()}\n aria-valuemin={0}\n aria-valuemax={100}\n tabIndex={0}\n onPointerDown={interaction.onTrackPointerDown}\n onKeyDown={interaction.onKeyDown}\n data-orientation={orientation()}\n data-hovering={ctx.hovering() ? \"\" : undefined}\n class={clsx(\n // Layout\n \"absolute touch-none select-none transition-opacity duration-150\",\n // Opacity — visible on hover/drag, hidden otherwise\n visible() ? \"opacity-100\" : \"opacity-0\",\n // Axis-specific positioning & size\n isVerticalAxis()\n ? \"right-0 top-0 h-full w-2.5 border-l border-l-transparent p-px flex flex-col\"\n : \"bottom-0 left-0 w-full h-2.5 border-t border-t-transparent p-px flex flex-row\",\n // Keyboard focus ring\n \"outline-none focus-visible:ring-2 focus-visible:ring-neutral-400/70 dark:focus-visible:ring-neutral-500/70\",\n local.class,\n local.classList,\n )}\n classList={local.classList}\n {...others}\n >\n <div\n data-slot=\"scroll-area-thumb\"\n onPointerDown={interaction.onThumbPointerDown}\n data-orientation={orientation()}\n class={clsx(\n \"relative rounded-full bg-border\",\n // Hover / active state\n \"hover:bg-neutral-400 dark:hover:bg-white/30\",\n active() ? \"bg-neutral-500 dark:bg-white/40\" : \"\",\n \"transition-colors duration-100\",\n // Ensure thumb is always reachable\n isVerticalAxis() ? \"min-h-5 w-full\" : \"min-w-5 h-full\",\n )}\n style={thumbStyle()}\n />\n </div>\n );\n};\n"],"mappings":";;;;;;;kMAoBaY,KAAaC,MAA0B;CAClD,IAAMC,IAAMR,EAAqB,GAE3BS,IAASb,EAAW,EAAEc,aAAa,WAAW,GAAYH,CAAK,GAE/D,CAACK,GAAOC,KAAUhB,EAAWY,GAAQ;EACzC;EACA;EACA;CAAW,CACZ,GAEK,CAACK,GAASC,KAAcpB,EAA6B,GACrD,CAACsB,GAAQC,KAAavB,EAAa,EAAK,GAExCe,UAAoBE,EAAMF,aAC1BS,UAAuBf,EAAWM,EAAY,CAAC,GAE/CU,IAAU1B,QACdyB,EAAe,IAAIX,EAAIa,SAAS,IAAIb,EAAIc,WAAW,CACrD,GAGMC,IAAa7B,QAAiB;EAClC,IAAM8B,IAAKV,EAAQ,GACbW,IAAYD,IACdL,EAAe,IACbK,EAAGE,eACHF,EAAGG,cACL;EACJ,OAAOzB,EAAkBQ,EAAY,GAAGU,EAAQ,GAAGK,CAAS;CAC9D,CAAC,GAEKG,IAAelC,QAAiBO,EAAoBmB,EAAQ,CAAC,CAAC,GAE9DS,IAAUnC,QACdS,EAAmBK,EAAIsB,SAAS,GAAGtB,EAAIuB,SAAS,GAAGrB,EAAY,GAAGO,EAAO,CAAC,CAC5E,GAEMe,IAAc3B,EAAwB;EAC1C4B,OAAOnB;EACPoB,UAAU1B,EAAI2B;EACdzB;EACA0B,eAAeL,MAAa;GAE1Bb,AADAV,EAAI6B,YAAYN,IAAWrB,EAAY,IAAI,IAAI,GAC/CQ,EAAUa,CAAQ;EACpB;CACF,CAAC;CAED,cAAA;EAAA,IAAAO,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EA8CyB,OA9CzBC,EAES3B,GAAUuB,CAAA,GAAAK,EAAAL,GAAAM,EAAA;GAAA,IAAA,qBAAA;IAAA,OAKGlC,EAAY;GAAC;GAAA,IAAA,kBAAA;IAAA,OAChBkB,EAAa;GAAC;GAAA,IAI7BmB,gBAAa;IAAA,OAAEf,EAAYgB;GAAkB;GAAA,IAC7CC,YAAS;IAAA,OAAEjB,EAAYiB;GAAS;GAAA,IAAA,qBAAA;IAAA,OACdvC,EAAY;GAAC;GAAA,IAAA,kBAAA;IAAA,OAChBF,EAAIsB,SAAS,IAAI,KAAKsB,KAAAA;GAAS;GAAA,IAAA2D,QAAA;IAAA,OACvChH,EAEL,mEAEA8B,EAAQ,IAAI,gBAAgB,aAE5BV,EAAe,IACX,gFACA,iFAEJ,8GACAP,EAAMyC,OACNzC,EAAM0C,SACR;GAAC;GAAA,IACDA,YAAS;IAAA,OAAE1C,EAAM0C;GAAS;EAAA,GACtBzC,CAAM,GAAA,IAAA,EAAA,GAAA0C,EAAAf,GAAA,eAIOR,EAAYwB,oBAAkB,EAAA,GAAAC,GAAAC,MAAA;GAAA,IAAAC,IAC3BjD,EAAY,GAACkD,IACxB7D,EACL,mCAEA,+CACAkB,EAAO,IAAI,oCAAoC,IAC/C,kCAEAE,EAAe,IAAI,mBAAmB,gBACxC,GAAC0C,IACMtC,EAAW;GAAC,OAAAoC,MAAAD,EAAAI,KAAAC,EAAAvB,GAAA,oBAAAkB,EAAAI,IAAAH,CAAA,GAAAC,MAAAF,EAAAM,KAAAC,EAAAzB,GAAAkB,EAAAM,IAAAJ,CAAA,GAAAF,EAAAQ,IAAAC,EAAA3B,GAAAqB,GAAAH,EAAAQ,CAAA,GAAAR;EAAA,GAAA;GAAAI,GAAAV,KAAAA;GAAAY,GAAAZ,KAAAA;GAAAc,GAAAd,KAAAA;EAAA,CAAA,GAAAd;CAAA,EAAA,CAAA;AAI3B;AAAE8B,EAAA,CAAA,aAAA,CAAA"}
@@ -0,0 +1,56 @@
1
+ import { ScrollMetrics } from '../ScrollArea/ScrollArea.types';
2
+ /** 滑块最小长度(px),保证任何比例下都点得到 */
3
+ export declare const MIN_THUMB_PX = 20;
4
+ /** track 的内边距(Tailwind `p-px`),由 track 尺寸减去得到内容区 */
5
+ export declare const TRACK_PADDING_PX = 2;
6
+ /** 键盘每按一次的滚动步长(px) */
7
+ export declare const KEYBOARD_STEP_PX = 40;
8
+ export type Orientation = "horizontal" | "vertical";
9
+ export declare function isVertical(orientation: Orientation): boolean;
10
+ /**
11
+ * 滑块的内联样式:先按比例算出长度并用 `MIN_THUMB_PX` 夹住,
12
+ * 再按夹住后的可用空间重算位移,保证滑块永远不溢出 track。
13
+ */
14
+ export declare function computeThumbStyle(orientation: Orientation, metrics: ScrollMetrics, trackSize: number): {
15
+ height?: string;
16
+ width?: string;
17
+ transform: string;
18
+ };
19
+ /** ARIA `aria-valuenow`:0–100 的整数滚动位置 */
20
+ export declare function computeAriaValueNow(metrics: ScrollMetrics): number;
21
+ /** 每次按下/移动时沿当前轴读取指针坐标 */
22
+ export declare function pointerCoord(orientation: Orientation, event: PointerEvent): number;
23
+ /** 当前轴的最大可滚动距离 */
24
+ export declare function maxScrollOf(orientation: Orientation, viewport: HTMLElement): number;
25
+ /** 当前轴的滚动位置 */
26
+ export declare function scrollPosOf(orientation: Orientation, viewport: HTMLElement): number;
27
+ /** 把滚动位置写回当前轴 */
28
+ export declare function applyScrollPos(orientation: Orientation, viewport: HTMLElement, value: number): void;
29
+ /**
30
+ * 拖动滑块时的「像素位移 → 滚动距离」比例。
31
+ * 分母是 track 内容区减去滑块长度;为 0(滑块占满 track)时返回 1 以避免除零。
32
+ */
33
+ export declare function thumbDragRatio(maxScroll: number, trackSize: number, thumbSize: number): number;
34
+ /** 按比例把拖动位移映射成新滚动位置(夹在 [0, maxScroll]) */
35
+ export declare function scrollFromDrag(startScroll: number, deltaPx: number, ratio: number, maxScroll: number): number;
36
+ /**
37
+ * 点击 track 空白处时的目标滚动位置:按点击点在 track 上的比例换算。
38
+ * `rect` 尺寸为 0(jsdom 无布局)时返回 0,避免 NaN。
39
+ */
40
+ export declare function scrollFromTrackClick(orientation: Orientation, rect: {
41
+ top: number;
42
+ left: number;
43
+ height: number;
44
+ width: number;
45
+ }, event: PointerEvent, maxScroll: number): number;
46
+ /** 键盘按键 → 滚动增量;不可识别的键返回 `undefined`(调用方跳过) */
47
+ export declare function keyboardScrollDelta(key: string, pageSize: number): number | undefined;
48
+ /**
49
+ * 把键盘增量应用到 [0, max] 区间。
50
+ * `delta` 为 ±Infinity 时分别落到两端(Home / End 语义)。
51
+ * 注意:这里用 `scrollSize` 而不是 `max` 作为 End 的目标,保留原有行为
52
+ * (浏览器会自动夹到最大值)。
53
+ */
54
+ export declare function scrollFromKeyboard(current: number, delta: number, max: number, scrollSize: number): number;
55
+ /** 可见性:悬停、正在拖动当前轴、或滑块处于按压态 */
56
+ export declare function isScrollBarVisible(hovering: boolean, dragging: "horizontal" | "vertical" | null, orientation: Orientation, active: boolean): boolean;
@@ -0,0 +1,61 @@
1
+ function e(e) {
2
+ return e === "vertical";
3
+ }
4
+ function t(t, n, r) {
5
+ let i = r - 2, a = Math.max(i * n.thumbRatio, 20), o = Math.max(0, i - a) * n.thumbOffset;
6
+ return e(t) ? {
7
+ height: `${a}px`,
8
+ transform: `translateY(${o}px)`
9
+ } : {
10
+ width: `${a}px`,
11
+ transform: `translateX(${o}px)`
12
+ };
13
+ }
14
+ function n(e) {
15
+ return Math.round(e.thumbOffset * 100);
16
+ }
17
+ function r(t, n) {
18
+ return e(t) ? n.clientY : n.clientX;
19
+ }
20
+ function i(t, n) {
21
+ return e(t) ? n.scrollHeight - n.clientHeight : n.scrollWidth - n.clientWidth;
22
+ }
23
+ function a(t, n) {
24
+ return e(t) ? n.scrollTop : n.scrollLeft;
25
+ }
26
+ function o(t, n, r) {
27
+ e(t) ? n.scrollTop = r : n.scrollLeft = r;
28
+ }
29
+ function s(e, t, n) {
30
+ let r = t - 2 - n;
31
+ return r === 0 ? 1 : e / r;
32
+ }
33
+ function c(e, t, n, r) {
34
+ return Math.max(0, Math.min(r, e + t * n));
35
+ }
36
+ function l(t, n, r, i) {
37
+ let a = e(t) ? n.height : n.width;
38
+ return a === 0 ? 0 : (e(t) ? r.clientY - n.top : r.clientX - n.left) / a * i;
39
+ }
40
+ function u(e, t) {
41
+ return {
42
+ ArrowDown: 40,
43
+ ArrowRight: 40,
44
+ ArrowUp: -40,
45
+ ArrowLeft: -40,
46
+ PageDown: t,
47
+ PageUp: -t,
48
+ Home: -Infinity,
49
+ End: Infinity
50
+ }[e];
51
+ }
52
+ function d(e, t, n, r) {
53
+ return t === Infinity ? r : t === -Infinity ? 0 : Math.max(0, Math.min(n, e + t));
54
+ }
55
+ function f(e, t, n, r) {
56
+ return e || t === n || r;
57
+ }
58
+ //#endregion
59
+ export { o as applyScrollPos, n as computeAriaValueNow, t as computeThumbStyle, f as isScrollBarVisible, e as isVertical, u as keyboardScrollDelta, i as maxScrollOf, r as pointerCoord, c as scrollFromDrag, d as scrollFromKeyboard, l as scrollFromTrackClick, a as scrollPosOf, s as thumbDragRatio };
60
+
61
+ //# sourceMappingURL=ScrollBar.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollBar.utils.js","names":["isVertical","orientation","computeThumbStyle","trackInnerSize","trackSize","thumbSize","metrics","offset","computeAriaValueNow","pointerCoord","event","maxScrollOf","viewport","scrollPosOf","applyScrollPos","value","thumbDragRatio","denominator","maxScroll","scrollFromDrag","startScroll","deltaPx","ratio","scrollFromTrackClick","size","rect","keyboardScrollDelta","pageSize","key","scrollFromKeyboard","delta","scrollSize","max","current","isScrollBarVisible","hovering","dragging","active"],"sources":["../../../../src/components/scroll-area/ScrollBar/ScrollBar.utils.ts"],"sourcesContent":["/**\n * ScrollBar 的纯计算逻辑。\n *\n * 单一职责:只做「几何/数值换算」,不碰 DOM 事件、不持有信号、不渲染。\n * 这样滚动条的核心数学可以脱离 jsdom 的布局限制被直接单测。\n */\n\nimport type { ScrollMetrics } from \"../ScrollArea/ScrollArea.types\";\n\n/** 滑块最小长度(px),保证任何比例下都点得到 */\nexport const MIN_THUMB_PX = 20;\n/** track 的内边距(Tailwind `p-px`),由 track 尺寸减去得到内容区 */\nexport const TRACK_PADDING_PX = 2;\n/** 键盘每按一次的滚动步长(px) */\nexport const KEYBOARD_STEP_PX = 40;\n\nexport type Orientation = \"horizontal\" | \"vertical\";\n\nexport function isVertical(orientation: Orientation): boolean {\n return orientation === \"vertical\";\n}\n\n/**\n * 滑块的内联样式:先按比例算出长度并用 `MIN_THUMB_PX` 夹住,\n * 再按夹住后的可用空间重算位移,保证滑块永远不溢出 track。\n */\nexport function computeThumbStyle(\n orientation: Orientation,\n metrics: ScrollMetrics,\n trackSize: number,\n): { height?: string; width?: string; transform: string } {\n const trackInnerSize = trackSize - TRACK_PADDING_PX;\n const thumbSize = Math.max(trackInnerSize * metrics.thumbRatio, MIN_THUMB_PX);\n const maxOffset = Math.max(0, trackInnerSize - thumbSize);\n const offset = maxOffset * metrics.thumbOffset;\n\n return isVertical(orientation)\n ? { height: `${thumbSize}px`, transform: `translateY(${offset}px)` }\n : { width: `${thumbSize}px`, transform: `translateX(${offset}px)` };\n}\n\n/** ARIA `aria-valuenow`:0–100 的整数滚动位置 */\nexport function computeAriaValueNow(metrics: ScrollMetrics): number {\n return Math.round(metrics.thumbOffset * 100);\n}\n\n/** 每次按下/移动时沿当前轴读取指针坐标 */\nexport function pointerCoord(\n orientation: Orientation,\n event: PointerEvent,\n): number {\n return isVertical(orientation) ? event.clientY : event.clientX;\n}\n\n/** 当前轴的最大可滚动距离 */\nexport function maxScrollOf(\n orientation: Orientation,\n viewport: HTMLElement,\n): number {\n return isVertical(orientation)\n ? viewport.scrollHeight - viewport.clientHeight\n : viewport.scrollWidth - viewport.clientWidth;\n}\n\n/** 当前轴的滚动位置 */\nexport function scrollPosOf(\n orientation: Orientation,\n viewport: HTMLElement,\n): number {\n return isVertical(orientation) ? viewport.scrollTop : viewport.scrollLeft;\n}\n\n/** 把滚动位置写回当前轴 */\nexport function applyScrollPos(\n orientation: Orientation,\n viewport: HTMLElement,\n value: number,\n): void {\n if (isVertical(orientation)) {\n viewport.scrollTop = value;\n } else {\n viewport.scrollLeft = value;\n }\n}\n\n/**\n * 拖动滑块时的「像素位移 → 滚动距离」比例。\n * 分母是 track 内容区减去滑块长度;为 0(滑块占满 track)时返回 1 以避免除零。\n */\nexport function thumbDragRatio(\n maxScroll: number,\n trackSize: number,\n thumbSize: number,\n): number {\n const denominator = trackSize - TRACK_PADDING_PX - thumbSize;\n return denominator === 0 ? 1 : maxScroll / denominator;\n}\n\n/** 按比例把拖动位移映射成新滚动位置(夹在 [0, maxScroll]) */\nexport function scrollFromDrag(\n startScroll: number,\n deltaPx: number,\n ratio: number,\n maxScroll: number,\n): number {\n return Math.max(0, Math.min(maxScroll, startScroll + deltaPx * ratio));\n}\n\n/**\n * 点击 track 空白处时的目标滚动位置:按点击点在 track 上的比例换算。\n * `rect` 尺寸为 0(jsdom 无布局)时返回 0,避免 NaN。\n */\nexport function scrollFromTrackClick(\n orientation: Orientation,\n rect: { top: number; left: number; height: number; width: number },\n event: PointerEvent,\n maxScroll: number,\n): number {\n const size = isVertical(orientation) ? rect.height : rect.width;\n if (size === 0) return 0;\n const offset = isVertical(orientation)\n ? event.clientY - rect.top\n : event.clientX - rect.left;\n return (offset / size) * maxScroll;\n}\n\n/** 键盘按键 → 滚动增量;不可识别的键返回 `undefined`(调用方跳过) */\nexport function keyboardScrollDelta(\n key: string,\n pageSize: number,\n): number | undefined {\n const keyMap: Record<string, number> = {\n ArrowDown: KEYBOARD_STEP_PX,\n ArrowRight: KEYBOARD_STEP_PX,\n ArrowUp: -KEYBOARD_STEP_PX,\n ArrowLeft: -KEYBOARD_STEP_PX,\n PageDown: pageSize,\n PageUp: -pageSize,\n Home: -Infinity,\n End: Infinity,\n };\n return keyMap[key];\n}\n\n/**\n * 把键盘增量应用到 [0, max] 区间。\n * `delta` 为 ±Infinity 时分别落到两端(Home / End 语义)。\n * 注意:这里用 `scrollSize` 而不是 `max` 作为 End 的目标,保留原有行为\n * (浏览器会自动夹到最大值)。\n */\nexport function scrollFromKeyboard(\n current: number,\n delta: number,\n max: number,\n scrollSize: number,\n): number {\n if (delta === Infinity) return scrollSize;\n if (delta === -Infinity) return 0;\n return Math.max(0, Math.min(max, current + delta));\n}\n\n/** 可见性:悬停、正在拖动当前轴、或滑块处于按压态 */\nexport function isScrollBarVisible(\n hovering: boolean,\n dragging: \"horizontal\" | \"vertical\" | null,\n orientation: Orientation,\n active: boolean,\n): boolean {\n return hovering || dragging === orientation || active;\n}\n"],"mappings":"AAkBA,SAAgBA,EAAW,GAAmC;CAC5D,OAAOC,MAAgB;AACzB;AAMA,SAAgBC,EACd,GACA,GACA,GACwD;CACxD,IAAMC,IAAiBC,IAAA,GACjBC,IAAY,KAAK,IAAIF,IAAiBG,EAAQ,YAAA,EAAwB,GAEtEC,IADY,KAAK,IAAI,GAAGJ,IAAiBE,CAChC,IAAYC,EAAQ;CAEnC,OAAON,EAAWC,CAAW,IACzB;EAAE,QAAQ,GAAGI,EAAU;EAAK,WAAW,cAAcE,EAAO;CAAK,IACjE;EAAE,OAAO,GAAGF,EAAU;EAAK,WAAW,cAAcE,EAAO;CAAK;AACtE;AAGA,SAAgBC,EAAoB,GAAgC;CAClE,OAAO,KAAK,MAAMF,EAAQ,cAAc,GAAG;AAC7C;AAGA,SAAgBG,EACd,GACA,GACQ;CACR,OAAOT,EAAWC,CAAW,IAAIS,EAAM,UAAUA,EAAM;AACzD;AAGA,SAAgBC,EACd,GACA,GACQ;CACR,OAAOX,EAAWC,CAAW,IACzBW,EAAS,eAAeA,EAAS,eACjCA,EAAS,cAAcA,EAAS;AACtC;AAGA,SAAgBC,EACd,GACA,GACQ;CACR,OAAOb,EAAWC,CAAW,IAAIW,EAAS,YAAYA,EAAS;AACjE;AAGA,SAAgBE,EACd,GACA,GACA,GACM;CACN,AAAId,EAAWC,CAAW,IACxB,EAAS,YAAYc,IAErB,EAAS,aAAaA;AAE1B;AAMA,SAAgBC,EACd,GACA,GACA,GACQ;CACR,IAAMC,IAAcb,IAAA,IAA+BC;CACnD,OAAOY,MAAgB,IAAI,IAAIC,IAAYD;AAC7C;AAGA,SAAgBE,EACd,GACA,GACA,GACA,GACQ;CACR,OAAO,KAAK,IAAI,GAAG,KAAK,IAAID,GAAWE,IAAcC,IAAUC,CAAK,CAAC;AACvE;AAMA,SAAgBC,EACd,GACA,GACA,GACA,GACQ;CACR,IAAMC,IAAOxB,EAAWC,CAAW,IAAIwB,EAAK,SAASA,EAAK;CAK1D,OAJID,MAAS,IAAU,KACRxB,EAAWC,CAAW,IACjCS,EAAM,UAAUe,EAAK,MACrBf,EAAM,UAAUe,EAAK,QACRD,IAAQN;AAC3B;AAGA,SAAgBQ,EACd,GACA,GACoB;CAWpB,OAAO;EATL,WAAA;EACA,YAAA;EACA,SAAS;EACT,WAAW;EACX,UAAUC;EACV,QAAQ,CAACA;EACT,MAAM;EACN,KAAK;CAEA,EAAOC;AAChB;AAQA,SAAgBC,EACd,GACA,GACA,GACA,GACQ;CAGR,OAFIC,MAAU,WAAiBC,IAC3BD,MAAU,YAAkB,IACzB,KAAK,IAAI,GAAG,KAAK,IAAIE,GAAKC,IAAUH,CAAK,CAAC;AACnD;AAGA,SAAgBI,EACd,GACA,GACA,GACA,GACS;CACT,OAAOC,KAAYC,MAAanC,KAAeoC;AACjD"}
@@ -0,0 +1,25 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { Orientation } from './ScrollBar.utils';
3
+ export interface ThumbDragContext {
4
+ /** track 元素(拖动比例、点击换算都要读它的尺寸) */
5
+ track: () => HTMLDivElement | undefined;
6
+ /** 被滚动容器 */
7
+ viewport: () => HTMLDivElement | undefined;
8
+ orientation: Accessor<Orientation>;
9
+ /** 拖动开始/结束(组件用它维护 active 高亮) */
10
+ onDragChange: (dragging: boolean) => void;
11
+ }
12
+ export interface ThumbDragSession {
13
+ /** 开始一次拖动;viewport / track / thumb 缺一不可,前置条件不足时什么都不做 */
14
+ start: (event: PointerEvent) => void;
15
+ /** 结束并解绑(组件卸载时兜底调用) */
16
+ dispose: () => void;
17
+ }
18
+ /**
19
+ * 拖动滑块的一次会话。
20
+ *
21
+ * 单一职责:把指针位移按「滚动距离 / 可用轨道长度」的比例映射成滚动位置。
22
+ * 监听挂在 window 上(指针移出 track 也继续跟手),结束后统一解绑;
23
+ * 具体的比例与坐标换算委托给 `ScrollBar.utils`。
24
+ */
25
+ export declare function createThumbDrag(ctx: ThumbDragContext): ThumbDragSession;
@@ -0,0 +1,26 @@
1
+ import { applyScrollPos as e, isVertical as t, maxScrollOf as n, pointerCoord as r, scrollFromDrag as i, scrollPosOf as a, thumbDragRatio as o } from "./ScrollBar.utils.js";
2
+ //#region src/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.ts
3
+ function s(s) {
4
+ let c = null;
5
+ return {
6
+ start: (l) => {
7
+ l.preventDefault(), l.stopPropagation();
8
+ let u = s.viewport(), d = s.track(), f = l.currentTarget;
9
+ if (!u || !d || !f) return;
10
+ let p = s.orientation(), m = t(p), h = r(p, l), g = a(p, u), _ = n(p, u), v = m ? d.clientHeight : d.clientWidth, y = m ? f.clientHeight : f.clientWidth, b = o(_, v, y), x = (t) => {
11
+ let n = r(p, t) - h;
12
+ e(p, u, i(g, n, b, _));
13
+ }, S = () => c?.();
14
+ c = () => {
15
+ window.removeEventListener("pointermove", x), window.removeEventListener("pointerup", S), c = null, s.onDragChange(!1);
16
+ }, s.onDragChange(!0), window.addEventListener("pointermove", x), window.addEventListener("pointerup", S);
17
+ },
18
+ dispose() {
19
+ c?.();
20
+ }
21
+ };
22
+ }
23
+ //#endregion
24
+ export { s as createThumbDrag };
25
+
26
+ //# sourceMappingURL=scroll-bar.thumb-drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-bar.thumb-drag.js","names":["createThumbDrag","detach","event","vp","ctx","track","thumb","axis","vertical","isVertical","startPointer","pointerCoord","startScroll","scrollPosOf","maxScroll","maxScrollOf","trackSize","thumbSize","ratio","thumbDragRatio","onMove","delta","moveEvent","scrollFromDrag","onUp"],"sources":["../../../../src/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.ts"],"sourcesContent":["import type { Accessor } from \"solid-js\";\nimport {\n applyScrollPos,\n isVertical,\n maxScrollOf,\n type Orientation,\n pointerCoord,\n scrollFromDrag,\n scrollPosOf,\n thumbDragRatio,\n} from \"./ScrollBar.utils\";\n\nexport interface ThumbDragContext {\n /** track 元素(拖动比例、点击换算都要读它的尺寸) */\n track: () => HTMLDivElement | undefined;\n /** 被滚动容器 */\n viewport: () => HTMLDivElement | undefined;\n orientation: Accessor<Orientation>;\n /** 拖动开始/结束(组件用它维护 active 高亮) */\n onDragChange: (dragging: boolean) => void;\n}\n\nexport interface ThumbDragSession {\n /** 开始一次拖动;viewport / track / thumb 缺一不可,前置条件不足时什么都不做 */\n start: (event: PointerEvent) => void;\n /** 结束并解绑(组件卸载时兜底调用) */\n dispose: () => void;\n}\n\n/**\n * 拖动滑块的一次会话。\n *\n * 单一职责:把指针位移按「滚动距离 / 可用轨道长度」的比例映射成滚动位置。\n * 监听挂在 window 上(指针移出 track 也继续跟手),结束后统一解绑;\n * 具体的比例与坐标换算委托给 `ScrollBar.utils`。\n */\nexport function createThumbDrag(ctx: ThumbDragContext): ThumbDragSession {\n /** 拖动期间挂到 window 上的解绑函数,用于卸载兜底 */\n let detach: (() => void) | null = null;\n\n const start = (event: PointerEvent) => {\n event.preventDefault();\n event.stopPropagation();\n\n const vp = ctx.viewport();\n const track = ctx.track();\n const thumb = event.currentTarget as HTMLDivElement | null;\n if (!vp || !track || !thumb) return;\n\n const axis = ctx.orientation();\n const vertical = isVertical(axis);\n const startPointer = pointerCoord(axis, event);\n const startScroll = scrollPosOf(axis, vp);\n const maxScroll = maxScrollOf(axis, vp);\n const trackSize = vertical ? track.clientHeight : track.clientWidth;\n const thumbSize = vertical ? thumb.clientHeight : thumb.clientWidth;\n const ratio = thumbDragRatio(maxScroll, trackSize, thumbSize);\n\n const onMove = (moveEvent: PointerEvent) => {\n const delta = pointerCoord(axis, moveEvent) - startPointer;\n applyScrollPos(\n axis,\n vp,\n scrollFromDrag(startScroll, delta, ratio, maxScroll),\n );\n };\n\n const onUp = () => detach?.();\n\n detach = () => {\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerup\", onUp);\n detach = null;\n ctx.onDragChange(false);\n };\n\n ctx.onDragChange(true);\n window.addEventListener(\"pointermove\", onMove);\n window.addEventListener(\"pointerup\", onUp);\n };\n\n return {\n start,\n dispose() {\n detach?.();\n },\n };\n}\n"],"mappings":";;AAoCA,SAAgBA,EAAgB,GAAyC;CAEvE,IAAIC,IAA8B;CA2ClC,OAAO;EACL,QA1Ca,MAAwB;GAErC,AADAC,EAAM,eAAe,GACrBA,EAAM,gBAAgB;GAEtB,IAAMC,IAAKC,EAAI,SAAS,GAClBC,IAAQD,EAAI,MAAM,GAClBE,IAAQJ,EAAM;GACpB,IAAI,CAACC,KAAM,CAACE,KAAS,CAACC,GAAO;GAE7B,IAAMC,IAAOH,EAAI,YAAY,GACvBI,IAAWC,EAAWF,CAAI,GAC1BG,IAAeC,EAAaJ,GAAML,CAAK,GACvCU,IAAcC,EAAYN,GAAMJ,CAAE,GAClCW,IAAYC,EAAYR,GAAMJ,CAAE,GAChCa,IAAYR,IAAWH,EAAM,eAAeA,EAAM,aAClDY,IAAYT,IAAWF,EAAM,eAAeA,EAAM,aAClDY,IAAQC,EAAeL,GAAWE,GAAWC,CAAS,GAEtDG,KAAU,MAA4B;IAC1C,IAAMC,IAAQV,EAAaJ,GAAMe,CAAS,IAAIZ;IAC9C,EACEH,GACAJ,GACAoB,EAAeX,GAAaS,GAAOH,GAAOJ,CAAS,CACrD;GACF,GAEMU,UAAavB,IAAS;GAW5B,AATA,UAAe;IAIb,AAHA,OAAO,oBAAoB,eAAemB,CAAM,GAChD,OAAO,oBAAoB,aAAaI,CAAI,GAC5C,IAAS,MACTpB,EAAI,aAAa,EAAK;GACxB,GAEAA,EAAI,aAAa,EAAI,GACrB,OAAO,iBAAiB,eAAegB,CAAM,GAC7C,OAAO,iBAAiB,aAAaI,CAAI;EAC3C;EAIE,UAAU;GACR,IAAS;EACX;CACF;AACF"}
@@ -0,0 +1,19 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { Orientation } from './ScrollBar.utils';
3
+ interface Options {
4
+ /** track 元素访问器(拖动比例、点击换算都要读它的尺寸) */
5
+ track: () => HTMLDivElement | undefined;
6
+ /** 被滚动容器的访问器 */
7
+ viewport: () => HTMLDivElement | undefined;
8
+ /** 当前滚动轴 */
9
+ orientation: Accessor<Orientation>;
10
+ /** 拖动开始/结束的回调(组件用它维护 dragging 状态) */
11
+ onDragChange: (dragging: boolean) => void;
12
+ }
13
+ export interface ScrollBarInteraction {
14
+ onThumbPointerDown: (event: PointerEvent) => void;
15
+ onTrackPointerDown: (event: PointerEvent) => void;
16
+ onKeyDown: (event: KeyboardEvent) => void;
17
+ }
18
+ export declare function useScrollBarInteraction({ track, viewport, orientation, onDragChange, }: Options): ScrollBarInteraction;
19
+ export {};
@@ -0,0 +1,37 @@
1
+ import { applyScrollPos as e, isVertical as t, keyboardScrollDelta as n, maxScrollOf as r, scrollFromKeyboard as i, scrollFromTrackClick as a, scrollPosOf as o } from "./ScrollBar.utils.js";
2
+ import { createThumbDrag as s } from "./scroll-bar.thumb-drag.js";
3
+ import { onCleanup as c } from "solid-js";
4
+ //#region src/components/scroll-area/ScrollBar/useScrollBarInteraction.ts
5
+ function l({ track: l, viewport: u, orientation: d, onDragChange: f }) {
6
+ let p = s({
7
+ track: l,
8
+ viewport: u,
9
+ orientation: d,
10
+ onDragChange: f
11
+ });
12
+ return c(p.dispose), {
13
+ onThumbPointerDown: (e) => p.start(e),
14
+ onTrackPointerDown: (e) => {
15
+ let n = u(), i = l();
16
+ if (!n || !i) return;
17
+ let o = d(), s = a(o, i.getBoundingClientRect(), e, r(o, n));
18
+ n.scrollTo({
19
+ [t(o) ? "top" : "left"]: s,
20
+ behavior: "smooth"
21
+ });
22
+ },
23
+ onKeyDown: (a) => {
24
+ let s = u();
25
+ if (!s) return;
26
+ let c = d(), l = t(c) ? s.clientHeight : s.clientWidth, f = n(a.key, l);
27
+ if (f === void 0) return;
28
+ a.preventDefault();
29
+ let p = t(c) ? s.scrollHeight : s.scrollWidth, m = r(c, s);
30
+ e(c, s, i(o(c, s), f, m, p));
31
+ }
32
+ };
33
+ }
34
+ //#endregion
35
+ export { l as useScrollBarInteraction };
36
+
37
+ //# sourceMappingURL=useScrollBarInteraction.js.map