@neut/ui 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (707) hide show
  1. package/dist/components/accordion/Accordion/Accordion.js +3 -0
  2. package/dist/components/accordion/Accordion/Accordion.js.map +1 -1
  3. package/dist/components/accordion/AccordionContent/AccordionContent.js +27 -21
  4. package/dist/components/accordion/AccordionContent/AccordionContent.js.map +1 -1
  5. package/dist/components/accordion/AccordionItem/AccordionItem.js +3 -0
  6. package/dist/components/accordion/AccordionItem/AccordionItem.js.map +1 -1
  7. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js +19 -18
  8. package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js.map +1 -1
  9. package/dist/components/alert/Alert/Alert.js +8 -3
  10. package/dist/components/alert/Alert/Alert.js.map +1 -1
  11. package/dist/components/alert/AlertAction/AlertAction.js +8 -3
  12. package/dist/components/alert/AlertAction/AlertAction.js.map +1 -1
  13. package/dist/components/alert/AlertDescription/AlertDescription.js +8 -3
  14. package/dist/components/alert/AlertDescription/AlertDescription.js.map +1 -1
  15. package/dist/components/alert/AlertTitle/AlertTitle.js +8 -3
  16. package/dist/components/alert/AlertTitle/AlertTitle.js.map +1 -1
  17. package/dist/components/alert-dialog/AlertDialog/AlertDialog.d.ts +3 -1
  18. package/dist/components/alert-dialog/AlertDialog/AlertDialog.js +6 -1
  19. package/dist/components/alert-dialog/AlertDialog/AlertDialog.js.map +1 -1
  20. package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js +9 -7
  21. package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js.map +1 -1
  22. package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.types.d.ts +9 -3
  23. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js +8 -3
  24. package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js.map +1 -1
  25. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js +8 -3
  26. package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js.map +1 -1
  27. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js +8 -3
  28. package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js.map +1 -1
  29. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js +8 -3
  30. package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js.map +1 -1
  31. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js +8 -3
  32. package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js.map +1 -1
  33. package/dist/components/aspect-ratio/AspectRatio.js +3 -0
  34. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  35. package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js +15 -7
  36. package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js.map +1 -1
  37. package/dist/components/avatar/Avatar/Avatar.context.d.ts +7 -0
  38. package/dist/components/avatar/Avatar/Avatar.context.js +1 -1
  39. package/dist/components/avatar/Avatar/Avatar.context.js.map +1 -1
  40. package/dist/components/avatar/Avatar/Avatar.js +7 -2
  41. package/dist/components/avatar/Avatar/Avatar.js.map +1 -1
  42. package/dist/components/avatar/AvatarBadge/AvatarBadge.js +8 -3
  43. package/dist/components/avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  44. package/dist/components/avatar/AvatarFallback/AvatarFallback.js +10 -5
  45. package/dist/components/avatar/AvatarFallback/AvatarFallback.js.map +1 -1
  46. package/dist/components/avatar/AvatarGroup/AvatarGroup.js +8 -3
  47. package/dist/components/avatar/AvatarGroup/AvatarGroup.js.map +1 -1
  48. package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js +8 -3
  49. package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js.map +1 -1
  50. package/dist/components/avatar/AvatarImage/AvatarImage.js +19 -12
  51. package/dist/components/avatar/AvatarImage/AvatarImage.js.map +1 -1
  52. package/dist/components/badge/Badge.js +9 -4
  53. package/dist/components/badge/Badge.js.map +1 -1
  54. package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js +8 -3
  55. package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js.map +1 -1
  56. package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js +8 -3
  57. package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
  58. package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js +3 -0
  59. package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js.map +1 -1
  60. package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js +8 -3
  61. package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js.map +1 -1
  62. package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js +8 -3
  63. package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js.map +1 -1
  64. package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js +8 -3
  65. package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js.map +1 -1
  66. package/dist/components/bubble/BubbleContent/BubbleContent.js +21 -10
  67. package/dist/components/bubble/BubbleContent/BubbleContent.js.map +1 -1
  68. package/dist/components/button/Button.js +3 -0
  69. package/dist/components/button/Button.js.map +1 -1
  70. package/dist/components/button-group/ButtonGroup/ButtonGroup.js +3 -0
  71. package/dist/components/button-group/ButtonGroup/ButtonGroup.js.map +1 -1
  72. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js +16 -7
  73. package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js.map +1 -1
  74. package/dist/components/calendar/Calendar/Calendar.d.ts +2 -3
  75. package/dist/components/calendar/Calendar/Calendar.js +89 -264
  76. package/dist/components/calendar/Calendar/Calendar.js.map +1 -1
  77. package/dist/components/calendar/Calendar/Calendar.options.d.ts +43 -0
  78. package/dist/components/calendar/Calendar/Calendar.options.js +38 -0
  79. package/dist/components/calendar/Calendar/Calendar.options.js.map +1 -0
  80. package/dist/components/calendar/Calendar/Calendar.selection.d.ts +16 -0
  81. package/dist/components/calendar/Calendar/Calendar.selection.js +50 -0
  82. package/dist/components/calendar/Calendar/Calendar.selection.js.map +1 -0
  83. package/dist/components/calendar/Calendar/Calendar.styles.d.ts +8 -0
  84. package/dist/components/calendar/Calendar/Calendar.styles.js +32 -0
  85. package/dist/components/calendar/Calendar/Calendar.styles.js.map +1 -0
  86. package/dist/components/calendar/Calendar/Calendar.utils.d.ts +3 -1
  87. package/dist/components/calendar/Calendar/Calendar.utils.js +4 -1
  88. package/dist/components/calendar/Calendar/Calendar.utils.js.map +1 -1
  89. package/dist/components/calendar/Calendar/CalendarDay.d.ts +28 -0
  90. package/dist/components/calendar/Calendar/CalendarDay.js +41 -0
  91. package/dist/components/calendar/Calendar/CalendarDay.js.map +1 -0
  92. package/dist/components/calendar/Calendar/CalendarMonth.d.ts +35 -0
  93. package/dist/components/calendar/Calendar/CalendarMonth.js +127 -0
  94. package/dist/components/calendar/Calendar/CalendarMonth.js.map +1 -0
  95. package/dist/components/calendar/Calendar/CalendarMonthCaption.d.ts +22 -0
  96. package/dist/components/calendar/Calendar/CalendarMonthCaption.js +103 -0
  97. package/dist/components/calendar/Calendar/CalendarMonthCaption.js.map +1 -0
  98. package/dist/components/calendar/index.js +3 -2
  99. package/dist/components/card/Card/Card.js +3 -0
  100. package/dist/components/card/Card/Card.js.map +1 -1
  101. package/dist/components/card/CardAction/CardAction.js +8 -3
  102. package/dist/components/card/CardAction/CardAction.js.map +1 -1
  103. package/dist/components/card/CardContent/CardContent.js +8 -3
  104. package/dist/components/card/CardContent/CardContent.js.map +1 -1
  105. package/dist/components/card/CardDescription/CardDescription.js +8 -3
  106. package/dist/components/card/CardDescription/CardDescription.js.map +1 -1
  107. package/dist/components/card/CardFooter/CardFooter.js +8 -3
  108. package/dist/components/card/CardFooter/CardFooter.js.map +1 -1
  109. package/dist/components/card/CardHeader/CardHeader.js +8 -3
  110. package/dist/components/card/CardHeader/CardHeader.js.map +1 -1
  111. package/dist/components/card/CardTitle/CardTitle.js +8 -3
  112. package/dist/components/card/CardTitle/CardTitle.js.map +1 -1
  113. package/dist/components/carousel/Carousel/Carousel.context.js +1 -1
  114. package/dist/components/carousel/Carousel/Carousel.context.js.map +1 -1
  115. package/dist/components/carousel/Carousel/Carousel.js +19 -12
  116. package/dist/components/carousel/Carousel/Carousel.js.map +1 -1
  117. package/dist/components/carousel/Carousel/useKeyboardNavigation.d.ts +11 -1
  118. package/dist/components/carousel/Carousel/useKeyboardNavigation.js +5 -4
  119. package/dist/components/carousel/Carousel/useKeyboardNavigation.js.map +1 -1
  120. package/dist/components/carousel/CarouselContent/CarouselContent.js +8 -3
  121. package/dist/components/carousel/CarouselContent/CarouselContent.js.map +1 -1
  122. package/dist/components/carousel/CarouselNext/CarouselNext.js +29 -16
  123. package/dist/components/carousel/CarouselNext/CarouselNext.js.map +1 -1
  124. package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js +29 -16
  125. package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js.map +1 -1
  126. package/dist/components/checkbox/Checkbox/Checkbox.js +32 -25
  127. package/dist/components/checkbox/Checkbox/Checkbox.js.map +1 -1
  128. package/dist/components/collapsible/Collapsible/Collapsible.context.js +1 -1
  129. package/dist/components/collapsible/Collapsible/Collapsible.context.js.map +1 -1
  130. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js +13 -12
  131. package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js.map +1 -1
  132. package/dist/components/combobox/Combobox/Combobox.js +52 -52
  133. package/dist/components/combobox/Combobox/Combobox.js.map +1 -1
  134. package/dist/components/combobox/Combobox/Combobox.types.d.ts +15 -6
  135. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js +7 -3
  136. package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js.map +1 -1
  137. package/dist/components/combobox/ComboboxClear/ComboboxClear.js +1 -1
  138. package/dist/components/combobox/ComboboxClear/ComboboxClear.js.map +1 -1
  139. package/dist/components/combobox/ComboboxInput/ComboboxInput.js +26 -10
  140. package/dist/components/combobox/ComboboxInput/ComboboxInput.js.map +1 -1
  141. package/dist/components/combobox/ComboboxItem/ComboboxItem.js +6 -5
  142. package/dist/components/combobox/ComboboxItem/ComboboxItem.js.map +1 -1
  143. package/dist/components/combobox/ComboboxList/ComboboxList.js +17 -11
  144. package/dist/components/combobox/ComboboxList/ComboboxList.js.map +1 -1
  145. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js +8 -1
  146. package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js.map +1 -1
  147. package/dist/components/context-menu/ContextMenu/ContextMenu.js +10 -8
  148. package/dist/components/context-menu/ContextMenu/ContextMenu.js.map +1 -1
  149. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.d.ts +33 -0
  150. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.js +41 -0
  151. package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.js.map +1 -0
  152. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.d.ts +25 -0
  153. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.js +20 -0
  154. package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.js.map +1 -0
  155. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.d.ts +31 -0
  156. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.js +39 -0
  157. package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.js.map +1 -0
  158. package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js +70 -136
  159. package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js.map +1 -1
  160. package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js +2 -1
  161. package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js.map +1 -1
  162. package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js +20 -10
  163. package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js.map +1 -1
  164. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.d.ts +24 -0
  165. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.js +26 -0
  166. package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.js.map +1 -0
  167. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.d.ts +35 -0
  168. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.js +17 -0
  169. package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.js.map +1 -0
  170. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.d.ts +9 -11
  171. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js +36 -33
  172. package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js.map +1 -1
  173. package/dist/components/context-menu/context-menu.keyboard.d.ts +29 -0
  174. package/dist/components/context-menu/context-menu.keyboard.js +52 -0
  175. package/dist/components/context-menu/context-menu.keyboard.js.map +1 -0
  176. package/dist/components/context-menu/context-menu.typeahead.d.ts +27 -0
  177. package/dist/components/context-menu/context-menu.typeahead.js +19 -0
  178. package/dist/components/context-menu/context-menu.typeahead.js.map +1 -0
  179. package/dist/components/context-menu/context-menu.utils.d.ts +5 -2
  180. package/dist/components/context-menu/context-menu.utils.js +17 -39
  181. package/dist/components/context-menu/context-menu.utils.js.map +1 -1
  182. package/dist/components/date-picker/DatePicker/DatePicker.js +6 -0
  183. package/dist/components/date-picker/DatePicker/DatePicker.js.map +1 -1
  184. package/dist/components/dialog/Dialog/Dialog.context.js +1 -1
  185. package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
  186. package/dist/components/dialog/Dialog/Dialog.js +24 -15
  187. package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
  188. package/dist/components/dialog/Dialog/Dialog.types.d.ts +5 -0
  189. package/dist/components/dialog/DialogClose/DialogClose.js +20 -19
  190. package/dist/components/dialog/DialogClose/DialogClose.js.map +1 -1
  191. package/dist/components/dialog/DialogContent/DialogContent.context.js +1 -1
  192. package/dist/components/dialog/DialogContent/DialogContent.context.js.map +1 -1
  193. package/dist/components/dialog/DialogDescription/DialogDescription.js +8 -3
  194. package/dist/components/dialog/DialogDescription/DialogDescription.js.map +1 -1
  195. package/dist/components/dialog/DialogFooter/DialogFooter.js +8 -3
  196. package/dist/components/dialog/DialogFooter/DialogFooter.js.map +1 -1
  197. package/dist/components/dialog/DialogHeader/DialogHeader.js +8 -3
  198. package/dist/components/dialog/DialogHeader/DialogHeader.js.map +1 -1
  199. package/dist/components/dialog/DialogOverlay/DialogOverlay.js +3 -0
  200. package/dist/components/dialog/DialogOverlay/DialogOverlay.js.map +1 -1
  201. package/dist/components/dialog/DialogSurface/DialogSurface.js +34 -26
  202. package/dist/components/dialog/DialogSurface/DialogSurface.js.map +1 -1
  203. package/dist/components/dialog/DialogTitle/DialogTitle.js +8 -3
  204. package/dist/components/dialog/DialogTitle/DialogTitle.js.map +1 -1
  205. package/dist/components/drawer/Drawer/Drawer.js +1 -1
  206. package/dist/components/drawer/Drawer/Drawer.js.map +1 -1
  207. package/dist/components/drawer/Drawer/create-change-event-details.js +4 -20
  208. package/dist/components/drawer/Drawer/create-change-event-details.js.map +1 -1
  209. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.d.ts +32 -0
  210. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.js +36 -0
  211. package/dist/components/drawer/DrawerContent/drawer-swipe.utils.js.map +1 -0
  212. package/dist/components/drawer/DrawerContent/useDrawerSwipe.d.ts +3 -0
  213. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js +22 -42
  214. package/dist/components/drawer/DrawerContent/useDrawerSwipe.js.map +1 -1
  215. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js +1 -1
  216. package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js.map +1 -1
  217. package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js +7 -7
  218. package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js.map +1 -1
  219. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.d.ts +7 -1
  220. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js +10 -10
  221. package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js.map +1 -1
  222. package/dist/components/field/Field/Field.js +3 -0
  223. package/dist/components/field/Field/Field.js.map +1 -1
  224. package/dist/components/field/FieldContent/FieldContent.js +8 -3
  225. package/dist/components/field/FieldContent/FieldContent.js.map +1 -1
  226. package/dist/components/field/FieldDescription/FieldDescription.js +8 -3
  227. package/dist/components/field/FieldDescription/FieldDescription.js.map +1 -1
  228. package/dist/components/field/FieldError/FieldError.js +8 -3
  229. package/dist/components/field/FieldError/FieldError.js.map +1 -1
  230. package/dist/components/field/FieldGroup/FieldGroup.js +8 -3
  231. package/dist/components/field/FieldGroup/FieldGroup.js.map +1 -1
  232. package/dist/components/field/FieldLabel/FieldLabel.js +3 -0
  233. package/dist/components/field/FieldLabel/FieldLabel.js.map +1 -1
  234. package/dist/components/field/FieldLegend/FieldLegend.js +3 -0
  235. package/dist/components/field/FieldLegend/FieldLegend.js.map +1 -1
  236. package/dist/components/field/FieldSeparator/FieldSeparator.js +3 -0
  237. package/dist/components/field/FieldSeparator/FieldSeparator.js.map +1 -1
  238. package/dist/components/field/FieldSet/FieldSet.js +8 -3
  239. package/dist/components/field/FieldSet/FieldSet.js.map +1 -1
  240. package/dist/components/field/FieldTitle/FieldTitle.js +8 -3
  241. package/dist/components/field/FieldTitle/FieldTitle.js.map +1 -1
  242. package/dist/components/image/Image.utils.d.ts +14 -16
  243. package/dist/components/image/Image.utils.js +146 -190
  244. package/dist/components/image/Image.utils.js.map +1 -1
  245. package/dist/components/image/ImageElement.js +31 -27
  246. package/dist/components/image/ImageElement.js.map +1 -1
  247. package/dist/components/image/lib/blur.d.ts +31 -0
  248. package/dist/components/image/lib/blur.js +24 -0
  249. package/dist/components/image/lib/blur.js.map +1 -0
  250. package/dist/components/image/lib/dev-checks.d.ts +52 -0
  251. package/dist/components/image/lib/handle-loading.d.ts +13 -0
  252. package/dist/components/image/lib/handle-loading.js +20 -0
  253. package/dist/components/image/lib/handle-loading.js.map +1 -0
  254. package/dist/components/image/lib/loader.d.ts +39 -0
  255. package/dist/components/image/lib/loader.js +57 -0
  256. package/dist/components/image/lib/loader.js.map +1 -0
  257. package/dist/components/image/lib/static-import.d.ts +14 -0
  258. package/dist/components/image/lib/static-import.js +17 -0
  259. package/dist/components/image/lib/static-import.js.map +1 -0
  260. package/dist/components/input-group/InputGroup/InputGroup.js +8 -3
  261. package/dist/components/input-group/InputGroup/InputGroup.js.map +1 -1
  262. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js +3 -0
  263. package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js.map +1 -1
  264. package/dist/components/input-group/InputGroupButton/InputGroupButton.js +3 -0
  265. package/dist/components/input-group/InputGroupButton/InputGroupButton.js.map +1 -1
  266. package/dist/components/input-group/InputGroupInput/InputGroupInput.js +3 -0
  267. package/dist/components/input-group/InputGroupInput/InputGroupInput.js.map +1 -1
  268. package/dist/components/input-group/InputGroupText/InputGroupText.js +8 -3
  269. package/dist/components/input-group/InputGroupText/InputGroupText.js.map +1 -1
  270. package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js +3 -0
  271. package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js.map +1 -1
  272. package/dist/components/item/Item/Item.js +9 -0
  273. package/dist/components/item/Item/Item.js.map +1 -1
  274. package/dist/components/item/ItemActions/ItemActions.js +8 -3
  275. package/dist/components/item/ItemActions/ItemActions.js.map +1 -1
  276. package/dist/components/item/ItemContent/ItemContent.js +8 -3
  277. package/dist/components/item/ItemContent/ItemContent.js.map +1 -1
  278. package/dist/components/item/ItemDescription/ItemDescription.js +8 -3
  279. package/dist/components/item/ItemDescription/ItemDescription.js.map +1 -1
  280. package/dist/components/item/ItemFooter/ItemFooter.js +8 -3
  281. package/dist/components/item/ItemFooter/ItemFooter.js.map +1 -1
  282. package/dist/components/item/ItemGroup/ItemGroup.js +8 -3
  283. package/dist/components/item/ItemGroup/ItemGroup.js.map +1 -1
  284. package/dist/components/item/ItemHeader/ItemHeader.js +8 -3
  285. package/dist/components/item/ItemHeader/ItemHeader.js.map +1 -1
  286. package/dist/components/item/ItemMedia/ItemMedia.js +3 -0
  287. package/dist/components/item/ItemMedia/ItemMedia.js.map +1 -1
  288. package/dist/components/item/ItemSeparator/ItemSeparator.js +3 -0
  289. package/dist/components/item/ItemSeparator/ItemSeparator.js.map +1 -1
  290. package/dist/components/item/ItemTitle/ItemTitle.js +8 -3
  291. package/dist/components/item/ItemTitle/ItemTitle.js.map +1 -1
  292. package/dist/components/kbd/Kbd.js +16 -6
  293. package/dist/components/kbd/Kbd.js.map +1 -1
  294. package/dist/components/label/Label.js +3 -0
  295. package/dist/components/label/Label.js.map +1 -1
  296. package/dist/components/marker/Marker/Marker.styles.d.ts +1 -1
  297. package/dist/components/message-scroller/message-scroller.anchoring.d.ts +60 -0
  298. package/dist/components/message-scroller/message-scroller.anchoring.js +139 -0
  299. package/dist/components/message-scroller/message-scroller.anchoring.js.map +1 -0
  300. package/dist/components/message-scroller/message-scroller.anchors.d.ts +12 -0
  301. package/dist/components/message-scroller/message-scroller.anchors.js +23 -0
  302. package/dist/components/message-scroller/message-scroller.anchors.js.map +1 -0
  303. package/dist/components/message-scroller/message-scroller.commands.d.ts +43 -0
  304. package/dist/components/message-scroller/message-scroller.commands.js +51 -0
  305. package/dist/components/message-scroller/message-scroller.commands.js.map +1 -0
  306. package/dist/components/message-scroller/message-scroller.dom-measure.d.ts +29 -0
  307. package/dist/components/message-scroller/message-scroller.dom-measure.js +37 -0
  308. package/dist/components/message-scroller/message-scroller.dom-measure.js.map +1 -0
  309. package/dist/components/message-scroller/message-scroller.measure.d.ts +27 -0
  310. package/dist/components/message-scroller/message-scroller.measure.js +21 -0
  311. package/dist/components/message-scroller/message-scroller.measure.js.map +1 -0
  312. package/dist/components/message-scroller/message-scroller.scroll-state.d.ts +54 -0
  313. package/dist/components/message-scroller/message-scroller.scroll-state.js +74 -0
  314. package/dist/components/message-scroller/message-scroller.scroll-state.js.map +1 -0
  315. package/dist/components/message-scroller/message-scroller.scroll-target.d.ts +27 -0
  316. package/dist/components/message-scroller/message-scroller.scroll-target.js +33 -0
  317. package/dist/components/message-scroller/message-scroller.scroll-target.js.map +1 -0
  318. package/dist/components/message-scroller/message-scroller.utils.d.ts +7 -0
  319. package/dist/components/message-scroller/message-scroller.utils.js +3 -2
  320. package/dist/components/message-scroller/message-scroller.utils.js.map +1 -1
  321. package/dist/components/message-scroller/message-scroller.visibility.d.ts +43 -0
  322. package/dist/components/message-scroller/message-scroller.visibility.js +82 -0
  323. package/dist/components/message-scroller/message-scroller.visibility.js.map +1 -0
  324. package/dist/components/message-scroller/useMessageScrollerEngine.js +87 -337
  325. package/dist/components/message-scroller/useMessageScrollerEngine.js.map +1 -1
  326. package/dist/components/number-input/NumberInput/NumberInput.js +21 -19
  327. package/dist/components/number-input/NumberInput/NumberInput.js.map +1 -1
  328. package/dist/components/number-input/NumberInput/NumberInput.utils.d.ts +6 -2
  329. package/dist/components/number-input/NumberInput/NumberInput.utils.js +1 -3
  330. package/dist/components/number-input/NumberInput/NumberInput.utils.js.map +1 -1
  331. package/dist/components/number-input/NumberInput/create-change-event-details.d.ts +1 -2
  332. package/dist/components/number-input/NumberInput/create-change-event-details.js +4 -20
  333. package/dist/components/number-input/NumberInput/create-change-event-details.js.map +1 -1
  334. package/dist/components/pagination/Pagination/Pagination.js +8 -3
  335. package/dist/components/pagination/Pagination/Pagination.js.map +1 -1
  336. package/dist/components/pagination/PaginationContent/PaginationContent.js +8 -3
  337. package/dist/components/pagination/PaginationContent/PaginationContent.js.map +1 -1
  338. package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js +8 -3
  339. package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js.map +1 -1
  340. package/dist/components/pagination/PaginationLink/PaginationLink.js +3 -0
  341. package/dist/components/pagination/PaginationLink/PaginationLink.js.map +1 -1
  342. package/dist/components/pagination/PaginationNext/PaginationNext.js +3 -0
  343. package/dist/components/pagination/PaginationNext/PaginationNext.js.map +1 -1
  344. package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js +3 -0
  345. package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js.map +1 -1
  346. package/dist/components/popover/PopoverContent/PopoverContent.js +3 -0
  347. package/dist/components/popover/PopoverContent/PopoverContent.js.map +1 -1
  348. package/dist/components/progress/Progress/Progress.context.js +1 -1
  349. package/dist/components/progress/Progress/Progress.context.js.map +1 -1
  350. package/dist/components/progress/Progress/Progress.js +3 -0
  351. package/dist/components/progress/Progress/Progress.js.map +1 -1
  352. package/dist/components/progress/ProgressIndicator/ProgressIndicator.js +3 -0
  353. package/dist/components/progress/ProgressIndicator/ProgressIndicator.js.map +1 -1
  354. package/dist/components/progress/ProgressLabel/ProgressLabel.js +8 -3
  355. package/dist/components/progress/ProgressLabel/ProgressLabel.js.map +1 -1
  356. package/dist/components/progress/ProgressTrack/ProgressTrack.js +3 -0
  357. package/dist/components/progress/ProgressTrack/ProgressTrack.js.map +1 -1
  358. package/dist/components/progress/ProgressValue/ProgressValue.js +8 -3
  359. package/dist/components/progress/ProgressValue/ProgressValue.js.map +1 -1
  360. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.d.ts +48 -0
  361. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.js +23 -0
  362. package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.js.map +1 -0
  363. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js +62 -49
  364. package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js.map +1 -1
  365. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js +4 -1
  366. package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js.map +1 -1
  367. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js +1 -2
  368. package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js.map +1 -1
  369. package/dist/components/questionnaire/questionnaire.answers.d.ts +42 -0
  370. package/dist/components/questionnaire/questionnaire.answers.js +62 -0
  371. package/dist/components/questionnaire/questionnaire.answers.js.map +1 -0
  372. package/dist/components/questionnaire/questionnaire.aria.d.ts +34 -0
  373. package/dist/components/questionnaire/questionnaire.aria.js +28 -0
  374. package/dist/components/questionnaire/questionnaire.aria.js.map +1 -0
  375. package/dist/components/questionnaire/questionnaire.dom-watch.d.ts +9 -0
  376. package/dist/components/questionnaire/questionnaire.dom-watch.js +18 -0
  377. package/dist/components/questionnaire/questionnaire.dom-watch.js.map +1 -0
  378. package/dist/components/questionnaire/questionnaire.focus.d.ts +26 -0
  379. package/dist/components/questionnaire/questionnaire.focus.js +19 -0
  380. package/dist/components/questionnaire/questionnaire.focus.js.map +1 -0
  381. package/dist/components/questionnaire/questionnaire.item-view.d.ts +50 -0
  382. package/dist/components/questionnaire/questionnaire.item-view.js +36 -0
  383. package/dist/components/questionnaire/questionnaire.item-view.js.map +1 -0
  384. package/dist/components/questionnaire/questionnaire.keys.d.ts +29 -0
  385. package/dist/components/questionnaire/questionnaire.keys.js +34 -0
  386. package/dist/components/questionnaire/questionnaire.keys.js.map +1 -0
  387. package/dist/components/questionnaire/questionnaire.registry.d.ts +21 -0
  388. package/dist/components/questionnaire/questionnaire.registry.js +15 -0
  389. package/dist/components/questionnaire/questionnaire.registry.js.map +1 -0
  390. package/dist/components/questionnaire/questionnaire.shortcuts.d.ts +24 -0
  391. package/dist/components/questionnaire/questionnaire.shortcuts.js +31 -0
  392. package/dist/components/questionnaire/questionnaire.shortcuts.js.map +1 -0
  393. package/dist/components/questionnaire/questionnaire.utils.d.ts +17 -1
  394. package/dist/components/questionnaire/questionnaire.utils.js +5 -2
  395. package/dist/components/questionnaire/questionnaire.utils.js.map +1 -1
  396. package/dist/components/questionnaire/questionnaire.validation.d.ts +43 -0
  397. package/dist/components/questionnaire/questionnaire.validation.js +17 -0
  398. package/dist/components/questionnaire/questionnaire.validation.js.map +1 -0
  399. package/dist/components/questionnaire/useQuestionnaireItem.d.ts +0 -2
  400. package/dist/components/questionnaire/useQuestionnaireItem.js +83 -121
  401. package/dist/components/questionnaire/useQuestionnaireItem.js.map +1 -1
  402. package/dist/components/questionnaire/useQuestionnaireRoot.js +78 -99
  403. package/dist/components/questionnaire/useQuestionnaireRoot.js.map +1 -1
  404. package/dist/components/radio-group/RadioGroup/RadioGroup.js +3 -0
  405. package/dist/components/radio-group/RadioGroup/RadioGroup.js.map +1 -1
  406. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js +3 -0
  407. package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js.map +1 -1
  408. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.d.ts +37 -0
  409. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.js +37 -0
  410. package/dist/components/resizable/ResizableHandle/resizable.handle-drag.js.map +1 -0
  411. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.d.ts +24 -0
  412. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.js +36 -0
  413. package/dist/components/resizable/ResizableHandle/resizable.handle-keys.js.map +1 -0
  414. package/dist/components/resizable/ResizableHandle/useResizableHandle.d.ts +3 -4
  415. package/dist/components/resizable/ResizableHandle/useResizableHandle.js +30 -63
  416. package/dist/components/resizable/ResizableHandle/useResizableHandle.js.map +1 -1
  417. package/dist/components/resizable/ResizablePanel/ResizablePanel.d.ts +4 -2
  418. package/dist/components/resizable/ResizablePanel/ResizablePanel.js +23 -50
  419. package/dist/components/resizable/ResizablePanel/ResizablePanel.js.map +1 -1
  420. package/dist/components/resizable/ResizablePanel/useResizablePanel.d.ts +30 -0
  421. package/dist/components/resizable/ResizablePanel/useResizablePanel.js +37 -0
  422. package/dist/components/resizable/ResizablePanel/useResizablePanel.js.map +1 -0
  423. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.d.ts +4 -1
  424. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js +10 -17
  425. package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js.map +1 -1
  426. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.d.ts +11 -0
  427. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.js +17 -0
  428. package/dist/components/resizable/ResizablePanelGroup/useDragCursor.js.map +1 -0
  429. package/dist/components/resizable/resizable.collapse.d.ts +27 -0
  430. package/dist/components/resizable/resizable.collapse.js +24 -0
  431. package/dist/components/resizable/resizable.collapse.js.map +1 -0
  432. package/dist/components/resizable/resizable.commands.d.ts +32 -0
  433. package/dist/components/resizable/resizable.commands.js +40 -0
  434. package/dist/components/resizable/resizable.commands.js.map +1 -0
  435. package/dist/components/resizable/resizable.constraints.d.ts +23 -0
  436. package/dist/components/resizable/resizable.constraints.js +32 -0
  437. package/dist/components/resizable/resizable.constraints.js.map +1 -0
  438. package/dist/components/resizable/resizable.lifecycle.d.ts +35 -0
  439. package/dist/components/resizable/resizable.lifecycle.js +32 -0
  440. package/dist/components/resizable/resizable.lifecycle.js.map +1 -0
  441. package/dist/components/resizable/resizable.registry.d.ts +31 -0
  442. package/dist/components/resizable/resizable.registry.js +38 -0
  443. package/dist/components/resizable/resizable.registry.js.map +1 -0
  444. package/dist/components/resizable/resizable.reporting.d.ts +36 -0
  445. package/dist/components/resizable/resizable.reporting.js +33 -0
  446. package/dist/components/resizable/resizable.reporting.js.map +1 -0
  447. package/dist/components/resizable/resizable.resize.d.ts +47 -0
  448. package/dist/components/resizable/resizable.resize.js +28 -0
  449. package/dist/components/resizable/resizable.resize.js.map +1 -0
  450. package/dist/components/resizable/resizable.sizes.d.ts +31 -0
  451. package/dist/components/resizable/resizable.sizes.js +46 -0
  452. package/dist/components/resizable/resizable.sizes.js.map +1 -0
  453. package/dist/components/resizable/resizable.storage.d.ts +17 -0
  454. package/dist/components/resizable/resizable.storage.js +29 -0
  455. package/dist/components/resizable/resizable.storage.js.map +1 -0
  456. package/dist/components/resizable/resizable.utils.d.ts +10 -3
  457. package/dist/components/resizable/resizable.utils.js +16 -10
  458. package/dist/components/resizable/resizable.utils.js.map +1 -1
  459. package/dist/components/resizable/useResizablePanelGroup.js +62 -164
  460. package/dist/components/resizable/useResizablePanelGroup.js.map +1 -1
  461. package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js +1 -1
  462. package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js.map +1 -1
  463. package/dist/components/scroll-area/ScrollArea/ScrollArea.d.ts +9 -0
  464. package/dist/components/scroll-area/ScrollArea/ScrollArea.js +28 -39
  465. package/dist/components/scroll-area/ScrollArea/ScrollArea.js.map +1 -1
  466. package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js +3 -3
  467. package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js.map +1 -1
  468. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.d.ts +22 -0
  469. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.js +34 -0
  470. package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.js.map +1 -0
  471. package/dist/components/scroll-area/ScrollBar/ScrollBar.d.ts +8 -0
  472. package/dist/components/scroll-area/ScrollBar/ScrollBar.js +38 -71
  473. package/dist/components/scroll-area/ScrollBar/ScrollBar.js.map +1 -1
  474. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.d.ts +56 -0
  475. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.js +61 -0
  476. package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.js.map +1 -0
  477. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.d.ts +25 -0
  478. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.js +26 -0
  479. package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.js.map +1 -0
  480. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.d.ts +19 -0
  481. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.js +37 -0
  482. package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.js.map +1 -0
  483. package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +5 -7
  484. package/dist/components/scroll-arrows/ScrollArrowButton.js +14 -44
  485. package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -1
  486. package/dist/components/scroll-arrows/ScrollArrows.d.ts +4 -3
  487. package/dist/components/scroll-arrows/ScrollArrows.js +16 -22
  488. package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -1
  489. package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +7 -7
  490. package/dist/components/scroll-arrows/useHoverScroll.d.ts +29 -0
  491. package/dist/components/scroll-arrows/useHoverScroll.js +39 -0
  492. package/dist/components/scroll-arrows/useHoverScroll.js.map +1 -0
  493. package/dist/components/select/SelectContent/useSelectContent.js +3 -3
  494. package/dist/components/select/SelectGroup/SelectGroup.d.ts +8 -2
  495. package/dist/components/select/SelectGroup/SelectGroup.js +20 -6
  496. package/dist/components/select/SelectGroup/SelectGroup.js.map +1 -1
  497. package/dist/components/select/SelectGroup/SelectGroup.types.d.ts +9 -0
  498. package/dist/components/select/SelectGroup/index.d.ts +1 -0
  499. package/dist/components/select/SelectTrigger/SelectTrigger.js.map +1 -1
  500. package/dist/components/select/SelectTrigger/useSelectTrigger.js +1 -1
  501. package/dist/components/select/SelectTrigger/useSelectTrigger.js.map +1 -1
  502. package/dist/components/separator/Separator.js +3 -0
  503. package/dist/components/separator/Separator.js.map +1 -1
  504. package/dist/components/sheet/SheetClose/SheetClose.js +18 -17
  505. package/dist/components/sheet/SheetClose/SheetClose.js.map +1 -1
  506. package/dist/components/sidebar/Sidebar/Sidebar.js +14 -6
  507. package/dist/components/sidebar/Sidebar/Sidebar.js.map +1 -1
  508. package/dist/components/sidebar/SidebarContent/SidebarContent.js +8 -3
  509. package/dist/components/sidebar/SidebarContent/SidebarContent.js.map +1 -1
  510. package/dist/components/sidebar/SidebarFooter/SidebarFooter.js +8 -3
  511. package/dist/components/sidebar/SidebarFooter/SidebarFooter.js.map +1 -1
  512. package/dist/components/sidebar/SidebarGroup/SidebarGroup.js +8 -3
  513. package/dist/components/sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
  514. package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js +3 -0
  515. package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js.map +1 -1
  516. package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js +8 -3
  517. package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js.map +1 -1
  518. package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js +3 -0
  519. package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js.map +1 -1
  520. package/dist/components/sidebar/SidebarHeader/SidebarHeader.js +8 -3
  521. package/dist/components/sidebar/SidebarHeader/SidebarHeader.js.map +1 -1
  522. package/dist/components/sidebar/SidebarInput/SidebarInput.js +3 -0
  523. package/dist/components/sidebar/SidebarInput/SidebarInput.js.map +1 -1
  524. package/dist/components/sidebar/SidebarInset/SidebarInset.js +8 -3
  525. package/dist/components/sidebar/SidebarInset/SidebarInset.js.map +1 -1
  526. package/dist/components/sidebar/SidebarMenu/SidebarMenu.js +8 -3
  527. package/dist/components/sidebar/SidebarMenu/SidebarMenu.js.map +1 -1
  528. package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js +8 -3
  529. package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js.map +1 -1
  530. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js +6 -0
  531. package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js.map +1 -1
  532. package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js +8 -3
  533. package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js.map +1 -1
  534. package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js +8 -3
  535. package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js.map +1 -1
  536. package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js +8 -3
  537. package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js.map +1 -1
  538. package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js +3 -0
  539. package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js.map +1 -1
  540. package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js +8 -3
  541. package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js.map +1 -1
  542. package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js +1 -1
  543. package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js.map +1 -1
  544. package/dist/components/sidebar/SidebarProvider/SidebarProvider.js +30 -27
  545. package/dist/components/sidebar/SidebarProvider/SidebarProvider.js.map +1 -1
  546. package/dist/components/sidebar/SidebarProvider/useIsMobile.d.ts +10 -0
  547. package/dist/components/sidebar/SidebarProvider/useIsMobile.js +14 -0
  548. package/dist/components/sidebar/SidebarProvider/useIsMobile.js.map +1 -0
  549. package/dist/components/sidebar/SidebarRail/SidebarRail.js +8 -3
  550. package/dist/components/sidebar/SidebarRail/SidebarRail.js.map +1 -1
  551. package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js +3 -0
  552. package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js.map +1 -1
  553. package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js +3 -0
  554. package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js.map +1 -1
  555. package/dist/components/skeleton/Skeleton.js +8 -3
  556. package/dist/components/skeleton/Skeleton.js.map +1 -1
  557. package/dist/components/slider/Slider/Slider.context.js +1 -1
  558. package/dist/components/slider/Slider/Slider.context.js.map +1 -1
  559. package/dist/components/slider/Slider/Slider.js +3 -0
  560. package/dist/components/slider/Slider/Slider.js.map +1 -1
  561. package/dist/components/slider/SliderControl/SliderControl.js +4 -1
  562. package/dist/components/slider/SliderControl/SliderControl.js.map +1 -1
  563. package/dist/components/slider/SliderIndicator/SliderIndicator.js +3 -0
  564. package/dist/components/slider/SliderIndicator/SliderIndicator.js.map +1 -1
  565. package/dist/components/slider/SliderThumb/SliderThumb.js +18 -3
  566. package/dist/components/slider/SliderThumb/SliderThumb.js.map +1 -1
  567. package/dist/components/slider/SliderThumb/useSliderThumb.d.ts +1 -0
  568. package/dist/components/slider/SliderThumb/useSliderThumb.js +3 -2
  569. package/dist/components/slider/SliderThumb/useSliderThumb.js.map +1 -1
  570. package/dist/components/slider/SliderTrack/SliderTrack.js +3 -0
  571. package/dist/components/slider/SliderTrack/SliderTrack.js.map +1 -1
  572. package/dist/components/spinner/Spinner.js +3 -0
  573. package/dist/components/spinner/Spinner.js.map +1 -1
  574. package/dist/components/switch/Switch.js +7 -0
  575. package/dist/components/switch/Switch.js.map +1 -1
  576. package/dist/components/tabs/Tabs/Tabs.context.js +1 -1
  577. package/dist/components/tabs/Tabs/Tabs.context.js.map +1 -1
  578. package/dist/components/tabs/Tabs/useTabsKeyboard.d.ts +7 -11
  579. package/dist/components/tabs/Tabs/useTabsKeyboard.js +8 -42
  580. package/dist/components/tabs/Tabs/useTabsKeyboard.js.map +1 -1
  581. package/dist/components/tabs/TabsList/TabsList.context.js +1 -1
  582. package/dist/components/tabs/TabsList/TabsList.context.js.map +1 -1
  583. package/dist/components/tabs/TabsList/TabsList.js +10 -10
  584. package/dist/components/tabs/TabsList/TabsList.js.map +1 -1
  585. package/dist/components/tabs/TabsTrigger/TabsTrigger.js +8 -8
  586. package/dist/components/tabs/TabsTrigger/TabsTrigger.js.map +1 -1
  587. package/dist/components/textarea/Textarea.js +8 -3
  588. package/dist/components/textarea/Textarea.js.map +1 -1
  589. package/dist/components/time-picker/TimePicker/create-change-event-details.d.ts +1 -2
  590. package/dist/components/time-picker/TimePicker/create-change-event-details.js +4 -20
  591. package/dist/components/time-picker/TimePicker/create-change-event-details.js.map +1 -1
  592. package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js +1 -3
  593. package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js.map +1 -1
  594. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.d.ts +34 -0
  595. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.js +43 -0
  596. package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.js.map +1 -0
  597. package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js +34 -59
  598. package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js.map +1 -1
  599. package/dist/components/toast/Toast/Toast.d.ts +8 -2
  600. package/dist/components/toast/Toast/Toast.js +92 -146
  601. package/dist/components/toast/Toast/Toast.js.map +1 -1
  602. package/dist/components/toast/Toast/Toast.types.d.ts +1 -1
  603. package/dist/components/toast/Toast/Toast.types.js.map +1 -1
  604. package/dist/components/toast/Toast/Toast.utils.d.ts +47 -0
  605. package/dist/components/toast/Toast/Toast.utils.js +47 -0
  606. package/dist/components/toast/Toast/Toast.utils.js.map +1 -0
  607. package/dist/components/toast/Toast/ToastActionButton.d.ts +16 -0
  608. package/dist/components/toast/Toast/ToastActionButton.js +27 -0
  609. package/dist/components/toast/Toast/ToastActionButton.js.map +1 -0
  610. package/dist/components/toast/Toast/ToastActions.d.ts +12 -0
  611. package/dist/components/toast/Toast/ToastActions.js +65 -0
  612. package/dist/components/toast/Toast/ToastActions.js.map +1 -0
  613. package/dist/components/toast/Toast/ToastCloseButton.d.ts +12 -0
  614. package/dist/components/toast/Toast/ToastCloseButton.js +26 -0
  615. package/dist/components/toast/Toast/ToastCloseButton.js.map +1 -0
  616. package/dist/components/toast/Toast/ToastContent.d.ts +8 -0
  617. package/dist/components/toast/Toast/ToastContent.js +30 -0
  618. package/dist/components/toast/Toast/ToastContent.js.map +1 -0
  619. package/dist/components/toast/Toast/ToastIcon.d.ts +14 -0
  620. package/dist/components/toast/Toast/ToastIcon.js +36 -0
  621. package/dist/components/toast/Toast/ToastIcon.js.map +1 -0
  622. package/dist/components/toast/Toast/useToastLifecycle.d.ts +29 -0
  623. package/dist/components/toast/Toast/useToastLifecycle.js +30 -0
  624. package/dist/components/toast/Toast/useToastLifecycle.js.map +1 -0
  625. package/dist/components/toast/Toaster/ToastViewport.d.ts +33 -0
  626. package/dist/components/toast/Toaster/ToastViewport.js +73 -0
  627. package/dist/components/toast/Toaster/ToastViewport.js.map +1 -0
  628. package/dist/components/toast/Toaster/Toaster.d.ts +4 -0
  629. package/dist/components/toast/Toaster/Toaster.js +64 -82
  630. package/dist/components/toast/Toaster/Toaster.js.map +1 -1
  631. package/dist/components/toast/Toaster/Toaster.utils.d.ts +15 -0
  632. package/dist/components/toast/Toaster/Toaster.utils.js +4 -1
  633. package/dist/components/toast/Toaster/Toaster.utils.js.map +1 -1
  634. package/dist/components/toast/Toaster/useToaster.d.ts +28 -0
  635. package/dist/components/toast/Toaster/useToaster.js +26 -0
  636. package/dist/components/toast/Toaster/useToaster.js.map +1 -0
  637. package/dist/components/toast/index.js +4 -3
  638. package/dist/components/toast/state/promise-toast.d.ts +17 -0
  639. package/dist/components/toast/state/promise-toast.js +33 -0
  640. package/dist/components/toast/state/promise-toast.js.map +1 -0
  641. package/dist/components/toast/state/store.d.ts +21 -0
  642. package/dist/components/toast/state/store.js +45 -0
  643. package/dist/components/toast/state/store.js.map +1 -0
  644. package/dist/components/toast/state/toast.d.ts +9 -10
  645. package/dist/components/toast/state/toast.js +30 -89
  646. package/dist/components/toast/state/toast.js.map +1 -1
  647. package/dist/components/toggle/Toggle/Toggle.js +2 -1
  648. package/dist/components/toggle/Toggle/Toggle.js.map +1 -1
  649. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js +1 -1
  650. package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -1
  651. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.d.ts +6 -2
  652. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js +4 -20
  653. package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js.map +1 -1
  654. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.d.ts +7 -10
  655. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js +10 -40
  656. package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js.map +1 -1
  657. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js +5 -5
  658. package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -1
  659. package/dist/components/tooltip/TooltipContent/usePresence.d.ts +27 -0
  660. package/dist/components/tooltip/TooltipContent/usePresence.js +24 -0
  661. package/dist/components/tooltip/TooltipContent/usePresence.js.map +1 -0
  662. package/dist/components/tooltip/TooltipContent/useTooltipContent.js +22 -35
  663. package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
  664. package/dist/hooks/useFontLoader.js +1 -1
  665. package/dist/hooks/useFontLoader.js.map +1 -1
  666. package/dist/hooks/useScrollLock.js +13 -16
  667. package/dist/hooks/useScrollLock.js.map +1 -1
  668. package/dist/index.js +328 -320
  669. package/dist/lib/positioner/index.d.ts +1 -0
  670. package/dist/lib/positioner/utils/dom.d.ts +8 -0
  671. package/dist/lib/positioner/utils/dom.js +1 -1
  672. package/dist/lib/positioner/utils/dom.js.map +1 -1
  673. package/dist/types/props.types.d.ts +1 -1
  674. package/dist/ui.css +1 -1
  675. package/dist/utils/call-event-handler.d.ts +16 -0
  676. package/dist/utils/call-event-handler.js +15 -0
  677. package/dist/utils/call-event-handler.js.map +1 -0
  678. package/dist/utils/clsx.d.ts +1 -1
  679. package/dist/utils/clsx.js +2 -7
  680. package/dist/utils/create-change-event-details.d.ts +25 -0
  681. package/dist/utils/create-change-event-details.js +25 -0
  682. package/dist/utils/create-change-event-details.js.map +1 -0
  683. package/dist/utils/get-style.d.ts +7 -9
  684. package/dist/utils/get-style.js +16 -0
  685. package/dist/utils/get-style.js.map +1 -0
  686. package/dist/utils/index.d.ts +8 -0
  687. package/dist/utils/index.js +7 -1
  688. package/dist/utils/number.d.ts +7 -0
  689. package/dist/utils/number.js +8 -0
  690. package/dist/utils/number.js.map +1 -0
  691. package/dist/utils/roving-navigation.d.ts +64 -0
  692. package/dist/utils/roving-navigation.js +66 -0
  693. package/dist/utils/roving-navigation.js.map +1 -0
  694. package/dist/utils/string.d.ts +17 -0
  695. package/dist/utils/string.js +11 -0
  696. package/dist/utils/string.js.map +1 -0
  697. package/package.json +18 -7
  698. package/dist/components/carousel/Carousel/Carousel.utils.d.ts +0 -0
  699. package/dist/components/field/FieldError/useFieldError.d.ts +0 -0
  700. package/dist/components/hover-card/hover-card.utils.d.ts +0 -6
  701. package/dist/components/tabs/Tabs/call-event-handler.d.ts +0 -5
  702. package/dist/components/tabs/Tabs/call-event-handler.js +0 -9
  703. package/dist/components/tabs/Tabs/call-event-handler.js.map +0 -1
  704. package/dist/components/toggle-group/call-event-handler.d.ts +0 -5
  705. package/dist/components/toggle-group/call-event-handler.js +0 -9
  706. package/dist/components/toggle-group/call-event-handler.js.map +0 -1
  707. package/dist/utils/clsx.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Resizable 的相邻面板尺寸算法。
3
+ *
4
+ * 单一职责:给定「一对相邻面板」的约束,算出拖动后的两个尺寸。
5
+ * 不碰 store、不读 DOM,因此 min / max / collapsible 吸附的每个分支都可独立单测。
6
+ */
7
+ /** 浮点比较容差(对齐上游语义) */
8
+ export declare const EPSILON = 0.001;
9
+ /** 一对相邻面板的约束 */
10
+ export interface PairConstraints {
11
+ /** 前一个面板拖动能到的最小值(可折叠时是 collapsedSize) */
12
+ prevMin: number;
13
+ prevMax: number;
14
+ prevCollapsible: boolean;
15
+ /** 折叠态尺寸(仅 `prevCollapsible` 时有意义) */
16
+ prevCollapsedSize: number;
17
+ /** 非折叠时拖动能到的最小值 */
18
+ prevFloor: number;
19
+ nextMin: number;
20
+ nextMax: number;
21
+ nextCollapsible: boolean;
22
+ nextCollapsedSize: number;
23
+ nextFloor: number;
24
+ }
25
+ /**
26
+ * 把目标尺寸夹到「两个面板的可行区间」内。
27
+ * 下界取「prev 自己的最小值」与「total 减去 next 最大值」的较大者;
28
+ * 上界取「prev 最大值」与「total 减去 next 最小值」的较小者。
29
+ */
30
+ export declare function pairBounds(constraints: PairConstraints, total: number): {
31
+ lo: number;
32
+ hi: number;
33
+ };
34
+ /**
35
+ * 计算拖动后「前一个面板」的最终尺寸。
36
+ *
37
+ * 步骤:夹到可行区间 → 对 prev 做折叠吸附 → 对 next 做折叠吸附 → 再夹一次
38
+ * (吸附可能让尺寸越界)。返回的 `next` 永远等于 `total - prev`,因此两者之和守恒。
39
+ */
40
+ export declare function resolvePairSize(constraints: PairConstraints, targetPrev: number, total: number): number;
41
+ /**
42
+ * 计算面板的初始尺寸。
43
+ *
44
+ * 规则:优先用 `saved[id]`,否则用面板自己的 `defaultSize`;
45
+ * 没有指定尺寸的面板平分剩余空间(剩余为负时按 0 分)。
46
+ */
47
+ export declare function distributeInitialSizes(ids: string[], saved: Record<string, number> | undefined, defaults: Array<number | undefined>): number[];
@@ -0,0 +1,28 @@
1
+ //#region src/components/resizable/resizable.resize.ts
2
+ var e = .001;
3
+ function t(e, t, n) {
4
+ return Math.min(Math.max(e, t), n);
5
+ }
6
+ function n(e, t) {
7
+ return {
8
+ lo: Math.max(e.prevMin, t - e.nextMax),
9
+ hi: Math.min(e.prevMax, t - e.nextMin)
10
+ };
11
+ }
12
+ function r(e, t, n) {
13
+ return e - t < n - e ? t : n;
14
+ }
15
+ function i(e, i, a) {
16
+ let { lo: o, hi: s } = n(e, a), c = t(i, o, s);
17
+ e.prevCollapsible && c < e.prevFloor - .001 && c > e.prevCollapsedSize + .001 && (c = r(c, e.prevCollapsedSize, e.prevFloor));
18
+ let l = a - c;
19
+ return e.nextCollapsible && l < e.nextFloor - .001 && l > e.nextCollapsedSize + .001 && (c = a - r(l, e.nextCollapsedSize, e.nextFloor)), t(c, o, s);
20
+ }
21
+ function a(e, t, n) {
22
+ let r = e.map((e, r) => t?.[e] ?? n[r]), i = r.filter((e) => e !== void 0), a = r.length - i.length, o = i.reduce((e, t) => e + t, 0), s = Math.max(0, 100 - o), c = a > 0 ? s / a : 0;
23
+ return r.map((e) => e ?? c);
24
+ }
25
+ //#endregion
26
+ export { e as EPSILON, a as distributeInitialSizes, n as pairBounds, i as resolvePairSize };
27
+
28
+ //# sourceMappingURL=resizable.resize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.resize.js","names":["EPSILON","clamp","value","min","max","pairBounds","constraints","total","snapToNearest","size","collapsedSize","minSize","resolvePairSize","targetPrev","lo","hi","rest","distributeInitialSizes","raw","ids","saved","id","defaults","index","defined","unknown","used","acc","remaining","fill"],"sources":["../../../src/components/resizable/resizable.resize.ts"],"sourcesContent":["/**\n * Resizable 的相邻面板尺寸算法。\n *\n * 单一职责:给定「一对相邻面板」的约束,算出拖动后的两个尺寸。\n * 不碰 store、不读 DOM,因此 min / max / collapsible 吸附的每个分支都可独立单测。\n */\n\n/** 浮点比较容差(对齐上游语义) */\nexport const EPSILON = 0.001;\n\n/** 一对相邻面板的约束 */\nexport interface PairConstraints {\n /** 前一个面板拖动能到的最小值(可折叠时是 collapsedSize) */\n prevMin: number;\n prevMax: number;\n prevCollapsible: boolean;\n /** 折叠态尺寸(仅 `prevCollapsible` 时有意义) */\n prevCollapsedSize: number;\n /** 非折叠时拖动能到的最小值 */\n prevFloor: number;\n nextMin: number;\n nextMax: number;\n nextCollapsible: boolean;\n nextCollapsedSize: number;\n nextFloor: number;\n}\n\n/** 夹取 */\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\n/**\n * 把目标尺寸夹到「两个面板的可行区间」内。\n * 下界取「prev 自己的最小值」与「total 减去 next 最大值」的较大者;\n * 上界取「prev 最大值」与「total 减去 next 最小值」的较小者。\n */\nexport function pairBounds(\n constraints: PairConstraints,\n total: number,\n): { lo: number; hi: number } {\n return {\n lo: Math.max(constraints.prevMin, total - constraints.nextMax),\n hi: Math.min(constraints.prevMax, total - constraints.nextMin),\n };\n}\n\n/**\n * 折叠吸附:落在 `(collapsedSize, minSize)` 之间时贴向较近的一端。\n * 这是「拖到接近折叠位置时自动吸入折叠/展开」的体验来源。\n */\nfunction snapToNearest(\n size: number,\n collapsedSize: number,\n minSize: number,\n): number {\n const distanceToCollapsed = size - collapsedSize;\n const distanceToMin = minSize - size;\n return distanceToCollapsed < distanceToMin ? collapsedSize : minSize;\n}\n\n/**\n * 计算拖动后「前一个面板」的最终尺寸。\n *\n * 步骤:夹到可行区间 → 对 prev 做折叠吸附 → 对 next 做折叠吸附 → 再夹一次\n * (吸附可能让尺寸越界)。返回的 `next` 永远等于 `total - prev`,因此两者之和守恒。\n */\nexport function resolvePairSize(\n constraints: PairConstraints,\n targetPrev: number,\n total: number,\n): number {\n const { lo, hi } = pairBounds(constraints, total);\n let size = clamp(targetPrev, lo, hi);\n\n if (\n constraints.prevCollapsible &&\n size < constraints.prevFloor - EPSILON &&\n size > constraints.prevCollapsedSize + EPSILON\n ) {\n size = snapToNearest(\n size,\n constraints.prevCollapsedSize,\n constraints.prevFloor,\n );\n }\n\n const rest = total - size;\n if (\n constraints.nextCollapsible &&\n rest < constraints.nextFloor - EPSILON &&\n rest > constraints.nextCollapsedSize + EPSILON\n ) {\n size =\n total -\n snapToNearest(rest, constraints.nextCollapsedSize, constraints.nextFloor);\n }\n\n return clamp(size, lo, hi);\n}\n\n/**\n * 计算面板的初始尺寸。\n *\n * 规则:优先用 `saved[id]`,否则用面板自己的 `defaultSize`;\n * 没有指定尺寸的面板平分剩余空间(剩余为负时按 0 分)。\n */\nexport function distributeInitialSizes(\n ids: string[],\n saved: Record<string, number> | undefined,\n defaults: Array<number | undefined>,\n): number[] {\n const raw = ids.map((id, index) => saved?.[id] ?? defaults[index]);\n const defined = raw.filter((value): value is number => value !== undefined);\n const unknown = raw.length - defined.length;\n const used = defined.reduce((acc, value) => acc + value, 0);\n const remaining = Math.max(0, 100 - used);\n const fill = unknown > 0 ? remaining / unknown : 0;\n return raw.map((value) => value ?? fill);\n}\n"],"mappings":";AAQA,IAAaA,IAAU;AAoBvB,SAASC,EAAM,GAAe,GAAa,GAAqB;CAC9D,OAAO,KAAK,IAAI,KAAK,IAAIC,GAAOC,CAAG,GAAGC,CAAG;AAC3C;AAOA,SAAgBC,EACd,GACA,GAC4B;CAC5B,OAAO;EACL,IAAI,KAAK,IAAIC,EAAY,SAASC,IAAQD,EAAY,OAAO;EAC7D,IAAI,KAAK,IAAIA,EAAY,SAASC,IAAQD,EAAY,OAAO;CAC/D;AACF;AAMA,SAASE,EACP,GACA,GACA,GACQ;CAGR,OAF4BC,IAAOC,IACbC,IAAUF,IACaC,IAAgBC;AAC/D;AAQA,SAAgBC,EACd,GACA,GACA,GACQ;CACR,IAAM,EAAE,OAAI,UAAOP,EAAWC,GAAaC,CAAK,GAC5CE,IAAOR,EAAMY,GAAYC,GAAIC,CAAE;CAEnC,AACET,EAAY,mBACZG,IAAOH,EAAY,YAAA,QACnBG,IAAOH,EAAY,oBAAA,SAEnB,IAAOE,EACLC,GACAH,EAAY,mBACZA,EAAY,SACd;CAGF,IAAMU,IAAOT,IAAQE;CAWrB,OATEH,EAAY,mBACZU,IAAOV,EAAY,YAAA,QACnBU,IAAOV,EAAY,oBAAA,SAEnB,IACEC,IACAC,EAAcQ,GAAMV,EAAY,mBAAmBA,EAAY,SAAS,IAGrEL,EAAMQ,GAAMK,GAAIC,CAAE;AAC3B;AAQA,SAAgBE,EACd,GACA,GACA,GACU;CACV,IAAMC,IAAMC,EAAI,KAAK,GAAI,MAAUC,IAAQC,MAAOC,EAASC,EAAM,GAC3DC,IAAUN,EAAI,QAAQ,MAA2BhB,MAAU,KAAA,CAAS,GACpEuB,IAAUP,EAAI,SAASM,EAAQ,QAC/BE,IAAOF,EAAQ,QAAQ,GAAK,MAAUG,IAAMzB,GAAO,CAAC,GACpD0B,IAAY,KAAK,IAAI,GAAG,MAAMF,CAAI,GAClCG,IAAOJ,IAAU,IAAIG,IAAYH,IAAU;CACjD,OAAOP,EAAI,KAAK,MAAUhB,KAAS2B,CAAI;AACzC"}
@@ -0,0 +1,31 @@
1
+ import { PanelRegistry } from './resizable.registry';
2
+ import { ResizablePanelMeta } from './resizable.types';
3
+ export interface PanelSizesContext {
4
+ /** 按 DOM 顺序排列的面板(写入时要与值的顺序对齐) */
5
+ metas: () => ResizablePanelMeta[];
6
+ registry: PanelRegistry;
7
+ /** 单个面板尺寸变化的上报(onResize / onCollapse / onExpand) */
8
+ reportSizeChange: (meta: ResizablePanelMeta, oldSize: number, newSize: number) => void;
9
+ }
10
+ export interface PanelSizes {
11
+ /** 细粒度的百分比 store:只更新涉及的键,子节点不重渲染 */
12
+ store: Record<string, number>;
13
+ sizeOf: (id: string) => number;
14
+ /** 按面板顺序批量写入;`report` 为 false 时(初始化)不上报 */
15
+ applyAll: (values: number[], report?: boolean) => void;
16
+ /** 把一对相邻面板的总量按目标值重新切分,并上报两侧变化 */
17
+ applyPair: (prev: ResizablePanelMeta, next: ResizablePanelMeta, targetPrev: number, total: number) => void;
18
+ /** 命令式设置单个面板,把它与相邻面板之间重新分配 */
19
+ applyPanelTarget: (meta: ResizablePanelMeta, targetSize: number) => void;
20
+ /** 面板卸载时删掉它的尺寸 */
21
+ remove: (id: string) => void;
22
+ }
23
+ /**
24
+ * 面板尺寸的账目。
25
+ *
26
+ * 单一职责:持有百分比 store 并承担**所有**写入——批量套用、相邻对重分配、
27
+ * 单面板命令式调整、以及卸载清理。约束求解委托给 `resizable.resize` /
28
+ * `resizable.constraints`,上报委托给传入的 `reportSizeChange`,
29
+ * 读与不读 store 的判断都收在这里,调用方不再直接碰 `setStore`。
30
+ */
31
+ export declare function createPanelSizes(ctx: PanelSizesContext): PanelSizes;
@@ -0,0 +1,46 @@
1
+ import { resolvePairSize as e } from "./resizable.resize.js";
2
+ import { pairConstraintsOf as t } from "./resizable.constraints.js";
3
+ import { createStore as n, produce as r } from "solid-js/store";
4
+ //#region src/components/resizable/resizable.sizes.ts
5
+ function i(i) {
6
+ let [a, o] = n({}), s = (e) => a[e] ?? 0, c = (e, t = !0) => {
7
+ let n = i.metas(), a = n.map((e) => s(e.id));
8
+ o(r((t) => {
9
+ n.forEach((n, r) => {
10
+ let i = e[r];
11
+ i !== void 0 && (t[n.id] = i);
12
+ });
13
+ })), t && n.forEach((t, n) => {
14
+ let r = e[n];
15
+ r !== void 0 && i.reportSizeChange(t, a[n], r);
16
+ });
17
+ }, l = (n, a, c, l) => {
18
+ let u = e(t(n, a), c, l), d = s(n.id), f = s(a.id);
19
+ o(r((e) => {
20
+ e[n.id] = u, e[a.id] = l - u;
21
+ })), i.reportSizeChange(n, d, u), i.reportSizeChange(a, f, l - u);
22
+ };
23
+ return {
24
+ store: a,
25
+ sizeOf: s,
26
+ applyAll: c,
27
+ applyPair: l,
28
+ applyPanelTarget: (e, t) => {
29
+ let { prev: n, next: r } = i.registry.neighbors(e);
30
+ if (r) l(e, r, t, s(e.id) + s(r.id));
31
+ else if (n) {
32
+ let r = s(n.id) + s(e.id);
33
+ l(n, e, r - t, r);
34
+ } else o(e.id, 100);
35
+ },
36
+ remove: (e) => {
37
+ o(r((t) => {
38
+ delete t[e];
39
+ }));
40
+ }
41
+ };
42
+ }
43
+ //#endregion
44
+ export { i as createPanelSizes };
45
+
46
+ //# sourceMappingURL=resizable.sizes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.sizes.js","names":["createPanelSizes","store","setStore","createStore","sizeOf","id","applyAll","list","ctx","before","meta","produce","value","values","index","report","applyPair","size","resolvePairSize","pairConstraintsOf","prev","next","targetPrev","total","prevOld","nextOld","targetSize","draft"],"sources":["../../../src/components/resizable/resizable.sizes.ts"],"sourcesContent":["import { createStore, produce } from \"solid-js/store\";\nimport { pairConstraintsOf } from \"./resizable.constraints\";\nimport type { PanelRegistry } from \"./resizable.registry\";\nimport { resolvePairSize } from \"./resizable.resize\";\nimport type { ResizablePanelMeta } from \"./resizable.types\";\n\nexport interface PanelSizesContext {\n /** 按 DOM 顺序排列的面板(写入时要与值的顺序对齐) */\n metas: () => ResizablePanelMeta[];\n registry: PanelRegistry;\n /** 单个面板尺寸变化的上报(onResize / onCollapse / onExpand) */\n reportSizeChange: (\n meta: ResizablePanelMeta,\n oldSize: number,\n newSize: number,\n ) => void;\n}\n\nexport interface PanelSizes {\n /** 细粒度的百分比 store:只更新涉及的键,子节点不重渲染 */\n store: Record<string, number>;\n sizeOf: (id: string) => number;\n /** 按面板顺序批量写入;`report` 为 false 时(初始化)不上报 */\n applyAll: (values: number[], report?: boolean) => void;\n /** 把一对相邻面板的总量按目标值重新切分,并上报两侧变化 */\n applyPair: (\n prev: ResizablePanelMeta,\n next: ResizablePanelMeta,\n targetPrev: number,\n total: number,\n ) => void;\n /** 命令式设置单个面板,把它与相邻面板之间重新分配 */\n applyPanelTarget: (meta: ResizablePanelMeta, targetSize: number) => void;\n /** 面板卸载时删掉它的尺寸 */\n remove: (id: string) => void;\n}\n\n/**\n * 面板尺寸的账目。\n *\n * 单一职责:持有百分比 store 并承担**所有**写入——批量套用、相邻对重分配、\n * 单面板命令式调整、以及卸载清理。约束求解委托给 `resizable.resize` /\n * `resizable.constraints`,上报委托给传入的 `reportSizeChange`,\n * 读与不读 store 的判断都收在这里,调用方不再直接碰 `setStore`。\n */\nexport function createPanelSizes(ctx: PanelSizesContext): PanelSizes {\n const [store, setStore] = createStore<Record<string, number>>({});\n\n const sizeOf = (id: string) => store[id] ?? 0;\n\n const applyAll = (values: number[], report = true) => {\n const list = ctx.metas();\n const before = list.map((meta) => sizeOf(meta.id));\n setStore(\n produce((draft) => {\n list.forEach((meta, index) => {\n const value = values[index];\n if (value !== undefined) draft[meta.id] = value;\n });\n }),\n );\n if (!report) return;\n\n list.forEach((meta, index) => {\n const value = values[index];\n if (value !== undefined) {\n ctx.reportSizeChange(meta, before[index]!, value);\n }\n });\n };\n\n const applyPair: PanelSizes[\"applyPair\"] = (\n prev,\n next,\n targetPrev,\n total,\n ) => {\n const size = resolvePairSize(\n pairConstraintsOf(prev, next),\n targetPrev,\n total,\n );\n const prevOld = sizeOf(prev.id);\n const nextOld = sizeOf(next.id);\n\n setStore(\n produce((draft) => {\n draft[prev.id] = size;\n draft[next.id] = total - size;\n }),\n );\n ctx.reportSizeChange(prev, prevOld, size);\n ctx.reportSizeChange(next, nextOld, total - size);\n };\n\n const applyPanelTarget: PanelSizes[\"applyPanelTarget\"] = (\n meta,\n targetSize,\n ) => {\n const { prev, next } = ctx.registry.neighbors(meta);\n if (next) {\n applyPair(meta, next, targetSize, sizeOf(meta.id) + sizeOf(next.id));\n } else if (prev) {\n const total = sizeOf(prev.id) + sizeOf(meta.id);\n applyPair(prev, meta, total - targetSize, total);\n } else {\n // 独苗面板:没有可重分配的对象,直接占满\n setStore(meta.id, 100);\n }\n };\n\n const remove = (id: string) => {\n setStore(\n produce((draft) => {\n delete draft[id];\n }),\n );\n };\n\n return { store, sizeOf, applyAll, applyPair, applyPanelTarget, remove };\n}\n"],"mappings":";;;;AA6CA,SAAgBA,EAAiB,GAAoC;CACnE,IAAM,CAACC,GAAOC,KAAYC,EAAoC,CAAC,CAAC,GAE1DC,KAAU,MAAeH,EAAMI,MAAO,GAEtCC,KAAY,GAAkB,IAAS,OAAS;EACpD,IAAMC,IAAOC,EAAI,MAAM,GACjBC,IAASF,EAAK,KAAK,MAASH,EAAOM,EAAK,EAAE,CAAC;EASjD,AARAR,EACES,GAAS,MAAU;GACjB,EAAK,SAAS,GAAM,MAAU;IAC5B,IAAMC,IAAQC,EAAOC;IACrB,AAAIF,MAAU,KAAA,MAAW,EAAMF,EAAK,MAAME;GAC5C,CAAC;EACH,CAAC,CACH,GACKG,KAELR,EAAK,SAAS,GAAM,MAAU;GAC5B,IAAMK,IAAQC,EAAOC;GACrB,AAAIF,MAAU,KAAA,KACZJ,EAAI,iBAAiBE,GAAMD,EAAOK,IAASF,CAAK;EAEpD,CAAC;CACH,GAEMI,KACJ,GACA,GACA,GACA,MACG;EACH,IAAMC,IAAOC,EACXC,EAAkBC,GAAMC,CAAI,GAC5BC,GACAC,CACF,GACMC,IAAUpB,EAAOgB,EAAK,EAAE,GACxBK,IAAUrB,EAAOiB,EAAK,EAAE;EAS9B,AAPAnB,EACES,GAAS,MAAU;GAEjB,AADA,EAAMS,EAAK,MAAMH,GACjB,EAAMI,EAAK,MAAME,IAAQN;EAC3B,CAAC,CACH,GACAT,EAAI,iBAAiBY,GAAMI,GAASP,CAAI,GACxCT,EAAI,iBAAiBa,GAAMI,GAASF,IAAQN,CAAI;CAClD;CA0BA,OAAO;EAAE;EAAO;EAAQ;EAAU;EAAW,mBAvB3C,GACA,MACG;GACH,IAAM,EAAE,SAAM,YAAST,EAAI,SAAS,UAAUE,CAAI;GAClD,IAAIW,GACF,EAAUX,GAAMW,GAAMK,GAAYtB,EAAOM,EAAK,EAAE,IAAIN,EAAOiB,EAAK,EAAE,CAAC;QAC9D,IAAID,GAAM;IACf,IAAMG,IAAQnB,EAAOgB,EAAK,EAAE,IAAIhB,EAAOM,EAAK,EAAE;IAC9C,EAAUU,GAAMV,GAAMa,IAAQG,GAAYH,CAAK;GACjD,OAEE,EAASb,EAAK,IAAI,GAAG;EAEzB;EAU+D,SAR/C,MAAe;GAC7B,EACEC,GAAS,MAAU;IACjB,OAAOgB,EAAMtB;GACf,CAAC,CACH;EACF;CAEsE;AACxE"}
@@ -0,0 +1,17 @@
1
+ import { ResizableLayout } from './resizable.types';
2
+ export declare const STORAGE_PREFIX = "neut-resizable:";
3
+ /** 由 `autoSaveId` 得到 storage key;未配置时返回 undefined(表示不持久化) */
4
+ export declare function storageKey(autoSaveId: string | undefined): string | undefined;
5
+ /** 解析显式传入的 storage,缺省回退到 localStorage(SSR 下为 undefined) */
6
+ export declare function resolveStorage(explicit: Storage | undefined): Storage | undefined;
7
+ export interface PersistContext {
8
+ autoSaveId: string | undefined;
9
+ storage: Storage | undefined;
10
+ }
11
+ /** 写入布局;失败时静默忽略 */
12
+ export declare function persistLayout(context: PersistContext, layout: ResizableLayout): void;
13
+ /**
14
+ * 读取已保存的布局。
15
+ * 只有「非 null 的对象」才被接受(防止 JSON 里存了 `null` / 数字 / 字符串)。
16
+ */
17
+ export declare function readSavedLayout(context: PersistContext): ResizableLayout | undefined;
@@ -0,0 +1,29 @@
1
+ //#region src/components/resizable/resizable.storage.ts
2
+ var e = "neut-resizable:";
3
+ function t(t) {
4
+ return t ? `${e}${t}` : void 0;
5
+ }
6
+ function n(e) {
7
+ return e || (typeof localStorage < "u" ? localStorage : void 0);
8
+ }
9
+ function r(e, r) {
10
+ let i = t(e.autoSaveId), a = n(e.storage);
11
+ if (i && a) try {
12
+ a.setItem(i, JSON.stringify(r));
13
+ } catch {}
14
+ }
15
+ function i(e) {
16
+ let r = t(e.autoSaveId), i = n(e.storage);
17
+ if (r && i) try {
18
+ let e = i.getItem(r);
19
+ if (!e) return;
20
+ let t = JSON.parse(e);
21
+ return typeof t == "object" && t ? t : void 0;
22
+ } catch {
23
+ return;
24
+ }
25
+ }
26
+ //#endregion
27
+ export { e as STORAGE_PREFIX, r as persistLayout, i as readSavedLayout, n as resolveStorage, t as storageKey };
28
+
29
+ //# sourceMappingURL=resizable.storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.storage.js","names":["STORAGE_PREFIX","storageKey","autoSaveId","resolveStorage","explicit","persistLayout","key","context","storage","layout","readSavedLayout","raw","parsed"],"sources":["../../../src/components/resizable/resizable.storage.ts"],"sourcesContent":["/**\n * Resizable 的布局持久化。\n *\n * 单一职责:把布局读写到 `Storage`(默认 localStorage)。\n * 所有异常都被吞掉——隐私模式、配额超限、损坏的 JSON 都不应让组件崩溃。\n */\n\nimport type { ResizableLayout } from \"./resizable.types\";\n\nexport const STORAGE_PREFIX = \"neut-resizable:\";\n\n/** 由 `autoSaveId` 得到 storage key;未配置时返回 undefined(表示不持久化) */\nexport function storageKey(autoSaveId: string | undefined): string | undefined {\n return autoSaveId ? `${STORAGE_PREFIX}${autoSaveId}` : undefined;\n}\n\n/** 解析显式传入的 storage,缺省回退到 localStorage(SSR 下为 undefined) */\nexport function resolveStorage(\n explicit: Storage | undefined,\n): Storage | undefined {\n if (explicit) return explicit;\n return typeof localStorage !== \"undefined\" ? localStorage : undefined;\n}\n\nexport interface PersistContext {\n autoSaveId: string | undefined;\n storage: Storage | undefined;\n}\n\n/** 写入布局;失败时静默忽略 */\nexport function persistLayout(\n context: PersistContext,\n layout: ResizableLayout,\n): void {\n const key = storageKey(context.autoSaveId);\n const storage = resolveStorage(context.storage);\n if (!key || !storage) return;\n try {\n storage.setItem(key, JSON.stringify(layout));\n } catch {\n // 隐私模式等场景下忽略持久化失败\n }\n}\n\n/**\n * 读取已保存的布局。\n * 只有「非 null 的对象」才被接受(防止 JSON 里存了 `null` / 数字 / 字符串)。\n */\nexport function readSavedLayout(\n context: PersistContext,\n): ResizableLayout | undefined {\n const key = storageKey(context.autoSaveId);\n const storage = resolveStorage(context.storage);\n if (!key || !storage) return undefined;\n try {\n const raw = storage.getItem(key);\n if (!raw) return undefined;\n const parsed = JSON.parse(raw) as unknown;\n return typeof parsed === \"object\" && parsed !== null\n ? (parsed as ResizableLayout)\n : undefined;\n } catch {\n return undefined;\n }\n}\n"],"mappings":";AASA,IAAaA,IAAiB;AAG9B,SAAgBC,EAAW,GAAoD;CAC7E,OAAOC,IAAa,GAAGF,IAAiBE,MAAe,KAAA;AACzD;AAGA,SAAgBC,EACd,GACqB;CAErB,OADIC,MACG,OAAO,eAAiB,MAAc,eAAe,KAAA;AAC9D;AAQA,SAAgBC,EACd,GACA,GACM;CACN,IAAMC,IAAML,EAAWM,EAAQ,UAAU,GACnCC,IAAUL,EAAeI,EAAQ,OAAO;CAC9C,IAAKD,KAAQE,GACb,IAAI;EACF,EAAQ,QAAQF,GAAK,KAAK,UAAUG,CAAM,CAAC;CAC7C,QAAQ,CAER;AACF;AAMA,SAAgBC,EACd,GAC6B;CAC7B,IAAMJ,IAAML,EAAWM,EAAQ,UAAU,GACnCC,IAAUL,EAAeI,EAAQ,OAAO;CAC9C,IAAKD,KAAQE,GACb,IAAI;EACF,IAAMG,IAAMH,EAAQ,QAAQF,CAAG;EAC/B,IAAI,CAACK,GAAK;EACV,IAAMC,IAAS,KAAK,MAAMD,CAAG;EAC7B,OAAO,OAAOC,KAAW,YAAYA,IAChCA,IACD,KAAA;CACN,QAAQ;EACN;CACF;AACF"}
@@ -1,6 +1,6 @@
1
+ import { JSX } from 'solid-js';
1
2
  /** 解析尺寸:number/`"25%"`/`"25"` 都按百分比处理(不支持 px,按需再扩展) */
2
3
  export declare function parseSize(value: number | string | undefined, fallback: number): number;
3
- export declare function clamp(value: number, min: number, max: number): number;
4
4
  /** 百分比保留 2 位小数,避免 onLayoutChange/layout 输出出现长尾浮点 */
5
5
  export declare function roundPercent(value: number): number;
6
6
  /**
@@ -12,5 +12,12 @@ export declare function normalizeSizes(raw: number[], bounds: Array<{
12
12
  min: number;
13
13
  max: number;
14
14
  }>): number[];
15
- /** camelCase -> kebab-case;CSS 自定义属性(--x)原样保留 */
16
- export declare function toKebabCase(key: string): string;
15
+ /**
16
+ * 面板的 `style` 文本:`flex-grow` 承载百分比尺寸,配 `flex-shrink/basis`
17
+ * 保证面板只按权重分配主轴空间。
18
+ *
19
+ * 用字符串而非对象声明 style,是因为模板字面量会被 Solid 包进 effect,
20
+ * 尺寸变化时能可靠更新;对象形式里的 getter 不保证被编译器识别为动态。
21
+ * 调用方传入的 style 支持字符串原样拼接或对象(键转 kebab-case,空值跳过)。
22
+ */
23
+ export declare function buildPanelStyleText(size: number, style?: string | JSX.CSSProperties): string;
@@ -1,17 +1,16 @@
1
+ import { toKebabCase as e } from "../../utils/string.js";
2
+ import { clamp as t } from "../../utils/number.js";
1
3
  //#region src/components/resizable/resizable.utils.ts
2
- function e(e, t) {
4
+ function n(e, t) {
3
5
  if (e == null) return t;
4
6
  if (typeof e == "number") return Number.isFinite(e) ? e : t;
5
- let n = e.trim(), r = (n.endsWith("%"), Number.parseFloat(n));
7
+ let n = e.trim(), r = Number.parseFloat(n);
6
8
  return Number.isFinite(r) ? r : t;
7
9
  }
8
- function t(e, t, n) {
9
- return Math.min(n, Math.max(t, e));
10
- }
11
- function n(e) {
10
+ function r(e) {
12
11
  return Math.round(e * 100) / 100;
13
12
  }
14
- function r(e, n) {
13
+ function i(e, n) {
15
14
  if (e.length === 0) return [];
16
15
  let r = e.map((e, r) => t(e, n[r].min, n[r].max)), i = r.reduce((e, t) => e + t, 0);
17
16
  if (i <= 0) {
@@ -36,10 +35,17 @@ function r(e, n) {
36
35
  }
37
36
  return r;
38
37
  }
39
- function i(e) {
40
- return e.startsWith("--") ? e : e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`);
38
+ function a(t, n) {
39
+ let r = [
40
+ `flex-grow:${t}`,
41
+ "flex-shrink:1",
42
+ "flex-basis:0%"
43
+ ];
44
+ if (typeof n == "string") return r.push(n), r.join(";");
45
+ if (n && typeof n == "object") for (let [t, i] of Object.entries(n)) i != null && r.push(`${e(t)}:${i}`);
46
+ return r.join(";");
41
47
  }
42
48
  //#endregion
43
- export { t as clamp, r as normalizeSizes, e as parseSize, n as roundPercent, i as toKebabCase };
49
+ export { a as buildPanelStyleText, i as normalizeSizes, n as parseSize, r as roundPercent };
44
50
 
45
51
  //# sourceMappingURL=resizable.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.utils.js","names":["parseSize","value","fallback","trimmed","numeric","clamp","max","min","roundPercent","normalizeSizes","raw","result","bounds","index","sum","acc","equal","iteration","fixedSum","free","bound","target","freeSum","toKebabCase","key","char"],"sources":["../../../src/components/resizable/resizable.utils.ts"],"sourcesContent":["/** 解析尺寸:number/`\"25%\"`/`\"25\"` 都按百分比处理(不支持 px,按需再扩展) */\nexport function parseSize(\n value: number | string | undefined,\n fallback: number,\n): number {\n if (value === undefined || value === null) return fallback;\n if (typeof value === \"number\") {\n return Number.isFinite(value) ? value : fallback;\n }\n const trimmed = value.trim();\n const numeric = trimmed.endsWith(\"%\")\n ? Number.parseFloat(trimmed)\n : Number.parseFloat(trimmed);\n return Number.isFinite(numeric) ? numeric : fallback;\n}\n\nexport function clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\n/** 百分比保留 2 位小数,避免 onLayoutChange/layout 输出出现长尾浮点 */\nexport function roundPercent(value: number): number {\n return Math.round(value * 100) / 100;\n}\n\n/**\n * 把一组原始权重归一化到总和 100,并在迭代中尊重每个面板的上下界。\n * 之所以不用简单的按比例缩放:min/max 会在缩放后再次越界,需要固定越界项、\n * 把剩余空间按权重分给其余项(最多 4 轮即可收敛)。\n */\nexport function normalizeSizes(\n raw: number[],\n bounds: Array<{ min: number; max: number }>,\n): number[] {\n if (raw.length === 0) return [];\n const result = raw.map((value, index) =>\n clamp(value, bounds[index]!.min, bounds[index]!.max),\n );\n const sum = result.reduce((acc, value) => acc + value, 0);\n if (sum <= 0) {\n const equal = 100 / raw.length;\n return raw.map(() => equal);\n }\n for (let index = 0; index < result.length; index += 1) {\n result[index] = (result[index]! * 100) / sum;\n }\n\n for (let iteration = 0; iteration < 4; iteration += 1) {\n let fixedSum = 0;\n const free: number[] = [];\n for (let index = 0; index < result.length; index += 1) {\n const bound = bounds[index]!;\n if (result[index]! > bound.max) {\n result[index] = bound.max;\n fixedSum += bound.max;\n } else if (result[index]! < bound.min) {\n result[index] = bound.min;\n fixedSum += bound.min;\n } else {\n free.push(index);\n }\n }\n if (free.length === 0) break;\n const target = 100 - fixedSum;\n const freeSum = free.reduce((acc, index) => acc + result[index]!, 0);\n if (freeSum <= 0) {\n const equal = target / free.length;\n for (const index of free) result[index] = equal;\n break;\n }\n for (const index of free) {\n result[index] = (result[index]! * target) / freeSum;\n }\n }\n return result;\n}\n\n/** camelCase -> kebab-case;CSS 自定义属性(--x)原样保留 */\nexport function toKebabCase(key: string): string {\n if (key.startsWith(\"--\")) return key;\n return key.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);\n}\n"],"mappings":";AACA,SAAgBA,EACd,GACA,GACQ;CACR,IAAIC,KAAiC,MAAM,OAAOC;CAClD,IAAI,OAAOD,KAAU,UACnB,OAAO,OAAO,SAASA,CAAK,IAAIA,IAAQC;CAE1C,IAAMC,IAAUF,EAAM,KAAK,GACrBG,KAAUD,EAAQ,SAAS,GAAG,GAChC,OAAO,WAAWA,CAAO;CAE7B,OAAO,OAAO,SAASC,CAAO,IAAIA,IAAUF;AAC9C;AAEA,SAAgBG,EAAM,GAAe,GAAa,GAAqB;CACrE,OAAO,KAAK,IAAIC,GAAK,KAAK,IAAIC,GAAKN,CAAK,CAAC;AAC3C;AAGA,SAAgBO,EAAa,GAAuB;CAClD,OAAO,KAAK,MAAMP,IAAQ,GAAG,IAAI;AACnC;AAOA,SAAgBQ,EACd,GACA,GACU;CACV,IAAIC,EAAI,WAAW,GAAG,OAAO,CAAC;CAC9B,IAAMC,IAASD,EAAI,KAAK,GAAO,MAC7BL,EAAMJ,GAAOW,EAAOC,EAAM,CAAE,KAAKD,EAAOC,EAAM,CAAE,GAAG,CACrD,GACMC,IAAMH,EAAO,QAAQ,GAAK,MAAUI,IAAMd,GAAO,CAAC;CACxD,IAAIa,KAAO,GAAG;EACZ,IAAME,IAAQ,MAAMN,EAAI;EACxB,OAAOA,EAAI,UAAUM,CAAK;CAC5B;CACA,KAAK,IAAIH,IAAQ,GAAGA,IAAQF,EAAO,QAAQ,KAAS,GAClD,EAAOE,KAAUF,EAAOE,KAAU,MAAOC;CAG3C,KAAK,IAAIG,IAAY,GAAGA,IAAY,GAAG,KAAa,GAAG;EACrD,IAAIC,IAAW,GACTC,IAAiB,CAAC;EACxB,KAAK,IAAIN,IAAQ,GAAGA,IAAQF,EAAO,QAAQ,KAAS,GAAG;GACrD,IAAMS,IAAQR,EAAOC;GACrB,AAAIF,EAAOE,KAAUO,EAAM,OACzB,EAAOP,KAASO,EAAM,KACtB,KAAYA,EAAM,OACTT,EAAOE,KAAUO,EAAM,OAChC,EAAOP,KAASO,EAAM,KACtB,KAAYA,EAAM,OAElBD,EAAK,KAAKN,CAAK;EAEnB;EACA,IAAIM,EAAK,WAAW,GAAG;EACvB,IAAME,IAAS,MAAMH,GACfI,IAAUH,EAAK,QAAQ,GAAK,MAAUJ,IAAMJ,EAAOE,IAAS,CAAC;EACnE,IAAIS,KAAW,GAAG;GAChB,IAAMN,IAAQK,IAASF,EAAK;GAC5B,KAAK,IAAMN,KAASM,GAAM,EAAON,KAASG;GAC1C;EACF;EACA,KAAK,IAAMH,KAASM,GAClB,EAAON,KAAUF,EAAOE,KAAUQ,IAAUC;CAEhD;CACA,OAAOX;AACT;AAGA,SAAgBY,EAAY,GAAqB;CAE/C,OADIC,EAAI,WAAW,IAAI,IAAUA,IAC1BA,EAAI,QAAQ,WAAW,MAAS,IAAIC,EAAK,YAAY,GAAG;AACjE"}
1
+ {"version":3,"file":"resizable.utils.js","names":["parseSize","value","fallback","trimmed","numeric","roundPercent","normalizeSizes","raw","result","clamp","bounds","index","sum","acc","equal","iteration","fixedSum","free","bound","target","freeSum","buildPanelStyleText","parts","size","style","key","toKebabCase"],"sources":["../../../src/components/resizable/resizable.utils.ts"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport { clamp, toKebabCase } from \"~/utils\";\n\n/** 解析尺寸:number/`\"25%\"`/`\"25\"` 都按百分比处理(不支持 px,按需再扩展) */\nexport function parseSize(\n value: number | string | undefined,\n fallback: number,\n): number {\n if (value === undefined || value === null) return fallback;\n if (typeof value === \"number\") {\n return Number.isFinite(value) ? value : fallback;\n }\n const trimmed = value.trim();\n const numeric = Number.parseFloat(trimmed);\n return Number.isFinite(numeric) ? numeric : fallback;\n}\n\n/** 百分比保留 2 位小数,避免 onLayoutChange/layout 输出出现长尾浮点 */\nexport function roundPercent(value: number): number {\n return Math.round(value * 100) / 100;\n}\n\n/**\n * 把一组原始权重归一化到总和 100,并在迭代中尊重每个面板的上下界。\n * 之所以不用简单的按比例缩放:min/max 会在缩放后再次越界,需要固定越界项、\n * 把剩余空间按权重分给其余项(最多 4 轮即可收敛)。\n */\nexport function normalizeSizes(\n raw: number[],\n bounds: Array<{ min: number; max: number }>,\n): number[] {\n if (raw.length === 0) return [];\n const result = raw.map((value, index) =>\n clamp(value, bounds[index]!.min, bounds[index]!.max),\n );\n const sum = result.reduce((acc, value) => acc + value, 0);\n if (sum <= 0) {\n const equal = 100 / raw.length;\n return raw.map(() => equal);\n }\n for (let index = 0; index < result.length; index += 1) {\n result[index] = (result[index]! * 100) / sum;\n }\n\n for (let iteration = 0; iteration < 4; iteration += 1) {\n let fixedSum = 0;\n const free: number[] = [];\n for (let index = 0; index < result.length; index += 1) {\n const bound = bounds[index]!;\n if (result[index]! > bound.max) {\n result[index] = bound.max;\n fixedSum += bound.max;\n } else if (result[index]! < bound.min) {\n result[index] = bound.min;\n fixedSum += bound.min;\n } else {\n free.push(index);\n }\n }\n if (free.length === 0) break;\n const target = 100 - fixedSum;\n const freeSum = free.reduce((acc, index) => acc + result[index]!, 0);\n if (freeSum <= 0) {\n const equal = target / free.length;\n for (const index of free) result[index] = equal;\n break;\n }\n for (const index of free) {\n result[index] = (result[index]! * target) / freeSum;\n }\n }\n return result;\n}\n\n/**\n * 面板的 `style` 文本:`flex-grow` 承载百分比尺寸,配 `flex-shrink/basis`\n * 保证面板只按权重分配主轴空间。\n *\n * 用字符串而非对象声明 style,是因为模板字面量会被 Solid 包进 effect,\n * 尺寸变化时能可靠更新;对象形式里的 getter 不保证被编译器识别为动态。\n * 调用方传入的 style 支持字符串原样拼接或对象(键转 kebab-case,空值跳过)。\n */\nexport function buildPanelStyleText(\n size: number,\n style?: string | JSX.CSSProperties,\n): string {\n const parts = [`flex-grow:${size}`, \"flex-shrink:1\", \"flex-basis:0%\"];\n if (typeof style === \"string\") {\n parts.push(style);\n return parts.join(\";\");\n }\n if (style && typeof style === \"object\") {\n for (const [key, value] of Object.entries(style)) {\n if (value === null || value === undefined) continue;\n parts.push(`${toKebabCase(key)}:${value}`);\n }\n }\n return parts.join(\";\");\n}\n"],"mappings":";;;AAIA,SAAgBA,EACd,GACA,GACQ;CACR,IAAIC,KAAiC,MAAM,OAAOC;CAClD,IAAI,OAAOD,KAAU,UACnB,OAAO,OAAO,SAASA,CAAK,IAAIA,IAAQC;CAE1C,IAAMC,IAAUF,EAAM,KAAK,GACrBG,IAAU,OAAO,WAAWD,CAAO;CACzC,OAAO,OAAO,SAASC,CAAO,IAAIA,IAAUF;AAC9C;AAGA,SAAgBG,EAAa,GAAuB;CAClD,OAAO,KAAK,MAAMJ,IAAQ,GAAG,IAAI;AACnC;AAOA,SAAgBK,EACd,GACA,GACU;CACV,IAAIC,EAAI,WAAW,GAAG,OAAO,CAAC;CAC9B,IAAMC,IAASD,EAAI,KAAK,GAAO,MAC7BE,EAAMR,GAAOS,EAAOC,EAAM,CAAE,KAAKD,EAAOC,EAAM,CAAE,GAAG,CACrD,GACMC,IAAMJ,EAAO,QAAQ,GAAK,MAAUK,IAAMZ,GAAO,CAAC;CACxD,IAAIW,KAAO,GAAG;EACZ,IAAME,IAAQ,MAAMP,EAAI;EACxB,OAAOA,EAAI,UAAUO,CAAK;CAC5B;CACA,KAAK,IAAIH,IAAQ,GAAGA,IAAQH,EAAO,QAAQ,KAAS,GAClD,EAAOG,KAAUH,EAAOG,KAAU,MAAOC;CAG3C,KAAK,IAAIG,IAAY,GAAGA,IAAY,GAAG,KAAa,GAAG;EACrD,IAAIC,IAAW,GACTC,IAAiB,CAAC;EACxB,KAAK,IAAIN,IAAQ,GAAGA,IAAQH,EAAO,QAAQ,KAAS,GAAG;GACrD,IAAMU,IAAQR,EAAOC;GACrB,AAAIH,EAAOG,KAAUO,EAAM,OACzB,EAAOP,KAASO,EAAM,KACtB,KAAYA,EAAM,OACTV,EAAOG,KAAUO,EAAM,OAChC,EAAOP,KAASO,EAAM,KACtB,KAAYA,EAAM,OAElBD,EAAK,KAAKN,CAAK;EAEnB;EACA,IAAIM,EAAK,WAAW,GAAG;EACvB,IAAME,IAAS,MAAMH,GACfI,IAAUH,EAAK,QAAQ,GAAK,MAAUJ,IAAML,EAAOG,IAAS,CAAC;EACnE,IAAIS,KAAW,GAAG;GAChB,IAAMN,IAAQK,IAASF,EAAK;GAC5B,KAAK,IAAMN,KAASM,GAAM,EAAON,KAASG;GAC1C;EACF;EACA,KAAK,IAAMH,KAASM,GAClB,EAAON,KAAUH,EAAOG,KAAUQ,IAAUC;CAEhD;CACA,OAAOZ;AACT;AAUA,SAAgBa,EACd,GACA,GACQ;CACR,IAAMC,IAAQ;EAAC,aAAaC;EAAQ;EAAiB;CAAe;CACpE,IAAI,OAAOC,KAAU,UAEnB,OADAF,EAAM,KAAKE,CAAK,GACTF,EAAM,KAAK,GAAG;CAEvB,IAAIE,KAAS,OAAOA,KAAU,UAC5B,KAAK,IAAM,CAACC,GAAKxB,MAAU,OAAO,QAAQuB,CAAK,GAC7C,AAAIvB,KAAU,QACdqB,EAAM,KAAK,GAAGI,EAAYD,CAAG,EAAE,GAAGxB,GAAO;CAG7C,OAAOqB,EAAM,KAAK,GAAG;AACvB"}
@@ -1,176 +1,74 @@
1
- import { clamp as e, normalizeSizes as t, roundPercent as n } from "./resizable.utils.js";
2
- import { createSignal as r } from "solid-js";
3
- import { createStore as i, produce as a } from "solid-js/store";
1
+ import { createPanelCommands as e } from "./resizable.commands.js";
2
+ import { createPanelLifecycle as t } from "./resizable.lifecycle.js";
3
+ import { createPanelRegistry as n } from "./resizable.registry.js";
4
+ import { createLayoutReporting as r } from "./resizable.reporting.js";
5
+ import { createPanelSizes as i } from "./resizable.sizes.js";
6
+ import { createSignal as a } from "solid-js";
4
7
  //#region src/components/resizable/useResizablePanelGroup.ts
5
- var o = .001, s = "neut-resizable:";
6
- function c(c) {
7
- let [l, u] = r(), [d, f] = r(!1), [p, m] = i({}), h = /* @__PURE__ */ new Map(), g = [], _ = !1, v = /* @__PURE__ */ new Map(), y = () => g.map((e) => h.get(e)).filter((e) => !!e), b = (e) => e.collapsible() ? e.collapsedSize() : e.minSize(), x = (e, t) => e.collapsible() && t <= e.collapsedSize() + o, S = () => c.storage() ?? (typeof localStorage < "u" ? localStorage : void 0), C = () => {
8
- let e = c.autoSaveId();
9
- return e ? `${s}${e}` : void 0;
10
- }, w = () => {
11
- let e = {};
12
- for (let t of y()) e[t.id] = n(p[t.id] ?? 0);
13
- return e;
14
- }, T = (e) => {
15
- let t = C(), n = S();
16
- if (t && n) try {
17
- n.setItem(t, JSON.stringify(e));
18
- } catch {}
19
- }, E = () => c.onLayoutChange(w()), D = () => {
20
- let e = w();
21
- c.onLayoutChange(e), T(e);
22
- }, O = () => {
23
- let e = C(), t = S();
24
- if (e && t) try {
25
- let n = t.getItem(e);
26
- if (!n) return;
27
- let r = JSON.parse(n);
28
- return typeof r == "object" && r ? r : void 0;
29
- } catch {
30
- return;
31
- }
32
- }, k = () => y().map((e) => ({
33
- min: b(e),
34
- max: e.maxSize()
35
- })), A = (e, t, r) => {
36
- if (e.onResize?.(n(r)), !e.collapsible()) return;
37
- let i = x(e, t), a = x(e, r);
38
- !i && a ? e.onCollapse?.() : i && !a && e.onExpand?.();
39
- }, j = (e, t = !0) => {
40
- let n = y(), r = n.map((e) => p[e.id] ?? 0);
41
- m(a((t) => {
42
- n.forEach((n, r) => {
43
- let i = e[r];
44
- i !== void 0 && (t[n.id] = i);
45
- });
46
- })), t && n.forEach((t, n) => {
47
- let i = e[n];
48
- i !== void 0 && A(t, r[n], i);
49
- });
50
- }, M = () => {
51
- let e = y(), t = O() ?? c.defaultLayout(), n = e.map((e) => {
52
- let n = t?.[e.id];
53
- return n === void 0 ? e.defaultSize : n;
54
- }), r = n.filter((e) => e !== void 0), i = n.length - r.length, a = r.reduce((e, t) => e + t, 0), o = Math.max(0, 100 - a), s = i > 0 ? o / i : 0;
55
- return n.map((e) => e ?? s);
56
- }, N = () => {
57
- _ || typeof window < "u" && y().length !== 0 && (_ = !0, j(t(M(), k()), !1), D());
58
- }, P = () => {
59
- typeof window < "u" && queueMicrotask(() => {
60
- _ || N();
61
- });
62
- }, F = (e) => {
63
- if (h.set(e.element, e), g = [...g, e.element], !_) P();
64
- else if (p[e.id] === void 0) {
65
- let n = y(), r = n.map((t) => t.id === e.id ? t.defaultSize ?? 100 / n.length : p[t.id] ?? 0);
66
- j(t(r, k())), D();
67
- }
68
- return () => {
69
- h.delete(e.element), g = g.filter((t) => t !== e.element), m(a((t) => {
70
- delete t[e.id];
71
- }));
72
- };
73
- }, I = (e) => {
74
- let t = e.previousElementSibling;
75
- for (; t && !h.has(t);) t = t.previousElementSibling;
76
- let n = e.nextElementSibling;
77
- for (; n && !h.has(n);) n = n.nextElementSibling;
78
- if (!t || !n) return;
79
- let r = h.get(t), i = h.get(n), a = p[r.id] ?? 0;
80
- return {
81
- prev: r,
82
- next: i,
83
- prevSize: a,
84
- total: a + (p[i.id] ?? 0)
85
- };
86
- }, L = (t, n, r, i) => {
87
- let s = Math.max(b(t), i - n.maxSize()), c = Math.min(t.maxSize(), i - b(n)), l = e(r, s, c);
88
- if (t.collapsible() && l < t.minSize() - o && l > t.collapsedSize() + o && (l = l - t.collapsedSize() < t.minSize() - l ? t.collapsedSize() : t.minSize()), n.collapsible() && i - l < n.minSize() - o && i - l > n.collapsedSize() + o) {
89
- let e = i - l;
90
- l = i - (e - n.collapsedSize() < n.minSize() - e ? n.collapsedSize() : n.minSize());
91
- }
92
- l = e(l, s, c);
93
- let u = p[t.id] ?? 0, d = p[n.id] ?? 0;
94
- m(a((e) => {
95
- e[t.id] = l, e[n.id] = i - l;
96
- })), A(t, u, l), A(n, d, i - l);
97
- }, R = (e, t) => {
98
- let n = I(e);
99
- n && (L(n.prev, n.next, t, n.total), E());
100
- }, z = (e, t) => {
101
- let n = I(e);
102
- n && (L(n.prev, n.next, n.prevSize + t, n.total), D());
103
- }, B = (e) => {
104
- let t = y().find((t) => t.id === e);
105
- if (!t?.collapsible()) return !1;
106
- let n = p[e] ?? 0;
107
- return !x(t, n) && (v.set(e, n), H(t, t.collapsedSize()), D(), !0);
108
- }, V = (e) => {
109
- let t = y().find((t) => t.id === e);
110
- if (!t?.collapsible()) return !1;
111
- let n = p[e] ?? 0;
112
- if (!x(t, n)) return !1;
113
- let r = v.get(e) ?? t.minSize();
114
- return H(t, Math.max(r, t.minSize())), D(), !0;
115
- }, H = (e, t) => {
116
- let n = g.indexOf(e.element), r = g[n + 1], i = g[n - 1], a = r ? h.get(r) : void 0, o = i ? h.get(i) : void 0;
117
- if (a) {
118
- let n = (p[e.id] ?? 0) + (p[a.id] ?? 0);
119
- L(e, a, t, n);
120
- } else if (o) {
121
- let n = (p[o.id] ?? 0) + (p[e.id] ?? 0);
122
- L(o, e, n - t, n);
123
- } else m(e.id, 100);
124
- };
8
+ function o(o) {
9
+ let [s, c] = a(), [l, u] = a(!1), d = n(), [f, p] = a(0), m = () => d.ordered(), h = i({
10
+ metas: m,
11
+ registry: d,
12
+ reportSizeChange: (e, t, n) => y.reportSizeChange(e, t, n)
13
+ }), { store: g, sizeOf: _, applyPair: v } = h, y = r({
14
+ metas: m,
15
+ sizeOf: _,
16
+ onLayoutChange: o.onLayoutChange,
17
+ persist: () => ({
18
+ autoSaveId: o.autoSaveId(),
19
+ storage: o.storage()
20
+ })
21
+ }), { notify: b, commit: x, readSaved: S } = y, C = t({
22
+ metas: m,
23
+ registry: d,
24
+ sizes: h,
25
+ readSaved: S,
26
+ defaultLayout: o.defaultLayout,
27
+ commit: x,
28
+ onRegistryChange: () => p((e) => e + 1)
29
+ }).registerPanel, w = (e) => d.adjacent(e, _), T = (e, t) => {
30
+ let n = w(e);
31
+ n && (v(n.prev, n.next, t, n.total), b());
32
+ }, E = (e, t) => {
33
+ let n = w(e);
34
+ n && (v(n.prev, n.next, n.prevSize + t, n.total), x());
35
+ }, { collapsePanel: D, expandPanel: O, setPanelSize: k, isPanelCollapsed: A, toggleHandleCollapse: j } = e({
36
+ metas: m,
37
+ registry: d,
38
+ sizes: h,
39
+ commit: x
40
+ });
125
41
  return {
126
- orientation: c.orientation,
127
- sizes: () => p,
128
- groupElement: l,
129
- setGroupElement: u,
130
- dragging: d,
131
- keyboardResizeBy: c.keyboardResizeBy,
132
- registerPanel: F,
133
- resolveAdjacent: (e) => I(e),
134
- setAdjacentSize: R,
135
- nudgeAdjacent: z,
136
- toggleHandleCollapse: (e) => {
137
- let t = I(e);
138
- if (!t) return;
139
- let { prev: n, next: r } = t;
140
- if (n.collapsible()) {
141
- x(n, p[n.id] ?? 0) ? V(n.id) : B(n.id);
142
- return;
143
- }
144
- if (r.collapsible()) {
145
- x(r, p[r.id] ?? 0) ? V(r.id) : B(r.id);
146
- return;
147
- }
148
- },
42
+ orientation: o.orientation,
43
+ sizes: () => g,
44
+ groupElement: s,
45
+ setGroupElement: c,
46
+ dragging: l,
47
+ keyboardResizeBy: o.keyboardResizeBy,
48
+ registerPanel: C,
49
+ resolveAdjacent: (e) => (f(), w(e)),
50
+ setAdjacentSize: T,
51
+ nudgeAdjacent: E,
52
+ toggleHandleCollapse: j,
149
53
  groupSizePx: () => {
150
- let e = l();
151
- return e ? c.orientation() === "horizontal" ? e.clientWidth : e.clientHeight : 0;
54
+ let e = s();
55
+ return e ? o.orientation() === "horizontal" ? e.clientWidth : e.clientHeight : 0;
152
56
  },
153
57
  isRtl: () => {
154
- let e = l();
58
+ let e = s();
155
59
  return e ? window.getComputedStyle(e).direction === "rtl" : !1;
156
60
  },
157
- beginDrag: () => f(!0),
158
- endDrag: () => f(!1),
159
- commitLayout: D,
160
- setPanelSize: (e, t) => {
161
- let n = y().find((t) => t.id === e);
162
- n && (H(n, t), D());
163
- },
164
- collapsePanel: B,
165
- expandPanel: V,
166
- isPanelCollapsed: (e) => {
167
- let t = y().find((t) => t.id === e);
168
- return t ? x(t, p[e] ?? 0) : !1;
169
- },
170
- getPanelSize: (e) => p[e] ?? 0
61
+ beginDrag: () => u(!0),
62
+ endDrag: () => u(!1),
63
+ commitLayout: x,
64
+ setPanelSize: k,
65
+ collapsePanel: D,
66
+ expandPanel: O,
67
+ isPanelCollapsed: A,
68
+ getPanelSize: _
171
69
  };
172
70
  }
173
71
  //#endregion
174
- export { c as useResizablePanelGroup };
72
+ export { o as useResizablePanelGroup };
175
73
 
176
74
  //# sourceMappingURL=useResizablePanelGroup.js.map