@neut/ui 0.0.16 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion/Accordion/Accordion.js +3 -0
- package/dist/components/accordion/Accordion/Accordion.js.map +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.js +27 -21
- package/dist/components/accordion/AccordionContent/AccordionContent.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.js +3 -0
- package/dist/components/accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js +19 -18
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js.map +1 -1
- package/dist/components/alert/Alert/Alert.js +8 -3
- package/dist/components/alert/Alert/Alert.js.map +1 -1
- package/dist/components/alert/AlertAction/AlertAction.js +8 -3
- package/dist/components/alert/AlertAction/AlertAction.js.map +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.js +8 -3
- package/dist/components/alert/AlertDescription/AlertDescription.js.map +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.js +8 -3
- package/dist/components/alert/AlertTitle/AlertTitle.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.d.ts +3 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.js +6 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js +9 -7
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.types.d.ts +9 -3
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js +8 -3
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js +8 -3
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js +8 -3
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js +8 -3
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js +8 -3
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js.map +1 -1
- package/dist/components/aspect-ratio/AspectRatio.js +3 -0
- package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js +15 -7
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js.map +1 -1
- package/dist/components/avatar/Avatar/Avatar.context.d.ts +7 -0
- package/dist/components/avatar/Avatar/Avatar.context.js +1 -1
- package/dist/components/avatar/Avatar/Avatar.context.js.map +1 -1
- package/dist/components/avatar/Avatar/Avatar.js +7 -2
- package/dist/components/avatar/Avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/AvatarBadge/AvatarBadge.js +8 -3
- package/dist/components/avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/components/avatar/AvatarFallback/AvatarFallback.js +10 -5
- package/dist/components/avatar/AvatarFallback/AvatarFallback.js.map +1 -1
- package/dist/components/avatar/AvatarGroup/AvatarGroup.js +8 -3
- package/dist/components/avatar/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js +8 -3
- package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js.map +1 -1
- package/dist/components/avatar/AvatarImage/AvatarImage.js +19 -12
- package/dist/components/avatar/AvatarImage/AvatarImage.js.map +1 -1
- package/dist/components/badge/Badge.js +9 -4
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js +8 -3
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js +8 -3
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js +3 -0
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js +8 -3
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js +8 -3
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js +8 -3
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js.map +1 -1
- package/dist/components/bubble/Bubble/Bubble.d.ts +3 -0
- package/dist/components/bubble/Bubble/Bubble.js +39 -0
- package/dist/components/bubble/Bubble/Bubble.js.map +1 -0
- package/dist/components/bubble/Bubble/Bubble.styles.d.ts +7 -0
- package/dist/components/bubble/Bubble/Bubble.styles.js +18 -0
- package/dist/components/bubble/Bubble/Bubble.styles.js.map +1 -0
- package/dist/components/bubble/Bubble/Bubble.types.d.ts +8 -0
- package/dist/components/bubble/Bubble/index.d.ts +2 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.d.ts +7 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.js +28 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.js.map +1 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.styles.d.ts +1 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.styles.js +6 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.styles.js.map +1 -0
- package/dist/components/bubble/BubbleContent/BubbleContent.types.d.ts +3 -0
- package/dist/components/bubble/BubbleContent/index.d.ts +2 -0
- package/dist/components/bubble/BubbleGroup/BubbleGroup.d.ts +3 -0
- package/dist/components/bubble/BubbleGroup/BubbleGroup.js +24 -0
- package/dist/components/bubble/BubbleGroup/BubbleGroup.js.map +1 -0
- package/dist/components/bubble/BubbleGroup/BubbleGroup.types.d.ts +2 -0
- package/dist/components/bubble/BubbleGroup/index.d.ts +2 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.d.ts +6 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.js +42 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.js.map +1 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.d.ts +4 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js +22 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.styles.js.map +1 -0
- package/dist/components/bubble/BubbleReactions/BubbleReactions.types.d.ts +4 -0
- package/dist/components/bubble/BubbleReactions/index.d.ts +2 -0
- package/dist/components/bubble/index.d.ts +8 -0
- package/dist/components/bubble/index.js +5 -0
- package/dist/components/button/Button.js +3 -0
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button-group/ButtonGroup/ButtonGroup.js +3 -0
- package/dist/components/button-group/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js +16 -7
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js.map +1 -1
- package/dist/components/calendar/Calendar/Calendar.d.ts +2 -3
- package/dist/components/calendar/Calendar/Calendar.js +89 -264
- package/dist/components/calendar/Calendar/Calendar.js.map +1 -1
- package/dist/components/calendar/Calendar/Calendar.options.d.ts +43 -0
- package/dist/components/calendar/Calendar/Calendar.options.js +38 -0
- package/dist/components/calendar/Calendar/Calendar.options.js.map +1 -0
- package/dist/components/calendar/Calendar/Calendar.selection.d.ts +16 -0
- package/dist/components/calendar/Calendar/Calendar.selection.js +50 -0
- package/dist/components/calendar/Calendar/Calendar.selection.js.map +1 -0
- package/dist/components/calendar/Calendar/Calendar.styles.d.ts +8 -0
- package/dist/components/calendar/Calendar/Calendar.styles.js +32 -0
- package/dist/components/calendar/Calendar/Calendar.styles.js.map +1 -0
- package/dist/components/calendar/Calendar/Calendar.utils.d.ts +3 -1
- package/dist/components/calendar/Calendar/Calendar.utils.js +4 -1
- package/dist/components/calendar/Calendar/Calendar.utils.js.map +1 -1
- package/dist/components/calendar/Calendar/CalendarDay.d.ts +28 -0
- package/dist/components/calendar/Calendar/CalendarDay.js +41 -0
- package/dist/components/calendar/Calendar/CalendarDay.js.map +1 -0
- package/dist/components/calendar/Calendar/CalendarMonth.d.ts +35 -0
- package/dist/components/calendar/Calendar/CalendarMonth.js +127 -0
- package/dist/components/calendar/Calendar/CalendarMonth.js.map +1 -0
- package/dist/components/calendar/Calendar/CalendarMonthCaption.d.ts +22 -0
- package/dist/components/calendar/Calendar/CalendarMonthCaption.js +103 -0
- package/dist/components/calendar/Calendar/CalendarMonthCaption.js.map +1 -0
- package/dist/components/calendar/index.js +3 -2
- package/dist/components/card/Card/Card.js +3 -0
- package/dist/components/card/Card/Card.js.map +1 -1
- package/dist/components/card/CardAction/CardAction.js +8 -3
- package/dist/components/card/CardAction/CardAction.js.map +1 -1
- package/dist/components/card/CardContent/CardContent.js +8 -3
- package/dist/components/card/CardContent/CardContent.js.map +1 -1
- package/dist/components/card/CardDescription/CardDescription.js +8 -3
- package/dist/components/card/CardDescription/CardDescription.js.map +1 -1
- package/dist/components/card/CardFooter/CardFooter.js +8 -3
- package/dist/components/card/CardFooter/CardFooter.js.map +1 -1
- package/dist/components/card/CardHeader/CardHeader.js +8 -3
- package/dist/components/card/CardHeader/CardHeader.js.map +1 -1
- package/dist/components/card/CardTitle/CardTitle.js +8 -3
- package/dist/components/card/CardTitle/CardTitle.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.context.js +1 -1
- package/dist/components/carousel/Carousel/Carousel.context.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.js +19 -12
- package/dist/components/carousel/Carousel/Carousel.js.map +1 -1
- package/dist/components/carousel/Carousel/useKeyboardNavigation.d.ts +11 -1
- package/dist/components/carousel/Carousel/useKeyboardNavigation.js +5 -4
- package/dist/components/carousel/Carousel/useKeyboardNavigation.js.map +1 -1
- package/dist/components/carousel/CarouselContent/CarouselContent.js +8 -3
- package/dist/components/carousel/CarouselContent/CarouselContent.js.map +1 -1
- package/dist/components/carousel/CarouselNext/CarouselNext.js +29 -16
- package/dist/components/carousel/CarouselNext/CarouselNext.js.map +1 -1
- package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js +29 -16
- package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js.map +1 -1
- package/dist/components/checkbox/Checkbox/Checkbox.js +32 -25
- package/dist/components/checkbox/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.context.js +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.context.js.map +1 -1
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js +13 -12
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js.map +1 -1
- package/dist/components/combobox/Combobox/Combobox.js +52 -52
- package/dist/components/combobox/Combobox/Combobox.js.map +1 -1
- package/dist/components/combobox/Combobox/Combobox.types.d.ts +15 -6
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js +7 -3
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js.map +1 -1
- package/dist/components/combobox/ComboboxClear/ComboboxClear.js +1 -1
- package/dist/components/combobox/ComboboxClear/ComboboxClear.js.map +1 -1
- package/dist/components/combobox/ComboboxInput/ComboboxInput.js +26 -10
- package/dist/components/combobox/ComboboxInput/ComboboxInput.js.map +1 -1
- package/dist/components/combobox/ComboboxItem/ComboboxItem.js +6 -5
- package/dist/components/combobox/ComboboxItem/ComboboxItem.js.map +1 -1
- package/dist/components/combobox/ComboboxList/ComboboxList.js +17 -11
- package/dist/components/combobox/ComboboxList/ComboboxList.js.map +1 -1
- package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js +8 -1
- package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js.map +1 -1
- package/dist/components/context-menu/ContextMenu/ContextMenu.js +10 -8
- package/dist/components/context-menu/ContextMenu/ContextMenu.js.map +1 -1
- package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.d.ts +33 -0
- package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.js +41 -0
- package/dist/components/context-menu/ContextMenuContent/context-menu.highlight.js.map +1 -0
- package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.d.ts +25 -0
- package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.js +20 -0
- package/dist/components/context-menu/ContextMenuContent/context-menu.popup-items.js.map +1 -0
- package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.d.ts +31 -0
- package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.js +39 -0
- package/dist/components/context-menu/ContextMenuContent/context-menu.positioner.js.map +1 -0
- package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js +70 -136
- package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js.map +1 -1
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js +2 -1
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js.map +1 -1
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js +20 -10
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js.map +1 -1
- package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.d.ts +24 -0
- package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.js +26 -0
- package/dist/components/context-menu/ContextMenuTrigger/context-menu.long-press.js.map +1 -0
- package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.d.ts +35 -0
- package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.js +17 -0
- package/dist/components/context-menu/ContextMenuTrigger/context-menu.trigger.utils.js.map +1 -0
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.d.ts +9 -11
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js +36 -33
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js.map +1 -1
- package/dist/components/context-menu/context-menu.keyboard.d.ts +29 -0
- package/dist/components/context-menu/context-menu.keyboard.js +52 -0
- package/dist/components/context-menu/context-menu.keyboard.js.map +1 -0
- package/dist/components/context-menu/context-menu.typeahead.d.ts +27 -0
- package/dist/components/context-menu/context-menu.typeahead.js +19 -0
- package/dist/components/context-menu/context-menu.typeahead.js.map +1 -0
- package/dist/components/context-menu/context-menu.utils.d.ts +5 -2
- package/dist/components/context-menu/context-menu.utils.js +17 -39
- package/dist/components/context-menu/context-menu.utils.js.map +1 -1
- package/dist/components/date-picker/DatePicker/DatePicker.js +6 -0
- package/dist/components/date-picker/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.context.js +1 -1
- package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.js +24 -15
- package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.types.d.ts +5 -0
- package/dist/components/dialog/DialogClose/DialogClose.js +20 -19
- package/dist/components/dialog/DialogClose/DialogClose.js.map +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.context.js +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.context.js.map +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.js +8 -3
- package/dist/components/dialog/DialogDescription/DialogDescription.js.map +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.js +8 -3
- package/dist/components/dialog/DialogFooter/DialogFooter.js.map +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.js +8 -3
- package/dist/components/dialog/DialogHeader/DialogHeader.js.map +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.js +3 -0
- package/dist/components/dialog/DialogOverlay/DialogOverlay.js.map +1 -1
- package/dist/components/dialog/DialogSurface/DialogSurface.js +34 -26
- package/dist/components/dialog/DialogSurface/DialogSurface.js.map +1 -1
- package/dist/components/dialog/DialogTitle/DialogTitle.js +8 -3
- package/dist/components/dialog/DialogTitle/DialogTitle.js.map +1 -1
- package/dist/components/drawer/Drawer/Drawer.context.d.ts +3 -0
- package/dist/components/drawer/Drawer/Drawer.context.js +12 -0
- package/dist/components/drawer/Drawer/Drawer.context.js.map +1 -0
- package/dist/components/drawer/Drawer/Drawer.d.ts +7 -0
- package/dist/components/drawer/Drawer/Drawer.js +63 -0
- package/dist/components/drawer/Drawer/Drawer.js.map +1 -0
- package/dist/components/drawer/Drawer/Drawer.types.d.ts +50 -0
- package/dist/components/drawer/Drawer/create-change-event-details.d.ts +3 -0
- package/dist/components/drawer/Drawer/create-change-event-details.js +9 -0
- package/dist/components/drawer/Drawer/create-change-event-details.js.map +1 -0
- package/dist/components/drawer/Drawer/index.d.ts +3 -0
- package/dist/components/drawer/DrawerClose/DrawerClose.d.ts +5 -0
- package/dist/components/drawer/DrawerClose/DrawerClose.js +26 -0
- package/dist/components/drawer/DrawerClose/DrawerClose.js.map +1 -0
- package/dist/components/drawer/DrawerClose/index.d.ts +1 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.d.ts +6 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.js +103 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.js.map +1 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.styles.d.ts +10 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.styles.js +25 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.styles.js.map +1 -0
- package/dist/components/drawer/DrawerContent/DrawerContent.types.d.ts +2 -0
- package/dist/components/drawer/DrawerContent/drawer-swipe.utils.d.ts +32 -0
- package/dist/components/drawer/DrawerContent/drawer-swipe.utils.js +36 -0
- package/dist/components/drawer/DrawerContent/drawer-swipe.utils.js.map +1 -0
- package/dist/components/drawer/DrawerContent/index.d.ts +2 -0
- package/dist/components/drawer/DrawerContent/useDrawerSwipe.d.ts +14 -0
- package/dist/components/drawer/DrawerContent/useDrawerSwipe.js +36 -0
- package/dist/components/drawer/DrawerContent/useDrawerSwipe.js.map +1 -0
- package/dist/components/drawer/DrawerDescription/DrawerDescription.d.ts +2 -0
- package/dist/components/drawer/DrawerDescription/DrawerDescription.js +28 -0
- package/dist/components/drawer/DrawerDescription/DrawerDescription.js.map +1 -0
- package/dist/components/drawer/DrawerDescription/DrawerDescription.types.d.ts +2 -0
- package/dist/components/drawer/DrawerDescription/index.d.ts +2 -0
- package/dist/components/drawer/DrawerFooter/DrawerFooter.d.ts +2 -0
- package/dist/components/drawer/DrawerFooter/DrawerFooter.js +24 -0
- package/dist/components/drawer/DrawerFooter/DrawerFooter.js.map +1 -0
- package/dist/components/drawer/DrawerFooter/DrawerFooter.types.d.ts +2 -0
- package/dist/components/drawer/DrawerFooter/index.d.ts +2 -0
- package/dist/components/drawer/DrawerHeader/DrawerHeader.d.ts +2 -0
- package/dist/components/drawer/DrawerHeader/DrawerHeader.js +24 -0
- package/dist/components/drawer/DrawerHeader/DrawerHeader.js.map +1 -0
- package/dist/components/drawer/DrawerHeader/DrawerHeader.types.d.ts +2 -0
- package/dist/components/drawer/DrawerHeader/index.d.ts +2 -0
- package/dist/components/drawer/DrawerOverlay/DrawerOverlay.d.ts +3 -0
- package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js +43 -0
- package/dist/components/drawer/DrawerOverlay/DrawerOverlay.js.map +1 -0
- package/dist/components/drawer/DrawerOverlay/DrawerOverlay.types.d.ts +2 -0
- package/dist/components/drawer/DrawerOverlay/index.d.ts +2 -0
- package/dist/components/drawer/DrawerPortal/DrawerPortal.d.ts +2 -0
- package/dist/components/drawer/DrawerPortal/DrawerPortal.js +10 -0
- package/dist/components/drawer/DrawerPortal/DrawerPortal.js.map +1 -0
- package/dist/components/drawer/DrawerPortal/DrawerPortal.types.d.ts +2 -0
- package/dist/components/drawer/DrawerPortal/index.d.ts +2 -0
- package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.d.ts +6 -0
- package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js +27 -0
- package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.js.map +1 -0
- package/dist/components/drawer/DrawerSwipeHandle/DrawerSwipeHandle.types.d.ts +2 -0
- package/dist/components/drawer/DrawerSwipeHandle/index.d.ts +2 -0
- package/dist/components/drawer/DrawerTitle/DrawerTitle.d.ts +2 -0
- package/dist/components/drawer/DrawerTitle/DrawerTitle.js +28 -0
- package/dist/components/drawer/DrawerTitle/DrawerTitle.js.map +1 -0
- package/dist/components/drawer/DrawerTitle/DrawerTitle.types.d.ts +2 -0
- package/dist/components/drawer/DrawerTitle/index.d.ts +2 -0
- package/dist/components/drawer/DrawerTrigger/DrawerTrigger.d.ts +5 -0
- package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js +38 -0
- package/dist/components/drawer/DrawerTrigger/DrawerTrigger.js.map +1 -0
- package/dist/components/drawer/DrawerTrigger/index.d.ts +1 -0
- package/dist/components/drawer/index.d.ts +20 -0
- package/dist/components/drawer/index.js +13 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js +7 -7
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js.map +1 -1
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.d.ts +7 -1
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js +10 -10
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js.map +1 -1
- package/dist/components/field/Field/Field.js +3 -0
- package/dist/components/field/Field/Field.js.map +1 -1
- package/dist/components/field/FieldContent/FieldContent.js +8 -3
- package/dist/components/field/FieldContent/FieldContent.js.map +1 -1
- package/dist/components/field/FieldDescription/FieldDescription.js +8 -3
- package/dist/components/field/FieldDescription/FieldDescription.js.map +1 -1
- package/dist/components/field/FieldError/FieldError.js +8 -3
- package/dist/components/field/FieldError/FieldError.js.map +1 -1
- package/dist/components/field/FieldGroup/FieldGroup.js +8 -3
- package/dist/components/field/FieldGroup/FieldGroup.js.map +1 -1
- package/dist/components/field/FieldLabel/FieldLabel.js +3 -0
- package/dist/components/field/FieldLabel/FieldLabel.js.map +1 -1
- package/dist/components/field/FieldLegend/FieldLegend.js +3 -0
- package/dist/components/field/FieldLegend/FieldLegend.js.map +1 -1
- package/dist/components/field/FieldSeparator/FieldSeparator.js +3 -0
- package/dist/components/field/FieldSeparator/FieldSeparator.js.map +1 -1
- package/dist/components/field/FieldSet/FieldSet.js +8 -3
- package/dist/components/field/FieldSet/FieldSet.js.map +1 -1
- package/dist/components/field/FieldTitle/FieldTitle.js +8 -3
- package/dist/components/field/FieldTitle/FieldTitle.js.map +1 -1
- package/dist/components/hover-card/HoverCard/HoverCard.d.ts +7 -0
- package/dist/components/hover-card/HoverCard/HoverCard.js +47 -0
- package/dist/components/hover-card/HoverCard/HoverCard.js.map +1 -0
- package/dist/components/hover-card/HoverCard/index.d.ts +1 -0
- package/dist/components/hover-card/HoverCardContent/HoverCardContent.d.ts +6 -0
- package/dist/components/hover-card/HoverCardContent/HoverCardContent.js +74 -0
- package/dist/components/hover-card/HoverCardContent/HoverCardContent.js.map +1 -0
- package/dist/components/hover-card/HoverCardContent/index.d.ts +1 -0
- package/dist/components/hover-card/HoverCardContent/useHoverCardContent.d.ts +16 -0
- package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js +58 -0
- package/dist/components/hover-card/HoverCardContent/useHoverCardContent.js.map +1 -0
- package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.d.ts +4 -0
- package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js +40 -0
- package/dist/components/hover-card/HoverCardTrigger/HoverCardTrigger.js.map +1 -0
- package/dist/components/hover-card/HoverCardTrigger/index.d.ts +1 -0
- package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.d.ts +18 -0
- package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js +34 -0
- package/dist/components/hover-card/HoverCardTrigger/useHoverCardTrigger.js.map +1 -0
- package/dist/components/hover-card/hover-card.context.d.ts +3 -0
- package/dist/components/hover-card/hover-card.context.js +12 -0
- package/dist/components/hover-card/hover-card.context.js.map +1 -0
- package/dist/components/hover-card/hover-card.types.d.ts +50 -0
- package/dist/components/hover-card/index.d.ts +4 -0
- package/dist/components/hover-card/index.js +4 -0
- package/dist/components/image/Image.utils.d.ts +14 -16
- package/dist/components/image/Image.utils.js +146 -190
- package/dist/components/image/Image.utils.js.map +1 -1
- package/dist/components/image/ImageElement.js +31 -27
- package/dist/components/image/ImageElement.js.map +1 -1
- package/dist/components/image/lib/blur.d.ts +31 -0
- package/dist/components/image/lib/blur.js +24 -0
- package/dist/components/image/lib/blur.js.map +1 -0
- package/dist/components/image/lib/dev-checks.d.ts +52 -0
- package/dist/components/image/lib/handle-loading.d.ts +13 -0
- package/dist/components/image/lib/handle-loading.js +20 -0
- package/dist/components/image/lib/handle-loading.js.map +1 -0
- package/dist/components/image/lib/loader.d.ts +39 -0
- package/dist/components/image/lib/loader.js +57 -0
- package/dist/components/image/lib/loader.js.map +1 -0
- package/dist/components/image/lib/static-import.d.ts +14 -0
- package/dist/components/image/lib/static-import.js +17 -0
- package/dist/components/image/lib/static-import.js.map +1 -0
- package/dist/components/input-group/InputGroup/InputGroup.js +8 -3
- package/dist/components/input-group/InputGroup/InputGroup.js.map +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js +3 -0
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js.map +1 -1
- package/dist/components/input-group/InputGroupButton/InputGroupButton.js +3 -0
- package/dist/components/input-group/InputGroupButton/InputGroupButton.js.map +1 -1
- package/dist/components/input-group/InputGroupInput/InputGroupInput.js +3 -0
- package/dist/components/input-group/InputGroupInput/InputGroupInput.js.map +1 -1
- package/dist/components/input-group/InputGroupText/InputGroupText.js +8 -3
- package/dist/components/input-group/InputGroupText/InputGroupText.js.map +1 -1
- package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js +3 -0
- package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js.map +1 -1
- package/dist/components/item/Item/Item.js +9 -0
- package/dist/components/item/Item/Item.js.map +1 -1
- package/dist/components/item/ItemActions/ItemActions.js +8 -3
- package/dist/components/item/ItemActions/ItemActions.js.map +1 -1
- package/dist/components/item/ItemContent/ItemContent.js +8 -3
- package/dist/components/item/ItemContent/ItemContent.js.map +1 -1
- package/dist/components/item/ItemDescription/ItemDescription.js +8 -3
- package/dist/components/item/ItemDescription/ItemDescription.js.map +1 -1
- package/dist/components/item/ItemFooter/ItemFooter.js +8 -3
- package/dist/components/item/ItemFooter/ItemFooter.js.map +1 -1
- package/dist/components/item/ItemGroup/ItemGroup.js +8 -3
- package/dist/components/item/ItemGroup/ItemGroup.js.map +1 -1
- package/dist/components/item/ItemHeader/ItemHeader.js +8 -3
- package/dist/components/item/ItemHeader/ItemHeader.js.map +1 -1
- package/dist/components/item/ItemMedia/ItemMedia.js +3 -0
- package/dist/components/item/ItemMedia/ItemMedia.js.map +1 -1
- package/dist/components/item/ItemSeparator/ItemSeparator.js +3 -0
- package/dist/components/item/ItemSeparator/ItemSeparator.js.map +1 -1
- package/dist/components/item/ItemTitle/ItemTitle.js +8 -3
- package/dist/components/item/ItemTitle/ItemTitle.js.map +1 -1
- package/dist/components/kbd/Kbd.js +16 -6
- package/dist/components/kbd/Kbd.js.map +1 -1
- package/dist/components/label/Label.js +3 -0
- package/dist/components/label/Label.js.map +1 -1
- package/dist/components/marker/Marker/Marker.d.ts +7 -0
- package/dist/components/marker/Marker/Marker.js +35 -0
- package/dist/components/marker/Marker/Marker.js.map +1 -0
- package/dist/components/marker/Marker/Marker.styles.d.ts +3 -0
- package/dist/components/marker/Marker/Marker.styles.js +14 -0
- package/dist/components/marker/Marker/Marker.styles.js.map +1 -0
- package/dist/components/marker/Marker/Marker.types.d.ts +5 -0
- package/dist/components/marker/Marker/index.d.ts +3 -0
- package/dist/components/marker/MarkerContent/MarkerContent.d.ts +2 -0
- package/dist/components/marker/MarkerContent/MarkerContent.js +24 -0
- package/dist/components/marker/MarkerContent/MarkerContent.js.map +1 -0
- package/dist/components/marker/MarkerContent/MarkerContent.types.d.ts +2 -0
- package/dist/components/marker/MarkerContent/index.d.ts +2 -0
- package/dist/components/marker/MarkerIcon/MarkerIcon.d.ts +3 -0
- package/dist/components/marker/MarkerIcon/MarkerIcon.js +25 -0
- package/dist/components/marker/MarkerIcon/MarkerIcon.js.map +1 -0
- package/dist/components/marker/MarkerIcon/MarkerIcon.types.d.ts +2 -0
- package/dist/components/marker/MarkerIcon/index.d.ts +2 -0
- package/dist/components/marker/index.d.ts +6 -0
- package/dist/components/marker/index.js +5 -0
- package/dist/components/message/Message/Message.d.ts +3 -0
- package/dist/components/message/Message/Message.js +31 -0
- package/dist/components/message/Message/Message.js.map +1 -0
- package/dist/components/message/Message/Message.types.d.ts +5 -0
- package/dist/components/message/Message/index.d.ts +2 -0
- package/dist/components/message/MessageAvatar/MessageAvatar.d.ts +5 -0
- package/dist/components/message/MessageAvatar/MessageAvatar.js +24 -0
- package/dist/components/message/MessageAvatar/MessageAvatar.js.map +1 -0
- package/dist/components/message/MessageAvatar/MessageAvatar.types.d.ts +2 -0
- package/dist/components/message/MessageAvatar/index.d.ts +2 -0
- package/dist/components/message/MessageContent/MessageContent.d.ts +3 -0
- package/dist/components/message/MessageContent/MessageContent.js +24 -0
- package/dist/components/message/MessageContent/MessageContent.js.map +1 -0
- package/dist/components/message/MessageContent/MessageContent.types.d.ts +2 -0
- package/dist/components/message/MessageContent/index.d.ts +2 -0
- package/dist/components/message/MessageFooter/MessageFooter.d.ts +3 -0
- package/dist/components/message/MessageFooter/MessageFooter.js +24 -0
- package/dist/components/message/MessageFooter/MessageFooter.js.map +1 -0
- package/dist/components/message/MessageFooter/MessageFooter.types.d.ts +2 -0
- package/dist/components/message/MessageFooter/index.d.ts +2 -0
- package/dist/components/message/MessageGroup/MessageGroup.d.ts +3 -0
- package/dist/components/message/MessageGroup/MessageGroup.js +24 -0
- package/dist/components/message/MessageGroup/MessageGroup.js.map +1 -0
- package/dist/components/message/MessageGroup/MessageGroup.types.d.ts +2 -0
- package/dist/components/message/MessageGroup/index.d.ts +2 -0
- package/dist/components/message/MessageHeader/MessageHeader.d.ts +3 -0
- package/dist/components/message/MessageHeader/MessageHeader.js +24 -0
- package/dist/components/message/MessageHeader/MessageHeader.js.map +1 -0
- package/dist/components/message/MessageHeader/MessageHeader.types.d.ts +2 -0
- package/dist/components/message/MessageHeader/index.d.ts +2 -0
- package/dist/components/message/index.d.ts +12 -0
- package/dist/components/message/index.js +7 -0
- package/dist/components/message-scroller/MessageScroller/MessageScroller.d.ts +3 -0
- package/dist/components/message-scroller/MessageScroller/MessageScroller.js +35 -0
- package/dist/components/message-scroller/MessageScroller/MessageScroller.js.map +1 -0
- package/dist/components/message-scroller/MessageScroller/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.d.ts +6 -0
- package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js +90 -0
- package/dist/components/message-scroller/MessageScrollerButton/MessageScrollerButton.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerButton/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.d.ts +6 -0
- package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js +46 -0
- package/dist/components/message-scroller/MessageScrollerContent/MessageScrollerContent.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerContent/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.d.ts +6 -0
- package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js +42 -0
- package/dist/components/message-scroller/MessageScrollerItem/MessageScrollerItem.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerItem/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.d.ts +4 -0
- package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js +37 -0
- package/dist/components/message-scroller/MessageScrollerProvider/MessageScrollerProvider.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerProvider/index.d.ts +1 -0
- package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.d.ts +6 -0
- package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js +55 -0
- package/dist/components/message-scroller/MessageScrollerViewport/MessageScrollerViewport.js.map +1 -0
- package/dist/components/message-scroller/MessageScrollerViewport/index.d.ts +1 -0
- package/dist/components/message-scroller/index.d.ts +10 -0
- package/dist/components/message-scroller/index.js +10 -0
- package/dist/components/message-scroller/message-scroller.anchoring.d.ts +60 -0
- package/dist/components/message-scroller/message-scroller.anchoring.js +139 -0
- package/dist/components/message-scroller/message-scroller.anchoring.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.anchors.d.ts +12 -0
- package/dist/components/message-scroller/message-scroller.anchors.js +23 -0
- package/dist/components/message-scroller/message-scroller.anchors.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.commands.d.ts +43 -0
- package/dist/components/message-scroller/message-scroller.commands.js +51 -0
- package/dist/components/message-scroller/message-scroller.commands.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.context.d.ts +3 -0
- package/dist/components/message-scroller/message-scroller.context.js +12 -0
- package/dist/components/message-scroller/message-scroller.context.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.dom-measure.d.ts +29 -0
- package/dist/components/message-scroller/message-scroller.dom-measure.js +37 -0
- package/dist/components/message-scroller/message-scroller.dom-measure.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.measure.d.ts +27 -0
- package/dist/components/message-scroller/message-scroller.measure.js +21 -0
- package/dist/components/message-scroller/message-scroller.measure.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.scroll-state.d.ts +54 -0
- package/dist/components/message-scroller/message-scroller.scroll-state.js +74 -0
- package/dist/components/message-scroller/message-scroller.scroll-state.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.scroll-target.d.ts +27 -0
- package/dist/components/message-scroller/message-scroller.scroll-target.js +33 -0
- package/dist/components/message-scroller/message-scroller.scroll-target.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.types.d.ts +92 -0
- package/dist/components/message-scroller/message-scroller.utils.d.ts +14 -0
- package/dist/components/message-scroller/message-scroller.utils.js +10 -0
- package/dist/components/message-scroller/message-scroller.utils.js.map +1 -0
- package/dist/components/message-scroller/message-scroller.visibility.d.ts +43 -0
- package/dist/components/message-scroller/message-scroller.visibility.js +82 -0
- package/dist/components/message-scroller/message-scroller.visibility.js.map +1 -0
- package/dist/components/message-scroller/useMessageScroller.d.ts +6 -0
- package/dist/components/message-scroller/useMessageScroller.js +14 -0
- package/dist/components/message-scroller/useMessageScroller.js.map +1 -0
- package/dist/components/message-scroller/useMessageScrollerEngine.d.ts +15 -0
- package/dist/components/message-scroller/useMessageScrollerEngine.js +125 -0
- package/dist/components/message-scroller/useMessageScrollerEngine.js.map +1 -0
- package/dist/components/message-scroller/useMessageScrollerScrollable.d.ts +5 -0
- package/dist/components/message-scroller/useMessageScrollerScrollable.js +13 -0
- package/dist/components/message-scroller/useMessageScrollerScrollable.js.map +1 -0
- package/dist/components/message-scroller/useMessageScrollerVisibility.d.ts +7 -0
- package/dist/components/message-scroller/useMessageScrollerVisibility.js +17 -0
- package/dist/components/message-scroller/useMessageScrollerVisibility.js.map +1 -0
- package/dist/components/number-input/NumberInput/NumberInput.js +21 -19
- package/dist/components/number-input/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/number-input/NumberInput/NumberInput.utils.d.ts +6 -2
- package/dist/components/number-input/NumberInput/NumberInput.utils.js +1 -3
- package/dist/components/number-input/NumberInput/NumberInput.utils.js.map +1 -1
- package/dist/components/number-input/NumberInput/create-change-event-details.d.ts +1 -2
- package/dist/components/number-input/NumberInput/create-change-event-details.js +4 -20
- package/dist/components/number-input/NumberInput/create-change-event-details.js.map +1 -1
- package/dist/components/pagination/Pagination/Pagination.js +8 -3
- package/dist/components/pagination/Pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/PaginationContent/PaginationContent.js +8 -3
- package/dist/components/pagination/PaginationContent/PaginationContent.js.map +1 -1
- package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js +8 -3
- package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js.map +1 -1
- package/dist/components/pagination/PaginationLink/PaginationLink.js +3 -0
- package/dist/components/pagination/PaginationLink/PaginationLink.js.map +1 -1
- package/dist/components/pagination/PaginationNext/PaginationNext.js +3 -0
- package/dist/components/pagination/PaginationNext/PaginationNext.js.map +1 -1
- package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js +3 -0
- package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js.map +1 -1
- package/dist/components/popover/PopoverContent/PopoverContent.js +3 -0
- package/dist/components/popover/PopoverContent/PopoverContent.js.map +1 -1
- package/dist/components/popover/PopoverContent/PopoverContent.utils.d.ts +6 -13
- package/dist/components/popover/PopoverContent/PopoverContent.utils.js +7 -30
- package/dist/components/popover/PopoverContent/PopoverContent.utils.js.map +1 -1
- package/dist/components/progress/Progress/Progress.context.js +1 -1
- package/dist/components/progress/Progress/Progress.context.js.map +1 -1
- package/dist/components/progress/Progress/Progress.js +3 -0
- package/dist/components/progress/Progress/Progress.js.map +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.js +3 -0
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.js.map +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.js +8 -3
- package/dist/components/progress/ProgressLabel/ProgressLabel.js.map +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.js +3 -0
- package/dist/components/progress/ProgressTrack/ProgressTrack.js.map +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.js +8 -3
- package/dist/components/progress/ProgressValue/ProgressValue.js.map +1 -1
- package/dist/components/questionnaire/Questionnaire/Questionnaire.d.ts +3 -0
- package/dist/components/questionnaire/Questionnaire/Questionnaire.js +68 -0
- package/dist/components/questionnaire/Questionnaire/Questionnaire.js.map +1 -0
- package/dist/components/questionnaire/Questionnaire/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js +24 -0
- package/dist/components/questionnaire/QuestionnaireActions/QuestionnaireActions.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireActions/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js +99 -0
- package/dist/components/questionnaire/QuestionnaireChoice/QuestionnaireChoice.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireChoice/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.d.ts +48 -0
- package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.js +23 -0
- package/dist/components/questionnaire/QuestionnaireChoice/questionnaire-choice.utils.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.d.ts +38 -0
- package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js +80 -0
- package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js +28 -0
- package/dist/components/questionnaire/QuestionnaireChoices/QuestionnaireChoices.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireChoices/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.d.ts +4 -0
- package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js +30 -0
- package/dist/components/questionnaire/QuestionnaireDescription/QuestionnaireDescription.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireDescription/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.d.ts +4 -0
- package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js +43 -0
- package/dist/components/questionnaire/QuestionnaireError/QuestionnaireError.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireError/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js +78 -0
- package/dist/components/questionnaire/QuestionnaireInput/QuestionnaireInput.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireInput/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.d.ts +37 -0
- package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js +61 -0
- package/dist/components/questionnaire/QuestionnaireInput/useQuestionnaireInput.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.d.ts +3 -0
- package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js +88 -0
- package/dist/components/questionnaire/QuestionnaireItem/QuestionnaireItem.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireItem/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.d.ts +5 -0
- package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js +104 -0
- package/dist/components/questionnaire/QuestionnaireNavigation/QuestionnaireNavigation.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireNavigation/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.d.ts +4 -0
- package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js +62 -0
- package/dist/components/questionnaire/QuestionnaireProgress/QuestionnaireProgress.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireProgress/index.d.ts +1 -0
- package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.d.ts +4 -0
- package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js +27 -0
- package/dist/components/questionnaire/QuestionnaireTitle/QuestionnaireTitle.js.map +1 -0
- package/dist/components/questionnaire/QuestionnaireTitle/index.d.ts +1 -0
- package/dist/components/questionnaire/index.d.ts +12 -0
- package/dist/components/questionnaire/index.js +12 -0
- package/dist/components/questionnaire/questionnaire.answers.d.ts +42 -0
- package/dist/components/questionnaire/questionnaire.answers.js +62 -0
- package/dist/components/questionnaire/questionnaire.answers.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.aria.d.ts +34 -0
- package/dist/components/questionnaire/questionnaire.aria.js +28 -0
- package/dist/components/questionnaire/questionnaire.aria.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.context.d.ts +65 -0
- package/dist/components/questionnaire/questionnaire.context.js +18 -0
- package/dist/components/questionnaire/questionnaire.context.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.dom-watch.d.ts +9 -0
- package/dist/components/questionnaire/questionnaire.dom-watch.js +18 -0
- package/dist/components/questionnaire/questionnaire.dom-watch.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.focus.d.ts +26 -0
- package/dist/components/questionnaire/questionnaire.focus.js +19 -0
- package/dist/components/questionnaire/questionnaire.focus.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.item-view.d.ts +50 -0
- package/dist/components/questionnaire/questionnaire.item-view.js +36 -0
- package/dist/components/questionnaire/questionnaire.item-view.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.keys.d.ts +29 -0
- package/dist/components/questionnaire/questionnaire.keys.js +34 -0
- package/dist/components/questionnaire/questionnaire.keys.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.registry.d.ts +21 -0
- package/dist/components/questionnaire/questionnaire.registry.js +15 -0
- package/dist/components/questionnaire/questionnaire.registry.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.shortcuts.d.ts +24 -0
- package/dist/components/questionnaire/questionnaire.shortcuts.js +31 -0
- package/dist/components/questionnaire/questionnaire.shortcuts.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.types.d.ts +82 -0
- package/dist/components/questionnaire/questionnaire.utils.d.ts +40 -0
- package/dist/components/questionnaire/questionnaire.utils.js +41 -0
- package/dist/components/questionnaire/questionnaire.utils.js.map +1 -0
- package/dist/components/questionnaire/questionnaire.validation.d.ts +43 -0
- package/dist/components/questionnaire/questionnaire.validation.js +17 -0
- package/dist/components/questionnaire/questionnaire.validation.js.map +1 -0
- package/dist/components/questionnaire/useQuestionnaireItem.d.ts +32 -0
- package/dist/components/questionnaire/useQuestionnaireItem.js +103 -0
- package/dist/components/questionnaire/useQuestionnaireItem.js.map +1 -0
- package/dist/components/questionnaire/useQuestionnaireRoot.d.ts +30 -0
- package/dist/components/questionnaire/useQuestionnaireRoot.js +123 -0
- package/dist/components/questionnaire/useQuestionnaireRoot.js.map +1 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.js +3 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js +3 -0
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js.map +1 -1
- package/dist/components/resizable/ResizableHandle/ResizableHandle.d.ts +6 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.js +92 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.js.map +1 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.d.ts +3 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js +6 -0
- package/dist/components/resizable/ResizableHandle/ResizableHandle.styles.js.map +1 -0
- package/dist/components/resizable/ResizableHandle/index.d.ts +1 -0
- package/dist/components/resizable/ResizableHandle/resizable.handle-drag.d.ts +37 -0
- package/dist/components/resizable/ResizableHandle/resizable.handle-drag.js +37 -0
- package/dist/components/resizable/ResizableHandle/resizable.handle-drag.js.map +1 -0
- package/dist/components/resizable/ResizableHandle/resizable.handle-keys.d.ts +24 -0
- package/dist/components/resizable/ResizableHandle/resizable.handle-keys.js +36 -0
- package/dist/components/resizable/ResizableHandle/resizable.handle-keys.js.map +1 -0
- package/dist/components/resizable/ResizableHandle/useResizableHandle.d.ts +16 -0
- package/dist/components/resizable/ResizableHandle/useResizableHandle.js +39 -0
- package/dist/components/resizable/ResizableHandle/useResizableHandle.js.map +1 -0
- package/dist/components/resizable/ResizablePanel/ResizablePanel.d.ts +8 -0
- package/dist/components/resizable/ResizablePanel/ResizablePanel.js +64 -0
- package/dist/components/resizable/ResizablePanel/ResizablePanel.js.map +1 -0
- package/dist/components/resizable/ResizablePanel/index.d.ts +1 -0
- package/dist/components/resizable/ResizablePanel/useResizablePanel.d.ts +30 -0
- package/dist/components/resizable/ResizablePanel/useResizablePanel.js +37 -0
- package/dist/components/resizable/ResizablePanel/useResizablePanel.js.map +1 -0
- package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.d.ts +9 -0
- package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js +59 -0
- package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js.map +1 -0
- package/dist/components/resizable/ResizablePanelGroup/index.d.ts +1 -0
- package/dist/components/resizable/ResizablePanelGroup/useDragCursor.d.ts +11 -0
- package/dist/components/resizable/ResizablePanelGroup/useDragCursor.js +17 -0
- package/dist/components/resizable/ResizablePanelGroup/useDragCursor.js.map +1 -0
- package/dist/components/resizable/index.d.ts +4 -0
- package/dist/components/resizable/index.js +4 -0
- package/dist/components/resizable/resizable.collapse.d.ts +27 -0
- package/dist/components/resizable/resizable.collapse.js +24 -0
- package/dist/components/resizable/resizable.collapse.js.map +1 -0
- package/dist/components/resizable/resizable.commands.d.ts +32 -0
- package/dist/components/resizable/resizable.commands.js +40 -0
- package/dist/components/resizable/resizable.commands.js.map +1 -0
- package/dist/components/resizable/resizable.constraints.d.ts +23 -0
- package/dist/components/resizable/resizable.constraints.js +32 -0
- package/dist/components/resizable/resizable.constraints.js.map +1 -0
- package/dist/components/resizable/resizable.context.d.ts +38 -0
- package/dist/components/resizable/resizable.context.js +12 -0
- package/dist/components/resizable/resizable.context.js.map +1 -0
- package/dist/components/resizable/resizable.lifecycle.d.ts +35 -0
- package/dist/components/resizable/resizable.lifecycle.js +32 -0
- package/dist/components/resizable/resizable.lifecycle.js.map +1 -0
- package/dist/components/resizable/resizable.registry.d.ts +31 -0
- package/dist/components/resizable/resizable.registry.js +38 -0
- package/dist/components/resizable/resizable.registry.js.map +1 -0
- package/dist/components/resizable/resizable.reporting.d.ts +36 -0
- package/dist/components/resizable/resizable.reporting.js +33 -0
- package/dist/components/resizable/resizable.reporting.js.map +1 -0
- package/dist/components/resizable/resizable.resize.d.ts +47 -0
- package/dist/components/resizable/resizable.resize.js +28 -0
- package/dist/components/resizable/resizable.resize.js.map +1 -0
- package/dist/components/resizable/resizable.sizes.d.ts +31 -0
- package/dist/components/resizable/resizable.sizes.js +46 -0
- package/dist/components/resizable/resizable.sizes.js.map +1 -0
- package/dist/components/resizable/resizable.storage.d.ts +17 -0
- package/dist/components/resizable/resizable.storage.js +29 -0
- package/dist/components/resizable/resizable.storage.js.map +1 -0
- package/dist/components/resizable/resizable.types.d.ts +76 -0
- package/dist/components/resizable/resizable.utils.d.ts +23 -0
- package/dist/components/resizable/resizable.utils.js +51 -0
- package/dist/components/resizable/resizable.utils.js.map +1 -0
- package/dist/components/resizable/useResizablePanelGroup.d.ts +22 -0
- package/dist/components/resizable/useResizablePanelGroup.js +74 -0
- package/dist/components/resizable/useResizablePanelGroup.js.map +1 -0
- package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.d.ts +9 -0
- package/dist/components/scroll-area/ScrollArea/ScrollArea.js +28 -39
- package/dist/components/scroll-area/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js +3 -3
- package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.d.ts +22 -0
- package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.js +34 -0
- package/dist/components/scroll-area/ScrollArea/useScrollAreaMetrics.js.map +1 -0
- package/dist/components/scroll-area/ScrollBar/ScrollBar.d.ts +8 -0
- package/dist/components/scroll-area/ScrollBar/ScrollBar.js +38 -71
- package/dist/components/scroll-area/ScrollBar/ScrollBar.js.map +1 -1
- package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.d.ts +56 -0
- package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.js +61 -0
- package/dist/components/scroll-area/ScrollBar/ScrollBar.utils.js.map +1 -0
- package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.d.ts +25 -0
- package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.js +26 -0
- package/dist/components/scroll-area/ScrollBar/scroll-bar.thumb-drag.js.map +1 -0
- package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.d.ts +19 -0
- package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.js +37 -0
- package/dist/components/scroll-area/ScrollBar/useScrollBarInteraction.js.map +1 -0
- package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +5 -4
- package/dist/components/scroll-arrows/ScrollArrowButton.js +13 -34
- package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -1
- package/dist/components/scroll-arrows/ScrollArrows.d.ts +6 -2
- package/dist/components/scroll-arrows/ScrollArrows.js +16 -16
- package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -1
- package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +9 -2
- package/dist/components/scroll-arrows/useHoverScroll.d.ts +29 -0
- package/dist/components/scroll-arrows/useHoverScroll.js +39 -0
- package/dist/components/scroll-arrows/useHoverScroll.js.map +1 -0
- package/dist/components/select/SelectContent/useSelectContent.js +3 -3
- package/dist/components/select/SelectGroup/SelectGroup.d.ts +8 -2
- package/dist/components/select/SelectGroup/SelectGroup.js +20 -6
- package/dist/components/select/SelectGroup/SelectGroup.js.map +1 -1
- package/dist/components/select/SelectGroup/SelectGroup.types.d.ts +9 -0
- package/dist/components/select/SelectGroup/index.d.ts +1 -0
- package/dist/components/select/SelectTrigger/SelectTrigger.js.map +1 -1
- package/dist/components/select/SelectTrigger/useSelectTrigger.js +1 -1
- package/dist/components/select/SelectTrigger/useSelectTrigger.js.map +1 -1
- package/dist/components/separator/Separator.js +3 -0
- package/dist/components/separator/Separator.js.map +1 -1
- package/dist/components/sheet/Sheet/Sheet.d.ts +6 -0
- package/dist/components/sheet/Sheet/Sheet.js +10 -0
- package/dist/components/sheet/Sheet/Sheet.js.map +1 -0
- package/dist/components/sheet/Sheet/index.d.ts +1 -0
- package/dist/components/sheet/SheetClose/SheetClose.d.ts +6 -0
- package/dist/components/sheet/SheetClose/SheetClose.js +40 -0
- package/dist/components/sheet/SheetClose/SheetClose.js.map +1 -0
- package/dist/components/sheet/SheetClose/index.d.ts +1 -0
- package/dist/components/sheet/SheetContent/SheetContent.d.ts +6 -0
- package/dist/components/sheet/SheetContent/SheetContent.js +48 -0
- package/dist/components/sheet/SheetContent/SheetContent.js.map +1 -0
- package/dist/components/sheet/SheetContent/SheetContent.styles.d.ts +10 -0
- package/dist/components/sheet/SheetContent/SheetContent.styles.js +17 -0
- package/dist/components/sheet/SheetContent/SheetContent.styles.js.map +1 -0
- package/dist/components/sheet/SheetContent/index.d.ts +1 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.d.ts +2 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.js +25 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.js.map +1 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.styles.d.ts +1 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.styles.js +6 -0
- package/dist/components/sheet/SheetDescription/SheetDescription.styles.js.map +1 -0
- package/dist/components/sheet/SheetDescription/index.d.ts +1 -0
- package/dist/components/sheet/SheetFooter/SheetFooter.d.ts +2 -0
- package/dist/components/sheet/SheetFooter/SheetFooter.js +24 -0
- package/dist/components/sheet/SheetFooter/SheetFooter.js.map +1 -0
- package/dist/components/sheet/SheetFooter/index.d.ts +1 -0
- package/dist/components/sheet/SheetHeader/SheetHeader.d.ts +2 -0
- package/dist/components/sheet/SheetHeader/SheetHeader.js +24 -0
- package/dist/components/sheet/SheetHeader/SheetHeader.js.map +1 -0
- package/dist/components/sheet/SheetHeader/index.d.ts +1 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.d.ts +3 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.js +25 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.js.map +1 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.styles.d.ts +1 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.styles.js +6 -0
- package/dist/components/sheet/SheetTitle/SheetTitle.styles.js.map +1 -0
- package/dist/components/sheet/SheetTitle/index.d.ts +1 -0
- package/dist/components/sheet/SheetTrigger/SheetTrigger.d.ts +8 -0
- package/dist/components/sheet/SheetTrigger/SheetTrigger.js +32 -0
- package/dist/components/sheet/SheetTrigger/SheetTrigger.js.map +1 -0
- package/dist/components/sheet/SheetTrigger/index.d.ts +1 -0
- package/dist/components/sheet/index.d.ts +9 -0
- package/dist/components/sheet/index.js +9 -0
- package/dist/components/sheet/sheet.types.d.ts +19 -0
- package/dist/components/sidebar/Sidebar/Sidebar.js +14 -6
- package/dist/components/sidebar/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/sidebar/SidebarContent/SidebarContent.js +8 -3
- package/dist/components/sidebar/SidebarContent/SidebarContent.js.map +1 -1
- package/dist/components/sidebar/SidebarFooter/SidebarFooter.js +8 -3
- package/dist/components/sidebar/SidebarFooter/SidebarFooter.js.map +1 -1
- package/dist/components/sidebar/SidebarGroup/SidebarGroup.js +8 -3
- package/dist/components/sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js +3 -0
- package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js +8 -3
- package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js +3 -0
- package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js.map +1 -1
- package/dist/components/sidebar/SidebarHeader/SidebarHeader.js +8 -3
- package/dist/components/sidebar/SidebarHeader/SidebarHeader.js.map +1 -1
- package/dist/components/sidebar/SidebarInput/SidebarInput.js +3 -0
- package/dist/components/sidebar/SidebarInput/SidebarInput.js.map +1 -1
- package/dist/components/sidebar/SidebarInset/SidebarInset.js +8 -3
- package/dist/components/sidebar/SidebarInset/SidebarInset.js.map +1 -1
- package/dist/components/sidebar/SidebarMenu/SidebarMenu.js +8 -3
- package/dist/components/sidebar/SidebarMenu/SidebarMenu.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js +8 -3
- package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js +6 -0
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js +8 -3
- package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js +8 -3
- package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js +8 -3
- package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js +3 -0
- package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js +8 -3
- package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.js +30 -27
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/useIsMobile.d.ts +10 -0
- package/dist/components/sidebar/SidebarProvider/useIsMobile.js +14 -0
- package/dist/components/sidebar/SidebarProvider/useIsMobile.js.map +1 -0
- package/dist/components/sidebar/SidebarRail/SidebarRail.js +8 -3
- package/dist/components/sidebar/SidebarRail/SidebarRail.js.map +1 -1
- package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js +3 -0
- package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js.map +1 -1
- package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js +3 -0
- package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js.map +1 -1
- package/dist/components/skeleton/Skeleton.js +8 -3
- package/dist/components/skeleton/Skeleton.js.map +1 -1
- package/dist/components/slider/Slider/Slider.context.js +1 -1
- package/dist/components/slider/Slider/Slider.context.js.map +1 -1
- package/dist/components/slider/Slider/Slider.js +3 -0
- package/dist/components/slider/Slider/Slider.js.map +1 -1
- package/dist/components/slider/SliderControl/SliderControl.js +4 -1
- package/dist/components/slider/SliderControl/SliderControl.js.map +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.js +3 -0
- package/dist/components/slider/SliderIndicator/SliderIndicator.js.map +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.js +18 -3
- package/dist/components/slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/components/slider/SliderThumb/useSliderThumb.d.ts +1 -0
- package/dist/components/slider/SliderThumb/useSliderThumb.js +3 -2
- package/dist/components/slider/SliderThumb/useSliderThumb.js.map +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.js +3 -0
- package/dist/components/slider/SliderTrack/SliderTrack.js.map +1 -1
- package/dist/components/spinner/Spinner.js +3 -0
- package/dist/components/spinner/Spinner.js.map +1 -1
- package/dist/components/switch/Switch.js +7 -0
- package/dist/components/switch/Switch.js.map +1 -1
- package/dist/components/tabs/Tabs/Tabs.context.js +1 -1
- package/dist/components/tabs/Tabs/Tabs.context.js.map +1 -1
- package/dist/components/tabs/Tabs/useTabsKeyboard.d.ts +7 -11
- package/dist/components/tabs/Tabs/useTabsKeyboard.js +8 -42
- package/dist/components/tabs/Tabs/useTabsKeyboard.js.map +1 -1
- package/dist/components/tabs/TabsList/TabsList.context.js +1 -1
- package/dist/components/tabs/TabsList/TabsList.context.js.map +1 -1
- package/dist/components/tabs/TabsList/TabsList.js +10 -10
- package/dist/components/tabs/TabsList/TabsList.js.map +1 -1
- package/dist/components/tabs/TabsTrigger/TabsTrigger.js +8 -8
- package/dist/components/tabs/TabsTrigger/TabsTrigger.js.map +1 -1
- package/dist/components/textarea/Textarea.js +8 -3
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/time-picker/TimePicker/create-change-event-details.d.ts +1 -2
- package/dist/components/time-picker/TimePicker/create-change-event-details.js +4 -20
- package/dist/components/time-picker/TimePicker/create-change-event-details.js.map +1 -1
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js +1 -3
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js.map +1 -1
- package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.d.ts +34 -0
- package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.js +43 -0
- package/dist/components/time-picker/TimePickerColumn/time-picker.column-utils.js.map +1 -0
- package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js +34 -59
- package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js.map +1 -1
- package/dist/components/toast/Toast/Toast.d.ts +8 -2
- package/dist/components/toast/Toast/Toast.js +92 -146
- package/dist/components/toast/Toast/Toast.js.map +1 -1
- package/dist/components/toast/Toast/Toast.types.d.ts +1 -1
- package/dist/components/toast/Toast/Toast.types.js.map +1 -1
- package/dist/components/toast/Toast/Toast.utils.d.ts +47 -0
- package/dist/components/toast/Toast/Toast.utils.js +47 -0
- package/dist/components/toast/Toast/Toast.utils.js.map +1 -0
- package/dist/components/toast/Toast/ToastActionButton.d.ts +16 -0
- package/dist/components/toast/Toast/ToastActionButton.js +27 -0
- package/dist/components/toast/Toast/ToastActionButton.js.map +1 -0
- package/dist/components/toast/Toast/ToastActions.d.ts +12 -0
- package/dist/components/toast/Toast/ToastActions.js +65 -0
- package/dist/components/toast/Toast/ToastActions.js.map +1 -0
- package/dist/components/toast/Toast/ToastCloseButton.d.ts +12 -0
- package/dist/components/toast/Toast/ToastCloseButton.js +26 -0
- package/dist/components/toast/Toast/ToastCloseButton.js.map +1 -0
- package/dist/components/toast/Toast/ToastContent.d.ts +8 -0
- package/dist/components/toast/Toast/ToastContent.js +30 -0
- package/dist/components/toast/Toast/ToastContent.js.map +1 -0
- package/dist/components/toast/Toast/ToastIcon.d.ts +14 -0
- package/dist/components/toast/Toast/ToastIcon.js +36 -0
- package/dist/components/toast/Toast/ToastIcon.js.map +1 -0
- package/dist/components/toast/Toast/useToastLifecycle.d.ts +29 -0
- package/dist/components/toast/Toast/useToastLifecycle.js +30 -0
- package/dist/components/toast/Toast/useToastLifecycle.js.map +1 -0
- package/dist/components/toast/Toaster/ToastViewport.d.ts +33 -0
- package/dist/components/toast/Toaster/ToastViewport.js +73 -0
- package/dist/components/toast/Toaster/ToastViewport.js.map +1 -0
- package/dist/components/toast/Toaster/Toaster.d.ts +4 -0
- package/dist/components/toast/Toaster/Toaster.js +64 -82
- package/dist/components/toast/Toaster/Toaster.js.map +1 -1
- package/dist/components/toast/Toaster/Toaster.utils.d.ts +15 -0
- package/dist/components/toast/Toaster/Toaster.utils.js +4 -1
- package/dist/components/toast/Toaster/Toaster.utils.js.map +1 -1
- package/dist/components/toast/Toaster/useToaster.d.ts +28 -0
- package/dist/components/toast/Toaster/useToaster.js +26 -0
- package/dist/components/toast/Toaster/useToaster.js.map +1 -0
- package/dist/components/toast/index.js +4 -3
- package/dist/components/toast/state/promise-toast.d.ts +17 -0
- package/dist/components/toast/state/promise-toast.js +33 -0
- package/dist/components/toast/state/promise-toast.js.map +1 -0
- package/dist/components/toast/state/store.d.ts +21 -0
- package/dist/components/toast/state/store.js +45 -0
- package/dist/components/toast/state/store.js.map +1 -0
- package/dist/components/toast/state/toast.d.ts +9 -10
- package/dist/components/toast/state/toast.js +30 -89
- package/dist/components/toast/state/toast.js.map +1 -1
- package/dist/components/toggle/Toggle/Toggle.js +2 -1
- package/dist/components/toggle/Toggle/Toggle.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js +1 -1
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/create-change-event-details.d.ts +6 -2
- package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js +4 -20
- package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.d.ts +7 -10
- package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js +10 -40
- package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js +5 -5
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.js +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +5 -49
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +10 -39
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/usePresence.d.ts +27 -0
- package/dist/components/tooltip/TooltipContent/usePresence.js +24 -0
- package/dist/components/tooltip/TooltipContent/usePresence.js.map +1 -0
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js +27 -39
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
- package/dist/hooks/useFontLoader.js +1 -1
- package/dist/hooks/useFontLoader.js.map +1 -1
- package/dist/hooks/useScrollEdges.d.ts +3 -0
- package/dist/hooks/useScrollEdges.js +18 -16
- package/dist/hooks/useScrollEdges.js.map +1 -1
- package/dist/hooks/useScrollLock.js +13 -16
- package/dist/hooks/useScrollLock.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.js +328 -260
- package/dist/lib/positioner/index.d.ts +2 -0
- package/dist/lib/positioner/utils/dom.d.ts +8 -0
- package/dist/lib/positioner/utils/dom.js +1 -1
- package/dist/lib/positioner/utils/dom.js.map +1 -1
- package/dist/lib/positioner/utils/floating.d.ts +25 -0
- package/dist/lib/positioner/utils/floating.js +42 -0
- package/dist/lib/positioner/utils/floating.js.map +1 -0
- package/dist/types/props.types.d.ts +1 -1
- package/dist/ui.css +1 -1
- package/dist/utils/call-event-handler.d.ts +16 -0
- package/dist/utils/call-event-handler.js +15 -0
- package/dist/utils/call-event-handler.js.map +1 -0
- package/dist/utils/clsx.d.ts +1 -1
- package/dist/utils/clsx.js +2 -7
- package/dist/utils/create-change-event-details.d.ts +25 -0
- package/dist/utils/create-change-event-details.js +25 -0
- package/dist/utils/create-change-event-details.js.map +1 -0
- package/dist/utils/get-style.d.ts +7 -9
- package/dist/utils/get-style.js +16 -0
- package/dist/utils/get-style.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.js +7 -1
- package/dist/utils/number.d.ts +7 -0
- package/dist/utils/number.js +8 -0
- package/dist/utils/number.js.map +1 -0
- package/dist/utils/roving-navigation.d.ts +64 -0
- package/dist/utils/roving-navigation.js +66 -0
- package/dist/utils/roving-navigation.js.map +1 -0
- package/dist/utils/string.d.ts +17 -0
- package/dist/utils/string.js +11 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +18 -7
- package/dist/components/carousel/Carousel/Carousel.utils.d.ts +0 -0
- package/dist/components/field/FieldError/useFieldError.d.ts +0 -0
- package/dist/components/tabs/Tabs/call-event-handler.d.ts +0 -5
- package/dist/components/tabs/Tabs/call-event-handler.js +0 -9
- package/dist/components/tabs/Tabs/call-event-handler.js.map +0 -1
- package/dist/components/toggle-group/call-event-handler.d.ts +0 -5
- package/dist/components/toggle-group/call-event-handler.js +0 -9
- package/dist/components/toggle-group/call-event-handler.js.map +0 -1
- package/dist/utils/clsx.js.map +0 -1
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
import { QuestionnaireItemDefinition, QuestionnaireItemStatus, QuestionnaireRootState, QuestionnaireShortcutMode } from './questionnaire.types';
|
|
3
|
+
export interface QuestionnaireAnswerEntry {
|
|
4
|
+
id: string;
|
|
5
|
+
element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
6
|
+
type: "choice" | "input";
|
|
7
|
+
value?: string;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
ownDisabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface QuestionnaireItemHandle {
|
|
12
|
+
name: string;
|
|
13
|
+
element: HTMLElement;
|
|
14
|
+
disabled: Accessor<boolean>;
|
|
15
|
+
required: Accessor<boolean>;
|
|
16
|
+
status: Accessor<QuestionnaireItemStatus>;
|
|
17
|
+
validate: () => boolean;
|
|
18
|
+
focus: () => void;
|
|
19
|
+
focusInvalid: () => void;
|
|
20
|
+
skip: () => void;
|
|
21
|
+
reset: () => void;
|
|
22
|
+
getAnswerByElement: (element: Element) => QuestionnaireAnswerEntry | null;
|
|
23
|
+
getAnswerByShortcut: (shortcut: string) => QuestionnaireAnswerEntry | null;
|
|
24
|
+
moveAnswerFocus: (target: Element, direction: "next" | "previous") => boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface QuestionnaireRootContextValue {
|
|
27
|
+
state: Accessor<QuestionnaireRootState>;
|
|
28
|
+
activeItemName: Accessor<string | null>;
|
|
29
|
+
activeItemRequired: Accessor<boolean | null>;
|
|
30
|
+
activeItemStatus: Accessor<QuestionnaireItemStatus | null>;
|
|
31
|
+
shortcuts: Accessor<QuestionnaireShortcutMode | null>;
|
|
32
|
+
nativeValidation: Accessor<boolean>;
|
|
33
|
+
itemDefinitions: Accessor<Map<string, QuestionnaireItemDefinition> | null>;
|
|
34
|
+
registerItem: (item: QuestionnaireItemHandle) => () => void;
|
|
35
|
+
goNext: () => void;
|
|
36
|
+
goPrevious: () => void;
|
|
37
|
+
skipCurrent: () => void;
|
|
38
|
+
requestSubmit: () => void;
|
|
39
|
+
}
|
|
40
|
+
export interface QuestionnaireItemContextValue {
|
|
41
|
+
name: string;
|
|
42
|
+
active: Accessor<boolean>;
|
|
43
|
+
disabled: Accessor<boolean>;
|
|
44
|
+
invalid: Accessor<boolean>;
|
|
45
|
+
multiple: Accessor<boolean>;
|
|
46
|
+
required: Accessor<boolean>;
|
|
47
|
+
status: Accessor<QuestionnaireItemStatus>;
|
|
48
|
+
hasInputAnswer: Accessor<boolean>;
|
|
49
|
+
selectedAnswerIds: Accessor<string[]>;
|
|
50
|
+
resetVersion: Accessor<number>;
|
|
51
|
+
shortcutByAnswerId: Accessor<Map<string, string>>;
|
|
52
|
+
shortcutByChoiceValue: Accessor<Map<string, string> | null>;
|
|
53
|
+
shortcuts: Accessor<QuestionnaireShortcutMode | null>;
|
|
54
|
+
registerAnswerControl: (entry: QuestionnaireAnswerEntry) => () => void;
|
|
55
|
+
registerAnswerSelection: (id: string, initialSelected: boolean) => () => void;
|
|
56
|
+
registerDescription: (id: string) => () => void;
|
|
57
|
+
registerError: (id: string) => () => void;
|
|
58
|
+
setAnswerDefault: (id: string, selected: boolean) => void;
|
|
59
|
+
setAnswerSelectionFromInteraction: (id: string, selected: boolean) => void;
|
|
60
|
+
syncControlledAnswerSelection: (id: string, selected: boolean) => void;
|
|
61
|
+
}
|
|
62
|
+
export declare const QuestionnaireRootContext: import('solid-js').Context<QuestionnaireRootContextValue | undefined>;
|
|
63
|
+
export declare function useQuestionnaireRootContext(component: string): QuestionnaireRootContextValue;
|
|
64
|
+
export declare const QuestionnaireItemContext: import('solid-js').Context<QuestionnaireItemContextValue | undefined>;
|
|
65
|
+
export declare function useQuestionnaireItemContext(component: string): QuestionnaireItemContextValue;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createContext as e, useContext as t } from "solid-js";
|
|
2
|
+
//#region src/components/questionnaire/questionnaire.context.ts
|
|
3
|
+
var n = e();
|
|
4
|
+
function r(e) {
|
|
5
|
+
let r = t(n);
|
|
6
|
+
if (!r) throw Error(`<${e}> 必须渲染在 <Questionnaire> 内部`);
|
|
7
|
+
return r;
|
|
8
|
+
}
|
|
9
|
+
var i = e();
|
|
10
|
+
function a(e) {
|
|
11
|
+
let n = t(i);
|
|
12
|
+
if (!n) throw Error(`<${e}> 必须渲染在 <QuestionnaireItem> 内部`);
|
|
13
|
+
return n;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { i as QuestionnaireItemContext, n as QuestionnaireRootContext, a as useQuestionnaireItemContext, r as useQuestionnaireRootContext };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=questionnaire.context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire.context.js","names":["QuestionnaireRootContext","createContext","useQuestionnaireRootContext","ctx","useContext","component","QuestionnaireItemContext","useQuestionnaireItemContext"],"sources":["../../../src/components/questionnaire/questionnaire.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type {\n QuestionnaireItemDefinition,\n QuestionnaireItemStatus,\n QuestionnaireRootState,\n QuestionnaireShortcutMode,\n} from \"./questionnaire.types\";\n\nexport interface QuestionnaireAnswerEntry {\n id: string;\n element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;\n type: \"choice\" | \"input\";\n value?: string;\n disabled: boolean;\n ownDisabled?: boolean;\n}\n\nexport interface QuestionnaireItemHandle {\n name: string;\n element: HTMLElement;\n disabled: Accessor<boolean>;\n required: Accessor<boolean>;\n status: Accessor<QuestionnaireItemStatus>;\n validate: () => boolean;\n focus: () => void;\n focusInvalid: () => void;\n skip: () => void;\n reset: () => void;\n getAnswerByElement: (element: Element) => QuestionnaireAnswerEntry | null;\n getAnswerByShortcut: (shortcut: string) => QuestionnaireAnswerEntry | null;\n moveAnswerFocus: (target: Element, direction: \"next\" | \"previous\") => boolean;\n}\n\nexport interface QuestionnaireRootContextValue {\n state: Accessor<QuestionnaireRootState>;\n activeItemName: Accessor<string | null>;\n activeItemRequired: Accessor<boolean | null>;\n activeItemStatus: Accessor<QuestionnaireItemStatus | null>;\n shortcuts: Accessor<QuestionnaireShortcutMode | null>;\n nativeValidation: Accessor<boolean>;\n itemDefinitions: Accessor<Map<string, QuestionnaireItemDefinition> | null>;\n registerItem: (item: QuestionnaireItemHandle) => () => void;\n goNext: () => void;\n goPrevious: () => void;\n skipCurrent: () => void;\n requestSubmit: () => void;\n}\n\nexport interface QuestionnaireItemContextValue {\n name: string;\n active: Accessor<boolean>;\n disabled: Accessor<boolean>;\n invalid: Accessor<boolean>;\n multiple: Accessor<boolean>;\n required: Accessor<boolean>;\n status: Accessor<QuestionnaireItemStatus>;\n hasInputAnswer: Accessor<boolean>;\n selectedAnswerIds: Accessor<string[]>;\n resetVersion: Accessor<number>;\n shortcutByAnswerId: Accessor<Map<string, string>>;\n shortcutByChoiceValue: Accessor<Map<string, string> | null>;\n shortcuts: Accessor<QuestionnaireShortcutMode | null>;\n registerAnswerControl: (entry: QuestionnaireAnswerEntry) => () => void;\n registerAnswerSelection: (id: string, initialSelected: boolean) => () => void;\n registerDescription: (id: string) => () => void;\n registerError: (id: string) => () => void;\n setAnswerDefault: (id: string, selected: boolean) => void;\n setAnswerSelectionFromInteraction: (id: string, selected: boolean) => void;\n syncControlledAnswerSelection: (id: string, selected: boolean) => void;\n}\n\nexport const QuestionnaireRootContext =\n createContext<QuestionnaireRootContextValue>();\n\nexport function useQuestionnaireRootContext(\n component: string,\n): QuestionnaireRootContextValue {\n const ctx = useContext(QuestionnaireRootContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <Questionnaire> 内部`);\n }\n return ctx;\n}\n\nexport const QuestionnaireItemContext =\n createContext<QuestionnaireItemContextValue>();\n\nexport function useQuestionnaireItemContext(\n component: string,\n): QuestionnaireItemContextValue {\n const ctx = useContext(QuestionnaireItemContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <QuestionnaireItem> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAuEA,IAAaA,IACXC,EAA6C;AAE/C,SAAgBC,EACd,GAC+B;CAC/B,IAAMC,IAAMC,EAAWJ,CAAwB;CAC/C,IAAI,CAACG,GACH,MAAU,MAAM,IAAIE,EAAU,2BAA2B;CAE3D,OAAOF;AACT;AAEA,IAAaG,IACXL,EAA6C;AAE/C,SAAgBM,EACd,GAC+B;CAC/B,IAAMJ,IAAMC,EAAWE,CAAwB;CAC/C,IAAI,CAACH,GACH,MAAU,MAAM,IAAIE,EAAU,+BAA+B;CAE/D,OAAOF;AACT"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
/**
|
|
3
|
+
* 监视表单子树里的 DOM 增删,返回一个"每次变化都会自增"的版本号。
|
|
4
|
+
*
|
|
5
|
+
* 单一职责:把结构变化变成一条可被 memo 依赖的响应式边——注册表本身是普通数组,
|
|
6
|
+
* 子节点被移动位置时注册顺序不变,只有 DOM 顺序变了,排序 memo 需要这条边才会重算。
|
|
7
|
+
* 环境不支持 `MutationObserver`(SSR)时不做任何事,版本号恒为 0。
|
|
8
|
+
*/
|
|
9
|
+
export declare function createDomVersionWatcher(root: Accessor<Element | undefined>): Accessor<number>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createEffect as e, createSignal as t, onCleanup as n } from "solid-js";
|
|
2
|
+
//#region src/components/questionnaire/questionnaire.dom-watch.ts
|
|
3
|
+
function r(r) {
|
|
4
|
+
let [i, a] = t(0);
|
|
5
|
+
return e(() => {
|
|
6
|
+
let e = r();
|
|
7
|
+
if (!e || typeof MutationObserver > "u") return;
|
|
8
|
+
let t = new MutationObserver(() => a((e) => e + 1));
|
|
9
|
+
t.observe(e, {
|
|
10
|
+
childList: !0,
|
|
11
|
+
subtree: !0
|
|
12
|
+
}), a((e) => e + 1), n(() => t.disconnect());
|
|
13
|
+
}), i;
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { r as createDomVersionWatcher };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=questionnaire.dom-watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire.dom-watch.js","names":["createDomVersionWatcher","version","setVersion","createSignal","createEffect","element","root","observer","v","onCleanup"],"sources":["../../../src/components/questionnaire/questionnaire.dom-watch.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup, type Accessor } from \"solid-js\";\n\n/**\n * 监视表单子树里的 DOM 增删,返回一个\"每次变化都会自增\"的版本号。\n *\n * 单一职责:把结构变化变成一条可被 memo 依赖的响应式边——注册表本身是普通数组,\n * 子节点被移动位置时注册顺序不变,只有 DOM 顺序变了,排序 memo 需要这条边才会重算。\n * 环境不支持 `MutationObserver`(SSR)时不做任何事,版本号恒为 0。\n */\nexport function createDomVersionWatcher(\n root: Accessor<Element | undefined>,\n): Accessor<number> {\n const [version, setVersion] = createSignal(0);\n\n createEffect(() => {\n const element = root();\n if (!element || typeof MutationObserver === \"undefined\") return;\n\n const observer = new MutationObserver(() => setVersion((v) => v + 1));\n observer.observe(element, { childList: true, subtree: true });\n // 初始挂载不会产生 MutationObserver 能观察到的 childList 变更,但题目的\n // ref 是在\"插入文档之前\"执行的:这里再自增一次版本号,让排序 memo 在\n // 节点真正连上文档之后重算一次(否则顺序会停在\"按注册顺序\"的初值上)。\n setVersion((v) => v + 1);\n onCleanup(() => observer.disconnect());\n });\n\n return version;\n}\n"],"mappings":";;AASA,SAAgBA,EACd,GACkB;CAClB,IAAM,CAACC,GAASC,KAAcC,EAAa,CAAC;CAe5C,OAbAC,QAAmB;EACjB,IAAMC,IAAUC,EAAK;EACrB,IAAI,CAACD,KAAW,OAAO,mBAAqB,KAAa;EAEzD,IAAME,IAAW,IAAI,uBAAuBL,GAAY,MAAMM,IAAI,CAAC,CAAC;EAMpE,AALAD,EAAS,QAAQF,GAAS;GAAE,WAAW;GAAM,SAAS;EAAK,CAAC,GAI5DH,GAAY,MAAMM,IAAI,CAAC,GACvBC,QAAgBF,EAAS,WAAW,CAAC;CACvC,CAAC,GAEMN;AACT"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { QuestionnaireAnswerEntry } from './questionnaire.context';
|
|
2
|
+
/**
|
|
3
|
+
* 题目内的焦点移动。
|
|
4
|
+
*
|
|
5
|
+
* 单一职责:给定题目作用域、当前焦点元素与已注册答案,决定"下一个该聚焦谁",
|
|
6
|
+
* 并处理随之而来的原生 radio 点击。不持有状态、不读信号,因此可以用真实 DOM
|
|
7
|
+
* 直接驱动每一个分支(无可用目标、目标不在列表内、循环回自身等)。
|
|
8
|
+
*/
|
|
9
|
+
/** 把焦点放到题目内最合适的元素:优先"已有值"的具名输入,其次任意可编辑控件,最后退到作用域本身 */
|
|
10
|
+
export declare function focusItem(scope: HTMLElement | undefined): void;
|
|
11
|
+
export interface MoveAnswerFocusOptions {
|
|
12
|
+
/** 题目作用域(fieldset) */
|
|
13
|
+
scope: HTMLElement | undefined;
|
|
14
|
+
/** 当前焦点所在元素 */
|
|
15
|
+
target: Element;
|
|
16
|
+
direction: "next" | "previous";
|
|
17
|
+
answers: readonly QuestionnaireAnswerEntry[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 在可聚焦答案之间移动焦点:
|
|
21
|
+
* - 跳过禁用与已卸载的答案;
|
|
22
|
+
* - 当前目标是输入类控件时,跳过其它输入类控件(避免在文本框之间乱跳);
|
|
23
|
+
* - 目标不在列表里但就是作用域本身时,从列表首/尾开始;否则不动;
|
|
24
|
+
* - 环形移动;落到原生 radio 上时顺带点击它(radio 的箭头语义)。
|
|
25
|
+
*/
|
|
26
|
+
export declare function moveAnswerFocus(options: MoveAnswerFocusOptions): boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { isAnswerDisabled as e, isNativeRadio as t, isTypingElement as n } from "./questionnaire.utils.js";
|
|
2
|
+
//#region src/components/questionnaire/questionnaire.focus.ts
|
|
3
|
+
function r(e) {
|
|
4
|
+
if (!e) return;
|
|
5
|
+
let t = e.querySelector("input[data-filled][name]:not(:disabled)"), n = e.querySelector("input:not([type=hidden]):not(:disabled), textarea:not(:disabled)");
|
|
6
|
+
(t ?? n ?? e).focus();
|
|
7
|
+
}
|
|
8
|
+
function i(r) {
|
|
9
|
+
let { scope: i, target: a, direction: o, answers: s } = r, c = s.filter((t) => !e(t) && t.element.isConnected && !(n(a) && t.type === "input"));
|
|
10
|
+
if (!c.length) return !1;
|
|
11
|
+
let l = c.findIndex((e) => e.element === a);
|
|
12
|
+
if (l < 0 && a !== i) return !1;
|
|
13
|
+
let u = c[l < 0 ? o === "next" ? 0 : c.length - 1 : (l + (o === "next" ? 1 : -1) + c.length) % c.length];
|
|
14
|
+
return !u || u.element === a ? !1 : (u.element.focus(), u.type === "choice" && t(u.element) && u.element.click(), !0);
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { r as focusItem, i as moveAnswerFocus };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=questionnaire.focus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire.focus.js","names":["focusItem","scope","filled","anyInput","moveAnswerFocus","options","focusable","answers","isAnswerDisabled","entry","isTypingElement","target","position","next","direction","isNativeRadio"],"sources":["../../../src/components/questionnaire/questionnaire.focus.ts"],"sourcesContent":["import type { QuestionnaireAnswerEntry } from \"./questionnaire.context\";\nimport {\n isAnswerDisabled,\n isNativeRadio,\n isTypingElement,\n} from \"./questionnaire.utils\";\n\n/**\n * 题目内的焦点移动。\n *\n * 单一职责:给定题目作用域、当前焦点元素与已注册答案,决定\"下一个该聚焦谁\",\n * 并处理随之而来的原生 radio 点击。不持有状态、不读信号,因此可以用真实 DOM\n * 直接驱动每一个分支(无可用目标、目标不在列表内、循环回自身等)。\n */\n\n/** 把焦点放到题目内最合适的元素:优先\"已有值\"的具名输入,其次任意可编辑控件,最后退到作用域本身 */\nexport function focusItem(scope: HTMLElement | undefined): void {\n if (!scope) return;\n const filled = scope.querySelector<HTMLElement>(\n \"input[data-filled][name]:not(:disabled)\",\n );\n const anyInput = scope.querySelector<HTMLElement>(\n \"input:not([type=hidden]):not(:disabled), textarea:not(:disabled)\",\n );\n (filled ?? anyInput ?? scope).focus();\n}\n\nexport interface MoveAnswerFocusOptions {\n /** 题目作用域(fieldset) */\n scope: HTMLElement | undefined;\n /** 当前焦点所在元素 */\n target: Element;\n direction: \"next\" | \"previous\";\n answers: readonly QuestionnaireAnswerEntry[];\n}\n\n/**\n * 在可聚焦答案之间移动焦点:\n * - 跳过禁用与已卸载的答案;\n * - 当前目标是输入类控件时,跳过其它输入类控件(避免在文本框之间乱跳);\n * - 目标不在列表里但就是作用域本身时,从列表首/尾开始;否则不动;\n * - 环形移动;落到原生 radio 上时顺带点击它(radio 的箭头语义)。\n */\nexport function moveAnswerFocus(options: MoveAnswerFocusOptions): boolean {\n const { scope, target, direction, answers } = options;\n\n const focusable = answers.filter(\n (entry) =>\n !isAnswerDisabled(entry) &&\n entry.element.isConnected &&\n !(isTypingElement(target) && entry.type === \"input\"),\n );\n if (!focusable.length) return false;\n\n const position = focusable.findIndex((entry) => entry.element === target);\n if (position < 0 && target !== scope) return false;\n\n const nextIndex =\n position < 0\n ? direction === \"next\"\n ? 0\n : focusable.length - 1\n : (position + (direction === \"next\" ? 1 : -1) + focusable.length) %\n focusable.length;\n\n const next = focusable[nextIndex];\n if (!next || next.element === target) return false;\n\n next.element.focus();\n if (next.type === \"choice\" && isNativeRadio(next.element)) {\n (next.element as HTMLInputElement).click();\n }\n return true;\n}\n"],"mappings":";;AAgBA,SAAgBA,EAAU,GAAsC;CAC9D,IAAI,CAACC,GAAO;CACZ,IAAMC,IAASD,EAAM,cACnB,yCACF,GACME,IAAWF,EAAM,cACrB,kEACF;CACA,CAACC,KAAUC,KAAYF,EAAA,CAAO,MAAM;AACtC;AAkBA,SAAgBG,EAAgB,GAA0C;CACxE,IAAM,EAAE,UAAO,WAAQ,cAAW,eAAYC,GAExCC,IAAYC,EAAQ,QACvB,MACC,CAACC,EAAiBC,CAAK,KACvBA,EAAM,QAAQ,eACd,EAAEC,EAAgBC,CAAM,KAAKF,EAAM,SAAS,QAChD;CACA,IAAI,CAACH,EAAU,QAAQ,OAAO;CAE9B,IAAMM,IAAWN,EAAU,WAAW,MAAUG,EAAM,YAAYE,CAAM;CACxE,IAAIC,IAAW,KAAKD,MAAWV,GAAO,OAAO;CAU7C,IAAMY,IAAOP,EAPXM,IAAW,IACPE,MAAc,SACZ,IACAR,EAAU,SAAS,KACpBM,KAAYE,MAAc,SAAS,IAAI,MAAMR,EAAU,UACxDA,EAAU;CAShB,OANI,CAACO,KAAQA,EAAK,YAAYF,IAAe,MAE7CE,EAAK,QAAQ,MAAM,GACfA,EAAK,SAAS,YAAYE,EAAcF,EAAK,OAAO,KACtDA,EAAM,QAA6B,MAAM,GAEpC;AACT"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
import { QuestionnaireItemHandle } from './questionnaire.context';
|
|
3
|
+
import { QuestionnaireItemDefinition } from './questionnaire.types';
|
|
4
|
+
export interface ItemViewOptions {
|
|
5
|
+
/** 已注册的题目句柄(注册顺序) */
|
|
6
|
+
registered: Accessor<QuestionnaireItemHandle[]>;
|
|
7
|
+
/** DOM 结构版本号:子节点换位后据此重排 */
|
|
8
|
+
domVersion: Accessor<number>;
|
|
9
|
+
/** 受控的激活项名字(undefined 表示非受控) */
|
|
10
|
+
controlledItem: Accessor<string | undefined>;
|
|
11
|
+
/** 非受控模式下内部记录的激活项名字 */
|
|
12
|
+
internalName: Accessor<string | null>;
|
|
13
|
+
/** 声明式题目定义(用于快捷键与校验元数据) */
|
|
14
|
+
definitions: Accessor<readonly QuestionnaireItemDefinition[] | undefined>;
|
|
15
|
+
}
|
|
16
|
+
export interface ItemView {
|
|
17
|
+
/** 按 DOM 顺序排列的全部题目 */
|
|
18
|
+
ordered: Accessor<QuestionnaireItemHandle[]>;
|
|
19
|
+
/** 可参与导航的题目(排除 disabled) */
|
|
20
|
+
enabled: Accessor<QuestionnaireItemHandle[]>;
|
|
21
|
+
/** 当前激活题目的名字 */
|
|
22
|
+
activeName: Accessor<string | null>;
|
|
23
|
+
/** 当前激活题目(不在可用列表时为 null) */
|
|
24
|
+
activeItem: Accessor<QuestionnaireItemHandle | null>;
|
|
25
|
+
/** 可用题目数、激活项下标(-1 表示不在列表里) */
|
|
26
|
+
total: Accessor<number>;
|
|
27
|
+
index: Accessor<number>;
|
|
28
|
+
/** 面向用户的进度:从 1 开始,没有激活项时为 0 */
|
|
29
|
+
current: Accessor<number>;
|
|
30
|
+
first: Accessor<boolean>;
|
|
31
|
+
last: Accessor<boolean>;
|
|
32
|
+
/** 题目定义按名字建索引;未提供定义时为 null */
|
|
33
|
+
itemDefinitions: Accessor<Map<string, QuestionnaireItemDefinition> | null>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 题目视图:把"注册表 + DOM 版本 + 当前项"推导成导航需要的派生状态。
|
|
37
|
+
*
|
|
38
|
+
* 单一职责:只做派生计算(排序、过滤、定位、进度、定义索引),
|
|
39
|
+
* 不改变任何状态——所以它可以在不触发导航的前提下被单独断言。
|
|
40
|
+
*/
|
|
41
|
+
export declare function createItemView(options: ItemViewOptions): ItemView;
|
|
42
|
+
/**
|
|
43
|
+
* 该激活哪个题目:优先受控值与 `defaultItem`,两者都不在可用列表里时退到第一个。
|
|
44
|
+
* 纯函数——列表与候选值都由调用方给出。
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveActiveName(options: {
|
|
47
|
+
enabled: readonly QuestionnaireItemHandle[];
|
|
48
|
+
controlledItem: string | undefined;
|
|
49
|
+
defaultItem: string | undefined;
|
|
50
|
+
}): string | null;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { compareDocumentOrder as e } from "./questionnaire.utils.js";
|
|
2
|
+
import { createMemo as t } from "solid-js";
|
|
3
|
+
//#region src/components/questionnaire/questionnaire.item-view.ts
|
|
4
|
+
function n(n) {
|
|
5
|
+
let r = t(() => {
|
|
6
|
+
n.domVersion();
|
|
7
|
+
let t = n.registered();
|
|
8
|
+
return [...t].sort((n, r) => {
|
|
9
|
+
let i = e(n.element, r.element);
|
|
10
|
+
return i === 0 ? t.indexOf(n) - t.indexOf(r) : i;
|
|
11
|
+
});
|
|
12
|
+
}), i = t(() => r().filter((e) => !e.disabled())), a = t(() => n.controlledItem() ?? n.internalName()), o = t(() => i().find((e) => e.name === a()) ?? null), s = t(() => i().length), c = t(() => i().findIndex((e) => e.name === a())), l = t(() => c() < 0 ? 0 : c() + 1), u = t(() => {
|
|
13
|
+
let e = n.definitions();
|
|
14
|
+
return e ? new Map(e.map((e) => [e.name, e])) : null;
|
|
15
|
+
});
|
|
16
|
+
return {
|
|
17
|
+
ordered: r,
|
|
18
|
+
enabled: i,
|
|
19
|
+
activeName: a,
|
|
20
|
+
activeItem: o,
|
|
21
|
+
total: s,
|
|
22
|
+
index: c,
|
|
23
|
+
current: l,
|
|
24
|
+
first: t(() => s() > 0 && c() === 0),
|
|
25
|
+
last: t(() => s() > 0 && c() === s() - 1),
|
|
26
|
+
itemDefinitions: u
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function r(e) {
|
|
30
|
+
let { enabled: t, controlledItem: n, defaultItem: r } = e, i = n ?? r;
|
|
31
|
+
return i && t.some((e) => e.name === i) ? i : t[0]?.name ?? null;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { n as createItemView, r as resolveActiveName };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=questionnaire.item-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire.item-view.js","names":["createItemView","ordered","createMemo","registered","options","byDom","compareDocumentOrder","a","b","enabled","item","activeName","activeItem","total","index","current","itemDefinitions","list","definition","resolveActiveName","candidate","controlledItem","defaultItem","entry"],"sources":["../../../src/components/questionnaire/questionnaire.item-view.ts"],"sourcesContent":["import { createMemo, type Accessor } from \"solid-js\";\nimport type { QuestionnaireItemHandle } from \"./questionnaire.context\";\nimport type { QuestionnaireItemDefinition } from \"./questionnaire.types\";\nimport { compareDocumentOrder } from \"./questionnaire.utils\";\n\nexport interface ItemViewOptions {\n /** 已注册的题目句柄(注册顺序) */\n registered: Accessor<QuestionnaireItemHandle[]>;\n /** DOM 结构版本号:子节点换位后据此重排 */\n domVersion: Accessor<number>;\n /** 受控的激活项名字(undefined 表示非受控) */\n controlledItem: Accessor<string | undefined>;\n /** 非受控模式下内部记录的激活项名字 */\n internalName: Accessor<string | null>;\n /** 声明式题目定义(用于快捷键与校验元数据) */\n definitions: Accessor<readonly QuestionnaireItemDefinition[] | undefined>;\n}\n\nexport interface ItemView {\n /** 按 DOM 顺序排列的全部题目 */\n ordered: Accessor<QuestionnaireItemHandle[]>;\n /** 可参与导航的题目(排除 disabled) */\n enabled: Accessor<QuestionnaireItemHandle[]>;\n /** 当前激活题目的名字 */\n activeName: Accessor<string | null>;\n /** 当前激活题目(不在可用列表时为 null) */\n activeItem: Accessor<QuestionnaireItemHandle | null>;\n /** 可用题目数、激活项下标(-1 表示不在列表里) */\n total: Accessor<number>;\n index: Accessor<number>;\n /** 面向用户的进度:从 1 开始,没有激活项时为 0 */\n current: Accessor<number>;\n first: Accessor<boolean>;\n last: Accessor<boolean>;\n /** 题目定义按名字建索引;未提供定义时为 null */\n itemDefinitions: Accessor<Map<string, QuestionnaireItemDefinition> | null>;\n}\n\n/**\n * 题目视图:把\"注册表 + DOM 版本 + 当前项\"推导成导航需要的派生状态。\n *\n * 单一职责:只做派生计算(排序、过滤、定位、进度、定义索引),\n * 不改变任何状态——所以它可以在不触发导航的前提下被单独断言。\n */\nexport function createItemView(options: ItemViewOptions): ItemView {\n /**\n * 排序键:DOM 顺序优先;两者都还没连进文档(注册早于插入)时返回 0,\n * 由 sort 的稳定性保持注册顺序——注册顺序就是渲染顺序,因此初始挂载也是对的。\n * 节点连上文档后 domVersion 会变化,这里再按真实 DOM 顺序收敛。\n */\n const ordered = createMemo(() => {\n options.domVersion();\n const registered = options.registered();\n return [...registered].sort((a, b) => {\n const byDom = compareDocumentOrder(a.element, b.element);\n if (byDom !== 0) return byDom;\n return registered.indexOf(a) - registered.indexOf(b);\n });\n });\n\n const enabled = createMemo(() =>\n ordered().filter((item) => !item.disabled()),\n );\n\n const activeName = createMemo(\n () => options.controlledItem() ?? options.internalName(),\n );\n\n const activeItem = createMemo(\n () => enabled().find((item) => item.name === activeName()) ?? null,\n );\n\n const total = createMemo(() => enabled().length);\n\n const index = createMemo(() =>\n enabled().findIndex((item) => item.name === activeName()),\n );\n\n const current = createMemo(() => (index() < 0 ? 0 : index() + 1));\n\n const itemDefinitions = createMemo(() => {\n const list = options.definitions();\n if (!list) return null;\n return new Map(list.map((definition) => [definition.name, definition]));\n });\n\n return {\n ordered,\n enabled,\n activeName,\n activeItem,\n total,\n index,\n current,\n first: createMemo(() => total() > 0 && index() === 0),\n last: createMemo(() => total() > 0 && index() === total() - 1),\n itemDefinitions,\n };\n}\n\n/**\n * 该激活哪个题目:优先受控值与 `defaultItem`,两者都不在可用列表里时退到第一个。\n * 纯函数——列表与候选值都由调用方给出。\n */\nexport function resolveActiveName(options: {\n enabled: readonly QuestionnaireItemHandle[];\n controlledItem: string | undefined;\n defaultItem: string | undefined;\n}): string | null {\n const { enabled, controlledItem, defaultItem } = options;\n const candidate = controlledItem ?? defaultItem;\n if (candidate && enabled.some((entry) => entry.name === candidate)) {\n return candidate;\n }\n return enabled[0]?.name ?? null;\n}\n"],"mappings":";;;AA4CA,SAAgBA,EAAe,GAAoC;CAMjE,IAAMC,IAAUC,QAAiB;EAC/B,EAAQ,WAAW;EACnB,IAAMC,IAAaC,EAAQ,WAAW;EACtC,OAAO,CAAC,GAAGD,CAAU,CAAC,CAAC,MAAM,GAAG,MAAM;GACpC,IAAME,IAAQC,EAAqBC,EAAE,SAASC,EAAE,OAAO;GAEvD,OADIH,MAAU,IACPF,EAAW,QAAQI,CAAC,IAAIJ,EAAW,QAAQK,CAAC,IAD3BH;EAE1B,CAAC;CACH,CAAC,GAEKI,IAAUP,QACdD,EAAQ,CAAC,CAAC,QAAQ,MAAS,CAACS,EAAK,SAAS,CAAC,CAC7C,GAEMC,IAAaT,QACXE,EAAQ,eAAe,KAAKA,EAAQ,aAAa,CACzD,GAEMQ,IAAaV,QACXO,EAAQ,CAAC,CAAC,MAAM,MAASC,EAAK,SAASC,EAAW,CAAC,KAAK,IAChE,GAEME,IAAQX,QAAiBO,EAAQ,CAAC,CAAC,MAAM,GAEzCK,IAAQZ,QACZO,EAAQ,CAAC,CAAC,WAAW,MAASC,EAAK,SAASC,EAAW,CAAC,CAC1D,GAEMI,IAAUb,QAAkBY,EAAM,IAAI,IAAI,IAAIA,EAAM,IAAI,CAAE,GAE1DE,IAAkBd,QAAiB;EACvC,IAAMe,IAAOb,EAAQ,YAAY;EAEjC,OADKa,IACE,IAAI,IAAIA,EAAK,KAAK,MAAe,CAACC,EAAW,MAAMA,CAAU,CAAC,CAAC,IADpD;CAEpB,CAAC;CAED,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAAOhB,QAAiBW,EAAM,IAAI,KAAKC,EAAM,MAAM,CAAC;EACpD,MAAMZ,QAAiBW,EAAM,IAAI,KAAKC,EAAM,MAAMD,EAAM,IAAI,CAAC;EAC7D;CACF;AACF;AAMA,SAAgBM,EAAkB,GAIhB;CAChB,IAAM,EAAE,YAAS,mBAAgB,mBAAgBf,GAC3CgB,IAAYC,KAAkBC;CAIpC,OAHIF,KAAaX,EAAQ,MAAM,MAAUc,EAAM,SAASH,CAAS,IACxDA,IAEFX,EAAQ,EAAE,EAAE,QAAQ;AAC7B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { QuestionnaireItemHandle } from './questionnaire.context';
|
|
2
|
+
import { QuestionnaireItemStatus, QuestionnaireShortcutMode } from './questionnaire.types';
|
|
3
|
+
/** 键盘派发需要的能力(注入即可脱离 Solid 与 DOM 状态单独测试) */
|
|
4
|
+
export interface QuestionnaireKeyboardContext {
|
|
5
|
+
/** 当前激活的题目 */
|
|
6
|
+
item: QuestionnaireItemHandle;
|
|
7
|
+
/** 当前题目的作答状态(未作答时 ArrowRight 不前进) */
|
|
8
|
+
status: () => QuestionnaireItemStatus;
|
|
9
|
+
/** 快捷键模式,null 表示关闭 */
|
|
10
|
+
shortcuts: QuestionnaireShortcutMode | null;
|
|
11
|
+
goNext: () => void;
|
|
12
|
+
goPrevious: () => void;
|
|
13
|
+
/** 最后一题提交,否则前进 */
|
|
14
|
+
submitOrNext: () => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 问卷表单的按键映射:一个纯派发器——只把按键翻译成导航动作,
|
|
18
|
+
* 不持有状态(当前题、状态、快捷键模式都由 `ctx` 提供)。
|
|
19
|
+
*
|
|
20
|
+
* 处理顺序(先到先得,命中即 `preventDefault` 并返回):
|
|
21
|
+
* 1. 输入法组合中 / 已被他人处理 / 事件目标不是元素 → 直接放行;
|
|
22
|
+
* 2. Mod+Enter → 提交或前进(长按不重复触发);
|
|
23
|
+
* 3. 带 Ctrl/Meta/Alt 的其它组合 → 放行给浏览器;
|
|
24
|
+
* 4. 上下箭头 → 在当前题目的答案间移动焦点(`moveAnswerFocus` 说了算);
|
|
25
|
+
* 5. 左右箭头 → 切上一题 / 下一题(文本输入与原生 radio 上不切题);
|
|
26
|
+
* 6. Enter 在已填写的答案控件上 → 提交或前进;
|
|
27
|
+
* 7. 其余情况 → 按快捷键模式匹配答案(letters/numbers),命中则聚焦并点击。
|
|
28
|
+
*/
|
|
29
|
+
export declare function handleQuestionnaireKeyDown(event: KeyboardEvent, ctx: QuestionnaireKeyboardContext): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { isAnswerFilled as e, isNativeRadio as t, isTypingElement as n, normalizeShortcut as r } from "./questionnaire.utils.js";
|
|
2
|
+
//#region src/components/questionnaire/questionnaire.keys.ts
|
|
3
|
+
function i(i, a) {
|
|
4
|
+
let { item: o } = a;
|
|
5
|
+
if (i.defaultPrevented || i.isComposing || i.keyCode === 229 || !(i.target instanceof Element)) return;
|
|
6
|
+
let s = i.target;
|
|
7
|
+
if (i.key === "Enter" && (i.metaKey || i.ctrlKey) && !i.altKey && !i.shiftKey) {
|
|
8
|
+
i.preventDefault(), i.repeat || a.submitOrNext();
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
if (i.metaKey || i.ctrlKey || i.altKey) return;
|
|
12
|
+
if ((i.key === "ArrowUp" || i.key === "ArrowDown") && o.moveAnswerFocus(s, i.key === "ArrowDown" ? "next" : "previous")) {
|
|
13
|
+
i.preventDefault();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if ((i.key === "ArrowLeft" || i.key === "ArrowRight") && !n(s) && !t(s)) {
|
|
17
|
+
if (i.preventDefault(), i.repeat) return;
|
|
18
|
+
i.key === "ArrowLeft" ? a.goPrevious() : a.status() !== "unanswered" && a.goNext();
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (i.key === "Enter") {
|
|
22
|
+
let t = o.getAnswerByElement(s);
|
|
23
|
+
if (!t) return;
|
|
24
|
+
i.preventDefault(), !i.repeat && e(t) && a.submitOrNext();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!a.shortcuts || n(s)) return;
|
|
28
|
+
let c = r(i.key, a.shortcuts), l = c ? o.getAnswerByShortcut(c) : null;
|
|
29
|
+
l && (i.preventDefault(), !i.repeat && (l.element.focus(), l.type === "choice" && l.element.click()));
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { i as handleQuestionnaireKeyDown };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=questionnaire.keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire.keys.js","names":["handleQuestionnaireKeyDown","ctx","event","target","item","isTypingElement","isNativeRadio","answer","isAnswerFilled","shortcut","normalizeShortcut"],"sources":["../../../src/components/questionnaire/questionnaire.keys.ts"],"sourcesContent":["import type {\n QuestionnaireAnswerEntry,\n QuestionnaireItemHandle,\n} from \"./questionnaire.context\";\nimport type {\n QuestionnaireItemStatus,\n QuestionnaireShortcutMode,\n} from \"./questionnaire.types\";\nimport {\n isAnswerFilled,\n isNativeRadio,\n isTypingElement,\n normalizeShortcut,\n} from \"./questionnaire.utils\";\n\n/** 键盘派发需要的能力(注入即可脱离 Solid 与 DOM 状态单独测试) */\nexport interface QuestionnaireKeyboardContext {\n /** 当前激活的题目 */\n item: QuestionnaireItemHandle;\n /** 当前题目的作答状态(未作答时 ArrowRight 不前进) */\n status: () => QuestionnaireItemStatus;\n /** 快捷键模式,null 表示关闭 */\n shortcuts: QuestionnaireShortcutMode | null;\n goNext: () => void;\n goPrevious: () => void;\n /** 最后一题提交,否则前进 */\n submitOrNext: () => void;\n}\n\n/**\n * 问卷表单的按键映射:一个纯派发器——只把按键翻译成导航动作,\n * 不持有状态(当前题、状态、快捷键模式都由 `ctx` 提供)。\n *\n * 处理顺序(先到先得,命中即 `preventDefault` 并返回):\n * 1. 输入法组合中 / 已被他人处理 / 事件目标不是元素 → 直接放行;\n * 2. Mod+Enter → 提交或前进(长按不重复触发);\n * 3. 带 Ctrl/Meta/Alt 的其它组合 → 放行给浏览器;\n * 4. 上下箭头 → 在当前题目的答案间移动焦点(`moveAnswerFocus` 说了算);\n * 5. 左右箭头 → 切上一题 / 下一题(文本输入与原生 radio 上不切题);\n * 6. Enter 在已填写的答案控件上 → 提交或前进;\n * 7. 其余情况 → 按快捷键模式匹配答案(letters/numbers),命中则聚焦并点击。\n */\nexport function handleQuestionnaireKeyDown(\n event: KeyboardEvent,\n ctx: QuestionnaireKeyboardContext,\n): void {\n const { item } = ctx;\n if (\n event.defaultPrevented ||\n event.isComposing ||\n event.keyCode === 229 ||\n !(event.target instanceof Element)\n ) {\n return;\n }\n const target = event.target;\n\n if (\n event.key === \"Enter\" &&\n (event.metaKey || event.ctrlKey) &&\n !event.altKey &&\n !event.shiftKey\n ) {\n event.preventDefault();\n if (!event.repeat) ctx.submitOrNext();\n return;\n }\n if (event.metaKey || event.ctrlKey || event.altKey) return;\n\n if (\n (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") &&\n item.moveAnswerFocus(\n target,\n event.key === \"ArrowDown\" ? \"next\" : \"previous\",\n )\n ) {\n event.preventDefault();\n return;\n }\n\n if (\n (event.key === \"ArrowLeft\" || event.key === \"ArrowRight\") &&\n !isTypingElement(target) &&\n !isNativeRadio(target)\n ) {\n event.preventDefault();\n if (event.repeat) return;\n if (event.key === \"ArrowLeft\") ctx.goPrevious();\n else if (ctx.status() !== \"unanswered\") ctx.goNext();\n return;\n }\n\n if (event.key === \"Enter\") {\n const answer = item.getAnswerByElement(target);\n if (!answer) return;\n event.preventDefault();\n if (!event.repeat && isAnswerFilled(answer)) ctx.submitOrNext();\n return;\n }\n\n if (!ctx.shortcuts || isTypingElement(target)) return;\n const shortcut = normalizeShortcut(event.key, ctx.shortcuts);\n const answer: QuestionnaireAnswerEntry | null = shortcut\n ? item.getAnswerByShortcut(shortcut)\n : null;\n if (!answer) return;\n event.preventDefault();\n if (event.repeat) return;\n answer.element.focus();\n if (answer.type === \"choice\") {\n (answer.element as HTMLInputElement).click();\n }\n}\n"],"mappings":";;AA0CA,SAAgBA,EACd,GACA,GACM;CACN,IAAM,EAAE,YAASC;CACjB,IACEC,EAAM,oBACNA,EAAM,eACNA,EAAM,YAAY,OAClB,EAAEA,EAAM,kBAAkB,UAE1B;CAEF,IAAMC,IAASD,EAAM;CAErB,IACEA,EAAM,QAAQ,YACbA,EAAM,WAAWA,EAAM,YACxB,CAACA,EAAM,UACP,CAACA,EAAM,UACP;EAEA,AADAA,EAAM,eAAe,GAChBA,EAAM,UAAQD,EAAI,aAAa;EACpC;CACF;CACA,IAAIC,EAAM,WAAWA,EAAM,WAAWA,EAAM,QAAQ;CAEpD,KACGA,EAAM,QAAQ,aAAaA,EAAM,QAAQ,gBAC1CE,EAAK,gBACHD,GACAD,EAAM,QAAQ,cAAc,SAAS,UACvC,GACA;EACA,EAAM,eAAe;EACrB;CACF;CAEA,KACGA,EAAM,QAAQ,eAAeA,EAAM,QAAQ,iBAC5C,CAACG,EAAgBF,CAAM,KACvB,CAACG,EAAcH,CAAM,GACrB;EAEA,IADAD,EAAM,eAAe,GACjBA,EAAM,QAAQ;EAClB,AAAIA,EAAM,QAAQ,cAAaD,EAAI,WAAW,IACrCA,EAAI,OAAO,MAAM,gBAAcA,EAAI,OAAO;EACnD;CACF;CAEA,IAAIC,EAAM,QAAQ,SAAS;EACzB,IAAMK,IAASH,EAAK,mBAAmBD,CAAM;EAC7C,IAAI,CAACI,GAAQ;EAEb,AADAL,EAAM,eAAe,GACjB,CAACA,EAAM,UAAUM,EAAeD,CAAM,KAAGN,EAAI,aAAa;EAC9D;CACF;CAEA,IAAI,CAACA,EAAI,aAAaI,EAAgBF,CAAM,GAAG;CAC/C,IAAMM,IAAWC,EAAkBR,EAAM,KAAKD,EAAI,SAAS,GACrDM,IAA0CE,IAC5CL,EAAK,oBAAoBK,CAAQ,IACjC;CACJ,AAAKF,MACLL,EAAM,eAAe,GACjB,GAAM,WACVK,EAAO,QAAQ,MAAM,GACjBA,EAAO,SAAS,YAClBA,EAAQ,QAA6B,MAAM;AAE/C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
import { QuestionnaireItemHandle } from './questionnaire.context';
|
|
3
|
+
export interface ItemRegistry {
|
|
4
|
+
/** 已注册的题目句柄(未排序,顺序为注册顺序) */
|
|
5
|
+
items: Accessor<QuestionnaireItemHandle[]>;
|
|
6
|
+
/**
|
|
7
|
+
* 注册一个题目,返回注销函数。
|
|
8
|
+
*
|
|
9
|
+
* 同一个 DOM 元素再次注册时**替换**而不是追加:题目组件在受控 props 变化时
|
|
10
|
+
* 会用同一个 fieldset 重新注册,若追加就会出现两条指向同一元素的记录,
|
|
11
|
+
* 于是"上一题/下一题"会停在原地。
|
|
12
|
+
*/
|
|
13
|
+
register: (handle: QuestionnaireItemHandle) => () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* 题目句柄注册表。
|
|
17
|
+
*
|
|
18
|
+
* 单一职责:维护"当前有哪些题目"这一份账目(加入、按元素去重替换、移除)。
|
|
19
|
+
* 不排序、不判可用性、不读答案——那些是消费方的事。
|
|
20
|
+
*/
|
|
21
|
+
export declare function createItemRegistry(): ItemRegistry;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createSignal as e } from "solid-js";
|
|
2
|
+
//#region src/components/questionnaire/questionnaire.registry.ts
|
|
3
|
+
function t() {
|
|
4
|
+
let [t, n] = e([]);
|
|
5
|
+
return {
|
|
6
|
+
items: t,
|
|
7
|
+
register(e) {
|
|
8
|
+
return n((t) => t.some((t) => t.element === e.element) ? t.map((t) => t.element === e.element ? e : t) : [...t, e]), () => n((t) => t.filter((t) => t !== e));
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { t as createItemRegistry };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=questionnaire.registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire.registry.js","names":["createItemRegistry","items","setItems","createSignal","prev","item","handle"],"sources":["../../../src/components/questionnaire/questionnaire.registry.ts"],"sourcesContent":["import { createSignal, type Accessor } from \"solid-js\";\nimport type { QuestionnaireItemHandle } from \"./questionnaire.context\";\n\nexport interface ItemRegistry {\n /** 已注册的题目句柄(未排序,顺序为注册顺序) */\n items: Accessor<QuestionnaireItemHandle[]>;\n /**\n * 注册一个题目,返回注销函数。\n *\n * 同一个 DOM 元素再次注册时**替换**而不是追加:题目组件在受控 props 变化时\n * 会用同一个 fieldset 重新注册,若追加就会出现两条指向同一元素的记录,\n * 于是\"上一题/下一题\"会停在原地。\n */\n register: (handle: QuestionnaireItemHandle) => () => void;\n}\n\n/**\n * 题目句柄注册表。\n *\n * 单一职责:维护\"当前有哪些题目\"这一份账目(加入、按元素去重替换、移除)。\n * 不排序、不判可用性、不读答案——那些是消费方的事。\n */\nexport function createItemRegistry(): ItemRegistry {\n const [items, setItems] = createSignal<QuestionnaireItemHandle[]>([]);\n\n return {\n items,\n register(handle) {\n setItems((prev) => {\n const exists = prev.some((item) => item.element === handle.element);\n return exists\n ? prev.map((item) =>\n item.element === handle.element ? handle : item,\n )\n : [...prev, handle];\n });\n return () => setItems((prev) => prev.filter((item) => item !== handle));\n },\n };\n}\n"],"mappings":";;AAsBA,SAAgBA,IAAmC;CACjD,IAAM,CAACC,GAAOC,KAAYC,EAAwC,CAAC,CAAC;CAEpE,OAAO;EACL;EACA,SAAS,GAAQ;GASf,OARAD,GAAU,MACOE,EAAK,MAAM,MAASC,EAAK,YAAYC,EAAO,OACpD,IACHF,EAAK,KAAK,MACRC,EAAK,YAAYC,EAAO,UAAUA,IAASD,CAC7C,IACA,CAAC,GAAGD,GAAME,CAAM,CACrB,SACYJ,GAAU,MAASE,EAAK,QAAQ,MAASC,MAASC,CAAM,CAAC;EACxE;CACF;AACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { QuestionnaireAnswerEntry } from './questionnaire.context';
|
|
2
|
+
import { QuestionnaireItemDefinition, QuestionnaireShortcutMode } from './questionnaire.types';
|
|
3
|
+
/**
|
|
4
|
+
* 题目的快捷键推导。
|
|
5
|
+
*
|
|
6
|
+
* 单一职责:把"定义里的 choices / 已注册的答案 / 快捷键模式"换算成
|
|
7
|
+
* `值或 id → 字母` 的映射,以及反向查找。全部是纯函数——
|
|
8
|
+
* 不读信号、不碰 DOM,因此三种来源的组合都能单独断言。
|
|
9
|
+
*
|
|
10
|
+
* 两套映射互斥:
|
|
11
|
+
* - 定义里声明了 choices 时按 **choice.value** 分配字母(与选项顺序一致,
|
|
12
|
+
* 跳过 disabled,字母用尽即停);
|
|
13
|
+
* - 否则按 **answer.id** 给已注册的 choice 类型答案依次分配。
|
|
14
|
+
*/
|
|
15
|
+
/** 声明式选项的映射;没有 shortcuts 模式或定义里没有 choices 时返回 null */
|
|
16
|
+
export declare function buildShortcutByChoiceValue(definition: QuestionnaireItemDefinition | undefined, mode: QuestionnaireShortcutMode | null): Map<string, string> | null;
|
|
17
|
+
/** 已注册答案的映射;已有声明式映射时返回空表(两套不并用) */
|
|
18
|
+
export declare function buildShortcutByAnswerId(answers: readonly QuestionnaireAnswerEntry[], hasChoiceValueMap: boolean, mode: QuestionnaireShortcutMode | null): Map<string, string>;
|
|
19
|
+
/** 按字母反查答案:优先走声明式映射(比对 value),否则走 id 映射 */
|
|
20
|
+
export declare function findAnswerByShortcut(shortcut: string, maps: {
|
|
21
|
+
byChoiceValue: Map<string, string> | null;
|
|
22
|
+
byAnswerId: Map<string, string>;
|
|
23
|
+
answers: readonly QuestionnaireAnswerEntry[];
|
|
24
|
+
}): QuestionnaireAnswerEntry | null;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { shortcutAlphabet as e } from "./questionnaire.utils.js";
|
|
2
|
+
//#region src/components/questionnaire/questionnaire.shortcuts.ts
|
|
3
|
+
function t(t, n) {
|
|
4
|
+
if (!n || !t?.choices) return null;
|
|
5
|
+
let r = e(n), i = /* @__PURE__ */ new Map(), a = 0;
|
|
6
|
+
for (let e of t.choices) {
|
|
7
|
+
if (e.disabled) continue;
|
|
8
|
+
let t = r[a];
|
|
9
|
+
if (!t) break;
|
|
10
|
+
i.set(e.value, t), a += 1;
|
|
11
|
+
}
|
|
12
|
+
return i;
|
|
13
|
+
}
|
|
14
|
+
function n(t, n, r) {
|
|
15
|
+
if (n) return /* @__PURE__ */ new Map();
|
|
16
|
+
let i = e(r), a = t.filter((e) => e.type === "choice");
|
|
17
|
+
return new Map(a.slice(0, i.length).map((e, t) => [e.id, i[t]]));
|
|
18
|
+
}
|
|
19
|
+
function r(e, t) {
|
|
20
|
+
let { byChoiceValue: n, byAnswerId: r, answers: i } = t;
|
|
21
|
+
if (n) {
|
|
22
|
+
let t = [...n.entries()].find(([, t]) => t === e)?.[0];
|
|
23
|
+
return i.find((e) => e.type === "choice" && e.value === t) ?? null;
|
|
24
|
+
}
|
|
25
|
+
let a = [...r.entries()].find(([, t]) => t === e)?.[0];
|
|
26
|
+
return i.find((e) => e.id === a) ?? null;
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
export { n as buildShortcutByAnswerId, t as buildShortcutByChoiceValue, r as findAnswerByShortcut };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=questionnaire.shortcuts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"questionnaire.shortcuts.js","names":["buildShortcutByChoiceValue","mode","definition","alphabet","shortcutAlphabet","map","cursor","choice","letter","buildShortcutByAnswerId","hasChoiceValueMap","choices","answers","entry","index","findAnswerByShortcut","maps","byChoiceValue","value","shortcut","id","byAnswerId"],"sources":["../../../src/components/questionnaire/questionnaire.shortcuts.ts"],"sourcesContent":["import type { QuestionnaireAnswerEntry } from \"./questionnaire.context\";\nimport type {\n QuestionnaireItemDefinition,\n QuestionnaireShortcutMode,\n} from \"./questionnaire.types\";\nimport { shortcutAlphabet } from \"./questionnaire.utils\";\n\n/**\n * 题目的快捷键推导。\n *\n * 单一职责:把\"定义里的 choices / 已注册的答案 / 快捷键模式\"换算成\n * `值或 id → 字母` 的映射,以及反向查找。全部是纯函数——\n * 不读信号、不碰 DOM,因此三种来源的组合都能单独断言。\n *\n * 两套映射互斥:\n * - 定义里声明了 choices 时按 **choice.value** 分配字母(与选项顺序一致,\n * 跳过 disabled,字母用尽即停);\n * - 否则按 **answer.id** 给已注册的 choice 类型答案依次分配。\n */\n\n/** 声明式选项的映射;没有 shortcuts 模式或定义里没有 choices 时返回 null */\nexport function buildShortcutByChoiceValue(\n definition: QuestionnaireItemDefinition | undefined,\n mode: QuestionnaireShortcutMode | null,\n): Map<string, string> | null {\n if (!mode || !definition?.choices) return null;\n\n const alphabet = shortcutAlphabet(mode);\n const map = new Map<string, string>();\n let cursor = 0;\n for (const choice of definition.choices) {\n if (choice.disabled) continue;\n const letter = alphabet[cursor];\n if (!letter) break;\n map.set(choice.value, letter);\n cursor += 1;\n }\n return map;\n}\n\n/** 已注册答案的映射;已有声明式映射时返回空表(两套不并用) */\nexport function buildShortcutByAnswerId(\n answers: readonly QuestionnaireAnswerEntry[],\n hasChoiceValueMap: boolean,\n mode: QuestionnaireShortcutMode | null,\n): Map<string, string> {\n if (hasChoiceValueMap) return new Map();\n\n const alphabet = shortcutAlphabet(mode);\n const choices = answers.filter((entry) => entry.type === \"choice\");\n return new Map(\n choices\n .slice(0, alphabet.length)\n .map((entry, index) => [entry.id, alphabet[index]!]),\n );\n}\n\n/** 按字母反查答案:优先走声明式映射(比对 value),否则走 id 映射 */\nexport function findAnswerByShortcut(\n shortcut: string,\n maps: {\n byChoiceValue: Map<string, string> | null;\n byAnswerId: Map<string, string>;\n answers: readonly QuestionnaireAnswerEntry[];\n },\n): QuestionnaireAnswerEntry | null {\n const { byChoiceValue, byAnswerId, answers } = maps;\n\n if (byChoiceValue) {\n const value = [...byChoiceValue.entries()].find(\n ([, letter]) => letter === shortcut,\n )?.[0];\n return (\n answers.find(\n (entry) => entry.type === \"choice\" && entry.value === value,\n ) ?? null\n );\n }\n\n const id = [...byAnswerId.entries()].find(\n ([, letter]) => letter === shortcut,\n )?.[0];\n return answers.find((entry) => entry.id === id) ?? null;\n}\n"],"mappings":";;AAqBA,SAAgBA,EACd,GACA,GAC4B;CAC5B,IAAI,CAACC,KAAQ,CAACC,GAAY,SAAS,OAAO;CAE1C,IAAMC,IAAWC,EAAiBH,CAAI,GAChCI,oBAAM,IAAI,IAAoB,GAChCC,IAAS;CACb,KAAK,IAAMC,KAAUL,EAAW,SAAS;EACvC,IAAIK,EAAO,UAAU;EACrB,IAAMC,IAASL,EAASG;EACxB,IAAI,CAACE,GAAQ;EAEb,AADAH,EAAI,IAAIE,EAAO,OAAOC,CAAM,GAC5B,KAAU;CACZ;CACA,OAAOH;AACT;AAGA,SAAgBI,EACd,GACA,GACA,GACqB;CACrB,IAAIC,GAAmB,uBAAO,IAAI,IAAI;CAEtC,IAAMP,IAAWC,EAAiBH,CAAI,GAChCU,IAAUC,EAAQ,QAAQ,MAAUC,EAAM,SAAS,QAAQ;CACjE,OAAO,IAAI,IACTF,EACG,MAAM,GAAGR,EAAS,MAAM,CAAC,CACzB,KAAK,GAAO,MAAU,CAACU,EAAM,IAAIV,EAASW,EAAO,CAAC,CACvD;AACF;AAGA,SAAgBC,EACd,GACA,GAKiC;CACjC,IAAM,EAAE,kBAAe,eAAY,eAAYC;CAE/C,IAAIC,GAAe;EACjB,IAAMC,IAAQ,CAAC,GAAGD,EAAc,QAAQ,CAAC,CAAC,CAAC,MACxC,GAAGT,OAAYA,MAAWW,CAC7B,CAAC,GAAG;EACJ,OACEP,EAAQ,MACL,MAAUC,EAAM,SAAS,YAAYA,EAAM,UAAUK,CACxD,KAAK;CAET;CAEA,IAAME,IAAK,CAAC,GAAGC,EAAW,QAAQ,CAAC,CAAC,CAAC,MAClC,GAAGb,OAAYA,MAAWW,CAC7B,CAAC,GAAG;CACJ,OAAOP,EAAQ,MAAM,MAAUC,EAAM,OAAOO,CAAE,KAAK;AACrD"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { JSX, ParentProps, ValidComponent } from 'solid-js';
|
|
2
|
+
import { ButtonProps } from '../button';
|
|
3
|
+
import { BaseProps, PolymorphicProps } from '../../types';
|
|
4
|
+
export type QuestionnaireItemStatus = "unanswered" | "answered" | "skipped";
|
|
5
|
+
export type QuestionnaireShortcutMode = "letters" | "numbers";
|
|
6
|
+
export interface QuestionnaireChoiceDefinition {
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
value: string;
|
|
9
|
+
}
|
|
10
|
+
export interface QuestionnaireItemDefinition {
|
|
11
|
+
choices?: readonly QuestionnaireChoiceDefinition[];
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
name: string;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface QuestionnaireRootState {
|
|
17
|
+
current: number;
|
|
18
|
+
first: boolean;
|
|
19
|
+
last: boolean;
|
|
20
|
+
total: number;
|
|
21
|
+
}
|
|
22
|
+
interface BaseQuestionnaireProps extends BaseProps, ParentProps {
|
|
23
|
+
/** 初始激活项 */
|
|
24
|
+
defaultItem?: string;
|
|
25
|
+
/** 受控激活项;不传则由内部导航 */
|
|
26
|
+
item?: string;
|
|
27
|
+
/** 题目定义:提供后用于按定义顺序分配快捷键、校验名/required 一致性 */
|
|
28
|
+
items?: readonly QuestionnaireItemDefinition[];
|
|
29
|
+
onItemChange?: (item: string) => void;
|
|
30
|
+
/** 答案快捷键模式 */
|
|
31
|
+
shortcuts?: QuestionnaireShortcutMode;
|
|
32
|
+
/** 默认 true,关闭浏览器原生校验并走组件校验 */
|
|
33
|
+
noValidate?: boolean;
|
|
34
|
+
onReset?: (event: Event) => void;
|
|
35
|
+
onSubmit?: (event: SubmitEvent) => void;
|
|
36
|
+
}
|
|
37
|
+
export type QuestionnaireProps = PolymorphicProps<"form", BaseQuestionnaireProps, false>;
|
|
38
|
+
export type QuestionnaireProgressProps = PolymorphicProps<"div", BaseProps & {
|
|
39
|
+
children?: JSX.Element | ((state: QuestionnaireRootState) => JSX.Element);
|
|
40
|
+
}, false>;
|
|
41
|
+
export type QuestionnaireItemProps = PolymorphicProps<"fieldset", BaseProps & {
|
|
42
|
+
name: string;
|
|
43
|
+
required?: boolean;
|
|
44
|
+
multiple?: boolean;
|
|
45
|
+
disabled?: boolean;
|
|
46
|
+
invalid?: boolean;
|
|
47
|
+
onStatusChange?: (status: QuestionnaireItemStatus) => void;
|
|
48
|
+
"aria-labelledby"?: string;
|
|
49
|
+
}, false>;
|
|
50
|
+
export type QuestionnaireTitleProps<T extends ValidComponent = "legend"> = PolymorphicProps<T, BaseProps & {
|
|
51
|
+
id?: string;
|
|
52
|
+
children?: JSX.Element;
|
|
53
|
+
}>;
|
|
54
|
+
export type QuestionnaireDescriptionProps<T extends ValidComponent = "p"> = PolymorphicProps<T, BaseProps & {
|
|
55
|
+
id?: string;
|
|
56
|
+
children?: JSX.Element;
|
|
57
|
+
}>;
|
|
58
|
+
export type QuestionnaireChoicesProps = PolymorphicProps<"div", BaseProps, false>;
|
|
59
|
+
export type QuestionnaireChoiceProps = PolymorphicProps<"label", BaseProps & {
|
|
60
|
+
value: string;
|
|
61
|
+
checked?: boolean;
|
|
62
|
+
defaultChecked?: boolean;
|
|
63
|
+
disabled?: boolean;
|
|
64
|
+
onChange?: (event: Event) => void;
|
|
65
|
+
}, false>;
|
|
66
|
+
export type QuestionnaireInputType = "date" | "datetime-local" | "email" | "month" | "number" | "password" | "search" | "tel" | "text" | "time" | "url" | "week";
|
|
67
|
+
export type QuestionnaireInputProps = PolymorphicProps<"input", BaseProps & {
|
|
68
|
+
type?: QuestionnaireInputType;
|
|
69
|
+
defaultValue?: string;
|
|
70
|
+
value?: string;
|
|
71
|
+
disabled?: boolean;
|
|
72
|
+
onChange?: (event: Event) => void;
|
|
73
|
+
}, false>;
|
|
74
|
+
export type QuestionnaireErrorProps<T extends ValidComponent = "p"> = PolymorphicProps<T, BaseProps & {
|
|
75
|
+
id?: string;
|
|
76
|
+
children?: JSX.Element;
|
|
77
|
+
}>;
|
|
78
|
+
export type QuestionnaireNavigationProps = PolymorphicProps<"button", BaseProps & {
|
|
79
|
+
variant?: ButtonProps<"button">["variant"];
|
|
80
|
+
size?: ButtonProps<"button">["size"];
|
|
81
|
+
}, false>;
|
|
82
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { QuestionnaireShortcutMode } from './questionnaire.types';
|
|
2
|
+
/** 字符串/数组是否含有非空白内容(与上游 ce 一致) */
|
|
3
|
+
export declare function hasText(value: unknown): boolean;
|
|
4
|
+
/** 按模式生成快捷键字母表:letters = A..Z,numbers = 1..9 */
|
|
5
|
+
export declare function shortcutAlphabet(mode: QuestionnaireShortcutMode | null): string[];
|
|
6
|
+
/** 把按下的键规范成快捷键(字母大小写无关),不匹配返回 null */
|
|
7
|
+
export declare function normalizeShortcut(key: string, mode: QuestionnaireShortcutMode | null): string | null;
|
|
8
|
+
/** 拼 aria-keyshortcuts:有启用状态时额外附上 Enter */
|
|
9
|
+
export declare function keyShortcutText(shortcut: string | null, enterEnabled: boolean): string | undefined;
|
|
10
|
+
/** 判断答案控件当前是否有值(choice 看 checked,input 看 name+value) */
|
|
11
|
+
export declare function isAnswerFilled(entry: {
|
|
12
|
+
type: "choice" | "input";
|
|
13
|
+
element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
14
|
+
}): boolean;
|
|
15
|
+
/** 文本类输入框为空(用于原生校验) */
|
|
16
|
+
export declare function isTextInputEmpty(entry: {
|
|
17
|
+
type: "choice" | "input";
|
|
18
|
+
element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
19
|
+
}): boolean;
|
|
20
|
+
/** 是否为可输入文本的控件(用于决定方向键是否应当导航而非移动焦点) */
|
|
21
|
+
export declare function isTypingElement(element: EventTarget | null): boolean;
|
|
22
|
+
export declare function isNativeRadio(element: EventTarget | null): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* 按文档顺序比较两个元素。
|
|
25
|
+
*
|
|
26
|
+
* **只在两个元素都连在文档里时**才比较:`QuestionnaireItem` 是在 ref 里注册的,
|
|
27
|
+
* 而 Solid 的 ref 在节点插入文档**之前**触发,此刻 fieldset 还是分离节点。
|
|
28
|
+
* 分离节点的 `compareDocumentPosition` 返回的是「实现相关」的 FOLLOWING/
|
|
29
|
+
* PRECEDING(jsdom 恒为 FOLLOWING),据此排序会把题目顺序整体颠倒。
|
|
30
|
+
* 这种情况返回 0(视为等价),由调用方回退到注册顺序。
|
|
31
|
+
*/
|
|
32
|
+
export declare function compareDocumentOrder(a: Element, b: Element): number;
|
|
33
|
+
/**
|
|
34
|
+
* 答案是否处于禁用态:组件层标记(`disabled` prop)或原生控件自身禁用。
|
|
35
|
+
* 判定被"状态推导 / 焦点移动 / 校验"共用,因此集中在这里。
|
|
36
|
+
*/
|
|
37
|
+
export declare function isAnswerDisabled(entry: {
|
|
38
|
+
disabled: boolean;
|
|
39
|
+
element: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
|
|
40
|
+
}): boolean;
|