@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,153 +1,87 @@
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 { createEffect as c, createMemo as l, createSignal as u, createUniqueId as d, onCleanup as f } from "solid-js";
1
+ import { handleMenuKeyDown as e } from "../context-menu.keyboard.js";
2
+ import { createHighlight as t } from "./context-menu.highlight.js";
3
+ import { createPopupPositioner as n } from "./context-menu.positioner.js";
4
+ import { createItemCollection as r } from "./context-menu.popup-items.js";
5
+ import { createTypeahead as i } from "../context-menu.typeahead.js";
6
+ import { createSignal as a, createUniqueId as o, onCleanup as s } from "solid-js";
10
7
  //#region src/components/context-menu/ContextMenuContent/useContextMenuContent.ts
11
- var p = 500;
12
- function m(m) {
13
- let { root: h } = m, g = () => m.loopFocus?.() ?? h.loopFocus(), _ = () => m.orientation?.() ?? h.orientation(), v = () => m.highlightItemOnHover?.() ?? h.highlightItemOnHover(), [y, b] = u(), [x, S] = u(), [C, w] = u([]), [T, E] = u(), [D, O] = u(), [k, A] = u(), j = `context-menu-popup-${d()}`, M = e(m.reference, x, {
14
- placement: () => s(m.side(), m.align(), m.dir()),
15
- strategy: "fixed",
16
- middleware: () => [
17
- t({
18
- mainAxis: m.sideOffset(),
19
- crossAxis: m.alignOffset()
20
- }),
21
- r(),
22
- n({ padding: m.collisionPadding() }),
23
- i({
24
- padding: m.collisionPadding(),
25
- apply: ({ availableHeight: e }) => A(e)
26
- }),
27
- a(),
28
- o()
29
- ]
30
- }), N = l(() => [...C()].sort((e, t) => e.element === t.element ? 0 : e.element.compareDocumentPosition(t.element) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1)), P = l(() => N().filter((e) => !e.disabled())), F = () => N().find((e) => e.id === T()), I = (e) => (w((t) => [...t, e]), () => w((t) => t.filter((t) => t.id !== e.id))), L = () => O(void 0), R = (e) => {
31
- E(e);
32
- let t = D();
33
- t && t.id !== e && L();
34
- }, z = (e) => {
35
- let t = P();
36
- if (t.length === 0) return;
37
- let n = t.findIndex((e) => e.id === T()), r;
38
- n === -1 ? r = e > 0 ? 0 : t.length - 1 : (r = n + e, r < 0 ? r = g() ? t.length - 1 : 0 : r >= t.length && (r = g() ? 0 : t.length - 1)), R(t[r].id);
39
- }, B = () => {
40
- let e = P();
41
- R(e.length > 0 ? e[0].id : void 0);
42
- }, V = () => {
43
- let e = P();
44
- R(e.length > 0 ? e[e.length - 1].id : void 0);
45
- };
46
- c(() => {
47
- let e = T();
48
- e && N().find((t) => t.id === e)?.element.scrollIntoView({ block: "nearest" });
49
- }), c(() => {
50
- m.open() || (E(void 0), O(void 0));
8
+ function c(c) {
9
+ let { root: l } = c, u = () => c.loopFocus?.() ?? l.loopFocus(), d = () => c.orientation?.() ?? l.orientation(), f = () => c.highlightItemOnHover?.() ?? l.highlightItemOnHover(), [p, m] = a(), [h, g] = a(), { registerItem: _, orderedItems: v, enabledItems: y } = r(), [b, x] = a(), S = `context-menu-popup-${o()}`, { pos: C, availableHeight: w, placement: T } = n({
10
+ reference: c.reference,
11
+ positionerElement: h,
12
+ side: c.side,
13
+ align: c.align,
14
+ dir: c.dir,
15
+ sideOffset: c.sideOffset,
16
+ alignOffset: c.alignOffset,
17
+ collisionPadding: c.collisionPadding
18
+ }), E = () => x(void 0), { activeId: D, activeEntry: O, setActiveId: k, moveActive: A, focusFirst: j, focusLast: M } = t({
19
+ orderedItems: v,
20
+ enabledItems: y,
21
+ loopFocus: u,
22
+ openPopupId: () => b()?.id,
23
+ closeOpenPopup: E,
24
+ open: c.open
25
+ }), N = i({
26
+ candidates: () => y().map((e) => ({
27
+ id: e.id,
28
+ label: e.label()
29
+ })),
30
+ onMatch: (e) => k(e)
51
31
  });
52
- let H = "", U, W = (e) => {
53
- H += e.toLowerCase(), U !== void 0 && window.clearTimeout(U), U = window.setTimeout(() => {
54
- H = "", U = void 0;
55
- }, p);
56
- let t = P().find((e) => e.label().toLowerCase().startsWith(H));
57
- t && R(t.id);
58
- };
59
- return f(() => {
60
- U !== void 0 && window.clearTimeout(U);
61
- }), {
32
+ return s(() => N.dispose()), {
62
33
  popupCtx: {
63
- root: h,
64
- parent: m.parent,
65
- submenu: m.submenu,
66
- menuId: j,
67
- isSubmenu: m.isSubmenu,
68
- popup: y,
69
- setPopup: (e) => b(e),
70
- items: N,
71
- registerItem: I,
72
- activeId: T,
73
- setActiveId: R,
74
- activeEntry: F,
75
- moveActive: z,
76
- focusFirst: B,
77
- focusLast: V,
78
- highlight: (e) => R(e),
79
- openPopupState: D,
80
- openPopup: (e, t, n) => O({
34
+ root: l,
35
+ parent: c.parent,
36
+ submenu: c.submenu,
37
+ menuId: S,
38
+ isSubmenu: c.isSubmenu,
39
+ popup: p,
40
+ setPopup: (e) => m(e),
41
+ items: v,
42
+ registerItem: _,
43
+ activeId: D,
44
+ setActiveId: k,
45
+ activeEntry: O,
46
+ moveActive: A,
47
+ focusFirst: j,
48
+ focusLast: M,
49
+ highlight: (e) => k(e),
50
+ openPopupState: b,
51
+ openPopup: (e, t, n) => x({
81
52
  id: e,
82
53
  reason: t,
83
54
  event: n
84
55
  }),
85
- closeOpenPopup: L,
86
- closeAll: (e, t) => h.closeAll(e, t),
87
- highlightItemOnHover: v
88
- },
89
- pos: M,
90
- popupEl: y,
91
- setPopupEl: (e) => b(e),
92
- positionerEl: x,
93
- setPositionerEl: (e) => S(e),
94
- availableHeight: k,
95
- placement: M.placement,
96
- onKeyDown: (e) => {
97
- let t = m.submenu, n = _() === "horizontal";
98
- switch (e.key) {
99
- case "ArrowDown":
100
- e.preventDefault(), z(1);
101
- break;
102
- case "ArrowUp":
103
- e.preventDefault(), z(-1);
104
- break;
105
- case "ArrowRight": {
106
- if (n) {
107
- e.preventDefault(), z(1);
108
- break;
109
- }
110
- let t = F();
111
- t?.hasPopup() && (e.preventDefault(), t.openPopup?.("list-navigation", e));
112
- break;
113
- }
114
- case "ArrowLeft":
115
- if (n) {
116
- e.preventDefault(), z(-1);
117
- break;
118
- }
119
- t && (e.preventDefault(), e.stopPropagation(), t.closeSubmenu("list-navigation", e, !0));
120
- break;
121
- case "Home":
122
- e.preventDefault(), B();
123
- break;
124
- case "End":
125
- e.preventDefault(), V();
126
- break;
127
- case "Enter":
128
- case " ": {
129
- e.preventDefault();
130
- let t = F();
131
- t && !t.disabled() && t.activate();
132
- break;
133
- }
134
- case "Escape":
135
- e.preventDefault(), e.stopPropagation(), t && !t.closeParentOnEsc() ? t.closeSubmenu("escape-key", e, !0) : h.closeAll("escape-key", e);
136
- break;
137
- case "Tab":
138
- e.preventDefault(), h.closeAll("focus-out", e);
139
- break;
140
- default: e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey && W(e.key);
141
- }
56
+ closeOpenPopup: E,
57
+ closeAll: (e, t) => l.closeAll(e, t),
58
+ highlightItemOnHover: f
142
59
  },
60
+ pos: C,
61
+ popupEl: p,
62
+ setPopupEl: (e) => m(e),
63
+ positionerEl: h,
64
+ setPositionerEl: (e) => g(e),
65
+ availableHeight: w,
66
+ placement: T,
67
+ onKeyDown: (t) => e(t, {
68
+ horizontal: d() === "horizontal",
69
+ activeEntry: O,
70
+ moveActive: A,
71
+ focusFirst: j,
72
+ focusLast: M,
73
+ typeahead: (e) => N.handle(e),
74
+ submenu: c.submenu,
75
+ closeAll: (e, t) => l.closeAll(e, t)
76
+ }),
143
77
  setupOnOpen: () => {
144
78
  queueMicrotask(() => {
145
- m.open() && (y()?.focus({ preventScroll: !0 }), T() === void 0 && B());
79
+ c.open() && (p()?.focus({ preventScroll: !0 }), D() === void 0 && j());
146
80
  });
147
81
  }
148
82
  };
149
83
  }
150
84
  //#endregion
151
- export { m as createContextMenuPopupRuntime };
85
+ export { c as createContextMenuPopupRuntime };
152
86
 
153
87
  //# sourceMappingURL=useContextMenuContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useContextMenuContent.js","names":["TYPEAHEAD_TIMEOUT","createContextMenuPopupRuntime","options","loopFocus","root","orientation","highlightItemOnHover","popupEl","setPopupEl","createSignal","positionerEl","setPositionerEl","items","setItems","activeId","setActiveIdInternal","openPopupState","setOpenPopupState","availableHeight","setAvailableHeight","menuId","createUniqueId","pos","createPositioner","toContextMenuPlacement","offset","flip","shift","size","hide","containingBlockOffset","orderedItems","createMemo","a","b","enabledItems","item","activeEntry","registerItem","list","entry","it","closeOpenPopup","setActiveId","id","state","moveActive","currentIndex","nextIndex","delta","focusFirst","focusLast","createEffect","typeaheadBuffer","typeaheadTimer","runTypeahead","char","match","onCleanup","el","reason","event","submenu","horizontal"],"sources":["../../../../src/components/context-menu/ContextMenuContent/useContextMenuContent.ts"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n onCleanup,\n type Accessor,\n} 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 {\n ContextMenuAlign,\n ContextMenuContextValue,\n ContextMenuOpenPopupState,\n ContextMenuItemEntry,\n ContextMenuOrientation,\n ContextMenuPopupContextValue,\n ContextMenuSide,\n ContextMenuSubmenuContextValue,\n} from \"../context-menu.types\";\nimport { toContextMenuPlacement } from \"../context-menu.utils\";\n\n/** 键盘字符导航的缓冲窗口(毫秒) */\nconst TYPEAHEAD_TIMEOUT = 500;\n\nexport interface CreateContextMenuPopupOptions {\n root: ContextMenuContextValue;\n /** 该浮层自身的打开状态(根菜单 = root.open,子菜单 = submenu.open) */\n open: Accessor<boolean>;\n /** 父级浮层:根菜单为 undefined,子菜单为触发它的那个浮层 */\n parent?: ContextMenuPopupContextValue;\n isSubmenu: boolean;\n /** 定位锚点:根菜单是鼠标坐标的虚拟元素,子菜单是子菜单触发器 */\n reference: Accessor<ReferenceElement | undefined>;\n side: Accessor<ContextMenuSide>;\n align: Accessor<ContextMenuAlign>;\n sideOffset: Accessor<number>;\n alignOffset: Accessor<number>;\n collisionPadding: Accessor<number>;\n dir: Accessor<\"ltr\" | \"rtl\" | \"auto\" | undefined>;\n /** 子菜单可以覆盖根组件的行为;不传则回退到 root 上的值 */\n loopFocus?: Accessor<boolean>;\n orientation?: Accessor<ContextMenuOrientation>;\n highlightItemOnHover?: Accessor<boolean>;\n /** 子菜单场景下提供,用于 ArrowLeft / Escape 只关闭当前子菜单 */\n submenu?: ContextMenuSubmenuContextValue;\n}\n\nexport interface ContextMenuPopupRuntime {\n popupCtx: ContextMenuPopupContextValue;\n pos: Positioner;\n /** 真正承载焦点的 popup 元素 */\n popupEl: Accessor<HTMLElement | undefined>;\n setPopupEl: (el: HTMLElement | undefined) => void;\n /** 负责定位的外层元素 */\n positionerEl: Accessor<HTMLElement | undefined>;\n setPositionerEl: (el: HTMLElement | undefined) => void;\n /** size 中间件算出的可用高度,用于 max-height 滚动 */\n availableHeight: Accessor<number | undefined>;\n placement: Accessor<Placement>;\n onKeyDown: (e: KeyboardEvent) => void;\n /** 打开后聚焦 popup 并把高亮落到第一项 */\n setupOnOpen: () => void;\n}\n\n/**\n * 一个浮层(根菜单或子菜单)的运行时:定位、菜单项注册、高亮/键盘导航、\n * 类型头(typeahead)以及开关联动都收敛在这里。`ContextMenuContent` 与\n * `ContextMenuSubContent` 共用它,只是传入的锚点与父子关系不同。\n *\n * 交互模型:焦点始终落在 popup 上,高亮项通过 `aria-activedescendant` 表达\n * (而不是把真实焦点在菜单项之间搬来搬去)。这与本项目 Select 的做法一致,\n * 既避免了焦点在 Portal / 子菜单之间的来回跳,也让\"关闭后把焦点还给触发器\"\n * 变得非常简单。\n */\nexport function createContextMenuPopupRuntime(\n options: CreateContextMenuPopupOptions,\n): ContextMenuPopupRuntime {\n const { root } = options;\n const loopFocus = () => options.loopFocus?.() ?? root.loopFocus();\n const orientation = () => options.orientation?.() ?? root.orientation();\n const highlightItemOnHover = () =>\n options.highlightItemOnHover?.() ?? root.highlightItemOnHover();\n\n const [popupEl, setPopupEl] = createSignal<HTMLElement>();\n const [positionerEl, setPositionerEl] = createSignal<HTMLElement>();\n const [items, setItems] = createSignal<ContextMenuItemEntry[]>([]);\n const [activeId, setActiveIdInternal] = createSignal<string | undefined>();\n const [openPopupState, setOpenPopupState] =\n createSignal<ContextMenuOpenPopupState>();\n const [availableHeight, setAvailableHeight] = createSignal<number>();\n\n const menuId = `context-menu-popup-${createUniqueId()}`;\n\n const pos = createPositioner(options.reference, positionerEl, {\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 // 按 DOM 顺序排序,避免调用方用 <For> 动态生成菜单项时顺序错乱。\n const orderedItems = createMemo(() => {\n const list = items();\n return [...list].sort((a, b) => {\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 });\n\n const enabledItems = createMemo(() =>\n orderedItems().filter((item) => !item.disabled()),\n );\n\n const activeEntry = () =>\n orderedItems().find((item) => item.id === activeId());\n\n const registerItem = (entry: ContextMenuItemEntry) => {\n setItems((list) => [...list, entry]);\n return () => setItems((list) => list.filter((it) => it.id !== entry.id));\n };\n\n const closeOpenPopup = () => setOpenPopupState(undefined);\n\n /** 高亮某项;若高亮切到了别的项,顺手关掉已展开的子菜单 */\n const setActiveId = (id: string | undefined) => {\n setActiveIdInternal(id);\n const state = openPopupState();\n if (state && state.id !== id) closeOpenPopup();\n };\n\n const moveActive = (delta: 1 | -1) => {\n const list = enabledItems();\n if (list.length === 0) return;\n const currentIndex = list.findIndex((item) => item.id === activeId());\n let nextIndex: number;\n if (currentIndex === -1) {\n nextIndex = delta > 0 ? 0 : list.length - 1;\n } else {\n nextIndex = currentIndex + delta;\n if (nextIndex < 0) {\n nextIndex = loopFocus() ? list.length - 1 : 0;\n } else if (nextIndex >= list.length) {\n nextIndex = loopFocus() ? 0 : list.length - 1;\n }\n }\n setActiveId(list[nextIndex].id);\n };\n\n const focusFirst = () => {\n const list = enabledItems();\n setActiveId(list.length > 0 ? list[0].id : undefined);\n };\n\n const focusLast = () => {\n const list = enabledItems();\n setActiveId(list.length > 0 ? list[list.length - 1].id : undefined);\n };\n\n // 高亮项变化时滚动到可见区域\n createEffect(() => {\n const id = activeId();\n if (!id) return;\n orderedItems()\n .find((item) => item.id === id)\n ?.element.scrollIntoView({ block: \"nearest\" });\n });\n\n // 关闭时清空高亮与子菜单状态,保证下次打开重新从第一项开始。\n createEffect(() => {\n if (!options.open()) {\n setActiveIdInternal(undefined);\n setOpenPopupState(undefined);\n }\n });\n\n // --- 键盘字符导航 ---\n let typeaheadBuffer = \"\";\n let typeaheadTimer: number | undefined;\n\n const runTypeahead = (char: string) => {\n typeaheadBuffer += char.toLowerCase();\n if (typeaheadTimer !== undefined) window.clearTimeout(typeaheadTimer);\n typeaheadTimer = window.setTimeout(() => {\n typeaheadBuffer = \"\";\n typeaheadTimer = undefined;\n }, TYPEAHEAD_TIMEOUT);\n\n const match = enabledItems().find((item) =>\n item.label().toLowerCase().startsWith(typeaheadBuffer),\n );\n if (match) setActiveId(match.id);\n };\n\n onCleanup(() => {\n if (typeaheadTimer !== undefined) window.clearTimeout(typeaheadTimer);\n });\n\n const onKeyDown = (e: KeyboardEvent) => {\n const submenu = options.submenu;\n const horizontal = orientation() === \"horizontal\";\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n moveActive(1);\n break;\n case \"ArrowUp\":\n e.preventDefault();\n moveActive(-1);\n break;\n case \"ArrowRight\": {\n if (horizontal) {\n e.preventDefault();\n moveActive(1);\n break;\n }\n const entry = activeEntry();\n if (entry?.hasPopup()) {\n e.preventDefault();\n entry.openPopup?.(\"list-navigation\", e);\n }\n break;\n }\n case \"ArrowLeft\": {\n if (horizontal) {\n e.preventDefault();\n moveActive(-1);\n break;\n }\n if (submenu) {\n e.preventDefault();\n // 阻止冒泡,避免父级浮层也处理这次按键\n e.stopPropagation();\n submenu.closeSubmenu(\"list-navigation\", e, true);\n }\n break;\n }\n case \"Home\":\n e.preventDefault();\n focusFirst();\n break;\n case \"End\":\n e.preventDefault();\n focusLast();\n break;\n case \"Enter\":\n case \" \": {\n e.preventDefault();\n const entry = activeEntry();\n if (entry && !entry.disabled()) entry.activate();\n break;\n }\n case \"Escape\": {\n e.preventDefault();\n e.stopPropagation();\n if (submenu && !submenu.closeParentOnEsc()) {\n submenu.closeSubmenu(\"escape-key\", e, true);\n } else {\n root.closeAll(\"escape-key\", e);\n }\n break;\n }\n case \"Tab\": {\n // 关闭菜单并把焦点交还触发器,浏览器随后的 Tab 会从触发器之后继续\n e.preventDefault();\n root.closeAll(\"focus-out\", e);\n break;\n }\n default: {\n if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n runTypeahead(e.key);\n }\n }\n }\n };\n\n const popupCtx: ContextMenuPopupContextValue = {\n root,\n parent: options.parent,\n submenu: options.submenu,\n menuId,\n isSubmenu: options.isSubmenu,\n popup: popupEl,\n setPopup: (el) => setPopupEl(el),\n items: orderedItems,\n registerItem,\n activeId,\n setActiveId,\n activeEntry,\n moveActive,\n focusFirst,\n focusLast,\n highlight: (id) => setActiveId(id),\n openPopupState,\n openPopup: (id, reason, event) => setOpenPopupState({ id, reason, event }),\n closeOpenPopup,\n closeAll: (reason, event) => root.closeAll(reason, event),\n highlightItemOnHover,\n };\n\n /** 浮层挂载完成后的收尾:聚焦 popup(键盘事件依赖它)并高亮第一项 */\n const setupOnOpen = () => {\n queueMicrotask(() => {\n if (!options.open()) return;\n popupEl()?.focus({ preventScroll: true });\n if (activeId() === undefined) focusFirst();\n });\n };\n\n return {\n popupCtx,\n pos,\n popupEl,\n setPopupEl: (el) => setPopupEl(el),\n positionerEl,\n setPositionerEl: (el) => setPositionerEl(el),\n availableHeight,\n placement: pos.placement,\n onKeyDown,\n setupOnOpen,\n };\n}\n"],"mappings":";;;;;;;;;;AAiCA,IAAMA,IAAoB;AAoD1B,SAAgBC,EACd,GACyB;CACzB,IAAM,EAAE,YAASC,GACXC,UAAkBD,EAAQ,YAAY,KAAKE,EAAK,UAAU,GAC1DC,UAAoBH,EAAQ,cAAc,KAAKE,EAAK,YAAY,GAChEE,UACJJ,EAAQ,uBAAuB,KAAKE,EAAK,qBAAqB,GAE1D,CAACG,GAASC,KAAcC,EAA0B,GAClD,CAACC,GAAcC,KAAmBF,EAA0B,GAC5D,CAACG,GAAOC,KAAYJ,EAAqC,CAAC,CAAC,GAC3D,CAACK,GAAUC,KAAuBN,EAAiC,GACnE,CAACO,GAAgBC,KACrBR,EAAwC,GACpC,CAACS,GAAiBC,KAAsBV,EAAqB,GAE7DW,IAAS,sBAAsBC,EAAe,KAE9CC,IAAMC,EAAiBrB,EAAQ,WAAWQ,GAAc;EAC5D,iBACEc,EAAuBtB,EAAQ,KAAK,GAAGA,EAAQ,MAAM,GAAGA,EAAQ,IAAI,CAAC;EACvE,UAAU;EACV,kBAAkB;GAChBuB,EAAO;IACL,UAAUvB,EAAQ,WAAW;IAC7B,WAAWA,EAAQ,YAAY;GACjC,CAAC;GACDwB,EAAK;GACLC,EAAM,EAAE,SAASzB,EAAQ,iBAAiB,EAAE,CAAC;GAC7C0B,EAAK;IACH,SAAS1B,EAAQ,iBAAiB;IAClC,QAAQ,EAAE,yBAAsBiB,EAAmBD,CAAe;GACpE,CAAC;GACDW,EAAK;GACLC,EAAsB;EACxB;CACF,CAAC,GAGKC,IAAeC,QAEZ,CAAC,GADKpB,EACF,CAAI,CAAC,CAAC,MAAM,GAAG,MACpBqB,EAAE,YAAYC,EAAE,UAAgB,IACnBD,EAAE,QAAQ,wBAAwBC,EAAE,OAC9C,IAAW,KAAK,8BAA8B,KAAK,CAC3D,CACF,GAEKC,IAAeH,QACnBD,EAAa,CAAC,CAAC,QAAQ,MAAS,CAACK,EAAK,SAAS,CAAC,CAClD,GAEMC,UACJN,EAAa,CAAC,CAAC,MAAM,MAASK,EAAK,OAAOtB,EAAS,CAAC,GAEhDwB,KAAgB,OACpBzB,GAAU,MAAS,CAAC,GAAG0B,GAAMC,CAAK,CAAC,SACtB3B,GAAU,MAAS0B,EAAK,QAAQ,MAAOE,EAAG,OAAOD,EAAM,EAAE,CAAC,IAGnEE,UAAuBzB,EAAkB,KAAA,CAAS,GAGlD0B,KAAe,MAA2B;EAC9C,EAAoBC,CAAE;EACtB,IAAMC,IAAQ7B,EAAe;EAC7B,AAAI6B,KAASA,EAAM,OAAOD,KAAIF,EAAe;CAC/C,GAEMI,KAAc,MAAkB;EACpC,IAAMP,IAAOJ,EAAa;EAC1B,IAAII,EAAK,WAAW,GAAG;EACvB,IAAMQ,IAAeR,EAAK,WAAW,MAASH,EAAK,OAAOtB,EAAS,CAAC,GAChEkC;EAWJ,AAVID,MAAiB,KACnB,IAAYE,IAAQ,IAAI,IAAIV,EAAK,SAAS,KAE1C,IAAYQ,IAAeE,GACvBD,IAAY,IACd,IAAY7C,EAAU,IAAIoC,EAAK,SAAS,IAAI,IACnCS,KAAaT,EAAK,WAC3B,IAAYpC,EAAU,IAAI,IAAIoC,EAAK,SAAS,KAGhDI,EAAYJ,EAAKS,EAAU,CAAC,EAAE;CAChC,GAEME,UAAmB;EACvB,IAAMX,IAAOJ,EAAa;EAC1B,EAAYI,EAAK,SAAS,IAAIA,EAAK,EAAE,CAAC,KAAK,KAAA,CAAS;CACtD,GAEMY,UAAkB;EACtB,IAAMZ,IAAOJ,EAAa;EAC1B,EAAYI,EAAK,SAAS,IAAIA,EAAKA,EAAK,SAAS,EAAE,CAAC,KAAK,KAAA,CAAS;CACpE;CAYA,AATAa,QAAmB;EACjB,IAAMR,IAAK9B,EAAS;EACpB,AAAK8B,KACLb,EAAa,CAAC,CACX,MAAM,MAASK,EAAK,OAAOQ,CAAE,CAAC,EAC7B,QAAQ,eAAe,EAAE,OAAO,UAAU,CAAC;CACjD,CAAC,GAGDQ,QAAmB;EACjB,AAAKlD,EAAQ,KAAK,MAChBa,EAAoB,KAAA,CAAS,GAC7BE,EAAkB,KAAA,CAAS;CAE/B,CAAC;CAGD,IAAIoC,IAAkB,IAClBC,GAEEC,KAAgB,MAAiB;EAGrC,AAFA,KAAmBC,EAAK,YAAY,GAChCF,MAAmB,KAAA,KAAW,OAAO,aAAaA,CAAc,GACpE,IAAiB,OAAO,iBAAiB;GAEvC,AADA,IAAkB,IAClB,IAAiB,KAAA;EACnB,GAAGtD,CAAiB;EAEpB,IAAMyD,IAAQtB,EAAa,CAAC,CAAC,MAAM,MACjCC,EAAK,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,WAAWiB,CAAe,CACvD;EACA,AAAII,KAAOd,EAAYc,EAAM,EAAE;CACjC;CAsHA,OApHAC,QAAgB;EACd,AAAIJ,MAAmB,KAAA,KAAW,OAAO,aAAaA,CAAc;CACtE,CAAC,GAkHM;EACL;GAjCA;GACA,QAAQpD,EAAQ;GAChB,SAASA,EAAQ;GACjB;GACA,WAAWA,EAAQ;GACnB,OAAOK;GACP,WAAW,MAAOC,EAAWmD,CAAE;GAC/B,OAAO5B;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA,YAAY,MAAOY,EAAYC,CAAE;GACjC;GACA,YAAY,GAAI,GAAQ,MAAU3B,EAAkB;IAAE;IAAI;IAAQ;GAAM,CAAC;GACzE;GACA,WAAW,GAAQ,MAAUb,EAAK,SAASwD,GAAQC,CAAK;GACxD;EAaA;EACA;EACA;EACA,aAAa,MAAOrD,EAAWmD,CAAE;EACjC;EACA,kBAAkB,MAAOhD,EAAgBgD,CAAE;EAC3C;EACA,WAAWrC,EAAI;EACf,YAzHiB,MAAqB;GACtC,IAAMwC,IAAU5D,EAAQ,SAClB6D,IAAa1D,EAAY,MAAM;GAErC,QAAQ,EAAE,KAAV;IACE,KAAK;KAEH,AADA,EAAE,eAAe,GACjByC,EAAW,CAAC;KACZ;IACF,KAAK;KAEH,AADA,EAAE,eAAe,GACjBA,EAAW,EAAE;KACb;IACF,KAAK,cAAc;KACjB,IAAIiB,GAAY;MAEd,AADA,EAAE,eAAe,GACjBjB,EAAW,CAAC;MACZ;KACF;KACA,IAAMN,IAAQH,EAAY;KAC1B,AAAIG,GAAO,SAAS,MAClB,EAAE,eAAe,GACjBA,EAAM,YAAY,mBAAmB,CAAC;KAExC;IACF;IACA,KAAK;KACH,IAAIuB,GAAY;MAEd,AADA,EAAE,eAAe,GACjBjB,EAAW,EAAE;MACb;KACF;KACA,AAAIgB,MACF,EAAE,eAAe,GAEjB,EAAE,gBAAgB,GAClBA,EAAQ,aAAa,mBAAmB,GAAG,EAAI;KAEjD;IAEF,KAAK;KAEH,AADA,EAAE,eAAe,GACjBZ,EAAW;KACX;IACF,KAAK;KAEH,AADA,EAAE,eAAe,GACjBC,EAAU;KACV;IACF,KAAK;IACL,KAAK,KAAK;KACR,EAAE,eAAe;KACjB,IAAMX,IAAQH,EAAY;KAC1B,AAAIG,KAAS,CAACA,EAAM,SAAS,KAAGA,EAAM,SAAS;KAC/C;IACF;IACA,KAAK;KAGH,AAFA,EAAE,eAAe,GACjB,EAAE,gBAAgB,GACdsB,KAAW,CAACA,EAAQ,iBAAiB,IACvCA,EAAQ,aAAa,cAAc,GAAG,EAAI,IAE1C1D,EAAK,SAAS,cAAc,CAAC;KAE/B;IAEF,KAAK;KAGH,AADA,EAAE,eAAe,GACjBA,EAAK,SAAS,aAAa,CAAC;KAC5B;IAEF,SACE,AAAI,EAAE,IAAI,WAAW,KAAK,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,EAAE,UACvDmD,EAAa,EAAE,GAAG;GAGxB;EACF;EA6CE,mBAlBwB;GACxB,qBAAqB;IACnB,AAAKrD,EAAQ,KAAK,MAClBK,EAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,GAAK,CAAC,GACpCO,EAAS,MAAM,KAAA,KAAWoC,EAAW;GAC3C,CAAC;EACH;CAaA;AACF"}
1
+ {"version":3,"file":"useContextMenuContent.js","names":["createContextMenuPopupRuntime","options","loopFocus","root","orientation","highlightItemOnHover","popupEl","setPopupEl","createSignal","positionerEl","setPositionerEl","createItemCollection","openPopupState","setOpenPopupState","menuId","createUniqueId","createPopupPositioner","closeOpenPopup","createHighlight","typeahead","createTypeahead","enabledItems","item","setActiveId","id","onCleanup","el","orderedItems","reason","event","handleMenuKeyDown","char","e","activeId","focusFirst"],"sources":["../../../../src/components/context-menu/ContextMenuContent/useContextMenuContent.ts"],"sourcesContent":["import {\n createSignal,\n createUniqueId,\n onCleanup,\n type Accessor,\n} from \"solid-js\";\nimport type { Placement, Positioner, ReferenceElement } from \"~/lib\";\nimport type {\n ContextMenuAlign,\n ContextMenuContextValue,\n ContextMenuOpenPopupState,\n ContextMenuOrientation,\n ContextMenuPopupContextValue,\n ContextMenuSide,\n ContextMenuSubmenuContextValue,\n} from \"../context-menu.types\";\nimport { handleMenuKeyDown } from \"../context-menu.keyboard\";\nimport { createHighlight } from \"./context-menu.highlight\";\nimport { createPopupPositioner } from \"./context-menu.positioner\";\nimport { createItemCollection } from \"./context-menu.popup-items\";\nimport { createTypeahead } from \"../context-menu.typeahead\";\n\nexport interface CreateContextMenuPopupOptions {\n root: ContextMenuContextValue;\n /** 该浮层自身的打开状态(根菜单 = root.open,子菜单 = submenu.open) */\n open: Accessor<boolean>;\n /** 父级浮层:根菜单为 undefined,子菜单为触发它的那个浮层 */\n parent?: ContextMenuPopupContextValue;\n isSubmenu: boolean;\n /** 定位锚点:根菜单是鼠标坐标的虚拟元素,子菜单是子菜单触发器 */\n reference: Accessor<ReferenceElement | undefined>;\n side: Accessor<ContextMenuSide>;\n align: Accessor<ContextMenuAlign>;\n sideOffset: Accessor<number>;\n alignOffset: Accessor<number>;\n collisionPadding: Accessor<number>;\n dir: Accessor<\"ltr\" | \"rtl\" | \"auto\" | undefined>;\n /** 子菜单可以覆盖根组件的行为;不传则回退到 root 上的值 */\n loopFocus?: Accessor<boolean>;\n orientation?: Accessor<ContextMenuOrientation>;\n highlightItemOnHover?: Accessor<boolean>;\n /** 子菜单场景下提供,用于 ArrowLeft / Escape 只关闭当前子菜单 */\n submenu?: ContextMenuSubmenuContextValue;\n}\n\nexport interface ContextMenuPopupRuntime {\n popupCtx: ContextMenuPopupContextValue;\n pos: Positioner;\n /** 真正承载焦点的 popup 元素 */\n popupEl: Accessor<HTMLElement | undefined>;\n setPopupEl: (el: HTMLElement | undefined) => void;\n /** 负责定位的外层元素 */\n positionerEl: Accessor<HTMLElement | undefined>;\n setPositionerEl: (el: HTMLElement | undefined) => void;\n /** size 中间件算出的可用高度,用于 max-height 滚动 */\n availableHeight: Accessor<number | undefined>;\n placement: Accessor<Placement>;\n onKeyDown: (e: KeyboardEvent) => void;\n /** 打开后聚焦 popup 并把高亮落到第一项 */\n setupOnOpen: () => void;\n}\n\n/**\n * 一个浮层(根菜单或子菜单)的运行时:定位、菜单项注册、高亮/键盘导航、\n * 类型头(typeahead)以及开关联动都收敛在这里。`ContextMenuContent` 与\n * `ContextMenuSubContent` 共用它,只是传入的锚点与父子关系不同。\n *\n * 交互模型:焦点始终落在 popup 上,高亮项通过 `aria-activedescendant` 表达\n * (而不是把真实焦点在菜单项之间搬来搬去)。这与本项目 Select 的做法一致,\n * 既避免了焦点在 Portal / 子菜单之间的来回跳,也让\"关闭后把焦点还给触发器\"\n * 变得非常简单。\n */\nexport function createContextMenuPopupRuntime(\n options: CreateContextMenuPopupOptions,\n): ContextMenuPopupRuntime {\n const { root } = options;\n const loopFocus = () => options.loopFocus?.() ?? root.loopFocus();\n const orientation = () => options.orientation?.() ?? root.orientation();\n const highlightItemOnHover = () =>\n options.highlightItemOnHover?.() ?? root.highlightItemOnHover();\n\n const [popupEl, setPopupEl] = createSignal<HTMLElement>();\n const [positionerEl, setPositionerEl] = createSignal<HTMLElement>();\n const { registerItem, orderedItems, enabledItems } = createItemCollection();\n const [openPopupState, setOpenPopupState] =\n createSignal<ContextMenuOpenPopupState>();\n const menuId = `context-menu-popup-${createUniqueId()}`;\n\n const { pos, availableHeight, placement } = createPopupPositioner({\n reference: options.reference,\n positionerElement: positionerEl,\n side: options.side,\n align: options.align,\n dir: options.dir,\n sideOffset: options.sideOffset,\n alignOffset: options.alignOffset,\n collisionPadding: options.collisionPadding,\n });\n\n const closeOpenPopup = () => setOpenPopupState(undefined);\n\n const highlight = createHighlight({\n orderedItems,\n enabledItems,\n loopFocus,\n openPopupId: () => openPopupState()?.id,\n closeOpenPopup,\n open: options.open,\n });\n const {\n activeId,\n activeEntry,\n setActiveId,\n moveActive,\n focusFirst,\n focusLast,\n } = highlight;\n\n // --- 键盘字符导航 ---\n const typeahead = createTypeahead({\n candidates: () =>\n enabledItems().map((item) => ({ id: item.id, label: item.label() })),\n onMatch: (id) => setActiveId(id),\n });\n\n onCleanup(() => typeahead.dispose());\n\n const onKeyDown = (event: KeyboardEvent) =>\n handleMenuKeyDown(event, {\n horizontal: orientation() === \"horizontal\",\n activeEntry,\n moveActive,\n focusFirst,\n focusLast,\n typeahead: (char) => typeahead.handle(char),\n submenu: options.submenu,\n closeAll: (reason, e) => root.closeAll(reason, e),\n });\n\n const popupCtx: ContextMenuPopupContextValue = {\n root,\n parent: options.parent,\n submenu: options.submenu,\n menuId,\n isSubmenu: options.isSubmenu,\n popup: popupEl,\n setPopup: (el) => setPopupEl(el),\n items: orderedItems,\n registerItem,\n activeId,\n setActiveId,\n activeEntry,\n moveActive,\n focusFirst,\n focusLast,\n highlight: (id) => setActiveId(id),\n openPopupState,\n openPopup: (id, reason, event) => setOpenPopupState({ id, reason, event }),\n closeOpenPopup,\n closeAll: (reason, event) => root.closeAll(reason, event),\n highlightItemOnHover,\n };\n\n /** 浮层挂载完成后的收尾:聚焦 popup(键盘事件依赖它)并高亮第一项 */\n const setupOnOpen = () => {\n queueMicrotask(() => {\n if (!options.open()) return;\n popupEl()?.focus({ preventScroll: true });\n if (activeId() === undefined) focusFirst();\n });\n };\n\n return {\n popupCtx,\n pos,\n popupEl,\n setPopupEl: (el) => setPopupEl(el),\n positionerEl,\n setPositionerEl: (el) => setPositionerEl(el),\n availableHeight,\n placement,\n onKeyDown,\n setupOnOpen,\n };\n}\n"],"mappings":";;;;;;;AAwEA,SAAgBA,EACd,GACyB;CACzB,IAAM,EAAE,YAASC,GACXC,UAAkBD,EAAQ,YAAY,KAAKE,EAAK,UAAU,GAC1DC,UAAoBH,EAAQ,cAAc,KAAKE,EAAK,YAAY,GAChEE,UACJJ,EAAQ,uBAAuB,KAAKE,EAAK,qBAAqB,GAE1D,CAACG,GAASC,KAAcC,EAA0B,GAClD,CAACC,GAAcC,KAAmBF,EAA0B,GAC5D,EAAE,iBAAc,iBAAc,oBAAiBG,EAAqB,GACpE,CAACC,GAAgBC,KACrBL,EAAwC,GACpCM,IAAS,sBAAsBC,EAAe,KAE9C,EAAE,QAAK,oBAAiB,iBAAcC,EAAsB;EAChE,WAAWf,EAAQ;EACnB,mBAAmBQ;EACnB,MAAMR,EAAQ;EACd,OAAOA,EAAQ;EACf,KAAKA,EAAQ;EACb,YAAYA,EAAQ;EACpB,aAAaA,EAAQ;EACrB,kBAAkBA,EAAQ;CAC5B,CAAC,GAEKgB,UAAuBJ,EAAkB,KAAA,CAAS,GAUlD,EACJ,aACA,gBACA,gBACA,eACA,eACA,iBAdgBK,EAAgB;EAChC;EACA;EACA;EACA,mBAAmBN,EAAe,CAAC,EAAE;EACrC;EACA,MAAMX,EAAQ;CAChB,CAQI,GAGEkB,IAAYC,EAAgB;EAChC,kBACEC,EAAa,CAAC,CAAC,KAAK,OAAU;GAAE,IAAIC,EAAK;GAAI,OAAOA,EAAK,MAAM;EAAE,EAAE;EACrE,UAAU,MAAOC,EAAYC,CAAE;CACjC,CAAC;CAiDD,OA/CAC,QAAgBN,EAAU,QAAQ,CAAC,GA+C5B;EACL;GAjCA;GACA,QAAQlB,EAAQ;GAChB,SAASA,EAAQ;GACjB;GACA,WAAWA,EAAQ;GACnB,OAAOK;GACP,WAAW,MAAOC,EAAWmB,CAAE;GAC/B,OAAOC;GACP;GACA;GACA;GACA;GACA;GACA;GACA;GACA,YAAY,MAAOJ,EAAYC,CAAE;GACjC;GACA,YAAY,GAAI,GAAQ,MAAUX,EAAkB;IAAE;IAAI;IAAQ;GAAM,CAAC;GACzE;GACA,WAAW,GAAQ,MAAUV,EAAK,SAASyB,GAAQC,CAAK;GACxD;EAaA;EACA;EACA;EACA,aAAa,MAAOtB,EAAWmB,CAAE;EACjC;EACA,kBAAkB,MAAOhB,EAAgBgB,CAAE;EAC3C;EACA;EACA,YAtDiB,MACjBI,EAAkBD,GAAO;GACvB,YAAYzB,EAAY,MAAM;GAC9B;GACA;GACA;GACA;GACA,YAAY,MAASe,EAAU,OAAOY,CAAI;GAC1C,SAAS9B,EAAQ;GACjB,WAAW,GAAQ,MAAME,EAAK,SAASyB,GAAQI,CAAC;EAClD,CAAC;EA6CD,mBAlBwB;GACxB,qBAAqB;IACnB,AAAK/B,EAAQ,KAAK,MAClBK,EAAQ,CAAC,EAAE,MAAM,EAAE,eAAe,GAAK,CAAC,GACpC2B,EAAS,MAAM,KAAA,KAAWC,EAAW;GAC3C,CAAC;EACH;CAaA;AACF"}
@@ -11,7 +11,8 @@ function l(l) {
11
11
  };
12
12
  s(T);
13
13
  let E = (e, n, r) => {
14
- l.open === void 0 && p(e), l.onOpenChange?.(e, t(n, r, b()));
14
+ let i = t(n, r, b());
15
+ l.onOpenChange?.(e, i), !i.isCanceled && l.open === void 0 && p(e);
15
16
  }, D = (e, t, n = !1) => {
16
17
  let r = S();
17
18
  T(), m() && E(!1, e, t), r && d.openPopupState()?.id === r && d.closeOpenPopup(), n && r && (d.setActiveId(r), d.popup()?.focus({ preventScroll: !0 }));
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuSub.js","names":["createMemo","createSignal","onCleanup","JSX","useContextMenuContext","ContextMenuSubmenuContext","useContextMenuPopup","ContextMenuChangeEventReason","ContextMenuSubmenuContextValue","createChangeEventDetails","ContextMenuSubProps","HOVER_CLOSE_GRACE","ContextMenuSub","props","Element","root","parentPopup","internalOpen","setInternalOpen","defaultOpen","open","undefined","disabled","closeParentOnEsc","loopFocus","orientation","highlightItemOnHover","trigger","setTrigger","HTMLElement","itemId","setItemId","closeTimer","cancelClose","window","clearTimeout","setOpen","next","reason","event","Event","onOpenChange","closeSubmenu","focusTrigger","id","openPopupState","closeOpenPopup","setActiveId","popup","focus","preventScroll","openSubmenu","openPopup","scheduleClose","delay","setTimeout","Math","max","ctx","_$createComponent","Provider","value","children","_$createComponent","HOVER_CLOSE_GRACE","ContextMenuSub","root","useContextMenuContext","parentPopup","useContextMenuPopup","internalOpen","setInternalOpen","createSignal","props","open","createMemo","disabled","closeParentOnEsc","loopFocus","orientation","highlightItemOnHover","trigger","setTrigger","itemId","setItemId","closeTimer","cancelClose","setOpen","next","createChangeEventDetails","reason","event","closeSubmenu","id","focusTrigger","ctx","delay","createComponent","ContextMenuSubmenuContext"],"sources":["../../../../src/components/context-menu/ContextMenuSub/ContextMenuSub.tsx"],"sourcesContent":["import { createMemo, createSignal, onCleanup, type JSX } from \"solid-js\";\nimport { useContextMenuContext } from \"../ContextMenu/ContextMenu.context\";\nimport {\n ContextMenuSubmenuContext,\n useContextMenuPopup,\n} from \"../context-menu.context\";\nimport type {\n ContextMenuChangeEventReason,\n ContextMenuSubmenuContextValue,\n} from \"../context-menu.types\";\nimport { createChangeEventDetails } from \"../context-menu.utils\";\nimport type { ContextMenuSubProps } from \"./ContextMenuSub.types\";\n\n/** 鼠标穿越触发器与子菜单之间的间隙时的防抖下限(毫秒) */\nconst HOVER_CLOSE_GRACE = 100;\n\n/**\n * 子菜单根组件:不渲染 DOM,维护子菜单的开关状态、定位锚点(触发器)与\n * 与父浮层之间的联动(同一时间只允许一个子菜单打开)。\n */\nexport function ContextMenuSub(props: ContextMenuSubProps): JSX.Element {\n const root = useContextMenuContext(\"ContextMenuSub\");\n const parentPopup = useContextMenuPopup(\"ContextMenuSub\");\n\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 closeParentOnEsc = createMemo(() => !!props.closeParentOnEsc);\n const loopFocus = createMemo(() => props.loopFocus ?? root.loopFocus());\n const orientation = createMemo(() => props.orientation ?? root.orientation());\n const highlightItemOnHover = createMemo(\n () => props.highlightItemOnHover ?? root.highlightItemOnHover(),\n );\n\n const [trigger, setTrigger] = createSignal<HTMLElement>();\n const [itemId, setItemId] = createSignal<string>();\n\n let closeTimer: number | undefined;\n const cancelClose = () => {\n if (closeTimer !== undefined) {\n window.clearTimeout(closeTimer);\n closeTimer = undefined;\n }\n };\n onCleanup(cancelClose);\n\n const setOpen = (\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 closeSubmenu = (\n reason: ContextMenuChangeEventReason,\n event?: Event,\n focusTrigger = false,\n ) => {\n const id = itemId();\n cancelClose();\n // 先关自己再清父浮层的登记:写信号会同步刷新相关 effect,若反过来,\n // 子菜单触发器的同步 effect 会抢先以 \"list-navigation\" 的 reason 关掉它,\n // 覆盖掉这里想上报的真实关闭原因。\n if (open()) setOpen(false, reason, event);\n if (id && parentPopup.openPopupState()?.id === id) {\n parentPopup.closeOpenPopup();\n }\n\n if (focusTrigger && id) {\n // 焦点还给父浮层,并重新高亮触发器,键盘可以继续在父菜单里导航\n parentPopup.setActiveId(id);\n parentPopup.popup()?.focus({ preventScroll: true });\n }\n };\n\n const openSubmenu = (reason: ContextMenuChangeEventReason, event?: Event) => {\n if (disabled()) return;\n const id = itemId();\n if (!id) return;\n cancelClose();\n if (open()) return;\n // 先登记到父浮层,父浮层据此保证\"同时只有一个子菜单打开\"\n parentPopup.openPopup(id, reason, event);\n setOpen(true, reason, event);\n };\n\n const scheduleClose = (delay = HOVER_CLOSE_GRACE) => {\n cancelClose();\n closeTimer = window.setTimeout(\n () => {\n closeTimer = undefined;\n closeSubmenu(\"trigger-hover\");\n },\n Math.max(delay, HOVER_CLOSE_GRACE),\n );\n };\n\n const ctx: ContextMenuSubmenuContextValue = {\n root,\n parentPopup,\n open,\n setOpen,\n disabled,\n closeParentOnEsc,\n loopFocus,\n orientation,\n highlightItemOnHover,\n trigger,\n setTrigger,\n itemId,\n setItemId,\n openSubmenu,\n closeSubmenu,\n scheduleClose,\n cancelClose,\n };\n\n return (\n <ContextMenuSubmenuContext.Provider value={ctx}>\n {props.children}\n </ContextMenuSubmenuContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAcA,IAAMW,IAAoB;AAM1B,SAAgBC,EAAeC,GAAyC;CACtE,IAAME,IAAOX,EAAsB,gBAAgB,GAC7CY,IAAcV,EAAoB,gBAAgB,GAElD,CAACW,GAAcC,KAAmBjB,EACtCY,EAAMM,eAAe,EACvB,GACMC,IAAOpB,QACXa,EAAMO,SAASC,KAAAA,IAAyBJ,EAAa,IAA1BJ,EAAMO,IACnC,GACME,IAAWtB,QAAiB,CAAC,CAACa,EAAMS,QAAQ,GAC5CC,IAAmBvB,QAAiB,CAAC,CAACa,EAAMU,gBAAgB,GAC5DC,IAAYxB,QAAiBa,EAAMW,aAAaT,EAAKS,UAAU,CAAC,GAChEC,IAAczB,QAAiBa,EAAMY,eAAeV,EAAKU,YAAY,CAAC,GACtEC,IAAuB1B,QACrBa,EAAMa,wBAAwBX,EAAKW,qBAAqB,CAChE,GAEM,CAACC,GAASC,KAAc3B,EAA0B,GAClD,CAAC6B,GAAQC,KAAa9B,EAAqB,GAE7C+B,GACEC,UAAoB;EACxB,AAAID,MAAeX,KAAAA,MACjBa,OAAOC,aAAaH,CAAU,GAC9BA,IAAaX,KAAAA;CAEjB;CACAnB,EAAU+B,CAAW;CAErB,IAAMG,KACJC,GACAC,GACAC,MACG;EAEH1B,AADIA,EAAMO,SAASC,KAAAA,KAAWH,EAAgBmB,CAAI,GAClDxB,EAAM4B,eACJJ,GACA5B,EAAyB6B,GAAQC,GAAOZ,EAAQ,CAAC,CACnD;CACF,GAEMe,KACJJ,GACAC,GACAI,IAAe,OACZ;EACH,IAAMC,IAAKd,EAAO;EAUlB,AATAG,EAAY,GAIRb,EAAK,KAAGgB,EAAQ,IAAOE,GAAQC,CAAK,GACpCK,KAAM5B,EAAY6B,eAAe,CAAC,EAAED,OAAOA,KAC7C5B,EAAY8B,eAAe,GAGzBH,KAAgBC,MAElB5B,EAAY+B,YAAYH,CAAE,GAC1B5B,EAAYgC,MAAM,CAAC,EAAEC,MAAM,EAAEC,eAAe,GAAK,CAAC;CAEtD,GAwBMQ,IAAsC;EAC1C3C;EACAC;EACAI;EACAgB;EACAd;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAE;EACAC;EACAoB,cApCmBb,GAAsCC,MAAkB;GAC3E,IAAIjB,EAAS,GAAG;GAChB,IAAMsB,IAAKd,EAAO;GAClB,AAAKc,MACLX,EAAY,GACRb,GAAK,MAETJ,EAAYoC,UAAUR,GAAIN,GAAQC,CAAK,GACvCH,EAAQ,IAAME,GAAQC,CAAK;EAC7B;EA4BEG;EACAW,gBA3BqBC,IAAQ3C,MAAsB;GAEnDqB,AADAC,EAAY,GACZD,IAAaE,OAAOqB,iBACZ;IAEJb,AADAV,IAAaX,KAAAA,GACbqB,EAAa,eAAe;GAC9B,GACAc,KAAKC,IAAIH,GAAO3C,CAAiB,CACnC;EACF;EAmBEsB;CACF;CAEA,OAAA0B,EACGtD,EAA0BuD,UAAQ;EAACC,OAAOH;EAAG,IAAAI,WAAA;GAAA,OAC3CjD,EAAMiD;EAAQ;CAAA,CAAA;AAGrB"}
1
+ {"version":3,"file":"ContextMenuSub.js","names":["createMemo","createSignal","onCleanup","JSX","useContextMenuContext","ContextMenuSubmenuContext","useContextMenuPopup","ContextMenuChangeEventReason","ContextMenuSubmenuContextValue","createChangeEventDetails","ContextMenuSubProps","HOVER_CLOSE_GRACE","ContextMenuSub","props","Element","root","parentPopup","internalOpen","setInternalOpen","defaultOpen","open","undefined","disabled","closeParentOnEsc","loopFocus","orientation","highlightItemOnHover","trigger","setTrigger","HTMLElement","itemId","setItemId","closeTimer","cancelClose","window","clearTimeout","setOpen","next","reason","event","Event","details","onOpenChange","isCanceled","closeSubmenu","focusTrigger","id","openPopupState","closeOpenPopup","setActiveId","popup","focus","preventScroll","openSubmenu","openPopup","scheduleClose","delay","setTimeout","Math","max","ctx","_$createComponent","Provider","value","children","_$createComponent","HOVER_CLOSE_GRACE","ContextMenuSub","root","useContextMenuContext","parentPopup","useContextMenuPopup","internalOpen","setInternalOpen","createSignal","props","open","createMemo","disabled","closeParentOnEsc","loopFocus","orientation","highlightItemOnHover","trigger","setTrigger","itemId","setItemId","closeTimer","cancelClose","setOpen","details","createChangeEventDetails","reason","event","next","closeSubmenu","id","focusTrigger","ctx","delay","createComponent","ContextMenuSubmenuContext"],"sources":["../../../../src/components/context-menu/ContextMenuSub/ContextMenuSub.tsx"],"sourcesContent":["import { createMemo, createSignal, onCleanup, type JSX } from \"solid-js\";\nimport { useContextMenuContext } from \"../ContextMenu/ContextMenu.context\";\nimport {\n ContextMenuSubmenuContext,\n useContextMenuPopup,\n} from \"../context-menu.context\";\nimport type {\n ContextMenuChangeEventReason,\n ContextMenuSubmenuContextValue,\n} from \"../context-menu.types\";\nimport { createChangeEventDetails } from \"../context-menu.utils\";\nimport type { ContextMenuSubProps } from \"./ContextMenuSub.types\";\n\n/** 鼠标穿越触发器与子菜单之间的间隙时的防抖下限(毫秒) */\nconst HOVER_CLOSE_GRACE = 100;\n\n/**\n * 子菜单根组件:不渲染 DOM,维护子菜单的开关状态、定位锚点(触发器)与\n * 与父浮层之间的联动(同一时间只允许一个子菜单打开)。\n */\nexport function ContextMenuSub(props: ContextMenuSubProps): JSX.Element {\n const root = useContextMenuContext(\"ContextMenuSub\");\n const parentPopup = useContextMenuPopup(\"ContextMenuSub\");\n\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 closeParentOnEsc = createMemo(() => !!props.closeParentOnEsc);\n const loopFocus = createMemo(() => props.loopFocus ?? root.loopFocus());\n const orientation = createMemo(() => props.orientation ?? root.orientation());\n const highlightItemOnHover = createMemo(\n () => props.highlightItemOnHover ?? root.highlightItemOnHover(),\n );\n\n const [trigger, setTrigger] = createSignal<HTMLElement>();\n const [itemId, setItemId] = createSignal<string>();\n\n let closeTimer: number | undefined;\n const cancelClose = () => {\n if (closeTimer !== undefined) {\n window.clearTimeout(closeTimer);\n closeTimer = undefined;\n }\n };\n onCleanup(cancelClose);\n\n const setOpen = (\n next: boolean,\n reason: ContextMenuChangeEventReason,\n event?: Event,\n ) => {\n const details = createChangeEventDetails(reason, event, trigger());\n // 同根组件:先回调,cancel() 时不落状态\n props.onOpenChange?.(next, details);\n if (details.isCanceled) return;\n if (props.open === undefined) setInternalOpen(next);\n };\n\n const closeSubmenu = (\n reason: ContextMenuChangeEventReason,\n event?: Event,\n focusTrigger = false,\n ) => {\n const id = itemId();\n cancelClose();\n // 先关自己再清父浮层的登记:写信号会同步刷新相关 effect,若反过来,\n // 子菜单触发器的同步 effect 会抢先以 \"list-navigation\" 的 reason 关掉它,\n // 覆盖掉这里想上报的真实关闭原因。\n if (open()) setOpen(false, reason, event);\n if (id && parentPopup.openPopupState()?.id === id) {\n parentPopup.closeOpenPopup();\n }\n\n if (focusTrigger && id) {\n // 焦点还给父浮层,并重新高亮触发器,键盘可以继续在父菜单里导航\n parentPopup.setActiveId(id);\n parentPopup.popup()?.focus({ preventScroll: true });\n }\n };\n\n const openSubmenu = (reason: ContextMenuChangeEventReason, event?: Event) => {\n if (disabled()) return;\n const id = itemId();\n if (!id) return;\n cancelClose();\n if (open()) return;\n // 先登记到父浮层,父浮层据此保证\"同时只有一个子菜单打开\"\n parentPopup.openPopup(id, reason, event);\n setOpen(true, reason, event);\n };\n\n const scheduleClose = (delay = HOVER_CLOSE_GRACE) => {\n cancelClose();\n closeTimer = window.setTimeout(\n () => {\n closeTimer = undefined;\n closeSubmenu(\"trigger-hover\");\n },\n Math.max(delay, HOVER_CLOSE_GRACE),\n );\n };\n\n const ctx: ContextMenuSubmenuContextValue = {\n root,\n parentPopup,\n open,\n setOpen,\n disabled,\n closeParentOnEsc,\n loopFocus,\n orientation,\n highlightItemOnHover,\n trigger,\n setTrigger,\n itemId,\n setItemId,\n openSubmenu,\n closeSubmenu,\n scheduleClose,\n cancelClose,\n };\n\n return (\n <ContextMenuSubmenuContext.Provider value={ctx}>\n {props.children}\n </ContextMenuSubmenuContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAcA,IAAMW,IAAoB;AAM1B,SAAgBC,EAAeC,GAAyC;CACtE,IAAME,IAAOX,EAAsB,gBAAgB,GAC7CY,IAAcV,EAAoB,gBAAgB,GAElD,CAACW,GAAcC,KAAmBjB,EACtCY,EAAMM,eAAe,EACvB,GACMC,IAAOpB,QACXa,EAAMO,SAASC,KAAAA,IAAyBJ,EAAa,IAA1BJ,EAAMO,IACnC,GACME,IAAWtB,QAAiB,CAAC,CAACa,EAAMS,QAAQ,GAC5CC,IAAmBvB,QAAiB,CAAC,CAACa,EAAMU,gBAAgB,GAC5DC,IAAYxB,QAAiBa,EAAMW,aAAaT,EAAKS,UAAU,CAAC,GAChEC,IAAczB,QAAiBa,EAAMY,eAAeV,EAAKU,YAAY,CAAC,GACtEC,IAAuB1B,QACrBa,EAAMa,wBAAwBX,EAAKW,qBAAqB,CAChE,GAEM,CAACC,GAASC,KAAc3B,EAA0B,GAClD,CAAC6B,GAAQC,KAAa9B,EAAqB,GAE7C+B,GACEC,UAAoB;EACxB,AAAID,MAAeX,KAAAA,MACjBa,OAAOC,aAAaH,CAAU,GAC9BA,IAAaX,KAAAA;CAEjB;CACAnB,EAAU+B,CAAW;CAErB,IAAMG,KACJC,GACAC,GACAC,MACG;EACH,IAAME,IAAUhC,EAAyB6B,GAAQC,GAAOZ,EAAQ,CAAC;EAGjE,AADAd,EAAM6B,eAAeL,GAAMI,CAAO,GAC9BA,GAAQE,cACR9B,EAAMO,SAASC,KAAAA,KAAWH,EAAgBmB,CAAI;CACpD,GAEMO,KACJN,GACAC,GACAM,IAAe,OACZ;EACH,IAAMC,IAAKhB,EAAO;EAUlB,AATAG,EAAY,GAIRb,EAAK,KAAGgB,EAAQ,IAAOE,GAAQC,CAAK,GACpCO,KAAM9B,EAAY+B,eAAe,CAAC,EAAED,OAAOA,KAC7C9B,EAAYgC,eAAe,GAGzBH,KAAgBC,MAElB9B,EAAYiC,YAAYH,CAAE,GAC1B9B,EAAYkC,MAAM,CAAC,EAAEC,MAAM,EAAEC,eAAe,GAAK,CAAC;CAEtD,GAwBMQ,IAAsC;EAC1C7C;EACAC;EACAI;EACAgB;EACAd;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAE;EACAC;EACAsB,cApCmBf,GAAsCC,MAAkB;GAC3E,IAAIjB,EAAS,GAAG;GAChB,IAAMwB,IAAKhB,EAAO;GAClB,AAAKgB,MACLb,EAAY,GACRb,GAAK,MAETJ,EAAYsC,UAAUR,GAAIR,GAAQC,CAAK,GACvCH,EAAQ,IAAME,GAAQC,CAAK;EAC7B;EA4BEK;EACAW,gBA3BqBC,IAAQ7C,MAAsB;GAEnDqB,AADAC,EAAY,GACZD,IAAaE,OAAOuB,iBACZ;IAEJb,AADAZ,IAAaX,KAAAA,GACbuB,EAAa,eAAe;GAC9B,GACAc,KAAKC,IAAIH,GAAO7C,CAAiB,CACnC;EACF;EAmBEsB;CACF;CAEA,OAAA4B,EACGxD,EAA0ByD,UAAQ;EAACC,OAAOH;EAAG,IAAAI,WAAA;GAAA,OAC3CnD,EAAMmD;EAAQ;CAAA,CAAA;AAGrB"}
@@ -2,33 +2,43 @@ import { clsx as e } from "../../../utils/clsx.js";
2
2
  import { mergeRefs as t } from "../../../utils/ref.js";
3
3
  import { useContextMenuTrigger as n } from "./useContextMenuTrigger.js";
4
4
  import { Dynamic as r, createComponent as i, mergeProps as a } from "solid-js/web";
5
+ import { splitProps as o } from "solid-js";
5
6
  //#region src/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.tsx
6
- var o = (o) => {
7
- let { ctx: s, attachListeners: c } = n();
8
- return i(r, a(o, {
7
+ var s = (s) => {
8
+ let { ctx: c, attachListeners: l } = n(), [u, d] = o(s, [
9
+ "component",
10
+ "class",
11
+ "classList",
12
+ "ref",
13
+ "tabIndex"
14
+ ]);
15
+ return i(r, a(d, {
9
16
  get component() {
10
- return o.component ?? "div";
17
+ return u.component ?? "div";
11
18
  },
12
19
  ref(e) {
13
- var n = t((e) => s.setTrigger(e), o.ref, c);
20
+ var n = t((e) => c.setTrigger(e), u.ref, l);
14
21
  typeof n == "function" && n(e);
15
22
  },
16
23
  "data-slot": "context-menu-trigger",
17
24
  get "data-popup-open"() {
18
- return s.open() ? "" : void 0;
25
+ return c.open() ? "" : void 0;
19
26
  },
20
27
  get "data-pressed"() {
21
- return s.open() ? "" : void 0;
28
+ return c.open() ? "" : void 0;
22
29
  },
23
30
  get tabIndex() {
24
- return o.tabIndex ?? 0;
31
+ return u.tabIndex ?? 0;
25
32
  },
26
33
  get class() {
27
- return e("select-none", o.class);
34
+ return e("select-none", u.class);
35
+ },
36
+ get classList() {
37
+ return u.classList;
28
38
  }
29
39
  }));
30
40
  };
31
41
  //#endregion
32
- export { o as ContextMenuTrigger };
42
+ export { s as ContextMenuTrigger };
33
43
 
34
44
  //# sourceMappingURL=ContextMenuTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextMenuTrigger.js","names":["ValidComponent","Dynamic","clsx","mergeRefs","useContextMenuTrigger","ContextMenuTriggerProps","ContextMenuTrigger","props","T","ctx","attachListeners","_$createComponent","_$mergeProps","component","ref","r$","_ref$","el","setTrigger","HTMLElement","data-popup-open","open","undefined","data-pressed","tabIndex","class","_$createComponent","_$mergeProps","ContextMenuTrigger","useContextMenuTrigger","createComponent","Dynamic","mergeProps","props","_ref$","mergeRefs","ctx","el","attachListeners","r$","\"class\"","clsx"],"sources":["../../../../src/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.tsx"],"sourcesContent":["import type { ValidComponent } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { clsx, mergeRefs } from \"~/utils\";\nimport { useContextMenuTrigger } from \"./useContextMenuTrigger\";\nimport type { ContextMenuTriggerProps } from \"./ContextMenuTrigger.types\";\n\n/**\n * ContextMenu 的触发区域,默认渲染 `<div>`,支持通过 `component` 多态渲染成\n * 任意标签或组件(与 TooltipTrigger 一致)。通过以下方式打开菜单:\n * - 右键(contextmenu 事件),锚定到鼠标坐标\n * - 触摸/手写笔长按 500ms,锚定到按下坐标\n * - 键盘 Shift+F10 或菜单键,锚定到触发器中心\n *\n * 事件逻辑在 `useContextMenuTrigger` 里用 `addEventListener` 绑定,因此调用方\n * 自己传入的 `onClick` / `onContextMenu` 不会被覆盖。\n */\nexport const ContextMenuTrigger = <T extends ValidComponent = \"div\">(\n props: ContextMenuTriggerProps<T>,\n) => {\n const { ctx, attachListeners } = useContextMenuTrigger();\n\n return (\n <Dynamic\n {...props}\n component={(props.component as ValidComponent) ?? \"div\"}\n ref={mergeRefs(\n (el) => ctx.setTrigger(el as HTMLElement),\n props.ref,\n attachListeners,\n )}\n data-slot=\"context-menu-trigger\"\n data-popup-open={ctx.open() ? \"\" : undefined}\n data-pressed={ctx.open() ? \"\" : undefined}\n tabIndex={props.tabIndex ?? 0}\n class={clsx(\"select-none\", props.class)}\n />\n );\n};\n"],"mappings":";;;;;AAgBA,IAAaM,KACXC,MACG;CACH,IAAM,EAAEE,QAAKC,uBAAoBN,EAAsB;CAEvD,OAAAO,EACGV,GAAOW,EACFL,GAAK;EAAA,IACTM,YAAS;GAAA,OAAGN,EAAMM,aAAgC;EAAK;EAAAC,IAAAC,GAAA;GAAA,IAAAC,IAClDb,GACFc,MAAOR,EAAIS,WAAWD,CAAiB,GACxCV,EAAMO,KACNJ,CACF;GAAC,OAAAM,KAAA,cAAAA,EAAAD,CAAA;EAAA;EAAA,aAAA;EAAA,IAAA,oBAAA;GAAA,OAEgBN,EAAIY,KAAK,IAAI,KAAKC,KAAAA;EAAS;EAAA,IAAA,iBAAA;GAAA,OAC9Bb,EAAIY,KAAK,IAAI,KAAKC,KAAAA;EAAS;EAAA,IACzCE,WAAQ;GAAA,OAAEjB,EAAMiB,YAAY;EAAC;EAAA,IAAAgB,QAAA;GAAA,OACtBtC,EAAK,eAAeK,EAAMkB,KAAK;EAAC;CAAA,CAAA,CAAA;AAG7C"}
1
+ {"version":3,"file":"ContextMenuTrigger.js","names":["splitProps","ValidComponent","Dynamic","clsx","mergeRefs","useContextMenuTrigger","ContextMenuTriggerProps","ContextMenuTrigger","props","T","ctx","attachListeners","local","others","_$createComponent","_$mergeProps","component","ref","r$","_ref$","el","setTrigger","HTMLElement","Element","data-popup-open","open","undefined","data-pressed","tabIndex","class","classList","_$createComponent","_$mergeProps","ContextMenuTrigger","useContextMenuTrigger","local","others","splitProps","props","createComponent","Dynamic","mergeProps","_ref$","mergeRefs","ctx","el","attachListeners","r$","\"class\"","clsx"],"sources":["../../../../src/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.tsx"],"sourcesContent":["import { splitProps, type ValidComponent } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\nimport { clsx, mergeRefs } from \"~/utils\";\nimport { useContextMenuTrigger } from \"./useContextMenuTrigger\";\nimport type { ContextMenuTriggerProps } from \"./ContextMenuTrigger.types\";\n\n/**\n * ContextMenu 的触发区域,默认渲染 `<div>`,支持通过 `component` 多态渲染成\n * 任意标签或组件(与 TooltipTrigger 一致)。通过以下方式打开菜单:\n * - 右键(contextmenu 事件),锚定到鼠标坐标\n * - 触摸/手写笔长按 500ms,锚定到按下坐标\n * - 键盘 Shift+F10 或菜单键,锚定到触发器中心\n *\n * 事件逻辑在 `useContextMenuTrigger` 里用 `addEventListener` 绑定,因此调用方\n * 自己传入的 `onClick` / `onContextMenu` 不会被覆盖。\n */\nexport const ContextMenuTrigger = <T extends ValidComponent = \"div\">(\n props: ContextMenuTriggerProps<T>,\n) => {\n const { ctx, attachListeners } = useContextMenuTrigger();\n\n // class / classList 必须显式摘出来并一起传给 Dynamic:\n // `{...props}` 之后再写显式 `class=` 会用 node.className 覆盖掉 classList\n const [local, others] = splitProps(props as ContextMenuTriggerProps, [\n \"component\",\n \"class\",\n \"classList\",\n \"ref\",\n \"tabIndex\",\n ]);\n\n return (\n <Dynamic\n {...others}\n component={(local.component as ValidComponent) ?? \"div\"}\n ref={mergeRefs(\n (el) => ctx.setTrigger(el as HTMLElement),\n local.ref as Element | ((el: Element) => void) | undefined,\n attachListeners,\n )}\n data-slot=\"context-menu-trigger\"\n data-popup-open={ctx.open() ? \"\" : undefined}\n data-pressed={ctx.open() ? \"\" : undefined}\n tabIndex={local.tabIndex ?? 0}\n class={clsx(\"select-none\", local.class)}\n classList={local.classList}\n />\n );\n};\n"],"mappings":";;;;;;AAgBA,IAAaO,KACXC,MACG;CACH,IAAM,EAAEE,QAAKC,uBAAoBN,EAAsB,GAIjD,CAACO,GAAOC,KAAUb,EAAWQ,GAAkC;EACnE;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,OAAAM,EACGZ,GAAOa,EACFF,GAAM;EAAA,IACVG,YAAS;GAAA,OAAGJ,EAAMI,aAAgC;EAAK;EAAAC,IAAAC,GAAA;GAAA,IAAAC,IAClDf,GACFgB,MAAOV,EAAIW,WAAWD,CAAiB,GACxCR,EAAMK,KACNN,CACF;GAAC,OAAAQ,KAAA,cAAAA,EAAAD,CAAA;EAAA;EAAA,aAAA;EAAA,IAAA,oBAAA;GAAA,OAEgBR,EAAIe,KAAK,IAAI,KAAKC,KAAAA;EAAS;EAAA,IAAA,iBAAA;GAAA,OAC9BhB,EAAIe,KAAK,IAAI,KAAKC,KAAAA;EAAS;EAAA,IACzCE,WAAQ;GAAA,OAAEhB,EAAMgB,YAAY;EAAC;EAAA,IAAAoB,QAAA;GAAA,OACtB7C,EAAK,eAAeS,EAAMiB,KAAK;EAAC;EAAA,IACvCC,YAAS;GAAA,OAAElB,EAAMkB;EAAS;CAAA,CAAA,CAAA;AAGhC"}
@@ -0,0 +1,24 @@
1
+ export interface CreateLongPressOptions {
2
+ /** 按住多久算长按(毫秒) */
3
+ delayMs: number;
4
+ /** 允许的手指抖动距离(像素) */
5
+ tolerancePx: number;
6
+ /** 计时到点且未抖出容差时触发 */
7
+ onTrigger: () => void;
8
+ }
9
+ export interface LongPressGesture {
10
+ /** 手指按下:记录起点并开始计时(重复调用会重置计时) */
11
+ start: (x: number, y: number) => void;
12
+ /** 手指移动:抖出容差即取消 */
13
+ move: (x: number, y: number) => void;
14
+ /** 抬起 / 取消 / 卸载:停止计时 */
15
+ cancel: () => void;
16
+ }
17
+ /**
18
+ * 长按手势。
19
+ *
20
+ * 单一职责:一个"按住 delayMs 且抖动不超过 tolerancePx 才触发"的计时器状态机。
21
+ * 不碰 DOM、不读事件——起点坐标由调用方传入,因此可以用假定时器精确断言
22
+ * 计时、抖动取消与重复起点接管。
23
+ */
24
+ export declare function createLongPress(options: CreateLongPressOptions): LongPressGesture;
@@ -0,0 +1,26 @@
1
+ //#region src/components/context-menu/ContextMenuTrigger/context-menu.long-press.ts
2
+ function e(e) {
3
+ let t, n, r = () => {
4
+ t !== void 0 && (window.clearTimeout(t), t = void 0);
5
+ };
6
+ return {
7
+ start(i, a) {
8
+ n = {
9
+ x: i,
10
+ y: a
11
+ }, r(), t = window.setTimeout(() => {
12
+ t = void 0, e.onTrigger();
13
+ }, e.delayMs);
14
+ },
15
+ move(i, a) {
16
+ n && t !== void 0 && Math.hypot(i - n.x, a - n.y) > e.tolerancePx && r();
17
+ },
18
+ cancel() {
19
+ n = void 0, r();
20
+ }
21
+ };
22
+ }
23
+ //#endregion
24
+ export { e as createLongPress };
25
+
26
+ //# sourceMappingURL=context-menu.long-press.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.long-press.js","names":["createLongPress","timer","origin","clear","options","x","y"],"sources":["../../../../src/components/context-menu/ContextMenuTrigger/context-menu.long-press.ts"],"sourcesContent":["export interface CreateLongPressOptions {\n /** 按住多久算长按(毫秒) */\n delayMs: number;\n /** 允许的手指抖动距离(像素) */\n tolerancePx: number;\n /** 计时到点且未抖出容差时触发 */\n onTrigger: () => void;\n}\n\nexport interface LongPressGesture {\n /** 手指按下:记录起点并开始计时(重复调用会重置计时) */\n start: (x: number, y: number) => void;\n /** 手指移动:抖出容差即取消 */\n move: (x: number, y: number) => void;\n /** 抬起 / 取消 / 卸载:停止计时 */\n cancel: () => void;\n}\n\n/**\n * 长按手势。\n *\n * 单一职责:一个\"按住 delayMs 且抖动不超过 tolerancePx 才触发\"的计时器状态机。\n * 不碰 DOM、不读事件——起点坐标由调用方传入,因此可以用假定时器精确断言\n * 计时、抖动取消与重复起点接管。\n */\nexport function createLongPress(\n options: CreateLongPressOptions,\n): LongPressGesture {\n let timer: number | undefined;\n let origin: { x: number; y: number } | undefined;\n\n const clear = () => {\n if (timer !== undefined) {\n window.clearTimeout(timer);\n timer = undefined;\n }\n };\n\n return {\n start(x, y) {\n origin = { x, y };\n clear();\n timer = window.setTimeout(() => {\n timer = undefined;\n options.onTrigger();\n }, options.delayMs);\n },\n move(x, y) {\n if (!origin || timer === undefined) return;\n if (Math.hypot(x - origin.x, y - origin.y) > options.tolerancePx) clear();\n },\n cancel() {\n origin = undefined;\n clear();\n },\n };\n}\n"],"mappings":";AAyBA,SAAgBA,EACd,GACkB;CAClB,IAAIC,GACAC,GAEEC,UAAc;EAClB,AAAIF,MAAU,KAAA,MACZ,OAAO,aAAaA,CAAK,GACzB,IAAQ,KAAA;CAEZ;CAEA,OAAO;EACL,MAAM,GAAG,GAAG;GAGV,AAFA,IAAS;IAAE;IAAG;GAAE,GAChBE,EAAM,GACN,IAAQ,OAAO,iBAAiB;IAE9B,AADA,IAAQ,KAAA,GACRC,EAAQ,UAAU;GACpB,GAAGA,EAAQ,OAAO;EACpB;EACA,KAAK,GAAG,GAAG;GACT,AAAKF,KAAUD,MAAU,KAAA,KACrB,KAAK,MAAMI,IAAIH,EAAO,GAAGI,IAAIJ,EAAO,CAAC,IAAIE,EAAQ,eAAaD,EAAM;EAC1E;EACA,SAAS;GAEP,AADA,IAAS,KAAA,GACTA,EAAM;EACR;CACF;AACF"}
@@ -0,0 +1,35 @@
1
+ /** 触摸长按唤起菜单的时间阈值(毫秒),与 Base UI 保持一致 */
2
+ export declare const LONG_PRESS_DELAY = 500;
3
+ /** 长按期间允许的手指抖动距离(像素),超过即取消 */
4
+ export declare const LONG_PRESS_MOVE_TOLERANCE = 10;
5
+ /**
6
+ * 触发器"唤起菜单"的判定与锚点计算。
7
+ *
8
+ * 单一职责:只回答"这次事件该不该唤起""锚点坐标取哪里",
9
+ * 不注册事件、不持有定时器状态。
10
+ */
11
+ /**
12
+ * 键盘唤起:菜单键(ContextMenu)或 Shift+F10。
13
+ * 两者都是无障碍规范里"打开上下文菜单"的标准按键。
14
+ */
15
+ export declare function isContextMenuKey(event: KeyboardEvent): boolean;
16
+ /**
17
+ * 指针长按:只处理触摸/手写笔。
18
+ * 鼠标右键由原生 `contextmenu` 事件负责,再处理一次会重复打开。
19
+ */
20
+ export declare function isLongPressPointer(event: PointerEvent): boolean;
21
+ /** 手指是否已抖出容差(超过容差即取消长按,让用户能正常滚动) */
22
+ export declare function isBeyondTolerance(origin: {
23
+ x: number;
24
+ y: number;
25
+ }, x: number, y: number, tolerance?: number): boolean;
26
+ /** 键盘唤起时的锚点:触发器矩形的中心(菜单贴着触发器弹出) */
27
+ export declare function menuAnchorFromRect(rect: {
28
+ left: number;
29
+ top: number;
30
+ width: number;
31
+ height: number;
32
+ }): {
33
+ x: number;
34
+ y: number;
35
+ };
@@ -0,0 +1,17 @@
1
+ //#region src/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.ts
2
+ function e(e) {
3
+ return e.key === "ContextMenu" || e.shiftKey && e.key === "F10";
4
+ }
5
+ function t(e) {
6
+ return e.pointerType !== "mouse";
7
+ }
8
+ function n(e) {
9
+ return {
10
+ x: e.left + e.width / 2,
11
+ y: e.top + e.height / 2
12
+ };
13
+ }
14
+ //#endregion
15
+ export { e as isContextMenuKey, t as isLongPressPointer, n as menuAnchorFromRect };
16
+
17
+ //# sourceMappingURL=context-menu.trigger.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.trigger.utils.js","names":["isContextMenuKey","event","isLongPressPointer","menuAnchorFromRect","rect"],"sources":["../../../../src/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.ts"],"sourcesContent":["/** 触摸长按唤起菜单的时间阈值(毫秒),与 Base UI 保持一致 */\nexport const LONG_PRESS_DELAY = 500;\n/** 长按期间允许的手指抖动距离(像素),超过即取消 */\nexport const LONG_PRESS_MOVE_TOLERANCE = 10;\n\n/**\n * 触发器\"唤起菜单\"的判定与锚点计算。\n *\n * 单一职责:只回答\"这次事件该不该唤起\"\"锚点坐标取哪里\",\n * 不注册事件、不持有定时器状态。\n */\n\n/**\n * 键盘唤起:菜单键(ContextMenu)或 Shift+F10。\n * 两者都是无障碍规范里\"打开上下文菜单\"的标准按键。\n */\nexport function isContextMenuKey(event: KeyboardEvent): boolean {\n return event.key === \"ContextMenu\" || (event.shiftKey && event.key === \"F10\");\n}\n\n/**\n * 指针长按:只处理触摸/手写笔。\n * 鼠标右键由原生 `contextmenu` 事件负责,再处理一次会重复打开。\n */\nexport function isLongPressPointer(event: PointerEvent): boolean {\n return event.pointerType !== \"mouse\";\n}\n\n/** 手指是否已抖出容差(超过容差即取消长按,让用户能正常滚动) */\nexport function isBeyondTolerance(\n origin: { x: number; y: number },\n x: number,\n y: number,\n tolerance: number = LONG_PRESS_MOVE_TOLERANCE,\n): boolean {\n return Math.hypot(x - origin.x, y - origin.y) > tolerance;\n}\n\n/** 键盘唤起时的锚点:触发器矩形的中心(菜单贴着触发器弹出) */\nexport function menuAnchorFromRect(rect: {\n left: number;\n top: number;\n width: number;\n height: number;\n}): { x: number; y: number } {\n return { x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 };\n}\n"],"mappings":";AAgBA,SAAgBA,EAAiB,GAA+B;CAC9D,OAAOC,EAAM,QAAQ,iBAAkBA,EAAM,YAAYA,EAAM,QAAQ;AACzE;AAMA,SAAgBC,EAAmB,GAA8B;CAC/D,OAAOD,EAAM,gBAAgB;AAC/B;AAaA,SAAgBE,EAAmB,GAKN;CAC3B,OAAO;EAAE,GAAGC,EAAK,OAAOA,EAAK,QAAQ;EAAG,GAAGA,EAAK,MAAMA,EAAK,SAAS;CAAE;AACxE"}
@@ -2,22 +2,20 @@ import { useContextMenuContext } from '../ContextMenu/ContextMenu.context';
2
2
  export interface UseContextMenuTriggerResult {
3
3
  ctx: ReturnType<typeof useContextMenuContext>;
4
4
  /**
5
- * 把右键 / 长按 / 键盘唤起菜单的原生事件绑定到真正的 DOM 元素上(通过 ref 调用)。
6
- * 用 addEventListener 而不是 JSX 的 onXxx prop,是为了不占用这些 prop 名——
7
- * 调用方可以在触发器上自由传自己的 `onClick` / `onContextMenu`,两者互不覆盖。
5
+ * 把右键 / 长按 / 键盘唤起菜单的原生事件绑定到真正的 DOM 元素上(通过 ref 调用)。
6
+ * 用 addEventListener 而不是 JSX 的 onXxx prop,是为了不占用这些 prop 名——
7
+ * 调用方可以在触发器上自由传自己的 `onClick` / `onContextMenu`,两者互不覆盖。
8
8
  * 这与 TooltipTrigger 是同一套约定。
9
9
  */
10
10
  attachListeners: (el: Element) => void;
11
11
  }
12
12
  /**
13
- * 封装 ContextMenuTrigger 需要绑定的所有事件逻辑:
14
- * - contextmenu(右键):锚定到鼠标坐标
15
- * - pointerdown(触摸/手写笔)后持续 500ms 视为长按,锚定到按下坐标;抖动超过
16
- * 阈值、抬起或取消都会撤销
17
- * - keydown(Shift+F10 / 菜单键):锚定到触发器中心,满足键盘可达性
13
+ * ContextMenuTrigger 的事件接线:
14
+ * - contextmenu(右键):锚定到鼠标坐标;
15
+ * - pointerdown(触摸/手写笔)长按 500ms:锚定到按下坐标(手势本身在
16
+ * `context-menu.long-press`);
17
+ * - keydown(Shift+F10 / 菜单键):锚定到触发器中心,满足键盘可达性。
18
18
  *
19
- * 事件直接绑在 `el` 上,不依赖具体标签类型,因此触发器可以多态渲染成
20
- * div / button / 任意组件。回调参数统一声明为 `Event` 再在内部收窄,
21
- * 这是为了兼容 `Element.addEventListener` 的重载(与 TooltipTrigger 一致)。
19
+ * 判定与锚点计算都在 `context-menu.trigger.utils`,本 hook 只做绑定与清理。
22
20
  */
23
21
  export declare function useContextMenuTrigger(): UseContextMenuTriggerResult;