@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
@@ -1,15 +1,16 @@
1
1
  import { clsx as e } from "../../../utils/clsx.js";
2
2
  import { ResizablePanelGroupContext as t } from "../resizable.context.js";
3
3
  import { useResizablePanelGroup as n } from "../useResizablePanelGroup.js";
4
- import { createComponent as r, insert as i, mergeProps as a, spread as o, template as s, use as c } from "solid-js/web";
5
- import { createEffect as l, mergeProps as u, onCleanup as d, splitProps as f } from "solid-js";
4
+ import { useDragCursor as r } from "./useDragCursor.js";
5
+ import { createComponent as i, insert as a, mergeProps as o, spread as s, template as c, use as l } from "solid-js/web";
6
+ import { mergeProps as u, onCleanup as d, splitProps as f } from "solid-js";
6
7
  //#region src/components/resizable/ResizablePanelGroup/ResizablePanelGroup.tsx
7
- var p = /*#__PURE__*/ s("<div>");
8
- function m(s) {
8
+ var p = /*#__PURE__*/ c("<div>");
9
+ function m(c) {
9
10
  let m = u({
10
11
  orientation: "horizontal",
11
12
  keyboardResizeBy: 10
12
- }, s), [h, g] = f(m, [
13
+ }, c), [h, g] = f(m, [
13
14
  "class",
14
15
  "classList",
15
16
  "orientation",
@@ -27,21 +28,13 @@ function m(s) {
27
28
  storage: () => h.storage,
28
29
  keyboardResizeBy: () => h.keyboardResizeBy
29
30
  });
30
- return l(() => {
31
- if (!_.dragging()) return;
32
- let e = h.orientation === "horizontal" ? "ew-resize" : "ns-resize", t = document.createElement("style");
33
- t.setAttribute("data-resizable-drag", ""), t.textContent = `*, *:hover { cursor: ${e} !important; }`, document.head.appendChild(t);
34
- let n = document.body.style.userSelect;
35
- document.body.style.userSelect = "none", d(() => {
36
- t.remove(), document.body.style.userSelect = n;
37
- });
38
- }), r(t.Provider, {
31
+ return r(_.dragging, () => h.orientation), i(t.Provider, {
39
32
  value: _,
40
33
  get children() {
41
34
  var t = p();
42
- return c((e) => {
35
+ return l((e) => {
43
36
  _.setGroupElement(e), d(() => _.setGroupElement(void 0));
44
- }, t), o(t, a(g, {
37
+ }, t), s(t, o(g, {
45
38
  "data-slot": "resizable-panel-group",
46
39
  role: "group",
47
40
  get "data-orientation"() {
@@ -56,7 +49,7 @@ function m(s) {
56
49
  get classList() {
57
50
  return h.classList;
58
51
  }
59
- }), !1, !0), i(t, () => h.children), t;
52
+ }), !1, !0), a(t, () => h.children), t;
60
53
  }
61
54
  });
62
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResizablePanelGroup.js","names":["createEffect","mergeProps","onCleanup","splitProps","clsx","ResizablePanelGroupContext","useResizablePanelGroup","ResizablePanelGroupProps","ResizablePanelGroup","props","merged","orientation","const","keyboardResizeBy","local","rest","ctx","defaultLayout","onLayoutChange","next","autoSaveId","storage","dragging","cursor","sheet","document","createElement","setAttribute","textContent","head","appendChild","previousUserSelect","body","style","userSelect","remove","_$createComponent","Provider","value","children","_el$","_tmpl$","_$use","el","setGroupElement","undefined","_$spread","_$mergeProps","data-orientation","data-dragging","class","classList","_$insert","mergeProps","_$createComponent","_$mergeProps","mergeProps$1","_tmpl$","ResizablePanelGroup","merged","props","local","rest","splitProps","ctx","useResizablePanelGroup","next","createEffect","cursor","sheet","previousUserSelect","onCleanup","createComponent","ResizablePanelGroupContext","_el$","use","el","spread","mergeProps","\"role\"","\"class\"","clsx","insert"],"sources":["../../../../src/components/resizable/ResizablePanelGroup/ResizablePanelGroup.tsx"],"sourcesContent":["import { createEffect, mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { ResizablePanelGroupContext } from \"../resizable.context\";\nimport { useResizablePanelGroup } from \"../useResizablePanelGroup\";\nimport type { ResizablePanelGroupProps } from \"../resizable.types\";\n\n/**\n * 可调整布局的根:声明排列方向与初始/持久化布局,向下提供 context。\n * 子节点按 `Panel / Handle / Panel ...` 交替组合。\n */\nexport function ResizablePanelGroup(props: ResizablePanelGroupProps) {\n const merged = mergeProps(\n { orientation: \"horizontal\" as const, keyboardResizeBy: 10 },\n props,\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"classList\",\n \"orientation\",\n \"defaultLayout\",\n \"onLayoutChange\",\n \"autoSaveId\",\n \"storage\",\n \"keyboardResizeBy\",\n \"children\",\n ]);\n\n const ctx = useResizablePanelGroup({\n orientation: () => local.orientation,\n defaultLayout: () => local.defaultLayout,\n onLayoutChange: (next) => local.onLayoutChange?.(next),\n autoSaveId: () => local.autoSaveId,\n storage: () => local.storage,\n keyboardResizeBy: () => local.keyboardResizeBy,\n });\n\n // 拖拽期间强制全局双箭头光标:与 react-resizable-panels 一样注入一条\n // `*, *:hover { cursor: … !important }`,这样指针经过面板/文字/链接时也不会变回默认光标;\n // 顺带禁用文本选择,避免拖拽中选中内容。\n createEffect(() => {\n if (!ctx.dragging()) return;\n const cursor =\n local.orientation === \"horizontal\" ? \"ew-resize\" : \"ns-resize\";\n const sheet = document.createElement(\"style\");\n sheet.setAttribute(\"data-resizable-drag\", \"\");\n sheet.textContent = `*, *:hover { cursor: ${cursor} !important; }`;\n document.head.appendChild(sheet);\n const previousUserSelect = document.body.style.userSelect;\n document.body.style.userSelect = \"none\";\n onCleanup(() => {\n sheet.remove();\n document.body.style.userSelect = previousUserSelect;\n });\n });\n\n return (\n <ResizablePanelGroupContext.Provider value={ctx}>\n <div\n {...rest}\n ref={(el) => {\n ctx.setGroupElement(el);\n onCleanup(() => ctx.setGroupElement(undefined));\n }}\n data-slot=\"resizable-panel-group\"\n role=\"group\"\n data-orientation={local.orientation}\n data-dragging={ctx.dragging() ? \"\" : undefined}\n class={clsx(\n \"flex h-full w-full data-[orientation=vertical]:flex-col\",\n local.class,\n )}\n classList={local.classList}\n >\n {local.children}\n </div>\n </ResizablePanelGroupContext.Provider>\n );\n}\n"],"mappings":";;;;;;;AAUA,SAAgBQ,EAAoBC,GAAiC;CACnE,IAAMC,IAAST,EACb;EAAEU,aAAa;EAAuBE,kBAAkB;CAAG,GAC3DJ,CACF,GACM,CAACK,GAAOC,KAAQZ,EAAWO,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEKM,IAAMV,EAAuB;EACjCK,mBAAmBG,EAAMH;EACzBM,qBAAqBH,EAAMG;EAC3BC,iBAAiBC,MAASL,EAAMI,iBAAiBC,CAAI;EACrDC,kBAAkBN,EAAMM;EACxBC,eAAeP,EAAMO;EACrBR,wBAAwBC,EAAMD;CAChC,CAAC;CAqBD,OAhBAb,QAAmB;EACjB,IAAI,CAACgB,EAAIM,SAAS,GAAG;EACrB,IAAMC,IACJT,EAAMH,gBAAgB,eAAe,cAAc,aAC/Ca,IAAQC,SAASC,cAAc,OAAO;EAG5CD,AAFAD,EAAMG,aAAa,uBAAuB,EAAE,GAC5CH,EAAMI,cAAc,wBAAwBL,EAAM,iBAClDE,SAASI,KAAKC,YAAYN,CAAK;EAC/B,IAAMO,IAAqBN,SAASO,KAAKC,MAAMC;EAE/ChC,AADAuB,SAASO,KAAKC,MAAMC,aAAa,QACjChC,QAAgB;GAEduB,AADAD,EAAMW,OAAO,GACbV,SAASO,KAAKC,MAAMC,aAAaH;EACnC,CAAC;CACH,CAAC,GAEDK,EACG/B,EAA2BgC,UAAQ;EAACC,OAAOtB;EAAG,IAAAuB,WAAA;GAAA,IAAAC,IAAAC,EAAA;GAiB5B,OAjB4BC,GAGrCC,MAAO;IAEXzC,AADAc,EAAI4B,gBAAgBD,CAAE,GACtBzC,QAAgBc,EAAI4B,gBAAgBC,KAAAA,CAAS,CAAC;GAChD,GAACL,CAAA,GAAAM,EAAAN,GAAAO,EAJGhC,GAAI;IAAA,aAKE;IAAuBgE,MAC5B;IAAO,IAAA,qBAAA;KAAA,OACMjE,EAAMH;IAAW;IAAA,IAAA,kBAAA;KAAA,OACpBK,EAAIM,SAAS,IAAI,KAAKuB,KAAAA;IAAS;IAAA,IAAAmC,QAAA;KAAA,OACvC5E,EACL,2DACAU,EAAMoC,KACR;IAAC;IAAA,IACDC,YAAS;KAAA,OAAErC,EAAMqC;IAAS;GAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAZ,SAEzB1B,EAAMyB,QAAQ,GAAAC;EAAA;CAAA,CAAA;AAIvB"}
1
+ {"version":3,"file":"ResizablePanelGroup.js","names":["mergeProps","onCleanup","splitProps","clsx","ResizablePanelGroupContext","ResizablePanelGroupProps","useResizablePanelGroup","useDragCursor","ResizablePanelGroup","props","merged","orientation","const","keyboardResizeBy","local","rest","ctx","defaultLayout","onLayoutChange","next","autoSaveId","storage","dragging","_$createComponent","Provider","value","children","_el$","_tmpl$","_$use","el","setGroupElement","undefined","_$spread","_$mergeProps","data-orientation","data-dragging","class","classList","_$insert","mergeProps","_$createComponent","_$mergeProps","mergeProps$1","_tmpl$","ResizablePanelGroup","merged","props","local","rest","splitProps","ctx","useResizablePanelGroup","next","useDragCursor","createComponent","ResizablePanelGroupContext","_el$","use","el","onCleanup","spread","mergeProps","\"role\"","\"class\"","clsx","insert"],"sources":["../../../../src/components/resizable/ResizablePanelGroup/ResizablePanelGroup.tsx"],"sourcesContent":["import { mergeProps, onCleanup, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { ResizablePanelGroupContext } from \"../resizable.context\";\nimport type { ResizablePanelGroupProps } from \"../resizable.types\";\nimport { useResizablePanelGroup } from \"../useResizablePanelGroup\";\nimport { useDragCursor } from \"./useDragCursor\";\n\n/**\n * 可调整布局的根:声明排列方向与初始/持久化布局,向下提供 context。\n * 子节点按 `Panel / Handle / Panel ...` 交替组合。\n *\n * 布局引擎在 `useResizablePanelGroup`,拖拽光标在 `useDragCursor`,\n * 本文件只负责默认值合并与框架渲染。\n */\nexport function ResizablePanelGroup(props: ResizablePanelGroupProps) {\n const merged = mergeProps(\n { orientation: \"horizontal\" as const, keyboardResizeBy: 10 },\n props,\n );\n const [local, rest] = splitProps(merged, [\n \"class\",\n \"classList\",\n \"orientation\",\n \"defaultLayout\",\n \"onLayoutChange\",\n \"autoSaveId\",\n \"storage\",\n \"keyboardResizeBy\",\n \"children\",\n ]);\n\n const ctx = useResizablePanelGroup({\n orientation: () => local.orientation,\n defaultLayout: () => local.defaultLayout,\n onLayoutChange: (next) => local.onLayoutChange?.(next),\n autoSaveId: () => local.autoSaveId,\n storage: () => local.storage,\n keyboardResizeBy: () => local.keyboardResizeBy,\n });\n\n useDragCursor(ctx.dragging, () => local.orientation);\n\n return (\n <ResizablePanelGroupContext.Provider value={ctx}>\n <div\n {...rest}\n ref={(el) => {\n ctx.setGroupElement(el);\n onCleanup(() => ctx.setGroupElement(undefined));\n }}\n data-slot=\"resizable-panel-group\"\n role=\"group\"\n data-orientation={local.orientation}\n data-dragging={ctx.dragging() ? \"\" : undefined}\n class={clsx(\n \"flex h-full w-full data-[orientation=vertical]:flex-col\",\n local.class,\n )}\n classList={local.classList}\n >\n {local.children}\n </div>\n </ResizablePanelGroupContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;AAcA,SAAgBQ,EAAoBC,GAAiC;CACnE,IAAMC,IAASV,EACb;EAAEW,aAAa;EAAuBE,kBAAkB;CAAG,GAC3DJ,CACF,GACM,CAACK,GAAOC,KAAQb,EAAWQ,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEKM,IAAMV,EAAuB;EACjCK,mBAAmBG,EAAMH;EACzBM,qBAAqBH,EAAMG;EAC3BC,iBAAiBC,MAASL,EAAMI,iBAAiBC,CAAI;EACrDC,kBAAkBN,EAAMM;EACxBC,eAAeP,EAAMO;EACrBR,wBAAwBC,EAAMD;CAChC,CAAC;CAID,OAFAN,EAAcS,EAAIM,gBAAgBR,EAAMH,WAAW,GAEnDY,EACGnB,EAA2BoB,UAAQ;EAACC,OAAOT;EAAG,IAAAU,WAAA;GAAA,IAAAC,IAAAC,EAAA;GAiB5B,OAjB4BC,GAGrCC,MAAO;IAEX7B,AADAe,EAAIe,gBAAgBD,CAAE,GACtB7B,QAAgBe,EAAIe,gBAAgBC,KAAAA,CAAS,CAAC;GAChD,GAACL,CAAA,GAAAM,EAAAN,GAAAO,EAJGnB,GAAI;IAAA,aAKE;IAAuBgD,MAC5B;IAAO,IAAA,qBAAA;KAAA,OACMjD,EAAMH;IAAW;IAAA,IAAA,kBAAA;KAAA,OACpBK,EAAIM,SAAS,IAAI,KAAKU,KAAAA;IAAS;IAAA,IAAAgC,QAAA;KAAA,OACvC7D,EACL,2DACAW,EAAMuB,KACR;IAAC;IAAA,IACDC,YAAS;KAAA,OAAExB,EAAMwB;IAAS;GAAA,CAAA,GAAA,IAAA,EAAA,GAAAC,EAAAZ,SAEzBb,EAAMY,QAAQ,GAAAC;EAAA;CAAA,CAAA;AAIvB"}
@@ -0,0 +1,11 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { ResizableOrientation } from '../resizable.types';
3
+ /**
4
+ * 拖拽期间强制全局双箭头光标:注入一条 `*, *:hover { cursor: … !important }`,
5
+ * 这样指针经过面板/文字/链接时也不会变回默认光标;顺带禁用文本选择,
6
+ * 避免拖拽中选中内容。拖拽结束(或组件卸载)时还原。
7
+ *
8
+ * 与 react-resizable-panels 的行为一致,因此单独成 hook——
9
+ * 它只依赖"是否拖拽中"与方向,跟布局引擎、渲染都无关。
10
+ */
11
+ export declare function useDragCursor(dragging: Accessor<boolean>, orientation: Accessor<ResizableOrientation>): void;
@@ -0,0 +1,17 @@
1
+ import { createEffect as e, onCleanup as t } from "solid-js";
2
+ //#region src/components/resizable/ResizablePanelGroup/useDragCursor.ts
3
+ function n(n, r) {
4
+ e(() => {
5
+ if (!n()) return;
6
+ let e = r() === "horizontal" ? "ew-resize" : "ns-resize", i = document.createElement("style");
7
+ i.setAttribute("data-resizable-drag", ""), i.textContent = `*, *:hover { cursor: ${e} !important; }`, document.head.appendChild(i);
8
+ let a = document.body.style.userSelect;
9
+ document.body.style.userSelect = "none", t(() => {
10
+ i.remove(), document.body.style.userSelect = a;
11
+ });
12
+ });
13
+ }
14
+ //#endregion
15
+ export { n as useDragCursor };
16
+
17
+ //# sourceMappingURL=useDragCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDragCursor.js","names":["useDragCursor","dragging","cursor","orientation","sheet","previousUserSelect","onCleanup"],"sources":["../../../../src/components/resizable/ResizablePanelGroup/useDragCursor.ts"],"sourcesContent":["import { type Accessor, createEffect, onCleanup } from \"solid-js\";\nimport type { ResizableOrientation } from \"../resizable.types\";\n\n/**\n * 拖拽期间强制全局双箭头光标:注入一条 `*, *:hover { cursor: … !important }`,\n * 这样指针经过面板/文字/链接时也不会变回默认光标;顺带禁用文本选择,\n * 避免拖拽中选中内容。拖拽结束(或组件卸载)时还原。\n *\n * 与 react-resizable-panels 的行为一致,因此单独成 hook——\n * 它只依赖\"是否拖拽中\"与方向,跟布局引擎、渲染都无关。\n */\nexport function useDragCursor(\n dragging: Accessor<boolean>,\n orientation: Accessor<ResizableOrientation>,\n) {\n createEffect(() => {\n if (!dragging()) return;\n\n const cursor = orientation() === \"horizontal\" ? \"ew-resize\" : \"ns-resize\";\n const sheet = document.createElement(\"style\");\n sheet.setAttribute(\"data-resizable-drag\", \"\");\n sheet.textContent = `*, *:hover { cursor: ${cursor} !important; }`;\n document.head.appendChild(sheet);\n\n const previousUserSelect = document.body.style.userSelect;\n document.body.style.userSelect = \"none\";\n\n onCleanup(() => {\n sheet.remove();\n document.body.style.userSelect = previousUserSelect;\n });\n });\n}\n"],"mappings":";;AAWA,SAAgBA,EACd,GACA,GACA;CACA,QAAmB;EACjB,IAAI,CAACC,EAAS,GAAG;EAEjB,IAAMC,IAASC,EAAY,MAAM,eAAe,cAAc,aACxDC,IAAQ,SAAS,cAAc,OAAO;EAG5C,AAFAA,EAAM,aAAa,uBAAuB,EAAE,GAC5C,EAAM,cAAc,wBAAwBF,EAAO,iBACnD,SAAS,KAAK,YAAYE,CAAK;EAE/B,IAAMC,IAAqB,SAAS,KAAK,MAAM;EAG/C,AAFA,SAAS,KAAK,MAAM,aAAa,QAEjCC,QAAgB;GAEd,AADAF,EAAM,OAAO,GACb,SAAS,KAAK,MAAM,aAAaC;EACnC,CAAC;CACH,CAAC;AACH"}
@@ -0,0 +1,27 @@
1
+ import { ResizablePanelMeta } from './resizable.types';
2
+ /**
3
+ * 折叠相关的决策与记忆。
4
+ *
5
+ * 单一职责:回答两个问题——"这次切换该折还是该展"(纯决策)与
6
+ * "展开时回到哪个尺寸"(记忆)。都不碰 store、不读信号,
7
+ * 决策只依赖相邻面板的 `collapsible` 与当前尺寸。
8
+ */
9
+ export interface CollapseAction {
10
+ id: string;
11
+ action: "collapse" | "expand";
12
+ }
13
+ /**
14
+ * 分隔条上的 Enter/Space 该对谁做什么:
15
+ * 优先取相邻对里**前一个**可折叠面板,没有则取后一个;都不行则不动作。
16
+ */
17
+ export declare function nextCollapseAction(adjacent: {
18
+ prev: ResizablePanelMeta;
19
+ next: ResizablePanelMeta;
20
+ }, getSize: (id: string) => number): CollapseAction | undefined;
21
+ export interface CollapseMemory {
22
+ /** 折叠前记下尺寸,供展开时还原 */
23
+ remember(id: string, size: number): void;
24
+ /** 取回记忆中的尺寸;没有记忆时用调用方给的兜底值 */
25
+ recall(id: string, fallback: number): number;
26
+ }
27
+ export declare function createCollapseMemory(): CollapseMemory;
@@ -0,0 +1,24 @@
1
+ import { isCollapsedSize as e } from "./resizable.constraints.js";
2
+ //#region src/components/resizable/resizable.collapse.ts
3
+ function t(t, n) {
4
+ let r = [t.prev, t.next].find((e) => e.collapsible());
5
+ if (r) return {
6
+ id: r.id,
7
+ action: e(r, n(r.id)) ? "expand" : "collapse"
8
+ };
9
+ }
10
+ function n() {
11
+ let e = /* @__PURE__ */ new Map();
12
+ return {
13
+ remember(t, n) {
14
+ e.set(t, n);
15
+ },
16
+ recall(t, n) {
17
+ return e.get(t) ?? n;
18
+ }
19
+ };
20
+ }
21
+ //#endregion
22
+ export { n as createCollapseMemory, t as nextCollapseAction };
23
+
24
+ //# sourceMappingURL=resizable.collapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.collapse.js","names":["nextCollapseAction","target","adjacent","meta","isCollapsedSize","getSize","createCollapseMemory","memory","id","size","fallback"],"sources":["../../../src/components/resizable/resizable.collapse.ts"],"sourcesContent":["import { isCollapsedSize } from \"./resizable.constraints\";\nimport type { ResizablePanelMeta } from \"./resizable.types\";\n\n/**\n * 折叠相关的决策与记忆。\n *\n * 单一职责:回答两个问题——\"这次切换该折还是该展\"(纯决策)与\n * \"展开时回到哪个尺寸\"(记忆)。都不碰 store、不读信号,\n * 决策只依赖相邻面板的 `collapsible` 与当前尺寸。\n */\n\nexport interface CollapseAction {\n id: string;\n action: \"collapse\" | \"expand\";\n}\n\n/**\n * 分隔条上的 Enter/Space 该对谁做什么:\n * 优先取相邻对里**前一个**可折叠面板,没有则取后一个;都不行则不动作。\n */\nexport function nextCollapseAction(\n adjacent: { prev: ResizablePanelMeta; next: ResizablePanelMeta },\n getSize: (id: string) => number,\n): CollapseAction | undefined {\n const target = [adjacent.prev, adjacent.next].find((meta) =>\n meta.collapsible(),\n );\n if (!target) return undefined;\n\n return {\n id: target.id,\n action: isCollapsedSize(target, getSize(target.id)) ? \"expand\" : \"collapse\",\n };\n}\n\nexport interface CollapseMemory {\n /** 折叠前记下尺寸,供展开时还原 */\n remember(id: string, size: number): void;\n /** 取回记忆中的尺寸;没有记忆时用调用方给的兜底值 */\n recall(id: string, fallback: number): number;\n}\n\nexport function createCollapseMemory(): CollapseMemory {\n const memory = new Map<string, number>();\n\n return {\n remember(id, size) {\n memory.set(id, size);\n },\n recall(id, fallback) {\n return memory.get(id) ?? fallback;\n },\n };\n}\n"],"mappings":";;AAoBA,SAAgBA,EACd,GACA,GAC4B;CAC5B,IAAMC,IAAS,CAACC,EAAS,MAAMA,EAAS,IAAI,CAAC,CAAC,MAAM,MAClDC,EAAK,YAAY,CACnB;CACA,IAAKF,GAEL,OAAO;EACL,IAAIA,EAAO;EACX,QAAQG,EAAgBH,GAAQI,EAAQJ,EAAO,EAAE,CAAC,IAAI,WAAW;CACnE;AACF;AASA,SAAgBK,IAAuC;CACrD,IAAMC,oBAAS,IAAI,IAAoB;CAEvC,OAAO;EACL,SAAS,GAAI,GAAM;GACjB,EAAO,IAAIC,GAAIC,CAAI;EACrB;EACA,OAAO,GAAI,GAAU;GACnB,OAAOF,EAAO,IAAIC,CAAE,KAAKE;EAC3B;CACF;AACF"}
@@ -0,0 +1,32 @@
1
+ import { PanelRegistry } from './resizable.registry';
2
+ import { PanelSizes } from './resizable.sizes';
3
+ import { ResizablePanelMeta } from './resizable.types';
4
+ export interface PanelCommandsContext {
5
+ /** 按 DOM 顺序排列的面板 */
6
+ metas: () => ResizablePanelMeta[];
7
+ registry: PanelRegistry;
8
+ sizes: PanelSizes;
9
+ /** 通知 + 持久化 */
10
+ commit: () => void;
11
+ }
12
+ export interface PanelCommands {
13
+ /** 折叠指定面板;不可折叠或已折叠时返回 false */
14
+ collapsePanel: (id: string) => boolean;
15
+ /** 展开指定面板(回到折叠前的尺寸,但不小于 minSize);不可展开时返回 false */
16
+ expandPanel: (id: string) => boolean;
17
+ /** 命令式设置尺寸 */
18
+ setPanelSize: (id: string, size: number) => void;
19
+ /** 该面板当前是否处于折叠态 */
20
+ isPanelCollapsed: (id: string) => boolean;
21
+ /** 按分隔条解析出的相邻对,折叠或展开其中的可折叠面板 */
22
+ toggleHandleCollapse: (handleEl: HTMLElement) => void;
23
+ }
24
+ /**
25
+ * 面板的命令式尺寸操作(collapse / expand / setSize / 键盘切换)。
26
+ *
27
+ * 单一职责:把"命令"翻译成一次 `PanelSizes` 写入 + 一次 `commit`,
28
+ * 并维护"折叠前的尺寸"这份记忆(`resizable.collapse`)。
29
+ * 决策(该折还是该展)也来自 `resizable.collapse.nextCollapseAction`,
30
+ * 这里只负责执行与前后置校验。
31
+ */
32
+ export declare function createPanelCommands(ctx: PanelCommandsContext): PanelCommands;
@@ -0,0 +1,40 @@
1
+ import { isCollapsedSize as e } from "./resizable.constraints.js";
2
+ import { createCollapseMemory as t, nextCollapseAction as n } from "./resizable.collapse.js";
3
+ //#region src/components/resizable/resizable.commands.ts
4
+ function r(r) {
5
+ let i = t(), a = (e) => r.metas().find((t) => t.id === e) ?? null, o = (t) => {
6
+ let n = a(t);
7
+ if (!n?.collapsible()) return !1;
8
+ let o = r.sizes.sizeOf(t);
9
+ return !e(n, o) && (i.remember(t, o), r.sizes.applyPanelTarget(n, n.collapsedSize()), r.commit(), !0);
10
+ }, s = (t) => {
11
+ let n = a(t);
12
+ if (!n?.collapsible()) return !1;
13
+ let o = r.sizes.sizeOf(t);
14
+ if (!e(n, o)) return !1;
15
+ let s = i.recall(t, n.minSize());
16
+ return r.sizes.applyPanelTarget(n, Math.max(s, n.minSize())), r.commit(), !0;
17
+ };
18
+ return {
19
+ collapsePanel: o,
20
+ expandPanel: s,
21
+ setPanelSize: (e, t) => {
22
+ let n = a(e);
23
+ n && (r.sizes.applyPanelTarget(n, t), r.commit());
24
+ },
25
+ isPanelCollapsed: (t) => {
26
+ let n = a(t);
27
+ return n ? e(n, r.sizes.sizeOf(t)) : !1;
28
+ },
29
+ toggleHandleCollapse: (e) => {
30
+ let t = r.registry.adjacent(e, r.sizes.sizeOf);
31
+ if (!t) return;
32
+ let i = n(t, r.sizes.sizeOf);
33
+ i && (i.action === "expand" ? s(i.id) : o(i.id));
34
+ }
35
+ };
36
+ }
37
+ //#endregion
38
+ export { r as createPanelCommands };
39
+
40
+ //# sourceMappingURL=resizable.commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.commands.js","names":["createPanelCommands","collapsedMemory","createCollapseMemory","findMeta","ctx","item","id","collapsePanel","meta","current","isCollapsedSize","expandPanel","remembered","size","adjacent","handleEl","decision","nextCollapseAction"],"sources":["../../../src/components/resizable/resizable.commands.ts"],"sourcesContent":["import { createCollapseMemory, nextCollapseAction } from \"./resizable.collapse\";\nimport { isCollapsedSize } from \"./resizable.constraints\";\nimport type { PanelRegistry } from \"./resizable.registry\";\nimport type { PanelSizes } from \"./resizable.sizes\";\nimport type { ResizablePanelMeta } from \"./resizable.types\";\n\nexport interface PanelCommandsContext {\n /** 按 DOM 顺序排列的面板 */\n metas: () => ResizablePanelMeta[];\n registry: PanelRegistry;\n sizes: PanelSizes;\n /** 通知 + 持久化 */\n commit: () => void;\n}\n\nexport interface PanelCommands {\n /** 折叠指定面板;不可折叠或已折叠时返回 false */\n collapsePanel: (id: string) => boolean;\n /** 展开指定面板(回到折叠前的尺寸,但不小于 minSize);不可展开时返回 false */\n expandPanel: (id: string) => boolean;\n /** 命令式设置尺寸 */\n setPanelSize: (id: string, size: number) => void;\n /** 该面板当前是否处于折叠态 */\n isPanelCollapsed: (id: string) => boolean;\n /** 按分隔条解析出的相邻对,折叠或展开其中的可折叠面板 */\n toggleHandleCollapse: (handleEl: HTMLElement) => void;\n}\n\n/**\n * 面板的命令式尺寸操作(collapse / expand / setSize / 键盘切换)。\n *\n * 单一职责:把\"命令\"翻译成一次 `PanelSizes` 写入 + 一次 `commit`,\n * 并维护\"折叠前的尺寸\"这份记忆(`resizable.collapse`)。\n * 决策(该折还是该展)也来自 `resizable.collapse.nextCollapseAction`,\n * 这里只负责执行与前后置校验。\n */\nexport function createPanelCommands(ctx: PanelCommandsContext): PanelCommands {\n const collapsedMemory = createCollapseMemory();\n\n const findMeta = (id: string) =>\n ctx.metas().find((item) => item.id === id) ?? null;\n\n const collapsePanel = (id: string) => {\n const meta = findMeta(id);\n if (!meta?.collapsible()) return false;\n\n const current = ctx.sizes.sizeOf(id);\n if (isCollapsedSize(meta, current)) return false;\n\n // 记下折叠前的尺寸,展开时回到这里(而不是 minSize)\n collapsedMemory.remember(id, current);\n ctx.sizes.applyPanelTarget(meta, meta.collapsedSize());\n ctx.commit();\n return true;\n };\n\n const expandPanel = (id: string) => {\n const meta = findMeta(id);\n if (!meta?.collapsible()) return false;\n\n const current = ctx.sizes.sizeOf(id);\n if (!isCollapsedSize(meta, current)) return false;\n\n const remembered = collapsedMemory.recall(id, meta.minSize());\n ctx.sizes.applyPanelTarget(meta, Math.max(remembered, meta.minSize()));\n ctx.commit();\n return true;\n };\n\n const setPanelSize = (id: string, size: number) => {\n const meta = findMeta(id);\n if (!meta) return;\n ctx.sizes.applyPanelTarget(meta, size);\n ctx.commit();\n };\n\n const isPanelCollapsed = (id: string) => {\n const meta = findMeta(id);\n return meta ? isCollapsedSize(meta, ctx.sizes.sizeOf(id)) : false;\n };\n\n const toggleHandleCollapse = (handleEl: HTMLElement) => {\n const adjacent = ctx.registry.adjacent(handleEl, ctx.sizes.sizeOf);\n if (!adjacent) return;\n\n const decision = nextCollapseAction(adjacent, ctx.sizes.sizeOf);\n if (!decision) return;\n\n if (decision.action === \"expand\") expandPanel(decision.id);\n else collapsePanel(decision.id);\n };\n\n return {\n collapsePanel,\n expandPanel,\n setPanelSize,\n isPanelCollapsed,\n toggleHandleCollapse,\n };\n}\n"],"mappings":";;;AAoCA,SAAgBA,EAAoB,GAA0C;CAC5E,IAAMC,IAAkBC,EAAqB,GAEvCC,KAAY,MAChBC,EAAI,MAAM,CAAC,CAAC,MAAM,MAASC,EAAK,OAAOC,CAAE,KAAK,MAE1CC,KAAiB,MAAe;EACpC,IAAMC,IAAOL,EAASG,CAAE;EACxB,IAAI,CAACE,GAAM,YAAY,GAAG,OAAO;EAEjC,IAAMC,IAAUL,EAAI,MAAM,OAAOE,CAAE;EAOnC,OANA,CAAII,EAAgBF,GAAMC,CAAO,MAGjCR,EAAgB,SAASK,GAAIG,CAAO,GACpCL,EAAI,MAAM,iBAAiBI,GAAMA,EAAK,cAAc,CAAC,GACrDJ,EAAI,OAAO,GACJ;CACT,GAEMO,KAAe,MAAe;EAClC,IAAMH,IAAOL,EAASG,CAAE;EACxB,IAAI,CAACE,GAAM,YAAY,GAAG,OAAO;EAEjC,IAAMC,IAAUL,EAAI,MAAM,OAAOE,CAAE;EACnC,IAAI,CAACI,EAAgBF,GAAMC,CAAO,GAAG,OAAO;EAE5C,IAAMG,IAAaX,EAAgB,OAAOK,GAAIE,EAAK,QAAQ,CAAC;EAG5D,OAFAJ,EAAI,MAAM,iBAAiBI,GAAM,KAAK,IAAII,GAAYJ,EAAK,QAAQ,CAAC,CAAC,GACrEJ,EAAI,OAAO,GACJ;CACT;CAyBA,OAAO;EACL;EACA;EACA,eA1BoB,GAAY,MAAiB;GACjD,IAAMI,IAAOL,EAASG,CAAE;GACxB,AAAKE,MACLJ,EAAI,MAAM,iBAAiBI,GAAMK,CAAI,GACrCT,EAAI,OAAO;EACb;EAsBE,mBApBwB,MAAe;GACvC,IAAMI,IAAOL,EAASG,CAAE;GACxB,OAAOE,IAAOE,EAAgBF,GAAMJ,EAAI,MAAM,OAAOE,CAAE,CAAC,IAAI;EAC9D;EAkBE,uBAhB4B,MAA0B;GACtD,IAAMQ,IAAWV,EAAI,SAAS,SAASW,GAAUX,EAAI,MAAM,MAAM;GACjE,IAAI,CAACU,GAAU;GAEf,IAAME,IAAWC,EAAmBH,GAAUV,EAAI,MAAM,MAAM;GAC9D,AAAKY,MAEDA,EAAS,WAAW,WAAUL,EAAYK,EAAS,EAAE,IACpDT,EAAcS,EAAS,EAAE;EAChC;CAQA;AACF"}
@@ -0,0 +1,23 @@
1
+ import { PairConstraints } from './resizable.resize';
2
+ import { ResizablePanelMeta } from './resizable.types';
3
+ /**
4
+ * Resizable 的「约束代数」。
5
+ *
6
+ * 单一职责:把 panel 的响应式约束(min/max/collapsible/collapsedSize)摊平成
7
+ * 可以参与计算的数字与结构。不读信号以外的状态、不写 store、不碰 DOM,
8
+ * 因此拖拽边界、折叠判定、归一化边界都能单独断言。
9
+ */
10
+ /**
11
+ * 拖拽实际能到的最小值:可折叠时是 `collapsedSize`(继续拖会吸附到折叠),
12
+ * 否则是 `minSize`。
13
+ */
14
+ export declare function effectiveMin(meta: ResizablePanelMeta): number;
15
+ /** 尺寸是否落在「已折叠」区间(含 EPSILON 容差,避免浮点误差来回抖动) */
16
+ export declare function isCollapsedSize(meta: ResizablePanelMeta, size: number): boolean;
17
+ /** 全部 panel 的 `[min, max]` 边界,顺序与注册顺序一致(归一化按此顺序) */
18
+ export declare function constraintBounds(metas: readonly ResizablePanelMeta[]): {
19
+ min: number;
20
+ max: number;
21
+ }[];
22
+ /** 把一对相邻 panel 摊平成 `resolvePairSize` 需要的约束 */
23
+ export declare function pairConstraintsOf(prev: ResizablePanelMeta, next: ResizablePanelMeta): PairConstraints;
@@ -0,0 +1,32 @@
1
+ import "./resizable.resize.js";
2
+ //#region src/components/resizable/resizable.constraints.ts
3
+ function e(e) {
4
+ return e.collapsible() ? e.collapsedSize() : e.minSize();
5
+ }
6
+ function t(e, t) {
7
+ return e.collapsible() && t <= e.collapsedSize() + .001;
8
+ }
9
+ function n(t) {
10
+ return t.map((t) => ({
11
+ min: e(t),
12
+ max: t.maxSize()
13
+ }));
14
+ }
15
+ function r(t, n) {
16
+ return {
17
+ prevMin: e(t),
18
+ prevMax: t.maxSize(),
19
+ prevCollapsible: t.collapsible(),
20
+ prevCollapsedSize: t.collapsedSize(),
21
+ prevFloor: t.minSize(),
22
+ nextMin: e(n),
23
+ nextMax: n.maxSize(),
24
+ nextCollapsible: n.collapsible(),
25
+ nextCollapsedSize: n.collapsedSize(),
26
+ nextFloor: n.minSize()
27
+ };
28
+ }
29
+ //#endregion
30
+ export { n as constraintBounds, e as effectiveMin, t as isCollapsedSize, r as pairConstraintsOf };
31
+
32
+ //# sourceMappingURL=resizable.constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.constraints.js","names":["effectiveMin","meta","isCollapsedSize","size","constraintBounds","metas","pairConstraintsOf","prev","next"],"sources":["../../../src/components/resizable/resizable.constraints.ts"],"sourcesContent":["import { EPSILON, type PairConstraints } from \"./resizable.resize\";\nimport type { ResizablePanelMeta } from \"./resizable.types\";\n\n/**\n * Resizable 的「约束代数」。\n *\n * 单一职责:把 panel 的响应式约束(min/max/collapsible/collapsedSize)摊平成\n * 可以参与计算的数字与结构。不读信号以外的状态、不写 store、不碰 DOM,\n * 因此拖拽边界、折叠判定、归一化边界都能单独断言。\n */\n\n/**\n * 拖拽实际能到的最小值:可折叠时是 `collapsedSize`(继续拖会吸附到折叠),\n * 否则是 `minSize`。\n */\nexport function effectiveMin(meta: ResizablePanelMeta): number {\n return meta.collapsible() ? meta.collapsedSize() : meta.minSize();\n}\n\n/** 尺寸是否落在「已折叠」区间(含 EPSILON 容差,避免浮点误差来回抖动) */\nexport function isCollapsedSize(\n meta: ResizablePanelMeta,\n size: number,\n): boolean {\n return meta.collapsible() && size <= meta.collapsedSize() + EPSILON;\n}\n\n/** 全部 panel 的 `[min, max]` 边界,顺序与注册顺序一致(归一化按此顺序) */\nexport function constraintBounds(\n metas: readonly ResizablePanelMeta[],\n): { min: number; max: number }[] {\n return metas.map((meta) => ({\n min: effectiveMin(meta),\n max: meta.maxSize(),\n }));\n}\n\n/** 把一对相邻 panel 摊平成 `resolvePairSize` 需要的约束 */\nexport function pairConstraintsOf(\n prev: ResizablePanelMeta,\n next: ResizablePanelMeta,\n): PairConstraints {\n return {\n prevMin: effectiveMin(prev),\n prevMax: prev.maxSize(),\n prevCollapsible: prev.collapsible(),\n prevCollapsedSize: prev.collapsedSize(),\n prevFloor: prev.minSize(),\n nextMin: effectiveMin(next),\n nextMax: next.maxSize(),\n nextCollapsible: next.collapsible(),\n nextCollapsedSize: next.collapsedSize(),\n nextFloor: next.minSize(),\n };\n}\n"],"mappings":";;AAeA,SAAgBA,EAAa,GAAkC;CAC7D,OAAOC,EAAK,YAAY,IAAIA,EAAK,cAAc,IAAIA,EAAK,QAAQ;AAClE;AAGA,SAAgBC,EACd,GACA,GACS;CACT,OAAOD,EAAK,YAAY,KAAKE,KAAQF,EAAK,cAAc,IAAA;AAC1D;AAGA,SAAgBG,EACd,GACgC;CAChC,OAAOC,EAAM,KAAK,OAAU;EAC1B,KAAKL,EAAaC,CAAI;EACtB,KAAKA,EAAK,QAAQ;CACpB,EAAE;AACJ;AAGA,SAAgBK,EACd,GACA,GACiB;CACjB,OAAO;EACL,SAASN,EAAaO,CAAI;EAC1B,SAASA,EAAK,QAAQ;EACtB,iBAAiBA,EAAK,YAAY;EAClC,mBAAmBA,EAAK,cAAc;EACtC,WAAWA,EAAK,QAAQ;EACxB,SAASP,EAAaQ,CAAI;EAC1B,SAASA,EAAK,QAAQ;EACtB,iBAAiBA,EAAK,YAAY;EAClC,mBAAmBA,EAAK,cAAc;EACtC,WAAWA,EAAK,QAAQ;CAC1B;AACF"}
@@ -0,0 +1,35 @@
1
+ import { PanelRegistry } from './resizable.registry';
2
+ import { PanelSizes } from './resizable.sizes';
3
+ import { ResizableLayout, ResizablePanelMeta } from './resizable.types';
4
+ export interface PanelLifecycleContext {
5
+ /** 按 DOM 顺序排列的面板 */
6
+ metas: () => ResizablePanelMeta[];
7
+ registry: PanelRegistry;
8
+ sizes: PanelSizes;
9
+ /** 读取已持久化的布局 */
10
+ readSaved: () => ResizableLayout | undefined;
11
+ /** props 上传入的初始布局 */
12
+ defaultLayout: () => ResizableLayout | undefined;
13
+ /** 通知 + 持久化 */
14
+ commit: () => void;
15
+ /** 注册表发生变化(挂载/卸载)时的通知,用于让消费方重算 */
16
+ onRegistryChange: () => void;
17
+ }
18
+ export interface PanelLifecycle {
19
+ /** 注册面板并返回注销函数;首个面板挂载会在微任务里做一次初始化 */
20
+ registerPanel: (meta: ResizablePanelMeta) => () => void;
21
+ /** 首次布局:分配初始尺寸并归一化(SSR 与空列表下不动作) */
22
+ initialize: () => void;
23
+ /** 是否已经初始化过 */
24
+ isInitialized: () => boolean;
25
+ }
26
+ /**
27
+ * 面板的生命周期:注册、首帧初始化、以及"初始化之后动态新增面板"的尺寸分配。
28
+ *
29
+ * 单一职责:决定"什么时候算初始布局""新面板该拿多少"。初始分配委托
30
+ * `resizable.resize.distributeInitialSizes`,写入委托 `PanelSizes`。
31
+ *
32
+ * 为什么初始化要延后到微任务:面板是逐个挂载的,第一个面板挂载时后面几个还没注册,
33
+ * 若立刻算布局就会给第一个面板 100%,等其余面板挂载后再推翻重排,用户会看到跳动。
34
+ */
35
+ export declare function createPanelLifecycle(ctx: PanelLifecycleContext): PanelLifecycle;
@@ -0,0 +1,32 @@
1
+ import { distributeInitialSizes as e } from "./resizable.resize.js";
2
+ import { constraintBounds as t } from "./resizable.constraints.js";
3
+ import { normalizeSizes as n } from "./resizable.utils.js";
4
+ //#region src/components/resizable/resizable.lifecycle.ts
5
+ function r(r) {
6
+ let i = !1, a = () => t(r.metas()), o = () => {
7
+ let t = r.metas(), n = r.readSaved() ?? r.defaultLayout();
8
+ return e(t.map((e) => e.id), n, t.map((e) => e.defaultSize));
9
+ }, s = () => {
10
+ i || typeof window < "u" && r.metas().length !== 0 && (i = !0, r.sizes.applyAll(n(o(), a()), !1), r.commit());
11
+ }, c = () => {
12
+ typeof window < "u" && queueMicrotask(() => {
13
+ i || s();
14
+ });
15
+ }, l = (e) => {
16
+ let t = r.metas(), i = t.map((n) => n.id === e.id ? n.defaultSize ?? 100 / t.length : r.sizes.sizeOf(n.id));
17
+ r.sizes.applyAll(n(i, a())), r.commit();
18
+ };
19
+ return {
20
+ initialize: s,
21
+ isInitialized: () => i,
22
+ registerPanel(e) {
23
+ return r.registry.add(e), r.onRegistryChange(), i ? r.sizes.store[e.id] === void 0 && l(e) : c(), () => {
24
+ r.registry.remove(e), r.onRegistryChange(), r.sizes.remove(e.id);
25
+ };
26
+ }
27
+ };
28
+ }
29
+ //#endregion
30
+ export { r as createPanelLifecycle };
31
+
32
+ //# sourceMappingURL=resizable.lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.lifecycle.js","names":["createPanelLifecycle","initialized","bounds","constraintBounds","ctx","buildInitial","list","saved","distributeInitialSizes","meta","initialize","normalizeSizes","scheduleInitialize","adoptNewPanel","raw","item"],"sources":["../../../src/components/resizable/resizable.lifecycle.ts"],"sourcesContent":["import { constraintBounds } from \"./resizable.constraints\";\nimport type { PanelRegistry } from \"./resizable.registry\";\nimport { distributeInitialSizes } from \"./resizable.resize\";\nimport type { PanelSizes } from \"./resizable.sizes\";\nimport type { ResizableLayout, ResizablePanelMeta } from \"./resizable.types\";\nimport { normalizeSizes } from \"./resizable.utils\";\n\nexport interface PanelLifecycleContext {\n /** 按 DOM 顺序排列的面板 */\n metas: () => ResizablePanelMeta[];\n registry: PanelRegistry;\n sizes: PanelSizes;\n /** 读取已持久化的布局 */\n readSaved: () => ResizableLayout | undefined;\n /** props 上传入的初始布局 */\n defaultLayout: () => ResizableLayout | undefined;\n /** 通知 + 持久化 */\n commit: () => void;\n /** 注册表发生变化(挂载/卸载)时的通知,用于让消费方重算 */\n onRegistryChange: () => void;\n}\n\nexport interface PanelLifecycle {\n /** 注册面板并返回注销函数;首个面板挂载会在微任务里做一次初始化 */\n registerPanel: (meta: ResizablePanelMeta) => () => void;\n /** 首次布局:分配初始尺寸并归一化(SSR 与空列表下不动作) */\n initialize: () => void;\n /** 是否已经初始化过 */\n isInitialized: () => boolean;\n}\n\n/**\n * 面板的生命周期:注册、首帧初始化、以及\"初始化之后动态新增面板\"的尺寸分配。\n *\n * 单一职责:决定\"什么时候算初始布局\"\"新面板该拿多少\"。初始分配委托\n * `resizable.resize.distributeInitialSizes`,写入委托 `PanelSizes`。\n *\n * 为什么初始化要延后到微任务:面板是逐个挂载的,第一个面板挂载时后面几个还没注册,\n * 若立刻算布局就会给第一个面板 100%,等其余面板挂载后再推翻重排,用户会看到跳动。\n */\nexport function createPanelLifecycle(\n ctx: PanelLifecycleContext,\n): PanelLifecycle {\n let initialized = false;\n\n const bounds = () => constraintBounds(ctx.metas());\n\n const buildInitial = (): number[] => {\n const list = ctx.metas();\n const saved = ctx.readSaved() ?? ctx.defaultLayout();\n return distributeInitialSizes(\n list.map((meta) => meta.id),\n saved,\n list.map((meta) => meta.defaultSize),\n );\n };\n\n const initialize = () => {\n if (initialized) return;\n // SSR 不计算布局:首屏由 Panel 的 defaultSize fallback 撑起,客户端再归一化\n if (typeof window === \"undefined\") return;\n if (ctx.metas().length === 0) return;\n\n initialized = true;\n ctx.sizes.applyAll(normalizeSizes(buildInitial(), bounds()), false);\n ctx.commit();\n };\n\n const scheduleInitialize = () => {\n if (typeof window === \"undefined\") return;\n queueMicrotask(() => {\n if (!initialized) initialize();\n });\n };\n\n /** 初始化之后新增的面板:给它默认尺寸,并把其它面板等比压回 100 */\n const adoptNewPanel = (meta: ResizablePanelMeta) => {\n const list = ctx.metas();\n const raw = list.map((item) =>\n item.id === meta.id\n ? (item.defaultSize ?? 100 / list.length)\n : ctx.sizes.sizeOf(item.id),\n );\n ctx.sizes.applyAll(normalizeSizes(raw, bounds()));\n ctx.commit();\n };\n\n return {\n initialize,\n isInitialized: () => initialized,\n registerPanel(meta) {\n ctx.registry.add(meta);\n ctx.onRegistryChange();\n\n if (!initialized) {\n scheduleInitialize();\n } else if (ctx.sizes.store[meta.id] === undefined) {\n adoptNewPanel(meta);\n }\n\n return () => {\n ctx.registry.remove(meta);\n ctx.onRegistryChange();\n ctx.sizes.remove(meta.id);\n };\n },\n };\n}\n"],"mappings":";;;;AAwCA,SAAgBA,EACd,GACgB;CAChB,IAAIC,IAAc,IAEZC,UAAeC,EAAiBC,EAAI,MAAM,CAAC,GAE3CC,UAA+B;EACnC,IAAMC,IAAOF,EAAI,MAAM,GACjBG,IAAQH,EAAI,UAAU,KAAKA,EAAI,cAAc;EACnD,OAAOI,EACLF,EAAK,KAAK,MAASG,EAAK,EAAE,GAC1BF,GACAD,EAAK,KAAK,MAASG,EAAK,WAAW,CACrC;CACF,GAEMC,UAAmB;EACvB,AAAIT,KAEA,OAAO,SAAW,OAClBG,EAAI,MAAM,CAAC,CAAC,WAAW,MAE3B,IAAc,IACdA,EAAI,MAAM,SAASO,EAAeN,EAAa,GAAGH,EAAO,CAAC,GAAG,EAAK,GAClEE,EAAI,OAAO;CACb,GAEMQ,UAA2B;EAC/B,AAAI,OAAO,SAAW,OACtB,qBAAqB;GACnB,AAAKX,KAAaS,EAAW;EAC/B,CAAC;CACH,GAGMG,KAAiB,MAA6B;EAClD,IAAMP,IAAOF,EAAI,MAAM,GACjBU,IAAMR,EAAK,KAAK,MACpBS,EAAK,OAAON,EAAK,KACZM,EAAK,eAAe,MAAMT,EAAK,SAChCF,EAAI,MAAM,OAAOW,EAAK,EAAE,CAC9B;EAEA,AADAX,EAAI,MAAM,SAASO,EAAeG,GAAKZ,EAAO,CAAC,CAAC,GAChDE,EAAI,OAAO;CACb;CAEA,OAAO;EACL;EACA,qBAAqBH;EACrB,cAAc,GAAM;GAUlB,OATAG,EAAI,SAAS,IAAIK,CAAI,GACrBL,EAAI,iBAAiB,GAEhBH,IAEMG,EAAI,MAAM,MAAMK,EAAK,QAAQ,KAAA,KACtCI,EAAcJ,CAAI,IAFlBG,EAAmB,SAKR;IAGX,AAFAR,EAAI,SAAS,OAAOK,CAAI,GACxBL,EAAI,iBAAiB,GACrBA,EAAI,MAAM,OAAOK,EAAK,EAAE;GAC1B;EACF;CACF;AACF"}
@@ -0,0 +1,31 @@
1
+ import { ResizablePanelMeta } from './resizable.types';
2
+ export interface AdjacentPanels {
3
+ prev: ResizablePanelMeta;
4
+ next: ResizablePanelMeta;
5
+ /** 前一个面板的当前尺寸 */
6
+ prevSize: number;
7
+ /** 相邻两者尺寸之和(拖拽时保持不变的部分) */
8
+ total: number;
9
+ }
10
+ export interface PanelRegistry {
11
+ /** 注册面板:注册顺序即渲染顺序 */
12
+ add(meta: ResizablePanelMeta): void;
13
+ remove(meta: ResizablePanelMeta): void;
14
+ /** 已注册面板,按注册顺序(跳过已卸载的空位) */
15
+ ordered(): ResizablePanelMeta[];
16
+ /** 句柄两侧最近的已注册面板,中间的非面板节点(如把手装饰)会被跳过 */
17
+ adjacent(handleEl: HTMLElement, getSize: (id: string) => number): AdjacentPanels | undefined;
18
+ /** 某个面板在注册顺序里的前后邻居 */
19
+ neighbors(meta: ResizablePanelMeta): {
20
+ prev: ResizablePanelMeta | undefined;
21
+ next: ResizablePanelMeta | undefined;
22
+ };
23
+ }
24
+ /**
25
+ * Resizable 的面板注册表。
26
+ *
27
+ * 单一职责:维护「元素 → meta」与「注册顺序」,并据此解析相邻关系。
28
+ * 它不持有尺寸(尺寸通过 `getSize` 注入)、不写 store、不触发回调,
29
+ * 因此相邻解析可以脱离布局引擎直接断言。
30
+ */
31
+ export declare function createPanelRegistry(): PanelRegistry;
@@ -0,0 +1,38 @@
1
+ //#region src/components/resizable/resizable.registry.ts
2
+ function e() {
3
+ let e = /* @__PURE__ */ new Map(), t = [];
4
+ return {
5
+ add(n) {
6
+ e.set(n.element, n), t = [...t, n.element];
7
+ },
8
+ remove(n) {
9
+ e.delete(n.element), t = t.filter((e) => e !== n.element);
10
+ },
11
+ ordered: () => t.map((t) => e.get(t)).filter((e) => !!e),
12
+ adjacent(t, n) {
13
+ let r = t.previousElementSibling;
14
+ for (; r && !e.has(r);) r = r.previousElementSibling;
15
+ let i = t.nextElementSibling;
16
+ for (; i && !e.has(i);) i = i.nextElementSibling;
17
+ if (!r || !i) return;
18
+ let a = e.get(r), o = e.get(i), s = n(a.id);
19
+ return {
20
+ prev: a,
21
+ next: o,
22
+ prevSize: s,
23
+ total: s + n(o.id)
24
+ };
25
+ },
26
+ neighbors(n) {
27
+ let r = t.indexOf(n.element), i = t[r + 1], a = t[r - 1];
28
+ return {
29
+ prev: a ? e.get(a) : void 0,
30
+ next: i ? e.get(i) : void 0
31
+ };
32
+ }
33
+ };
34
+ }
35
+ //#endregion
36
+ export { e as createPanelRegistry };
37
+
38
+ //# sourceMappingURL=resizable.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.registry.js","names":["createPanelRegistry","metas","order","meta","element","prevEl","handleEl","nextEl","prev","next","prevSize","getSize","index","nextElement","prevElement"],"sources":["../../../src/components/resizable/resizable.registry.ts"],"sourcesContent":["import type { ResizablePanelMeta } from \"./resizable.types\";\n\nexport interface AdjacentPanels {\n prev: ResizablePanelMeta;\n next: ResizablePanelMeta;\n /** 前一个面板的当前尺寸 */\n prevSize: number;\n /** 相邻两者尺寸之和(拖拽时保持不变的部分) */\n total: number;\n}\n\nexport interface PanelRegistry {\n /** 注册面板:注册顺序即渲染顺序 */\n add(meta: ResizablePanelMeta): void;\n remove(meta: ResizablePanelMeta): void;\n /** 已注册面板,按注册顺序(跳过已卸载的空位) */\n ordered(): ResizablePanelMeta[];\n /** 句柄两侧最近的已注册面板,中间的非面板节点(如把手装饰)会被跳过 */\n adjacent(\n handleEl: HTMLElement,\n getSize: (id: string) => number,\n ): AdjacentPanels | undefined;\n /** 某个面板在注册顺序里的前后邻居 */\n neighbors(meta: ResizablePanelMeta): {\n prev: ResizablePanelMeta | undefined;\n next: ResizablePanelMeta | undefined;\n };\n}\n\n/**\n * Resizable 的面板注册表。\n *\n * 单一职责:维护「元素 → meta」与「注册顺序」,并据此解析相邻关系。\n * 它不持有尺寸(尺寸通过 `getSize` 注入)、不写 store、不触发回调,\n * 因此相邻解析可以脱离布局引擎直接断言。\n */\nexport function createPanelRegistry(): PanelRegistry {\n const metas = new Map<HTMLElement, ResizablePanelMeta>();\n let order: HTMLElement[] = [];\n\n const ordered = (): ResizablePanelMeta[] =>\n order\n .map((element) => metas.get(element))\n .filter((meta): meta is ResizablePanelMeta => !!meta);\n\n return {\n add(meta) {\n metas.set(meta.element, meta);\n order = [...order, meta.element];\n },\n remove(meta) {\n metas.delete(meta.element);\n order = order.filter((element) => element !== meta.element);\n },\n ordered,\n adjacent(handleEl, getSize) {\n let prevEl = handleEl.previousElementSibling as HTMLElement | null;\n while (prevEl && !metas.has(prevEl)) {\n prevEl = prevEl.previousElementSibling as HTMLElement | null;\n }\n let nextEl = handleEl.nextElementSibling as HTMLElement | null;\n while (nextEl && !metas.has(nextEl)) {\n nextEl = nextEl.nextElementSibling as HTMLElement | null;\n }\n if (!prevEl || !nextEl) return undefined;\n\n // 循环只在「已注册」的元素上停下,因此这里必然命中\n const prev = metas.get(prevEl)!;\n const next = metas.get(nextEl)!;\n\n const prevSize = getSize(prev.id);\n const nextSize = getSize(next.id);\n return { prev, next, prevSize, total: prevSize + nextSize };\n },\n neighbors(meta) {\n const index = order.indexOf(meta.element);\n const nextElement = order[index + 1];\n const prevElement = order[index - 1];\n return {\n prev: prevElement ? metas.get(prevElement) : undefined,\n next: nextElement ? metas.get(nextElement) : undefined,\n };\n },\n };\n}\n"],"mappings":";AAoCA,SAAgBA,IAAqC;CACnD,IAAMC,oBAAQ,IAAI,IAAqC,GACnDC,IAAuB,CAAC;CAO5B,OAAO;EACL,IAAI,GAAM;GAER,AADAD,EAAM,IAAIE,EAAK,SAASA,CAAI,GAC5B,IAAQ,CAAC,GAAGD,GAAOC,EAAK,OAAO;EACjC;EACA,OAAO,GAAM;GAEX,AADAF,EAAM,OAAOE,EAAK,OAAO,GACzB,IAAQD,EAAM,QAAQ,MAAYE,MAAYD,EAAK,OAAO;EAC5D;EACA,eAbAD,EACG,KAAK,MAAYD,EAAM,IAAIG,CAAO,CAAC,CAAC,CACpC,QAAQ,MAAqC,CAAC,CAACD,CAAI;EAYtD,SAAS,GAAU,GAAS;GAC1B,IAAIE,IAASC,EAAS;GACtB,OAAOD,KAAU,CAACJ,EAAM,IAAII,CAAM,IAChC,IAASA,EAAO;GAElB,IAAIE,IAASD,EAAS;GACtB,OAAOC,KAAU,CAACN,EAAM,IAAIM,CAAM,IAChC,IAASA,EAAO;GAElB,IAAI,CAACF,KAAU,CAACE,GAAQ;GAGxB,IAAMC,IAAOP,EAAM,IAAII,CAAM,GACvBI,IAAOR,EAAM,IAAIM,CAAM,GAEvBG,IAAWC,EAAQH,EAAK,EAAE;GAEhC,OAAO;IAAE;IAAM;IAAM;IAAU,OAAOE,IADrBC,EAAQF,EAAK,EACmB;GAAS;EAC5D;EACA,UAAU,GAAM;GACd,IAAMG,IAAQV,EAAM,QAAQC,EAAK,OAAO,GAClCU,IAAcX,EAAMU,IAAQ,IAC5BE,IAAcZ,EAAMU,IAAQ;GAClC,OAAO;IACL,MAAME,IAAcb,EAAM,IAAIa,CAAW,IAAI,KAAA;IAC7C,MAAMD,IAAcZ,EAAM,IAAIY,CAAW,IAAI,KAAA;GAC/C;EACF;CACF;AACF"}
@@ -0,0 +1,36 @@
1
+ import { PersistContext } from './resizable.storage';
2
+ import { ResizableLayout, ResizablePanelMeta } from './resizable.types';
3
+ export interface LayoutReportingContext {
4
+ /** 按 DOM 顺序排列的面板元数据 */
5
+ metas: () => readonly ResizablePanelMeta[];
6
+ /** 读取某个面板当前的百分比尺寸 */
7
+ sizeOf: (id: string) => number;
8
+ /** 布局变化回调(拖拽的每一帧都会调用) */
9
+ onLayoutChange: (layout: ResizableLayout) => void;
10
+ /** 持久化上下文(autoSaveId + storage) */
11
+ persist: () => PersistContext;
12
+ }
13
+ export interface LayoutReporting {
14
+ /** 把 store 里的尺寸整理成对外的布局快照 */
15
+ snapshot: () => ResizableLayout;
16
+ /** 只通知布局变化,不写 storage(拖拽的每一帧) */
17
+ notify: () => void;
18
+ /** 通知 + 持久化(离散操作与拖拽结束) */
19
+ commit: () => void;
20
+ /** 读回已保存的布局 */
21
+ readSaved: () => ResizableLayout | undefined;
22
+ /**
23
+ * 上报单个面板的尺寸变化:
24
+ * 始终回调 `onResize`;可折叠面板还会在"折叠 ⇄ 展开"越过阈值时报 `onCollapse` /
25
+ * `onExpand`,普通尺寸变化不触发这两个回调。
26
+ */
27
+ reportSizeChange: (meta: ResizablePanelMeta, oldSize: number, newSize: number) => void;
28
+ }
29
+ /**
30
+ * 布局的对外汇报与持久化。
31
+ *
32
+ * 单一职责:把内部的百分比 store 翻译成对外的 `onLayoutChange` 回调、
33
+ * 尺寸/折叠/展开的通知,以及 `autoSaveId` 驱动的持久化。
34
+ * 不写 store、不做约束求解——只管"告诉外面发生了什么"。
35
+ */
36
+ export declare function createLayoutReporting(ctx: LayoutReportingContext): LayoutReporting;
@@ -0,0 +1,33 @@
1
+ import { isCollapsedSize as e } from "./resizable.constraints.js";
2
+ import { roundPercent as t } from "./resizable.utils.js";
3
+ import { persistLayout as n, readSavedLayout as r } from "./resizable.storage.js";
4
+ //#region src/components/resizable/resizable.reporting.ts
5
+ function i(i) {
6
+ let a = () => {
7
+ let e = {};
8
+ for (let n of i.metas()) e[n.id] = t(i.sizeOf(n.id));
9
+ return e;
10
+ };
11
+ return {
12
+ snapshot: a,
13
+ notify() {
14
+ i.onLayoutChange(a());
15
+ },
16
+ commit() {
17
+ let e = a();
18
+ i.onLayoutChange(e), n(i.persist(), e);
19
+ },
20
+ readSaved() {
21
+ return r(i.persist());
22
+ },
23
+ reportSizeChange(n, r, i) {
24
+ if (n.onResize?.(t(i)), !n.collapsible()) return;
25
+ let a = e(n, r), o = e(n, i);
26
+ !a && o ? n.onCollapse?.() : a && !o && n.onExpand?.();
27
+ }
28
+ };
29
+ }
30
+ //#endregion
31
+ export { i as createLayoutReporting };
32
+
33
+ //# sourceMappingURL=resizable.reporting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.reporting.js","names":["createLayoutReporting","snapshot","result","meta","ctx","roundPercent","next","persistLayout","readSavedLayout","newSize","was","isCollapsedSize","oldSize","now"],"sources":["../../../src/components/resizable/resizable.reporting.ts"],"sourcesContent":["import { isCollapsedSize } from \"./resizable.constraints\";\nimport {\n persistLayout,\n readSavedLayout,\n type PersistContext,\n} from \"./resizable.storage\";\nimport type { ResizableLayout, ResizablePanelMeta } from \"./resizable.types\";\nimport { roundPercent } from \"./resizable.utils\";\n\nexport interface LayoutReportingContext {\n /** 按 DOM 顺序排列的面板元数据 */\n metas: () => readonly ResizablePanelMeta[];\n /** 读取某个面板当前的百分比尺寸 */\n sizeOf: (id: string) => number;\n /** 布局变化回调(拖拽的每一帧都会调用) */\n onLayoutChange: (layout: ResizableLayout) => void;\n /** 持久化上下文(autoSaveId + storage) */\n persist: () => PersistContext;\n}\n\nexport interface LayoutReporting {\n /** 把 store 里的尺寸整理成对外的布局快照 */\n snapshot: () => ResizableLayout;\n /** 只通知布局变化,不写 storage(拖拽的每一帧) */\n notify: () => void;\n /** 通知 + 持久化(离散操作与拖拽结束) */\n commit: () => void;\n /** 读回已保存的布局 */\n readSaved: () => ResizableLayout | undefined;\n /**\n * 上报单个面板的尺寸变化:\n * 始终回调 `onResize`;可折叠面板还会在\"折叠 ⇄ 展开\"越过阈值时报 `onCollapse` /\n * `onExpand`,普通尺寸变化不触发这两个回调。\n */\n reportSizeChange: (\n meta: ResizablePanelMeta,\n oldSize: number,\n newSize: number,\n ) => void;\n}\n\n/**\n * 布局的对外汇报与持久化。\n *\n * 单一职责:把内部的百分比 store 翻译成对外的 `onLayoutChange` 回调、\n * 尺寸/折叠/展开的通知,以及 `autoSaveId` 驱动的持久化。\n * 不写 store、不做约束求解——只管\"告诉外面发生了什么\"。\n */\nexport function createLayoutReporting(\n ctx: LayoutReportingContext,\n): LayoutReporting {\n const snapshot = (): ResizableLayout => {\n const result: ResizableLayout = {};\n for (const meta of ctx.metas()) {\n result[meta.id] = roundPercent(ctx.sizeOf(meta.id));\n }\n return result;\n };\n\n return {\n snapshot,\n notify() {\n ctx.onLayoutChange(snapshot());\n },\n commit() {\n const next = snapshot();\n ctx.onLayoutChange(next);\n persistLayout(ctx.persist(), next);\n },\n readSaved() {\n return readSavedLayout(ctx.persist());\n },\n reportSizeChange(meta, oldSize, newSize) {\n meta.onResize?.(roundPercent(newSize));\n if (!meta.collapsible()) return;\n\n const was = isCollapsedSize(meta, oldSize);\n const now = isCollapsedSize(meta, newSize);\n if (!was && now) meta.onCollapse?.();\n else if (was && !now) meta.onExpand?.();\n },\n };\n}\n"],"mappings":";;;;AAgDA,SAAgBA,EACd,GACiB;CACjB,IAAMC,UAAkC;EACtC,IAAMC,IAA0B,CAAC;EACjC,KAAK,IAAMC,KAAQC,EAAI,MAAM,GAC3B,EAAOD,EAAK,MAAME,EAAaD,EAAI,OAAOD,EAAK,EAAE,CAAC;EAEpD,OAAOD;CACT;CAEA,OAAO;EACL;EACA,SAAS;GACP,EAAI,eAAeD,EAAS,CAAC;EAC/B;EACA,SAAS;GACP,IAAMK,IAAOL,EAAS;GAEtB,AADAG,EAAI,eAAeE,CAAI,GACvBC,EAAcH,EAAI,QAAQ,GAAGE,CAAI;EACnC;EACA,YAAY;GACV,OAAOE,EAAgBJ,EAAI,QAAQ,CAAC;EACtC;EACA,iBAAiB,GAAM,GAAS,GAAS;GAEvC,IADAD,EAAK,WAAWE,EAAaI,CAAO,CAAC,GACjC,CAACN,EAAK,YAAY,GAAG;GAEzB,IAAMO,IAAMC,EAAgBR,GAAMS,CAAO,GACnCC,IAAMF,EAAgBR,GAAMM,CAAO;GACzC,AAAI,CAACC,KAAOG,IAAKV,EAAK,aAAa,IAC1BO,KAAO,CAACG,KAAKV,EAAK,WAAW;EACxC;CACF;AACF"}