@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 +1 @@
1
- {"version":3,"file":"TabsTrigger.js","names":["createUniqueId","onCleanup","onMount","splitProps","clsx","useTabsContext","useTabsListContext","callEventHandler","tabsTriggerStyles","TabsTriggerProps","TabsTrigger","props","local","events","others","ctx","listCtx","id","triggerId","elementRef","HTMLButtonElement","disabled","selected","isSelected","value","tabIndex","highlighted","highlightedValue","isUsable","undefined","isFirstEnabled","setTriggerId","registerTrigger","element","_el$","_tmpl$","_$use","el","_$setAttribute","_$spread","_$mergeProps","data-active","data-highlighted","aria-selected","aria-controls","getContentId","aria-disabled","tabindex","class","classList","e","setValue","onClick","setHighlightedValue","activateOnFocus","onFocus","_$mergeProps","_tmpl$","TabsTrigger","local","events","others","splitProps","props","ctx","useTabsContext","listCtx","useTabsListContext","triggerId","createUniqueId","elementRef","disabled","selected","tabIndex","highlighted","onMount","onCleanup","_el$","use","el","setAttribute","spread","mergeProps","\"class\"","clsx","tabsTriggerStyles","\"onClick\"","callEventHandler","\"onFocus\""],"sources":["../../../../src/components/tabs/TabsTrigger/TabsTrigger.tsx"],"sourcesContent":["import { createUniqueId, onCleanup, onMount, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useTabsContext } from \"../Tabs/Tabs.context\";\nimport { useTabsListContext } from \"../TabsList/TabsList.context\";\nimport { callEventHandler } from \"../Tabs/call-event-handler\";\nimport { tabsTriggerStyles } from \"./TabsTrigger.styles\";\nimport type { TabsTriggerProps } from \"./TabsTrigger.types\";\n\nexport const TabsTrigger = (props: TabsTriggerProps) => {\n const [local, events, others] = splitProps(\n props,\n [\"value\", \"class\", \"classList\", \"disabled\"],\n [\"onClick\", \"onFocus\"],\n );\n const ctx = useTabsContext();\n const listCtx = useTabsListContext();\n\n const id = createUniqueId();\n const triggerId = `tabs-trigger-${id}`;\n\n let elementRef: HTMLButtonElement | undefined;\n\n const disabled = () => !!local.disabled;\n const selected = () => ctx.isSelected(local.value);\n\n // roving tabindex 跟随焦点高亮:高亮 tab 持 0;\n // 高亮为空或高亮指向的 trigger 不可用(disabled/卸载)时,\n // 首个可用 tab 持 0 作为键盘起点,避免 tablist 键盘不可达\n const tabIndex = () => {\n if (disabled()) return -1;\n const highlighted = ctx.highlightedValue();\n if (highlighted === local.value && ctx.isUsable(local.value)) return 0;\n if (\n (highlighted === undefined || !ctx.isUsable(highlighted)) &&\n ctx.isFirstEnabled(local.value)\n ) {\n return 0;\n }\n return -1;\n };\n\n onMount(() => {\n ctx.setTriggerId(local.value, triggerId);\n onCleanup(\n ctx.registerTrigger({\n value: local.value,\n disabled,\n element: elementRef!,\n }),\n );\n });\n\n return (\n <button\n type=\"button\"\n ref={(el) => {\n elementRef = el;\n }}\n role=\"tab\"\n id={triggerId}\n data-slot=\"tabs-trigger\"\n data-active={selected() ? \"\" : null}\n data-highlighted={ctx.highlightedValue() === local.value ? \"\" : null}\n aria-selected={selected()}\n aria-controls={ctx.getContentId(local.value)}\n aria-disabled={disabled() ? \"true\" : undefined}\n tabindex={tabIndex()}\n disabled={local.disabled}\n class={clsx(tabsTriggerStyles, local.class)}\n classList={local.classList}\n {...others}\n onClick={(e) => {\n // base-ui 语义:激活发生在点击(鼠标抬起/Enter/Space)时,\n // mousedown 触发的 focus 不激活\n if (!disabled()) ctx.setValue(local.value);\n callEventHandler(events.onClick, e);\n }}\n onFocus={(e) => {\n // 聚焦只更新高亮(roving focus);activateOnFocus 时聚焦即激活\n if (!disabled()) {\n ctx.setHighlightedValue(local.value);\n if (listCtx.activateOnFocus) ctx.setValue(local.value);\n }\n callEventHandler(events.onFocus, e);\n }}\n />\n );\n};\n"],"mappings":";;;;;;;;iFAQaU,KAAeC,MAA4B;CACtD,IAAM,CAACC,GAAOC,GAAQC,KAAUX,EAC9BQ,GACA;EAAC;EAAS;EAAS;EAAa;CAAU,GAC1C,CAAC,WAAW,SAAS,CACvB,GACMI,IAAMV,EAAe,GACrBW,IAAUV,EAAmB,GAG7BY,IAAY,gBADPlB,EACuBiB,KAE9BE,GAEEE,UAAiB,CAAC,CAACT,EAAMS,UACzBC,UAAiBP,EAAIQ,WAAWX,EAAMY,KAAK,GAK3CC,UAAiB;EACrB,IAAIJ,EAAS,GAAG,OAAO;EACvB,IAAMK,IAAcX,EAAIY,iBAAiB;EAQzC,OAPID,MAAgBd,EAAMY,SAAST,EAAIa,SAAShB,EAAMY,KAAK,MAExDE,MAAgBG,KAAAA,KAAa,CAACd,EAAIa,SAASF,CAAW,MACvDX,EAAIe,eAAelB,EAAMY,KAAK,IAEvB,IAEF;CACT;CAaA,OAXAtB,QAAc;EAEZD,AADAc,EAAIgB,aAAanB,EAAMY,OAAON,CAAS,GACvCjB,EACEc,EAAIiB,gBAAgB;GAClBR,OAAOZ,EAAMY;GACbH;GACAY,SAASd;EACX,CAAC,CACH;CACF,CAAC,UAED;EAAA,IAAAe,IAAAC,EAAA;EAgCK,OAhCLC,GAGUC,MAAO;GACXlB,IAAakB;EACf,GAACH,CAAA,GAAAI,EAAAJ,GAAA,MAEGhB,CAAS,GAAAqB,EAAAL,GAAAM,EAAA;GAAA,IAAA,gBAAA;IAAA,OAEAlB,EAAS,IAAI,KAAK;GAAI;GAAA,IAAA,qBAAA;IAAA,OACjBP,EAAIY,iBAAiB,MAAMf,EAAMY,QAAQ,KAAK;GAAI;GAAA,IAAA,kBAAA;IAAA,OACrDF,EAAS;GAAC;GAAA,IAAA,kBAAA;IAAA,OACVP,EAAI8B,aAAajC,EAAMY,KAAK;GAAC;GAAA,IAAA,kBAAA;IAAA,OAC7BH,EAAS,IAAI,SAASQ,KAAAA;GAAS;GAAA,IAC9CkB,WAAQ;IAAA,OAAEtB,EAAS;GAAC;GAAA,IACpBJ,WAAQ;IAAA,OAAET,EAAMS;GAAQ;GAAA,IAAA8D,QAAA;IAAA,OACjB/E,EAAKI,GAAmBI,EAAMoC,KAAK;GAAC;GAAA,IAC3CC,YAAS;IAAA,OAAErC,EAAMqC;GAAS;EAAA,GACtBnC,GAAM;GAAAwE,UACApC,MAAM;IAId3C,AADKc,EAAS,KAAGN,EAAIoC,SAASvC,EAAMY,KAAK,GACzCjB,EAAiBM,EAAOuC,SAASF,CAAC;GACpC;GAACsC,UACStC,MAAM;IAMd3C,AAJKc,EAAS,MACZN,EAAIsC,oBAAoBzC,EAAMY,KAAK,GAC/BR,EAAQsC,mBAAiBvC,EAAIoC,SAASvC,EAAMY,KAAK,IAEvDjB,EAAiBM,EAAO0C,SAASL,CAAC;GACpC;EAAC,CAAA,GAAA,IAAA,EAAA,GAAAhB;CAAA,EAAA,CAAA;AAGP"}
1
+ {"version":3,"file":"TabsTrigger.js","names":["createUniqueId","onCleanup","onMount","splitProps","clsx","useTabsContext","useTabsListContext","callEventHandler","tabsTriggerStyles","TabsTriggerProps","TabsTrigger","props","local","events","others","ctx","listCtx","id","triggerId","elementRef","HTMLButtonElement","disabled","selected","isSelected","value","tabIndex","highlighted","highlightedValue","isUsable","undefined","isFirstEnabled","setTriggerId","registerTrigger","element","_el$","_tmpl$","_$use","el","_$setAttribute","_$spread","_$mergeProps","data-active","data-highlighted","aria-selected","aria-controls","getContentId","aria-disabled","tabindex","class","classList","e","setValue","onClick","setHighlightedValue","activateOnFocus","onFocus","_$mergeProps","_tmpl$","TabsTrigger","local","events","others","splitProps","props","ctx","useTabsContext","listCtx","useTabsListContext","triggerId","createUniqueId","elementRef","disabled","selected","tabIndex","highlighted","onMount","onCleanup","_el$","use","el","setAttribute","spread","mergeProps","\"class\"","clsx","tabsTriggerStyles","\"onClick\"","callEventHandler","\"onFocus\""],"sources":["../../../../src/components/tabs/TabsTrigger/TabsTrigger.tsx"],"sourcesContent":["import { createUniqueId, onCleanup, onMount, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { useTabsContext } from \"../Tabs/Tabs.context\";\nimport { useTabsListContext } from \"../TabsList/TabsList.context\";\nimport { callEventHandler } from \"~/utils\";\nimport { tabsTriggerStyles } from \"./TabsTrigger.styles\";\nimport type { TabsTriggerProps } from \"./TabsTrigger.types\";\n\nexport const TabsTrigger = (props: TabsTriggerProps) => {\n const [local, events, others] = splitProps(\n props,\n [\"value\", \"class\", \"classList\", \"disabled\"],\n [\"onClick\", \"onFocus\"],\n );\n const ctx = useTabsContext();\n const listCtx = useTabsListContext();\n\n const id = createUniqueId();\n const triggerId = `tabs-trigger-${id}`;\n\n let elementRef: HTMLButtonElement | undefined;\n\n const disabled = () => !!local.disabled;\n const selected = () => ctx.isSelected(local.value);\n\n // roving tabindex 跟随焦点高亮:高亮 tab 持 0;\n // 高亮为空或高亮指向的 trigger 不可用(disabled/卸载)时,\n // 首个可用 tab 持 0 作为键盘起点,避免 tablist 键盘不可达\n const tabIndex = () => {\n if (disabled()) return -1;\n const highlighted = ctx.highlightedValue();\n if (highlighted === local.value && ctx.isUsable(local.value)) return 0;\n if (\n (highlighted === undefined || !ctx.isUsable(highlighted)) &&\n ctx.isFirstEnabled(local.value)\n ) {\n return 0;\n }\n return -1;\n };\n\n onMount(() => {\n ctx.setTriggerId(local.value, triggerId);\n onCleanup(\n ctx.registerTrigger({\n value: local.value,\n disabled,\n element: elementRef!,\n }),\n );\n });\n\n return (\n <button\n type=\"button\"\n ref={(el) => {\n elementRef = el;\n }}\n role=\"tab\"\n id={triggerId}\n data-slot=\"tabs-trigger\"\n data-active={selected() ? \"\" : null}\n data-highlighted={ctx.highlightedValue() === local.value ? \"\" : null}\n aria-selected={selected()}\n aria-controls={ctx.getContentId(local.value)}\n aria-disabled={disabled() ? \"true\" : undefined}\n tabindex={tabIndex()}\n disabled={local.disabled}\n class={clsx(tabsTriggerStyles, local.class)}\n classList={local.classList}\n {...others}\n onClick={(e) => {\n // base-ui 语义:激活发生在点击(鼠标抬起/Enter/Space)时,\n // mousedown 触发的 focus 不激活\n if (!disabled()) ctx.setValue(local.value);\n callEventHandler(events.onClick, e);\n }}\n onFocus={(e) => {\n // 聚焦只更新高亮(roving focus);activateOnFocus 时聚焦即激活\n if (!disabled()) {\n ctx.setHighlightedValue(local.value);\n if (listCtx.activateOnFocus) ctx.setValue(local.value);\n }\n callEventHandler(events.onFocus, e);\n }}\n />\n );\n};\n"],"mappings":";;;;;;;;iFAQaU,KAAeC,MAA4B;CACtD,IAAM,CAACC,GAAOC,GAAQC,KAAUX,EAC9BQ,GACA;EAAC;EAAS;EAAS;EAAa;CAAU,GAC1C,CAAC,WAAW,SAAS,CACvB,GACMI,IAAMV,EAAe,GACrBW,IAAUV,EAAmB,GAG7BY,IAAY,gBADPlB,EACuBiB,KAE9BE,GAEEE,UAAiB,CAAC,CAACT,EAAMS,UACzBC,UAAiBP,EAAIQ,WAAWX,EAAMY,KAAK,GAK3CC,UAAiB;EACrB,IAAIJ,EAAS,GAAG,OAAO;EACvB,IAAMK,IAAcX,EAAIY,iBAAiB;EAQzC,OAPID,MAAgBd,EAAMY,SAAST,EAAIa,SAAShB,EAAMY,KAAK,MAExDE,MAAgBG,KAAAA,KAAa,CAACd,EAAIa,SAASF,CAAW,MACvDX,EAAIe,eAAelB,EAAMY,KAAK,IAEvB,IAEF;CACT;CAaA,OAXAtB,QAAc;EAEZD,AADAc,EAAIgB,aAAanB,EAAMY,OAAON,CAAS,GACvCjB,EACEc,EAAIiB,gBAAgB;GAClBR,OAAOZ,EAAMY;GACbH;GACAY,SAASd;EACX,CAAC,CACH;CACF,CAAC,UAED;EAAA,IAAAe,IAAAC,EAAA;EAgCK,OAhCLC,GAGUC,MAAO;GACXlB,IAAakB;EACf,GAACH,CAAA,GAAAI,EAAAJ,GAAA,MAEGhB,CAAS,GAAAqB,EAAAL,GAAAM,EAAA;GAAA,IAAA,gBAAA;IAAA,OAEAlB,EAAS,IAAI,KAAK;GAAI;GAAA,IAAA,qBAAA;IAAA,OACjBP,EAAIY,iBAAiB,MAAMf,EAAMY,QAAQ,KAAK;GAAI;GAAA,IAAA,kBAAA;IAAA,OACrDF,EAAS;GAAC;GAAA,IAAA,kBAAA;IAAA,OACVP,EAAI8B,aAAajC,EAAMY,KAAK;GAAC;GAAA,IAAA,kBAAA;IAAA,OAC7BH,EAAS,IAAI,SAASQ,KAAAA;GAAS;GAAA,IAC9CkB,WAAQ;IAAA,OAAEtB,EAAS;GAAC;GAAA,IACpBJ,WAAQ;IAAA,OAAET,EAAMS;GAAQ;GAAA,IAAA8D,QAAA;IAAA,OACjB/E,EAAKI,GAAmBI,EAAMoC,KAAK;GAAC;GAAA,IAC3CC,YAAS;IAAA,OAAErC,EAAMqC;GAAS;EAAA,GACtBnC,GAAM;GAAAwE,UACApC,MAAM;IAId3C,AADKc,EAAS,KAAGN,EAAIoC,SAASvC,EAAMY,KAAK,GACzCjB,EAAiBM,EAAOuC,SAASF,CAAC;GACpC;GAACsC,UACStC,MAAM;IAMd3C,AAJKc,EAAS,MACZN,EAAIsC,oBAAoBzC,EAAMY,KAAK,GAC/BR,EAAQsC,mBAAiBvC,EAAIoC,SAASvC,EAAMY,KAAK,IAEvDjB,EAAiBM,EAAO0C,SAASL,CAAC;GACpC;EAAC,CAAA,GAAA,IAAA,EAAA,GAAAhB;CAAA,EAAA,CAAA;AAGP"}
@@ -6,9 +6,14 @@ var a = /*#__PURE__*/ r("<textarea data-slot=textarea>"), o = (r) => {
6
6
  let [o, s] = i(r, ["class", "classList"]);
7
7
  return (() => {
8
8
  var r = a();
9
- return n(r, t({ get class() {
10
- return e("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", o.class);
11
- } }, s), !1, !1), r;
9
+ return n(r, t({
10
+ get class() {
11
+ return e("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", o.class);
12
+ },
13
+ get classList() {
14
+ return o.classList;
15
+ }
16
+ }, s), !1, !1), r;
12
17
  })();
13
18
  };
14
19
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","names":["splitProps","TextareaProps","clsx","Textarea","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","Textarea","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../src/components/textarea/Textarea.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport type { TextareaProps } from \"./Textarea.types\";\nimport { clsx } from \"~/utils\";\n\nexport const Textarea = (props: TextareaProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <textarea\n data-slot=\"textarea\"\n class={clsx(\n \"flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;0DAIaG,KAAYC,MAAyB;CAChD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAGWpB,EACL,0hBACAG,EAAMM,KACR;EAAC,EAAA,GACGL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
1
+ {"version":3,"file":"Textarea.js","names":["splitProps","TextareaProps","clsx","Textarea","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","classList","_$mergeProps","_tmpl$","Textarea","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../src/components/textarea/Textarea.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport type { TextareaProps } from \"./Textarea.types\";\nimport { clsx } from \"~/utils\";\n\nexport const Textarea = (props: TextareaProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <textarea\n data-slot=\"textarea\"\n class={clsx(\n \"flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n local.class,\n )}\n classList={local.classList}\n {...others}\n />\n );\n};\n"],"mappings":";;;;0DAIaG,KAAYC,MAAyB;CAChD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAQc,OARdC,EAAAF,GAAAG,EAAA;GAAA,IAAAa,QAAA;IAAA,OAGWrB,EACL,0hBACAG,EAAMM,KACR;GAAC;GAAA,IACDC,YAAS;IAAA,OAAEP,EAAMO;GAAS;EAAA,GACtBN,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
@@ -2,7 +2,6 @@ import { TimePickerChangeEventDetails, TimePickerChangeReason } from './TimePick
2
2
  /**
3
3
  * 构造 onValueChange 的事件详情(对齐 base-ui 的 `ChangeEventDetails`)。
4
4
  *
5
- * `isCanceled` / `isPropagationAllowed` 用 getter 暴露:回调内部可以即时读到
6
- * `cancel()` / `allowPropagation()` 之后的最新值,而不是创建时的快照。
5
+ * 实现在 `~/utils`,这里只固定 TimePicker 的 reason 类型。
7
6
  */
8
7
  export declare function createTimePickerChangeEventDetails(reason: TimePickerChangeReason, event?: Event, trigger?: Element): TimePickerChangeEventDetails;
@@ -1,25 +1,9 @@
1
+ import { createChangeEventDetails as e } from "../../../utils/create-change-event-details.js";
1
2
  //#region src/components/time-picker/TimePicker/create-change-event-details.ts
2
- function e(e, t, n) {
3
- let r = !1, i = !1;
4
- return {
5
- reason: e,
6
- event: t,
7
- trigger: n,
8
- cancel: () => {
9
- r = !0;
10
- },
11
- allowPropagation: () => {
12
- i = !0;
13
- },
14
- get isCanceled() {
15
- return r;
16
- },
17
- get isPropagationAllowed() {
18
- return i;
19
- }
20
- };
3
+ function t(t, n, r) {
4
+ return e(t, n, r);
21
5
  }
22
6
  //#endregion
23
- export { e as createTimePickerChangeEventDetails };
7
+ export { t as createTimePickerChangeEventDetails };
24
8
 
25
9
  //# sourceMappingURL=create-change-event-details.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-change-event-details.js","names":["createTimePickerChangeEventDetails","canceled","propagationAllowed"],"sources":["../../../../src/components/time-picker/TimePicker/create-change-event-details.ts"],"sourcesContent":["import type {\n TimePickerChangeEventDetails,\n TimePickerChangeReason,\n} from \"./TimePicker.types\";\n\n/**\n * 构造 onValueChange 的事件详情(对齐 base-ui 的 `ChangeEventDetails`)。\n *\n * `isCanceled` / `isPropagationAllowed` 用 getter 暴露:回调内部可以即时读到\n * `cancel()` / `allowPropagation()` 之后的最新值,而不是创建时的快照。\n */\nexport function createTimePickerChangeEventDetails(\n reason: TimePickerChangeReason,\n event?: Event,\n trigger?: Element,\n): TimePickerChangeEventDetails {\n let canceled = false;\n let propagationAllowed = false;\n\n return {\n reason,\n event,\n trigger,\n cancel: () => {\n canceled = true;\n },\n allowPropagation: () => {\n propagationAllowed = true;\n },\n get isCanceled() {\n return canceled;\n },\n get isPropagationAllowed() {\n return propagationAllowed;\n },\n };\n}\n"],"mappings":";AAWA,SAAgBA,EACd,GACA,GACA,GAC8B;CAC9B,IAAIC,IAAW,IACXC,IAAqB;CAEzB,OAAO;EACL;EACA;EACA;EACA,cAAc;GACZ,IAAW;EACb;EACA,wBAAwB;GACtB,IAAqB;EACvB;EACA,IAAI,aAAa;GACf,OAAOD;EACT;EACA,IAAI,uBAAuB;GACzB,OAAOC;EACT;CACF;AACF"}
1
+ {"version":3,"file":"create-change-event-details.js","names":["createTimePickerChangeEventDetails","createChangeEventDetails","reason","event","trigger"],"sources":["../../../../src/components/time-picker/TimePicker/create-change-event-details.ts"],"sourcesContent":["import { createChangeEventDetails } from \"~/utils\";\nimport type {\n TimePickerChangeEventDetails,\n TimePickerChangeReason,\n} from \"./TimePicker.types\";\n\n/**\n * 构造 onValueChange 的事件详情(对齐 base-ui 的 `ChangeEventDetails`)。\n *\n * 实现在 `~/utils`,这里只固定 TimePicker 的 reason 类型。\n */\nexport function createTimePickerChangeEventDetails(\n reason: TimePickerChangeReason,\n event?: Event,\n trigger?: Element,\n): TimePickerChangeEventDetails {\n return createChangeEventDetails(reason, event, trigger);\n}\n"],"mappings":";;AAWA,SAAgBA,EACd,GACA,GACA,GAC8B;CAC9B,OAAOC,EAAyBC,GAAQC,GAAOC,CAAO;AACxD"}
@@ -31,9 +31,7 @@ function m(u) {
31
31
  get selected() {
32
32
  return g() === e.value;
33
33
  },
34
- onSelect: (t) => {
35
- t && x(e.value, t);
36
- },
34
+ onSelect: (t) => x(e.value, t),
37
35
  get children() {
38
36
  return e.label;
39
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TimePickerColumn.js","names":["For","JSX","clsx","ScrollArrows","TimePickerOption","useTimePickerContext","TimePickerUnitValue","TimePickerColumnProps","useTimePickerColumn","TimePickerColumn","props","Element","ctx","options","selected","activeOptionId","optionId","listElement","attachList","selectOption","value","event","MouseEvent","currentTarget","HTMLDivElement","target","setUnitValue","unit","reason","trigger","_el$","_tmpl$","_el$2","firstChild","_$use","_$insert","_$createComponent","each","children","option","id","onSelect","label","upClass","downClass","_$effect","_p$","_v$","_v$2","class","_v$3","getUnitLabel","_v$4","_v$5","e","_$setAttribute","t","_$className","a","o","i","undefined","_$createComponent","_$setAttribute","_$className","_tmpl$","TimePickerColumn","ctx","useTimePickerContext","useTimePickerColumn","props","selectOption","value","event","_el$","_el$2","use","attachList","insert","createComponent","For","options","TimePickerOption","optionId","option","selected","ScrollArrows","listElement","effect","_v$","_v$2","clsx","_v$3","_v$4","activeOptionId","_v$5","_p$","setAttribute","className"],"sources":["../../../../src/components/time-picker/TimePickerColumn/TimePickerColumn.tsx"],"sourcesContent":["import { For, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { ScrollArrows } from \"~/components/scroll-arrows\";\nimport { TimePickerOption } from \"../TimePickerOption\";\nimport { useTimePickerContext } from \"../TimePicker/TimePicker.context\";\nimport type { TimePickerUnitValue } from \"../TimePicker/TimePicker.types\";\nimport type { TimePickerColumnProps } from \"./TimePickerColumn.types\";\nimport { useTimePickerColumn } from \"./useTimePickerColumn\";\n\n/**\n * 单个时间列:`role=\"listbox\"` 的可滚动列表,选项是 `role=\"option\"`。\n *\n * 焦点停在列本身,`aria-activedescendant` 指向选中项;这样列表是唯一可聚焦的\n * 复合控件,方向键、Home/End、左右切换列都集中在 useTimePickerColumn 里。\n * 原生滚动条隐藏,用与 Select 一致的上下箭头提示还有内容。\n */\nexport function TimePickerColumn(props: TimePickerColumnProps): JSX.Element {\n const ctx = useTimePickerContext(\"TimePickerColumn\");\n const {\n options,\n selected,\n activeOptionId,\n optionId,\n listElement,\n attachList,\n } = useTimePickerColumn(() => props);\n\n const selectOption = (\n value: TimePickerUnitValue,\n event: MouseEvent & { currentTarget: HTMLDivElement; target: Element },\n ) => {\n ctx.setUnitValue(props.unit, value, {\n reason: \"option-press\",\n event,\n trigger: event.currentTarget,\n });\n };\n\n return (\n // 外层只做相对定位,供滚动箭头贴住列表上下沿;自身不滚动\n <div\n data-slot=\"time-picker-column\"\n data-unit={props.unit}\n class={clsx(\"relative flex flex-col\", props.class)}\n >\n <div\n ref={attachList}\n role=\"listbox\"\n aria-label={props.label ?? ctx.getUnitLabel(props.unit)}\n aria-activedescendant={activeOptionId()}\n tabIndex={0}\n class={clsx(\n \"h-52 w-12 overflow-y-auto overscroll-contain rounded-md p-1\",\n \"no-scrollbar [&::-webkit-scrollbar]:hidden\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring/50\",\n )}\n >\n <For each={options()}>\n {(option) => (\n <TimePickerOption\n id={optionId(option.value)}\n value={option.value}\n selected={selected() === option.value}\n onSelect={(event) => {\n if (event) selectOption(option.value, event);\n }}\n >\n {option.label}\n </TimePickerOption>\n )}\n </For>\n </div>\n <ScrollArrows\n target={listElement}\n upClass=\"rounded-t-md\"\n downClass=\"rounded-b-md\"\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgBS,EAAiBC,GAA2C;CAC1E,IAAME,IAAMP,EAAqB,kBAAkB,GAC7C,EACJQ,YACAC,aACAC,mBACAC,aACAC,gBACAC,kBACEV,QAA0BE,CAAK,GAE7BS,KACJC,GACAC,MACG;EACHT,EAAIc,aAAahB,EAAMiB,MAAMP,GAAO;GAClCQ,QAAQ;GACRP;GACAQ,SAASR,EAAME;EACjB,CAAC;CACH;CAEA,cACE;EAAA,IAAAO,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EAgBK,OAhBLC,EAOShB,GAAUc,CAAA,GAAAG,EAAAH,GAAAI,EAWdpC,GAAG;GAAA,IAACqC,OAAI;IAAA,OAAExB,EAAQ;GAAC;GAAAyB,WAChBC,MAAMH,EACLhC,GAAgB;IAAA,IACfoC,KAAE;KAAA,OAAExB,EAASuB,EAAOnB,KAAK;IAAC;IAAA,IAC1BA,QAAK;KAAA,OAAEmB,EAAOnB;IAAK;IAAA,IACnBN,WAAQ;KAAA,OAAEA,EAAS,MAAMyB,EAAOnB;IAAK;IACrCqB,WAAWpB,MAAU;KACnB,AAAIA,KAAOF,EAAaoB,EAAOnB,OAAOC,CAAK;IAC7C;IAAC,IAAAiB,WAAA;KAAA,OAEAC,EAAOG;IAAK;GAAA,CAAA;EAEhB,CAAA,CAAA,GAAAP,EAAAL,GAAAM,EAGJjC,GAAY;GACXsB,QAAQR;GACR0B,SAAO;GACPC,WAAS;EAAA,CAAA,GAAA,IAAA,GAAAC,GAAAC,MAAA;GAAA,IAAAC,IAjCArC,EAAMiB,MAAIqB,IACd9C,EAAK,0BAA0BQ,EAAMuC,KAAK,GAACC,IAKpCxC,EAAMgC,SAAS9B,EAAIuC,aAAazC,EAAMiB,IAAI,GAACyB,IAChCrC,EAAe,GAACsC,IAEhCnD,EACL,+DACA,8CACA,8DACF;GAAC,OAAA6C,MAAAD,EAAAQ,KAAAC,EAAAzB,GAAA,aAAAgB,EAAAQ,IAAAP,CAAA,GAAAC,MAAAF,EAAAU,KAAAC,EAAA3B,GAAAgB,EAAAU,IAAAR,CAAA,GAAAE,MAAAJ,EAAAY,KAAAH,EAAAvB,GAAA,cAAAc,EAAAY,IAAAR,CAAA,GAAAE,MAAAN,EAAAa,KAAAJ,EAAAvB,GAAA,yBAAAc,EAAAa,IAAAP,CAAA,GAAAC,MAAAP,EAAAc,KAAAH,EAAAzB,GAAAc,EAAAc,IAAAP,CAAA,GAAAP;EAAA,GAAA;GAAAQ,GAAAO,KAAAA;GAAAL,GAAAK,KAAAA;GAAAH,GAAAG,KAAAA;GAAAF,GAAAE,KAAAA;GAAAD,GAAAC,KAAAA;EAAA,CAAA,GAAA/B;CAAA,EAAA,CAAA;AAwBT"}
1
+ {"version":3,"file":"TimePickerColumn.js","names":["For","JSX","clsx","ScrollArrows","TimePickerOption","useTimePickerContext","TimePickerUnitValue","TimePickerColumnProps","useTimePickerColumn","TimePickerColumn","props","Element","ctx","options","selected","activeOptionId","optionId","listElement","attachList","selectOption","value","event","MouseEvent","currentTarget","HTMLDivElement","target","setUnitValue","unit","reason","trigger","_el$","_tmpl$","_el$2","firstChild","_$use","_$insert","_$createComponent","each","children","option","id","onSelect","label","upClass","downClass","_$effect","_p$","_v$","_v$2","class","_v$3","getUnitLabel","_v$4","_v$5","e","_$setAttribute","t","_$className","a","o","i","undefined","_$createComponent","_$setAttribute","_$className","_tmpl$","TimePickerColumn","ctx","useTimePickerContext","useTimePickerColumn","props","selectOption","value","event","_el$","_el$2","use","attachList","insert","createComponent","For","options","TimePickerOption","optionId","option","selected","ScrollArrows","listElement","effect","_v$","_v$2","clsx","_v$3","_v$4","activeOptionId","_v$5","_p$","setAttribute","className"],"sources":["../../../../src/components/time-picker/TimePickerColumn/TimePickerColumn.tsx"],"sourcesContent":["import { For, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { ScrollArrows } from \"~/components/scroll-arrows\";\nimport { TimePickerOption } from \"../TimePickerOption\";\nimport { useTimePickerContext } from \"../TimePicker/TimePicker.context\";\nimport type { TimePickerUnitValue } from \"../TimePicker/TimePicker.types\";\nimport type { TimePickerColumnProps } from \"./TimePickerColumn.types\";\nimport { useTimePickerColumn } from \"./useTimePickerColumn\";\n\n/**\n * 单个时间列:`role=\"listbox\"` 的可滚动列表,选项是 `role=\"option\"`。\n *\n * 焦点停在列本身,`aria-activedescendant` 指向选中项;这样列表是唯一可聚焦的\n * 复合控件,方向键、Home/End、左右切换列都集中在 useTimePickerColumn 里。\n * 原生滚动条隐藏,用与 Select 一致的上下箭头提示还有内容。\n */\nexport function TimePickerColumn(props: TimePickerColumnProps): JSX.Element {\n const ctx = useTimePickerContext(\"TimePickerColumn\");\n const {\n options,\n selected,\n activeOptionId,\n optionId,\n listElement,\n attachList,\n } = useTimePickerColumn(() => props);\n\n const selectOption = (\n value: TimePickerUnitValue,\n event: MouseEvent & { currentTarget: HTMLDivElement; target: Element },\n ) => {\n ctx.setUnitValue(props.unit, value, {\n reason: \"option-press\",\n event,\n trigger: event.currentTarget,\n });\n };\n\n return (\n // 外层只做相对定位,供滚动箭头贴住列表上下沿;自身不滚动\n <div\n data-slot=\"time-picker-column\"\n data-unit={props.unit}\n class={clsx(\"relative flex flex-col\", props.class)}\n >\n <div\n ref={attachList}\n role=\"listbox\"\n aria-label={props.label ?? ctx.getUnitLabel(props.unit)}\n aria-activedescendant={activeOptionId()}\n tabIndex={0}\n class={clsx(\n \"h-52 w-12 overflow-y-auto overscroll-contain rounded-md p-1\",\n \"no-scrollbar [&::-webkit-scrollbar]:hidden\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-ring/50\",\n )}\n >\n <For each={options()}>\n {(option) => (\n <TimePickerOption\n id={optionId(option.value)}\n value={option.value}\n selected={selected() === option.value}\n // event 在类型上必填(Solid 的点击事件一定有事件对象),\n // 因此不再需要 `if (event)` 这种永远成立的守卫\n onSelect={(event) => selectOption(option.value, event)}\n >\n {option.label}\n </TimePickerOption>\n )}\n </For>\n </div>\n <ScrollArrows\n target={listElement}\n upClass=\"rounded-t-md\"\n downClass=\"rounded-b-md\"\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgBS,EAAiBC,GAA2C;CAC1E,IAAME,IAAMP,EAAqB,kBAAkB,GAC7C,EACJQ,YACAC,aACAC,mBACAC,aACAC,gBACAC,kBACEV,QAA0BE,CAAK,GAE7BS,KACJC,GACAC,MACG;EACHT,EAAIc,aAAahB,EAAMiB,MAAMP,GAAO;GAClCQ,QAAQ;GACRP;GACAQ,SAASR,EAAME;EACjB,CAAC;CACH;CAEA,cACE;EAAA,IAAAO,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EAgBK,OAhBLC,EAOShB,GAAUc,CAAA,GAAAG,EAAAH,GAAAI,EAWdpC,GAAG;GAAA,IAACqC,OAAI;IAAA,OAAExB,EAAQ;GAAC;GAAAyB,WAChBC,MAAMH,EACLhC,GAAgB;IAAA,IACfoC,KAAE;KAAA,OAAExB,EAASuB,EAAOnB,KAAK;IAAC;IAAA,IAC1BA,QAAK;KAAA,OAAEmB,EAAOnB;IAAK;IAAA,IACnBN,WAAQ;KAAA,OAAEA,EAAS,MAAMyB,EAAOnB;IAAK;IAGrCqB,WAAWpB,MAAUF,EAAaoB,EAAOnB,OAAOC,CAAK;IAAC,IAAAiB,WAAA;KAAA,OAErDC,EAAOG;IAAK;GAAA,CAAA;EAEhB,CAAA,CAAA,GAAAP,EAAAL,GAAAM,EAGJjC,GAAY;GACXsB,QAAQR;GACR0B,SAAO;GACPC,WAAS;EAAA,CAAA,GAAA,IAAA,GAAAC,GAAAC,MAAA;GAAA,IAAAC,IAjCArC,EAAMiB,MAAIqB,IACd9C,EAAK,0BAA0BQ,EAAMuC,KAAK,GAACC,IAKpCxC,EAAMgC,SAAS9B,EAAIuC,aAAazC,EAAMiB,IAAI,GAACyB,IAChCrC,EAAe,GAACsC,IAEhCnD,EACL,+DACA,8CACA,8DACF;GAAC,OAAA6C,MAAAD,EAAAQ,KAAAC,EAAAzB,GAAA,aAAAgB,EAAAQ,IAAAP,CAAA,GAAAC,MAAAF,EAAAU,KAAAC,EAAA3B,GAAAgB,EAAAU,IAAAR,CAAA,GAAAE,MAAAJ,EAAAY,KAAAH,EAAAvB,GAAA,cAAAc,EAAAY,IAAAR,CAAA,GAAAE,MAAAN,EAAAa,KAAAJ,EAAAvB,GAAA,yBAAAc,EAAAa,IAAAP,CAAA,GAAAC,MAAAP,EAAAc,KAAAH,EAAAzB,GAAAc,EAAAc,IAAAP,CAAA,GAAAP;EAAA,GAAA;GAAAQ,GAAAO,KAAAA;GAAAL,GAAAK,KAAAA;GAAAH,GAAAG,KAAAA;GAAAF,GAAAE,KAAAA;GAAAD,GAAAC,KAAAA;EAAA,CAAA,GAAA/B;CAAA,EAAA,CAAA;AAwBT"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * TimePickerColumn 的纯交互逻辑:选项索引的环形推进、跨列推进(含 RTL 取反)、
3
+ * 以及按键到意图的映射。
4
+ *
5
+ * 单一职责:只做"从当前状态推出下一个状态"的计算与"按键代表什么意图"的翻译,
6
+ * 不读信号、不写值、不碰 DOM——写回与聚焦由 hook 按返回的意图执行。
7
+ */
8
+ /** 按键意图:move/moveColumn 是推进,commitBoundary 跳到两端,consume 只吞掉按键 */
9
+ export type ColumnKeyAction = {
10
+ type: "move";
11
+ direction: 1 | -1;
12
+ } | {
13
+ type: "moveColumn";
14
+ direction: 1 | -1;
15
+ } | {
16
+ type: "commitBoundary";
17
+ boundary: "first" | "last";
18
+ } | {
19
+ type: "consume";
20
+ } | null;
21
+ /**
22
+ * 列表内部的环形推进:
23
+ * - 空列表返回 -1(调用方据此放弃);
24
+ * - 当前值不在列表里(例如 minuteStep=15 而值的分钟是 7)时,向前从 0、向后从末尾开始;
25
+ * - 其余情况按方向环形回绕。
26
+ */
27
+ export declare function resolveNextOptionIndex(currentIndex: number, direction: 1 | -1, length: number): number;
28
+ /**
29
+ * 跨列推进:按 `units` 顺序环形移动;RTL 下左右方向语义取反。
30
+ * 当前列不在列表中、或目标列不存在时返回 undefined。
31
+ */
32
+ export declare function resolveNextUnit<T extends string>(units: readonly T[], current: T, direction: 1 | -1, rtl: boolean): T | undefined;
33
+ /** 方向键/Home/End/Enter 映射成意图;其余按键返回 null(调用方不处理) */
34
+ export declare function resolveColumnKeyAction(key: string): ColumnKeyAction;
@@ -0,0 +1,43 @@
1
+ //#region src/components/time-picker/TimePickerColumn/time-picker.column-utils.ts
2
+ function e(e, t, n) {
3
+ return n <= 0 ? -1 : e === -1 ? t === 1 ? 0 : n - 1 : (e + t + n) % n;
4
+ }
5
+ function t(e, t, n, r) {
6
+ let i = e.indexOf(t);
7
+ if (i !== -1) return e[(i + (r ? -n : n) + e.length) % e.length];
8
+ }
9
+ function n(e) {
10
+ switch (e) {
11
+ case "ArrowDown": return {
12
+ type: "move",
13
+ direction: 1
14
+ };
15
+ case "ArrowUp": return {
16
+ type: "move",
17
+ direction: -1
18
+ };
19
+ case "ArrowRight": return {
20
+ type: "moveColumn",
21
+ direction: 1
22
+ };
23
+ case "ArrowLeft": return {
24
+ type: "moveColumn",
25
+ direction: -1
26
+ };
27
+ case "Home": return {
28
+ type: "commitBoundary",
29
+ boundary: "first"
30
+ };
31
+ case "End": return {
32
+ type: "commitBoundary",
33
+ boundary: "last"
34
+ };
35
+ case "Enter":
36
+ case " ": return { type: "consume" };
37
+ default: return null;
38
+ }
39
+ }
40
+ //#endregion
41
+ export { n as resolveColumnKeyAction, e as resolveNextOptionIndex, t as resolveNextUnit };
42
+
43
+ //# sourceMappingURL=time-picker.column-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time-picker.column-utils.js","names":["resolveNextOptionIndex","length","currentIndex","direction","resolveNextUnit","index","units","current","rtl","resolveColumnKeyAction","key"],"sources":["../../../../src/components/time-picker/TimePickerColumn/time-picker.column-utils.ts"],"sourcesContent":["/**\n * TimePickerColumn 的纯交互逻辑:选项索引的环形推进、跨列推进(含 RTL 取反)、\n * 以及按键到意图的映射。\n *\n * 单一职责:只做\"从当前状态推出下一个状态\"的计算与\"按键代表什么意图\"的翻译,\n * 不读信号、不写值、不碰 DOM——写回与聚焦由 hook 按返回的意图执行。\n */\n\n/** 按键意图:move/moveColumn 是推进,commitBoundary 跳到两端,consume 只吞掉按键 */\nexport type ColumnKeyAction =\n | { type: \"move\"; direction: 1 | -1 }\n | { type: \"moveColumn\"; direction: 1 | -1 }\n | { type: \"commitBoundary\"; boundary: \"first\" | \"last\" }\n | { type: \"consume\" }\n | null;\n\n/**\n * 列表内部的环形推进:\n * - 空列表返回 -1(调用方据此放弃);\n * - 当前值不在列表里(例如 minuteStep=15 而值的分钟是 7)时,向前从 0、向后从末尾开始;\n * - 其余情况按方向环形回绕。\n */\nexport function resolveNextOptionIndex(\n currentIndex: number,\n direction: 1 | -1,\n length: number,\n): number {\n if (length <= 0) return -1;\n if (currentIndex === -1) return direction === 1 ? 0 : length - 1;\n return (currentIndex + direction + length) % length;\n}\n\n/**\n * 跨列推进:按 `units` 顺序环形移动;RTL 下左右方向语义取反。\n * 当前列不在列表中、或目标列不存在时返回 undefined。\n */\nexport function resolveNextUnit<T extends string>(\n units: readonly T[],\n current: T,\n direction: 1 | -1,\n rtl: boolean,\n): T | undefined {\n const index = units.indexOf(current);\n if (index === -1) return undefined;\n const step = rtl ? -direction : direction;\n return units[(index + step + units.length) % units.length];\n}\n\n/** 方向键/Home/End/Enter 映射成意图;其余按键返回 null(调用方不处理) */\nexport function resolveColumnKeyAction(key: string): ColumnKeyAction {\n switch (key) {\n case \"ArrowDown\":\n return { type: \"move\", direction: 1 };\n case \"ArrowUp\":\n return { type: \"move\", direction: -1 };\n case \"ArrowRight\":\n return { type: \"moveColumn\", direction: 1 };\n case \"ArrowLeft\":\n return { type: \"moveColumn\", direction: -1 };\n case \"Home\":\n return { type: \"commitBoundary\", boundary: \"first\" };\n case \"End\":\n return { type: \"commitBoundary\", boundary: \"last\" };\n case \"Enter\":\n case \" \":\n // 移动即提交,这里只需阻止空格滚动页面\n return { type: \"consume\" };\n default:\n return null;\n }\n}\n"],"mappings":";AAsBA,SAAgBA,EACd,GACA,GACA,GACQ;CAGR,OAFIC,KAAU,IAAU,KACpBC,MAAiB,KAAWC,MAAc,IAAI,IAAIF,IAAS,KACvDC,IAAeC,IAAYF,KAAUA;AAC/C;AAMA,SAAgBG,EACd,GACA,GACA,GACA,GACe;CACf,IAAMC,IAAQC,EAAM,QAAQC,CAAO;CACnC,IAAIF,MAAU,IAEd,OAAOC,GAAOD,KADDG,IAAM,CAACL,IAAYA,KACHG,EAAM,UAAUA,EAAM;AACrD;AAGA,SAAgBG,EAAuB,GAA8B;CACnE,QAAQC,GAAR;EACE,KAAK,aACH,OAAO;GAAE,MAAM;GAAQ,WAAW;EAAE;EACtC,KAAK,WACH,OAAO;GAAE,MAAM;GAAQ,WAAW;EAAG;EACvC,KAAK,cACH,OAAO;GAAE,MAAM;GAAc,WAAW;EAAE;EAC5C,KAAK,aACH,OAAO;GAAE,MAAM;GAAc,WAAW;EAAG;EAC7C,KAAK,QACH,OAAO;GAAE,MAAM;GAAkB,UAAU;EAAQ;EACrD,KAAK,OACH,OAAO;GAAE,MAAM;GAAkB,UAAU;EAAO;EACpD,KAAK;EACL,KAAK,KAEH,OAAO,EAAE,MAAM,UAAU;EAC3B,SACE,OAAO;CACX;AACF"}
@@ -1,75 +1,50 @@
1
1
  import { useTimePickerContext as e } from "../TimePicker/TimePicker.context.js";
2
- import { createEffect as t, createMemo as n, createSignal as r, createUniqueId as i, onCleanup as a } from "solid-js";
2
+ import { resolveColumnKeyAction as t, resolveNextOptionIndex as n, resolveNextUnit as r } from "./time-picker.column-utils.js";
3
+ import { createEffect as i, createMemo as a, createSignal as o, createUniqueId as s, onCleanup as c } from "solid-js";
3
4
  //#region src/components/time-picker/TimePickerColumn/useTimePickerColumn.ts
4
- function o(o) {
5
- let s = e("TimePickerColumn"), c = i(), [l, u] = r(), d = n(() => s.getOptions(o().unit)), f = n(() => s.getUnitValue(o().unit)), p = (e) => `${c}-${String(e)}`, m = n(() => {
6
- let e = f();
7
- if (e !== void 0) return d().some((t) => t.value === e) ? p(e) : void 0;
8
- }), h = (e, t) => {
9
- s.setUnitValue(o().unit, e, {
5
+ function l(l) {
6
+ let u = e("TimePickerColumn"), d = s(), [f, p] = o(), m = a(() => u.getOptions(l().unit)), h = a(() => u.getUnitValue(l().unit)), g = (e) => `${d}-${String(e)}`, _ = a(() => {
7
+ let e = h();
8
+ if (e !== void 0) return m().some((t) => t.value === e) ? g(e) : void 0;
9
+ }), v = (e, t) => {
10
+ u.setUnitValue(l().unit, e, {
10
11
  reason: "keyboard",
11
12
  event: t,
12
- trigger: l()
13
+ trigger: f()
13
14
  });
14
- }, g = (e, t) => {
15
- let n = d();
16
- if (n.length === 0) return;
17
- let r = n.findIndex((e) => e.value === f()), i = r === -1 ? e === 1 ? 0 : n.length - 1 : (r + e + n.length) % n.length;
18
- h(n[i].value, t);
19
- }, _ = (e) => {
20
- let t = s.units(), n = t.indexOf(o().unit);
21
- if (n === -1) return;
22
- let r = t[(n + (s.dir() === "rtl" ? -e : e) + t.length) % t.length];
23
- r && (s.setActiveUnit(r), s.getColumnElement(r)?.focus());
24
- }, v = (e) => {
25
- if (!(s.disabled() || s.readOnly())) switch (e.key) {
26
- case "ArrowDown":
27
- e.preventDefault(), g(1, e);
28
- break;
29
- case "ArrowUp":
30
- e.preventDefault(), g(-1, e);
31
- break;
32
- case "Home": {
33
- e.preventDefault();
34
- let t = d()[0];
35
- t && h(t.value, e);
36
- break;
37
- }
38
- case "End": {
39
- e.preventDefault();
40
- let t = d(), n = t[t.length - 1];
41
- n && h(n.value, e);
42
- break;
43
- }
44
- case "ArrowRight":
45
- e.preventDefault(), _(1);
46
- break;
47
- case "ArrowLeft":
48
- e.preventDefault(), _(-1);
49
- break;
50
- case "Enter":
51
- case " ": e.preventDefault();
52
- }
15
+ }, y = (e, t) => {
16
+ let n = m(), r = e === "first" ? n[0] : n[n.length - 1];
17
+ r && v(r.value, t);
18
+ }, b = (e, t) => {
19
+ let r = m(), i = r.findIndex((e) => e.value === h()), a = n(i, e, r.length);
20
+ a !== -1 && v(r[a].value, t);
21
+ }, x = (e) => {
22
+ let t = r(u.units(), l().unit, e, u.dir() === "rtl");
23
+ t && (u.setActiveUnit(t), u.getColumnElement(t)?.focus());
24
+ }, S = (e) => {
25
+ if (u.disabled() || u.readOnly()) return;
26
+ let n = t(e.key);
27
+ n && (e.preventDefault(), n.type === "move" ? b(n.direction, e) : n.type === "moveColumn" ? x(n.direction) : n.type === "commitBoundary" && y(n.boundary, e));
53
28
  };
54
- return t(() => {
55
- let e = f(), t = l();
29
+ return i(() => {
30
+ let e = h(), t = f();
56
31
  e !== void 0 && t && t.querySelector(`[data-value="${CSS.escape(String(e))}"]`)?.scrollIntoView({ block: "nearest" });
57
32
  }), {
58
- options: d,
59
- selected: f,
60
- activeOptionId: m,
61
- optionId: p,
62
- listElement: l,
33
+ options: m,
34
+ selected: h,
35
+ activeOptionId: _,
36
+ optionId: g,
37
+ listElement: f,
63
38
  attachList: (e) => {
64
- u(e);
65
- let t = s.registerColumn(o().unit, e), n = () => s.setActiveUnit(o().unit);
66
- e.addEventListener("keydown", v), e.addEventListener("focus", n), a(() => {
67
- e.removeEventListener("keydown", v), e.removeEventListener("focus", n), t();
39
+ p(e);
40
+ let t = u.registerColumn(l().unit, e), n = () => u.setActiveUnit(l().unit);
41
+ e.addEventListener("keydown", S), e.addEventListener("focus", n), c(() => {
42
+ e.removeEventListener("keydown", S), e.removeEventListener("focus", n), t();
68
43
  });
69
44
  }
70
45
  };
71
46
  }
72
47
  //#endregion
73
- export { o as useTimePickerColumn };
48
+ export { l as useTimePickerColumn };
74
49
 
75
50
  //# sourceMappingURL=useTimePickerColumn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTimePickerColumn.js","names":["useTimePickerColumn","ctx","useTimePickerContext","columnId","createUniqueId","listElement","setListElement","createSignal","options","createMemo","props","selected","optionId","value","activeOptionId","option","commit","move","list","index","nextIndex","direction","event","moveColumn","units","next","onKeyDown","first","last","createEffect","element","unregister","onFocus","onCleanup"],"sources":["../../../../src/components/time-picker/TimePickerColumn/useTimePickerColumn.ts"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n onCleanup,\n} from \"solid-js\";\nimport { useTimePickerContext } from \"../TimePicker/TimePicker.context\";\nimport type {\n TimePickerOptionMeta,\n TimePickerUnitValue,\n} from \"../TimePicker/TimePicker.types\";\nimport type { TimePickerColumnProps } from \"./TimePickerColumn.types\";\n\n/**\n * 单列 listbox 的交互算法:选项派生、选中值、跨列方向键、键盘提交、滚动入视。\n *\n * 焦点始终停留在列(listbox)自身,高亮/选中通过 `aria-activedescendant` 表达;\n * 由于选项与高亮合一(方向键移动即提交),selected 与 active 是同一个值。\n */\nexport function useTimePickerColumn(props: () => TimePickerColumnProps) {\n const ctx = useTimePickerContext(\"TimePickerColumn\");\n const columnId = createUniqueId();\n const [listElement, setListElement] = createSignal<HTMLElement>();\n\n const options = createMemo<TimePickerOptionMeta[]>(() =>\n ctx.getOptions(props().unit),\n );\n const selected = createMemo<TimePickerUnitValue | undefined>(() =>\n ctx.getUnitValue(props().unit),\n );\n\n const optionId = (value: TimePickerUnitValue) =>\n `${columnId}-${String(value)}`;\n\n // 当前值可能不在步长上(如 minuteStep=15 而值的分钟是 7),\n // 此时找不到对应选项,不做 dangling 的 aria-activedescendant。\n const activeOptionId = createMemo(() => {\n const value = selected();\n if (value === undefined) return undefined;\n return options().some((option) => option.value === value)\n ? optionId(value)\n : undefined;\n });\n\n const commit = (value: TimePickerUnitValue, event: Event): void => {\n ctx.setUnitValue(props().unit, value, {\n reason: \"keyboard\",\n event,\n trigger: listElement(),\n });\n };\n\n const move = (direction: 1 | -1, event: Event) => {\n const list = options();\n if (list.length === 0) return;\n const index = list.findIndex((option) => option.value === selected());\n const nextIndex =\n index === -1\n ? direction === 1\n ? 0\n : list.length - 1\n : (index + direction + list.length) % list.length;\n commit(list[nextIndex].value, event);\n };\n\n const moveColumn = (direction: 1 | -1) => {\n const units = ctx.units();\n const index = units.indexOf(props().unit);\n if (index === -1) return;\n const step = ctx.dir() === \"rtl\" ? -direction : direction;\n const next = units[(index + step + units.length) % units.length];\n if (!next) return;\n ctx.setActiveUnit(next);\n ctx.getColumnElement(next)?.focus();\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (ctx.disabled() || ctx.readOnly()) return;\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n move(1, event);\n break;\n case \"ArrowUp\":\n event.preventDefault();\n move(-1, event);\n break;\n case \"Home\": {\n event.preventDefault();\n const first = options()[0];\n if (first) commit(first.value, event);\n break;\n }\n case \"End\": {\n event.preventDefault();\n const list = options();\n const last = list[list.length - 1];\n if (last) commit(last.value, event);\n break;\n }\n case \"ArrowRight\":\n event.preventDefault();\n moveColumn(1);\n break;\n case \"ArrowLeft\":\n event.preventDefault();\n moveColumn(-1);\n break;\n case \"Enter\":\n case \" \":\n // 移动即提交,这里只需阻止空格滚动页面\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n const attachList = (element: HTMLElement) => {\n setListElement(element);\n const unregister = ctx.registerColumn(props().unit, element);\n const onFocus = () => ctx.setActiveUnit(props().unit);\n\n element.addEventListener(\"keydown\", onKeyDown);\n element.addEventListener(\"focus\", onFocus);\n onCleanup(() => {\n element.removeEventListener(\"keydown\", onKeyDown);\n element.removeEventListener(\"focus\", onFocus);\n unregister();\n });\n };\n\n // 选中值变化(含首次挂载)时把对应选项滚入视野\n createEffect(() => {\n const value = selected();\n const element = listElement();\n if (value === undefined || !element) return;\n element\n .querySelector<HTMLElement>(`[data-value=\"${CSS.escape(String(value))}\"]`)\n ?.scrollIntoView({ block: \"nearest\" });\n });\n\n return {\n options,\n selected,\n activeOptionId,\n optionId,\n listElement,\n attachList,\n };\n}\n"],"mappings":";;;AAoBA,SAAgBA,EAAoB,GAAoC;CACtE,IAAMC,IAAMC,EAAqB,kBAAkB,GAC7CC,IAAWC,EAAe,GAC1B,CAACC,GAAaC,KAAkBC,EAA0B,GAE1DC,IAAUC,QACdR,EAAI,WAAWS,EAAM,CAAC,CAAC,IAAI,CAC7B,GACMC,IAAWF,QACfR,EAAI,aAAaS,EAAM,CAAC,CAAC,IAAI,CAC/B,GAEME,KAAY,MAChB,GAAGT,EAAS,GAAG,OAAOU,CAAK,KAIvBC,IAAiBL,QAAiB;EACtC,IAAMI,IAAQF,EAAS;EACvB,IAAIE,MAAU,KAAA,GACd,OAAOL,EAAQ,CAAC,CAAC,MAAM,MAAWO,EAAO,UAAUF,CAAK,IACpDD,EAASC,CAAK,IACd,KAAA;CACN,CAAC,GAEKG,KAAU,GAA4B,MAAuB;EACjE,EAAI,aAAaN,EAAM,CAAC,CAAC,MAAMG,GAAO;GACpC,QAAQ;GACR;GACA,SAASR,EAAY;EACvB,CAAC;CACH,GAEMY,KAAQ,GAAmB,MAAiB;EAChD,IAAMC,IAAOV,EAAQ;EACrB,IAAIU,EAAK,WAAW,GAAG;EACvB,IAAMC,IAAQD,EAAK,WAAW,MAAWH,EAAO,UAAUJ,EAAS,CAAC,GAC9DS,IACJD,MAAU,KACNE,MAAc,IACZ,IACAH,EAAK,SAAS,KACfC,IAAQE,IAAYH,EAAK,UAAUA,EAAK;EAC/C,EAAOA,EAAKE,EAAU,CAAC,OAAOE,CAAK;CACrC,GAEMC,KAAc,MAAsB;EACxC,IAAMC,IAAQvB,EAAI,MAAM,GAClBkB,IAAQK,EAAM,QAAQd,EAAM,CAAC,CAAC,IAAI;EACxC,IAAIS,MAAU,IAAI;EAElB,IAAMM,IAAOD,GAAOL,KADPlB,EAAI,IAAI,MAAM,QAAQ,CAACoB,IAAYA,KACbG,EAAM,UAAUA,EAAM;EACzD,AAAKC,MACLxB,EAAI,cAAcwB,CAAI,GACtBxB,EAAI,iBAAiBwB,CAAI,CAAC,EAAE,MAAM;CACpC,GAEMC,KAAa,MAAyB;EAC1C,IAAI,IAAI,SAAS,KAAKzB,EAAI,SAAS,IACnC,QAAQqB,EAAM,KAAd;GACE,KAAK;IAEH,AADAA,EAAM,eAAe,GACrBL,EAAK,GAAGK,CAAK;IACb;GACF,KAAK;IAEH,AADAA,EAAM,eAAe,GACrBL,EAAK,IAAIK,CAAK;IACd;GACF,KAAK,QAAQ;IACX,EAAM,eAAe;IACrB,IAAMK,IAAQnB,EAAQ,CAAC,CAAC;IACxB,AAAImB,KAAOX,EAAOW,EAAM,OAAOL,CAAK;IACpC;GACF;GACA,KAAK,OAAO;IACV,EAAM,eAAe;IACrB,IAAMJ,IAAOV,EAAQ,GACfoB,IAAOV,EAAKA,EAAK,SAAS;IAChC,AAAIU,KAAMZ,EAAOY,EAAK,OAAON,CAAK;IAClC;GACF;GACA,KAAK;IAEH,AADAA,EAAM,eAAe,GACrBC,EAAW,CAAC;IACZ;GACF,KAAK;IAEH,AADAD,EAAM,eAAe,GACrBC,EAAW,EAAE;IACb;GACF,KAAK;GACL,KAAK,KAEH,EAAM,eAAe;EAIzB;CACF;CA0BA,OATAM,QAAmB;EACjB,IAAMhB,IAAQF,EAAS,GACjBmB,IAAUzB,EAAY;EAC5B,AAAIQ,MAAU,KAAA,KAAciB,KAC5BA,EACG,cAA2B,gBAAgB,IAAI,OAAO,OAAOjB,CAAK,CAAC,EAAE,GAAG,CAAC,EACxE,eAAe,EAAE,OAAO,UAAU,CAAC;CACzC,CAAC,GAEM;EACL;EACA;EACA;EACA;EACA;EACA,aA9BkB,MAAyB;GAC3C,EAAeiB,CAAO;GACtB,IAAMC,IAAa9B,EAAI,eAAeS,EAAM,CAAC,CAAC,MAAMoB,CAAO,GACrDE,UAAgB/B,EAAI,cAAcS,EAAM,CAAC,CAAC,IAAI;GAIpD,AAFAoB,EAAQ,iBAAiB,WAAWJ,CAAS,GAC7CI,EAAQ,iBAAiB,SAASE,CAAO,GACzCC,QAAgB;IAGd,AAFAH,EAAQ,oBAAoB,WAAWJ,CAAS,GAChDI,EAAQ,oBAAoB,SAASE,CAAO,GAC5CD,EAAW;GACb,CAAC;EACH;CAmBA;AACF"}
1
+ {"version":3,"file":"useTimePickerColumn.js","names":["useTimePickerColumn","ctx","useTimePickerContext","columnId","createUniqueId","listElement","setListElement","createSignal","options","createMemo","props","selected","optionId","value","activeOptionId","option","commit","commitBoundary","list","boundary","event","move","index","nextIndex","resolveNextOptionIndex","direction","moveColumn","next","resolveNextUnit","onKeyDown","action","resolveColumnKeyAction","createEffect","element","unregister","onFocus","onCleanup"],"sources":["../../../../src/components/time-picker/TimePickerColumn/useTimePickerColumn.ts"],"sourcesContent":["import {\n createEffect,\n createMemo,\n createSignal,\n createUniqueId,\n onCleanup,\n} from \"solid-js\";\nimport { useTimePickerContext } from \"../TimePicker/TimePicker.context\";\nimport type {\n TimePickerOptionMeta,\n TimePickerUnitValue,\n} from \"../TimePicker/TimePicker.types\";\nimport type { TimePickerColumnProps } from \"./TimePickerColumn.types\";\nimport {\n resolveColumnKeyAction,\n resolveNextOptionIndex,\n resolveNextUnit,\n} from \"./time-picker.column-utils\";\n\n/**\n * 单列 listbox 的交互算法:选项派生、选中值、跨列方向键、键盘提交、滚动入视。\n *\n * 焦点始终停留在列(listbox)自身,高亮/选中通过 `aria-activedescendant` 表达;\n * 由于选项与高亮合一(方向键移动即提交),selected 与 active 是同一个值。\n */\nexport function useTimePickerColumn(props: () => TimePickerColumnProps) {\n const ctx = useTimePickerContext(\"TimePickerColumn\");\n const columnId = createUniqueId();\n const [listElement, setListElement] = createSignal<HTMLElement>();\n\n const options = createMemo<TimePickerOptionMeta[]>(() =>\n ctx.getOptions(props().unit),\n );\n const selected = createMemo<TimePickerUnitValue | undefined>(() =>\n ctx.getUnitValue(props().unit),\n );\n\n const optionId = (value: TimePickerUnitValue) =>\n `${columnId}-${String(value)}`;\n\n // 当前值可能不在步长上(如 minuteStep=15 而值的分钟是 7),\n // 此时找不到对应选项,不做 dangling 的 aria-activedescendant。\n const activeOptionId = createMemo(() => {\n const value = selected();\n if (value === undefined) return undefined;\n return options().some((option) => option.value === value)\n ? optionId(value)\n : undefined;\n });\n\n const commit = (value: TimePickerUnitValue, event: Event): void => {\n ctx.setUnitValue(props().unit, value, {\n reason: \"keyboard\",\n event,\n trigger: listElement(),\n });\n };\n\n /** 提交列表两端的选项(Home / End) */\n const commitBoundary = (boundary: \"first\" | \"last\", event: Event) => {\n const list = options();\n const option = boundary === \"first\" ? list[0] : list[list.length - 1];\n if (option) commit(option.value, event);\n };\n\n const move = (direction: 1 | -1, event: Event) => {\n const list = options();\n const index = list.findIndex((option) => option.value === selected());\n const nextIndex = resolveNextOptionIndex(index, direction, list.length);\n if (nextIndex === -1) return;\n commit(list[nextIndex]!.value, event);\n };\n\n const moveColumn = (direction: 1 | -1) => {\n const next = resolveNextUnit(\n ctx.units(),\n props().unit,\n direction,\n ctx.dir() === \"rtl\",\n );\n if (!next) return;\n ctx.setActiveUnit(next);\n ctx.getColumnElement(next)?.focus();\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (ctx.disabled() || ctx.readOnly()) return;\n\n const action = resolveColumnKeyAction(event.key);\n if (!action) return;\n event.preventDefault();\n\n if (action.type === \"move\") move(action.direction, event);\n else if (action.type === \"moveColumn\") moveColumn(action.direction);\n else if (action.type === \"commitBoundary\") {\n commitBoundary(action.boundary, event);\n }\n };\n\n const attachList = (element: HTMLElement) => {\n setListElement(element);\n const unregister = ctx.registerColumn(props().unit, element);\n const onFocus = () => ctx.setActiveUnit(props().unit);\n\n element.addEventListener(\"keydown\", onKeyDown);\n element.addEventListener(\"focus\", onFocus);\n onCleanup(() => {\n element.removeEventListener(\"keydown\", onKeyDown);\n element.removeEventListener(\"focus\", onFocus);\n unregister();\n });\n };\n\n // 选中值变化(含首次挂载)时把对应选项滚入视野\n createEffect(() => {\n const value = selected();\n const element = listElement();\n if (value === undefined || !element) return;\n element\n .querySelector<HTMLElement>(`[data-value=\"${CSS.escape(String(value))}\"]`)\n ?.scrollIntoView({ block: \"nearest\" });\n });\n\n return {\n options,\n selected,\n activeOptionId,\n optionId,\n listElement,\n attachList,\n };\n}\n"],"mappings":";;;;AAyBA,SAAgBA,EAAoB,GAAoC;CACtE,IAAMC,IAAMC,EAAqB,kBAAkB,GAC7CC,IAAWC,EAAe,GAC1B,CAACC,GAAaC,KAAkBC,EAA0B,GAE1DC,IAAUC,QACdR,EAAI,WAAWS,EAAM,CAAC,CAAC,IAAI,CAC7B,GACMC,IAAWF,QACfR,EAAI,aAAaS,EAAM,CAAC,CAAC,IAAI,CAC/B,GAEME,KAAY,MAChB,GAAGT,EAAS,GAAG,OAAOU,CAAK,KAIvBC,IAAiBL,QAAiB;EACtC,IAAMI,IAAQF,EAAS;EACvB,IAAIE,MAAU,KAAA,GACd,OAAOL,EAAQ,CAAC,CAAC,MAAM,MAAWO,EAAO,UAAUF,CAAK,IACpDD,EAASC,CAAK,IACd,KAAA;CACN,CAAC,GAEKG,KAAU,GAA4B,MAAuB;EACjE,EAAI,aAAaN,EAAM,CAAC,CAAC,MAAMG,GAAO;GACpC,QAAQ;GACR;GACA,SAASR,EAAY;EACvB,CAAC;CACH,GAGMY,KAAkB,GAA4B,MAAiB;EACnE,IAAMC,IAAOV,EAAQ,GACfO,IAASI,MAAa,UAAUD,EAAK,KAAKA,EAAKA,EAAK,SAAS;EACnE,AAAIH,KAAQC,EAAOD,EAAO,OAAOK,CAAK;CACxC,GAEMC,KAAQ,GAAmB,MAAiB;EAChD,IAAMH,IAAOV,EAAQ,GACfc,IAAQJ,EAAK,WAAW,MAAWH,EAAO,UAAUJ,EAAS,CAAC,GAC9DY,IAAYC,EAAuBF,GAAOG,GAAWP,EAAK,MAAM;EACtE,AAAIK,MAAc,MAClBP,EAAOE,EAAKK,EAAU,CAAE,OAAOH,CAAK;CACtC,GAEMM,KAAc,MAAsB;EACxC,IAAMC,IAAOC,EACX3B,EAAI,MAAM,GACVS,EAAM,CAAC,CAAC,MACRe,GACAxB,EAAI,IAAI,MAAM,KAChB;EACA,AAAK0B,MACL1B,EAAI,cAAc0B,CAAI,GACtB1B,EAAI,iBAAiB0B,CAAI,CAAC,EAAE,MAAM;CACpC,GAEME,KAAa,MAAyB;EAC1C,IAAI5B,EAAI,SAAS,KAAKA,EAAI,SAAS,GAAG;EAEtC,IAAM6B,IAASC,EAAuBX,EAAM,GAAG;EAC/C,AAAKU,MACLV,EAAM,eAAe,GAEjBU,EAAO,SAAS,SAAQT,EAAKS,EAAO,WAAWV,CAAK,IAC/CU,EAAO,SAAS,eAAcJ,EAAWI,EAAO,SAAS,IACzDA,EAAO,SAAS,oBACvBb,EAAea,EAAO,UAAUV,CAAK;CAEzC;CA0BA,OATAY,QAAmB;EACjB,IAAMnB,IAAQF,EAAS,GACjBsB,IAAU5B,EAAY;EAC5B,AAAIQ,MAAU,KAAA,KAAcoB,KAC5BA,EACG,cAA2B,gBAAgB,IAAI,OAAO,OAAOpB,CAAK,CAAC,EAAE,GAAG,CAAC,EACxE,eAAe,EAAE,OAAO,UAAU,CAAC;CACzC,CAAC,GAEM;EACL;EACA;EACA;EACA;EACA;EACA,aA9BkB,MAAyB;GAC3C,EAAeoB,CAAO;GACtB,IAAMC,IAAajC,EAAI,eAAeS,EAAM,CAAC,CAAC,MAAMuB,CAAO,GACrDE,UAAgBlC,EAAI,cAAcS,EAAM,CAAC,CAAC,IAAI;GAIpD,AAFAuB,EAAQ,iBAAiB,WAAWJ,CAAS,GAC7CI,EAAQ,iBAAiB,SAASE,CAAO,GACzCC,QAAgB;IAGd,AAFAH,EAAQ,oBAAoB,WAAWJ,CAAS,GAChDI,EAAQ,oBAAoB,SAASE,CAAO,GAC5CD,EAAW;GACb,CAAC;EACH;CAmBA;AACF"}
@@ -1,3 +1,9 @@
1
- import { JSX } from 'solid-js';
2
1
  import { ToastProps } from './Toast.types';
3
- export declare function Toast(props: ToastProps): JSX.Element;
2
+ /**
3
+ * 单条 toast 的骨架:状态属性(data-*)+ 尺寸/层叠样式 + 四个插槽。
4
+ *
5
+ * 渲染层只做组合,具体内容分别由
6
+ * `ToastIcon` / `ToastContent` / `ToastActions` / `ToastCloseButton` 承担,
7
+ * 进出场与自动关闭由 `useToastLifecycle` 承担。
8
+ */
9
+ export declare function Toast(props: ToastProps): import('solid-js').JSX.Element;