@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":"ComboboxInput.js","names":["Show","createEffect","mergeProps","onCleanup","JSX","InputGroup","InputGroupAddon","InputGroupInput","clsx","useComboboxContext","ComboboxClear","ComboboxInput","props","placeholder","disabled","showClear","class","children","Element","ctx","local","mountedWithExternalReference","reference","undefined","inputEl","HTMLInputElement","open","focus","hasValue","current","value","Array","isArray","length","onKeyDown","e","KeyboardEvent","list","filteredItems","key","preventDefault","setOpen","setActiveIndex","activeIndex","item","selectItem","close","_$createComponent","ref","el","setReference","aria-invalid","inputValue","onInput","next","String","setInputValue","setFilterValue","multiple","trim","setValue","onFocus","onClick","align","when","_$memo","mergeProps","_$createComponent","_$memo","mergeProps$1","ComboboxInput","ctx","useComboboxContext","local","props","disabled","mountedWithExternalReference","inputEl","hasValue","current","onKeyDown","list","item","createComponent","InputGroup","el","onCleanup","\"class\"","clsx","InputGroupInput","next","value","InputGroupAddon","Show","memo","ComboboxClear"],"sources":["../../../../src/components/combobox/ComboboxInput/ComboboxInput.tsx"],"sourcesContent":["import { Show, createEffect, mergeProps, onCleanup, type JSX } from \"solid-js\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"~/components/input-group\";\nimport { clsx } from \"~/utils\";\nimport { useComboboxContext } from \"../Combobox/Combobox.context\";\nimport { ComboboxClear } from \"../ComboboxClear\";\n\nexport function ComboboxInput(props: {\n placeholder?: string;\n disabled?: boolean;\n showClear?: boolean;\n class?: string;\n \"aria-invalid\"?: string | boolean;\n children?: JSX.Element;\n}) {\n const ctx = useComboboxContext(\"ComboboxInput\");\n const local = mergeProps({ showClear: false }, props);\n const disabled = () => ctx.disabled() || !!local.disabled;\n // 当 ComboboxInput 作为 ComboboxContent 子组件时(Popup 模式),\n // 此时 reference 已经由 ComboboxTrigger 设置。打开弹层后自动聚焦输入框。\n const mountedWithExternalReference = ctx.reference() !== undefined;\n let inputEl: HTMLInputElement | undefined;\n\n createEffect(() => {\n if (ctx.open() && mountedWithExternalReference && inputEl) {\n inputEl.focus();\n }\n });\n\n const hasValue = () => {\n const current = ctx.value();\n if (current == null) return false;\n if (Array.isArray(current)) return current.length > 0;\n return current !== \"\";\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (disabled()) return;\n const list = ctx.filteredItems();\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n ctx.setOpen(true);\n ctx.setActiveIndex(\n list.length === 0 ? -1 : (ctx.activeIndex() + 1) % list.length,\n );\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n ctx.setOpen(true);\n ctx.setActiveIndex(\n list.length === 0\n ? -1\n : (ctx.activeIndex() - 1 + list.length) % list.length,\n );\n } else if (e.key === \"Enter\" && ctx.open()) {\n e.preventDefault();\n const item = ctx.filteredItems()[ctx.activeIndex()];\n if (item !== undefined) ctx.selectItem(item);\n } else if (e.key === \"Escape\" && ctx.open()) {\n e.preventDefault();\n ctx.close();\n }\n };\n\n return (\n <InputGroup\n ref={(el) => {\n if (!ctx.reference()) ctx.setReference(el);\n onCleanup(() => {\n if (ctx.reference() === el) ctx.setReference(undefined);\n });\n }}\n class={clsx(\"w-auto\", local.class)}\n >\n <InputGroupInput\n ref={(el) => {\n inputEl = el;\n }}\n placeholder={local.placeholder}\n disabled={disabled()}\n aria-invalid={local[\"aria-invalid\"] as any}\n value={ctx.inputValue()}\n onInput={(value) => {\n const next = String(value);\n ctx.setInputValue(next);\n ctx.setFilterValue(next);\n ctx.setOpen(true);\n if (!ctx.multiple() && next.trim() === \"\") {\n ctx.setValue(null);\n ctx.setFilterValue(\"\");\n }\n }}\n onFocus={() => ctx.setOpen(true)}\n onClick={() => ctx.setOpen(true)}\n onKeyDown={onKeyDown}\n />\n <InputGroupAddon align=\"inline-end\">\n <Show when={local.showClear && hasValue() && !disabled()}>\n <ComboboxClear />\n </Show>\n </InputGroupAddon>\n {local.children}\n </InputGroup>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ComboboxInput.js","names":["Show","createEffect","mergeProps","onCleanup","JSX","InputGroup","InputGroupAddon","InputGroupInput","clsx","useComboboxContext","ComboboxClear","ComboboxInput","props","placeholder","disabled","showClear","class","children","Element","ctx","local","mountedWithExternalReference","reference","undefined","inputEl","HTMLInputElement","open","focus","activeOptionId","value","filteredItems","activeIndex","optionId","hasValue","current","Array","isArray","length","onKeyDown","e","KeyboardEvent","list","key","preventDefault","setOpen","setActiveIndex","item","selectItem","close","_$createComponent","ref","el","setReference","role","aria-expanded","aria-controls","_$memo","listId","aria-activedescendant","aria-invalid","inputValue","onInput","next","String","setInputValue","setFilterValue","multiple","trim","setValue","onFocus","onClick","align","when","mergeProps","_$createComponent","_$memo","mergeProps$1","ComboboxInput","ctx","useComboboxContext","local","props","disabled","mountedWithExternalReference","inputEl","activeOptionId","value","hasValue","current","onKeyDown","list","item","createComponent","InputGroup","el","onCleanup","\"class\"","clsx","InputGroupInput","memo","next","InputGroupAddon","Show","ComboboxClear"],"sources":["../../../../src/components/combobox/ComboboxInput/ComboboxInput.tsx"],"sourcesContent":["import { Show, createEffect, mergeProps, onCleanup, type JSX } from \"solid-js\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"~/components/input-group\";\nimport { clsx } from \"~/utils\";\nimport { useComboboxContext } from \"../Combobox/Combobox.context\";\nimport { ComboboxClear } from \"../ComboboxClear\";\n\nexport function ComboboxInput(props: {\n placeholder?: string;\n disabled?: boolean;\n showClear?: boolean;\n class?: string;\n \"aria-invalid\"?: string | boolean;\n children?: JSX.Element;\n}) {\n const ctx = useComboboxContext(\"ComboboxInput\");\n const local = mergeProps({ showClear: false }, props);\n const disabled = () => ctx.disabled() || !!local.disabled;\n // 当 ComboboxInput 作为 ComboboxContent 子组件时(Popup 模式),\n // 此时 reference 已经由 ComboboxTrigger 设置。打开弹层后自动聚焦输入框。\n const mountedWithExternalReference = ctx.reference() !== undefined;\n let inputEl: HTMLInputElement | undefined;\n\n createEffect(() => {\n if (ctx.open() && mountedWithExternalReference && inputEl) {\n inputEl.focus();\n }\n });\n\n /** 当前高亮项对应的 option 元素 id(没有高亮时为 undefined) */\n const activeOptionId = () => {\n const value = ctx.filteredItems()[ctx.activeIndex()];\n return value === undefined ? undefined : ctx.optionId(value);\n };\n\n const hasValue = () => {\n const current = ctx.value();\n if (current == null) return false;\n if (Array.isArray(current)) return current.length > 0;\n return current !== \"\";\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (disabled()) return;\n const list = ctx.filteredItems();\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n ctx.setOpen(true, \"input-change\", e);\n ctx.setActiveIndex(\n list.length === 0 ? -1 : (ctx.activeIndex() + 1) % list.length,\n );\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n ctx.setOpen(true, \"input-change\", e);\n // 没有高亮时 ArrowUp 应落在**最后一项**:此前用\n // `(activeIndex - 1 + len) % len`,activeIndex 为 -1 时得到 len-2,\n // 三项时错误地停在第二项。\n ctx.setActiveIndex(\n list.length === 0\n ? -1\n : ctx.activeIndex() <= 0\n ? list.length - 1\n : ctx.activeIndex() - 1,\n );\n } else if (e.key === \"Home\") {\n // Home / End 跳到第一项 / 最后一项\n e.preventDefault();\n ctx.setOpen(true, \"input-change\", e);\n ctx.setActiveIndex(list.length === 0 ? -1 : 0);\n } else if (e.key === \"End\") {\n e.preventDefault();\n ctx.setOpen(true, \"input-change\", e);\n ctx.setActiveIndex(list.length === 0 ? -1 : list.length - 1);\n } else if (e.key === \"Enter\" && ctx.open()) {\n e.preventDefault();\n const item = ctx.filteredItems()[ctx.activeIndex()];\n if (item !== undefined) ctx.selectItem(item, e);\n } else if (e.key === \"Escape\" && ctx.open()) {\n e.preventDefault();\n ctx.close(\"escape-key\", e);\n }\n };\n\n return (\n <InputGroup\n ref={(el) => {\n if (!ctx.reference()) ctx.setReference(el);\n onCleanup(() => {\n if (ctx.reference() === el) ctx.setReference(undefined);\n });\n }}\n class={clsx(\"w-auto\", local.class)}\n >\n <InputGroupInput\n ref={(el) => {\n inputEl = el;\n }}\n // combobox 语义:输入框是 combobox 本体,浮层里的列表是它的 listbox\n role=\"combobox\"\n aria-expanded={ctx.open()}\n aria-controls={ctx.open() ? ctx.listId : undefined}\n aria-autocomplete=\"list\"\n // 高亮项通过 aria-activedescendant 表达(焦点始终留在输入框上)\n aria-activedescendant={activeOptionId()}\n placeholder={local.placeholder}\n disabled={disabled()}\n aria-invalid={local[\"aria-invalid\"] as any}\n value={ctx.inputValue()}\n onInput={(value) => {\n const next = String(value);\n ctx.setInputValue(next);\n ctx.setFilterValue(next);\n ctx.setOpen(true, \"input-change\");\n if (!ctx.multiple() && next.trim() === \"\") {\n ctx.setValue(null);\n ctx.setFilterValue(\"\");\n }\n }}\n onFocus={() => ctx.setOpen(true, \"input-focus\")}\n onClick={() => ctx.setOpen(true, \"trigger-press\")}\n onKeyDown={onKeyDown}\n />\n <InputGroupAddon align=\"inline-end\">\n <Show when={local.showClear && hasValue() && !disabled()}>\n <ComboboxClear />\n </Show>\n </InputGroupAddon>\n {local.children}\n </InputGroup>\n );\n}\n"],"mappings":"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"}
@@ -9,8 +9,8 @@ function m(i) {
9
9
  let c = t("ComboboxItem"), m = u(() => c.isSelected(i.value)), h = u(() => c.filteredItems()[c.activeIndex()] === i.value), [g, _] = d(!1);
10
10
  return (() => {
11
11
  var t = p();
12
- return t.$$click = () => {
13
- i.disabled || c.selectItem(i.value);
12
+ return t.$$click = (e) => {
13
+ i.disabled || c.selectItem(i.value, e);
14
14
  }, t.addEventListener("mouseleave", () => _(!1)), t.addEventListener("mouseenter", () => {
15
15
  _(!0);
16
16
  let e = c.filteredItems().indexOf(i.value);
@@ -23,13 +23,14 @@ function m(i) {
23
23
  return r(f, { class: "pointer-events-none absolute right-2 size-4" });
24
24
  }
25
25
  }), null), a((r) => {
26
- var a = i.disabled ? -1 : 0, o = m(), c = h() || g() ? "" : void 0, l = e("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-none select-none", "data-highlighted:bg-accent data-highlighted:text-accent-foreground", i.disabled && "pointer-events-none opacity-50", i.class);
27
- return a !== r.e && s(t, "tabindex", r.e = a), o !== r.t && s(t, "aria-selected", r.t = o), c !== r.a && s(t, "data-highlighted", r.a = c), l !== r.o && n(t, r.o = l), r;
26
+ var a = c.optionId(i.value), o = i.disabled ? -1 : 0, l = m(), u = h() || g() ? "" : void 0, d = e("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-none select-none", "data-highlighted:bg-accent data-highlighted:text-accent-foreground", i.disabled && "pointer-events-none opacity-50", i.class);
27
+ return a !== r.e && s(t, "id", r.e = a), o !== r.t && s(t, "tabindex", r.t = o), l !== r.a && s(t, "aria-selected", r.a = l), u !== r.o && s(t, "data-highlighted", r.o = u), d !== r.i && n(t, r.i = d), r;
28
28
  }, {
29
29
  e: void 0,
30
30
  t: void 0,
31
31
  a: void 0,
32
- o: void 0
32
+ o: void 0,
33
+ i: void 0
33
34
  }), t;
34
35
  })();
35
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxItem.js","names":["Show","createMemo","createSignal","JSX","Check","clsx","useComboboxContext","ComboboxItem","props","value","children","Element","class","disabled","ctx","selected","isSelected","active","filteredItems","activeIndex","hovered","setHovered","_el$","_tmpl$","$$click","selectItem","addEventListener","index","indexOf","setActiveIndex","_$insert","_$createComponent","when","_$effect","_p$","_v$","_v$2","_v$3","undefined","_v$4","e","_$setAttribute","t","a","o","_$className","_$delegateEvents","_$createComponent","_$setAttribute","_$className","_$delegateEvents","_tmpl$","ComboboxItem","ctx","useComboboxContext","selected","createMemo","props","active","hovered","setHovered","createSignal","_el$","index","insert","createComponent","Show","Check","\"class\"","effect","_v$","_v$2","_v$3","_v$4","clsx","_p$","setAttribute","className","delegateEvents"],"sources":["../../../../src/components/combobox/ComboboxItem/ComboboxItem.tsx"],"sourcesContent":["import { Show, createMemo, createSignal, type JSX } from \"solid-js\";\nimport { Check } from \"lucide-solid\";\nimport { clsx } from \"~/utils\";\nimport { useComboboxContext } from \"../Combobox/Combobox.context\";\n\nexport function ComboboxItem(props: {\n value: any;\n children?: JSX.Element;\n class?: string;\n disabled?: boolean;\n}) {\n const ctx = useComboboxContext(\"ComboboxItem\");\n const selected = createMemo(() => ctx.isSelected(props.value));\n const active = createMemo(\n () => ctx.filteredItems()[ctx.activeIndex()] === props.value,\n );\n const [hovered, setHovered] = createSignal(false);\n\n return (\n <div\n data-slot=\"combobox-item\"\n role=\"option\"\n tabIndex={props.disabled ? -1 : 0}\n aria-selected={selected()}\n data-highlighted={active() || hovered() ? \"\" : undefined}\n class={clsx(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-none select-none\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n props.disabled && \"pointer-events-none opacity-50\",\n props.class,\n )}\n onMouseEnter={() => {\n setHovered(true);\n const index = ctx.filteredItems().indexOf(props.value);\n if (index !== -1) ctx.setActiveIndex(index);\n }}\n onMouseLeave={() => setHovered(false)}\n onClick={() => {\n if (!props.disabled) ctx.selectItem(props.value);\n }}\n >\n {props.children}\n <Show when={selected()}>\n <Check class=\"pointer-events-none absolute right-2 size-4\" />\n </Show>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBO,EAAaC,GAK1B;CACD,IAAMM,IAAMR,EAAmB,cAAc,GACvCS,IAAWd,QAAiBa,EAAIE,WAAWR,EAAMC,KAAK,CAAC,GACvDQ,IAAShB,QACPa,EAAII,cAAc,CAAC,CAACJ,EAAIK,YAAY,OAAOX,EAAMC,KACzD,GACM,CAACW,GAASC,KAAcnB,EAAa,EAAK;CAEhD,cAAA;EAAA,IAAAoB,IAAAC,EAAA;EAYK,OAZLD,EAAAE,gBAmBmB;GACb,AAAKhB,EAAMK,YAAUC,EAAIW,WAAWjB,EAAMC,KAAK;EACjD,GAACa,EAAAI,iBAAA,oBAHmBL,EAAW,EAAK,CAAC,GAAAC,EAAAI,iBAAA,oBALjB;GAClBL,EAAW,EAAI;GACf,IAAMM,IAAQb,EAAII,cAAc,CAAC,CAACU,QAAQpB,EAAMC,KAAK;GACrD,AAAIkB,MAAU,MAAIb,EAAIe,eAAeF,CAAK;EAC5C,CAAC,GAAAG,EAAAR,SAMAd,EAAME,UAAQ,IAAA,GAAAoB,EAAAR,GAAAS,EACd/B,GAAI;GAAA,IAACgC,OAAI;IAAA,OAAEjB,EAAS;GAAC;GAAA,IAAAL,WAAA;IAAA,OAAAqB,EACnB3B,GAAK,EAAAgE,OAAA,8CAAA,CAAA;GAAA;EAAA,CAAA,GAAA,IAAA,GAAAnC,GAAAC,MAAA;GAAA,IAAAC,IArBE3B,EAAMK,WAAW,KAAK,GAACuB,IAClBrB,EAAS,GAACsB,IACPpB,EAAO,KAAKG,EAAQ,IAAI,KAAKkB,KAAAA,GAASC,IACjDlC,EACL,uHACA,sEACAG,EAAMK,YAAY,kCAClBL,EAAMI,KACR;GAAC,OAAAuB,MAAAD,EAAAM,KAAAC,EAAAnB,GAAA,YAAAY,EAAAM,IAAAL,CAAA,GAAAC,MAAAF,EAAAQ,KAAAD,EAAAnB,GAAA,iBAAAY,EAAAQ,IAAAN,CAAA,GAAAC,MAAAH,EAAAS,KAAAF,EAAAnB,GAAA,oBAAAY,EAAAS,IAAAN,CAAA,GAAAE,MAAAL,EAAAU,KAAAC,EAAAvB,GAAAY,EAAAU,IAAAL,CAAA,GAAAL;EAAA,GAAA;GAAAM,GAAAF,KAAAA;GAAAI,GAAAJ,KAAAA;GAAAK,GAAAL,KAAAA;GAAAM,GAAAN,KAAAA;EAAA,CAAA,GAAAhB;CAAA,EAAA,CAAA;AAiBP;AAACwB,EAAA,CAAA,OAAA,CAAA"}
1
+ {"version":3,"file":"ComboboxItem.js","names":["Show","createMemo","createSignal","JSX","Check","clsx","useComboboxContext","ComboboxItem","props","value","children","Element","class","disabled","ctx","selected","isSelected","active","filteredItems","activeIndex","hovered","setHovered","_el$","_tmpl$","$$click","event","selectItem","addEventListener","index","indexOf","setActiveIndex","_$insert","_$createComponent","when","_$effect","_p$","_v$","optionId","_v$2","_v$3","_v$4","undefined","_v$5","e","_$setAttribute","t","a","o","i","_$className","_$delegateEvents","_$createComponent","_$setAttribute","_$className","_$delegateEvents","_tmpl$","ComboboxItem","ctx","useComboboxContext","selected","createMemo","props","active","hovered","setHovered","createSignal","_el$","event","index","insert","createComponent","Show","Check","\"class\"","effect","_v$","_v$2","_v$3","_v$4","_v$5","clsx","_p$","setAttribute","className","delegateEvents"],"sources":["../../../../src/components/combobox/ComboboxItem/ComboboxItem.tsx"],"sourcesContent":["import { Show, createMemo, createSignal, type JSX } from \"solid-js\";\nimport { Check } from \"lucide-solid\";\nimport { clsx } from \"~/utils\";\nimport { useComboboxContext } from \"../Combobox/Combobox.context\";\n\nexport function ComboboxItem(props: {\n value: any;\n children?: JSX.Element;\n class?: string;\n disabled?: boolean;\n}) {\n const ctx = useComboboxContext(\"ComboboxItem\");\n const selected = createMemo(() => ctx.isSelected(props.value));\n const active = createMemo(\n () => ctx.filteredItems()[ctx.activeIndex()] === props.value,\n );\n const [hovered, setHovered] = createSignal(false);\n\n return (\n <div\n id={ctx.optionId(props.value)}\n data-slot=\"combobox-item\"\n role=\"option\"\n tabIndex={props.disabled ? -1 : 0}\n aria-selected={selected()}\n data-highlighted={active() || hovered() ? \"\" : undefined}\n class={clsx(\n \"relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-none select-none\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n props.disabled && \"pointer-events-none opacity-50\",\n props.class,\n )}\n onMouseEnter={() => {\n setHovered(true);\n const index = ctx.filteredItems().indexOf(props.value);\n if (index !== -1) ctx.setActiveIndex(index);\n }}\n onMouseLeave={() => setHovered(false)}\n onClick={(event) => {\n if (!props.disabled) ctx.selectItem(props.value, event);\n }}\n >\n {props.children}\n <Show when={selected()}>\n <Check class=\"pointer-events-none absolute right-2 size-4\" />\n </Show>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBO,EAAaC,GAK1B;CACD,IAAMM,IAAMR,EAAmB,cAAc,GACvCS,IAAWd,QAAiBa,EAAIE,WAAWR,EAAMC,KAAK,CAAC,GACvDQ,IAAShB,QACPa,EAAII,cAAc,CAAC,CAACJ,EAAIK,YAAY,OAAOX,EAAMC,KACzD,GACM,CAACW,GAASC,KAAcnB,EAAa,EAAK;CAEhD,cAAA;EAAA,IAAAoB,IAAAC,EAAA;EAaK,OAbLD,EAAAE,WAoBcC,MAAU;GAClB,AAAKjB,EAAMK,YAAUC,EAAIY,WAAWlB,EAAMC,OAAOgB,CAAK;EACxD,GAACH,EAAAK,iBAAA,oBAHmBN,EAAW,EAAK,CAAC,GAAAC,EAAAK,iBAAA,oBALjB;GAClBN,EAAW,EAAI;GACf,IAAMO,IAAQd,EAAII,cAAc,CAAC,CAACW,QAAQrB,EAAMC,KAAK;GACrD,AAAImB,MAAU,MAAId,EAAIgB,eAAeF,CAAK;EAC5C,CAAC,GAAAG,EAAAT,SAMAd,EAAME,UAAQ,IAAA,GAAAqB,EAAAT,GAAAU,EACdhC,GAAI;GAAA,IAACiC,OAAI;IAAA,OAAElB,EAAS;GAAC;GAAA,IAAAL,WAAA;IAAA,OAAAsB,EACnB5B,GAAK,EAAAqE,OAAA,8CAAA,CAAA;GAAA;EAAA,CAAA,GAAA,IAAA,GAAAvC,GAAAC,MAAA;GAAA,IAAAC,IAxBJtB,EAAIuB,SAAS7B,EAAMC,KAAK,GAAC6B,IAGnB9B,EAAMK,WAAW,KAAK,GAAC0B,IAClBxB,EAAS,GAACyB,IACPvB,EAAO,KAAKG,EAAQ,IAAI,KAAKqB,KAAAA,GAASC,IACjDrC,EACL,uHACA,sEACAG,EAAMK,YAAY,kCAClBL,EAAMI,KACR;GAAC,OAAAwB,MAAAD,EAAAQ,KAAAC,EAAAtB,GAAA,MAAAa,EAAAQ,IAAAP,CAAA,GAAAE,MAAAH,EAAAU,KAAAD,EAAAtB,GAAA,YAAAa,EAAAU,IAAAP,CAAA,GAAAC,MAAAJ,EAAAW,KAAAF,EAAAtB,GAAA,iBAAAa,EAAAW,IAAAP,CAAA,GAAAC,MAAAL,EAAAY,KAAAH,EAAAtB,GAAA,oBAAAa,EAAAY,IAAAP,CAAA,GAAAE,MAAAP,EAAAa,KAAAC,EAAA3B,GAAAa,EAAAa,IAAAN,CAAA,GAAAP;EAAA,GAAA;GAAAQ,GAAAF,KAAAA;GAAAI,GAAAJ,KAAAA;GAAAK,GAAAL,KAAAA;GAAAM,GAAAN,KAAAA;GAAAO,GAAAP,KAAAA;EAAA,CAAA,GAAAnB;CAAA,EAAA,CAAA;AAiBP;AAAC4B,EAAA,CAAA,OAAA,CAAA"}
@@ -1,23 +1,29 @@
1
1
  import { clsx as e } from "../../../utils/clsx.js";
2
2
  import { ScrollArrows as t } from "../../scroll-arrows/ScrollArrows.js";
3
3
  import { useComboboxContext as n } from "../Combobox/Combobox.context.js";
4
- import { className as r, createComponent as i, effect as a, insert as o, template as s, use as c } from "solid-js/web";
5
- import { For as l, createSignal as u } from "solid-js";
4
+ import { className as r, createComponent as i, effect as a, insert as o, setAttribute as s, template as c, use as l } from "solid-js/web";
5
+ import { For as u, createSignal as d } from "solid-js";
6
6
  //#region src/components/combobox/ComboboxList/ComboboxList.tsx
7
- var d = /*#__PURE__*/ s("<div class=relative><div data-slot=combobox-list role=listbox>");
8
- function f(s) {
9
- let f = n("ComboboxList"), [p, m] = u(), h = () => f.isGrouped() ? f.items() : f.filteredItems();
7
+ var f = /*#__PURE__*/ c("<div class=relative><div data-slot=combobox-list role=listbox>");
8
+ function p(c) {
9
+ let p = n("ComboboxList"), [m, h] = d(), g = () => p.isGrouped() ? p.items() : p.filteredItems();
10
10
  return (() => {
11
- var n = d(), u = n.firstChild;
12
- return c(m, u), o(u, i(l, {
11
+ var n = f(), d = n.firstChild;
12
+ return l(h, d), o(d, i(u, {
13
13
  get each() {
14
- return h();
14
+ return g();
15
15
  },
16
- children: (e, t) => typeof s.children == "function" ? s.children(e, t()) : s.children
17
- })), o(n, i(t, { target: p }), null), a(() => r(u, e("max-h-72 overflow-y-auto overscroll-contain p-1", "no-scrollbar [&::-webkit-scrollbar]:hidden", s.class))), n;
16
+ children: (e, t) => typeof c.children == "function" ? c.children(e, t()) : c.children
17
+ })), o(n, i(t, { target: m }), null), a((t) => {
18
+ var n = p.listId, i = e("max-h-72 overflow-y-auto overscroll-contain p-1", "no-scrollbar [&::-webkit-scrollbar]:hidden", c.class);
19
+ return n !== t.e && s(d, "id", t.e = n), i !== t.t && r(d, t.t = i), t;
20
+ }, {
21
+ e: void 0,
22
+ t: void 0
23
+ }), n;
18
24
  })();
19
25
  }
20
26
  //#endregion
21
- export { f as ComboboxList };
27
+ export { p as ComboboxList };
22
28
 
23
29
  //# sourceMappingURL=ComboboxList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxList.js","names":["For","createSignal","JSX","clsx","ScrollArrows","useComboboxContext","ComboboxList","props","children","Element","item","index","class","ctx","listElement","setListElement","HTMLElement","listItems","isGrouped","items","filteredItems","_el$","_tmpl$","_el$2","firstChild","_$use","_$insert","_$createComponent","each","target","_$effect","_$className","_$createComponent","_$className","_tmpl$","ComboboxList","ctx","useComboboxContext","listElement","setListElement","createSignal","listItems","_el$","_el$2","use","insert","createComponent","For","props","item","index","ScrollArrows","effect","className","clsx"],"sources":["../../../../src/components/combobox/ComboboxList/ComboboxList.tsx"],"sourcesContent":["import { For, createSignal, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { ScrollArrows } from \"~/components/scroll-arrows\";\nimport { useComboboxContext } from \"../Combobox/Combobox.context\";\n\nexport function ComboboxList(props: {\n children?: JSX.Element | ((item: any, index: number) => JSX.Element);\n class?: string;\n}) {\n const ctx = useComboboxContext(\"ComboboxList\");\n const [listElement, setListElement] = createSignal<HTMLElement>();\n const listItems = () => (ctx.isGrouped() ? ctx.items() : ctx.filteredItems());\n\n return (\n // 外层只做相对定位,供滚动箭头贴住列表上下沿;自身不滚动\n <div class=\"relative\">\n <div\n ref={setListElement}\n data-slot=\"combobox-list\"\n class={clsx(\n \"max-h-72 overflow-y-auto overscroll-contain p-1\",\n \"no-scrollbar [&::-webkit-scrollbar]:hidden\",\n props.class,\n )}\n role=\"listbox\"\n >\n <For each={listItems()}>\n {(item, index) =>\n typeof props.children === \"function\"\n ? props.children(item, index())\n : props.children\n }\n </For>\n </div>\n <ScrollArrows target={listElement} />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBM,EAAaC,GAG1B;CACD,IAAMM,IAAMR,EAAmB,cAAc,GACvC,CAACS,GAAaC,KAAkBd,EAA0B,GAC1DgB,UAAmBJ,EAAIK,UAAU,IAAIL,EAAIM,MAAM,IAAIN,EAAIO,cAAc;CAE3E,cACE;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EASK,OATLC,EAGSV,GAAcQ,CAAA,GAAAG,EAAAH,GAAAI,EASlB3B,GAAG;GAAA,IAAC4B,OAAI;IAAA,OAAEX,EAAU;GAAC;GAAAT,WAClBE,GAAMC,MACN,OAAOJ,EAAMC,YAAa,aACtBD,EAAMC,SAASE,GAAMC,EAAM,CAAC,IAC5BJ,EAAMC;EAAQ,CAAA,CAAA,GAAAkB,EAAAL,GAAAM,EAIvBvB,GAAY,EAACyB,QAAQf,EAAW,CAAA,GAAA,IAAA,GAAAgB,QAAAC,EAAAR,GAfxBpB,EACL,mDACA,8CACAI,EAAMK,KACR,CAAC,CAAA,GAAAS;CAAA,EAAA,CAAA;AAcT"}
1
+ {"version":3,"file":"ComboboxList.js","names":["For","createSignal","JSX","clsx","ScrollArrows","useComboboxContext","ComboboxList","props","children","Element","item","index","class","ctx","listElement","setListElement","HTMLElement","listItems","isGrouped","items","filteredItems","_el$","_tmpl$","_el$2","firstChild","_$use","_$insert","_$createComponent","each","target","_$effect","_p$","_v$","listId","_v$2","e","_$setAttribute","t","_$className","undefined","_$createComponent","_$setAttribute","_$className","_tmpl$","ComboboxList","ctx","useComboboxContext","listElement","setListElement","createSignal","listItems","_el$","_el$2","use","insert","createComponent","For","props","item","index","ScrollArrows","effect","_v$","_v$2","clsx","_p$","setAttribute","className"],"sources":["../../../../src/components/combobox/ComboboxList/ComboboxList.tsx"],"sourcesContent":["import { For, createSignal, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { ScrollArrows } from \"~/components/scroll-arrows\";\nimport { useComboboxContext } from \"../Combobox/Combobox.context\";\n\nexport function ComboboxList(props: {\n children?: JSX.Element | ((item: any, index: number) => JSX.Element);\n class?: string;\n}) {\n const ctx = useComboboxContext(\"ComboboxList\");\n const [listElement, setListElement] = createSignal<HTMLElement>();\n const listItems = () => (ctx.isGrouped() ? ctx.items() : ctx.filteredItems());\n\n return (\n // 外层只做相对定位,供滚动箭头贴住列表上下沿;自身不滚动\n <div class=\"relative\">\n <div\n ref={setListElement}\n id={ctx.listId}\n data-slot=\"combobox-list\"\n class={clsx(\n \"max-h-72 overflow-y-auto overscroll-contain p-1\",\n \"no-scrollbar [&::-webkit-scrollbar]:hidden\",\n props.class,\n )}\n role=\"listbox\"\n >\n <For each={listItems()}>\n {(item, index) =>\n typeof props.children === \"function\"\n ? props.children(item, index())\n : props.children\n }\n </For>\n </div>\n <ScrollArrows target={listElement} />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgBM,EAAaC,GAG1B;CACD,IAAMM,IAAMR,EAAmB,cAAc,GACvC,CAACS,GAAaC,KAAkBd,EAA0B,GAC1DgB,UAAmBJ,EAAIK,UAAU,IAAIL,EAAIM,MAAM,IAAIN,EAAIO,cAAc;CAE3E,cACE;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EAUK,OAVLC,EAGSV,GAAcQ,CAAA,GAAAG,EAAAH,GAAAI,EAUlB3B,GAAG;GAAA,IAAC4B,OAAI;IAAA,OAAEX,EAAU;GAAC;GAAAT,WAClBE,GAAMC,MACN,OAAOJ,EAAMC,YAAa,aACtBD,EAAMC,SAASE,GAAMC,EAAM,CAAC,IAC5BJ,EAAMC;EAAQ,CAAA,CAAA,GAAAkB,EAAAL,GAAAM,EAIvBvB,GAAY,EAACyB,QAAQf,EAAW,CAAA,GAAA,IAAA,GAAAgB,GAAAC,MAAA;GAAA,IAAAC,IAjB3BnB,EAAIoB,QAAMC,IAEP/B,EACL,mDACA,8CACAI,EAAMK,KACR;GAAC,OAAAoB,MAAAD,EAAAI,KAAAC,EAAAb,GAAA,MAAAQ,EAAAI,IAAAH,CAAA,GAAAE,MAAAH,EAAAM,KAAAC,EAAAf,GAAAQ,EAAAM,IAAAH,CAAA,GAAAH;EAAA,GAAA;GAAAI,GAAAI,KAAAA;GAAAF,GAAAE,KAAAA;EAAA,CAAA,GAAAlB;CAAA,EAAA,CAAA;AAcT"}
@@ -13,13 +13,20 @@ function o(o) {
13
13
  },
14
14
  variant: "outline",
15
15
  "data-slot": "combobox-trigger",
16
+ "aria-haspopup": "listbox",
17
+ get "aria-expanded"() {
18
+ return s.open();
19
+ },
20
+ get "aria-controls"() {
21
+ return i(() => !!s.open())() ? s.listId : void 0;
22
+ },
16
23
  get class() {
17
24
  return e("h-8 [&_svg:not([class*='size-'])]:size-4 active:not-aria-[haspopup]:translate-y-0", o.class);
18
25
  },
19
26
  get disabled() {
20
27
  return s.disabled() || o.disabled;
21
28
  },
22
- onClick: () => s.setOpen(!s.open()),
29
+ onClick: (e) => s.setOpen(!s.open(), "trigger-press", e),
23
30
  get children() {
24
31
  return [i(() => o.children), r(a, {
25
32
  "data-slot": "combobox-trigger-icon",
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxTrigger.js","names":["JSX","ChevronDown","clsx","useComboboxContext","InputGroupButton","ComboboxTrigger","props","children","Element","class","disabled","ctx","_$createComponent","ref","r$","_ref$","setReference","variant","onClick","setOpen","open","_$memo","_$createComponent","_$memo","ComboboxTrigger","ctx","useComboboxContext","createComponent","InputGroupButton","_ref$","r$","\"class\"","clsx","props","memo","ChevronDown"],"sources":["../../../../src/components/combobox/ComboboxTrigger/ComboboxTrigger.tsx"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport { ChevronDown } from \"lucide-solid\";\nimport { clsx } from \"~/utils\";\nimport { useComboboxContext } from \"../Combobox/Combobox.context\";\nimport { InputGroupButton } from \"~/components/input-group\";\n\nexport function ComboboxTrigger(props: {\n children?: JSX.Element;\n class?: string;\n disabled?: boolean;\n}) {\n const ctx = useComboboxContext(\"ComboboxTrigger\");\n return (\n <InputGroupButton\n ref={ctx.setReference}\n variant=\"outline\"\n data-slot=\"combobox-trigger\"\n class={clsx(\n \"h-8 [&_svg:not([class*='size-'])]:size-4 active:not-aria-[haspopup]:translate-y-0\",\n props.class,\n )}\n disabled={ctx.disabled() || props.disabled}\n onClick={() => ctx.setOpen(!ctx.open())}\n >\n {props.children}\n <ChevronDown\n data-slot=\"combobox-trigger-icon\"\n class=\"pointer-events-none size-4 text-muted-foreground\"\n />\n </InputGroupButton>\n );\n}\n"],"mappings":";;;;;;AAMA,SAAgBK,EAAgBC,GAI7B;CACD,IAAMK,IAAMR,EAAmB,iBAAiB;CAChD,OAAAS,EACGR,GAAgB;EAAAS,IAAAC,GAAA;GAAA,IAAAC,IACVJ,EAAIK;GAAY,OAAAD,KAAA,aAAAA,EAAAD,CAAA,IAAhBH,EAAIK,eAAYF;EAAA;EACrBG,SAAO;EAAA,aAAA;EAAA,IAAAc,QAAA;GAAA,OAEA7B,EACL,qFACAI,EAAMG,KACR;EAAC;EAAA,IACDC,WAAQ;GAAA,OAAEC,EAAID,SAAS,KAAKJ,EAAMI;EAAQ;EAC1CQ,eAAeP,EAAIQ,QAAQ,CAACR,EAAIS,KAAK,CAAC;EAAC,IAAAb,WAAA;GAAA,OAAA,CAAAc,QAEtCf,EAAMC,QAAQ,GAAAK,EACdX,GAAW;IAAA,aAAA;IAAA8B,OAAA;GAAA,CAAA,CAAA;EAAA;CAAA,CAAA;AAMlB"}
1
+ {"version":3,"file":"ComboboxTrigger.js","names":["JSX","ChevronDown","clsx","useComboboxContext","InputGroupButton","ComboboxTrigger","props","children","Element","class","disabled","ctx","_$createComponent","ref","r$","_ref$","setReference","variant","aria-expanded","open","aria-controls","_$memo","listId","undefined","onClick","event","setOpen","Event","_$createComponent","_$memo","ComboboxTrigger","ctx","useComboboxContext","createComponent","InputGroupButton","_ref$","r$","memo","\"class\"","clsx","props","event","ChevronDown"],"sources":["../../../../src/components/combobox/ComboboxTrigger/ComboboxTrigger.tsx"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport { ChevronDown } from \"lucide-solid\";\nimport { clsx } from \"~/utils\";\nimport { useComboboxContext } from \"../Combobox/Combobox.context\";\nimport { InputGroupButton } from \"~/components/input-group\";\n\nexport function ComboboxTrigger(props: {\n children?: JSX.Element;\n class?: string;\n disabled?: boolean;\n}) {\n const ctx = useComboboxContext(\"ComboboxTrigger\");\n return (\n <InputGroupButton\n ref={ctx.setReference}\n variant=\"outline\"\n data-slot=\"combobox-trigger\"\n // 触发器是弹出 listbox 的按钮\n aria-haspopup=\"listbox\"\n aria-expanded={ctx.open()}\n aria-controls={ctx.open() ? ctx.listId : undefined}\n class={clsx(\n \"h-8 [&_svg:not([class*='size-'])]:size-4 active:not-aria-[haspopup]:translate-y-0\",\n props.class,\n )}\n disabled={ctx.disabled() || props.disabled}\n onClick={(event) =>\n ctx.setOpen(!ctx.open(), \"trigger-press\", event as unknown as Event)\n }\n >\n {props.children}\n <ChevronDown\n data-slot=\"combobox-trigger-icon\"\n class=\"pointer-events-none size-4 text-muted-foreground\"\n />\n </InputGroupButton>\n );\n}\n"],"mappings":";;;;;;AAMA,SAAgBK,EAAgBC,GAI7B;CACD,IAAMK,IAAMR,EAAmB,iBAAiB;CAChD,OAAAS,EACGR,GAAgB;EAAAS,IAAAC,GAAA;GAAA,IAAAC,IACVJ,EAAIK;GAAY,OAAAD,KAAA,aAAAA,EAAAD,CAAA,IAAhBH,EAAIK,eAAYF;EAAA;EACrBG,SAAO;EAAA,aAAA;EAAA,iBAAA;EAAA,IAAA,kBAAA;GAAA,OAIQN,EAAIQ,KAAK;EAAC;EAAA,IAAA,kBAAA;GAAA,OACVE,QAAA,CAAA,CAAAV,EAAIQ,KAAK,CAAC,CAAA,CAAA,IAAGR,EAAIW,SAASC,KAAAA;EAAS;EAAA,IAAAe,QAAA;GAAA,OAC3CpC,EACL,qFACAI,EAAMG,KACR;EAAC;EAAA,IACDC,WAAQ;GAAA,OAAEC,EAAID,SAAS,KAAKJ,EAAMI;EAAQ;EAC1Cc,UAAUC,MACRd,EAAIe,QAAQ,CAACf,EAAIQ,KAAK,GAAG,iBAAiBM,CAAyB;EAAC,IAAAlB,WAAA;GAAA,OAAA,CAAAc,QAGrEf,EAAMC,QAAQ,GAAAK,EACdX,GAAW;IAAA,aAAA;IAAAqC,OAAA;GAAA,CAAA,CAAA;EAAA;CAAA,CAAA;AAMlB"}
@@ -1,5 +1,5 @@
1
- import { useScrollLock as e } from "../../../hooks/useScrollLock.js";
2
- import { createVirtualElement as t } from "../../../lib/positioner/virtual-element.js";
1
+ import { createVirtualElement as e } from "../../../lib/positioner/virtual-element.js";
2
+ import { useScrollLock as t } from "../../../hooks/useScrollLock.js";
3
3
  import { ContextMenuContext as n } from "./ContextMenu.context.js";
4
4
  import { createChangeEventDetails as r } from "../context-menu.utils.js";
5
5
  import { createComponent as i } from "solid-js/web";
@@ -8,20 +8,22 @@ import { createEffect as a, createMemo as o, createSignal as s, createUniqueId a
8
8
  var u = "[data-slot=\"context-menu-content\"],[data-slot=\"context-menu-sub-content\"]";
9
9
  function d(d) {
10
10
  let [f, p] = s(d.defaultOpen ?? !1), m = o(() => d.open === void 0 ? f() : d.open), h = o(() => !!d.disabled), g = o(() => d.loopFocus ?? !0), _ = o(() => d.orientation ?? "vertical"), v = o(() => d.highlightItemOnHover ?? !0), y = o(() => d.modal ?? !0);
11
- e(() => m() && y(), { allowedSelector: u });
11
+ t(() => m() && y(), { allowedSelector: u });
12
12
  let [b, x] = s(!0), [S, C] = s(), [w, T] = s(), E = `context-menu-content-${c()}`, D = /* @__PURE__ */ new Set(), O = () => {
13
13
  let e = S();
14
14
  e && typeof e.focus == "function" && e.focus({ preventScroll: !0 });
15
15
  }, k = (e, t, n) => {
16
- d.open === void 0 && p(e), d.onOpenChange?.(e, r(t, n, S()));
17
- }, A = (e, n, r, i, a = "trigger-press") => {
18
- h() || (T(t({
19
- x: e,
16
+ let i = r(t, n, S());
17
+ d.onOpenChange?.(e, i), !i.isCanceled && d.open === void 0 && p(e);
18
+ }, A = (t, n, r, i, a = "trigger-press") => {
19
+ h() || (T(e({
20
+ x: t,
20
21
  y: n,
21
22
  contextElement: r
22
23
  })), m() || k(!0, a, i));
23
24
  }, j = (e, t) => {
24
- m() && (k(!1, e, t), e !== "outside-press" && b() && O());
25
+ let n = m();
26
+ n && (k(!1, e, t), m() !== n && e !== "outside-press" && b() && O());
25
27
  }, M = (e) => {
26
28
  if (!e || !(e instanceof Element)) return !1;
27
29
  for (let t of D) if (t.contains(e)) return !0;
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenu.js","names":["createEffect","createMemo","createSignal","createUniqueId","onCleanup","JSX","createVirtualElement","VirtualElement","useScrollLock","ContextMenuContext","ContextMenuProps","ContextMenuChangeEventReason","ContextMenuContextValue","createChangeEventDetails","MENU_POPUP_SELECTOR","ContextMenu","props","Element","internalOpen","setInternalOpen","defaultOpen","open","undefined","disabled","loopFocus","orientation","highlightItemOnHover","modal","allowedSelector","finalFocus","setFinalFocus","trigger","setTrigger","HTMLElement","anchor","setAnchor","contentId","menuElements","Set","restoreFocus","el","focus","preventScroll","commit","next","reason","event","Event","onOpenChange","openAt","x","y","contextElement","closeAll","isInsideMenu","node","Node","contains","isInsideTrigger","registerMenuElement","add","delete","onPointerDown","e","PointerEvent","button","target","onContextMenu","MouseEvent","onKeyDown","KeyboardEvent","defaultPrevented","key","document","addEventListener","removeEventListener","ctx","_$createComponent","Provider","value","children","_$createComponent","MENU_POPUP_SELECTOR","ContextMenu","internalOpen","setInternalOpen","createSignal","props","open","createMemo","disabled","loopFocus","orientation","highlightItemOnHover","modal","finalFocus","setFinalFocus","trigger","setTrigger","anchor","setAnchor","contentId","createUniqueId","menuElements","restoreFocus","el","commit","next","createChangeEventDetails","reason","event","openAt","createVirtualElement","closeAll","isInsideMenu","node","isInsideTrigger","registerMenuElement","onPointerDown","onContextMenu","target","onKeyDown","onCleanup","ctx","createComponent","ContextMenuContext"],"sources":["../../../../src/components/context-menu/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n onCleanup,\n type JSX,\n} from \"solid-js\";\nimport { createVirtualElement, type VirtualElement } from \"~/lib\";\nimport { useScrollLock } from \"~/hooks\";\nimport { ContextMenuContext } from \"./ContextMenu.context\";\nimport type { ContextMenuProps } from \"./ContextMenu.types\";\nimport type {\n ContextMenuChangeEventReason,\n ContextMenuContextValue,\n} from \"../context-menu.types\";\nimport { createChangeEventDetails } from \"../context-menu.utils\";\n\n/** 菜单自身(根菜单/子菜单)的 popup 容器,允许在锁滚动期间继续在菜单内部滚动 */\nconst MENU_POPUP_SELECTOR =\n '[data-slot=\"context-menu-content\"],[data-slot=\"context-menu-sub-content\"]';\n\n/**\n * ContextMenu 根组件:不渲染任何 DOM,只负责状态管理 + 提供 context。\n *\n * 这是 shadcn 基于 Base UI 的 ContextMenu 的 SolidJS 移植:Base UI 的 Root\n * 同样不渲染自己的 HTML 元素,只作为状态容器。\n *\n * 与普通菜单不同的地方在于\"锚点\":右键菜单的定位参照是鼠标点击的像素坐标,\n * 因此这里用 `createVirtualElement` 生成一个宽高为 0 的虚拟参照元素,\n * 再交给内容层用 position:fixed 定位(细节见 ContextMenuContent)。\n *\n * @example\n * ```tsx\n * <ContextMenu>\n * <ContextMenuTrigger>右键点击这里</ContextMenuTrigger>\n * <ContextMenuContent>\n * <ContextMenuItem>个人资料</ContextMenuItem>\n * </ContextMenuContent>\n * </ContextMenu>\n * ```\n */\nexport function ContextMenu(props: ContextMenuProps): JSX.Element {\n const [internalOpen, setInternalOpen] = createSignal(\n props.defaultOpen ?? false,\n );\n const open = createMemo(() =>\n props.open !== undefined ? props.open : internalOpen(),\n );\n const disabled = createMemo(() => !!props.disabled);\n const loopFocus = createMemo(() => props.loopFocus ?? true);\n const orientation = createMemo(() => props.orientation ?? \"vertical\");\n const highlightItemOnHover = createMemo(\n () => props.highlightItemOnHover ?? true,\n );\n const modal = createMemo(() => props.modal ?? true);\n\n // 打开期间锁定页面滚动(Base UI menu 的 modal 默认行为),关闭时恢复。\n // 菜单自身(含子菜单)允许继续滚动。\n useScrollLock(() => open() && modal(), {\n allowedSelector: MENU_POPUP_SELECTOR,\n });\n\n const [finalFocus, setFinalFocus] = createSignal(true);\n const [trigger, setTrigger] = createSignal<HTMLElement>();\n const [anchor, setAnchor] = createSignal<VirtualElement>();\n const contentId = `context-menu-content-${createUniqueId()}`;\n\n // 已挂载的浮层容器(根菜单 + 各级子菜单),用于判断指针是否落在菜单内部。\n // 这里刻意不用响应式结构:它只在事件回调里读取,变化本身不需要驱动渲染。\n const menuElements = new Set<HTMLElement>();\n\n const restoreFocus = () => {\n const el = trigger();\n if (el && typeof el.focus === \"function\") {\n el.focus({ preventScroll: true });\n }\n };\n\n const commit = (\n next: boolean,\n reason: ContextMenuChangeEventReason,\n event?: Event,\n ) => {\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(\n next,\n createChangeEventDetails(reason, event, trigger()),\n );\n };\n\n const openAt = (\n x: number,\n y: number,\n contextElement: Element | undefined,\n event?: Event,\n reason: ContextMenuChangeEventReason = \"trigger-press\",\n ) => {\n if (disabled()) return;\n // 每次打开都换一个新的虚拟元素:即使菜单已经打开,右键到新位置也会\n // 触发 positioner 重新计算(autoUpdate 之外的一条路径)。\n setAnchor(createVirtualElement({ x, y, contextElement }));\n if (!open()) commit(true, reason, event);\n };\n\n const closeAll = (reason: ContextMenuChangeEventReason, event?: Event) => {\n if (!open()) return;\n commit(false, reason, event);\n // 点击菜单外部时焦点应该留在用户刚点的目标上,不能把焦点抢回触发器。\n if (reason !== \"outside-press\" && finalFocus()) restoreFocus();\n };\n\n const isInsideMenu = (node: Node | null): boolean => {\n if (!node || !(node instanceof Element)) return false;\n for (const el of menuElements) {\n if (el.contains(node)) return true;\n }\n return false;\n };\n\n const isInsideTrigger = (node: Node | null): boolean => {\n if (!node || !(node instanceof Element)) return false;\n return !!trigger()?.contains(node);\n };\n\n const registerMenuElement = (el: HTMLElement) => {\n menuElements.add(el);\n return () => {\n menuElements.delete(el);\n };\n };\n\n // 打开期间绑定 document 级监听:点击外部/再次右键外部关闭 + Escape 兜底关闭。\n // 菜单内部的 Escape 会由浮层自己处理并 stopPropagation,不会走到这里。\n createEffect(() => {\n if (!open()) return;\n\n const onPointerDown = (e: PointerEvent) => {\n // 右键交给 contextmenu 处理:否则会先被这里关掉、又被触发器重新打开,\n // 中间闪一帧。\n if (e.button === 2) return;\n // 注意这里不把触发器算作\"内部\":菜单打开时左键点触发器应当关闭菜单。\n if (!isInsideMenu(e.target as Node | null)) {\n closeAll(\"outside-press\", e);\n }\n };\n\n const onContextMenu = (e: MouseEvent) => {\n const target = e.target as Node | null;\n // 在触发器上再次右键只更新锚点,由触发器自己的 contextmenu 处理。\n if (!isInsideMenu(target) && !isInsideTrigger(target)) {\n closeAll(\"outside-press\", e);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n // 菜单浮层自己处理 Escape 时会 preventDefault + stopPropagation。\n // 这里再检查一次 defaultPrevented:键盘事件在 Solid 里是委托到 document 的,\n // 同元素上的其它监听器不会被 stopPropagation 拦下,靠这个标记避免重复关闭。\n if (e.defaultPrevented) return;\n if (e.key === \"Escape\") closeAll(\"escape-key\", e);\n };\n\n document.addEventListener(\"pointerdown\", onPointerDown, true);\n document.addEventListener(\"contextmenu\", onContextMenu, true);\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => {\n document.removeEventListener(\"pointerdown\", onPointerDown, true);\n document.removeEventListener(\"contextmenu\", onContextMenu, true);\n document.removeEventListener(\"keydown\", onKeyDown);\n });\n });\n\n const ctx: ContextMenuContextValue = {\n open,\n disabled,\n loopFocus,\n orientation,\n highlightItemOnHover,\n trigger,\n setTrigger,\n anchor,\n contentId,\n finalFocus,\n setFinalFocus,\n openAt,\n closeAll,\n registerMenuElement,\n isInsideMenu,\n };\n\n return (\n <ContextMenuContext.Provider value={ctx}>\n {props.children}\n </ContextMenuContext.Provider>\n );\n}\n"],"mappings":";;;;;;;AAmBA,IAAMc,IACJ;AAsBF,SAAgBC,EAAYC,GAAsC;CAChE,IAAM,CAACE,GAAcC,KAAmBjB,EACtCc,EAAMI,eAAe,EACvB,GACMC,IAAOpB,QACXe,EAAMK,SAASC,KAAAA,IAAyBJ,EAAa,IAA1BF,EAAMK,IACnC,GACME,IAAWtB,QAAiB,CAAC,CAACe,EAAMO,QAAQ,GAC5CC,IAAYvB,QAAiBe,EAAMQ,aAAa,EAAI,GACpDC,IAAcxB,QAAiBe,EAAMS,eAAe,UAAU,GAC9DC,IAAuBzB,QACrBe,EAAMU,wBAAwB,EACtC,GACMC,IAAQ1B,QAAiBe,EAAMW,SAAS,EAAI;CAIlDnB,QAAoBa,EAAK,KAAKM,EAAM,GAAG,EACrCC,iBAAiBd,EACnB,CAAC;CAED,IAAM,CAACe,GAAYC,KAAiB5B,EAAa,EAAI,GAC/C,CAAC6B,GAASC,KAAc9B,EAA0B,GAClD,CAACgC,GAAQC,KAAajC,EAA6B,GACnDkC,IAAY,wBAAwBjC,EAAe,KAInDkC,oBAAe,IAAIC,IAAiB,GAEpCC,UAAqB;EACzB,IAAMC,IAAKT,EAAQ;EACnB,AAAIS,KAAM,OAAOA,EAAGC,SAAU,cAC5BD,EAAGC,MAAM,EAAEC,eAAe,GAAK,CAAC;CAEpC,GAEMC,KACJC,GACAC,GACAC,MACG;EAEH9B,AADIA,EAAMK,SAASC,KAAAA,KAAWH,EAAgByB,CAAI,GAClD5B,EAAMgC,eACJJ,GACA/B,EAAyBgC,GAAQC,GAAOf,EAAQ,CAAC,CACnD;CACF,GAEMkB,KACJC,GACAC,GACAC,GACAN,GACAD,IAAuC,oBACpC;EACH,AAAItB,EAAS,MAGbY,EAAU7B,EAAqB;GAAE4C;GAAGC;GAAGC;EAAe,CAAC,CAAC,GACnD/B,EAAK,KAAGsB,EAAO,IAAME,GAAQC,CAAK;CACzC,GAEMO,KAAYR,GAAsCC,MAAkB;EACxE,AAAKzB,EAAK,MACVsB,EAAO,IAAOE,GAAQC,CAAK,GAEvBD,MAAW,mBAAmBhB,EAAW,KAAGU,EAAa;CAC/D,GAEMe,KAAgBC,MAA+B;EACnD,IAAI,CAACA,KAAQ,EAAEA,aAAgBtC,UAAU,OAAO;EAChD,KAAK,IAAMuB,KAAMH,GACf,IAAIG,EAAGiB,SAASF,CAAI,GAAG,OAAO;EAEhC,OAAO;CACT,GAEMG,KAAmBH,MACnB,CAACA,KAAQ,EAAEA,aAAgBtC,WAAiB,KACzC,CAAC,CAACc,EAAQ,CAAC,EAAE0B,SAASF,CAAI,GAG7BI,KAAuBnB,OAC3BH,EAAauB,IAAIpB,CAAE,SACN;EACXH,EAAawB,OAAOrB,CAAE;CACxB;CAKFxC,QAAmB;EACjB,IAAI,CAACqB,EAAK,GAAG;EAEb,IAAMyC,KAAiBC,MAAoB;GAGzC,AAAIA,EAAEE,WAAW,MAEZX,EAAaS,EAAEG,MAAqB,KACvCb,EAAS,iBAAiBU,CAAC;EAE/B,GAEMI,KAAiBJ,MAAkB;GACvC,IAAMG,IAASH,EAAEG;GAEjB,AAAI,CAACZ,EAAaY,CAAM,KAAK,CAACR,EAAgBQ,CAAM,KAClDb,EAAS,iBAAiBU,CAAC;EAE/B,GAEMM,KAAaN,MAAqB;GAItC,AAAIA,EAAEQ,oBACFR,EAAES,QAAQ,YAAUnB,EAAS,cAAcU,CAAC;EAClD;EAKA3D,AAHAqE,SAASC,iBAAiB,eAAeZ,GAAe,EAAI,GAC5DW,SAASC,iBAAiB,eAAeP,GAAe,EAAI,GAC5DM,SAASC,iBAAiB,WAAWL,CAAS,GAC9CjE,QAAgB;GAGdqE,AAFAA,SAASE,oBAAoB,eAAeb,GAAe,EAAI,GAC/DW,SAASE,oBAAoB,eAAeR,GAAe,EAAI,GAC/DM,SAASE,oBAAoB,WAAWN,CAAS;EACnD,CAAC;CACH,CAAC;CAED,IAAMO,IAA+B;EACnCvD;EACAE;EACAC;EACAC;EACAC;EACAK;EACAC;EACAE;EACAE;EACAP;EACAC;EACAmB;EACAI;EACAM;EACAL;CACF;CAEA,OAAAuB,EACGpE,EAAmBqE,UAAQ;EAACC,OAAOH;EAAG,IAAAI,WAAA;GAAA,OACpChE,EAAMgE;EAAQ;CAAA,CAAA;AAGrB"}
1
+ {"version":3,"file":"ContextMenu.js","names":["createEffect","createMemo","createSignal","createUniqueId","onCleanup","JSX","createVirtualElement","VirtualElement","useScrollLock","ContextMenuContext","ContextMenuProps","ContextMenuChangeEventReason","ContextMenuContextValue","createChangeEventDetails","MENU_POPUP_SELECTOR","ContextMenu","props","Element","internalOpen","setInternalOpen","defaultOpen","open","undefined","disabled","loopFocus","orientation","highlightItemOnHover","modal","allowedSelector","finalFocus","setFinalFocus","trigger","setTrigger","HTMLElement","anchor","setAnchor","contentId","menuElements","Set","restoreFocus","el","focus","preventScroll","commit","next","reason","event","Event","details","onOpenChange","isCanceled","openAt","x","y","contextElement","closeAll","wasOpen","isInsideMenu","node","Node","contains","isInsideTrigger","registerMenuElement","add","delete","onPointerDown","e","PointerEvent","button","target","onContextMenu","MouseEvent","onKeyDown","KeyboardEvent","defaultPrevented","key","document","addEventListener","removeEventListener","ctx","_$createComponent","Provider","value","children","_$createComponent","MENU_POPUP_SELECTOR","ContextMenu","internalOpen","setInternalOpen","createSignal","props","open","createMemo","disabled","loopFocus","orientation","highlightItemOnHover","modal","finalFocus","setFinalFocus","trigger","setTrigger","anchor","setAnchor","contentId","createUniqueId","menuElements","restoreFocus","el","commit","details","createChangeEventDetails","reason","event","next","openAt","createVirtualElement","closeAll","wasOpen","isInsideMenu","node","isInsideTrigger","registerMenuElement","onPointerDown","onContextMenu","target","onKeyDown","onCleanup","ctx","createComponent","ContextMenuContext"],"sources":["../../../../src/components/context-menu/ContextMenu/ContextMenu.tsx"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n onCleanup,\n type JSX,\n} from \"solid-js\";\nimport { createVirtualElement, type VirtualElement } from \"~/lib\";\nimport { useScrollLock } from \"~/hooks\";\nimport { ContextMenuContext } from \"./ContextMenu.context\";\nimport type { ContextMenuProps } from \"./ContextMenu.types\";\nimport type {\n ContextMenuChangeEventReason,\n ContextMenuContextValue,\n} from \"../context-menu.types\";\nimport { createChangeEventDetails } from \"../context-menu.utils\";\n\n/** 菜单自身(根菜单/子菜单)的 popup 容器,允许在锁滚动期间继续在菜单内部滚动 */\nconst MENU_POPUP_SELECTOR =\n '[data-slot=\"context-menu-content\"],[data-slot=\"context-menu-sub-content\"]';\n\n/**\n * ContextMenu 根组件:不渲染任何 DOM,只负责状态管理 + 提供 context。\n *\n * 这是 shadcn 基于 Base UI 的 ContextMenu 的 SolidJS 移植:Base UI 的 Root\n * 同样不渲染自己的 HTML 元素,只作为状态容器。\n *\n * 与普通菜单不同的地方在于\"锚点\":右键菜单的定位参照是鼠标点击的像素坐标,\n * 因此这里用 `createVirtualElement` 生成一个宽高为 0 的虚拟参照元素,\n * 再交给内容层用 position:fixed 定位(细节见 ContextMenuContent)。\n *\n * @example\n * ```tsx\n * <ContextMenu>\n * <ContextMenuTrigger>右键点击这里</ContextMenuTrigger>\n * <ContextMenuContent>\n * <ContextMenuItem>个人资料</ContextMenuItem>\n * </ContextMenuContent>\n * </ContextMenu>\n * ```\n */\nexport function ContextMenu(props: ContextMenuProps): JSX.Element {\n const [internalOpen, setInternalOpen] = createSignal(\n props.defaultOpen ?? false,\n );\n const open = createMemo(() =>\n props.open !== undefined ? props.open : internalOpen(),\n );\n const disabled = createMemo(() => !!props.disabled);\n const loopFocus = createMemo(() => props.loopFocus ?? true);\n const orientation = createMemo(() => props.orientation ?? \"vertical\");\n const highlightItemOnHover = createMemo(\n () => props.highlightItemOnHover ?? true,\n );\n const modal = createMemo(() => props.modal ?? true);\n\n // 打开期间锁定页面滚动(Base UI menu 的 modal 默认行为),关闭时恢复。\n // 菜单自身(含子菜单)允许继续滚动。\n useScrollLock(() => open() && modal(), {\n allowedSelector: MENU_POPUP_SELECTOR,\n });\n\n const [finalFocus, setFinalFocus] = createSignal(true);\n const [trigger, setTrigger] = createSignal<HTMLElement>();\n const [anchor, setAnchor] = createSignal<VirtualElement>();\n const contentId = `context-menu-content-${createUniqueId()}`;\n\n // 已挂载的浮层容器(根菜单 + 各级子菜单),用于判断指针是否落在菜单内部。\n // 这里刻意不用响应式结构:它只在事件回调里读取,变化本身不需要驱动渲染。\n const menuElements = new Set<HTMLElement>();\n\n const restoreFocus = () => {\n const el = trigger();\n if (el && typeof el.focus === \"function\") {\n el.focus({ preventScroll: true });\n }\n };\n\n const commit = (\n next: boolean,\n reason: ContextMenuChangeEventReason,\n event?: Event,\n ) => {\n const details = createChangeEventDetails(reason, event, trigger());\n // 先回调再落状态:调用方可以在 details.cancel() 里否决本次变更\n // (与 ToggleGroup / TimePicker / Drawer 一致,对齐 Base UI 的语义)\n props.onOpenChange?.(next, details);\n if (details.isCanceled) return;\n if (props.open === undefined) setInternalOpen(next);\n };\n\n const openAt = (\n x: number,\n y: number,\n contextElement: Element | undefined,\n event?: Event,\n reason: ContextMenuChangeEventReason = \"trigger-press\",\n ) => {\n if (disabled()) return;\n // 每次打开都换一个新的虚拟元素:即使菜单已经打开,右键到新位置也会\n // 触发 positioner 重新计算(autoUpdate 之外的一条路径)。\n setAnchor(createVirtualElement({ x, y, contextElement }));\n if (!open()) commit(true, reason, event);\n };\n\n const closeAll = (reason: ContextMenuChangeEventReason, event?: Event) => {\n const wasOpen = open();\n if (!wasOpen) return;\n commit(false, reason, event);\n // cancel() 之后菜单并没有真的关闭,因此也不该动焦点\n if (open() === wasOpen) return;\n // 点击菜单外部时焦点应该留在用户刚点的目标上,不能把焦点抢回触发器。\n if (reason !== \"outside-press\" && finalFocus()) restoreFocus();\n };\n\n const isInsideMenu = (node: Node | null): boolean => {\n if (!node || !(node instanceof Element)) return false;\n for (const el of menuElements) {\n if (el.contains(node)) return true;\n }\n return false;\n };\n\n const isInsideTrigger = (node: Node | null): boolean => {\n if (!node || !(node instanceof Element)) return false;\n return !!trigger()?.contains(node);\n };\n\n const registerMenuElement = (el: HTMLElement) => {\n menuElements.add(el);\n return () => {\n menuElements.delete(el);\n };\n };\n\n // 打开期间绑定 document 级监听:点击外部/再次右键外部关闭 + Escape 兜底关闭。\n // 菜单内部的 Escape 会由浮层自己处理并 stopPropagation,不会走到这里。\n createEffect(() => {\n if (!open()) return;\n\n const onPointerDown = (e: PointerEvent) => {\n // 右键交给 contextmenu 处理:否则会先被这里关掉、又被触发器重新打开,\n // 中间闪一帧。\n if (e.button === 2) return;\n // 注意这里不把触发器算作\"内部\":菜单打开时左键点触发器应当关闭菜单。\n if (!isInsideMenu(e.target as Node | null)) {\n closeAll(\"outside-press\", e);\n }\n };\n\n const onContextMenu = (e: MouseEvent) => {\n const target = e.target as Node | null;\n // 在触发器上再次右键只更新锚点,由触发器自己的 contextmenu 处理。\n if (!isInsideMenu(target) && !isInsideTrigger(target)) {\n closeAll(\"outside-press\", e);\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n // 菜单浮层自己处理 Escape 时会 preventDefault + stopPropagation。\n // 这里再检查一次 defaultPrevented:键盘事件在 Solid 里是委托到 document 的,\n // 同元素上的其它监听器不会被 stopPropagation 拦下,靠这个标记避免重复关闭。\n if (e.defaultPrevented) return;\n if (e.key === \"Escape\") closeAll(\"escape-key\", e);\n };\n\n document.addEventListener(\"pointerdown\", onPointerDown, true);\n document.addEventListener(\"contextmenu\", onContextMenu, true);\n document.addEventListener(\"keydown\", onKeyDown);\n onCleanup(() => {\n document.removeEventListener(\"pointerdown\", onPointerDown, true);\n document.removeEventListener(\"contextmenu\", onContextMenu, true);\n document.removeEventListener(\"keydown\", onKeyDown);\n });\n });\n\n const ctx: ContextMenuContextValue = {\n open,\n disabled,\n loopFocus,\n orientation,\n highlightItemOnHover,\n trigger,\n setTrigger,\n anchor,\n contentId,\n finalFocus,\n setFinalFocus,\n openAt,\n closeAll,\n registerMenuElement,\n isInsideMenu,\n };\n\n return (\n <ContextMenuContext.Provider value={ctx}>\n {props.children}\n </ContextMenuContext.Provider>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { ContextMenuItemEntry } from '../context-menu.types';
3
+ /**
4
+ * 浮层内的高亮导航。
5
+ *
6
+ * 单一职责:维护"当前高亮的是哪一项",并提供移动/跳到首尾的能力。
7
+ * 交互模型是焦点留在 popup 上、高亮用 `aria-activedescendant` 表达,
8
+ * 因此这里只改 id,不碰真实焦点。
9
+ */
10
+ /** 键盘移动时的目标下标(-1 表示列表为空,调用方据此放弃) */
11
+ export declare function resolveNextActiveIndex(currentIndex: number, delta: 1 | -1, length: number, loopFocus: boolean): number;
12
+ export interface CreateHighlightOptions {
13
+ /** 全部菜单项(按 DOM 顺序),用于反查当前高亮项 */
14
+ orderedItems: Accessor<ContextMenuItemEntry[]>;
15
+ /** 可参与导航的菜单项(排除 disabled) */
16
+ enabledItems: Accessor<ContextMenuItemEntry[]>;
17
+ loopFocus: () => boolean;
18
+ /** 当前展开的子菜单项 id(没有展开时为 undefined) */
19
+ openPopupId: Accessor<string | undefined>;
20
+ /** 关闭已展开的子菜单 */
21
+ closeOpenPopup: () => void;
22
+ /** 本浮层是否打开;关闭时清空高亮,保证下次从第一项开始 */
23
+ open: Accessor<boolean>;
24
+ }
25
+ export interface HighlightNavigation {
26
+ activeId: Accessor<string | undefined>;
27
+ activeEntry: Accessor<ContextMenuItemEntry | undefined>;
28
+ setActiveId: (id: string | undefined) => void;
29
+ moveActive: (delta: 1 | -1) => void;
30
+ focusFirst: () => void;
31
+ focusLast: () => void;
32
+ }
33
+ export declare function createHighlight(options: CreateHighlightOptions): HighlightNavigation;
@@ -0,0 +1,41 @@
1
+ import { createEffect as e, createMemo as t, createSignal as n } from "solid-js";
2
+ //#region src/components/context-menu/ContextMenuContent/context-menu.highlight.ts
3
+ function r(e, t, n, r) {
4
+ if (n <= 0) return -1;
5
+ if (e === -1) return t > 0 ? 0 : n - 1;
6
+ let i = e + t;
7
+ return i < 0 ? r ? n - 1 : 0 : i >= n ? r ? 0 : n - 1 : i;
8
+ }
9
+ function i(i) {
10
+ let [a, o] = n(), s = (e) => {
11
+ o(e);
12
+ let t = i.openPopupId();
13
+ t !== void 0 && t !== e && i.closeOpenPopup();
14
+ }, c = t(() => i.orderedItems().find((e) => e.id === a()));
15
+ return e(() => {
16
+ let e = c();
17
+ e && e.element.scrollIntoView({ block: "nearest" });
18
+ }), e(() => {
19
+ i.open() || (o(void 0), i.closeOpenPopup());
20
+ }), {
21
+ activeId: a,
22
+ activeEntry: c,
23
+ setActiveId: s,
24
+ moveActive(e) {
25
+ let t = i.enabledItems(), n = r(t.findIndex((e) => e.id === a()), e, t.length, i.loopFocus());
26
+ n !== -1 && s(t[n].id);
27
+ },
28
+ focusFirst() {
29
+ let e = i.enabledItems();
30
+ s(e.length > 0 ? e[0].id : void 0);
31
+ },
32
+ focusLast() {
33
+ let e = i.enabledItems();
34
+ s(e.length > 0 ? e[e.length - 1].id : void 0);
35
+ }
36
+ };
37
+ }
38
+ //#endregion
39
+ export { i as createHighlight, r as resolveNextActiveIndex };
40
+
41
+ //# sourceMappingURL=context-menu.highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.highlight.js","names":["resolveNextActiveIndex","length","currentIndex","delta","next","loopFocus","createHighlight","activeId","setActiveIdInternal","createSignal","setActiveId","id","openId","options","activeEntry","createMemo","item","createEffect","entry","list","nextIndex"],"sources":["../../../../src/components/context-menu/ContextMenuContent/context-menu.highlight.ts"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n type Accessor,\n} from \"solid-js\";\nimport type { ContextMenuItemEntry } from \"../context-menu.types\";\n\n/**\n * 浮层内的高亮导航。\n *\n * 单一职责:维护\"当前高亮的是哪一项\",并提供移动/跳到首尾的能力。\n * 交互模型是焦点留在 popup 上、高亮用 `aria-activedescendant` 表达,\n * 因此这里只改 id,不碰真实焦点。\n */\n\n/** 键盘移动时的目标下标(-1 表示列表为空,调用方据此放弃) */\nexport function resolveNextActiveIndex(\n currentIndex: number,\n delta: 1 | -1,\n length: number,\n loopFocus: boolean,\n): number {\n if (length <= 0) return -1;\n if (currentIndex === -1) return delta > 0 ? 0 : length - 1;\n\n const next = currentIndex + delta;\n if (next < 0) return loopFocus ? length - 1 : 0;\n if (next >= length) return loopFocus ? 0 : length - 1;\n return next;\n}\n\nexport interface CreateHighlightOptions {\n /** 全部菜单项(按 DOM 顺序),用于反查当前高亮项 */\n orderedItems: Accessor<ContextMenuItemEntry[]>;\n /** 可参与导航的菜单项(排除 disabled) */\n enabledItems: Accessor<ContextMenuItemEntry[]>;\n loopFocus: () => boolean;\n /** 当前展开的子菜单项 id(没有展开时为 undefined) */\n openPopupId: Accessor<string | undefined>;\n /** 关闭已展开的子菜单 */\n closeOpenPopup: () => void;\n /** 本浮层是否打开;关闭时清空高亮,保证下次从第一项开始 */\n open: Accessor<boolean>;\n}\n\nexport interface HighlightNavigation {\n activeId: Accessor<string | undefined>;\n activeEntry: Accessor<ContextMenuItemEntry | undefined>;\n setActiveId: (id: string | undefined) => void;\n moveActive: (delta: 1 | -1) => void;\n focusFirst: () => void;\n focusLast: () => void;\n}\n\nexport function createHighlight(\n options: CreateHighlightOptions,\n): HighlightNavigation {\n const [activeId, setActiveIdInternal] = createSignal<string | undefined>();\n\n /** 高亮某项;若高亮切到了别的项,顺手关掉已展开的子菜单 */\n const setActiveId = (id: string | undefined) => {\n setActiveIdInternal(id);\n const openId = options.openPopupId();\n if (openId !== undefined && openId !== id) options.closeOpenPopup();\n };\n\n const activeEntry = createMemo(() =>\n options.orderedItems().find((item) => item.id === activeId()),\n );\n\n // 高亮项变化时滚动到可见区域\n createEffect(() => {\n const entry = activeEntry();\n if (!entry) return;\n entry.element.scrollIntoView({ block: \"nearest\" });\n });\n\n // 关闭时清空高亮与子菜单状态\n createEffect(() => {\n if (options.open()) return;\n setActiveIdInternal(undefined);\n options.closeOpenPopup();\n });\n\n return {\n activeId,\n activeEntry,\n setActiveId,\n moveActive(delta) {\n const list = options.enabledItems();\n const currentIndex = list.findIndex((item) => item.id === activeId());\n const nextIndex = resolveNextActiveIndex(\n currentIndex,\n delta,\n list.length,\n options.loopFocus(),\n );\n if (nextIndex === -1) return;\n setActiveId(list[nextIndex]!.id);\n },\n focusFirst() {\n const list = options.enabledItems();\n setActiveId(list.length > 0 ? list[0]!.id : undefined);\n },\n focusLast() {\n const list = options.enabledItems();\n setActiveId(list.length > 0 ? list[list.length - 1]!.id : undefined);\n },\n };\n}\n"],"mappings":";;AAiBA,SAAgBA,EACd,GACA,GACA,GACA,GACQ;CACR,IAAIC,KAAU,GAAG,OAAO;CACxB,IAAIC,MAAiB,IAAI,OAAOC,IAAQ,IAAI,IAAIF,IAAS;CAEzD,IAAMG,IAAOF,IAAeC;CAG5B,OAFIC,IAAO,IAAUC,IAAYJ,IAAS,IAAI,IAC1CG,KAAQH,IAAeI,IAAY,IAAIJ,IAAS,IAC7CG;AACT;AAyBA,SAAgBE,EACd,GACqB;CACrB,IAAM,CAACC,GAAUC,KAAuBC,EAAiC,GAGnEC,KAAe,MAA2B;EAC9C,EAAoBC,CAAE;EACtB,IAAMC,IAASC,EAAQ,YAAY;EACnC,AAAID,MAAW,KAAA,KAAaA,MAAWD,KAAIE,EAAQ,eAAe;CACpE,GAEMC,IAAcC,QAClBF,EAAQ,aAAa,CAAC,CAAC,MAAM,MAASG,EAAK,OAAOT,EAAS,CAAC,CAC9D;CAgBA,OAbAU,QAAmB;EACjB,IAAMC,IAAQJ,EAAY;EAC1B,AAAKI,KACLA,EAAM,QAAQ,eAAe,EAAE,OAAO,UAAU,CAAC;CACnD,CAAC,GAGDD,QAAmB;EACjB,AAAIJ,EAAQ,KAAK,MACjBL,EAAoB,KAAA,CAAS,GAC7BK,EAAQ,eAAe;CACzB,CAAC,GAEM;EACL;EACA;EACA;EACA,WAAW,GAAO;GAChB,IAAMM,IAAON,EAAQ,aAAa,GAE5BO,IAAYpB,EADGmB,EAAK,WAAW,MAASH,EAAK,OAAOT,EAAS,CAEjE,GACAJ,GACAgB,EAAK,QACLN,EAAQ,UAAU,CACpB;GACA,AAAIO,MAAc,MAClBV,EAAYS,EAAKC,EAAU,CAAE,EAAE;EACjC;EACA,aAAa;GACX,IAAMD,IAAON,EAAQ,aAAa;GAClC,EAAYM,EAAK,SAAS,IAAIA,EAAK,EAAE,CAAE,KAAK,KAAA,CAAS;EACvD;EACA,YAAY;GACV,IAAMA,IAAON,EAAQ,aAAa;GAClC,EAAYM,EAAK,SAAS,IAAIA,EAAKA,EAAK,SAAS,EAAE,CAAE,KAAK,KAAA,CAAS;EACrE;CACF;AACF"}
@@ -0,0 +1,25 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { ContextMenuItemEntry } from '../context-menu.types';
3
+ /**
4
+ * 浮层内的菜单项集合。
5
+ *
6
+ * 单一职责:维护"这一层里注册了哪些菜单项",并给出两种派生视图——
7
+ * 按 DOM 顺序排好的全部项、以及其中未禁用的项。浮层之间的父子关系、
8
+ * 高亮与定位都不在这里。
9
+ */
10
+ /** 按 DOM 顺序比较两个菜单项:A 在 B 之前返回 -1,之后返回 1,同一元素返回 0 */
11
+ export declare function compareItemElements(a: ContextMenuItemEntry, b: ContextMenuItemEntry): number;
12
+ export interface ItemCollection {
13
+ /** 按注册时机排列的原始列表(`orderedItems` 之前的状态) */
14
+ items: Accessor<ContextMenuItemEntry[]>;
15
+ registerItem: (entry: ContextMenuItemEntry) => () => void;
16
+ /**
17
+ * 按 DOM 顺序排序后的列表。
18
+ * 调用方常用 `<For>` 动态生成菜单项,注册顺序与实际渲染顺序可能不同,
19
+ * 而"上一项/下一项"必须按用户看到的顺序走。
20
+ */
21
+ orderedItems: Accessor<ContextMenuItemEntry[]>;
22
+ /** 可参与键盘导航的项(排除 disabled) */
23
+ enabledItems: Accessor<ContextMenuItemEntry[]>;
24
+ }
25
+ export declare function createItemCollection(): ItemCollection;
@@ -0,0 +1,20 @@
1
+ import { createMemo as e, createSignal as t } from "solid-js";
2
+ //#region src/components/context-menu/ContextMenuContent/context-menu.popup-items.ts
3
+ function n(e, t) {
4
+ return e.element === t.element ? 0 : e.element.compareDocumentPosition(t.element) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;
5
+ }
6
+ function r() {
7
+ let [r, i] = t([]), a = e(() => [...r()].sort(n));
8
+ return {
9
+ items: r,
10
+ orderedItems: a,
11
+ enabledItems: e(() => a().filter((e) => !e.disabled())),
12
+ registerItem(e) {
13
+ return i((t) => [...t, e]), () => i((t) => t.filter((t) => t.id !== e.id));
14
+ }
15
+ };
16
+ }
17
+ //#endregion
18
+ export { n as compareItemElements, r as createItemCollection };
19
+
20
+ //# sourceMappingURL=context-menu.popup-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.popup-items.js","names":["compareItemElements","a","b","createItemCollection","items","setItems","createSignal","orderedItems","createMemo","item","list","entry","it"],"sources":["../../../../src/components/context-menu/ContextMenuContent/context-menu.popup-items.ts"],"sourcesContent":["import { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { ContextMenuItemEntry } from \"../context-menu.types\";\n\n/**\n * 浮层内的菜单项集合。\n *\n * 单一职责:维护\"这一层里注册了哪些菜单项\",并给出两种派生视图——\n * 按 DOM 顺序排好的全部项、以及其中未禁用的项。浮层之间的父子关系、\n * 高亮与定位都不在这里。\n */\n\n/** 按 DOM 顺序比较两个菜单项:A 在 B 之前返回 -1,之后返回 1,同一元素返回 0 */\nexport function compareItemElements(\n a: ContextMenuItemEntry,\n b: ContextMenuItemEntry,\n): number {\n if (a.element === b.element) return 0;\n const relation = a.element.compareDocumentPosition(b.element);\n return relation & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n}\n\nexport interface ItemCollection {\n /** 按注册时机排列的原始列表(`orderedItems` 之前的状态) */\n items: Accessor<ContextMenuItemEntry[]>;\n registerItem: (entry: ContextMenuItemEntry) => () => void;\n /**\n * 按 DOM 顺序排序后的列表。\n * 调用方常用 `<For>` 动态生成菜单项,注册顺序与实际渲染顺序可能不同,\n * 而\"上一项/下一项\"必须按用户看到的顺序走。\n */\n orderedItems: Accessor<ContextMenuItemEntry[]>;\n /** 可参与键盘导航的项(排除 disabled) */\n enabledItems: Accessor<ContextMenuItemEntry[]>;\n}\n\nexport function createItemCollection(): ItemCollection {\n const [items, setItems] = createSignal<ContextMenuItemEntry[]>([]);\n\n const orderedItems = createMemo(() => [...items()].sort(compareItemElements));\n\n return {\n items,\n orderedItems,\n enabledItems: createMemo(() =>\n orderedItems().filter((item) => !item.disabled()),\n ),\n registerItem(entry) {\n setItems((list) => [...list, entry]);\n return () => setItems((list) => list.filter((it) => it.id !== entry.id));\n },\n };\n}\n"],"mappings":";;AAYA,SAAgBA,EACd,GACA,GACQ;CAGR,OAFIC,EAAE,YAAYC,EAAE,UAAgB,IACnBD,EAAE,QAAQ,wBAAwBC,EAAE,OAC9C,IAAW,KAAK,8BAA8B,KAAK;AAC5D;AAgBA,SAAgBC,IAAuC;CACrD,IAAM,CAACC,GAAOC,KAAYC,EAAqC,CAAC,CAAC,GAE3DC,IAAeC,QAAiB,CAAC,GAAGJ,EAAM,CAAC,CAAC,CAAC,KAAKJ,CAAmB,CAAC;CAE5E,OAAO;EACL;EACA;EACA,cAAcQ,QACZD,EAAa,CAAC,CAAC,QAAQ,MAAS,CAACE,EAAK,SAAS,CAAC,CAClD;EACA,aAAa,GAAO;GAElB,OADAJ,GAAU,MAAS,CAAC,GAAGK,GAAMC,CAAK,CAAC,SACtBN,GAAU,MAASK,EAAK,QAAQ,MAAOE,EAAG,OAAOD,EAAM,EAAE,CAAC;EACzE;CACF;AACF"}
@@ -0,0 +1,31 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { Placement, Positioner, ReferenceElement } from '../../../lib';
3
+ import { ContextMenuAlign, ContextMenuSide } from '../context-menu.types';
4
+ export interface PopupPositionerOptions {
5
+ /** 定位锚点:根菜单是鼠标坐标的虚拟元素,子菜单是子菜单触发器 */
6
+ reference: Accessor<ReferenceElement | undefined>;
7
+ /** 负责定位的外层元素 */
8
+ positionerElement: Accessor<HTMLElement | undefined>;
9
+ side: Accessor<ContextMenuSide>;
10
+ align: Accessor<ContextMenuAlign>;
11
+ dir: Accessor<"ltr" | "rtl" | "auto" | undefined>;
12
+ sideOffset: Accessor<number>;
13
+ alignOffset: Accessor<number>;
14
+ collisionPadding: Accessor<number>;
15
+ }
16
+ export interface PopupPositioner {
17
+ pos: Positioner;
18
+ availableHeight: Accessor<number | undefined>;
19
+ placement: Accessor<Placement>;
20
+ }
21
+ /**
22
+ * 浮层的定位配置。
23
+ *
24
+ * 单一职责:把 `side` / `align` / 偏移 / 碰撞内边距这些 props 翻译成
25
+ * middleware 组合(offset → flip → shift → size → hide → containingBlockOffset),
26
+ * 并把 size 中间件算出的可用高度暴露给调用方(用于 max-height 滚动)。
27
+ *
28
+ * `containingBlockOffset` 放在最后:Portal 里的浮层相对视口定位,
29
+ * 但祖先若有 `transform`,fixed 定位的参考系会变,需要补上这段偏移。
30
+ */
31
+ export declare function createPopupPositioner(options: PopupPositionerOptions): PopupPositioner;
@@ -0,0 +1,39 @@
1
+ import { createPositioner as e } from "../../../lib/positioner/create-positioner.js";
2
+ import { offset as t } from "../../../lib/positioner/middleware/offset.js";
3
+ import { shift as n } from "../../../lib/positioner/middleware/shift.js";
4
+ import { flip as r } from "../../../lib/positioner/middleware/flip.js";
5
+ import { size as i } from "../../../lib/positioner/middleware/size.js";
6
+ import { hide as a } from "../../../lib/positioner/middleware/hide.js";
7
+ import { containingBlockOffset as o } from "../../../lib/positioner/middleware/containing-block-offset.js";
8
+ import { toContextMenuPlacement as s } from "../context-menu.utils.js";
9
+ import { createSignal as c } from "solid-js";
10
+ //#region src/components/context-menu/ContextMenuContent/context-menu.positioner.ts
11
+ function l(l) {
12
+ let [u, d] = c(), f = e(l.reference, l.positionerElement, {
13
+ placement: () => s(l.side(), l.align(), l.dir()),
14
+ strategy: "fixed",
15
+ middleware: () => [
16
+ t({
17
+ mainAxis: l.sideOffset(),
18
+ crossAxis: l.alignOffset()
19
+ }),
20
+ r(),
21
+ n({ padding: l.collisionPadding() }),
22
+ i({
23
+ padding: l.collisionPadding(),
24
+ apply: ({ availableHeight: e }) => d(e)
25
+ }),
26
+ a(),
27
+ o()
28
+ ]
29
+ });
30
+ return {
31
+ pos: f,
32
+ availableHeight: u,
33
+ placement: f.placement
34
+ };
35
+ }
36
+ //#endregion
37
+ export { l as createPopupPositioner };
38
+
39
+ //# sourceMappingURL=context-menu.positioner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.positioner.js","names":["createPopupPositioner","availableHeight","setAvailableHeight","createSignal","pos","createPositioner","options","toContextMenuPlacement","offset","flip","shift","size","hide","containingBlockOffset"],"sources":["../../../../src/components/context-menu/ContextMenuContent/context-menu.positioner.ts"],"sourcesContent":["import { createSignal, type Accessor } from \"solid-js\";\nimport {\n containingBlockOffset,\n createPositioner,\n flip,\n hide,\n offset,\n shift,\n size,\n type Placement,\n type Positioner,\n type ReferenceElement,\n} from \"~/lib\";\nimport type { ContextMenuAlign, ContextMenuSide } from \"../context-menu.types\";\nimport { toContextMenuPlacement } from \"../context-menu.utils\";\n\nexport interface PopupPositionerOptions {\n /** 定位锚点:根菜单是鼠标坐标的虚拟元素,子菜单是子菜单触发器 */\n reference: Accessor<ReferenceElement | undefined>;\n /** 负责定位的外层元素 */\n positionerElement: Accessor<HTMLElement | undefined>;\n side: Accessor<ContextMenuSide>;\n align: Accessor<ContextMenuAlign>;\n dir: Accessor<\"ltr\" | \"rtl\" | \"auto\" | undefined>;\n sideOffset: Accessor<number>;\n alignOffset: Accessor<number>;\n collisionPadding: Accessor<number>;\n}\n\nexport interface PopupPositioner {\n pos: Positioner;\n availableHeight: Accessor<number | undefined>;\n placement: Accessor<Placement>;\n}\n\n/**\n * 浮层的定位配置。\n *\n * 单一职责:把 `side` / `align` / 偏移 / 碰撞内边距这些 props 翻译成\n * middleware 组合(offset → flip → shift → size → hide → containingBlockOffset),\n * 并把 size 中间件算出的可用高度暴露给调用方(用于 max-height 滚动)。\n *\n * `containingBlockOffset` 放在最后:Portal 里的浮层相对视口定位,\n * 但祖先若有 `transform`,fixed 定位的参考系会变,需要补上这段偏移。\n */\nexport function createPopupPositioner(\n options: PopupPositionerOptions,\n): PopupPositioner {\n const [availableHeight, setAvailableHeight] = createSignal<number>();\n\n const pos = createPositioner(options.reference, options.positionerElement, {\n placement: () =>\n toContextMenuPlacement(options.side(), options.align(), options.dir()),\n strategy: \"fixed\",\n middleware: () => [\n offset({\n mainAxis: options.sideOffset(),\n crossAxis: options.alignOffset(),\n }),\n flip(),\n shift({ padding: options.collisionPadding() }),\n size({\n padding: options.collisionPadding(),\n apply: ({ availableHeight }) => setAvailableHeight(availableHeight),\n }),\n hide(),\n containingBlockOffset(),\n ],\n });\n\n return { pos, availableHeight, placement: pos.placement };\n}\n"],"mappings":";;;;;;;;;;AA6CA,SAAgBA,EACd,GACiB;CACjB,IAAM,CAACC,GAAiBC,KAAsBC,EAAqB,GAE7DC,IAAMC,EAAiBC,EAAQ,WAAWA,EAAQ,mBAAmB;EACzE,iBACEC,EAAuBD,EAAQ,KAAK,GAAGA,EAAQ,MAAM,GAAGA,EAAQ,IAAI,CAAC;EACvE,UAAU;EACV,kBAAkB;GAChBE,EAAO;IACL,UAAUF,EAAQ,WAAW;IAC7B,WAAWA,EAAQ,YAAY;GACjC,CAAC;GACDG,EAAK;GACLC,EAAM,EAAE,SAASJ,EAAQ,iBAAiB,EAAE,CAAC;GAC7CK,EAAK;IACH,SAASL,EAAQ,iBAAiB;IAClC,QAAQ,EAAE,yBAAsBJ,EAAmBD,CAAe;GACpE,CAAC;GACDW,EAAK;GACLC,EAAsB;EACxB;CACF,CAAC;CAED,OAAO;EAAE;EAAK;EAAiB,WAAWT,EAAI;CAAU;AAC1D"}