@neut/ui 0.0.9 → 0.0.11

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 (620) hide show
  1. package/dist/components/accordion/Accordion/Accordion.context.js.map +1 -1
  2. package/dist/components/accordion/Accordion/Accordion.js +21 -20
  3. package/dist/components/accordion/Accordion/Accordion.js.map +1 -1
  4. package/dist/components/accordion/Accordion/Accordion.styles.d.ts +2 -0
  5. package/dist/components/accordion/Accordion/Accordion.styles.js +7 -0
  6. package/dist/components/accordion/Accordion/Accordion.styles.js.map +1 -0
  7. package/dist/components/accordion/Accordion/useAccordion.js +1 -3
  8. package/dist/components/accordion/Accordion/useAccordion.js.map +1 -1
  9. package/dist/components/accordion/AccordionContent/AccordionContent.js +25 -21
  10. package/dist/components/accordion/AccordionContent/AccordionContent.js.map +1 -1
  11. package/dist/components/accordion/AccordionContent/AccordionContent.styles.d.ts +5 -0
  12. package/dist/components/accordion/AccordionContent/AccordionContent.styles.js +9 -0
  13. package/dist/components/accordion/AccordionContent/AccordionContent.styles.js.map +1 -0
  14. package/dist/components/accordion/AccordionContent/index.d.ts +1 -0
  15. package/dist/components/accordion/AccordionItem/AccordionItem.context.js.map +1 -1
  16. package/dist/components/accordion/AccordionItem/AccordionItem.js +19 -18
  17. package/dist/components/accordion/AccordionItem/AccordionItem.js.map +1 -1
  18. package/dist/components/accordion/AccordionItem/AccordionItem.styles.d.ts +2 -0
  19. package/dist/components/accordion/AccordionItem/AccordionItem.styles.js +6 -0
  20. package/dist/components/accordion/AccordionItem/AccordionItem.styles.js.map +1 -0
  21. package/dist/components/accordion/AccordionItem/index.d.ts +1 -0
  22. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js +26 -18
  23. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js.map +1 -1
  24. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.styles.d.ts +6 -0
  25. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.styles.js +10 -0
  26. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.styles.js.map +1 -0
  27. package/dist/components/accordion/AccordionTrigger/index.d.ts +1 -0
  28. package/dist/components/accordion/index.d.ts +4 -4
  29. package/dist/components/accordion/index.js +6 -5
  30. package/dist/components/alert/Alert/Alert.js +1 -1
  31. package/dist/components/alert/Alert/Alert.js.map +1 -1
  32. package/dist/components/alert/Alert/Alert.styles.js +3 -3
  33. package/dist/components/alert/Alert/Alert.styles.js.map +1 -1
  34. package/dist/components/alert/AlertAction/AlertAction.js +2 -2
  35. package/dist/components/alert/AlertAction/AlertAction.js.map +1 -1
  36. package/dist/components/alert/AlertAction/AlertAction.styles.d.ts +2 -1
  37. package/dist/components/alert/AlertAction/AlertAction.styles.js +1 -1
  38. package/dist/components/alert/AlertAction/AlertAction.styles.js.map +1 -1
  39. package/dist/components/alert/AlertDescription/AlertDescription.js +2 -2
  40. package/dist/components/alert/AlertDescription/AlertDescription.js.map +1 -1
  41. package/dist/components/alert/AlertDescription/AlertDescription.styles.d.ts +2 -1
  42. package/dist/components/alert/AlertDescription/AlertDescription.styles.js +2 -2
  43. package/dist/components/alert/AlertDescription/AlertDescription.styles.js.map +1 -1
  44. package/dist/components/alert/AlertTitle/AlertTitle.js +2 -2
  45. package/dist/components/alert/AlertTitle/AlertTitle.js.map +1 -1
  46. package/dist/components/alert/AlertTitle/AlertTitle.styles.d.ts +2 -1
  47. package/dist/components/alert/AlertTitle/AlertTitle.styles.js +2 -2
  48. package/dist/components/alert/AlertTitle/AlertTitle.styles.js.map +1 -1
  49. package/dist/components/alert-dialog/AlertDialog/AlertDialog.context.js.map +1 -1
  50. package/dist/components/alert-dialog/AlertDialog/AlertDialog.js +1 -1
  51. package/dist/components/alert-dialog/AlertDialog/AlertDialog.js.map +1 -1
  52. package/dist/components/alert-dialog/AlertDialogAction/AlertDialogAction.js.map +1 -1
  53. package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js +3 -3
  54. package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js.map +1 -1
  55. package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.context.js.map +1 -1
  56. package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.js +11 -11
  57. package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.js.map +1 -1
  58. package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.d.ts +2 -1
  59. package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.js +2 -2
  60. package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.js.map +1 -1
  61. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js +2 -2
  62. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js.map +1 -1
  63. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.styles.d.ts +2 -1
  64. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.styles.js +2 -2
  65. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.styles.js.map +1 -1
  66. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js +2 -2
  67. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js.map +1 -1
  68. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.styles.d.ts +2 -1
  69. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.styles.js +2 -2
  70. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.styles.js.map +1 -1
  71. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js +2 -2
  72. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js.map +1 -1
  73. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.styles.d.ts +2 -1
  74. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.styles.js +2 -2
  75. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.styles.js.map +1 -1
  76. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js +2 -2
  77. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js.map +1 -1
  78. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.styles.d.ts +2 -1
  79. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.styles.js +2 -2
  80. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.styles.js.map +1 -1
  81. package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.js +2 -2
  82. package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.js.map +1 -1
  83. package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.d.ts +2 -1
  84. package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.js +2 -2
  85. package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.js.map +1 -1
  86. package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.js +1 -1
  87. package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.js.map +1 -1
  88. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js +2 -2
  89. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js.map +1 -1
  90. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.styles.d.ts +2 -1
  91. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.styles.js +2 -2
  92. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.styles.js.map +1 -1
  93. package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.js.map +1 -1
  94. package/dist/components/alert-dialog/AlertDialogTrigger/useAlertDialogTrigger.js.map +1 -1
  95. package/dist/components/aspect-ratio/AspectRatio.js +1 -1
  96. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  97. package/dist/components/aspect-ratio/AspectRatio.styles.js.map +1 -1
  98. package/dist/components/avatar/Avatar/Avatar.context.js.map +1 -1
  99. package/dist/components/avatar/Avatar/Avatar.js +9 -9
  100. package/dist/components/avatar/Avatar/Avatar.js.map +1 -1
  101. package/dist/components/avatar/AvatarBadge/AvatarBadge.js +1 -1
  102. package/dist/components/avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  103. package/dist/components/avatar/AvatarFallback/AvatarFallback.js +1 -1
  104. package/dist/components/avatar/AvatarFallback/AvatarFallback.js.map +1 -1
  105. package/dist/components/avatar/AvatarGroup/AvatarGroup.js +1 -1
  106. package/dist/components/avatar/AvatarGroup/AvatarGroup.js.map +1 -1
  107. package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js +1 -1
  108. package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js.map +1 -1
  109. package/dist/components/avatar/AvatarImage/AvatarImage.js +1 -1
  110. package/dist/components/avatar/AvatarImage/AvatarImage.js.map +1 -1
  111. package/dist/components/badge/Badge.js +1 -1
  112. package/dist/components/badge/Badge.js.map +1 -1
  113. package/dist/components/badge/Badge.styles.js +9 -10
  114. package/dist/components/badge/Badge.styles.js.map +1 -1
  115. package/dist/components/breadcrumb/Breadcrumb/Breadcrumb.js +1 -1
  116. package/dist/components/breadcrumb/Breadcrumb/Breadcrumb.js.map +1 -1
  117. package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js +1 -1
  118. package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js.map +1 -1
  119. package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js +1 -1
  120. package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
  121. package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js +6 -6
  122. package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js.map +1 -1
  123. package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js +1 -1
  124. package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js.map +1 -1
  125. package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js +1 -1
  126. package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js.map +1 -1
  127. package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js +1 -1
  128. package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js.map +1 -1
  129. package/dist/components/button/Button.js +34 -31
  130. package/dist/components/button/Button.js.map +1 -1
  131. package/dist/components/button/Button.styles.d.ts +1 -1
  132. package/dist/components/button/Button.styles.js +10 -10
  133. package/dist/components/button/Button.styles.js.map +1 -1
  134. package/dist/components/button/Button.types.d.ts +4 -30
  135. package/dist/components/button-group/ButtonGroup/ButtonGroup.js +1 -1
  136. package/dist/components/button-group/ButtonGroup/ButtonGroup.js.map +1 -1
  137. package/dist/components/button-group/ButtonGroup/ButtonGroup.styles.js.map +1 -1
  138. package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.js +1 -1
  139. package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.js.map +1 -1
  140. package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.styles.d.ts +2 -1
  141. package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.styles.js +2 -3
  142. package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.styles.js.map +1 -1
  143. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js +2 -2
  144. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js.map +1 -1
  145. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.styles.d.ts +2 -1
  146. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.styles.js +2 -3
  147. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.styles.js.map +1 -1
  148. package/dist/components/card/Card/Card.js +6 -6
  149. package/dist/components/card/Card/Card.js.map +1 -1
  150. package/dist/components/card/Card/Card.styles.d.ts +2 -1
  151. package/dist/components/card/Card/Card.styles.js +2 -2
  152. package/dist/components/card/Card/Card.styles.js.map +1 -1
  153. package/dist/components/card/CardAction/CardAction.js +2 -2
  154. package/dist/components/card/CardAction/CardAction.js.map +1 -1
  155. package/dist/components/card/CardAction/CardAction.styles.d.ts +2 -1
  156. package/dist/components/card/CardAction/CardAction.styles.js +1 -1
  157. package/dist/components/card/CardAction/CardAction.styles.js.map +1 -1
  158. package/dist/components/card/CardContent/CardContent.js +2 -2
  159. package/dist/components/card/CardContent/CardContent.js.map +1 -1
  160. package/dist/components/card/CardContent/CardContent.styles.d.ts +2 -1
  161. package/dist/components/card/CardContent/CardContent.styles.js +2 -2
  162. package/dist/components/card/CardContent/CardContent.styles.js.map +1 -1
  163. package/dist/components/card/CardDescription/CardDescription.js +2 -2
  164. package/dist/components/card/CardDescription/CardDescription.js.map +1 -1
  165. package/dist/components/card/CardDescription/CardDescription.styles.d.ts +2 -1
  166. package/dist/components/card/CardDescription/CardDescription.styles.js +2 -2
  167. package/dist/components/card/CardDescription/CardDescription.styles.js.map +1 -1
  168. package/dist/components/card/CardFooter/CardFooter.js +2 -2
  169. package/dist/components/card/CardFooter/CardFooter.js.map +1 -1
  170. package/dist/components/card/CardFooter/CardFooter.styles.d.ts +2 -1
  171. package/dist/components/card/CardFooter/CardFooter.styles.js +2 -2
  172. package/dist/components/card/CardFooter/CardFooter.styles.js.map +1 -1
  173. package/dist/components/card/CardHeader/CardHeader.js +2 -2
  174. package/dist/components/card/CardHeader/CardHeader.js.map +1 -1
  175. package/dist/components/card/CardHeader/CardHeader.styles.d.ts +2 -1
  176. package/dist/components/card/CardHeader/CardHeader.styles.js +2 -2
  177. package/dist/components/card/CardHeader/CardHeader.styles.js.map +1 -1
  178. package/dist/components/card/CardTitle/CardTitle.js +2 -2
  179. package/dist/components/card/CardTitle/CardTitle.js.map +1 -1
  180. package/dist/components/card/CardTitle/CardTitle.styles.d.ts +2 -1
  181. package/dist/components/card/CardTitle/CardTitle.styles.js +1 -1
  182. package/dist/components/card/CardTitle/CardTitle.styles.js.map +1 -1
  183. package/dist/components/carousel/Carousel/Carousel.context.js.map +1 -1
  184. package/dist/components/carousel/Carousel/Carousel.js +14 -13
  185. package/dist/components/carousel/Carousel/Carousel.js.map +1 -1
  186. package/dist/components/carousel/Carousel/Carousel.styles.d.ts +2 -0
  187. package/dist/components/carousel/Carousel/Carousel.styles.js +6 -0
  188. package/dist/components/carousel/Carousel/Carousel.styles.js.map +1 -0
  189. package/dist/components/carousel/Carousel/useAutoPlay.js.map +1 -1
  190. package/dist/components/carousel/Carousel/useCarousel.js.map +1 -1
  191. package/dist/components/carousel/Carousel/useKeyboardNavigation.js.map +1 -1
  192. package/dist/components/carousel/CarouselContent/CarouselContent.js +1 -1
  193. package/dist/components/carousel/CarouselContent/CarouselContent.js.map +1 -1
  194. package/dist/components/carousel/CarouselContent/useItemSizeMeasure.js.map +1 -1
  195. package/dist/components/carousel/CarouselDots/CarouselDots.js +1 -1
  196. package/dist/components/carousel/CarouselDots/CarouselDots.js.map +1 -1
  197. package/dist/components/carousel/CarouselItem/CarouselItem.js +4 -3
  198. package/dist/components/carousel/CarouselItem/CarouselItem.js.map +1 -1
  199. package/dist/components/carousel/CarouselNext/CarouselNext.js +4 -4
  200. package/dist/components/carousel/CarouselNext/CarouselNext.js.map +1 -1
  201. package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js +4 -4
  202. package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js.map +1 -1
  203. package/dist/components/checkbox/Checkbox/Checkbox.js +18 -18
  204. package/dist/components/checkbox/Checkbox/Checkbox.js.map +1 -1
  205. package/dist/components/checkbox/Checkbox/Checkbox.styles.js.map +1 -1
  206. package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.js +1 -1
  207. package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.js.map +1 -1
  208. package/dist/components/collapsible/Collapsible/Collapsible.context.js.map +1 -1
  209. package/dist/components/collapsible/Collapsible/Collapsible.js +1 -1
  210. package/dist/components/collapsible/Collapsible/Collapsible.js.map +1 -1
  211. package/dist/components/collapsible/CollapsibleContent/CollapsibleContent.js +1 -1
  212. package/dist/components/collapsible/CollapsibleContent/CollapsibleContent.js.map +1 -1
  213. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js +1 -1
  214. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js.map +1 -1
  215. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.types.d.ts +1 -1
  216. package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
  217. package/dist/components/dialog/Dialog/Dialog.js +1 -1
  218. package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
  219. package/dist/components/dialog/DialogClose/DialogClose.js +4 -6
  220. package/dist/components/dialog/DialogClose/DialogClose.js.map +1 -1
  221. package/dist/components/dialog/DialogClose/DialogClose.types.d.ts +2 -2
  222. package/dist/components/dialog/DialogContent/DialogContent.context.js.map +1 -1
  223. package/dist/components/dialog/DialogContent/DialogContent.js +10 -10
  224. package/dist/components/dialog/DialogContent/DialogContent.js.map +1 -1
  225. package/dist/components/dialog/DialogDescription/DialogDescription.js +1 -1
  226. package/dist/components/dialog/DialogDescription/DialogDescription.js.map +1 -1
  227. package/dist/components/dialog/DialogFooter/DialogFooter.js +1 -1
  228. package/dist/components/dialog/DialogFooter/DialogFooter.js.map +1 -1
  229. package/dist/components/dialog/DialogHeader/DialogHeader.js +1 -1
  230. package/dist/components/dialog/DialogHeader/DialogHeader.js.map +1 -1
  231. package/dist/components/dialog/DialogOverlay/DialogOverlay.js +1 -1
  232. package/dist/components/dialog/DialogOverlay/DialogOverlay.js.map +1 -1
  233. package/dist/components/dialog/DialogPortal/DialogPortal.js +1 -1
  234. package/dist/components/dialog/DialogPortal/DialogPortal.js.map +1 -1
  235. package/dist/components/dialog/DialogTitle/DialogTitle.js +1 -1
  236. package/dist/components/dialog/DialogTitle/DialogTitle.js.map +1 -1
  237. package/dist/components/dialog/DialogTrigger/DialogTrigger.js.map +1 -1
  238. package/dist/components/dialog/DialogTrigger/useDialogTrigger.js.map +1 -1
  239. package/dist/components/field/Field/Field.js +5 -5
  240. package/dist/components/field/Field/Field.js.map +1 -1
  241. package/dist/components/field/Field/Field.styles.js +1 -1
  242. package/dist/components/field/Field/Field.styles.js.map +1 -1
  243. package/dist/components/field/FieldContent/FieldContent.js +1 -1
  244. package/dist/components/field/FieldContent/FieldContent.js.map +1 -1
  245. package/dist/components/field/FieldDescription/FieldDescription.js +2 -2
  246. package/dist/components/field/FieldDescription/FieldDescription.js.map +1 -1
  247. package/dist/components/field/FieldError/FieldError.js +2 -2
  248. package/dist/components/field/FieldError/FieldError.js.map +1 -1
  249. package/dist/components/field/FieldGroup/FieldGroup.js +1 -1
  250. package/dist/components/field/FieldGroup/FieldGroup.js.map +1 -1
  251. package/dist/components/field/FieldLabel/FieldLabel.js +1 -1
  252. package/dist/components/field/FieldLabel/FieldLabel.js.map +1 -1
  253. package/dist/components/field/FieldLegend/FieldLegend.js +5 -5
  254. package/dist/components/field/FieldLegend/FieldLegend.js.map +1 -1
  255. package/dist/components/field/FieldSeparator/FieldSeparator.js +14 -14
  256. package/dist/components/field/FieldSeparator/FieldSeparator.js.map +1 -1
  257. package/dist/components/field/FieldSet/FieldSet.js +1 -1
  258. package/dist/components/field/FieldSet/FieldSet.js.map +1 -1
  259. package/dist/components/field/FieldTitle/FieldTitle.js +1 -1
  260. package/dist/components/field/FieldTitle/FieldTitle.js.map +1 -1
  261. package/dist/components/image/Image.config.js +1 -1
  262. package/dist/components/image/Image.config.js.map +1 -1
  263. package/dist/components/image/Image.js +13 -13
  264. package/dist/components/image/Image.js.map +1 -1
  265. package/dist/components/image/Image.utils.js +67 -67
  266. package/dist/components/image/Image.utils.js.map +1 -1
  267. package/dist/components/image/ImageElement.js +19 -19
  268. package/dist/components/image/ImageElement.js.map +1 -1
  269. package/dist/components/image/ImagePreload.js +1 -1
  270. package/dist/components/image/ImagePreload.js.map +1 -1
  271. package/dist/components/input/Input.js +13 -13
  272. package/dist/components/input/Input.js.map +1 -1
  273. package/dist/components/input-group/InputGroup/InputGroup.js +2 -2
  274. package/dist/components/input-group/InputGroup/InputGroup.js.map +1 -1
  275. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js +5 -5
  276. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js.map +1 -1
  277. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.styles.js +1 -1
  278. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.styles.js.map +1 -1
  279. package/dist/components/input-group/InputGroupButton/InputGroupButton.js +9 -9
  280. package/dist/components/input-group/InputGroupButton/InputGroupButton.js.map +1 -1
  281. package/dist/components/input-group/InputGroupButton/InputGroupButton.styles.js.map +1 -1
  282. package/dist/components/input-group/InputGroupButton/InputGroupButton.types.d.ts +2 -3
  283. package/dist/components/input-group/InputGroupInput/InputGroupInput.js.map +1 -1
  284. package/dist/components/input-group/InputGroupText/InputGroupText.js +2 -2
  285. package/dist/components/input-group/InputGroupText/InputGroupText.js.map +1 -1
  286. package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js.map +1 -1
  287. package/dist/components/item/Item/Item.js +9 -9
  288. package/dist/components/item/Item/Item.js.map +1 -1
  289. package/dist/components/item/Item/Item.styles.js +3 -3
  290. package/dist/components/item/Item/Item.styles.js.map +1 -1
  291. package/dist/components/item/ItemActions/ItemActions.js +1 -1
  292. package/dist/components/item/ItemActions/ItemActions.js.map +1 -1
  293. package/dist/components/item/ItemContent/ItemContent.js +1 -1
  294. package/dist/components/item/ItemContent/ItemContent.js.map +1 -1
  295. package/dist/components/item/ItemDescription/ItemDescription.js +2 -2
  296. package/dist/components/item/ItemDescription/ItemDescription.js.map +1 -1
  297. package/dist/components/item/ItemFooter/ItemFooter.js +1 -1
  298. package/dist/components/item/ItemFooter/ItemFooter.js.map +1 -1
  299. package/dist/components/item/ItemGroup/ItemGroup.js +1 -1
  300. package/dist/components/item/ItemGroup/ItemGroup.js.map +1 -1
  301. package/dist/components/item/ItemHeader/ItemHeader.js +1 -1
  302. package/dist/components/item/ItemHeader/ItemHeader.js.map +1 -1
  303. package/dist/components/item/ItemMedia/ItemMedia.js +5 -5
  304. package/dist/components/item/ItemMedia/ItemMedia.js.map +1 -1
  305. package/dist/components/item/ItemMedia/ItemMedia.styles.js.map +1 -1
  306. package/dist/components/item/ItemSeparator/ItemSeparator.js.map +1 -1
  307. package/dist/components/item/ItemTitle/ItemTitle.js +1 -1
  308. package/dist/components/item/ItemTitle/ItemTitle.js.map +1 -1
  309. package/dist/components/kbd/Kbd.js +2 -2
  310. package/dist/components/kbd/Kbd.js.map +1 -1
  311. package/dist/components/label/Label.js +1 -1
  312. package/dist/components/label/Label.js.map +1 -1
  313. package/dist/components/pagination/Pagination/Pagination.js +1 -1
  314. package/dist/components/pagination/Pagination/Pagination.js.map +1 -1
  315. package/dist/components/pagination/PaginationContent/PaginationContent.js +1 -1
  316. package/dist/components/pagination/PaginationContent/PaginationContent.js.map +1 -1
  317. package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js +1 -1
  318. package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js.map +1 -1
  319. package/dist/components/pagination/PaginationItem/PaginationItem.js +1 -1
  320. package/dist/components/pagination/PaginationItem/PaginationItem.js.map +1 -1
  321. package/dist/components/pagination/PaginationLink/PaginationLink.js +13 -10
  322. package/dist/components/pagination/PaginationLink/PaginationLink.js.map +1 -1
  323. package/dist/components/pagination/PaginationNext/PaginationNext.js +5 -5
  324. package/dist/components/pagination/PaginationNext/PaginationNext.js.map +1 -1
  325. package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js +5 -5
  326. package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js.map +1 -1
  327. package/dist/components/progress/Progress/Progress.context.js.map +1 -1
  328. package/dist/components/progress/Progress/Progress.js +1 -1
  329. package/dist/components/progress/Progress/Progress.js.map +1 -1
  330. package/dist/components/progress/ProgressIndicator/ProgressIndicator.js +1 -1
  331. package/dist/components/progress/ProgressIndicator/ProgressIndicator.js.map +1 -1
  332. package/dist/components/progress/ProgressIndicator/ProgressIndicator.styles.d.ts +1 -1
  333. package/dist/components/progress/ProgressIndicator/ProgressIndicator.styles.js +1 -1
  334. package/dist/components/progress/ProgressIndicator/ProgressIndicator.styles.js.map +1 -1
  335. package/dist/components/progress/ProgressLabel/ProgressLabel.js +1 -1
  336. package/dist/components/progress/ProgressLabel/ProgressLabel.js.map +1 -1
  337. package/dist/components/progress/ProgressTrack/ProgressTrack.js +1 -1
  338. package/dist/components/progress/ProgressTrack/ProgressTrack.js.map +1 -1
  339. package/dist/components/progress/ProgressTrack/ProgressTrack.styles.d.ts +1 -1
  340. package/dist/components/progress/ProgressTrack/ProgressTrack.styles.js +1 -1
  341. package/dist/components/progress/ProgressTrack/ProgressTrack.styles.js.map +1 -1
  342. package/dist/components/progress/ProgressValue/ProgressValue.js +1 -1
  343. package/dist/components/progress/ProgressValue/ProgressValue.js.map +1 -1
  344. package/dist/components/progress/ProgressValue/ProgressValue.styles.d.ts +1 -1
  345. package/dist/components/progress/ProgressValue/ProgressValue.styles.js +1 -1
  346. package/dist/components/progress/ProgressValue/ProgressValue.styles.js.map +1 -1
  347. package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js.map +1 -1
  348. package/dist/components/scroll-area/ScrollArea/ScrollArea.js +2 -2
  349. package/dist/components/scroll-area/ScrollArea/ScrollArea.js.map +1 -1
  350. package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js.map +1 -1
  351. package/dist/components/scroll-area/ScrollBar/ScrollBar.js +26 -26
  352. package/dist/components/scroll-area/ScrollBar/ScrollBar.js.map +1 -1
  353. package/dist/components/separator/Separator.js +7 -7
  354. package/dist/components/separator/Separator.js.map +1 -1
  355. package/dist/components/separator/Separator.styles.js +1 -1
  356. package/dist/components/separator/Separator.styles.js.map +1 -1
  357. package/dist/components/sidebar/Sidebar/Sidebar.js +10 -10
  358. package/dist/components/sidebar/Sidebar/Sidebar.js.map +1 -1
  359. package/dist/components/sidebar/Sidebar/index.d.ts +1 -0
  360. package/dist/components/sidebar/SidebarContent/SidebarContent.js +1 -1
  361. package/dist/components/sidebar/SidebarContent/SidebarContent.js.map +1 -1
  362. package/dist/components/sidebar/SidebarContent/index.d.ts +1 -0
  363. package/dist/components/sidebar/SidebarFooter/SidebarFooter.js +1 -1
  364. package/dist/components/sidebar/SidebarFooter/SidebarFooter.js.map +1 -1
  365. package/dist/components/sidebar/SidebarFooter/index.d.ts +1 -0
  366. package/dist/components/sidebar/SidebarGroup/SidebarGroup.js +1 -1
  367. package/dist/components/sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
  368. package/dist/components/sidebar/SidebarGroup/index.d.ts +1 -0
  369. package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js +5 -5
  370. package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js.map +1 -1
  371. package/dist/components/sidebar/SidebarGroupAction/index.d.ts +1 -0
  372. package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js +1 -1
  373. package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js.map +1 -1
  374. package/dist/components/sidebar/SidebarGroupContent/index.d.ts +1 -0
  375. package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js +5 -5
  376. package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js.map +1 -1
  377. package/dist/components/sidebar/SidebarGroupLabel/index.d.ts +1 -0
  378. package/dist/components/sidebar/SidebarHeader/SidebarHeader.js +1 -1
  379. package/dist/components/sidebar/SidebarHeader/SidebarHeader.js.map +1 -1
  380. package/dist/components/sidebar/SidebarHeader/index.d.ts +1 -0
  381. package/dist/components/sidebar/SidebarInput/SidebarInput.js +1 -1
  382. package/dist/components/sidebar/SidebarInput/SidebarInput.js.map +1 -1
  383. package/dist/components/sidebar/SidebarInput/index.d.ts +1 -0
  384. package/dist/components/sidebar/SidebarInset/SidebarInset.js +2 -2
  385. package/dist/components/sidebar/SidebarInset/SidebarInset.js.map +1 -1
  386. package/dist/components/sidebar/SidebarInset/index.d.ts +1 -0
  387. package/dist/components/sidebar/SidebarMenu/SidebarMenu.js +1 -1
  388. package/dist/components/sidebar/SidebarMenu/SidebarMenu.js.map +1 -1
  389. package/dist/components/sidebar/SidebarMenu/index.d.ts +1 -0
  390. package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js +2 -2
  391. package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js.map +1 -1
  392. package/dist/components/sidebar/SidebarMenuBadge/index.d.ts +1 -0
  393. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js +47 -31
  394. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js.map +1 -1
  395. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.styles.js +5 -6
  396. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.styles.js.map +1 -1
  397. package/dist/components/sidebar/SidebarMenuButton/index.d.ts +1 -0
  398. package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js +1 -1
  399. package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js.map +1 -1
  400. package/dist/components/sidebar/SidebarMenuItem/index.d.ts +1 -0
  401. package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js +7 -7
  402. package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js.map +1 -1
  403. package/dist/components/sidebar/SidebarMenuSkeleton/index.d.ts +1 -0
  404. package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js +2 -2
  405. package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js.map +1 -1
  406. package/dist/components/sidebar/SidebarMenuSub/index.d.ts +1 -0
  407. package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js +9 -9
  408. package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js.map +1 -1
  409. package/dist/components/sidebar/SidebarMenuSubButton/index.d.ts +1 -0
  410. package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js +1 -1
  411. package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js.map +1 -1
  412. package/dist/components/sidebar/SidebarMenuSubItem/index.d.ts +1 -0
  413. package/dist/components/sidebar/SidebarProvider/SidebarProvider.consts.js +1 -1
  414. package/dist/components/sidebar/SidebarProvider/SidebarProvider.consts.js.map +1 -1
  415. package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js.map +1 -1
  416. package/dist/components/sidebar/SidebarProvider/SidebarProvider.js +17 -17
  417. package/dist/components/sidebar/SidebarProvider/SidebarProvider.js.map +1 -1
  418. package/dist/components/sidebar/SidebarRail/SidebarRail.js +2 -2
  419. package/dist/components/sidebar/SidebarRail/SidebarRail.js.map +1 -1
  420. package/dist/components/sidebar/SidebarRail/index.d.ts +1 -0
  421. package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js.map +1 -1
  422. package/dist/components/sidebar/SidebarSeparator/index.d.ts +1 -0
  423. package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js.map +1 -1
  424. package/dist/components/sidebar/SidebarTrigger/index.d.ts +1 -0
  425. package/dist/components/sidebar/index.d.ts +21 -21
  426. package/dist/components/skeleton/Skeleton.js +2 -2
  427. package/dist/components/skeleton/Skeleton.js.map +1 -1
  428. package/dist/components/slider/Slider/Slider.context.js.map +1 -1
  429. package/dist/components/slider/Slider/Slider.js +10 -10
  430. package/dist/components/slider/Slider/Slider.js.map +1 -1
  431. package/dist/components/slider/Slider/useSlider.js.map +1 -1
  432. package/dist/components/slider/SliderControl/SliderControl.js +1 -1
  433. package/dist/components/slider/SliderControl/SliderControl.js.map +1 -1
  434. package/dist/components/slider/SliderControl/useSliderControl.js.map +1 -1
  435. package/dist/components/slider/SliderIndicator/SliderIndicator.js +1 -1
  436. package/dist/components/slider/SliderIndicator/SliderIndicator.js.map +1 -1
  437. package/dist/components/slider/SliderIndicator/SliderIndicator.styles.js +1 -1
  438. package/dist/components/slider/SliderIndicator/SliderIndicator.styles.js.map +1 -1
  439. package/dist/components/slider/SliderIndicator/useSliderIndicator.js.map +1 -1
  440. package/dist/components/slider/SliderThumb/SliderThumb.js +1 -1
  441. package/dist/components/slider/SliderThumb/SliderThumb.js.map +1 -1
  442. package/dist/components/slider/SliderThumb/SliderThumb.styles.js +1 -1
  443. package/dist/components/slider/SliderThumb/SliderThumb.styles.js.map +1 -1
  444. package/dist/components/slider/SliderThumb/useSliderThumb.js.map +1 -1
  445. package/dist/components/slider/SliderTrack/SliderTrack.js +1 -1
  446. package/dist/components/slider/SliderTrack/SliderTrack.js.map +1 -1
  447. package/dist/components/slider/SliderTrack/SliderTrack.styles.d.ts +1 -1
  448. package/dist/components/slider/SliderTrack/SliderTrack.styles.js +1 -1
  449. package/dist/components/slider/SliderTrack/SliderTrack.styles.js.map +1 -1
  450. package/dist/components/spinner/Spinner.js.map +1 -1
  451. package/dist/components/spinner/Spinner.styles.js.map +1 -1
  452. package/dist/components/switch/Switch.js +19 -19
  453. package/dist/components/switch/Switch.js.map +1 -1
  454. package/dist/components/switch/Switch.styles.js +2 -2
  455. package/dist/components/switch/Switch.styles.js.map +1 -1
  456. package/dist/components/tabs/Tabs/Tabs.context.d.ts +47 -0
  457. package/dist/components/tabs/Tabs/Tabs.context.js +54 -0
  458. package/dist/components/tabs/Tabs/Tabs.context.js.map +1 -0
  459. package/dist/components/tabs/Tabs/Tabs.d.ts +2 -0
  460. package/dist/components/tabs/Tabs/Tabs.js +71 -0
  461. package/dist/components/tabs/Tabs/Tabs.js.map +1 -0
  462. package/dist/components/tabs/Tabs/Tabs.types.d.ts +16 -0
  463. package/dist/components/tabs/Tabs/call-event-handler.d.ts +5 -0
  464. package/dist/components/tabs/Tabs/call-event-handler.js +9 -0
  465. package/dist/components/tabs/Tabs/call-event-handler.js.map +1 -0
  466. package/dist/components/tabs/Tabs/index.d.ts +2 -0
  467. package/dist/components/tabs/Tabs/useTabsKeyboard.d.ts +18 -0
  468. package/dist/components/tabs/Tabs/useTabsKeyboard.js +49 -0
  469. package/dist/components/tabs/Tabs/useTabsKeyboard.js.map +1 -0
  470. package/dist/components/tabs/TabsContent/TabsContent.d.ts +3 -0
  471. package/dist/components/tabs/TabsContent/TabsContent.js +52 -0
  472. package/dist/components/tabs/TabsContent/TabsContent.js.map +1 -0
  473. package/dist/components/tabs/TabsContent/TabsContent.types.d.ts +6 -0
  474. package/dist/components/tabs/TabsContent/index.d.ts +2 -0
  475. package/dist/components/tabs/TabsList/TabsList.context.d.ts +7 -0
  476. package/dist/components/tabs/TabsList/TabsList.context.js +11 -0
  477. package/dist/components/tabs/TabsList/TabsList.context.js.map +1 -0
  478. package/dist/components/tabs/TabsList/TabsList.d.ts +2 -0
  479. package/dist/components/tabs/TabsList/TabsList.js +48 -0
  480. package/dist/components/tabs/TabsList/TabsList.js.map +1 -0
  481. package/dist/components/tabs/TabsList/TabsList.styles.d.ts +3 -0
  482. package/dist/components/tabs/TabsList/TabsList.styles.js +13 -0
  483. package/dist/components/tabs/TabsList/TabsList.styles.js.map +1 -0
  484. package/dist/components/tabs/TabsList/TabsList.types.d.ts +7 -0
  485. package/dist/components/tabs/TabsList/index.d.ts +2 -0
  486. package/dist/components/tabs/TabsTrigger/TabsTrigger.d.ts +2 -0
  487. package/dist/components/tabs/TabsTrigger/TabsTrigger.js +71 -0
  488. package/dist/components/tabs/TabsTrigger/TabsTrigger.js.map +1 -0
  489. package/dist/components/tabs/TabsTrigger/TabsTrigger.styles.d.ts +1 -0
  490. package/dist/components/tabs/TabsTrigger/TabsTrigger.styles.js +7 -0
  491. package/dist/components/tabs/TabsTrigger/TabsTrigger.styles.js.map +1 -0
  492. package/dist/components/tabs/TabsTrigger/TabsTrigger.types.d.ts +6 -0
  493. package/dist/components/tabs/TabsTrigger/index.d.ts +2 -0
  494. package/dist/components/tabs/index.d.ts +4 -0
  495. package/dist/components/tabs/index.js +5 -0
  496. package/dist/components/textarea/Textarea.js +2 -2
  497. package/dist/components/textarea/Textarea.js.map +1 -1
  498. package/dist/components/toast/components/Assets.js +1 -1
  499. package/dist/components/toast/components/Assets.js.map +1 -1
  500. package/dist/components/toast/components/Toast.js +2 -5
  501. package/dist/components/toast/components/Toast.js.map +1 -1
  502. package/dist/components/toast/components/ToastActions.js +1 -1
  503. package/dist/components/toast/components/ToastActions.js.map +1 -1
  504. package/dist/components/toast/components/ToastContent.js +1 -1
  505. package/dist/components/toast/components/ToastContent.js.map +1 -1
  506. package/dist/components/toast/components/ToastIcon.js +1 -1
  507. package/dist/components/toast/components/ToastIcon.js.map +1 -1
  508. package/dist/components/toast/components/Toaster.js +1 -1
  509. package/dist/components/toast/components/Toaster.js.map +1 -1
  510. package/dist/components/toast/hooks/useSwipe.js.map +1 -1
  511. package/dist/components/toast/hooks/useTheme.js.map +1 -1
  512. package/dist/components/toast/hooks/useToastHeight.js.map +1 -1
  513. package/dist/components/toast/hooks/useToastSubscription.js +3 -2
  514. package/dist/components/toast/hooks/useToastSubscription.js.map +1 -1
  515. package/dist/components/toast/hooks/useToastTimer.js.map +1 -1
  516. package/dist/components/toast/hooks/useToasterKeyboard.js.map +1 -1
  517. package/dist/components/toast/hooks.js +3 -2
  518. package/dist/components/toast/hooks.js.map +1 -1
  519. package/dist/components/toast/state.js +5 -5
  520. package/dist/components/toast/state.js.map +1 -1
  521. package/dist/components/toast/utils.js.map +1 -1
  522. package/dist/components/tooltip/Tooltip/Tooltip.context.d.ts +2 -11
  523. package/dist/components/tooltip/Tooltip/Tooltip.context.js +4 -4
  524. package/dist/components/tooltip/Tooltip/Tooltip.context.js.map +1 -1
  525. package/dist/components/tooltip/Tooltip/Tooltip.d.ts +21 -5
  526. package/dist/components/tooltip/Tooltip/Tooltip.js +60 -23
  527. package/dist/components/tooltip/Tooltip/Tooltip.js.map +1 -1
  528. package/dist/components/tooltip/Tooltip/Tooltip.types.d.ts +58 -0
  529. package/dist/components/tooltip/Tooltip/index.d.ts +2 -0
  530. package/dist/components/tooltip/TooltipArrow/TooltipArrow.d.ts +34 -1
  531. package/dist/components/tooltip/TooltipArrow/TooltipArrow.js +48 -12
  532. package/dist/components/tooltip/TooltipArrow/TooltipArrow.js.map +1 -1
  533. package/dist/components/tooltip/TooltipArrow/index.d.ts +1 -0
  534. package/dist/components/tooltip/TooltipContent/TooltipContent.context.d.ts +19 -5
  535. package/dist/components/tooltip/TooltipContent/TooltipContent.context.js +4 -4
  536. package/dist/components/tooltip/TooltipContent/TooltipContent.context.js.map +1 -1
  537. package/dist/components/tooltip/TooltipContent/TooltipContent.d.ts +10 -1
  538. package/dist/components/tooltip/TooltipContent/TooltipContent.js +60 -46
  539. package/dist/components/tooltip/TooltipContent/TooltipContent.js.map +1 -1
  540. package/dist/components/tooltip/TooltipContent/TooltipContent.types.d.ts +13 -3
  541. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +57 -6
  542. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +34 -58
  543. package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
  544. package/dist/components/tooltip/TooltipContent/index.d.ts +7 -0
  545. package/dist/components/tooltip/TooltipContent/useTooltipContent.d.ts +45 -8
  546. package/dist/components/tooltip/TooltipContent/useTooltipContent.js +70 -41
  547. package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
  548. package/dist/components/tooltip/TooltipGroup/TooltipGroup.context.d.ts +29 -0
  549. package/dist/components/tooltip/TooltipGroup/TooltipGroup.context.js +10 -0
  550. package/dist/components/tooltip/TooltipGroup/TooltipGroup.context.js.map +1 -0
  551. package/dist/components/tooltip/TooltipGroup/TooltipGroup.d.ts +2 -0
  552. package/dist/components/tooltip/TooltipGroup/TooltipGroup.js +25 -0
  553. package/dist/components/tooltip/TooltipGroup/TooltipGroup.js.map +1 -0
  554. package/dist/components/tooltip/TooltipGroup/TooltipGroup.types.d.ts +10 -0
  555. package/dist/components/tooltip/TooltipGroup/index.d.ts +4 -0
  556. package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.d.ts +4 -2
  557. package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.js +26 -6
  558. package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.js.map +1 -1
  559. package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.types.d.ts +3 -0
  560. package/dist/components/tooltip/TooltipTrigger/index.d.ts +3 -0
  561. package/dist/components/tooltip/TooltipTrigger/useTooltipTrigger.d.ts +29 -2
  562. package/dist/components/tooltip/TooltipTrigger/useTooltipTrigger.js +27 -27
  563. package/dist/components/tooltip/TooltipTrigger/useTooltipTrigger.js.map +1 -1
  564. package/dist/components/tooltip/index.d.ts +6 -0
  565. package/dist/components/tooltip/index.js +2 -1
  566. package/dist/hooks/useFontLoader.js +1 -1
  567. package/dist/hooks/useFontLoader.js.map +1 -1
  568. package/dist/index.d.ts +1 -0
  569. package/dist/index.js +159 -152
  570. package/dist/lib/index.d.ts +1 -0
  571. package/dist/lib/positioner/auto-update.d.ts +19 -0
  572. package/dist/lib/positioner/auto-update.js +20 -0
  573. package/dist/lib/positioner/auto-update.js.map +1 -0
  574. package/dist/lib/positioner/core/compute-position.d.ts +9 -0
  575. package/dist/lib/positioner/core/compute-position.js +47 -0
  576. package/dist/lib/positioner/core/compute-position.js.map +1 -0
  577. package/dist/lib/positioner/core/placement.d.ts +14 -0
  578. package/dist/lib/positioner/core/placement.js +45 -0
  579. package/dist/lib/positioner/core/placement.js.map +1 -0
  580. package/dist/lib/positioner/create-positioner.d.ts +63 -0
  581. package/dist/lib/positioner/create-positioner.js +51 -0
  582. package/dist/lib/positioner/create-positioner.js.map +1 -0
  583. package/dist/lib/positioner/index.d.ts +11 -0
  584. package/dist/lib/positioner/middleware/arrow.d.ts +23 -0
  585. package/dist/lib/positioner/middleware/arrow.js +23 -0
  586. package/dist/lib/positioner/middleware/arrow.js.map +1 -0
  587. package/dist/lib/positioner/middleware/containing-block-offset.d.ts +27 -0
  588. package/dist/lib/positioner/middleware/containing-block-offset.js +46 -0
  589. package/dist/lib/positioner/middleware/containing-block-offset.js.map +1 -0
  590. package/dist/lib/positioner/middleware/flip.d.ts +9 -0
  591. package/dist/lib/positioner/middleware/flip.js +54 -0
  592. package/dist/lib/positioner/middleware/flip.js.map +1 -0
  593. package/dist/lib/positioner/middleware/hide.d.ts +22 -0
  594. package/dist/lib/positioner/middleware/hide.js +19 -0
  595. package/dist/lib/positioner/middleware/hide.js.map +1 -0
  596. package/dist/lib/positioner/middleware/index.d.ts +13 -0
  597. package/dist/lib/positioner/middleware/offset.d.ts +10 -0
  598. package/dist/lib/positioner/middleware/offset.js +21 -0
  599. package/dist/lib/positioner/middleware/offset.js.map +1 -0
  600. package/dist/lib/positioner/middleware/shift.d.ts +13 -0
  601. package/dist/lib/positioner/middleware/shift.js +30 -0
  602. package/dist/lib/positioner/middleware/shift.js.map +1 -0
  603. package/dist/lib/positioner/middleware/size.d.ts +13 -0
  604. package/dist/lib/positioner/types.d.ts +74 -0
  605. package/dist/lib/positioner/utils/dom.d.ts +16 -0
  606. package/dist/lib/positioner/utils/dom.js +43 -0
  607. package/dist/lib/positioner/utils/dom.js.map +1 -0
  608. package/dist/lib/positioner/virtual-element.d.ts +21 -0
  609. package/dist/types/props.types.d.ts +10 -9
  610. package/dist/ui.css +2 -2
  611. package/dist/utils/clsx.js.map +1 -1
  612. package/dist/utils/index.d.ts +1 -0
  613. package/dist/utils/index.js +3 -2
  614. package/dist/utils/logger.d.ts +73 -0
  615. package/dist/utils/logger.js +37 -0
  616. package/dist/utils/logger.js.map +1 -0
  617. package/dist/utils/warn-once.js.map +1 -1
  618. package/package.json +13 -12
  619. package/dist/components/alert-dialog/AlertDialog/AlertDialog.styles.d.ts +0 -0
  620. package/dist/components/carousel/CarouselContent/CarouselContent.styles.d.ts +0 -0
@@ -0,0 +1,63 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { Middleware, MiddlewareData, Placement, ReferenceElement, Strategy } from './types';
3
+ import { AutoUpdateOptions } from './auto-update';
4
+ type MaybeAccessor<T> = T | Accessor<T>;
5
+ export interface CreatePositionerOptions {
6
+ /** 期望的初始/首选摆放位置,默认 'bottom' */
7
+ placement?: MaybeAccessor<Placement>;
8
+ /** 定位方式:'absolute' 需要 floating 挂在 body 下且无非 static 定位祖先;不确定就用 'fixed' */
9
+ strategy?: MaybeAccessor<Strategy>;
10
+ /** middleware 数组,顺序执行,如 [offset(8), flip(), shift({padding: 8})] */
11
+ middleware?: MaybeAccessor<Middleware[]>;
12
+ /** 是否在滚动/尺寸变化时自动重新计算,默认 true;也可传细粒度配置 */
13
+ autoUpdate?: boolean | AutoUpdateOptions;
14
+ }
15
+ export interface Positioner {
16
+ /** floating 元素相对定位坐标系的 x(细粒度信号,只在数值变化时更新) */
17
+ x: Accessor<number>;
18
+ /** floating 元素相对定位坐标系的 y(细粒度信号,只在数值变化时更新) */
19
+ y: Accessor<number>;
20
+ /** 经过 middleware(如 flip)调整后的最终 placement */
21
+ placement: Accessor<Placement>;
22
+ /** 实际生效的定位策略 */
23
+ strategy: Accessor<Strategy>;
24
+ /** 各 middleware 产出的附加数据,例如 arrow 的偏移量 */
25
+ middlewareData: Accessor<MiddlewareData>;
26
+ /** 是否已完成至少一次定位计算,可用于首次渲染前隐藏 floating 元素避免闪烁 */
27
+ isPositioned: Accessor<boolean>;
28
+ /** 手动触发一次重新计算 */
29
+ update: () => void;
30
+ /** 可直接展开到 style 上的便捷样式对象 */
31
+ floatingStyles: Accessor<{
32
+ position: Strategy;
33
+ top: string;
34
+ left: string;
35
+ transform: string;
36
+ }>;
37
+ }
38
+ /**
39
+ * Solid 的细粒度浮窗定位 primitive。
40
+ *
41
+ * 传入 reference / floating 两个元素访问器,返回一组独立的响应式信号
42
+ * (x、y、placement 等分别更新,不会因为其中一个变化而让另一个也重新渲染),
43
+ * 上层组件(tooltip / dropdown / popover)只需订阅自己关心的信号。
44
+ *
45
+ * @example
46
+ * ```tsx
47
+ * const [reference, setReference] = createSignal<HTMLElement>();
48
+ * const [floating, setFloating] = createSignal<HTMLElement>();
49
+ * const pos = createPositioner(reference, floating, {
50
+ * placement: "bottom-start",
51
+ * middleware: [offset(8), flip(), shift({ padding: 8 })],
52
+ * });
53
+ *
54
+ * <button ref={setReference}>trigger</button>
55
+ * <Show when={open()}>
56
+ * <Portal>
57
+ * <div ref={setFloating} style={pos.floatingStyles()}>内容</div>
58
+ * </Portal>
59
+ * </Show>
60
+ * ```
61
+ */
62
+ export declare function createPositioner(reference: Accessor<ReferenceElement | null | undefined>, floating: Accessor<HTMLElement | null | undefined>, options?: CreatePositionerOptions): Positioner;
63
+ export {};
@@ -0,0 +1,51 @@
1
+ import { computePosition as e } from "./core/compute-position.js";
2
+ import { autoUpdate as t } from "./auto-update.js";
3
+ import { createEffect as n, createMemo as r, createSignal as i, onCleanup as a } from "solid-js";
4
+ //#region src/lib/positioner/create-positioner.ts
5
+ function o(e, t) {
6
+ return e === void 0 ? t : typeof e == "function" ? e() : e;
7
+ }
8
+ function s(s, c, l = {}) {
9
+ let [u, d] = i(0), [f, p] = i(0), [m, h] = i(o(l.placement, "bottom")), [g, _] = i(o(l.strategy, "absolute")), [v, y] = i({}), [b, x] = i(!1), S = () => {
10
+ let t = s(), n = c();
11
+ if (!t || !n) {
12
+ x(!1);
13
+ return;
14
+ }
15
+ let r = e(t, n, {
16
+ placement: o(l.placement, "bottom"),
17
+ strategy: o(l.strategy, "absolute"),
18
+ middleware: o(l.middleware, [])
19
+ });
20
+ d(r.x), p(r.y), h(r.placement), _(r.strategy), y(r.middlewareData), x(!0);
21
+ };
22
+ return n(() => {
23
+ let e = s(), n = c();
24
+ if (o(l.placement, "bottom"), o(l.strategy, "absolute"), o(l.middleware, []), !e || !n) {
25
+ x(!1);
26
+ return;
27
+ }
28
+ if (S(), l.autoUpdate !== !1) {
29
+ let r = t(e, n, S, typeof l.autoUpdate == "object" ? l.autoUpdate : {});
30
+ a(r);
31
+ }
32
+ }), {
33
+ x: u,
34
+ y: f,
35
+ placement: m,
36
+ strategy: g,
37
+ middlewareData: v,
38
+ isPositioned: b,
39
+ update: S,
40
+ floatingStyles: r(() => ({
41
+ position: g(),
42
+ top: "0px",
43
+ left: "0px",
44
+ transform: `translate(${Math.round(u())}px, ${Math.round(f())}px)`
45
+ }))
46
+ };
47
+ }
48
+ //#endregion
49
+ export { s as createPositioner };
50
+
51
+ //# sourceMappingURL=create-positioner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-positioner.js","names":[],"sources":["../../../src/lib/positioner/create-positioner.ts"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n onCleanup,\n type Accessor,\n} from \"solid-js\";\nimport type {\n Middleware,\n MiddlewareData,\n Placement,\n ReferenceElement,\n Strategy,\n} from \"./types\";\nimport { computePosition } from \"./core/compute-position\";\nimport {\n autoUpdate as attachAutoUpdate,\n type AutoUpdateOptions,\n} from \"./auto-update\";\n\ntype MaybeAccessor<T> = T | Accessor<T>;\n\nfunction unwrap<T>(value: MaybeAccessor<T> | undefined, fallback: T): T {\n if (value === undefined) return fallback;\n return typeof value === \"function\" ? (value as Accessor<T>)() : value;\n}\n\nexport interface CreatePositionerOptions {\n /** 期望的初始/首选摆放位置,默认 'bottom' */\n placement?: MaybeAccessor<Placement>;\n /** 定位方式:'absolute' 需要 floating 挂在 body 下且无非 static 定位祖先;不确定就用 'fixed' */\n strategy?: MaybeAccessor<Strategy>;\n /** middleware 数组,顺序执行,如 [offset(8), flip(), shift({padding: 8})] */\n middleware?: MaybeAccessor<Middleware[]>;\n /** 是否在滚动/尺寸变化时自动重新计算,默认 true;也可传细粒度配置 */\n autoUpdate?: boolean | AutoUpdateOptions;\n}\n\nexport interface Positioner {\n /** floating 元素相对定位坐标系的 x(细粒度信号,只在数值变化时更新) */\n x: Accessor<number>;\n /** floating 元素相对定位坐标系的 y(细粒度信号,只在数值变化时更新) */\n y: Accessor<number>;\n /** 经过 middleware(如 flip)调整后的最终 placement */\n placement: Accessor<Placement>;\n /** 实际生效的定位策略 */\n strategy: Accessor<Strategy>;\n /** 各 middleware 产出的附加数据,例如 arrow 的偏移量 */\n middlewareData: Accessor<MiddlewareData>;\n /** 是否已完成至少一次定位计算,可用于首次渲染前隐藏 floating 元素避免闪烁 */\n isPositioned: Accessor<boolean>;\n /** 手动触发一次重新计算 */\n update: () => void;\n /** 可直接展开到 style 上的便捷样式对象 */\n floatingStyles: Accessor<{\n position: Strategy;\n top: string;\n left: string;\n transform: string;\n }>;\n}\n\n/**\n * Solid 的细粒度浮窗定位 primitive。\n *\n * 传入 reference / floating 两个元素访问器,返回一组独立的响应式信号\n * (x、y、placement 等分别更新,不会因为其中一个变化而让另一个也重新渲染),\n * 上层组件(tooltip / dropdown / popover)只需订阅自己关心的信号。\n *\n * @example\n * ```tsx\n * const [reference, setReference] = createSignal<HTMLElement>();\n * const [floating, setFloating] = createSignal<HTMLElement>();\n * const pos = createPositioner(reference, floating, {\n * placement: \"bottom-start\",\n * middleware: [offset(8), flip(), shift({ padding: 8 })],\n * });\n *\n * <button ref={setReference}>trigger</button>\n * <Show when={open()}>\n * <Portal>\n * <div ref={setFloating} style={pos.floatingStyles()}>内容</div>\n * </Portal>\n * </Show>\n * ```\n */\nexport function createPositioner(\n reference: Accessor<ReferenceElement | null | undefined>,\n floating: Accessor<HTMLElement | null | undefined>,\n options: CreatePositionerOptions = {},\n): Positioner {\n const [x, setX] = createSignal(0);\n const [y, setY] = createSignal(0);\n const [placement, setPlacement] = createSignal<Placement>(\n unwrap(options.placement, \"bottom\"),\n );\n const [strategy, setStrategy] = createSignal<Strategy>(\n unwrap(options.strategy, \"absolute\"),\n );\n const [middlewareData, setMiddlewareData] = createSignal<MiddlewareData>({});\n const [isPositioned, setIsPositioned] = createSignal(false);\n\n const update = () => {\n const refEl = reference();\n const floatEl = floating();\n if (!refEl || !floatEl) {\n setIsPositioned(false);\n return;\n }\n\n const result = computePosition(refEl, floatEl, {\n placement: unwrap(options.placement, \"bottom\"),\n strategy: unwrap(options.strategy, \"absolute\"),\n middleware: unwrap(options.middleware, []),\n });\n\n // 每个 setter 只有在值真正变化时才会触发下游更新(Solid 信号默认行为),\n // 这就是“细粒度”的关键:只订阅 x 的节点不会因为 middlewareData 变化而重跑。\n setX(result.x);\n setY(result.y);\n setPlacement(result.placement);\n setStrategy(result.strategy);\n setMiddlewareData(result.middlewareData);\n setIsPositioned(true);\n };\n\n createEffect(() => {\n const refEl = reference();\n const floatEl = floating();\n // 主动读取,建立依赖:placement/strategy/middleware 若是响应式访问器,\n // 变化时也会重新进入这个 effect 并重新计算 + 重新挂 autoUpdate。\n unwrap(options.placement, \"bottom\");\n unwrap(options.strategy, \"absolute\");\n unwrap(options.middleware, []);\n\n if (!refEl || !floatEl) {\n setIsPositioned(false);\n return;\n }\n\n update();\n\n if (options.autoUpdate !== false) {\n const cleanup = attachAutoUpdate(\n refEl,\n floatEl,\n update,\n typeof options.autoUpdate === \"object\" ? options.autoUpdate : {},\n );\n onCleanup(cleanup);\n }\n });\n\n const floatingStyles = createMemo(() => ({\n position: strategy(),\n top: \"0px\",\n left: \"0px\",\n // 用 transform 而非 top/left 赋值,避免触发 layout,性能更好\n transform: `translate(${Math.round(x())}px, ${Math.round(y())}px)`,\n }));\n\n return {\n x,\n y,\n placement,\n strategy,\n middlewareData,\n isPositioned,\n update,\n floatingStyles,\n };\n}\n"],"mappings":";;;;AAsBA,SAAS,EAAU,GAAqC,GAAgB;CAEtE,OADI,MAAU,KAAA,IAAkB,IACzB,OAAO,KAAU,aAAc,EAAsB,IAAI;AAClE;AA6DA,SAAgB,EACd,GACA,GACA,IAAmC,CAAC,GACxB;CACZ,IAAM,CAAC,GAAG,KAAQ,EAAa,CAAC,GAC1B,CAAC,GAAG,KAAQ,EAAa,CAAC,GAC1B,CAAC,GAAW,KAAgB,EAChC,EAAO,EAAQ,WAAW,QAAQ,CACpC,GACM,CAAC,GAAU,KAAe,EAC9B,EAAO,EAAQ,UAAU,UAAU,CACrC,GACM,CAAC,GAAgB,KAAqB,EAA6B,CAAC,CAAC,GACrE,CAAC,GAAc,KAAmB,EAAa,EAAK,GAEpD,UAAe;EACnB,IAAM,IAAQ,EAAU,GAClB,IAAU,EAAS;EACzB,IAAI,CAAC,KAAS,CAAC,GAAS;GACtB,EAAgB,EAAK;GACrB;EACF;EAEA,IAAM,IAAS,EAAgB,GAAO,GAAS;GAC7C,WAAW,EAAO,EAAQ,WAAW,QAAQ;GAC7C,UAAU,EAAO,EAAQ,UAAU,UAAU;GAC7C,YAAY,EAAO,EAAQ,YAAY,CAAC,CAAC;EAC3C,CAAC;EASD,AALA,EAAK,EAAO,CAAC,GACb,EAAK,EAAO,CAAC,GACb,EAAa,EAAO,SAAS,GAC7B,EAAY,EAAO,QAAQ,GAC3B,EAAkB,EAAO,cAAc,GACvC,EAAgB,EAAI;CACtB;CAqCA,OAnCA,QAAmB;EACjB,IAAM,IAAQ,EAAU,GAClB,IAAU,EAAS;EAOzB,IAJA,EAAO,EAAQ,WAAW,QAAQ,GAClC,EAAO,EAAQ,UAAU,UAAU,GACnC,EAAO,EAAQ,YAAY,CAAC,CAAC,GAEzB,CAAC,KAAS,CAAC,GAAS;GACtB,EAAgB,EAAK;GACrB;EACF;EAIA,IAFA,EAAO,GAEH,EAAQ,eAAe,IAAO;GAChC,IAAM,IAAU,EACd,GACA,GACA,GACA,OAAO,EAAQ,cAAe,WAAW,EAAQ,aAAa,CAAC,CACjE;GACA,EAAU,CAAO;EACnB;CACF,CAAC,GAUM;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA,gBAhBqB,SAAkB;GACvC,UAAU,EAAS;GACnB,KAAK;GACL,MAAM;GAEN,WAAW,aAAa,KAAK,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC,EAAE;EAChE,EAUE;CACF;AACF"}
@@ -0,0 +1,11 @@
1
+ export { createPositioner } from './create-positioner';
2
+ export type { CreatePositionerOptions, Positioner } from './create-positioner';
3
+ export { computePosition } from './core/compute-position';
4
+ export { getSide, getAlignment, getOppositePlacement, getOppositeAlignmentPlacement, ALL_PLACEMENTS, } from './core/placement';
5
+ export { autoUpdate } from './auto-update';
6
+ export type { AutoUpdateOptions } from './auto-update';
7
+ export { createVirtualElement } from './virtual-element';
8
+ export type { PointOptions } from './virtual-element';
9
+ export { offset, shift, flip, arrow, size, hide, containingBlockOffset, } from './middleware';
10
+ export type { OffsetOptions, OffsetValue, ShiftOptions, FlipOptions, ArrowOptions, ArrowData, SizeOptions, SizeAvailableSpace, HideOptions, HideData, } from './middleware';
11
+ export type { Placement, Side, Alignment, AlignedPlacement, Strategy, Axis, Coords, Rect, ElementRects, Elements, ReferenceElement, VirtualElement, Middleware, MiddlewareData, MiddlewareState, MiddlewareReturn, ComputePositionConfig, ComputePositionReturn, Boundary, } from './types';
@@ -0,0 +1,23 @@
1
+ import { Middleware } from '../types';
2
+ import { getSide } from '../core/placement';
3
+ export interface ArrowOptions {
4
+ /**
5
+ * 箭头 DOM 元素,或返回该元素的函数(Solid 场景下常传一个访问器)。
6
+ * 类型是 Element 而不是 HTMLElement,是为了兼容 SVG 场景下用 <svg> 画箭头的写法
7
+ * (SVGSVGElement 不是 HTMLElement 的子类型)。
8
+ */
9
+ element: Element | undefined | (() => Element | undefined);
10
+ /** 箭头距 floating 边缘的最小间距,默认 4 */
11
+ padding?: number;
12
+ }
13
+ export interface ArrowData {
14
+ x?: number;
15
+ y?: number;
16
+ /** 箭头应贴靠 floating 的哪一侧(与 floating 的 placement 主边相同) */
17
+ side: ReturnType<typeof getSide>;
18
+ }
19
+ /**
20
+ * 计算箭头相对 floating 元素左上角的 x/y 偏移,
21
+ * 使其始终指向 reference 元素中心,同时不超出 floating 边界。
22
+ */
23
+ export declare function arrow(options: ArrowOptions): Middleware;
@@ -0,0 +1,23 @@
1
+ import { getSide as e, isVerticalSide as t } from "../core/placement.js";
2
+ //#region src/lib/positioner/middleware/arrow.ts
3
+ function n(n) {
4
+ return {
5
+ name: "arrow",
6
+ fn(r) {
7
+ let i = typeof n.element == "function" ? n.element() : n.element, a = e(r.placement);
8
+ if (!i) return { data: { side: a } };
9
+ let { rects: o, x: s, y: c } = r, l = n.padding ?? 4, u = t(a), d = i.getBoundingClientRect(), f = d.width || 0, p = d.height || 0, m = r.elements.floating.getBoundingClientRect(), h = u ? m.width : m.height, g = u ? f : p, _ = (u ? o.reference.x + o.reference.width / 2 - s : o.reference.y + o.reference.height / 2 - c) - g / 2, v = l, y = h - g - l;
10
+ return _ = Math.min(Math.max(_, v), Math.max(v, y)), { data: u ? {
11
+ x: _,
12
+ side: a
13
+ } : {
14
+ y: _,
15
+ side: a
16
+ } };
17
+ }
18
+ };
19
+ }
20
+ //#endregion
21
+ export { n as arrow };
22
+
23
+ //# sourceMappingURL=arrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrow.js","names":[],"sources":["../../../../src/lib/positioner/middleware/arrow.ts"],"sourcesContent":["import type { Middleware } from \"../types\";\nimport { getSide, isVerticalSide } from \"../core/placement\";\n\nexport interface ArrowOptions {\n /**\n * 箭头 DOM 元素,或返回该元素的函数(Solid 场景下常传一个访问器)。\n * 类型是 Element 而不是 HTMLElement,是为了兼容 SVG 场景下用 <svg> 画箭头的写法\n * (SVGSVGElement 不是 HTMLElement 的子类型)。\n */\n element: Element | undefined | (() => Element | undefined);\n /** 箭头距 floating 边缘的最小间距,默认 4 */\n padding?: number;\n}\n\nexport interface ArrowData {\n x?: number;\n y?: number;\n /** 箭头应贴靠 floating 的哪一侧(与 floating 的 placement 主边相同) */\n side: ReturnType<typeof getSide>;\n}\n\n/**\n * 计算箭头相对 floating 元素左上角的 x/y 偏移,\n * 使其始终指向 reference 元素中心,同时不超出 floating 边界。\n */\nexport function arrow(options: ArrowOptions): Middleware {\n return {\n name: \"arrow\",\n fn(state) {\n const el =\n typeof options.element === \"function\"\n ? options.element()\n : options.element;\n const side = getSide(state.placement);\n if (!el) return { data: { side } };\n\n const { rects, x, y } = state;\n const padding = options.padding ?? 4;\n const vertical = isVerticalSide(side);\n\n // 用 getBoundingClientRect 而不是 offsetWidth/offsetHeight:后者只有\n // HTMLElement 才有,SVG 元素(比如 <svg>/<g>)没有这两个属性;\n // getBoundingClientRect 对所有 Element 都通用,只要箭头本身没有做\n // CSS transform(本库的 TooltipArrow 就是特意不用 rotate 来避免这个问题)。\n const arrowRect = el.getBoundingClientRect();\n const arrowWidth = arrowRect.width || 0;\n const arrowHeight = arrowRect.height || 0;\n\n // 关键:floating 的宽高现读现用,不用 state.rects.floating(那是这一轮\n // computePosition 刚开始时缓存的值)。如果 arrow 前面排了 size 这类会\n // 通过 apply 回调产生 DOM 副作用(比如响应式地改 max-width)的 middleware,\n // 而且这次副作用刚好同步生效了,state.rects.floating 就会是“改之前”的\n // 旧尺寸,用它算出来的箭头位置会带着一个固定的偏移量,跟最终实际渲染的\n // 盒子宽度对不上。这里现场重新measure,保证永远拿到当下最新的尺寸。\n const freshFloatingRect = state.elements.floating.getBoundingClientRect();\n const axisLen = vertical\n ? freshFloatingRect.width\n : freshFloatingRect.height;\n const arrowLen = vertical ? arrowWidth : arrowHeight;\n\n // reference 中心点相对 floating 左上角的位置\n const refCenter = vertical\n ? rects.reference.x + rects.reference.width / 2 - x\n : rects.reference.y + rects.reference.height / 2 - y;\n\n let pos = refCenter - arrowLen / 2;\n const min = padding;\n const max = axisLen - arrowLen - padding;\n pos = Math.min(Math.max(pos, min), Math.max(min, max));\n\n const data: ArrowData = vertical ? { x: pos, side } : { y: pos, side };\n return { data };\n },\n };\n}\n"],"mappings":";;AAyBA,SAAgB,EAAM,GAAmC;CACvD,OAAO;EACL,MAAM;EACN,GAAG,GAAO;GACR,IAAM,IACJ,OAAO,EAAQ,WAAY,aACvB,EAAQ,QAAQ,IAChB,EAAQ,SACR,IAAO,EAAQ,EAAM,SAAS;GACpC,IAAI,CAAC,GAAI,OAAO,EAAE,MAAM,EAAE,QAAK,EAAE;GAEjC,IAAM,EAAE,UAAO,MAAG,SAAM,GAClB,IAAU,EAAQ,WAAW,GAC7B,IAAW,EAAe,CAAI,GAM9B,IAAY,EAAG,sBAAsB,GACrC,IAAa,EAAU,SAAS,GAChC,IAAc,EAAU,UAAU,GAQlC,IAAoB,EAAM,SAAS,SAAS,sBAAsB,GAClE,IAAU,IACZ,EAAkB,QAClB,EAAkB,QAChB,IAAW,IAAW,IAAa,GAOrC,KAJc,IACd,EAAM,UAAU,IAAI,EAAM,UAAU,QAAQ,IAAI,IAChD,EAAM,UAAU,IAAI,EAAM,UAAU,SAAS,IAAI,KAE/B,IAAW,GAC3B,IAAM,GACN,IAAM,IAAU,IAAW;GAIjC,OAHA,IAAM,KAAK,IAAI,KAAK,IAAI,GAAK,CAAG,GAAG,KAAK,IAAI,GAAK,CAAG,CAAC,GAG9C,EAAE,MADe,IAAW;IAAE,GAAG;IAAK;GAAK,IAAI;IAAE,GAAG;IAAK;GAAK,EACvD;EAChB;CACF;AACF"}
@@ -0,0 +1,27 @@
1
+ import { Middleware } from '../types';
2
+ /**
3
+ * 修正因祖先元素设置了 transform / filter / perspective / backdrop-filter /
4
+ * will-change / contain 等 CSS 属性,导致 position:fixed(部分情况下
5
+ * position:absolute 也一样)的包含块被从“视口”重新定义成该祖先自身,
6
+ * 从而让按视口坐标算出来的 x/y 出现系统性偏移的问题。
7
+ *
8
+ * 典型症状:demo 页面里定位完全正常,放进真实项目(尤其是大量使用
9
+ * transform 做拖拽/缩放/面板动画的应用,比如设计工具、看板、画布编辑器)
10
+ * 后,浮层整体固定偏移某个方向,但相对位置关系(比如箭头跟着内容一起偏)
11
+ * 保持不变——这正是“坐标系被祖先重新定义”而不是“定位算法算错了”的特征。
12
+ *
13
+ * 原理:从 floating 元素实际的 DOM 父节点开始向上查找,找到第一个会重新
14
+ * 定义包含块的祖先,用它的 getBoundingClientRect() 反推出这个“意外包含块”
15
+ * 相对视口的偏移量,从最终坐标里减掉,抵消这个偏移。
16
+ *
17
+ * 局限:只处理纯平移类的偏移(比如 translate、面板展开动画、GPU 加速常见的
18
+ * translateZ(0))。如果那个祖先同时还做了 scale/rotate,这里不会做矩阵换算,
19
+ * 位置依然会有偏差——遇到这种情况,更彻底的办法是让 Portal 挂载点脱离那个
20
+ * 祖先(比如手动把挂载点换成真正不受影响的 document.body,而不是应用内部
21
+ * 某个嵌套很深的容器)。
22
+ *
23
+ * 建议放在 middleware 数组的最后一位——它修正的是“最终要写进 DOM 的坐标”,
24
+ * 前面 offset/flip/shift/size/arrow 等都在统一的视口坐标系里计算,不受影响,
25
+ * 只有真正落地前的这一步需要额外修正。
26
+ */
27
+ export declare function containingBlockOffset(): Middleware;
@@ -0,0 +1,46 @@
1
+ //#region src/lib/positioner/middleware/containing-block-offset.ts
2
+ var e = [
3
+ "transform",
4
+ "perspective",
5
+ "filter",
6
+ "backdropFilter"
7
+ ];
8
+ function t(t) {
9
+ for (let n of e) {
10
+ let e = t[n];
11
+ if (e && e !== "none") return !0;
12
+ }
13
+ let n = t.willChange || "";
14
+ if (/transform|perspective|filter/.test(n)) return !0;
15
+ let r = t.contain || "";
16
+ return !!/paint|layout|strict|content/.test(r);
17
+ }
18
+ function n() {
19
+ return {
20
+ name: "containingBlockOffset",
21
+ fn(e) {
22
+ let n = e.elements.floating.parentElement, r = 0, i = 0, a = null;
23
+ for (; n && n !== document.documentElement;) {
24
+ if (t(getComputedStyle(n))) {
25
+ let e = n.getBoundingClientRect();
26
+ r = e.x, i = e.y, a = n;
27
+ break;
28
+ }
29
+ n = n.parentElement;
30
+ }
31
+ return !a || r === 0 && i === 0 ? { data: { ancestor: null } } : {
32
+ x: e.x - r,
33
+ y: e.y - i,
34
+ data: {
35
+ ancestor: a,
36
+ offsetX: r,
37
+ offsetY: i
38
+ }
39
+ };
40
+ }
41
+ };
42
+ }
43
+ //#endregion
44
+ export { n as containingBlockOffset };
45
+
46
+ //# sourceMappingURL=containing-block-offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containing-block-offset.js","names":[],"sources":["../../../../src/lib/positioner/middleware/containing-block-offset.ts"],"sourcesContent":["import type { Middleware } from \"../types\";\n\nconst TRANSFORM_STYLE_PROPS = [\n \"transform\",\n \"perspective\",\n \"filter\",\n \"backdropFilter\",\n] as const;\n\nfunction establishesContainingBlock(style: CSSStyleDeclaration): boolean {\n for (const prop of TRANSFORM_STYLE_PROPS) {\n const value = style[prop as keyof CSSStyleDeclaration] as\n | string\n | undefined;\n if (value && value !== \"none\") return true;\n }\n const willChange = style.willChange || \"\";\n if (/transform|perspective|filter/.test(willChange)) return true;\n const contain = style.contain || \"\";\n if (/paint|layout|strict|content/.test(contain)) return true;\n return false;\n}\n\n/**\n * 修正因祖先元素设置了 transform / filter / perspective / backdrop-filter /\n * will-change / contain 等 CSS 属性,导致 position:fixed(部分情况下\n * position:absolute 也一样)的包含块被从“视口”重新定义成该祖先自身,\n * 从而让按视口坐标算出来的 x/y 出现系统性偏移的问题。\n *\n * 典型症状:demo 页面里定位完全正常,放进真实项目(尤其是大量使用\n * transform 做拖拽/缩放/面板动画的应用,比如设计工具、看板、画布编辑器)\n * 后,浮层整体固定偏移某个方向,但相对位置关系(比如箭头跟着内容一起偏)\n * 保持不变——这正是“坐标系被祖先重新定义”而不是“定位算法算错了”的特征。\n *\n * 原理:从 floating 元素实际的 DOM 父节点开始向上查找,找到第一个会重新\n * 定义包含块的祖先,用它的 getBoundingClientRect() 反推出这个“意外包含块”\n * 相对视口的偏移量,从最终坐标里减掉,抵消这个偏移。\n *\n * 局限:只处理纯平移类的偏移(比如 translate、面板展开动画、GPU 加速常见的\n * translateZ(0))。如果那个祖先同时还做了 scale/rotate,这里不会做矩阵换算,\n * 位置依然会有偏差——遇到这种情况,更彻底的办法是让 Portal 挂载点脱离那个\n * 祖先(比如手动把挂载点换成真正不受影响的 document.body,而不是应用内部\n * 某个嵌套很深的容器)。\n *\n * 建议放在 middleware 数组的最后一位——它修正的是“最终要写进 DOM 的坐标”,\n * 前面 offset/flip/shift/size/arrow 等都在统一的视口坐标系里计算,不受影响,\n * 只有真正落地前的这一步需要额外修正。\n */\nexport function containingBlockOffset(): Middleware {\n return {\n name: \"containingBlockOffset\",\n fn(state) {\n const floatingEl = state.elements.floating;\n let node: Element | null = floatingEl.parentElement;\n let offsetX = 0;\n let offsetY = 0;\n let foundAncestor: Element | null = null;\n\n while (node && node !== document.documentElement) {\n const style = getComputedStyle(node);\n if (establishesContainingBlock(style)) {\n const rect = node.getBoundingClientRect();\n offsetX = rect.x;\n offsetY = rect.y;\n foundAncestor = node;\n break;\n }\n node = node.parentElement;\n }\n\n if (!foundAncestor || (offsetX === 0 && offsetY === 0)) {\n return { data: { ancestor: null } };\n }\n\n return {\n x: state.x - offsetX,\n y: state.y - offsetY,\n data: { ancestor: foundAncestor, offsetX, offsetY },\n };\n },\n };\n}\n"],"mappings":";AAEA,IAAM,IAAwB;CAC5B;CACA;CACA;CACA;AACF;AAEA,SAAS,EAA2B,GAAqC;CACvE,KAAK,IAAM,KAAQ,GAAuB;EACxC,IAAM,IAAQ,EAAM;EAGpB,IAAI,KAAS,MAAU,QAAQ,OAAO;CACxC;CACA,IAAM,IAAa,EAAM,cAAc;CACvC,IAAI,+BAA+B,KAAK,CAAU,GAAG,OAAO;CAC5D,IAAM,IAAU,EAAM,WAAW;CAEjC,OADA,EAAI,8BAA8B,KAAK,CAAO;AAEhD;AA2BA,SAAgB,IAAoC;CAClD,OAAO;EACL,MAAM;EACN,GAAG,GAAO;GAER,IAAI,IADe,EAAM,SAAS,SACI,eAClC,IAAU,GACV,IAAU,GACV,IAAgC;GAEpC,OAAO,KAAQ,MAAS,SAAS,kBAAiB;IAEhD,IAAI,EADU,iBAAiB,CACA,CAAK,GAAG;KACrC,IAAM,IAAO,EAAK,sBAAsB;KAGxC,AAFA,IAAU,EAAK,GACf,IAAU,EAAK,GACf,IAAgB;KAChB;IACF;IACA,IAAO,EAAK;GACd;GAMA,OAJI,CAAC,KAAkB,MAAY,KAAK,MAAY,IAC3C,EAAE,MAAM,EAAE,UAAU,KAAK,EAAE,IAG7B;IACL,GAAG,EAAM,IAAI;IACb,GAAG,EAAM,IAAI;IACb,MAAM;KAAE,UAAU;KAAe;KAAS;IAAQ;GACpD;EACF;CACF;AACF"}
@@ -0,0 +1,9 @@
1
+ import { Boundary, Middleware, Placement } from '../types';
2
+ export interface FlipOptions {
3
+ padding?: number;
4
+ boundary?: Boundary;
5
+ /** 翻转候选 placement 列表,按顺序尝试,默认只翻转到正对面 */
6
+ fallbackPlacements?: Placement[];
7
+ }
8
+ /** 当主轴方向空间不够时,翻转到相对的 placement(如 bottom -> top) */
9
+ export declare function flip(options?: FlipOptions): Middleware;
@@ -0,0 +1,54 @@
1
+ import { getViewportBoundary as e } from "../utils/dom.js";
2
+ import { computeCoordsFromPlacement as t, getOppositePlacement as n, getSide as r } from "../core/placement.js";
3
+ //#region src/lib/positioner/middleware/flip.ts
4
+ function i(e, t, n, r, i) {
5
+ return {
6
+ top: i.y - t,
7
+ left: i.x - e,
8
+ right: e + n - (i.x + i.width),
9
+ bottom: t + r - (i.y + i.height)
10
+ };
11
+ }
12
+ function a(e, t) {
13
+ switch (e) {
14
+ case "top": return t.top;
15
+ case "bottom": return t.bottom;
16
+ case "left": return t.left;
17
+ case "right": return t.right;
18
+ }
19
+ }
20
+ function o(o = {}) {
21
+ return {
22
+ name: "flip",
23
+ fn(s) {
24
+ let { x: c, y: l, rects: u, placement: d, strategy: f, middlewareData: p, initialPlacement: m } = s;
25
+ if (p.flip?.flipped) return {};
26
+ let { padding: h = 0 } = o, g = o.boundary ?? e(f, h), _ = i(c, l, u.floating.width, u.floating.height, g), v = a(r(d), _);
27
+ if (v <= 0) return {};
28
+ let y = o.fallbackPlacements ?? [n(m)], b = null;
29
+ for (let e of y) {
30
+ if (e === d) continue;
31
+ let n = t(u, e), o = i(n.x, n.y, u.floating.width, u.floating.height, g), s = a(r(e), o);
32
+ if (s <= 0) {
33
+ b = {
34
+ placement: e,
35
+ overflow: s
36
+ };
37
+ break;
38
+ }
39
+ (!b || s < b.overflow) && (b = {
40
+ placement: e,
41
+ overflow: s
42
+ });
43
+ }
44
+ return !b || b.overflow >= v ? {} : {
45
+ reset: { placement: b.placement },
46
+ data: { flipped: !0 }
47
+ };
48
+ }
49
+ };
50
+ }
51
+ //#endregion
52
+ export { o as flip };
53
+
54
+ //# sourceMappingURL=flip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flip.js","names":[],"sources":["../../../../src/lib/positioner/middleware/flip.ts"],"sourcesContent":["import type { Boundary, Middleware, Placement, Side } from \"../types\";\nimport { getViewportBoundary } from \"../utils/dom\";\nimport {\n computeCoordsFromPlacement,\n getOppositePlacement,\n getSide,\n} from \"../core/placement\";\n\nexport interface FlipOptions {\n padding?: number;\n boundary?: Boundary;\n /** 翻转候选 placement 列表,按顺序尝试,默认只翻转到正对面 */\n fallbackPlacements?: Placement[];\n}\n\ninterface SideOverflow {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nfunction getSideOverflow(\n x: number,\n y: number,\n width: number,\n height: number,\n boundary: Boundary,\n): SideOverflow {\n return {\n top: boundary.y - y,\n left: boundary.x - x,\n right: x + width - (boundary.x + boundary.width),\n bottom: y + height - (boundary.y + boundary.height),\n };\n}\n\n/** 取某个 placement 主轴方向对应的溢出量(正数代表溢出了多少像素) */\nfunction getMainAxisOverflow(side: Side, overflow: SideOverflow): number {\n switch (side) {\n case \"top\":\n return overflow.top;\n case \"bottom\":\n return overflow.bottom;\n case \"left\":\n return overflow.left;\n case \"right\":\n return overflow.right;\n }\n}\n\n/** 当主轴方向空间不够时,翻转到相对的 placement(如 bottom -> top) */\nexport function flip(options: FlipOptions = {}): Middleware {\n return {\n name: \"flip\",\n fn(state) {\n const {\n x,\n y,\n rects,\n placement,\n strategy,\n middlewareData,\n initialPlacement,\n } = state;\n\n // 已经翻转过一次就不再继续翻,避免来回震荡\n if (middlewareData.flip?.flipped) return {};\n\n const { padding = 0 } = options;\n const boundary =\n options.boundary ?? getViewportBoundary(strategy, padding);\n\n const currentOverflow = getSideOverflow(\n x,\n y,\n rects.floating.width,\n rects.floating.height,\n boundary,\n );\n const currentMainOverflow = getMainAxisOverflow(\n getSide(placement),\n currentOverflow,\n );\n\n // 当前方向够放,不需要翻\n if (currentMainOverflow <= 0) return {};\n\n const candidates = options.fallbackPlacements ?? [\n getOppositePlacement(initialPlacement),\n ];\n\n let best: { placement: Placement; overflow: number } | null = null;\n\n for (const candidate of candidates) {\n if (candidate === placement) continue;\n\n // 关键修复点:真正代入候选 placement 算出它的坐标,再算它自己的真实溢出量,\n // 而不是用当前(本就溢出的)placement 的 overflow 去做错误的镜像估算。\n const candidateCoords = computeCoordsFromPlacement(rects, candidate);\n const candidateOverflow = getSideOverflow(\n candidateCoords.x,\n candidateCoords.y,\n rects.floating.width,\n rects.floating.height,\n boundary,\n );\n const candidateMainOverflow = getMainAxisOverflow(\n getSide(candidate),\n candidateOverflow,\n );\n\n if (candidateMainOverflow <= 0) {\n best = { placement: candidate, overflow: candidateMainOverflow };\n break; // 找到完全不溢出的候选,直接采用\n }\n if (!best || candidateMainOverflow < best.overflow) {\n best = { placement: candidate, overflow: candidateMainOverflow };\n }\n }\n\n // 没有候选,或翻过去也不比现在好,就不翻\n if (!best || best.overflow >= currentMainOverflow) return {};\n\n return {\n reset: { placement: best.placement },\n data: { flipped: true },\n };\n },\n };\n}\n"],"mappings":";;;AAsBA,SAAS,EACP,GACA,GACA,GACA,GACA,GACc;CACd,OAAO;EACL,KAAK,EAAS,IAAI;EAClB,MAAM,EAAS,IAAI;EACnB,OAAO,IAAI,KAAS,EAAS,IAAI,EAAS;EAC1C,QAAQ,IAAI,KAAU,EAAS,IAAI,EAAS;CAC9C;AACF;AAGA,SAAS,EAAoB,GAAY,GAAgC;CACvE,QAAQ,GAAR;EACE,KAAK,OACH,OAAO,EAAS;EAClB,KAAK,UACH,OAAO,EAAS;EAClB,KAAK,QACH,OAAO,EAAS;EAClB,KAAK,SACH,OAAO,EAAS;CACpB;AACF;AAGA,SAAgB,EAAK,IAAuB,CAAC,GAAe;CAC1D,OAAO;EACL,MAAM;EACN,GAAG,GAAO;GACR,IAAM,EACJ,MACA,MACA,UACA,cACA,aACA,mBACA,wBACE;GAGJ,IAAI,EAAe,MAAM,SAAS,OAAO,CAAC;GAE1C,IAAM,EAAE,aAAU,MAAM,GAClB,IACJ,EAAQ,YAAY,EAAoB,GAAU,CAAO,GAErD,IAAkB,EACtB,GACA,GACA,EAAM,SAAS,OACf,EAAM,SAAS,QACf,CACF,GACM,IAAsB,EAC1B,EAAQ,CAAS,GACjB,CACF;GAGA,IAAI,KAAuB,GAAG,OAAO,CAAC;GAEtC,IAAM,IAAa,EAAQ,sBAAsB,CAC/C,EAAqB,CAAgB,CACvC,GAEI,IAA0D;GAE9D,KAAK,IAAM,KAAa,GAAY;IAClC,IAAI,MAAc,GAAW;IAI7B,IAAM,IAAkB,EAA2B,GAAO,CAAS,GAC7D,IAAoB,EACxB,EAAgB,GAChB,EAAgB,GAChB,EAAM,SAAS,OACf,EAAM,SAAS,QACf,CACF,GACM,IAAwB,EAC5B,EAAQ,CAAS,GACjB,CACF;IAEA,IAAI,KAAyB,GAAG;KAC9B,IAAO;MAAE,WAAW;MAAW,UAAU;KAAsB;KAC/D;IACF;IACA,CAAI,CAAC,KAAQ,IAAwB,EAAK,cACxC,IAAO;KAAE,WAAW;KAAW,UAAU;IAAsB;GAEnE;GAKA,OAFI,CAAC,KAAQ,EAAK,YAAY,IAA4B,CAAC,IAEpD;IACL,OAAO,EAAE,WAAW,EAAK,UAAU;IACnC,MAAM,EAAE,SAAS,GAAK;GACxB;EACF;CACF;AACF"}
@@ -0,0 +1,22 @@
1
+ import { Boundary, Middleware } from '../types';
2
+ export interface HideOptions {
3
+ padding?: number;
4
+ boundary?: Boundary;
5
+ /**
6
+ * 'referenceHidden':reference 元素被自身滚动容器完全裁掉(比如滚出了可滚动的父级)
7
+ * 'escaped':floating 元素虽然还在视口内,但已经完全脱离了 reference 所在的边界
8
+ *(比如 reference 在一个卡片里被横向滚动挡住了一半,虽然 floating 还能摆在视口里,
9
+ * 但已经不该再显示,否则看起来像是"飘"在别的内容上)
10
+ * 默认只做 referenceHidden 检测,这是最常见也最需要的场景。
11
+ */
12
+ strategy?: "referenceHidden" | "escaped";
13
+ }
14
+ export interface HideData {
15
+ referenceHidden?: boolean;
16
+ escaped?: boolean;
17
+ }
18
+ /**
19
+ * 不改变坐标,只产出"是否应该隐藏浮层"的判断数据,交给上层组件决定要不要渲染。
20
+ * 用法:在业务组件里读 `middlewareData().hide?.referenceHidden`,为 true 时关闭浮层。
21
+ */
22
+ export declare function hide(options?: HideOptions): Middleware;
@@ -0,0 +1,19 @@
1
+ import { getRectRelativeTo as e, getViewportBoundary as t } from "../utils/dom.js";
2
+ //#region src/lib/positioner/middleware/hide.ts
3
+ function n(n = {}) {
4
+ return {
5
+ name: "hide",
6
+ fn(r) {
7
+ let { x: i, y: a, rects: o, strategy: s, elements: c } = r, { padding: l = 0, strategy: u = "referenceHidden" } = n, d = n.boundary ?? t(s, l), f = {};
8
+ if (u === "referenceHidden") {
9
+ let t = e(c.reference, s);
10
+ f.referenceHidden = t.x + t.width <= d.x || t.y + t.height <= d.y || t.x >= d.x + d.width || t.y >= d.y + d.height;
11
+ }
12
+ return u === "escaped" && (f.escaped = i + o.floating.width <= d.x || a + o.floating.height <= d.y || i >= d.x + d.width || a >= d.y + d.height), { data: f };
13
+ }
14
+ };
15
+ }
16
+ //#endregion
17
+ export { n as hide };
18
+
19
+ //# sourceMappingURL=hide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hide.js","names":[],"sources":["../../../../src/lib/positioner/middleware/hide.ts"],"sourcesContent":["import type { Boundary, Middleware } from \"../types\";\nimport { getViewportBoundary, getRectRelativeTo } from \"../utils/dom\";\n\nexport interface HideOptions {\n padding?: number;\n boundary?: Boundary;\n /**\n * 'referenceHidden':reference 元素被自身滚动容器完全裁掉(比如滚出了可滚动的父级)\n * 'escaped':floating 元素虽然还在视口内,但已经完全脱离了 reference 所在的边界\n *(比如 reference 在一个卡片里被横向滚动挡住了一半,虽然 floating 还能摆在视口里,\n * 但已经不该再显示,否则看起来像是\"飘\"在别的内容上)\n * 默认只做 referenceHidden 检测,这是最常见也最需要的场景。\n */\n strategy?: \"referenceHidden\" | \"escaped\";\n}\n\nexport interface HideData {\n referenceHidden?: boolean;\n escaped?: boolean;\n}\n\n/**\n * 不改变坐标,只产出\"是否应该隐藏浮层\"的判断数据,交给上层组件决定要不要渲染。\n * 用法:在业务组件里读 `middlewareData().hide?.referenceHidden`,为 true 时关闭浮层。\n */\nexport function hide(options: HideOptions = {}): Middleware {\n return {\n name: \"hide\",\n fn(state) {\n const { x, y, rects, strategy: positionStrategy, elements } = state;\n const { padding = 0, strategy = \"referenceHidden\" } = options;\n const boundary =\n options.boundary ?? getViewportBoundary(positionStrategy, padding);\n\n const data: HideData = {};\n\n if (strategy === \"referenceHidden\") {\n const refRect = getRectRelativeTo(elements.reference, positionStrategy);\n const referenceHidden =\n refRect.x + refRect.width <= boundary.x ||\n refRect.y + refRect.height <= boundary.y ||\n refRect.x >= boundary.x + boundary.width ||\n refRect.y >= boundary.y + boundary.height;\n data.referenceHidden = referenceHidden;\n }\n\n if (strategy === \"escaped\") {\n const escaped =\n x + rects.floating.width <= boundary.x ||\n y + rects.floating.height <= boundary.y ||\n x >= boundary.x + boundary.width ||\n y >= boundary.y + boundary.height;\n data.escaped = escaped;\n }\n\n return { data };\n },\n };\n}\n"],"mappings":";;AAyBA,SAAgB,EAAK,IAAuB,CAAC,GAAe;CAC1D,OAAO;EACL,MAAM;EACN,GAAG,GAAO;GACR,IAAM,EAAE,MAAG,MAAG,UAAO,UAAU,GAAkB,gBAAa,GACxD,EAAE,aAAU,GAAG,cAAW,sBAAsB,GAChD,IACJ,EAAQ,YAAY,EAAoB,GAAkB,CAAO,GAE7D,IAAiB,CAAC;GAExB,IAAI,MAAa,mBAAmB;IAClC,IAAM,IAAU,EAAkB,EAAS,WAAW,CAAgB;IAMtE,EAAK,kBAJH,EAAQ,IAAI,EAAQ,SAAS,EAAS,KACtC,EAAQ,IAAI,EAAQ,UAAU,EAAS,KACvC,EAAQ,KAAK,EAAS,IAAI,EAAS,SACnC,EAAQ,KAAK,EAAS,IAAI,EAAS;GAEvC;GAWA,OATI,MAAa,cAMf,EAAK,UAJH,IAAI,EAAM,SAAS,SAAS,EAAS,KACrC,IAAI,EAAM,SAAS,UAAU,EAAS,KACtC,KAAK,EAAS,IAAI,EAAS,SAC3B,KAAK,EAAS,IAAI,EAAS,SAIxB,EAAE,QAAK;EAChB;CACF;AACF"}
@@ -0,0 +1,13 @@
1
+ export { offset } from './offset';
2
+ export type { OffsetOptions, OffsetValue } from './offset';
3
+ export { shift } from './shift';
4
+ export type { ShiftOptions } from './shift';
5
+ export { flip } from './flip';
6
+ export type { FlipOptions } from './flip';
7
+ export { arrow } from './arrow';
8
+ export type { ArrowOptions, ArrowData } from './arrow';
9
+ export { size } from './size';
10
+ export type { SizeOptions, SizeAvailableSpace } from './size';
11
+ export { hide } from './hide';
12
+ export type { HideOptions, HideData } from './hide';
13
+ export { containingBlockOffset } from './containing-block-offset';
@@ -0,0 +1,10 @@
1
+ import { Middleware } from '../types';
2
+ export interface OffsetValue {
3
+ /** 沿主轴方向的偏移(远离/靠近 reference),默认 0 */
4
+ mainAxis?: number;
5
+ /** 沿交叉轴方向的偏移(左右或上下平移),默认 0 */
6
+ crossAxis?: number;
7
+ }
8
+ export type OffsetOptions = number | OffsetValue;
9
+ /** 让 floating 元素与 reference 保持一定间距,或沿对齐轴做微调 */
10
+ export declare function offset(value?: OffsetOptions): Middleware;
@@ -0,0 +1,21 @@
1
+ import { getSide as e, isVerticalSide as t } from "../core/placement.js";
2
+ //#region src/lib/positioner/middleware/offset.ts
3
+ function n(n = 0) {
4
+ return {
5
+ name: "offset",
6
+ fn(r) {
7
+ let { x: i, y: a, placement: o } = r, s = e(o), c = t(s), l = typeof n == "number" ? n : n.mainAxis ?? 0, u = typeof n == "number" ? 0 : n.crossAxis ?? 0, d = l * (s === "bottom" || s === "right" ? 1 : -1);
8
+ return c ? {
9
+ x: i + u,
10
+ y: a + d
11
+ } : {
12
+ x: i + d,
13
+ y: a + u
14
+ };
15
+ }
16
+ };
17
+ }
18
+ //#endregion
19
+ export { n as offset };
20
+
21
+ //# sourceMappingURL=offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offset.js","names":[],"sources":["../../../../src/lib/positioner/middleware/offset.ts"],"sourcesContent":["import type { Middleware } from \"../types\";\nimport { getSide, isVerticalSide } from \"../core/placement\";\n\nexport interface OffsetValue {\n /** 沿主轴方向的偏移(远离/靠近 reference),默认 0 */\n mainAxis?: number;\n /** 沿交叉轴方向的偏移(左右或上下平移),默认 0 */\n crossAxis?: number;\n}\n\nexport type OffsetOptions = number | OffsetValue;\n\n/** 让 floating 元素与 reference 保持一定间距,或沿对齐轴做微调 */\nexport function offset(value: OffsetOptions = 0): Middleware {\n return {\n name: \"offset\",\n fn(state) {\n const { x, y, placement } = state;\n const side = getSide(placement);\n const vertical = isVerticalSide(side);\n\n const mainAxis =\n typeof value === \"number\" ? value : (value.mainAxis ?? 0);\n const crossAxis = typeof value === \"number\" ? 0 : (value.crossAxis ?? 0);\n\n // top/left 是\"负方向\",bottom/right 是\"正方向\"\n const mainSign = side === \"bottom\" || side === \"right\" ? 1 : -1;\n\n const diffMain = mainAxis * mainSign;\n\n return vertical\n ? { x: x + crossAxis, y: y + diffMain }\n : { x: x + diffMain, y: y + crossAxis };\n },\n };\n}\n"],"mappings":";;AAaA,SAAgB,EAAO,IAAuB,GAAe;CAC3D,OAAO;EACL,MAAM;EACN,GAAG,GAAO;GACR,IAAM,EAAE,MAAG,MAAG,iBAAc,GACtB,IAAO,EAAQ,CAAS,GACxB,IAAW,EAAe,CAAI,GAE9B,IACJ,OAAO,KAAU,WAAW,IAAS,EAAM,YAAY,GACnD,IAAY,OAAO,KAAU,WAAW,IAAK,EAAM,aAAa,GAKhE,IAAW,KAFA,MAAS,YAAY,MAAS,UAAU,IAAI;GAI7D,OAAO,IACH;IAAE,GAAG,IAAI;IAAW,GAAG,IAAI;GAAS,IACpC;IAAE,GAAG,IAAI;IAAU,GAAG,IAAI;GAAU;EAC1C;CACF;AACF"}
@@ -0,0 +1,13 @@
1
+ import { Boundary, Middleware } from '../types';
2
+ export interface ShiftOptions {
3
+ /** 距边界的最小间距,默认 0 */
4
+ padding?: number;
5
+ /** 自定义边界矩形,默认使用视口 */
6
+ boundary?: Boundary;
7
+ /** 是否限制主轴方向(如 top/bottom placement 的 y 方向),默认 true */
8
+ mainAxis?: boolean;
9
+ /** 是否限制交叉轴方向(如 top/bottom placement 的 x 方向),默认 true */
10
+ crossAxis?: boolean;
11
+ }
12
+ /** 平移 floating 元素,使其尽量停留在边界(默认视口)内,不做 placement 翻转 */
13
+ export declare function shift(options?: ShiftOptions): Middleware;
@@ -0,0 +1,30 @@
1
+ import { getViewportBoundary as e } from "../utils/dom.js";
2
+ //#region src/lib/positioner/middleware/shift.ts
3
+ function t(t = {}) {
4
+ return {
5
+ name: "shift",
6
+ fn(n) {
7
+ let { x: r, y: i, rects: a, strategy: o } = n, { padding: s = 0, mainAxis: c = !0, crossAxis: l = !0 } = t, u = t.boundary ?? e(o, s), d = r, f = i;
8
+ if (l) {
9
+ let e = u.x, t = u.x + u.width - a.floating.width;
10
+ d = Math.min(Math.max(r, e), Math.max(e, t));
11
+ }
12
+ if (c) {
13
+ let e = u.y, t = u.y + u.height - a.floating.height;
14
+ f = Math.min(Math.max(i, e), Math.max(e, t));
15
+ }
16
+ return {
17
+ x: d,
18
+ y: f,
19
+ data: {
20
+ x: d - r,
21
+ y: f - i
22
+ }
23
+ };
24
+ }
25
+ };
26
+ }
27
+ //#endregion
28
+ export { t as shift };
29
+
30
+ //# sourceMappingURL=shift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shift.js","names":[],"sources":["../../../../src/lib/positioner/middleware/shift.ts"],"sourcesContent":["import type { Boundary, Middleware } from \"../types\";\nimport { getViewportBoundary } from \"../utils/dom\";\n\nexport interface ShiftOptions {\n /** 距边界的最小间距,默认 0 */\n padding?: number;\n /** 自定义边界矩形,默认使用视口 */\n boundary?: Boundary;\n /** 是否限制主轴方向(如 top/bottom placement 的 y 方向),默认 true */\n mainAxis?: boolean;\n /** 是否限制交叉轴方向(如 top/bottom placement 的 x 方向),默认 true */\n crossAxis?: boolean;\n}\n\n/** 平移 floating 元素,使其尽量停留在边界(默认视口)内,不做 placement 翻转 */\nexport function shift(options: ShiftOptions = {}): Middleware {\n return {\n name: \"shift\",\n fn(state) {\n const { x, y, rects, strategy } = state;\n const { padding = 0, mainAxis = true, crossAxis = true } = options;\n const boundary =\n options.boundary ?? getViewportBoundary(strategy, padding);\n\n let nextX = x;\n let nextY = y;\n\n if (crossAxis) {\n const minX = boundary.x;\n const maxX = boundary.x + boundary.width - rects.floating.width;\n nextX = Math.min(Math.max(x, minX), Math.max(minX, maxX));\n }\n\n if (mainAxis) {\n const minY = boundary.y;\n const maxY = boundary.y + boundary.height - rects.floating.height;\n nextY = Math.min(Math.max(y, minY), Math.max(minY, maxY));\n }\n\n return {\n x: nextX,\n y: nextY,\n data: { x: nextX - x, y: nextY - y },\n };\n },\n };\n}\n"],"mappings":";;AAeA,SAAgB,EAAM,IAAwB,CAAC,GAAe;CAC5D,OAAO;EACL,MAAM;EACN,GAAG,GAAO;GACR,IAAM,EAAE,MAAG,MAAG,UAAO,gBAAa,GAC5B,EAAE,aAAU,GAAG,cAAW,IAAM,eAAY,OAAS,GACrD,IACJ,EAAQ,YAAY,EAAoB,GAAU,CAAO,GAEvD,IAAQ,GACR,IAAQ;GAEZ,IAAI,GAAW;IACb,IAAM,IAAO,EAAS,GAChB,IAAO,EAAS,IAAI,EAAS,QAAQ,EAAM,SAAS;IAC1D,IAAQ,KAAK,IAAI,KAAK,IAAI,GAAG,CAAI,GAAG,KAAK,IAAI,GAAM,CAAI,CAAC;GAC1D;GAEA,IAAI,GAAU;IACZ,IAAM,IAAO,EAAS,GAChB,IAAO,EAAS,IAAI,EAAS,SAAS,EAAM,SAAS;IAC3D,IAAQ,KAAK,IAAI,KAAK,IAAI,GAAG,CAAI,GAAG,KAAK,IAAI,GAAM,CAAI,CAAC;GAC1D;GAEA,OAAO;IACL,GAAG;IACH,GAAG;IACH,MAAM;KAAE,GAAG,IAAQ;KAAG,GAAG,IAAQ;IAAE;GACrC;EACF;CACF;AACF"}
@@ -0,0 +1,13 @@
1
+ import { Boundary, Middleware, MiddlewareState } from '../types';
2
+ export interface SizeAvailableSpace {
3
+ availableWidth: number;
4
+ availableHeight: number;
5
+ }
6
+ export interface SizeOptions {
7
+ padding?: number;
8
+ boundary?: Boundary;
9
+ /** 拿到可用空间后自行处理,比如设置 floating 的 maxHeight */
10
+ apply?: (space: SizeAvailableSpace, state: MiddlewareState) => void;
11
+ }
12
+ /** 计算 floating 在当前边界内的可用宽高,交给 apply 回调去应用(如设置 max-height 实现滚动) */
13
+ export declare function size(options?: SizeOptions): Middleware;
@@ -0,0 +1,74 @@
1
+ export type Side = "top" | "right" | "bottom" | "left";
2
+ export type Alignment = "start" | "end";
3
+ export type AlignedPlacement = `${Side}-${Alignment}`;
4
+ export type Placement = Side | AlignedPlacement;
5
+ export type Strategy = "absolute" | "fixed";
6
+ export type Axis = "x" | "y";
7
+ export interface Coords {
8
+ x: number;
9
+ y: number;
10
+ }
11
+ export interface Rect extends Coords {
12
+ width: number;
13
+ height: number;
14
+ }
15
+ export interface ElementRects {
16
+ reference: Rect;
17
+ floating: Rect;
18
+ }
19
+ export interface Elements {
20
+ reference: ReferenceElement;
21
+ floating: HTMLElement;
22
+ }
23
+ /**
24
+ * 虚拟参照元素:用于锚定到一个不存在真实 DOM 节点的位置,
25
+ * 最典型的场景就是右键菜单——锚点是鼠标点击的那个像素坐标,不是某个元素。
26
+ * 只要实现 getBoundingClientRect() 就能像真实 HTMLElement 一样参与定位计算。
27
+ */
28
+ export interface VirtualElement {
29
+ getBoundingClientRect(): Rect;
30
+ /**
31
+ * 可选:关联一个真实 DOM 节点,autoUpdate 会用它去查找可滚动祖先容器
32
+ * (虚拟元素本身没有父节点链,无法直接判断哪些祖先滚动会影响这个点的位置)。
33
+ */
34
+ contextElement?: Element;
35
+ }
36
+ export type ReferenceElement = Element | VirtualElement;
37
+ export interface MiddlewareData {
38
+ [key: string]: any;
39
+ }
40
+ /** 传给每个 middleware 的当前计算状态 */
41
+ export interface MiddlewareState extends Coords {
42
+ initialPlacement: Placement;
43
+ placement: Placement;
44
+ strategy: Strategy;
45
+ rects: ElementRects;
46
+ elements: Elements;
47
+ middlewareData: MiddlewareData;
48
+ }
49
+ export interface MiddlewareReturn extends Partial<Coords> {
50
+ data?: any;
51
+ /**
52
+ * 若返回该字段,表示需要用新的 placement 重新计算一轮,
53
+ * 主循环会用新 placement 重跑一次(用于 flip 等场景)。
54
+ */
55
+ reset?: boolean | {
56
+ placement?: Placement;
57
+ };
58
+ }
59
+ export interface Middleware {
60
+ name: string;
61
+ fn(state: MiddlewareState): MiddlewareReturn;
62
+ }
63
+ export interface ComputePositionConfig {
64
+ placement?: Placement;
65
+ strategy?: Strategy;
66
+ middleware?: Middleware[];
67
+ }
68
+ export interface ComputePositionReturn extends Coords {
69
+ placement: Placement;
70
+ strategy: Strategy;
71
+ middlewareData: MiddlewareData;
72
+ }
73
+ export interface Boundary extends Rect {
74
+ }