@neut/ui 0.0.15 → 0.0.17
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.context.d.ts +1 -1
- package/dist/components/accordion/Accordion/Accordion.context.js.map +1 -1
- package/dist/components/accordion/Accordion/Accordion.d.ts +1 -1
- package/dist/components/accordion/Accordion/Accordion.js.map +1 -1
- package/dist/components/accordion/Accordion/Accordion.styles.js.map +1 -1
- package/dist/components/accordion/Accordion/useAccordion.js.map +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.d.ts +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.js.map +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.styles.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.context.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.d.ts +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.styles.js.map +1 -1
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.d.ts +1 -1
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js.map +1 -1
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.styles.js.map +1 -1
- package/dist/components/alert/Alert/Alert.d.ts +1 -1
- package/dist/components/alert/Alert/Alert.js.map +1 -1
- package/dist/components/alert/Alert/Alert.styles.js.map +1 -1
- package/dist/components/alert/AlertAction/AlertAction.d.ts +1 -1
- package/dist/components/alert/AlertAction/AlertAction.js.map +1 -1
- package/dist/components/alert/AlertAction/AlertAction.styles.js.map +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.d.ts +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.js.map +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.styles.js.map +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.d.ts +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.js.map +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.d.ts +6 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.js +4 -19
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.types.d.ts +6 -2
- package/dist/components/alert-dialog/AlertDialog/index.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogAction/AlertDialogAction.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogAction/AlertDialogAction.js +13 -4
- package/dist/components/alert-dialog/AlertDialogAction/AlertDialogAction.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js +1 -1
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.js +19 -53
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.js +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.types.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/index.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.js +4 -22
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.js +4 -6
- package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.d.ts +8 -2
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.js +27 -6
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.types.d.ts +4 -0
- package/dist/components/alert-dialog/AlertDialogTrigger/index.d.ts +1 -0
- package/dist/components/alert-dialog/index.js +13 -15
- package/dist/components/aspect-ratio/AspectRatio.d.ts +1 -1
- package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
- package/dist/components/aspect-ratio/AspectRatio.styles.js.map +1 -1
- package/dist/components/attachment/Attachment/Attachment.d.ts +6 -0
- package/dist/components/attachment/Attachment/Attachment.js +46 -0
- package/dist/components/attachment/Attachment/Attachment.js.map +1 -0
- package/dist/components/attachment/Attachment/Attachment.styles.d.ts +4 -0
- package/dist/components/attachment/Attachment/Attachment.styles.js +17 -0
- package/dist/components/attachment/Attachment/Attachment.styles.js.map +1 -0
- package/dist/components/attachment/Attachment/Attachment.types.d.ts +8 -0
- package/dist/components/attachment/Attachment/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentAction/AttachmentAction.d.ts +3 -0
- package/dist/components/attachment/AttachmentAction/AttachmentAction.js +15 -0
- package/dist/components/attachment/AttachmentAction/AttachmentAction.js.map +1 -0
- package/dist/components/attachment/AttachmentAction/AttachmentAction.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentAction/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.d.ts +3 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.js +24 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.js.map +1 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.styles.d.ts +1 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.styles.js +6 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentActions/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentContent/AttachmentContent.d.ts +3 -0
- package/dist/components/attachment/AttachmentContent/AttachmentContent.js +23 -0
- package/dist/components/attachment/AttachmentContent/AttachmentContent.js.map +1 -0
- package/dist/components/attachment/AttachmentContent/AttachmentContent.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentContent/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.d.ts +3 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.js +24 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.js.map +1 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.styles.d.ts +1 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.styles.js +6 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentDescription/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.d.ts +3 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.js +24 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.js.map +1 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.styles.d.ts +1 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.styles.js +6 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentGroup/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.d.ts +3 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.js +31 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.js.map +1 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.styles.d.ts +3 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.styles.js +13 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.types.d.ts +4 -0
- package/dist/components/attachment/AttachmentMedia/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.d.ts +3 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.js +24 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.js.map +1 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.styles.d.ts +1 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.styles.js +6 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentTitle/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.d.ts +7 -0
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js +18 -0
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js.map +1 -0
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.types.d.ts +5 -0
- package/dist/components/attachment/AttachmentTrigger/index.d.ts +2 -0
- package/dist/components/attachment/index.d.ts +18 -0
- package/dist/components/attachment/index.js +10 -0
- package/dist/components/avatar/Avatar/Avatar.context.js.map +1 -1
- package/dist/components/avatar/Avatar/Avatar.d.ts +1 -1
- package/dist/components/avatar/Avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/AvatarBadge/AvatarBadge.d.ts +1 -1
- package/dist/components/avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/components/avatar/AvatarFallback/AvatarFallback.d.ts +1 -1
- package/dist/components/avatar/AvatarFallback/AvatarFallback.js.map +1 -1
- package/dist/components/avatar/AvatarGroup/AvatarGroup.d.ts +1 -1
- package/dist/components/avatar/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.d.ts +1 -1
- package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js.map +1 -1
- package/dist/components/avatar/AvatarImage/AvatarImage.d.ts +1 -1
- package/dist/components/avatar/AvatarImage/AvatarImage.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +1 -1
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/badge/Badge.styles.js.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/components/breadcrumb/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.styles.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 +17 -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.d.ts +1 -1
- package/dist/components/button/Button.js +1 -1
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/Button.styles.js.map +1 -1
- package/dist/components/button-group/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/components/button-group/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/button-group/ButtonGroup/ButtonGroup.styles.js.map +1 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.d.ts +1 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.js.map +1 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.styles.js.map +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.d.ts +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js.map +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.styles.js.map +1 -1
- package/dist/components/calendar/Calendar/Calendar.js.map +1 -1
- package/dist/components/calendar/Calendar/Calendar.utils.js.map +1 -1
- package/dist/components/card/Card/Card.d.ts +1 -1
- package/dist/components/card/Card/Card.js.map +1 -1
- package/dist/components/card/Card/Card.styles.js.map +1 -1
- package/dist/components/card/CardAction/CardAction.d.ts +1 -1
- package/dist/components/card/CardAction/CardAction.js.map +1 -1
- package/dist/components/card/CardAction/CardAction.styles.js.map +1 -1
- package/dist/components/card/CardContent/CardContent.d.ts +1 -1
- package/dist/components/card/CardContent/CardContent.js.map +1 -1
- package/dist/components/card/CardContent/CardContent.styles.js.map +1 -1
- package/dist/components/card/CardDescription/CardDescription.d.ts +1 -1
- package/dist/components/card/CardDescription/CardDescription.js.map +1 -1
- package/dist/components/card/CardDescription/CardDescription.styles.js.map +1 -1
- package/dist/components/card/CardFooter/CardFooter.d.ts +1 -1
- package/dist/components/card/CardFooter/CardFooter.js.map +1 -1
- package/dist/components/card/CardFooter/CardFooter.styles.js.map +1 -1
- package/dist/components/card/CardHeader/CardHeader.d.ts +1 -1
- package/dist/components/card/CardHeader/CardHeader.js.map +1 -1
- package/dist/components/card/CardHeader/CardHeader.styles.js.map +1 -1
- package/dist/components/card/CardTitle/CardTitle.d.ts +1 -1
- package/dist/components/card/CardTitle/CardTitle.js.map +1 -1
- package/dist/components/card/CardTitle/CardTitle.styles.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.context.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.d.ts +1 -1
- package/dist/components/carousel/Carousel/Carousel.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.styles.js.map +1 -1
- package/dist/components/carousel/Carousel/useAutoPlay.js.map +1 -1
- package/dist/components/carousel/Carousel/useCarousel.js.map +1 -1
- package/dist/components/carousel/Carousel/useKeyboardNavigation.js.map +1 -1
- package/dist/components/carousel/CarouselContent/CarouselContent.d.ts +1 -1
- package/dist/components/carousel/CarouselContent/CarouselContent.js.map +1 -1
- package/dist/components/carousel/CarouselContent/useItemSizeMeasure.js.map +1 -1
- package/dist/components/carousel/CarouselDots/CarouselDots.d.ts +1 -1
- package/dist/components/carousel/CarouselDots/CarouselDots.js.map +1 -1
- package/dist/components/carousel/CarouselItem/CarouselItem.d.ts +1 -1
- package/dist/components/carousel/CarouselItem/CarouselItem.js.map +1 -1
- package/dist/components/carousel/CarouselNext/CarouselNext.d.ts +1 -1
- package/dist/components/carousel/CarouselNext/CarouselNext.js.map +1 -1
- package/dist/components/carousel/CarouselPrevious/CarouselPrevious.d.ts +1 -1
- package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js.map +1 -1
- package/dist/components/checkbox/Checkbox/Checkbox.d.ts +1 -1
- package/dist/components/checkbox/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox/Checkbox/Checkbox.styles.js.map +1 -1
- package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.d.ts +1 -1
- package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.js.map +1 -1
- package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.styles.js.map +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.context.js.map +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.d.ts +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.js.map +1 -1
- package/dist/components/collapsible/CollapsibleContent/CollapsibleContent.d.ts +1 -1
- package/dist/components/collapsible/CollapsibleContent/CollapsibleContent.js.map +1 -1
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.d.ts +1 -1
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js.map +1 -1
- package/dist/components/combobox/Combobox/Combobox.context.js.map +1 -1
- package/dist/components/combobox/Combobox/Combobox.js +50 -47
- package/dist/components/combobox/Combobox/Combobox.js.map +1 -1
- package/dist/components/combobox/Combobox/Combobox.types.d.ts +5 -0
- package/dist/components/combobox/ComboboxChip/ComboboxChip.js.map +1 -1
- package/dist/components/combobox/ComboboxChips/ComboboxChips.js.map +1 -1
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.d.ts +1 -1
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js.map +1 -1
- package/dist/components/combobox/ComboboxClear/ComboboxClear.d.ts +1 -1
- package/dist/components/combobox/ComboboxClear/ComboboxClear.js.map +1 -1
- package/dist/components/combobox/ComboboxCollection/ComboboxCollection.js.map +1 -1
- package/dist/components/combobox/ComboboxContent/ComboboxContent.d.ts +1 -1
- package/dist/components/combobox/ComboboxContent/ComboboxContent.js.map +1 -1
- package/dist/components/combobox/ComboboxContent/ComboboxContent.utils.js.map +1 -1
- package/dist/components/combobox/ComboboxContent/useComboboxContent.js.map +1 -1
- package/dist/components/combobox/ComboboxEmpty/ComboboxEmpty.js.map +1 -1
- package/dist/components/combobox/ComboboxGroup/ComboboxGroup.js.map +1 -1
- package/dist/components/combobox/ComboboxInput/ComboboxInput.js.map +1 -1
- package/dist/components/combobox/ComboboxItem/ComboboxItem.js.map +1 -1
- package/dist/components/combobox/ComboboxLabel/ComboboxLabel.js.map +1 -1
- package/dist/components/combobox/ComboboxList/ComboboxList.js +13 -12
- package/dist/components/combobox/ComboboxList/ComboboxList.js.map +1 -1
- package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.d.ts +1 -1
- package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.js.map +1 -1
- package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js.map +1 -1
- package/dist/components/combobox/ComboboxValue/ComboboxValue.js.map +1 -1
- package/dist/components/combobox/useComboboxAnchor/useComboboxAnchor.js.map +1 -1
- package/dist/components/context-menu/ContextMenu/ContextMenu.context.d.ts +3 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.context.js +12 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.context.js.map +1 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.d.ts +23 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.js +73 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.types.d.ts +28 -0
- package/dist/components/context-menu/ContextMenu/index.d.ts +3 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/ContextMenuCheckboxItem.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/ContextMenuCheckboxItem.js +78 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/ContextMenuCheckboxItem.js.map +1 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/ContextMenuCheckboxItem.types.d.ts +20 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuContent.d.ts +9 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuContent.js +64 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuContent.js.map +1 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuContent.types.d.ts +26 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuPopupSurface.d.ts +31 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuPopupSurface.js +102 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuPopupSurface.js.map +1 -0
- package/dist/components/context-menu/ContextMenuContent/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.d.ts +52 -0
- package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js +153 -0
- package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js.map +1 -0
- package/dist/components/context-menu/ContextMenuGroup/ContextMenuGroup.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuGroup/ContextMenuGroup.js +29 -0
- package/dist/components/context-menu/ContextMenuGroup/ContextMenuGroup.js.map +1 -0
- package/dist/components/context-menu/ContextMenuGroup/ContextMenuGroup.types.d.ts +9 -0
- package/dist/components/context-menu/ContextMenuGroup/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuItem/ContextMenuItem.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuItem/ContextMenuItem.js +59 -0
- package/dist/components/context-menu/ContextMenuItem/ContextMenuItem.js.map +1 -0
- package/dist/components/context-menu/ContextMenuItem/ContextMenuItem.types.d.ts +22 -0
- package/dist/components/context-menu/ContextMenuItem/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuLabel/ContextMenuLabel.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuLabel/ContextMenuLabel.js +31 -0
- package/dist/components/context-menu/ContextMenuLabel/ContextMenuLabel.js.map +1 -0
- package/dist/components/context-menu/ContextMenuLabel/ContextMenuLabel.types.d.ts +8 -0
- package/dist/components/context-menu/ContextMenuLabel/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuPortal/ContextMenuPortal.d.ts +16 -0
- package/dist/components/context-menu/ContextMenuPortal/ContextMenuPortal.js +18 -0
- package/dist/components/context-menu/ContextMenuPortal/ContextMenuPortal.js.map +1 -0
- package/dist/components/context-menu/ContextMenuPortal/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/ContextMenuRadioGroup.d.ts +12 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/ContextMenuRadioGroup.js +48 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/ContextMenuRadioGroup.js.map +1 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/ContextMenuRadioGroup.types.d.ts +14 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuRadioItem/ContextMenuRadioItem.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuRadioItem/ContextMenuRadioItem.js +74 -0
- package/dist/components/context-menu/ContextMenuRadioItem/ContextMenuRadioItem.js.map +1 -0
- package/dist/components/context-menu/ContextMenuRadioItem/ContextMenuRadioItem.types.d.ts +16 -0
- package/dist/components/context-menu/ContextMenuRadioItem/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuSeparator/ContextMenuSeparator.d.ts +9 -0
- package/dist/components/context-menu/ContextMenuSeparator/ContextMenuSeparator.js +25 -0
- package/dist/components/context-menu/ContextMenuSeparator/ContextMenuSeparator.js.map +1 -0
- package/dist/components/context-menu/ContextMenuSeparator/ContextMenuSeparator.types.d.ts +8 -0
- package/dist/components/context-menu/ContextMenuSeparator/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuShortcut/ContextMenuShortcut.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuShortcut/ContextMenuShortcut.js +19 -0
- package/dist/components/context-menu/ContextMenuShortcut/ContextMenuShortcut.js.map +1 -0
- package/dist/components/context-menu/ContextMenuShortcut/ContextMenuShortcut.types.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuShortcut/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.d.ts +7 -0
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js +55 -0
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js.map +1 -0
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.types.d.ts +18 -0
- package/dist/components/context-menu/ContextMenuSub/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuSubContent/ContextMenuSubContent.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuSubContent/ContextMenuSubContent.js +83 -0
- package/dist/components/context-menu/ContextMenuSubContent/ContextMenuSubContent.js.map +1 -0
- package/dist/components/context-menu/ContextMenuSubContent/ContextMenuSubContent.types.d.ts +17 -0
- package/dist/components/context-menu/ContextMenuSubContent/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/ContextMenuSubTrigger.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/ContextMenuSubTrigger.js +96 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/ContextMenuSubTrigger.js.map +1 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/ContextMenuSubTrigger.types.d.ts +21 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.d.ts +13 -0
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js +34 -0
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js.map +1 -0
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.types.d.ts +15 -0
- package/dist/components/context-menu/ContextMenuTrigger/index.d.ts +4 -0
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.d.ts +23 -0
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js +47 -0
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js.map +1 -0
- package/dist/components/context-menu/context-menu.context.d.ts +14 -0
- package/dist/components/context-menu/context-menu.context.js +25 -0
- package/dist/components/context-menu/context-menu.context.js.map +1 -0
- package/dist/components/context-menu/context-menu.entry.d.ts +28 -0
- package/dist/components/context-menu/context-menu.entry.js +31 -0
- package/dist/components/context-menu/context-menu.entry.js.map +1 -0
- package/dist/components/context-menu/context-menu.styles.d.ts +18 -0
- package/dist/components/context-menu/context-menu.styles.js +6 -0
- package/dist/components/context-menu/context-menu.styles.js.map +1 -0
- package/dist/components/context-menu/context-menu.types.d.ts +151 -0
- package/dist/components/context-menu/context-menu.utils.d.ts +28 -0
- package/dist/components/context-menu/context-menu.utils.js +51 -0
- package/dist/components/context-menu/context-menu.utils.js.map +1 -0
- package/dist/components/context-menu/index.d.ts +31 -0
- package/dist/components/context-menu/index.js +16 -0
- package/dist/components/data-table/createRowModel.d.ts +20 -0
- package/dist/components/data-table/createRowModel.js +46 -0
- package/dist/components/data-table/createRowModel.js.map +1 -0
- package/dist/components/data-table/createTable.d.ts +16 -0
- package/dist/components/data-table/createTable.js +94 -0
- package/dist/components/data-table/createTable.js.map +1 -0
- package/dist/components/data-table/createTableColumns.d.ts +19 -0
- package/dist/components/data-table/createTableColumns.js +68 -0
- package/dist/components/data-table/createTableColumns.js.map +1 -0
- package/dist/components/data-table/createTableHeaders.d.ts +10 -0
- package/dist/components/data-table/createTableHeaders.js +26 -0
- package/dist/components/data-table/createTableHeaders.js.map +1 -0
- package/dist/components/data-table/createTableRows.d.ts +16 -0
- package/dist/components/data-table/createTableRows.js +57 -0
- package/dist/components/data-table/createTableRows.js.map +1 -0
- package/dist/components/data-table/createTableSelection.d.ts +12 -0
- package/dist/components/data-table/createTableSelection.js +23 -0
- package/dist/components/data-table/createTableSelection.js.map +1 -0
- package/dist/components/data-table/createTableState.d.ts +16 -0
- package/dist/components/data-table/createTableState.js +34 -0
- package/dist/components/data-table/createTableState.js.map +1 -0
- package/dist/components/data-table/data-table.types.d.ts +123 -0
- package/dist/components/data-table/data-table.utils.d.ts +4 -0
- package/dist/components/data-table/data-table.utils.js +11 -0
- package/dist/components/data-table/data-table.utils.js.map +1 -0
- package/dist/components/data-table/index.d.ts +2 -0
- package/dist/components/data-table/index.js +2 -0
- package/dist/components/date-picker/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.d.ts +1 -1
- package/dist/components/dialog/Dialog/Dialog.js +18 -16
- 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.d.ts +1 -1
- package/dist/components/dialog/DialogClose/DialogClose.js +5 -5
- package/dist/components/dialog/DialogClose/DialogClose.js.map +1 -1
- package/dist/components/dialog/DialogClose/DialogClose.styles.js.map +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.context.js.map +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.d.ts +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.js +23 -55
- package/dist/components/dialog/DialogContent/DialogContent.js.map +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.styles.js.map +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.d.ts +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.js.map +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.styles.js.map +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.d.ts +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.js.map +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.styles.js.map +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.d.ts +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.js.map +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.styles.js.map +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.d.ts +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.js +18 -10
- package/dist/components/dialog/DialogOverlay/DialogOverlay.js.map +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.styles.js.map +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.types.d.ts +4 -1
- package/dist/components/dialog/DialogPortal/DialogPortal.d.ts +1 -1
- package/dist/components/dialog/DialogPortal/DialogPortal.js.map +1 -1
- package/dist/components/dialog/DialogSurface/DialogSurface.d.ts +2 -0
- package/dist/components/dialog/DialogSurface/DialogSurface.js +77 -0
- package/dist/components/dialog/DialogSurface/DialogSurface.js.map +1 -0
- package/dist/components/dialog/DialogSurface/DialogSurface.types.d.ts +15 -0
- package/dist/components/dialog/DialogSurface/index.d.ts +2 -0
- package/dist/components/dialog/DialogTitle/DialogTitle.d.ts +1 -1
- package/dist/components/dialog/DialogTitle/DialogTitle.js.map +1 -1
- package/dist/components/dialog/DialogTitle/DialogTitle.styles.js.map +1 -1
- package/dist/components/dialog/DialogTrigger/DialogTrigger.d.ts +1 -1
- package/dist/components/dialog/DialogTrigger/DialogTrigger.js.map +1 -1
- package/dist/components/dialog/DialogTrigger/useDialogTrigger.js.map +1 -1
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +9 -8
- 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 +25 -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/index.d.ts +2 -0
- package/dist/components/drawer/DrawerContent/useDrawerSwipe.d.ts +11 -0
- package/dist/components/drawer/DrawerContent/useDrawerSwipe.js +56 -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/DropdownMenu/DropdownMenu.context.d.ts +3 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.context.js +12 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.context.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.d.ts +9 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.js +82 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.types.d.ts +26 -0
- package/dist/components/dropdown-menu/DropdownMenu/index.d.ts +3 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/DropdownMenuCheckboxItem.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/DropdownMenuCheckboxItem.js +78 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/DropdownMenuCheckboxItem.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/DropdownMenuCheckboxItem.types.d.ts +14 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/DropdownMenuContent.d.ts +6 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/DropdownMenuContent.js +64 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/DropdownMenuContent.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/DropdownMenuContent.types.d.ts +13 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/DropdownMenuGroup.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/DropdownMenuGroup.js +29 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/DropdownMenuGroup.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/DropdownMenuGroup.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/DropdownMenuItem.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/DropdownMenuItem.js +59 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/DropdownMenuItem.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/DropdownMenuItem.types.d.ts +14 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/DropdownMenuLabel.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/DropdownMenuLabel.js +31 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/DropdownMenuLabel.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/DropdownMenuLabel.types.d.ts +4 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/DropdownMenuPortal.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/DropdownMenuPortal.js +10 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/DropdownMenuPortal.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/DropdownMenuPortal.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.js +48 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.types.d.ts +10 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/DropdownMenuRadioItem.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/DropdownMenuRadioItem.js +74 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/DropdownMenuRadioItem.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/DropdownMenuRadioItem.types.d.ts +11 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/DropdownMenuSeparator.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/DropdownMenuSeparator.js +25 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/DropdownMenuSeparator.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/DropdownMenuSeparator.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/DropdownMenuShortcut.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/DropdownMenuShortcut.js +19 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/DropdownMenuShortcut.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/DropdownMenuShortcut.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/DropdownMenuSub.d.ts +4 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/DropdownMenuSub.js +10 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/DropdownMenuSub.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/DropdownMenuSub.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/DropdownMenuSubContent.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/DropdownMenuSubContent.js +82 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/DropdownMenuSubContent.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/DropdownMenuSubContent.types.d.ts +15 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/DropdownMenuSubTrigger.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/DropdownMenuSubTrigger.js +96 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/DropdownMenuSubTrigger.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/DropdownMenuSubTrigger.types.d.ts +12 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.d.ts +5 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js +42 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.types.d.ts +4 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.d.ts +4 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js +30 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.styles.d.ts +11 -0
- package/dist/components/dropdown-menu/dropdown-menu.styles.js +6 -0
- package/dist/components/dropdown-menu/dropdown-menu.styles.js.map +1 -0
- package/dist/components/dropdown-menu/index.d.ts +30 -0
- package/dist/components/dropdown-menu/index.js +16 -0
- package/dist/components/empty/Empty/Empty.d.ts +1 -1
- package/dist/components/empty/Empty/Empty.js.map +1 -1
- package/dist/components/empty/EmptyContent/EmptyContent.d.ts +1 -1
- package/dist/components/empty/EmptyContent/EmptyContent.js.map +1 -1
- package/dist/components/empty/EmptyDescription/EmptyDescription.d.ts +1 -1
- package/dist/components/empty/EmptyDescription/EmptyDescription.js.map +1 -1
- package/dist/components/empty/EmptyHeader/EmptyHeader.d.ts +1 -1
- package/dist/components/empty/EmptyHeader/EmptyHeader.js.map +1 -1
- package/dist/components/empty/EmptyMedia/EmptyMedia.d.ts +1 -1
- package/dist/components/empty/EmptyMedia/EmptyMedia.js.map +1 -1
- package/dist/components/empty/EmptyMedia/EmptyMedia.styles.js.map +1 -1
- package/dist/components/empty/EmptyTitle/EmptyTitle.d.ts +1 -1
- package/dist/components/empty/EmptyTitle/EmptyTitle.js.map +1 -1
- package/dist/components/field/Field/Field.d.ts +1 -1
- package/dist/components/field/Field/Field.js.map +1 -1
- package/dist/components/field/Field/Field.styles.js.map +1 -1
- package/dist/components/field/FieldContent/FieldContent.d.ts +1 -1
- package/dist/components/field/FieldContent/FieldContent.js.map +1 -1
- package/dist/components/field/FieldDescription/FieldDescription.d.ts +1 -1
- package/dist/components/field/FieldDescription/FieldDescription.js.map +1 -1
- package/dist/components/field/FieldError/FieldError.d.ts +1 -1
- package/dist/components/field/FieldError/FieldError.js.map +1 -1
- package/dist/components/field/FieldGroup/FieldGroup.d.ts +1 -1
- package/dist/components/field/FieldGroup/FieldGroup.js.map +1 -1
- package/dist/components/field/FieldLabel/FieldLabel.d.ts +1 -1
- package/dist/components/field/FieldLabel/FieldLabel.js.map +1 -1
- package/dist/components/field/FieldLegend/FieldLegend.d.ts +1 -1
- package/dist/components/field/FieldLegend/FieldLegend.js.map +1 -1
- package/dist/components/field/FieldSeparator/FieldSeparator.d.ts +1 -1
- package/dist/components/field/FieldSeparator/FieldSeparator.js.map +1 -1
- package/dist/components/field/FieldSet/FieldSet.d.ts +1 -1
- package/dist/components/field/FieldSet/FieldSet.js.map +1 -1
- package/dist/components/field/FieldTitle/FieldTitle.d.ts +1 -1
- 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/hover-card.utils.d.ts +6 -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.config.js.map +1 -1
- package/dist/components/image/Image.js.map +1 -1
- package/dist/components/image/Image.utils.js +2 -2
- package/dist/components/image/Image.utils.js.map +1 -1
- package/dist/components/image/ImageElement.js.map +1 -1
- package/dist/components/image/ImagePreload.js.map +1 -1
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/input-group/InputGroup/InputGroup.d.ts +1 -1
- package/dist/components/input-group/InputGroup/InputGroup.js.map +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.d.ts +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js.map +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.styles.js.map +1 -1
- package/dist/components/input-group/InputGroupButton/InputGroupButton.d.ts +1 -1
- package/dist/components/input-group/InputGroupButton/InputGroupButton.js.map +1 -1
- package/dist/components/input-group/InputGroupButton/InputGroupButton.styles.js.map +1 -1
- package/dist/components/input-group/InputGroupInput/InputGroupInput.d.ts +1 -1
- package/dist/components/input-group/InputGroupInput/InputGroupInput.js.map +1 -1
- package/dist/components/input-group/InputGroupText/InputGroupText.d.ts +1 -1
- package/dist/components/input-group/InputGroupText/InputGroupText.js.map +1 -1
- package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.d.ts +1 -1
- package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js.map +1 -1
- package/dist/components/item/Item/Item.d.ts +1 -1
- package/dist/components/item/Item/Item.js.map +1 -1
- package/dist/components/item/Item/Item.styles.js.map +1 -1
- package/dist/components/item/ItemActions/ItemActions.d.ts +1 -1
- package/dist/components/item/ItemActions/ItemActions.js.map +1 -1
- package/dist/components/item/ItemContent/ItemContent.d.ts +1 -1
- package/dist/components/item/ItemContent/ItemContent.js.map +1 -1
- package/dist/components/item/ItemDescription/ItemDescription.d.ts +1 -1
- package/dist/components/item/ItemDescription/ItemDescription.js.map +1 -1
- package/dist/components/item/ItemFooter/ItemFooter.d.ts +1 -1
- package/dist/components/item/ItemFooter/ItemFooter.js.map +1 -1
- package/dist/components/item/ItemGroup/ItemGroup.d.ts +1 -1
- package/dist/components/item/ItemGroup/ItemGroup.js.map +1 -1
- package/dist/components/item/ItemHeader/ItemHeader.d.ts +1 -1
- package/dist/components/item/ItemHeader/ItemHeader.js.map +1 -1
- package/dist/components/item/ItemMedia/ItemMedia.d.ts +1 -1
- package/dist/components/item/ItemMedia/ItemMedia.js.map +1 -1
- package/dist/components/item/ItemMedia/ItemMedia.styles.js.map +1 -1
- package/dist/components/item/ItemSeparator/ItemSeparator.d.ts +1 -1
- package/dist/components/item/ItemSeparator/ItemSeparator.js.map +1 -1
- package/dist/components/item/ItemTitle/ItemTitle.d.ts +1 -1
- package/dist/components/item/ItemTitle/ItemTitle.js.map +1 -1
- package/dist/components/kbd/Kbd.d.ts +2 -2
- package/dist/components/kbd/Kbd.js.map +1 -1
- package/dist/components/label/Label.d.ts +1 -1
- 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.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.types.d.ts +92 -0
- package/dist/components/message-scroller/message-scroller.utils.d.ts +7 -0
- package/dist/components/message-scroller/message-scroller.utils.js +9 -0
- package/dist/components/message-scroller/message-scroller.utils.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 +375 -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.d.ts +19 -0
- package/dist/components/number-input/NumberInput/NumberInput.js +153 -0
- package/dist/components/number-input/NumberInput/NumberInput.js.map +1 -0
- package/dist/components/number-input/NumberInput/NumberInput.types.d.ts +41 -0
- package/dist/components/number-input/NumberInput/NumberInput.utils.d.ts +10 -0
- package/dist/components/number-input/NumberInput/NumberInput.utils.js +24 -0
- package/dist/components/number-input/NumberInput/NumberInput.utils.js.map +1 -0
- package/dist/components/number-input/NumberInput/create-change-event-details.d.ts +8 -0
- package/dist/components/number-input/NumberInput/create-change-event-details.js +25 -0
- package/dist/components/number-input/NumberInput/create-change-event-details.js.map +1 -0
- package/dist/components/number-input/NumberInput/index.d.ts +2 -0
- package/dist/components/number-input/index.d.ts +2 -0
- package/dist/components/number-input/index.js +2 -0
- package/dist/components/pagination/Pagination/Pagination.d.ts +1 -1
- package/dist/components/pagination/Pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/PaginationContent/PaginationContent.d.ts +1 -1
- package/dist/components/pagination/PaginationContent/PaginationContent.js.map +1 -1
- package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.d.ts +1 -1
- package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js.map +1 -1
- package/dist/components/pagination/PaginationItem/PaginationItem.d.ts +1 -1
- package/dist/components/pagination/PaginationItem/PaginationItem.js.map +1 -1
- package/dist/components/pagination/PaginationLink/PaginationLink.d.ts +1 -1
- package/dist/components/pagination/PaginationLink/PaginationLink.js +1 -1
- package/dist/components/pagination/PaginationLink/PaginationLink.js.map +1 -1
- package/dist/components/pagination/PaginationNext/PaginationNext.d.ts +1 -1
- package/dist/components/pagination/PaginationNext/PaginationNext.js.map +1 -1
- package/dist/components/pagination/PaginationPrevious/PaginationPrevious.d.ts +1 -1
- package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js.map +1 -1
- package/dist/components/popover/Popover/Popover.context.js.map +1 -1
- package/dist/components/popover/Popover/Popover.js +25 -22
- package/dist/components/popover/Popover/Popover.js.map +1 -1
- package/dist/components/popover/Popover/Popover.types.d.ts +5 -0
- package/dist/components/popover/PopoverContent/PopoverContent.d.ts +1 -1
- 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/popover/PopoverContent/usePopoverContent.js.map +1 -1
- package/dist/components/popover/PopoverDescription/PopoverDescription.d.ts +1 -1
- package/dist/components/popover/PopoverDescription/PopoverDescription.js.map +1 -1
- package/dist/components/popover/PopoverHeader/PopoverHeader.d.ts +1 -1
- package/dist/components/popover/PopoverHeader/PopoverHeader.js.map +1 -1
- package/dist/components/popover/PopoverTitle/PopoverTitle.d.ts +1 -1
- package/dist/components/popover/PopoverTitle/PopoverTitle.js.map +1 -1
- package/dist/components/popover/PopoverTrigger/PopoverTrigger.d.ts +1 -1
- package/dist/components/popover/PopoverTrigger/PopoverTrigger.js.map +1 -1
- package/dist/components/popover/PopoverTrigger/usePopoverTrigger.js.map +1 -1
- package/dist/components/progress/Progress/Progress.context.js.map +1 -1
- package/dist/components/progress/Progress/Progress.d.ts +1 -1
- package/dist/components/progress/Progress/Progress.js.map +1 -1
- package/dist/components/progress/Progress/Progress.styles.js.map +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.d.ts +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.js.map +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.styles.js.map +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.d.ts +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.js.map +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.styles.js.map +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.d.ts +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.js.map +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.styles.js.map +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.d.ts +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.js.map +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.styles.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/useQuestionnaireChoice.d.ts +38 -0
- package/dist/components/questionnaire/QuestionnaireChoice/useQuestionnaireChoice.js +67 -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 +58 -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 +89 -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.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.types.d.ts +82 -0
- package/dist/components/questionnaire/questionnaire.utils.d.ts +24 -0
- package/dist/components/questionnaire/questionnaire.utils.js +38 -0
- package/dist/components/questionnaire/questionnaire.utils.js.map +1 -0
- package/dist/components/questionnaire/useQuestionnaireItem.d.ts +34 -0
- package/dist/components/questionnaire/useQuestionnaireItem.js +141 -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 +144 -0
- package/dist/components/questionnaire/useQuestionnaireRoot.js.map +1 -0
- package/dist/components/radio-group/RadioGroup/RadioGroup.context.js.map +1 -1
- package/dist/components/radio-group/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.d.ts +1 -1
- 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/useResizableHandle.d.ts +17 -0
- package/dist/components/resizable/ResizableHandle/useResizableHandle.js +72 -0
- package/dist/components/resizable/ResizableHandle/useResizableHandle.js.map +1 -0
- package/dist/components/resizable/ResizablePanel/ResizablePanel.d.ts +6 -0
- package/dist/components/resizable/ResizablePanel/ResizablePanel.js +91 -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/ResizablePanelGroup/ResizablePanelGroup.d.ts +6 -0
- package/dist/components/resizable/ResizablePanelGroup/ResizablePanelGroup.js +66 -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/index.d.ts +4 -0
- package/dist/components/resizable/index.js +4 -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.types.d.ts +76 -0
- package/dist/components/resizable/resizable.utils.d.ts +16 -0
- package/dist/components/resizable/resizable.utils.js +45 -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 +176 -0
- package/dist/components/resizable/useResizablePanelGroup.js.map +1 -0
- package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.d.ts +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js.map +1 -1
- package/dist/components/scroll-area/ScrollBar/ScrollBar.d.ts +1 -1
- package/dist/components/scroll-area/ScrollBar/ScrollBar.js.map +1 -1
- package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +12 -0
- package/dist/components/scroll-arrows/ScrollArrowButton.js +60 -0
- package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -0
- package/dist/components/scroll-arrows/ScrollArrows.d.ts +11 -0
- package/dist/components/scroll-arrows/ScrollArrows.js +41 -0
- package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -0
- package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +24 -0
- package/dist/components/scroll-arrows/index.d.ts +2 -0
- package/dist/components/scroll-arrows/index.js +2 -0
- package/dist/components/select/Select/Select.context.js.map +1 -1
- package/dist/components/select/Select/Select.js +36 -33
- package/dist/components/select/Select/Select.js.map +1 -1
- package/dist/components/select/Select/Select.types.d.ts +5 -0
- package/dist/components/select/SelectContent/SelectContent.d.ts +1 -1
- package/dist/components/select/SelectContent/SelectContent.js +45 -40
- package/dist/components/select/SelectContent/SelectContent.js.map +1 -1
- package/dist/components/select/SelectContent/SelectContent.utils.js.map +1 -1
- package/dist/components/select/SelectContent/useSelectContent.js.map +1 -1
- package/dist/components/select/SelectGroup/SelectGroup.d.ts +1 -1
- package/dist/components/select/SelectGroup/SelectGroup.js.map +1 -1
- package/dist/components/select/SelectItem/SelectItem.d.ts +1 -1
- package/dist/components/select/SelectItem/SelectItem.js.map +1 -1
- package/dist/components/select/SelectItem/useSelectItem.js.map +1 -1
- package/dist/components/select/SelectLabel/SelectLabel.d.ts +1 -1
- package/dist/components/select/SelectLabel/SelectLabel.js.map +1 -1
- package/dist/components/select/SelectSeparator/SelectSeparator.d.ts +1 -1
- package/dist/components/select/SelectSeparator/SelectSeparator.js.map +1 -1
- package/dist/components/select/SelectTrigger/SelectTrigger.d.ts +1 -1
- package/dist/components/select/SelectTrigger/SelectTrigger.js.map +1 -1
- package/dist/components/select/SelectTrigger/useSelectTrigger.js.map +1 -1
- package/dist/components/select/SelectValue/SelectValue.d.ts +1 -1
- package/dist/components/select/SelectValue/SelectValue.js.map +1 -1
- package/dist/components/separator/Separator.d.ts +1 -1
- package/dist/components/separator/Separator.js.map +1 -1
- package/dist/components/separator/Separator.styles.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 +39 -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.d.ts +1 -1
- package/dist/components/sidebar/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/sidebar/SidebarContent/SidebarContent.d.ts +1 -1
- package/dist/components/sidebar/SidebarContent/SidebarContent.js.map +1 -1
- package/dist/components/sidebar/SidebarFooter/SidebarFooter.d.ts +1 -1
- package/dist/components/sidebar/SidebarFooter/SidebarFooter.js.map +1 -1
- package/dist/components/sidebar/SidebarGroup/SidebarGroup.d.ts +1 -1
- package/dist/components/sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.d.ts +1 -1
- package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.d.ts +1 -1
- package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.d.ts +1 -1
- package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js.map +1 -1
- package/dist/components/sidebar/SidebarHeader/SidebarHeader.d.ts +1 -1
- package/dist/components/sidebar/SidebarHeader/SidebarHeader.js.map +1 -1
- package/dist/components/sidebar/SidebarInput/SidebarInput.d.ts +1 -1
- package/dist/components/sidebar/SidebarInput/SidebarInput.js.map +1 -1
- package/dist/components/sidebar/SidebarInset/SidebarInset.d.ts +1 -1
- package/dist/components/sidebar/SidebarInset/SidebarInset.js.map +1 -1
- package/dist/components/sidebar/SidebarMenu/SidebarMenu.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenu/SidebarMenu.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.styles.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.consts.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.d.ts +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.js.map +1 -1
- package/dist/components/sidebar/SidebarRail/SidebarRail.d.ts +1 -1
- package/dist/components/sidebar/SidebarRail/SidebarRail.js.map +1 -1
- package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.d.ts +1 -1
- package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js.map +1 -1
- package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.d.ts +1 -1
- package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js.map +1 -1
- package/dist/components/skeleton/Skeleton.d.ts +1 -1
- package/dist/components/skeleton/Skeleton.js.map +1 -1
- package/dist/components/slider/Slider/Slider.context.js.map +1 -1
- package/dist/components/slider/Slider/Slider.d.ts +1 -1
- package/dist/components/slider/Slider/Slider.js.map +1 -1
- package/dist/components/slider/Slider/Slider.styles.js.map +1 -1
- package/dist/components/slider/Slider/useSlider.js.map +1 -1
- package/dist/components/slider/SliderControl/SliderControl.d.ts +1 -1
- package/dist/components/slider/SliderControl/SliderControl.js.map +1 -1
- package/dist/components/slider/SliderControl/SliderControl.styles.js.map +1 -1
- package/dist/components/slider/SliderControl/useSliderControl.js.map +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.d.ts +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.js.map +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.styles.js.map +1 -1
- package/dist/components/slider/SliderIndicator/useSliderIndicator.js.map +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.d.ts +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.styles.js.map +1 -1
- package/dist/components/slider/SliderThumb/useSliderThumb.js.map +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.d.ts +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.js.map +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.styles.js.map +1 -1
- package/dist/components/spinner/Spinner.d.ts +1 -1
- package/dist/components/spinner/Spinner.js.map +1 -1
- package/dist/components/spinner/Spinner.styles.js.map +1 -1
- package/dist/components/switch/Switch.d.ts +1 -1
- package/dist/components/switch/Switch.js.map +1 -1
- package/dist/components/switch/Switch.styles.js.map +1 -1
- package/dist/components/table/Table/Table.d.ts +3 -0
- package/dist/components/table/Table/Table.js +24 -0
- package/dist/components/table/Table/Table.js.map +1 -0
- package/dist/components/table/Table/Table.types.d.ts +2 -0
- package/dist/components/table/Table/index.d.ts +2 -0
- package/dist/components/table/TableBody/TableBody.d.ts +2 -0
- package/dist/components/table/TableBody/TableBody.js +24 -0
- package/dist/components/table/TableBody/TableBody.js.map +1 -0
- package/dist/components/table/TableBody/TableBody.types.d.ts +2 -0
- package/dist/components/table/TableBody/index.d.ts +2 -0
- package/dist/components/table/TableCaption/TableCaption.d.ts +2 -0
- package/dist/components/table/TableCaption/TableCaption.js +24 -0
- package/dist/components/table/TableCaption/TableCaption.js.map +1 -0
- package/dist/components/table/TableCaption/TableCaption.types.d.ts +2 -0
- package/dist/components/table/TableCaption/index.d.ts +2 -0
- package/dist/components/table/TableCell/TableCell.d.ts +2 -0
- package/dist/components/table/TableCell/TableCell.js +24 -0
- package/dist/components/table/TableCell/TableCell.js.map +1 -0
- package/dist/components/table/TableCell/TableCell.types.d.ts +2 -0
- package/dist/components/table/TableCell/index.d.ts +2 -0
- package/dist/components/table/TableFooter/TableFooter.d.ts +2 -0
- package/dist/components/table/TableFooter/TableFooter.js +24 -0
- package/dist/components/table/TableFooter/TableFooter.js.map +1 -0
- package/dist/components/table/TableFooter/TableFooter.types.d.ts +2 -0
- package/dist/components/table/TableFooter/index.d.ts +2 -0
- package/dist/components/table/TableHead/TableHead.d.ts +2 -0
- package/dist/components/table/TableHead/TableHead.js +24 -0
- package/dist/components/table/TableHead/TableHead.js.map +1 -0
- package/dist/components/table/TableHead/TableHead.types.d.ts +2 -0
- package/dist/components/table/TableHead/index.d.ts +2 -0
- package/dist/components/table/TableHeader/TableHeader.d.ts +2 -0
- package/dist/components/table/TableHeader/TableHeader.js +24 -0
- package/dist/components/table/TableHeader/TableHeader.js.map +1 -0
- package/dist/components/table/TableHeader/TableHeader.types.d.ts +2 -0
- package/dist/components/table/TableHeader/index.d.ts +2 -0
- package/dist/components/table/TableRow/TableRow.d.ts +2 -0
- package/dist/components/table/TableRow/TableRow.js +24 -0
- package/dist/components/table/TableRow/TableRow.js.map +1 -0
- package/dist/components/table/TableRow/TableRow.types.d.ts +2 -0
- package/dist/components/table/TableRow/index.d.ts +2 -0
- package/dist/components/table/index.d.ts +16 -0
- package/dist/components/table/index.js +9 -0
- package/dist/components/tabs/Tabs/Tabs.context.d.ts +1 -1
- package/dist/components/tabs/Tabs/Tabs.context.js.map +1 -1
- package/dist/components/tabs/Tabs/Tabs.d.ts +1 -1
- package/dist/components/tabs/Tabs/Tabs.js.map +1 -1
- package/dist/components/tabs/Tabs/call-event-handler.js.map +1 -1
- package/dist/components/tabs/Tabs/useTabsKeyboard.js.map +1 -1
- package/dist/components/tabs/TabsContent/TabsContent.js.map +1 -1
- package/dist/components/tabs/TabsList/TabsList.context.js.map +1 -1
- package/dist/components/tabs/TabsList/TabsList.d.ts +1 -1
- package/dist/components/tabs/TabsList/TabsList.js.map +1 -1
- package/dist/components/tabs/TabsList/TabsList.styles.js.map +1 -1
- package/dist/components/tabs/TabsTrigger/TabsTrigger.d.ts +1 -1
- package/dist/components/tabs/TabsTrigger/TabsTrigger.js.map +1 -1
- package/dist/components/tabs/TabsTrigger/TabsTrigger.styles.js.map +1 -1
- package/dist/components/textarea/Textarea.d.ts +1 -1
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/time-picker/TimePicker/TimePicker.context.d.ts +29 -0
- package/dist/components/time-picker/TimePicker/TimePicker.context.js +49 -0
- package/dist/components/time-picker/TimePicker/TimePicker.context.js.map +1 -0
- package/dist/components/time-picker/TimePicker/TimePicker.d.ts +23 -0
- package/dist/components/time-picker/TimePicker/TimePicker.js +52 -0
- package/dist/components/time-picker/TimePicker/TimePicker.js.map +1 -0
- package/dist/components/time-picker/TimePicker/TimePicker.types.d.ts +91 -0
- package/dist/components/time-picker/TimePicker/create-change-event-details.d.ts +8 -0
- package/dist/components/time-picker/TimePicker/create-change-event-details.js +25 -0
- package/dist/components/time-picker/TimePicker/create-change-event-details.js.map +1 -0
- package/dist/components/time-picker/TimePicker/index.d.ts +4 -0
- package/dist/components/time-picker/TimePicker/time-picker.utils.d.ts +28 -0
- package/dist/components/time-picker/TimePicker/time-picker.utils.js +103 -0
- package/dist/components/time-picker/TimePicker/time-picker.utils.js.map +1 -0
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.d.ts +10 -0
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js +60 -0
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js.map +1 -0
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.types.d.ts +8 -0
- package/dist/components/time-picker/TimePickerColumn/index.d.ts +2 -0
- package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.d.ts +16 -0
- package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js +75 -0
- package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js.map +1 -0
- package/dist/components/time-picker/TimePickerContent/TimePickerContent.d.ts +7 -0
- package/dist/components/time-picker/TimePickerContent/TimePickerContent.js +48 -0
- package/dist/components/time-picker/TimePickerContent/TimePickerContent.js.map +1 -0
- package/dist/components/time-picker/TimePickerContent/TimePickerContent.types.d.ts +11 -0
- package/dist/components/time-picker/TimePickerContent/index.d.ts +2 -0
- package/dist/components/time-picker/TimePickerOption/TimePickerOption.d.ts +9 -0
- package/dist/components/time-picker/TimePickerOption/TimePickerOption.js +52 -0
- package/dist/components/time-picker/TimePickerOption/TimePickerOption.js.map +1 -0
- package/dist/components/time-picker/TimePickerOption/TimePickerOption.types.d.ts +11 -0
- package/dist/components/time-picker/TimePickerOption/index.d.ts +2 -0
- package/dist/components/time-picker/TimePickerTrigger/TimePickerTrigger.d.ts +9 -0
- package/dist/components/time-picker/TimePickerTrigger/TimePickerTrigger.js +37 -0
- package/dist/components/time-picker/TimePickerTrigger/TimePickerTrigger.js.map +1 -0
- package/dist/components/time-picker/TimePickerTrigger/TimePickerTrigger.types.d.ts +5 -0
- package/dist/components/time-picker/TimePickerTrigger/index.d.ts +2 -0
- package/dist/components/time-picker/index.d.ts +10 -0
- package/dist/components/time-picker/index.js +7 -0
- package/dist/components/toast/Toast/Toast.js.map +1 -1
- package/dist/components/toast/Toast/Toast.styles.js.map +1 -1
- package/dist/components/toast/Toast/Toast.types.js.map +1 -1
- package/dist/components/toast/Toaster/Toaster.js.map +1 -1
- package/dist/components/toast/Toaster/Toaster.styles.js.map +1 -1
- package/dist/components/toast/Toaster/Toaster.utils.js.map +1 -1
- package/dist/components/toast/state/toast.js.map +1 -1
- package/dist/components/toggle/Toggle/Toggle.js.map +1 -1
- package/dist/components/toggle/Toggle/Toggle.styles.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.styles.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.js.map +1 -1
- package/dist/components/toggle-group/call-event-handler.js.map +1 -1
- package/dist/components/tooltip/Tooltip/Tooltip.context.js.map +1 -1
- package/dist/components/tooltip/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.d.ts +1 -1
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.context.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.d.ts +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.js +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.js.map +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/useTooltipContent.js +6 -5
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.context.js.map +1 -1
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.d.ts +1 -1
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.js.map +1 -1
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.context.js.map +1 -1
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.js.map +1 -1
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.d.ts +1 -1
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.js.map +1 -1
- package/dist/components/tooltip/TooltipTrigger/useTooltipTrigger.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +3 -1
- package/dist/hooks/useFontLoader.js.map +1 -1
- package/dist/hooks/useScrollEdges.d.ts +19 -0
- package/dist/hooks/useScrollEdges.js +36 -0
- package/dist/hooks/useScrollEdges.js.map +1 -0
- package/dist/hooks/useScrollLock.d.ts +16 -0
- package/dist/hooks/useScrollLock.js +61 -0
- package/dist/hooks/useScrollLock.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +311 -194
- package/dist/lib/positioner/auto-update.js.map +1 -1
- package/dist/lib/positioner/core/compute-position.js.map +1 -1
- package/dist/lib/positioner/core/placement.js.map +1 -1
- package/dist/lib/positioner/create-positioner.js.map +1 -1
- package/dist/lib/positioner/index.d.ts +1 -0
- package/dist/lib/positioner/middleware/arrow.js.map +1 -1
- package/dist/lib/positioner/middleware/containing-block-offset.js.map +1 -1
- package/dist/lib/positioner/middleware/flip.js.map +1 -1
- package/dist/lib/positioner/middleware/hide.js.map +1 -1
- package/dist/lib/positioner/middleware/offset.js.map +1 -1
- package/dist/lib/positioner/middleware/shift.js.map +1 -1
- package/dist/lib/positioner/middleware/size.js.map +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/lib/positioner/virtual-element.js +18 -0
- package/dist/lib/positioner/virtual-element.js.map +1 -0
- package/dist/ui.css +1 -1
- package/dist/utils/clsx.js.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/ref.js.map +1 -1
- package/dist/utils/warn-once.js.map +1 -1
- package/package.json +6 -6
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.context.d.ts +0 -10
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.context.js +0 -11
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.context.js.map +0 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.context.d.ts +0 -8
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.context.js +0 -11
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.context.js.map +0 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.d.ts +0 -2
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.js +0 -6
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.js.map +0 -1
- package/dist/components/alert-dialog/AlertDialogTrigger/useAlertDialogTrigger.d.ts +0 -2
- package/dist/components/alert-dialog/AlertDialogTrigger/useAlertDialogTrigger.js +0 -26
- package/dist/components/alert-dialog/AlertDialogTrigger/useAlertDialogTrigger.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipArrow.js","names":["createMemo","getAlignment","getSide","clsx","useTooltipContentContext","TooltipArrowProps","class","TooltipArrow","props","ctx","side","placement","align","triggerWidth","reference","getBoundingClientRect","width","_el$","_tmpl$","_ref$","setArrowElement","_$use","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","_$setAttribute","t","a","_$setStyleProperty","o","_$className","undefined"],"sources":["../../../../src/components/tooltip/TooltipArrow/TooltipArrow.tsx"],"sourcesContent":["import { createMemo } from \"solid-js\";\nimport { getAlignment, getSide } from \"~/lib\";\nimport { clsx } from \"~/utils\";\nimport { useTooltipContentContext } from \"../TooltipContent/TooltipContent.context\";\n\nexport interface TooltipArrowProps {\n class?: string;\n}\n\n/**\n * 箭头组件,必须渲染在 <TooltipContent> 内部。\n * 采用 shadcn Base UI 的定位方式:通过 data-side / data-align 和 CSS 变量\n * 完成贴边与对齐,不手动计算 top/left。\n */\nexport function TooltipArrow(props: TooltipArrowProps) {\n const ctx = useTooltipContentContext(\"TooltipArrow\");\n\n const side = createMemo(() => getSide(ctx.placement()));\n const align = createMemo(() => getAlignment(ctx.placement()) ?? \"center\");\n\n const triggerWidth = () =>\n ctx.reference?.()?.getBoundingClientRect().width ?? 0;\n\n return (\n <div\n ref={ctx.setArrowElement}\n data-side={side()}\n data-align={align()}\n style={{ \"--arrow-offset\": `${triggerWidth() / 2}px` }}\n class={clsx(\n \"absolute size-2.5 z-50 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground\",\n \"data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2\",\n \"data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2\",\n \"data-[side=left]:top-1/2! data-[side=left]:right-[-0.175rem] data-[side=left]:-translate-y-1/2\",\n \"data-[side=right]:top-1/2! data-[side=right]:left-[-0.175rem] data-[side=right]:-translate-y-1/2\",\n \"data-[side=top]:-bottom-2.5 data-[side=top]:data-[align=center]:left-1/2 data-[side=top]:data-[align=center]:-translate-x-1/2 data-[side=top]:data-[align=start]:left-(--arrow-offset) data-[side=top]:data-[align=start]:-translate-x-1/2 data-[side=top]:data-[align=end]:right-(--arrow-offset) data-[side=top]:data-[align=end]:translate-x-1/2\",\n \"data-[side=bottom]:top-1 data-[side=bottom]:data-[align=center]:left-1/2 data-[side=bottom]:data-[align=center]:-translate-x-1/2 data-[side=bottom]:data-[align=start]:left-(--arrow-offset) data-[side=bottom]:data-[align=start]:-translate-x-1/2 data-[side=bottom]:data-[align=end]:right-(--arrow-offset) data-[side=bottom]:data-[align=end]:translate-x-1/2\",\n props.class,\n )}\n aria-hidden=\"true\"\n />\n );\n}\n"],"mappings":";;;;;;;AAcA,SAAgBO,EAAaC,GAA0B;CACrD,IAAMC,IAAML,EAAyB,cAAc,GAE7CM,IAAOV,QAAiBE,EAAQO,EAAIE,UAAU,CAAC,CAAC,GAChDC,IAAQZ,QAAiBC,EAAaQ,EAAIE,UAAU,CAAC,KAAK,QAAQ,GAElEE,UACJJ,EAAIK,YAAY,CAAC,EAAEC,sBAAsB,CAAC,CAACC,SAAS;CAEtD,cAAA;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAESV,EAAIW;EAaR,OAbuB,OAAAD,KAAA,aAAAE,EAAAF,GAAAF,CAAA,IAAnBR,EAAIW,kBAAeH,GAAAK,GAAAC,MAAA;GAAA,IAAAC,IACbd,EAAK,GAACe,IACLb,EAAM,GAACc,IACQ,GAAGb,EAAa,IAAI,EAAC,KAAIc,IAC7CxB,EACL,0GACA,0GACA,iHACA,kGACA,oGACA,uVACA,sWACAK,EAAMF,KACR;GAAC,OAAAkB,MAAAD,EAAAK,KAAAC,EAAAZ,GAAA,aAAAM,EAAAK,IAAAJ,CAAA,GAAAC,MAAAF,EAAAO,KAAAD,EAAAZ,GAAA,cAAAM,EAAAO,IAAAL,CAAA,GAAAC,MAAAH,EAAAQ,KAAAC,EAAAf,GAAA,kBAAAM,EAAAQ,IAAAL,CAAA,GAAAC,MAAAJ,EAAAU,KAAAC,EAAAjB,GAAAM,EAAAU,IAAAN,CAAA,GAAAJ;EAAA,GAAA;GAAAK,GAAAO,KAAAA;GAAAL,GAAAK,KAAAA;GAAAJ,GAAAI,KAAAA;GAAAF,GAAAE,KAAAA;EAAA,CAAA,GAAAlB;CAAA,EAAA,CAAA;AAIP"}
|
|
1
|
+
{"version":3,"file":"TooltipArrow.js","names":["createMemo","getAlignment","getSide","clsx","useTooltipContentContext","TooltipArrowProps","class","TooltipArrow","props","ctx","side","placement","align","triggerWidth","reference","getBoundingClientRect","width","_el$","_tmpl$","_ref$","setArrowElement","_$use","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","_$setAttribute","t","a","_$setStyleProperty","o","_$className","undefined","_$use","_$setAttribute","_$setStyleProperty","_$className","_tmpl$","TooltipArrow","ctx","useTooltipContentContext","side","createMemo","getSide","align","getAlignment","triggerWidth","_el$","_ref$","use","effect","_v$","_v$2","_v$3","_v$4","clsx","props","_p$","setAttribute","setStyleProperty","className"],"sources":["../../../../src/components/tooltip/TooltipArrow/TooltipArrow.tsx"],"sourcesContent":["import { createMemo } from \"solid-js\";\nimport { getAlignment, getSide } from \"~/lib\";\nimport { clsx } from \"~/utils\";\nimport { useTooltipContentContext } from \"../TooltipContent/TooltipContent.context\";\n\nexport interface TooltipArrowProps {\n class?: string;\n}\n\n/**\n * 箭头组件,必须渲染在 <TooltipContent> 内部。\n * 采用 shadcn Base UI 的定位方式:通过 data-side / data-align 和 CSS 变量\n * 完成贴边与对齐,不手动计算 top/left。\n */\nexport function TooltipArrow(props: TooltipArrowProps) {\n const ctx = useTooltipContentContext(\"TooltipArrow\");\n\n const side = createMemo(() => getSide(ctx.placement()));\n const align = createMemo(() => getAlignment(ctx.placement()) ?? \"center\");\n\n const triggerWidth = () =>\n ctx.reference?.()?.getBoundingClientRect().width ?? 0;\n\n return (\n <div\n ref={ctx.setArrowElement}\n data-side={side()}\n data-align={align()}\n style={{ \"--arrow-offset\": `${triggerWidth() / 2}px` }}\n class={clsx(\n \"absolute size-2.5 z-50 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground\",\n \"data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2\",\n \"data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2\",\n \"data-[side=left]:top-1/2! data-[side=left]:right-[-0.175rem] data-[side=left]:-translate-y-1/2\",\n \"data-[side=right]:top-1/2! data-[side=right]:left-[-0.175rem] data-[side=right]:-translate-y-1/2\",\n \"data-[side=top]:-bottom-2.5 data-[side=top]:data-[align=center]:left-1/2 data-[side=top]:data-[align=center]:-translate-x-1/2 data-[side=top]:data-[align=start]:left-(--arrow-offset) data-[side=top]:data-[align=start]:-translate-x-1/2 data-[side=top]:data-[align=end]:right-(--arrow-offset) data-[side=top]:data-[align=end]:translate-x-1/2\",\n \"data-[side=bottom]:top-1 data-[side=bottom]:data-[align=center]:left-1/2 data-[side=bottom]:data-[align=center]:-translate-x-1/2 data-[side=bottom]:data-[align=start]:left-(--arrow-offset) data-[side=bottom]:data-[align=start]:-translate-x-1/2 data-[side=bottom]:data-[align=end]:right-(--arrow-offset) data-[side=bottom]:data-[align=end]:translate-x-1/2\",\n props.class,\n )}\n aria-hidden=\"true\"\n />\n );\n}\n"],"mappings":";;;;;;;AAcA,SAAgBO,EAAaC,GAA0B;CACrD,IAAMC,IAAML,EAAyB,cAAc,GAE7CM,IAAOV,QAAiBE,EAAQO,EAAIE,UAAU,CAAC,CAAC,GAChDC,IAAQZ,QAAiBC,EAAaQ,EAAIE,UAAU,CAAC,KAAK,QAAQ,GAElEE,UACJJ,EAAIK,YAAY,CAAC,EAAEC,sBAAsB,CAAC,CAACC,SAAS;CAEtD,cAAA;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAESV,EAAIW;EAaR,OAbuB,OAAAD,KAAA,aAAAE,EAAAF,GAAAF,CAAA,IAAnBR,EAAIW,kBAAeH,GAAAK,GAAAC,MAAA;GAAA,IAAAC,IACbd,EAAK,GAACe,IACLb,EAAM,GAACc,IACQ,GAAGb,EAAa,IAAI,EAAC,KAAIc,IAC7CxB,EACL,0GACA,0GACA,iHACA,kGACA,oGACA,uVACA,sWACAK,EAAMF,KACR;GAAC,OAAAkB,MAAAD,EAAAK,KAAAC,EAAAZ,GAAA,aAAAM,EAAAK,IAAAJ,CAAA,GAAAC,MAAAF,EAAAO,KAAAD,EAAAZ,GAAA,cAAAM,EAAAO,IAAAL,CAAA,GAAAC,MAAAH,EAAAQ,KAAAC,EAAAf,GAAA,kBAAAM,EAAAQ,IAAAL,CAAA,GAAAC,MAAAJ,EAAAU,KAAAC,EAAAjB,GAAAM,EAAAU,IAAAN,CAAA,GAAAJ;EAAA,GAAA;GAAAK,GAAAO,KAAAA;GAAAL,GAAAK,KAAAA;GAAAJ,GAAAI,KAAAA;GAAAF,GAAAE,KAAAA;EAAA,CAAA,GAAAlB;CAAA,EAAA,CAAA;AAIP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.context.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type { MiddlewareData, Placement } from \"~/lib\";\n\nexport interface TooltipContentContextValue {\n /** createPositioner 产出的 middlewareData,TooltipArrow 从里面取 arrow 中间件算好的偏移量 */\n middlewareData: Accessor<MiddlewareData>;\n /** 触发器元素访问器,TooltipArrow 用它计算 --arrow-offset */\n reference: Accessor<Element | undefined>;\n /** 经过 flip 调整后的最终 placement,决定箭头贴哪条边、朝哪个方向 */\n placement: Accessor<Placement>;\n /** TooltipArrow 挂载时用来把自己的 DOM 节点注册给 arrow middleware(Element 而不是 HTMLElement,兼容 SVG 箭头) */\n setArrowElement: (el: Element) => void;\n /**\n * 驱动进出场动画的状态,和 TooltipContent 内层元素的 data-state 用的是\n * 同一个信号——TooltipArrow 应该用它独立播放自己的一份动画,而不是依赖\n * \"作为内层元素的子节点、被动继承内层的 transform/opacity 动画\"这种隐式\n * 机制(内层的 zoom-in-95 动画会给它加一个非 none 的 transform,CSS 规范\n * 规定这会让内层变成子元素新的\"包含块\",和箭头故意跳过内层、以外层为\n * 基准的设计相冲突,动画播放期间会让\"父子两层谁负责什么\"变得不可靠)。\n */\n animationState: Accessor<\"open\" | \"closed\">;\n}\n\nexport const TooltipContentContext =\n createContext<TooltipContentContextValue>();\n\nexport function useTooltipContentContext(\n component: string,\n): TooltipContentContextValue {\n const ctx = useContext(TooltipContentContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <TooltipContent> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAuBA,
|
|
1
|
+
{"version":3,"file":"TooltipContent.context.js","names":["TooltipContentContext","createContext","useTooltipContentContext","ctx","useContext","component"],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type { MiddlewareData, Placement } from \"~/lib\";\n\nexport interface TooltipContentContextValue {\n /** createPositioner 产出的 middlewareData,TooltipArrow 从里面取 arrow 中间件算好的偏移量 */\n middlewareData: Accessor<MiddlewareData>;\n /** 触发器元素访问器,TooltipArrow 用它计算 --arrow-offset */\n reference: Accessor<Element | undefined>;\n /** 经过 flip 调整后的最终 placement,决定箭头贴哪条边、朝哪个方向 */\n placement: Accessor<Placement>;\n /** TooltipArrow 挂载时用来把自己的 DOM 节点注册给 arrow middleware(Element 而不是 HTMLElement,兼容 SVG 箭头) */\n setArrowElement: (el: Element) => void;\n /**\n * 驱动进出场动画的状态,和 TooltipContent 内层元素的 data-state 用的是\n * 同一个信号——TooltipArrow 应该用它独立播放自己的一份动画,而不是依赖\n * \"作为内层元素的子节点、被动继承内层的 transform/opacity 动画\"这种隐式\n * 机制(内层的 zoom-in-95 动画会给它加一个非 none 的 transform,CSS 规范\n * 规定这会让内层变成子元素新的\"包含块\",和箭头故意跳过内层、以外层为\n * 基准的设计相冲突,动画播放期间会让\"父子两层谁负责什么\"变得不可靠)。\n */\n animationState: Accessor<\"open\" | \"closed\">;\n}\n\nexport const TooltipContentContext =\n createContext<TooltipContentContextValue>();\n\nexport function useTooltipContentContext(\n component: string,\n): TooltipContentContextValue {\n const ctx = useContext(TooltipContentContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <TooltipContent> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAuBA,IAAaA,IACXC,EAA0C;AAE5C,SAAgBC,EACd,GAC4B;CAC5B,IAAMC,IAAMC,EAAWJ,CAAqB;CAC5C,IAAI,CAACG,GACH,MAAU,MAAM,IAAIE,EAAU,4BAA4B;CAE5D,OAAOF;AACT"}
|
|
@@ -8,4 +8,4 @@ import { TooltipContentProps } from './TooltipContent.types';
|
|
|
8
8
|
* "离开 trigger 就关闭" 而选不到。如果你的 tooltip 内容很简单、不需要这个特性,
|
|
9
9
|
* 可以自己在外面包一层设置 pointer-events: none。
|
|
10
10
|
*/
|
|
11
|
-
export declare function TooltipContent(props: TooltipContentProps): import(
|
|
11
|
+
export declare function TooltipContent(props: TooltipContentProps): import('solid-js').JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
2
|
import { getAlignment as t, getSide as n } from "../../../lib/positioner/core/placement.js";
|
|
3
|
-
import { getTransformOrigin as r } from "
|
|
3
|
+
import { getTransformOrigin as r } from "../../../lib/positioner/utils/floating.js";
|
|
4
4
|
import { useTooltipContent as i } from "./useTooltipContent.js";
|
|
5
5
|
import { TooltipContentContext as a } from "./TooltipContent.context.js";
|
|
6
6
|
import { Portal as o, createComponent as s, effect as c, insert as l, mergeProps as u, setAttribute as d, spread as f, style as p, template as m, use as h } from "solid-js/web";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.js","names":["Show","onCleanup","splitProps","Portal","useTooltipContent","TooltipContentContext","getTransformOrigin","getSide","getAlignment","TooltipContentProps","clsx","TooltipContent","props","ctx","pos","mounted","animationState","setArrowElement","setContentElement","slideStyle","local","rest","_$createComponent","when","children","_el$","_tmpl$","_el$2","firstChild","_el$3","_$use","el","setFloating","undefined","_$spread","_$mergeProps","id","contentId","data-state","data-side","placement","data-align","onMouseEnter","keepOpen","onMouseLeave","requestClose","style","class","_$insert","Provider","value","middlewareData","reference","_$effect","_p$","_v$","_v$2","floatingStyles","opacity","isPositioned","_v$3","e","_$setAttribute","t","_$style","a"],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.tsx"],"sourcesContent":["import { Show, onCleanup, splitProps } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { useTooltipContent } from \"./useTooltipContent\";\nimport { TooltipContentContext } from \"./TooltipContent.context\";\nimport { getTransformOrigin } from \"./TooltipContent.utils\";\nimport { getSide, getAlignment } from \"~/lib\";\nimport type { TooltipContentProps } from \"./TooltipContent.types\";\nimport { clsx } from \"~/utils\";\n\n/**\n * Tooltip 的浮层内容。挂 Portal 到 body,用 position:fixed 定位。\n *\n * 内容本身默认是可以 hover 的(不是 pointer-events:none):鼠标移进 content\n * 会取消待执行的关闭计时器(ctx.keepOpen),移出才真正走 closeDelay 关闭——\n * 这样用户可以把鼠标从 trigger 移动到 tooltip 上选中里面的文字,不会因为\n * \"离开 trigger 就关闭\" 而选不到。如果你的 tooltip 内容很简单、不需要这个特性,\n * 可以自己在外面包一层设置 pointer-events: none。\n */\nexport function TooltipContent(props: TooltipContentProps) {\n const {\n ctx,\n pos,\n mounted,\n animationState,\n setArrowElement,\n setContentElement,\n slideStyle,\n } = useTooltipContent(() => props);\n\n // 只摘出内部要单独处理的几个字段,剩下的(style、data-*、onXxx 等任意原生\n // prop)原样透传给内层元素——和 TooltipTrigger 是同一套约定。\n const [local, rest] = splitProps(props, [\n \"side\",\n \"align\",\n \"sideOffset\",\n \"alignOffset\",\n \"collisionPadding\",\n \"class\",\n \"style\",\n \"children\",\n ]);\n\n return (\n <Show when={mounted()}>\n <Portal>\n {/*\n 外层:只负责定位(position:fixed 来自 floatingStyles),不设 overflow,\n 也不参与任何动画——它的 transform 已经被占用来做定位(translate(x,y)),\n 如果别的动画也要控制 transform 会互相冲突,所以动画都放在下面两层。\n */}\n <div\n ref={(el) => {\n ctx.setFloating(el);\n // Solid 的 ref 回调只在元素创建时触发一次,元素被移除时不会自动\n // 再调用一次传 undefined(这是 React 的约定,不是 Solid 的)。\n // 不手动清空的话,ctx.floating() 会一直指向一个已经从 DOM 里\n // 摘除的\"僵尸节点\",直到下次重新打开——期间如果被别处读取\n // (比如 TooltipGroup 抢占时读取矩形),getBoundingClientRect()\n // 对一个 detached 元素规范规定就是返回全 0 的矩形,会造成\n // \"滑动效果从左上角(0,0)滑入\"这种明显错误的观感。\n onCleanup(() => ctx.setFloating(undefined));\n }}\n data-placement={pos.placement()}\n style={{\n ...pos.floatingStyles(),\n \"z-index\": 1000,\n opacity: pos.isPositioned() ? 1 : 0,\n }}\n >\n {/*\n 滑动层:命中 <TooltipGroup> 抢占时,用来把整个 tooltip(内容+箭头)\n 从旧 tooltip 的位置平移过来(FLIP 技术,细节见 useTooltipContent 里\n 的 slideOffset 计算)。平时 slideStyle() 是空对象,这一层形同不存在。\n\n 这一层必须夹在\"定位层\"和\"样式/动画层\"之间、而不是随便找个地方加:\n 它自己也会用到 transform(滑动过程中),如果和定位层共用一个元素会\n 跟 translate(x,y) 冲突(原因同上);但它又不能在样式层(overflow:auto\n 那层)的下面/内部,因为箭头的 position:absolute 是故意跳过样式层、\n 以\"最近的已定位祖先\"为基准的(这是修复箭头戳出来触发滚动条那次的\n 设计),如果滑动层的 transform 出现在样式层内部,箭头的定位基准就会\n 变成滑动层而不是外层——效果上依然正确(滑动层的盒子和外层几乎重合),\n 但为了让\"定位基准\"这件事始终清晰、不产生\"技术上是谁、视觉上又是谁\"\n 的心智负担,把滑动层放在外层和样式层之间、维持这条链路的清晰顺序。\n */}\n <div style={slideStyle()}>\n {/*\n 内层:真正的视觉样式 + 进出场动画。\n data-state 跟着 animationState 走(不是 isVisible/mounted):\n - isVisible 变 false 的瞬间,animationState 立刻跟着变 closed,\n 触发退场动画的 class;\n - isVisible 变 true 时,animationState 会晚一帧才变 open,\n 留出时间让箭头(TooltipArrow)完成挂载、注册给 arrow middleware、\n 算出正确的位置偏移(细节见 useTooltipContent 里的注释);\n - mounted 会比 animationState 变 closed 更晚才变 false(见下面的\n Presence 逻辑),留出时间让退场动画播完。\n\n data-[state=open]/data-[state=closed] 这套 class 依赖 tailwindcss-animate\n 插件提供的 animate-in/animate-out/fade-in-0/zoom-in-95 等工具类——\n 如果你的项目还没装,`npm install tailwindcss-animate` 并在 tailwind\n config 里加上这个 plugin 即可;不想装的话,把这几个 data-[state=...]\n class 换成你自己写的 @keyframes + 对应 class 也一样能工作,\n Presence 逻辑(mounted 延迟卸载)不依赖具体用了哪套动画实现。\n\n 箭头(TooltipArrow)不依赖\"作为这个元素的子节点、被动继承这里的\n transform/opacity 动画\"这种隐式机制——它自己也从 context 里读到\n 同一个 animationState,独立播放一份自己的入场/退场动画,两者由\n 同一个信号同步触发。\n\n data-side/data-align 是从最终生效的 placement 拆出来的,驱动上面\n 这几条方向感知的 slide-in class,也顺带给 transform-origin 提供了\n 依据——缩放动画的锚点会落在\"贴近 trigger 的那条边\"上(细节见\n TooltipContent.utils.ts 里的 getTransformOrigin),而不是默认的\n 几何中心,这样整个入场效果才会像是\"从 trigger 那里长出来\",\n 贴近 shadcn 的实际观感。\n\n 特意没有 overflow:auto / max-height,tooltip 不支持内容超长时滚动——\n 宽度上限靠下面静态的 max-w-xs class 兜底,让文字自然换行;高度完全\n 不做限制。这不只是为了贴近 shadcn/Radix 的行为(它们的 tooltip 也不\n 允许滚动),还避免了一个真实踩过的坑:overflow:auto 配合这里的\n zoom-in-95 动画(会给这个元素加一个非 none 的 transform,CSS 规范\n 规定这会让它变成子元素新的包含块)曾经导致箭头戳出边缘的那部分被\n 误判成\"可滚动溢出\",表现为打开瞬间闪一下滚动条、箭头跟着被遮住,\n 动画播完滚动条消失、箭头才重新出现。去掉滚动能力后这个耦合从根上\n 就不存在了。\n */}\n <div\n ref={setContentElement}\n id={ctx.contentId}\n role=\"tooltip\"\n data-state={animationState()}\n data-side={getSide(pos.placement())}\n data-align={getAlignment(pos.placement()) ?? \"center\"}\n onMouseEnter={ctx.keepOpen}\n onMouseLeave={ctx.requestClose}\n style={{\n \"transform-origin\": getTransformOrigin(pos.placement()),\n ...(typeof local.style === \"object\" ? local.style : undefined),\n }}\n class={clsx(\n \"inline-flex w-fit max-w-xs items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background\",\n \"has-data-[slot=kbd]:pr-1.5\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n // 方向感知的滑入:不只是原地淡入缩放,还从\"贴近 trigger 的反方向\"\n // 轻微位移过来——比如 placement 是 top(content 在 trigger 上方),\n // 就从下方 8px(slide-in-from-bottom-2)滑上来,视觉上更像是从\n // trigger 那里\"冒出来\",而不是凭空原地出现。只在打开时生效,\n // 贴近 shadcn 的实际行为(它们的退场动画没有对应的滑出位移)。\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n local.class,\n )}\n {...rest}\n >\n <TooltipContentContext.Provider\n value={{\n middlewareData: pos.middlewareData,\n reference: ctx.reference,\n placement: pos.placement,\n setArrowElement,\n animationState,\n }}\n >\n {local.children}\n </TooltipContentContext.Provider>\n </div>\n </div>\n </div>\n </Portal>\n </Show>\n );\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgBW,EAAeC,GAA4B;CACzD,IAAM,EACJC,QACAC,QACAC,YACAC,mBACAC,oBACAC,sBACAC,kBACEf,QAAwBQ,CAAK,GAI3B,CAACQ,GAAOC,KAAQnB,EAAWU,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,OAAAU,EACGtB,GAAI;EAAA,IAACuB,OAAI;GAAA,OAAER,EAAQ;EAAC;EAAA,IAAAS,WAAA;GAAA,OAAAF,EAClBnB,GAAM,EAAA,IAAAqB,WAAA;IAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG,YAAAC,IAAAF,EAAAC;IAwCqB,OAxCrBE,GAOGC,MAAO;KASX9B,AARAY,EAAImB,YAAYD,CAAE,GAQlB9B,QAAgBY,EAAImB,YAAYC,KAAAA,CAAS,CAAC;IAC5C,GAACR,CAAA,GAAAK,EAiEQZ,GAAiBW,CAAA,GAAAK,EAAAL,GAAAM,EAAA;KAAA,IACtBC,KAAE;MAAA,OAAEvB,EAAIwB;KAAS;KAAA,IAAA,eAAA;MAAA,OAELrB,EAAe;KAAC;KAAA,IAAA,cAAA;MAAA,OACjBT,EAAQO,EAAI0B,UAAU,CAAC;KAAC;KAAA,IAAA,eAAA;MAAA,OACvBhC,EAAaM,EAAI0B,UAAU,CAAC,KAAK;KAAQ;KAAA,IACrDE,eAAY;MAAA,OAAE7B,EAAI8B;KAAQ;KAAA,IAC1BC,eAAY;MAAA,OAAE/B,EAAIgC;KAAY;KAAA,IAC9BC,QAAK;MAAA,OAAE;OACL,oBAAoBxC,EAAmBQ,EAAI0B,UAAU,CAAC;OACtD,GAAI,OAAOpB,EAAM0B,SAAU,WAAW1B,EAAM0B,QAAQb,KAAAA;MACtD;KAAC;KAAA,IAAA,QAAA;MAAA,OACMvB,EACL,gHACA,8BACA,yFACA,kGAMA,0CACA,0CACA,0CACA,0CACAU,EAAM2B,KACR;KAAC;IAAA,GACG1B,CAAI,GAAA,IAAA,EAAA,GAAA2B,EAAAnB,GAAAP,EAEPjB,EAAsB4C,UAAQ;KAAA,IAC7BC,QAAK;MAAA,OAAE;OACLC,gBAAgBrC,EAAIqC;OACpBC,WAAWvC,EAAIuC;OACfZ,WAAW1B,EAAI0B;OACfvB;OACAD;MACF;KAAC;KAAA,IAAAQ,WAAA;MAAA,OAEAJ,EAAMI;KAAQ;IAAA,CAAA,CAAA,GAAA6B,GAAAC,MAAA;KAAA,IAAAC,IAvGLzC,EAAI0B,UAAU,GAACgB,IACxB;MACL,GAAG1C,EAAI2C,eAAe;MAEtBC,SAAS5C,KAAI6C,aAAa;KAC5B,GAACC,IAiBWzC,EAAW;KAAC,OAAAoC,MAAAD,EAAAO,KAAAC,EAAArC,GAAA,kBAAA6B,EAAAO,IAAAN,CAAA,GAAAD,EAAAS,IAAAC,EAAAvC,GAAA+B,GAAAF,EAAAS,CAAA,GAAAT,EAAAW,IAAAD,EAAArC,GAAAiC,GAAAN,EAAAW,CAAA,GAAAX;IAAA,GAAA;KAAAO,GAAA5B,KAAAA;KAAA8B,GAAA9B,KAAAA;KAAAgC,GAAAhC,KAAAA;IAAA,CAAA,GAAAR;GAAA,EAAA,CAAA;EAAA;CAAA,CAAA;AAyFlC"}
|
|
1
|
+
{"version":3,"file":"TooltipContent.js","names":["Show","onCleanup","splitProps","Portal","useTooltipContent","TooltipContentContext","getTransformOrigin","getSide","getAlignment","TooltipContentProps","clsx","TooltipContent","props","ctx","pos","mounted","animationState","setArrowElement","setContentElement","slideStyle","local","rest","_$createComponent","when","children","_el$","_tmpl$","_el$2","firstChild","_el$3","_$use","el","setFloating","undefined","_$spread","_$mergeProps","id","contentId","data-state","data-side","placement","data-align","onMouseEnter","keepOpen","onMouseLeave","requestClose","style","class","_$insert","Provider","value","middlewareData","reference","_$effect","_p$","_v$","_v$2","floatingStyles","opacity","isPositioned","_v$3","e","_$setAttribute","t","_$style","a","_$createComponent","_$mergeProps","_$setAttribute","_$style","_tmpl$","TooltipContent","useTooltipContent","props","local","rest","splitProps","createComponent","Show","mounted","Portal","_el$","_el$2","_el$3","use","ctx","el","onCleanup","setContentElement","spread","mergeProps","animationState","getSide","pos","getAlignment","getTransformOrigin","\"class\"","clsx","insert","TooltipContentContext","effect","_v$","_v$2","_v$3","slideStyle","_p$","setAttribute","style"],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.tsx"],"sourcesContent":["import { Show, onCleanup, splitProps } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { useTooltipContent } from \"./useTooltipContent\";\nimport { TooltipContentContext } from \"./TooltipContent.context\";\nimport { getTransformOrigin } from \"./TooltipContent.utils\";\nimport { getSide, getAlignment } from \"~/lib\";\nimport type { TooltipContentProps } from \"./TooltipContent.types\";\nimport { clsx } from \"~/utils\";\n\n/**\n * Tooltip 的浮层内容。挂 Portal 到 body,用 position:fixed 定位。\n *\n * 内容本身默认是可以 hover 的(不是 pointer-events:none):鼠标移进 content\n * 会取消待执行的关闭计时器(ctx.keepOpen),移出才真正走 closeDelay 关闭——\n * 这样用户可以把鼠标从 trigger 移动到 tooltip 上选中里面的文字,不会因为\n * \"离开 trigger 就关闭\" 而选不到。如果你的 tooltip 内容很简单、不需要这个特性,\n * 可以自己在外面包一层设置 pointer-events: none。\n */\nexport function TooltipContent(props: TooltipContentProps) {\n const {\n ctx,\n pos,\n mounted,\n animationState,\n setArrowElement,\n setContentElement,\n slideStyle,\n } = useTooltipContent(() => props);\n\n // 只摘出内部要单独处理的几个字段,剩下的(style、data-*、onXxx 等任意原生\n // prop)原样透传给内层元素——和 TooltipTrigger 是同一套约定。\n const [local, rest] = splitProps(props, [\n \"side\",\n \"align\",\n \"sideOffset\",\n \"alignOffset\",\n \"collisionPadding\",\n \"class\",\n \"style\",\n \"children\",\n ]);\n\n return (\n <Show when={mounted()}>\n <Portal>\n {/*\n 外层:只负责定位(position:fixed 来自 floatingStyles),不设 overflow,\n 也不参与任何动画——它的 transform 已经被占用来做定位(translate(x,y)),\n 如果别的动画也要控制 transform 会互相冲突,所以动画都放在下面两层。\n */}\n <div\n ref={(el) => {\n ctx.setFloating(el);\n // Solid 的 ref 回调只在元素创建时触发一次,元素被移除时不会自动\n // 再调用一次传 undefined(这是 React 的约定,不是 Solid 的)。\n // 不手动清空的话,ctx.floating() 会一直指向一个已经从 DOM 里\n // 摘除的\"僵尸节点\",直到下次重新打开——期间如果被别处读取\n // (比如 TooltipGroup 抢占时读取矩形),getBoundingClientRect()\n // 对一个 detached 元素规范规定就是返回全 0 的矩形,会造成\n // \"滑动效果从左上角(0,0)滑入\"这种明显错误的观感。\n onCleanup(() => ctx.setFloating(undefined));\n }}\n data-placement={pos.placement()}\n style={{\n ...pos.floatingStyles(),\n \"z-index\": 1000,\n opacity: pos.isPositioned() ? 1 : 0,\n }}\n >\n {/*\n 滑动层:命中 <TooltipGroup> 抢占时,用来把整个 tooltip(内容+箭头)\n 从旧 tooltip 的位置平移过来(FLIP 技术,细节见 useTooltipContent 里\n 的 slideOffset 计算)。平时 slideStyle() 是空对象,这一层形同不存在。\n\n 这一层必须夹在\"定位层\"和\"样式/动画层\"之间、而不是随便找个地方加:\n 它自己也会用到 transform(滑动过程中),如果和定位层共用一个元素会\n 跟 translate(x,y) 冲突(原因同上);但它又不能在样式层(overflow:auto\n 那层)的下面/内部,因为箭头的 position:absolute 是故意跳过样式层、\n 以\"最近的已定位祖先\"为基准的(这是修复箭头戳出来触发滚动条那次的\n 设计),如果滑动层的 transform 出现在样式层内部,箭头的定位基准就会\n 变成滑动层而不是外层——效果上依然正确(滑动层的盒子和外层几乎重合),\n 但为了让\"定位基准\"这件事始终清晰、不产生\"技术上是谁、视觉上又是谁\"\n 的心智负担,把滑动层放在外层和样式层之间、维持这条链路的清晰顺序。\n */}\n <div style={slideStyle()}>\n {/*\n 内层:真正的视觉样式 + 进出场动画。\n data-state 跟着 animationState 走(不是 isVisible/mounted):\n - isVisible 变 false 的瞬间,animationState 立刻跟着变 closed,\n 触发退场动画的 class;\n - isVisible 变 true 时,animationState 会晚一帧才变 open,\n 留出时间让箭头(TooltipArrow)完成挂载、注册给 arrow middleware、\n 算出正确的位置偏移(细节见 useTooltipContent 里的注释);\n - mounted 会比 animationState 变 closed 更晚才变 false(见下面的\n Presence 逻辑),留出时间让退场动画播完。\n\n data-[state=open]/data-[state=closed] 这套 class 依赖 tailwindcss-animate\n 插件提供的 animate-in/animate-out/fade-in-0/zoom-in-95 等工具类——\n 如果你的项目还没装,`npm install tailwindcss-animate` 并在 tailwind\n config 里加上这个 plugin 即可;不想装的话,把这几个 data-[state=...]\n class 换成你自己写的 @keyframes + 对应 class 也一样能工作,\n Presence 逻辑(mounted 延迟卸载)不依赖具体用了哪套动画实现。\n\n 箭头(TooltipArrow)不依赖\"作为这个元素的子节点、被动继承这里的\n transform/opacity 动画\"这种隐式机制——它自己也从 context 里读到\n 同一个 animationState,独立播放一份自己的入场/退场动画,两者由\n 同一个信号同步触发。\n\n data-side/data-align 是从最终生效的 placement 拆出来的,驱动上面\n 这几条方向感知的 slide-in class,也顺带给 transform-origin 提供了\n 依据——缩放动画的锚点会落在\"贴近 trigger 的那条边\"上(细节见\n TooltipContent.utils.ts 里的 getTransformOrigin),而不是默认的\n 几何中心,这样整个入场效果才会像是\"从 trigger 那里长出来\",\n 贴近 shadcn 的实际观感。\n\n 特意没有 overflow:auto / max-height,tooltip 不支持内容超长时滚动——\n 宽度上限靠下面静态的 max-w-xs class 兜底,让文字自然换行;高度完全\n 不做限制。这不只是为了贴近 shadcn/Radix 的行为(它们的 tooltip 也不\n 允许滚动),还避免了一个真实踩过的坑:overflow:auto 配合这里的\n zoom-in-95 动画(会给这个元素加一个非 none 的 transform,CSS 规范\n 规定这会让它变成子元素新的包含块)曾经导致箭头戳出边缘的那部分被\n 误判成\"可滚动溢出\",表现为打开瞬间闪一下滚动条、箭头跟着被遮住,\n 动画播完滚动条消失、箭头才重新出现。去掉滚动能力后这个耦合从根上\n 就不存在了。\n */}\n <div\n ref={setContentElement}\n id={ctx.contentId}\n role=\"tooltip\"\n data-state={animationState()}\n data-side={getSide(pos.placement())}\n data-align={getAlignment(pos.placement()) ?? \"center\"}\n onMouseEnter={ctx.keepOpen}\n onMouseLeave={ctx.requestClose}\n style={{\n \"transform-origin\": getTransformOrigin(pos.placement()),\n ...(typeof local.style === \"object\" ? local.style : undefined),\n }}\n class={clsx(\n \"inline-flex w-fit max-w-xs items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background\",\n \"has-data-[slot=kbd]:pr-1.5\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n // 方向感知的滑入:不只是原地淡入缩放,还从\"贴近 trigger 的反方向\"\n // 轻微位移过来——比如 placement 是 top(content 在 trigger 上方),\n // 就从下方 8px(slide-in-from-bottom-2)滑上来,视觉上更像是从\n // trigger 那里\"冒出来\",而不是凭空原地出现。只在打开时生效,\n // 贴近 shadcn 的实际行为(它们的退场动画没有对应的滑出位移)。\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n local.class,\n )}\n {...rest}\n >\n <TooltipContentContext.Provider\n value={{\n middlewareData: pos.middlewareData,\n reference: ctx.reference,\n placement: pos.placement,\n setArrowElement,\n animationState,\n }}\n >\n {local.children}\n </TooltipContentContext.Provider>\n </div>\n </div>\n </div>\n </Portal>\n </Show>\n );\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgBW,EAAeC,GAA4B;CACzD,IAAM,EACJC,QACAC,QACAC,YACAC,mBACAC,oBACAC,sBACAC,kBACEf,QAAwBQ,CAAK,GAI3B,CAACQ,GAAOC,KAAQnB,EAAWU,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,OAAAU,EACGtB,GAAI;EAAA,IAACuB,OAAI;GAAA,OAAER,EAAQ;EAAC;EAAA,IAAAS,WAAA;GAAA,OAAAF,EAClBnB,GAAM,EAAA,IAAAqB,WAAA;IAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG,YAAAC,IAAAF,EAAAC;IAwCqB,OAxCrBE,GAOGC,MAAO;KASX9B,AARAY,EAAImB,YAAYD,CAAE,GAQlB9B,QAAgBY,EAAImB,YAAYC,KAAAA,CAAS,CAAC;IAC5C,GAACR,CAAA,GAAAK,EAiEQZ,GAAiBW,CAAA,GAAAK,EAAAL,GAAAM,EAAA;KAAA,IACtBC,KAAE;MAAA,OAAEvB,EAAIwB;KAAS;KAAA,IAAA,eAAA;MAAA,OAELrB,EAAe;KAAC;KAAA,IAAA,cAAA;MAAA,OACjBT,EAAQO,EAAI0B,UAAU,CAAC;KAAC;KAAA,IAAA,eAAA;MAAA,OACvBhC,EAAaM,EAAI0B,UAAU,CAAC,KAAK;KAAQ;KAAA,IACrDE,eAAY;MAAA,OAAE7B,EAAI8B;KAAQ;KAAA,IAC1BC,eAAY;MAAA,OAAE/B,EAAIgC;KAAY;KAAA,IAC9BC,QAAK;MAAA,OAAE;OACL,oBAAoBxC,EAAmBQ,EAAI0B,UAAU,CAAC;OACtD,GAAI,OAAOpB,EAAM0B,SAAU,WAAW1B,EAAM0B,QAAQb,KAAAA;MACtD;KAAC;KAAA,IAAA+D,QAAA;MAAA,OACMtF,EACL,gHACA,8BACA,yFACA,kGAMA,0CACA,0CACA,0CACA,0CACAU,EAAM2B,KACR;KAAC;IAAA,GACG1B,CAAI,GAAA,IAAA,EAAA,GAAA2B,EAAAnB,GAAAP,EAEPjB,EAAsB4C,UAAQ;KAAA,IAC7BC,QAAK;MAAA,OAAE;OACLC,gBAAgBrC,EAAIqC;OACpBC,WAAWvC,EAAIuC;OACfZ,WAAW1B,EAAI0B;OACfvB;OACAD;MACF;KAAC;KAAA,IAAAQ,WAAA;MAAA,OAEAJ,EAAMI;KAAQ;IAAA,CAAA,CAAA,GAAA6B,GAAAC,MAAA;KAAA,IAAAC,IAvGLzC,EAAI0B,UAAU,GAACgB,IACxB;MACL,GAAG1C,EAAI2C,eAAe;MAEtBC,SAAS5C,KAAI6C,aAAa;KAC5B,GAACC,IAiBWzC,EAAW;KAAC,OAAAoC,MAAAD,EAAAO,KAAAC,EAAArC,GAAA,kBAAA6B,EAAAO,IAAAN,CAAA,GAAAD,EAAAS,IAAAC,EAAAvC,GAAA+B,GAAAF,EAAAS,CAAA,GAAAT,EAAAW,IAAAD,EAAArC,GAAAiC,GAAAN,EAAAW,CAAA,GAAAX;IAAA,GAAA;KAAAO,GAAA5B,KAAAA;KAAA8B,GAAA9B,KAAAA;KAAAgC,GAAAhC,KAAAA;IAAA,CAAA,GAAAR;GAAA,EAAA,CAAA;EAAA;CAAA,CAAA;AAyFlC"}
|
|
@@ -1,58 +1,14 @@
|
|
|
1
|
-
import { Middleware
|
|
2
|
-
|
|
3
|
-
* 把 shadcn/Radix 风格的 side + align 拆分参数,转换成核心库统一用的
|
|
4
|
-
* `Placement` 字符串(比如 side='top' + align='start' → 'top-start')。
|
|
5
|
-
* align 是 'center'(默认对齐、不偏移)时不带后缀,直接是 side 本身。
|
|
6
|
-
*/
|
|
7
|
-
export declare function toPhysicalSide(side: Side | "inline-start" | "inline-end", dir?: string): Side;
|
|
8
|
-
export declare function toPlacement(side: Side | "inline-start" | "inline-end", align: Alignment | "center", dir?: string): Placement;
|
|
9
|
-
/**
|
|
10
|
-
* 根据最终生效的 placement,算出缩放动画应该以哪个点为锚点(CSS transform-origin)。
|
|
11
|
-
* 锚点应该落在"贴近 trigger 的那条边"上——比如 placement 是 'top'(content 在
|
|
12
|
-
* trigger 上方),锚点就该是 content 自己的底边,缩放动画看起来才会像是
|
|
13
|
-
* "从 trigger 那里长出来",而不是原地放大缩小(默认的 transform-origin 是
|
|
14
|
-
* 几何中心 50% 50%,视觉上和"从哪个方向冒出来"没有任何关联)。
|
|
15
|
-
* 交叉轴(对齐方向)同理:align 是 start 就贴左/上边,end 就贴右/下边。
|
|
16
|
-
*/
|
|
17
|
-
export declare function getTransformOrigin(placement: Placement): string;
|
|
1
|
+
import { Middleware } from '../../../lib';
|
|
2
|
+
export { toPhysicalSide, toPlacement, getTransformOrigin, } from '../../../lib';
|
|
18
3
|
export interface BuildTooltipMiddlewareOptions {
|
|
19
4
|
sideOffset: number;
|
|
20
|
-
/**
|
|
5
|
+
/** 沿交叉轴(对齐方向)的偏移,对应 offset middleware 的 crossAxis */
|
|
21
6
|
alignOffset: number;
|
|
22
7
|
collisionPadding: number;
|
|
23
8
|
arrowElement: () => Element | undefined;
|
|
24
9
|
}
|
|
25
10
|
/**
|
|
26
|
-
* Tooltip
|
|
27
|
-
*
|
|
28
|
-
* 1. offset — 沿主轴保持 sideOffset 间距,沿交叉轴偏移 alignOffset
|
|
29
|
-
* 2. flip — 主轴方向放不下就翻到对面(比如上方没空间就翻到下方)
|
|
30
|
-
* 3. shift — 翻转后仍溢出,就在不换边的前提下贴边平移
|
|
31
|
-
* 4. arrow — 算出箭头相对 content 的偏移,让它始终指向 trigger 中心
|
|
32
|
-
* 5. hide — trigger 被自己的滚动容器完全裁掉时标记隐藏
|
|
33
|
-
* 6. containingBlockOffset — 修正祖先元素 transform 等属性导致的 position:fixed
|
|
34
|
-
* 包含块偏移(demo 里通常不出现,放进有大量 transform 的真实项目后才会暴露,
|
|
35
|
-
* 详见该 middleware 自身的注释)。放在最后一位,因为它修正的是"最终要写进
|
|
36
|
-
* DOM 的坐标",前面几步都在统一的视口坐标系里计算,不受这个偏移影响。
|
|
37
|
-
*
|
|
38
|
-
* 特意没有用 size 中间件去动态限制 max-height、允许内容超长时滚动——
|
|
39
|
-
* tooltip 不应该出现滚动条(这不是本库的一般性限制,是 tooltip 这个组件
|
|
40
|
-
* 类型本身该有的样子,shadcn/Radix 的 Tooltip 也是这么做的)。宽度上限
|
|
41
|
-
* 靠 TooltipContent.tsx 里静态的 `max-w-xs` class 兜底,让文字自然换行;
|
|
42
|
-
* 高度完全不做限制,交给内容自身的实际高度决定。
|
|
43
|
-
*
|
|
44
|
-
* 这个决定还有一个技术上的原因:早先的实现里试过用 size 中间件动态算
|
|
45
|
-
* max-height 配合 overflow:auto 实现"超长内容可滚动",结果发现内层元素
|
|
46
|
-
* 一旦同时具备 overflow:auto 和入场动画(zoom-in-95 会给它加一个 transform),
|
|
47
|
-
* 动画播放期间 transform 会让这个元素变成箭头新的包含块(CSS 规范:非 none
|
|
48
|
-
* 的 transform 会创建包含块),箭头戳出内层边缘的那部分又会被算进内层的
|
|
49
|
-
* 可滚动溢出区域——于是出现了"打开瞬间闪一下滚动条,箭头跟着被遮住,
|
|
50
|
-
* 动画播完滚动条消失、箭头才重新出现"这种诡异现象。去掉滚动能力后,
|
|
51
|
-
* 这个耦合从根上就不存在了。
|
|
52
|
-
*
|
|
53
|
-
* 顺序不能随便换:arrow 必须在 shift/flip 之后(要用最终坐标才能算对偏移),
|
|
54
|
-
* containingBlockOffset 必须在所有其他 middleware 之后。
|
|
55
|
-
*
|
|
56
|
-
* 单独抽成函数是为了让 useTooltipContent 保持简洁,也方便针对这套管线单独测试。
|
|
11
|
+
* Tooltip 定位管线:offset → flip → shift → arrow → hide → containingBlockOffset。
|
|
12
|
+
* 与 Popover/HoverCard 共用 createFloatingMiddleware,只多了 arrow。
|
|
57
13
|
*/
|
|
58
14
|
export declare function createTooltipMiddleware(options: BuildTooltipMiddlewareOptions): Middleware[];
|
|
@@ -1,44 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { offset as n } from "../../../lib/positioner/middleware/offset.js";
|
|
3
|
-
import { shift as r } from "../../../lib/positioner/middleware/shift.js";
|
|
4
|
-
import { flip as i } from "../../../lib/positioner/middleware/flip.js";
|
|
5
|
-
import { arrow as a } from "../../../lib/positioner/middleware/arrow.js";
|
|
6
|
-
import { hide as o } from "../../../lib/positioner/middleware/hide.js";
|
|
7
|
-
import { containingBlockOffset as s } from "../../../lib/positioner/middleware/containing-block-offset.js";
|
|
1
|
+
import { createFloatingMiddleware as e, getTransformOrigin as t, toPlacement as n } from "../../../lib/positioner/utils/floating.js";
|
|
8
2
|
//#region src/components/tooltip/TooltipContent/TooltipContent.utils.ts
|
|
9
|
-
function
|
|
10
|
-
return e
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
let r = t(n), i = e(n), a = i === "start" ? "0%" : i === "end" ? "100%" : "50%";
|
|
18
|
-
switch (r) {
|
|
19
|
-
case "top": return `${a} 100%`;
|
|
20
|
-
case "bottom": return `${a} 0%`;
|
|
21
|
-
case "left": return `100% ${a}`;
|
|
22
|
-
case "right": return `0% ${a}`;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function d(e) {
|
|
26
|
-
return [
|
|
27
|
-
n({
|
|
28
|
-
mainAxis: e.sideOffset,
|
|
29
|
-
crossAxis: e.alignOffset
|
|
30
|
-
}),
|
|
31
|
-
i(),
|
|
32
|
-
r({ padding: e.collisionPadding }),
|
|
33
|
-
a({
|
|
34
|
-
element: e.arrowElement,
|
|
35
|
-
padding: 6
|
|
36
|
-
}),
|
|
37
|
-
o(),
|
|
38
|
-
s()
|
|
39
|
-
];
|
|
3
|
+
function r(t) {
|
|
4
|
+
return e({
|
|
5
|
+
sideOffset: t.sideOffset,
|
|
6
|
+
alignOffset: t.alignOffset,
|
|
7
|
+
collisionPadding: t.collisionPadding,
|
|
8
|
+
arrowElement: t.arrowElement,
|
|
9
|
+
arrowPadding: 6
|
|
10
|
+
});
|
|
40
11
|
}
|
|
41
12
|
//#endregion
|
|
42
|
-
export {
|
|
13
|
+
export { r as createTooltipMiddleware, t as getTransformOrigin, n as toPlacement };
|
|
43
14
|
|
|
44
15
|
//# sourceMappingURL=TooltipContent.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.utils.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.utils.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"TooltipContent.utils.js","names":["createTooltipMiddleware","createFloatingMiddleware","options","getTransformOrigin","toPlacement"],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.utils.ts"],"sourcesContent":["import { createFloatingMiddleware, type Middleware } from \"~/lib\";\n\n// 定位相关的纯函数已抽到 ~/lib/positioner/utils/floating,这里保留原有导出名,\n// 避免 Tooltip 内部 import 变动。\nexport {\n toPhysicalSide,\n toPlacement,\n getTransformOrigin,\n} from \"~/lib\";\n\nexport interface BuildTooltipMiddlewareOptions {\n sideOffset: number;\n /** 沿交叉轴(对齐方向)的偏移,对应 offset middleware 的 crossAxis */\n alignOffset: number;\n collisionPadding: number;\n arrowElement: () => Element | undefined;\n}\n\n/**\n * Tooltip 定位管线:offset → flip → shift → arrow → hide → containingBlockOffset。\n * 与 Popover/HoverCard 共用 createFloatingMiddleware,只多了 arrow。\n */\nexport function createTooltipMiddleware(\n options: BuildTooltipMiddlewareOptions,\n): Middleware[] {\n return createFloatingMiddleware({\n sideOffset: options.sideOffset,\n alignOffset: options.alignOffset,\n collisionPadding: options.collisionPadding,\n arrowElement: options.arrowElement,\n arrowPadding: 6,\n });\n}\n"],"mappings":";;AAsBA,SAAgBA,EACd,GACc;CACd,OAAOC,EAAyB;EAC9B,YAAYC,EAAQ;EACpB,aAAaA,EAAQ;EACrB,kBAAkBA,EAAQ;EAC1B,cAAcA,EAAQ;EACtB,cAAc;CAChB,CAAC;AACH"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { createPositioner as e } from "../../../lib/positioner/create-positioner.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { toPlacement as t } from "../../../lib/positioner/utils/floating.js";
|
|
3
|
+
import { useTooltipContext as n } from "../Tooltip/Tooltip.context.js";
|
|
4
|
+
import { createTooltipMiddleware as r } from "./TooltipContent.utils.js";
|
|
4
5
|
import { createEffect as i, createMemo as a, createSignal as o, onCleanup as s } from "solid-js";
|
|
5
6
|
//#region src/components/tooltip/TooltipContent/useTooltipContent.ts
|
|
6
7
|
var c = 300;
|
|
7
8
|
function l(l) {
|
|
8
|
-
let u =
|
|
9
|
-
placement: () =>
|
|
9
|
+
let u = n("TooltipContent"), [d, f] = o(), [p, m] = o(), h = e(u.reference, u.floating, {
|
|
10
|
+
placement: () => t(l().side ?? "top", l().align ?? "center", l().dir),
|
|
10
11
|
strategy: "fixed",
|
|
11
|
-
middleware: () =>
|
|
12
|
+
middleware: () => r({
|
|
12
13
|
sideOffset: l().sideOffset ?? 4,
|
|
13
14
|
alignOffset: l().alignOffset ?? 0,
|
|
14
15
|
collisionPadding: l().collisionPadding ?? 8,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltipContent.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/useTooltipContent.ts"],"sourcesContent":["import { createSignal, createMemo, createEffect, onCleanup } from \"solid-js\";\nimport { createPositioner, type Positioner } from \"~/lib\";\nimport { useTooltipContext } from \"../Tooltip/Tooltip.context\";\nimport { createTooltipMiddleware, toPlacement } from \"./TooltipContent.utils\";\nimport type { TooltipContentProps } from \"./TooltipContent.types\";\n\n/** 没有触发任何 CSS animation 时的兜底卸载延迟(ms)——比如没装 tailwindcss-animate、\n * 或者自定义样式只用了 transition 而不是 @keyframes,animationend 永远不会触发,\n * 避免元素卡在 DOM 里退不出去。 */\nconst EXIT_FALLBACK_MS = 300;\n\nexport interface UseTooltipContentResult {\n ctx: ReturnType<typeof useTooltipContext>;\n pos: Positioner;\n /** 综合了 open 状态 + hide 中间件的 referenceHidden 判断,代表\"逻辑上应不应该打开\" */\n isVisible: () => boolean;\n /**\n * 代表\"DOM 里要不要还留着这个节点\"。isVisible 变 false 之后,mounted 不会立刻\n * 跟着变 false,而是等退场动画播完(或者兜底超时)才变——展示层应该用它来控制\n * <Show>,而不是直接用 isVisible,否则退场动画根本来不及播放就被卸载了。\n */\n mounted: () => boolean;\n /**\n * 真正用来驱动 data-state(进而驱动 CSS 进出场动画 class)的状态,\n * 展示层应该用它,而不是直接用 isVisible。\n *\n * 和 isVisible 的区别只在\"打开\"这一侧:isVisible 变 true 的瞬间,\n * animationState 不会立刻跟着变 \"open\",而是等一帧(requestAnimationFrame)\n * 之后才变——这一帧的间隙用来让箭头(TooltipArrow)完成挂载、把自己注册给\n * arrow middleware、拿到正确的位置偏移。如果不等这一帧,动画会在箭头位置\n * 还没算对的时候就开始播放,播到一半箭头才\"跳\"到正确位置,看起来就像是\n * 箭头比内容慢一拍——这正是因为内容的淡入/缩放靠的是 CSS 动画(父元素的\n * opacity/transform 会连带影响所有子元素,包括箭头,两者本该同步),而箭头\n * 的具体位置靠的是 JS 算出来的 left/top,这是两套完全独立的机制,只有当\n * \"开始播放动画\"这个时间点晚于\"箭头位置算完\",才能保证两者观感一致。\n * 关闭这一侧不需要这个延迟,isVisible 变 false 时 animationState 立刻跟着变。\n */\n animationState: () => \"open\" | \"closed\";\n arrowElement: () => Element | undefined;\n setArrowElement: (el: Element) => void;\n /** 内层内容元素(真正播放进出场动画的那一层),TooltipContent 需要把它 ref 进来 */\n contentElement: () => HTMLElement | undefined;\n setContentElement: (el: HTMLElement) => void;\n /**\n * 加在\"滑动层\"(定位层和内容层之间的中间那层)上的 style。\n * 命中 TooltipGroup 抢占时会有一个非零初始偏移,下一帧起会用 CSS transition\n * 平滑归零,从而制造出\"从旧 tooltip 位置滑到新位置\"的效果;平时是空对象,\n * 不产生任何影响。\n */\n slideStyle: () => { transform?: string; transition?: string };\n}\n\nexport function useTooltipContent(\n props: () => TooltipContentProps,\n): UseTooltipContentResult {\n const ctx = useTooltipContext(\"TooltipContent\");\n const [arrowElement, setArrowElement] = createSignal<Element>();\n const [contentElement, setContentElement] = createSignal<HTMLElement>();\n\n const pos = createPositioner(ctx.reference, ctx.floating, {\n placement: () =>\n toPlacement(\n props().side ?? \"top\",\n props().align ?? \"center\",\n props().dir,\n ),\n strategy: \"fixed\",\n middleware: () =>\n createTooltipMiddleware({\n sideOffset: props().sideOffset ?? 4,\n alignOffset: props().alignOffset ?? 0,\n collisionPadding: props().collisionPadding ?? 8,\n arrowElement,\n }),\n });\n\n // reference 完全滚出视口(比如所在容器被单独滚动)时,hide middleware 会标记\n // referenceHidden,这里据此隐藏浮层,避免它悬空显示在一个已经看不到的触发器旁边。\n const isVisible = createMemo(\n () => ctx.open() && !pos.middlewareData().hide?.referenceHidden,\n );\n\n // --- 箭头和内容同步入场:延迟一帧再触发动画 class ---\n // 见 UseTooltipContentResult.animationState 的注释:只有\"开始播放动画\"这个\n // 时间点晚于\"箭头位置算完\",才能保证箭头不会在动画播到一半时才跳到正确位置。\n const [animationState, setAnimationState] = createSignal<\"open\" | \"closed\">(\n \"closed\",\n );\n\n createEffect(() => {\n if (isVisible()) {\n const raf = requestAnimationFrame(() => setAnimationState(\"open\"));\n onCleanup(() => cancelAnimationFrame(raf));\n } else {\n // 关闭不需要等——退场动画本来就是从\"当前已经落定的位置\"往外淡出/缩小,\n // 不存在箭头位置还没算好这个问题,没理由延迟。\n setAnimationState(\"closed\");\n }\n });\n\n // --- TooltipGroup 抢占时的\"滑入\"过渡(FLIP 技术) ---\n const [slideOffset, setSlideOffset] = createSignal<{\n x: number;\n y: number;\n }>();\n\n const [mounted, setMounted] = createSignal(isVisible());\n\n createEffect(() => {\n if (!mounted()) return;\n const from = ctx.pendingSlideFrom();\n if (!from) return;\n // 必须等真正定位完成(知道自己算出来的最终坐标)才能算出\"要从哪滑过来\"的差值。\n if (!pos.isPositioned()) return;\n\n const dx = from.x - pos.x();\n const dy = from.y - pos.y();\n // 第一步:把偏移设成非零值——这一步和 floatingStyles() 的最终坐标叠加后,\n // 视觉上让新 tooltip 一出现就恰好在旧 tooltip 原来的位置,没有任何跳动。\n setSlideOffset({ x: dx, y: dy });\n // 消费一次立刻清空,避免后续 autoUpdate(滚动/resize 触发的重新定位)\n // 又把这次的偏移重新套用一遍。\n ctx.clearPendingSlideFrom();\n\n // 第二步:下一帧再把偏移量归零。因为这次更新带上了 transition(见下面\n // slideStyle 的实现),浏览器会把\"从非零偏移回到 0\"这个变化平滑动画出来,\n // 效果就是从旧位置滑到新位置。用 requestAnimationFrame 而不是同步归零,\n // 是为了确保浏览器先真正画出第一帧(非零偏移、无 transition),\n // 下一帧的变化才有\"起点\"可以过渡,不会被浏览器合并成一次跳变。\n requestAnimationFrame(() => setSlideOffset({ x: 0, y: 0 }));\n });\n\n const slideStyle = createMemo(() => {\n const offset = slideOffset();\n if (!offset) return {};\n const atRest = offset.x === 0 && offset.y === 0;\n return {\n transform: `translate(${offset.x}px, ${offset.y}px)`,\n // 只有\"归零\"这一步才带 transition:非零的那一帧要求瞬间落位、不能有动画,\n // 否则会先看到它从视口原点飞过来,而不是从旧 tooltip 的位置飞过来。\n transition: atRest ? \"transform 150ms ease\" : undefined,\n };\n });\n\n // --- 退场动画支持(Presence)---\n // isVisible 从 true 变 false 的瞬间,不立刻让 <Show> 卸载节点:先把 data-state\n // 切到 closed(触发退场动画的 CSS class),等这个节点自己的 animationend 触发\n // (或者兜底超时)之后,才真正把 mounted 设为 false,交给 <Show> 卸载。\n createEffect((wasVisible: boolean) => {\n const visible = isVisible();\n const el = contentElement();\n\n if (visible) {\n setMounted(true);\n } else if (wasVisible && el) {\n if (ctx.consumeSuppressExitAnimation()) {\n // 被 TooltipGroup 抢占强制关闭:跳过退场动画,立即卸载,避免和正在\n // 滑入的新 tooltip 同时出现在屏幕上(这是\"同时存在两个 tooltip\"这个\n // bug 的根因——之前不管什么原因关闭,都统一走了退场动画那条路)。\n setMounted(false);\n } else {\n const handleAnimationEnd = (e: AnimationEvent) => {\n // 忽略从子元素冒泡上来的 animationend,只认内容元素自己播放的那个动画\n if (e.target !== el) return;\n setMounted(false);\n };\n el.addEventListener(\"animationend\", handleAnimationEnd);\n onCleanup(() =>\n el.removeEventListener(\"animationend\", handleAnimationEnd),\n );\n\n const fallback = window.setTimeout(\n () => setMounted(false),\n EXIT_FALLBACK_MS,\n );\n onCleanup(() => window.clearTimeout(fallback));\n }\n } else if (!visible) {\n setMounted(false);\n }\n\n return visible;\n }, isVisible());\n\n return {\n ctx,\n pos,\n isVisible,\n mounted,\n animationState,\n arrowElement,\n setArrowElement,\n contentElement,\n setContentElement,\n slideStyle,\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTooltipContent.js","names":["EXIT_FALLBACK_MS","useTooltipContent","ctx","useTooltipContext","arrowElement","setArrowElement","createSignal","contentElement","setContentElement","pos","createPositioner","toPlacement","props","createTooltipMiddleware","isVisible","createMemo","animationState","setAnimationState","raf","slideOffset","setSlideOffset","mounted","setMounted","from","dx","dy","slideStyle","offset","atRest","createEffect","visible","el","wasVisible","handleAnimationEnd","onCleanup","fallback"],"sources":["../../../../src/components/tooltip/TooltipContent/useTooltipContent.ts"],"sourcesContent":["import { createSignal, createMemo, createEffect, onCleanup } from \"solid-js\";\nimport { createPositioner, type Positioner } from \"~/lib\";\nimport { useTooltipContext } from \"../Tooltip/Tooltip.context\";\nimport { createTooltipMiddleware, toPlacement } from \"./TooltipContent.utils\";\nimport type { TooltipContentProps } from \"./TooltipContent.types\";\n\n/** 没有触发任何 CSS animation 时的兜底卸载延迟(ms)——比如没装 tailwindcss-animate、\n * 或者自定义样式只用了 transition 而不是 @keyframes,animationend 永远不会触发,\n * 避免元素卡在 DOM 里退不出去。 */\nconst EXIT_FALLBACK_MS = 300;\n\nexport interface UseTooltipContentResult {\n ctx: ReturnType<typeof useTooltipContext>;\n pos: Positioner;\n /** 综合了 open 状态 + hide 中间件的 referenceHidden 判断,代表\"逻辑上应不应该打开\" */\n isVisible: () => boolean;\n /**\n * 代表\"DOM 里要不要还留着这个节点\"。isVisible 变 false 之后,mounted 不会立刻\n * 跟着变 false,而是等退场动画播完(或者兜底超时)才变——展示层应该用它来控制\n * <Show>,而不是直接用 isVisible,否则退场动画根本来不及播放就被卸载了。\n */\n mounted: () => boolean;\n /**\n * 真正用来驱动 data-state(进而驱动 CSS 进出场动画 class)的状态,\n * 展示层应该用它,而不是直接用 isVisible。\n *\n * 和 isVisible 的区别只在\"打开\"这一侧:isVisible 变 true 的瞬间,\n * animationState 不会立刻跟着变 \"open\",而是等一帧(requestAnimationFrame)\n * 之后才变——这一帧的间隙用来让箭头(TooltipArrow)完成挂载、把自己注册给\n * arrow middleware、拿到正确的位置偏移。如果不等这一帧,动画会在箭头位置\n * 还没算对的时候就开始播放,播到一半箭头才\"跳\"到正确位置,看起来就像是\n * 箭头比内容慢一拍——这正是因为内容的淡入/缩放靠的是 CSS 动画(父元素的\n * opacity/transform 会连带影响所有子元素,包括箭头,两者本该同步),而箭头\n * 的具体位置靠的是 JS 算出来的 left/top,这是两套完全独立的机制,只有当\n * \"开始播放动画\"这个时间点晚于\"箭头位置算完\",才能保证两者观感一致。\n * 关闭这一侧不需要这个延迟,isVisible 变 false 时 animationState 立刻跟着变。\n */\n animationState: () => \"open\" | \"closed\";\n arrowElement: () => Element | undefined;\n setArrowElement: (el: Element) => void;\n /** 内层内容元素(真正播放进出场动画的那一层),TooltipContent 需要把它 ref 进来 */\n contentElement: () => HTMLElement | undefined;\n setContentElement: (el: HTMLElement) => void;\n /**\n * 加在\"滑动层\"(定位层和内容层之间的中间那层)上的 style。\n * 命中 TooltipGroup 抢占时会有一个非零初始偏移,下一帧起会用 CSS transition\n * 平滑归零,从而制造出\"从旧 tooltip 位置滑到新位置\"的效果;平时是空对象,\n * 不产生任何影响。\n */\n slideStyle: () => { transform?: string; transition?: string };\n}\n\nexport function useTooltipContent(\n props: () => TooltipContentProps,\n): UseTooltipContentResult {\n const ctx = useTooltipContext(\"TooltipContent\");\n const [arrowElement, setArrowElement] = createSignal<Element>();\n const [contentElement, setContentElement] = createSignal<HTMLElement>();\n\n const pos = createPositioner(ctx.reference, ctx.floating, {\n placement: () =>\n toPlacement(\n props().side ?? \"top\",\n props().align ?? \"center\",\n props().dir,\n ),\n strategy: \"fixed\",\n middleware: () =>\n createTooltipMiddleware({\n sideOffset: props().sideOffset ?? 4,\n alignOffset: props().alignOffset ?? 0,\n collisionPadding: props().collisionPadding ?? 8,\n arrowElement,\n }),\n });\n\n // reference 完全滚出视口(比如所在容器被单独滚动)时,hide middleware 会标记\n // referenceHidden,这里据此隐藏浮层,避免它悬空显示在一个已经看不到的触发器旁边。\n const isVisible = createMemo(\n () => ctx.open() && !pos.middlewareData().hide?.referenceHidden,\n );\n\n // --- 箭头和内容同步入场:延迟一帧再触发动画 class ---\n // 见 UseTooltipContentResult.animationState 的注释:只有\"开始播放动画\"这个\n // 时间点晚于\"箭头位置算完\",才能保证箭头不会在动画播到一半时才跳到正确位置。\n const [animationState, setAnimationState] = createSignal<\"open\" | \"closed\">(\n \"closed\",\n );\n\n createEffect(() => {\n if (isVisible()) {\n const raf = requestAnimationFrame(() => setAnimationState(\"open\"));\n onCleanup(() => cancelAnimationFrame(raf));\n } else {\n // 关闭不需要等——退场动画本来就是从\"当前已经落定的位置\"往外淡出/缩小,\n // 不存在箭头位置还没算好这个问题,没理由延迟。\n setAnimationState(\"closed\");\n }\n });\n\n // --- TooltipGroup 抢占时的\"滑入\"过渡(FLIP 技术) ---\n const [slideOffset, setSlideOffset] = createSignal<{\n x: number;\n y: number;\n }>();\n\n const [mounted, setMounted] = createSignal(isVisible());\n\n createEffect(() => {\n if (!mounted()) return;\n const from = ctx.pendingSlideFrom();\n if (!from) return;\n // 必须等真正定位完成(知道自己算出来的最终坐标)才能算出\"要从哪滑过来\"的差值。\n if (!pos.isPositioned()) return;\n\n const dx = from.x - pos.x();\n const dy = from.y - pos.y();\n // 第一步:把偏移设成非零值——这一步和 floatingStyles() 的最终坐标叠加后,\n // 视觉上让新 tooltip 一出现就恰好在旧 tooltip 原来的位置,没有任何跳动。\n setSlideOffset({ x: dx, y: dy });\n // 消费一次立刻清空,避免后续 autoUpdate(滚动/resize 触发的重新定位)\n // 又把这次的偏移重新套用一遍。\n ctx.clearPendingSlideFrom();\n\n // 第二步:下一帧再把偏移量归零。因为这次更新带上了 transition(见下面\n // slideStyle 的实现),浏览器会把\"从非零偏移回到 0\"这个变化平滑动画出来,\n // 效果就是从旧位置滑到新位置。用 requestAnimationFrame 而不是同步归零,\n // 是为了确保浏览器先真正画出第一帧(非零偏移、无 transition),\n // 下一帧的变化才有\"起点\"可以过渡,不会被浏览器合并成一次跳变。\n requestAnimationFrame(() => setSlideOffset({ x: 0, y: 0 }));\n });\n\n const slideStyle = createMemo(() => {\n const offset = slideOffset();\n if (!offset) return {};\n const atRest = offset.x === 0 && offset.y === 0;\n return {\n transform: `translate(${offset.x}px, ${offset.y}px)`,\n // 只有\"归零\"这一步才带 transition:非零的那一帧要求瞬间落位、不能有动画,\n // 否则会先看到它从视口原点飞过来,而不是从旧 tooltip 的位置飞过来。\n transition: atRest ? \"transform 150ms ease\" : undefined,\n };\n });\n\n // --- 退场动画支持(Presence)---\n // isVisible 从 true 变 false 的瞬间,不立刻让 <Show> 卸载节点:先把 data-state\n // 切到 closed(触发退场动画的 CSS class),等这个节点自己的 animationend 触发\n // (或者兜底超时)之后,才真正把 mounted 设为 false,交给 <Show> 卸载。\n createEffect((wasVisible: boolean) => {\n const visible = isVisible();\n const el = contentElement();\n\n if (visible) {\n setMounted(true);\n } else if (wasVisible && el) {\n if (ctx.consumeSuppressExitAnimation()) {\n // 被 TooltipGroup 抢占强制关闭:跳过退场动画,立即卸载,避免和正在\n // 滑入的新 tooltip 同时出现在屏幕上(这是\"同时存在两个 tooltip\"这个\n // bug 的根因——之前不管什么原因关闭,都统一走了退场动画那条路)。\n setMounted(false);\n } else {\n const handleAnimationEnd = (e: AnimationEvent) => {\n // 忽略从子元素冒泡上来的 animationend,只认内容元素自己播放的那个动画\n if (e.target !== el) return;\n setMounted(false);\n };\n el.addEventListener(\"animationend\", handleAnimationEnd);\n onCleanup(() =>\n el.removeEventListener(\"animationend\", handleAnimationEnd),\n );\n\n const fallback = window.setTimeout(\n () => setMounted(false),\n EXIT_FALLBACK_MS,\n );\n onCleanup(() => window.clearTimeout(fallback));\n }\n } else if (!visible) {\n setMounted(false);\n }\n\n return visible;\n }, isVisible());\n\n return {\n ctx,\n pos,\n isVisible,\n mounted,\n animationState,\n arrowElement,\n setArrowElement,\n contentElement,\n setContentElement,\n slideStyle,\n };\n}\n"],"mappings":";;;;;;AASA,IAAMA,IAAmB;AA2CzB,SAAgBC,EACd,GACyB;CACzB,IAAMC,IAAMC,EAAkB,gBAAgB,GACxC,CAACC,GAAcC,KAAmBC,EAAsB,GACxD,CAACC,GAAgBC,KAAqBF,EAA0B,GAEhEG,IAAMC,EAAiBR,EAAI,WAAWA,EAAI,UAAU;EACxD,iBACES,EACEC,EAAM,CAAC,CAAC,QAAQ,OAChBA,EAAM,CAAC,CAAC,SAAS,UACjBA,EAAM,CAAC,CAAC,GACV;EACF,UAAU;EACV,kBACEC,EAAwB;GACtB,YAAYD,EAAM,CAAC,CAAC,cAAc;GAClC,aAAaA,EAAM,CAAC,CAAC,eAAe;GACpC,kBAAkBA,EAAM,CAAC,CAAC,oBAAoB;GAC9C;EACF,CAAC;CACL,CAAC,GAIKE,IAAYC,QACVb,EAAI,KAAK,KAAK,CAACO,EAAI,eAAe,CAAC,CAAC,MAAM,eAClD,GAKM,CAACO,GAAgBC,KAAqBX,EAC1C,QACF;CAEA,QAAmB;EACjB,IAAIQ,EAAU,GAAG;GACf,IAAMI,IAAM,4BAA4BD,EAAkB,MAAM,CAAC;GACjE,QAAgB,qBAAqBC,CAAG,CAAC;EAC3C,OAGE,EAAkB,QAAQ;CAE9B,CAAC;CAGD,IAAM,CAACC,GAAaC,KAAkBd,EAGnC,GAEG,CAACe,GAASC,KAAchB,EAAaQ,EAAU,CAAC;CAEtD,QAAmB;EACjB,IAAI,CAACO,EAAQ,GAAG;EAChB,IAAME,IAAOrB,EAAI,iBAAiB;EAGlC,IAFI,CAACqB,KAED,CAACd,EAAI,aAAa,GAAG;EAEzB,IAAMe,IAAKD,EAAK,IAAId,EAAI,EAAE,GACpBgB,IAAKF,EAAK,IAAId,EAAI,EAAE;EAa1B,AAVAW,EAAe;GAAE,GAAGI;GAAI,GAAGC;EAAG,CAAC,GAG/BvB,EAAI,sBAAsB,GAO1B,4BAA4BkB,EAAe;GAAE,GAAG;GAAG,GAAG;EAAE,CAAC,CAAC;CAC5D,CAAC;CAED,IAAMM,IAAaX,QAAiB;EAClC,IAAMY,IAASR,EAAY;EAC3B,IAAI,CAACQ,GAAQ,OAAO,CAAC;EACrB,IAAMC,IAASD,EAAO,MAAM,KAAKA,EAAO,MAAM;EAC9C,OAAO;GACL,WAAW,aAAaA,EAAO,EAAE,MAAMA,EAAO,EAAE;GAGhD,YAAYC,IAAS,yBAAyB,KAAA;EAChD;CACF,CAAC;CA0CD,OApCAC,GAAc,MAAwB;EACpC,IAAMC,IAAUhB,EAAU,GACpBiB,IAAKxB,EAAe;EAE1B,IAAIuB,GACF,EAAW,EAAI;OACV,IAAIE,KAAcD,GAAI;GAC3B,IAAI7B,EAAI,6BAA6B,GAInC,EAAW,EAAK;QACX;IACL,IAAM+B,KAAsB,MAAsB;KAEhD,AAAI,EAAE,WAAWF,KACjBT,EAAW,EAAK;IAClB;IAEA,AADAS,EAAG,iBAAiB,gBAAgBE,CAAkB,GACtDC,QACEH,EAAG,oBAAoB,gBAAgBE,CAAkB,CAC3D;IAEA,IAAME,IAAW,OAAO,iBAChBb,EAAW,EAAK,GACtBtB,CACF;IACA,QAAgB,OAAO,aAAamC,CAAQ,CAAC;GAC/C;EACF,OAAO,AAAKL,KACVR,EAAW,EAAK;EAGlB,OAAOQ;CACT,GAAGhB,EAAU,CAAC,GAEP;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipGroup.context.js","names":[],"sources":["../../../../src/components/tooltip/TooltipGroup/TooltipGroup.context.ts"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\nimport type { Rect } from \"~/lib\";\n\nexport interface ActiveTooltipEntry {\n /** 读取这个 tooltip 浮层此刻的实时矩形,供下一个抢占它的 tooltip 当\"滑入起点\"用 */\n rect: () => Rect | undefined;\n /** 立即关闭(跳过 closeDelay 和退场动画)——组内切换到别的 trigger 时调用 */\n forceClose: () => void;\n}\n\nexport interface TooltipGroupContextValue {\n /** 打开时注册自己为\"组内当前活跃的 tooltip\",返回取消注册函数(关闭/卸载时调用) */\n registerActive: (entry: ActiveTooltipEntry) => () => void;\n /**\n * 组内某个 tooltip 即将打开时调用:\n * 如果组里当前已经有一个活跃的 tooltip,立即强制关闭它、拿到它此刻的矩形\n * 并返回(用作平移过渡的起点);如果组内当前没有任何活跃 tooltip,返回\n * undefined,调用方应该走正常的 openDelay 流程。\n *\n * 用\"是否存在活跃 tooltip\"而不是\"上一个关闭后多久之内\"这种时间窗口来判断,\n * 是为了精确匹配\"旧的还在退场倒计时里、这时候 hover 了别的 trigger\"这个场景——\n * 这种情况下旧的严格来说还没真正关闭(open() 依然是 true),基于时间窗口的\n * 判断会因为\"还没关闭、没触发通知\"而错过这次协调,直接查\"当前活跃\"更可靠。\n */\n claim: () => Rect | undefined;\n}\n\nexport const TooltipGroupContext = createContext<TooltipGroupContextValue>();\n\n/**\n * 注意:和其他 useXxxContext 不同,这里缺失 context 时不抛错——\n * <TooltipGroup> 是可选的,单独使用 <Tooltip> 不需要包一层。\n */\nexport function useTooltipGroupContext(): TooltipGroupContextValue | undefined {\n return useContext(TooltipGroupContext);\n}\n"],"mappings":";;AA2BA,
|
|
1
|
+
{"version":3,"file":"TooltipGroup.context.js","names":["TooltipGroupContext","createContext","useTooltipGroupContext","useContext"],"sources":["../../../../src/components/tooltip/TooltipGroup/TooltipGroup.context.ts"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\nimport type { Rect } from \"~/lib\";\n\nexport interface ActiveTooltipEntry {\n /** 读取这个 tooltip 浮层此刻的实时矩形,供下一个抢占它的 tooltip 当\"滑入起点\"用 */\n rect: () => Rect | undefined;\n /** 立即关闭(跳过 closeDelay 和退场动画)——组内切换到别的 trigger 时调用 */\n forceClose: () => void;\n}\n\nexport interface TooltipGroupContextValue {\n /** 打开时注册自己为\"组内当前活跃的 tooltip\",返回取消注册函数(关闭/卸载时调用) */\n registerActive: (entry: ActiveTooltipEntry) => () => void;\n /**\n * 组内某个 tooltip 即将打开时调用:\n * 如果组里当前已经有一个活跃的 tooltip,立即强制关闭它、拿到它此刻的矩形\n * 并返回(用作平移过渡的起点);如果组内当前没有任何活跃 tooltip,返回\n * undefined,调用方应该走正常的 openDelay 流程。\n *\n * 用\"是否存在活跃 tooltip\"而不是\"上一个关闭后多久之内\"这种时间窗口来判断,\n * 是为了精确匹配\"旧的还在退场倒计时里、这时候 hover 了别的 trigger\"这个场景——\n * 这种情况下旧的严格来说还没真正关闭(open() 依然是 true),基于时间窗口的\n * 判断会因为\"还没关闭、没触发通知\"而错过这次协调,直接查\"当前活跃\"更可靠。\n */\n claim: () => Rect | undefined;\n}\n\nexport const TooltipGroupContext = createContext<TooltipGroupContextValue>();\n\n/**\n * 注意:和其他 useXxxContext 不同,这里缺失 context 时不抛错——\n * <TooltipGroup> 是可选的,单独使用 <Tooltip> 不需要包一层。\n */\nexport function useTooltipGroupContext(): TooltipGroupContextValue | undefined {\n return useContext(TooltipGroupContext);\n}\n"],"mappings":";;AA2BA,IAAaA,IAAsBC,EAAwC;AAM3E,SAAgBC,IAA+D;CAC7E,OAAOC,EAAWH,CAAmB;AACvC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TooltipGroupProps } from './TooltipGroup.types';
|
|
2
|
-
export declare function TooltipGroup(props: TooltipGroupProps): import(
|
|
2
|
+
export declare function TooltipGroup(props: TooltipGroupProps): import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipGroup.js","names":["TooltipGroupContext","ActiveTooltipEntry","TooltipGroupContextValue","TooltipGroupProps","TooltipGroup","props","activeEntry","registerActive","entry","undefined","claim","rect","forceClose","width","height","ctx","_$createComponent","Provider","value","children"],"sources":["../../../../src/components/tooltip/TooltipGroup/TooltipGroup.tsx"],"sourcesContent":["import { TooltipGroupContext } from \"./TooltipGroup.context\";\nimport type {\n ActiveTooltipEntry,\n TooltipGroupContextValue,\n} from \"./TooltipGroup.context\";\nimport type { TooltipGroupProps } from \"./TooltipGroup.types\";\n\nexport function TooltipGroup(props: TooltipGroupProps) {\n // 用一个模块外可变量而不是 Solid signal 存\"当前活跃条目\"是有意的:\n // 这纯粹是组件间协调用的内部状态,不需要驱动任何渲染,用 signal 反而会\n // 引入不必要的响应式开销和多余的重渲染触发。\n let activeEntry: ActiveTooltipEntry | undefined;\n\n const registerActive: TooltipGroupContextValue[\"registerActive\"] = (\n entry,\n ) => {\n activeEntry = entry;\n return () => {\n // 只清自己注册的那条,避免\"A 还没来得及 unregister,B 已经抢注册\"时,\n // A 的 cleanup 误把 B 刚设置的 activeEntry 清掉。\n if (activeEntry === entry) activeEntry = undefined;\n };\n };\n\n const claim: TooltipGroupContextValue[\"claim\"] = () => {\n if (!activeEntry) return undefined;\n const rect = activeEntry.rect();\n activeEntry.forceClose();\n activeEntry = undefined;\n\n // 防御性检查:一个真实可见的 tooltip 不可能宽高都是 0——如果读到的是\n // 这种全 0 矩形,大概率是读到了一个已经从 DOM 里摘除的 detached 元素\n // (getBoundingClientRect 规范规定这种情况下就是全 0)。这种情况下\n // 宁可放弃这次平移过渡(新 tooltip 走正常的 openDelay 流程),也不要\n // 把 (0,0) 当成合法的滑入起点,出现\"从左上角滑入\"这种明显错误的观感。\n if (!rect || (rect.width === 0 && rect.height === 0)) return undefined;\n return rect;\n };\n\n const ctx: TooltipGroupContextValue = { registerActive, claim };\n\n return (\n <TooltipGroupContext.Provider value={ctx}>\n {props.children}\n </TooltipGroupContext.Provider>\n );\n}\n"],"mappings":";;;AAOA,SAAgBI,EAAaC,GAA0B;CAIrD,IAAIC;CA8BJ,OAAAU,EACGhB,EAAoBiB,UAAQ;EAACC,OAAOH;GAHCR,iBAzBtCC,OAEAF,IAAcE,SACD;IAGX,AAAIF,MAAgBE,MAAOF,IAAcG,KAAAA;GAC3C;GAkBsDC,aAfD;IACrD,IAAI,CAACJ,GAAa;IAClB,IAAMK,IAAOL,EAAYK,KAAK;
|
|
1
|
+
{"version":3,"file":"TooltipGroup.js","names":["TooltipGroupContext","ActiveTooltipEntry","TooltipGroupContextValue","TooltipGroupProps","TooltipGroup","props","activeEntry","registerActive","entry","undefined","claim","rect","forceClose","width","height","ctx","_$createComponent","Provider","value","children","_$createComponent","TooltipGroup","activeEntry","createComponent","TooltipGroupContext","entry","rect","props"],"sources":["../../../../src/components/tooltip/TooltipGroup/TooltipGroup.tsx"],"sourcesContent":["import { TooltipGroupContext } from \"./TooltipGroup.context\";\nimport type {\n ActiveTooltipEntry,\n TooltipGroupContextValue,\n} from \"./TooltipGroup.context\";\nimport type { TooltipGroupProps } from \"./TooltipGroup.types\";\n\nexport function TooltipGroup(props: TooltipGroupProps) {\n // 用一个模块外可变量而不是 Solid signal 存\"当前活跃条目\"是有意的:\n // 这纯粹是组件间协调用的内部状态,不需要驱动任何渲染,用 signal 反而会\n // 引入不必要的响应式开销和多余的重渲染触发。\n let activeEntry: ActiveTooltipEntry | undefined;\n\n const registerActive: TooltipGroupContextValue[\"registerActive\"] = (\n entry,\n ) => {\n activeEntry = entry;\n return () => {\n // 只清自己注册的那条,避免\"A 还没来得及 unregister,B 已经抢注册\"时,\n // A 的 cleanup 误把 B 刚设置的 activeEntry 清掉。\n if (activeEntry === entry) activeEntry = undefined;\n };\n };\n\n const claim: TooltipGroupContextValue[\"claim\"] = () => {\n if (!activeEntry) return undefined;\n const rect = activeEntry.rect();\n activeEntry.forceClose();\n activeEntry = undefined;\n\n // 防御性检查:一个真实可见的 tooltip 不可能宽高都是 0——如果读到的是\n // 这种全 0 矩形,大概率是读到了一个已经从 DOM 里摘除的 detached 元素\n // (getBoundingClientRect 规范规定这种情况下就是全 0)。这种情况下\n // 宁可放弃这次平移过渡(新 tooltip 走正常的 openDelay 流程),也不要\n // 把 (0,0) 当成合法的滑入起点,出现\"从左上角滑入\"这种明显错误的观感。\n if (!rect || (rect.width === 0 && rect.height === 0)) return undefined;\n return rect;\n };\n\n const ctx: TooltipGroupContextValue = { registerActive, claim };\n\n return (\n <TooltipGroupContext.Provider value={ctx}>\n {props.children}\n </TooltipGroupContext.Provider>\n );\n}\n"],"mappings":";;;AAOA,SAAgBI,EAAaC,GAA0B;CAIrD,IAAIC;CA8BJ,OAAAU,EACGhB,EAAoBiB,UAAQ;EAACC,OAAOH;GAHCR,iBAzBtCC,OAEAF,IAAcE,SACD;IAGX,AAAIF,MAAgBE,MAAOF,IAAcG,KAAAA;GAC3C;GAkBsDC,aAfD;IACrD,IAAI,CAACJ,GAAa;IAClB,IAAMK,IAAOL,EAAYK,KAAK;IAS9B,IARAL,EAAYM,WAAW,GACvBN,IAAcG,KAAAA,GAOV,GAACE,KAASA,EAAKE,UAAU,KAAKF,EAAKG,WAAW,IAClD,OAAOH;GACT;EAKuCI;EAAG,IAAAI,WAAA;GAAA,OACrCd,EAAMc;EAAQ;CAAA,CAAA;AAGrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipProvider.context.js","names":[],"sources":["../../../../src/components/tooltip/TooltipProvider/TooltipProvider.context.ts"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\nimport type { TooltipProviderContextValue } from \"./TooltipProvider.types\";\n\nexport const TooltipProviderContext =\n createContext<TooltipProviderContextValue>();\n\nexport function useTooltipProviderContext():\n | TooltipProviderContextValue\n | undefined {\n return useContext(TooltipProviderContext);\n}\n"],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"TooltipProvider.context.js","names":["TooltipProviderContext","createContext","useTooltipProviderContext","useContext"],"sources":["../../../../src/components/tooltip/TooltipProvider/TooltipProvider.context.ts"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\nimport type { TooltipProviderContextValue } from \"./TooltipProvider.types\";\n\nexport const TooltipProviderContext =\n createContext<TooltipProviderContextValue>();\n\nexport function useTooltipProviderContext():\n | TooltipProviderContextValue\n | undefined {\n return useContext(TooltipProviderContext);\n}\n"],"mappings":";;AAGA,IAAaA,IACXC,EAA2C;AAE7C,SAAgBC,IAEF;CACZ,OAAOC,EAAWH,CAAsB;AAC1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipProvider.js","names":["createMemo","JSX","TooltipProviderContext","TooltipProviderContextValue","TooltipProviderProps","TooltipProvider","props","Element","delay","closeDelay","ctx","_$createComponent","Provider","value","children"],"sources":["../../../../src/components/tooltip/TooltipProvider/TooltipProvider.tsx"],"sourcesContent":["import { createMemo, type JSX } from \"solid-js\";\nimport { TooltipProviderContext } from \"./TooltipProvider.context\";\nimport type {\n TooltipProviderContextValue,\n TooltipProviderProps,\n} from \"./TooltipProvider.types\";\n\nexport function TooltipProvider(props: TooltipProviderProps): JSX.Element {\n const delay = createMemo(() => props.delay ?? 0);\n const closeDelay = createMemo(() => props.closeDelay ?? 150);\n\n const ctx: TooltipProviderContextValue = { delay, closeDelay };\n\n return (\n <TooltipProviderContext.Provider value={ctx}>\n {props.children}\n </TooltipProviderContext.Provider>\n );\n}\n"],"mappings":";;;;AAOA,SAAgBK,EAAgBC,GAA0C;CAIxE,IAAMI,IAAmC;EAAEF,OAH7BR,QAAiBM,EAAME,SAAS,CAGHA;EAAOC,YAF/BT,QAAiBM,EAAMG,cAAc,GAENA;CAAW;CAE7D,OAAAE,EACGT,EAAuBU,UAAQ;EAACC,OAAOH;EAAG,IAAAI,WAAA;GAAA,OACxCR,EAAMQ;EAAQ;CAAA,CAAA;AAGrB"}
|
|
1
|
+
{"version":3,"file":"TooltipProvider.js","names":["createMemo","JSX","TooltipProviderContext","TooltipProviderContextValue","TooltipProviderProps","TooltipProvider","props","Element","delay","closeDelay","ctx","_$createComponent","Provider","value","children","_$createComponent","TooltipProvider","ctx","createMemo","props","createComponent","TooltipProviderContext"],"sources":["../../../../src/components/tooltip/TooltipProvider/TooltipProvider.tsx"],"sourcesContent":["import { createMemo, type JSX } from \"solid-js\";\nimport { TooltipProviderContext } from \"./TooltipProvider.context\";\nimport type {\n TooltipProviderContextValue,\n TooltipProviderProps,\n} from \"./TooltipProvider.types\";\n\nexport function TooltipProvider(props: TooltipProviderProps): JSX.Element {\n const delay = createMemo(() => props.delay ?? 0);\n const closeDelay = createMemo(() => props.closeDelay ?? 150);\n\n const ctx: TooltipProviderContextValue = { delay, closeDelay };\n\n return (\n <TooltipProviderContext.Provider value={ctx}>\n {props.children}\n </TooltipProviderContext.Provider>\n );\n}\n"],"mappings":";;;;AAOA,SAAgBK,EAAgBC,GAA0C;CAIxE,IAAMI,IAAmC;EAAEF,OAH7BR,QAAiBM,EAAME,SAAS,CAGHA;EAAOC,YAF/BT,QAAiBM,EAAMG,cAAc,GAENA;CAAW;CAE7D,OAAAE,EACGT,EAAuBU,UAAQ;EAACC,OAAOH;EAAG,IAAAI,WAAA;GAAA,OACxCR,EAAMQ;EAAQ;CAAA,CAAA;AAGrB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ValidComponent } from 'solid-js';
|
|
2
2
|
import { TooltipTriggerProps } from './TooltipTrigger.types';
|
|
3
3
|
import { Button } from '../../button';
|
|
4
|
-
export declare const TooltipTrigger: <T extends ValidComponent = typeof Button<"button">>(props: TooltipTriggerProps<T>) => import(
|
|
4
|
+
export declare const TooltipTrigger: <T extends ValidComponent = typeof Button<"button">>(props: TooltipTriggerProps<T>) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipTrigger.js","names":["ValidComponent","Dynamic","useTooltipTrigger","TooltipTriggerProps","Button","mergeRefs","TooltipTrigger","props","T","ctx","attachListeners","_$createComponent","_$mergeProps","component","ref","r$","_ref$","setReference","aria-describedby","_$memo","open","contentId","undefined","data-state"],"sources":["../../../../src/components/tooltip/TooltipTrigger/TooltipTrigger.tsx"],"sourcesContent":["import type { ValidComponent } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\n\nimport { useTooltipTrigger } from \"./useTooltipTrigger\";\nimport type { TooltipTriggerProps } from \"./TooltipTrigger.types\";\n\nimport { Button } from \"~/components/button\";\nimport { mergeRefs } from \"~/utils\";\n\nexport const TooltipTrigger = <\n T extends ValidComponent = typeof Button<\"button\">,\n>(\n props: TooltipTriggerProps<T>,\n) => {\n const { ctx, attachListeners } = useTooltipTrigger();\n\n return (\n <Dynamic\n {...props}\n component={(props.component as ValidComponent) ?? Button<\"button\">}\n ref={mergeRefs(ctx.setReference, props.ref, attachListeners)}\n aria-describedby={ctx.open() ? ctx.contentId : undefined}\n data-state={ctx.open() ? \"open\" : \"closed\"}\n // data-disabled={props.disabled ? \"\" : undefined}\n />\n );\n};\n"],"mappings":";;;;;AASA,IAAaM,KAGXC,MACG;CACH,IAAM,EAAEE,QAAKC,uBAAoBR,EAAkB;CAEnD,OAAAS,EACGV,GAAOW,EACFL,GAAK;EAAA,IACTM,YAAS;GAAA,OAAGN,EAAMM,aAAgCT;EAAgB;EAAAU,IAAAC,GAAA;GAAA,IAAAC,IAC7DX,EAAUI,EAAIQ,cAAcV,EAAMO,KAAKJ,CAAe;GAAC,OAAAM,KAAA,cAAAA,EAAAD,CAAA;EAAA;EAAA,IAAA,qBAAA;GAAA,OAC1CI,QAAA,CAAA,CAAAV,EAAIW,KAAK,CAAC,CAAA,CAAA,IAAGX,EAAIY,YAAYC,KAAAA;EAAS;EAAA,IAAA,eAAA;GAAA,OAC5Cb,EAAIW,KAAK,IAAI,SAAS;EAAQ;CAAA,CAAA,CAAA;AAIhD"}
|
|
1
|
+
{"version":3,"file":"TooltipTrigger.js","names":["ValidComponent","Dynamic","useTooltipTrigger","TooltipTriggerProps","Button","mergeRefs","TooltipTrigger","props","T","ctx","attachListeners","_$createComponent","_$mergeProps","component","ref","r$","_ref$","setReference","aria-describedby","_$memo","open","contentId","undefined","data-state","_$createComponent","_$mergeProps","_$memo","TooltipTrigger","useTooltipTrigger","createComponent","Dynamic","mergeProps","props","Button","_ref$","mergeRefs","ctx","attachListeners","r$","memo"],"sources":["../../../../src/components/tooltip/TooltipTrigger/TooltipTrigger.tsx"],"sourcesContent":["import type { ValidComponent } from \"solid-js\";\nimport { Dynamic } from \"solid-js/web\";\n\nimport { useTooltipTrigger } from \"./useTooltipTrigger\";\nimport type { TooltipTriggerProps } from \"./TooltipTrigger.types\";\n\nimport { Button } from \"~/components/button\";\nimport { mergeRefs } from \"~/utils\";\n\nexport const TooltipTrigger = <\n T extends ValidComponent = typeof Button<\"button\">,\n>(\n props: TooltipTriggerProps<T>,\n) => {\n const { ctx, attachListeners } = useTooltipTrigger();\n\n return (\n <Dynamic\n {...props}\n component={(props.component as ValidComponent) ?? Button<\"button\">}\n ref={mergeRefs(ctx.setReference, props.ref, attachListeners)}\n aria-describedby={ctx.open() ? ctx.contentId : undefined}\n data-state={ctx.open() ? \"open\" : \"closed\"}\n // data-disabled={props.disabled ? \"\" : undefined}\n />\n );\n};\n"],"mappings":";;;;;AASA,IAAaM,KAGXC,MACG;CACH,IAAM,EAAEE,QAAKC,uBAAoBR,EAAkB;CAEnD,OAAAS,EACGV,GAAOW,EACFL,GAAK;EAAA,IACTM,YAAS;GAAA,OAAGN,EAAMM,aAAgCT;EAAgB;EAAAU,IAAAC,GAAA;GAAA,IAAAC,IAC7DX,EAAUI,EAAIQ,cAAcV,EAAMO,KAAKJ,CAAe;GAAC,OAAAM,KAAA,cAAAA,EAAAD,CAAA;EAAA;EAAA,IAAA,qBAAA;GAAA,OAC1CI,QAAA,CAAA,CAAAV,EAAIW,KAAK,CAAC,CAAA,CAAA,IAAGX,EAAIY,YAAYC,KAAAA;EAAS;EAAA,IAAA,eAAA;GAAA,OAC5Cb,EAAIW,KAAK,IAAI,SAAS;EAAQ;CAAA,CAAA,CAAA;AAIhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltipTrigger.js","names":[],"sources":["../../../../src/components/tooltip/TooltipTrigger/useTooltipTrigger.ts"],"sourcesContent":["import { onCleanup } from \"solid-js\";\nimport { useTooltipContext } from \"../Tooltip/Tooltip.context\";\n\nexport interface UseTooltipTriggerResult {\n ctx: ReturnType<typeof useTooltipContext>;\n /**\n * 把打开/关闭相关的原生事件监听器绑定到真正的 DOM 元素上(通过 ref 调用)。\n * 用 addEventListener 而不是 JSX 的 onXxx prop,是为了不占用这些 prop 名——\n * 调用方可以在 <TooltipTrigger onClick={...} onMouseEnter={...}> 上自由传\n * 自己的原生事件处理,两者是完全独立的两套机制(一个走 Solid 的事件系统,\n * 一个是原生 addEventListener),互不覆盖、都会正常触发。\n */\n attachListeners: (el: Element) => void;\n}\n\n/**\n * 封装 TooltipTrigger 需要绑定的所有事件逻辑:\n * - pointerenter/pointerleave(悬停进入/离开)走 openDelay/closeDelay\n * - focus/blur(键盘导航)跳过延迟,立即开关——这是无障碍要求,键盘用户不该被迫等待\n * - Escape 立即关闭,并阻止冒泡(避免被外层其他也监听 Escape 的逻辑重复处理)\n * - mousedown 立即关闭——贴近 shadcn/Radix 的行为:用户开始点击这个元素,\n * 就意味着要跟它交互了,tooltip 这时候还杵在那儿会挡视线,应该立刻让路,\n * 不用等 pointerleave 或者走 closeDelay。\n *\n * mousedown 和 focus 之间有一个容易踩的坑:原生事件顺序是\n * mousedown → focus → mouseup → click——点击一个可聚焦元素(比如 <button>),\n * 浏览器会在 mousedown 之后自动给它 focus。如果不做处理,mousedown 刚关掉\n * tooltip,紧跟着浏览器自动触发的 focus 又会把它立刻重新打开,两条逻辑打架。\n * 用 isPointerDown 标记\"这次 focus 是不是紧跟在点击后面被动触发的\",是的话\n * 就跳过重新打开,只有真正的键盘 Tab 导航触发的 focus 才会打开 tooltip。\n */\nexport function useTooltipTrigger(): UseTooltipTriggerResult {\n const ctx = useTooltipContext(\"TooltipTrigger\");\n\n const attachListeners = (el: Element) => {\n let isPointerDown = false;\n\n const onPointerEnter = () => {\n if (!ctx.disabled()) ctx.requestOpen();\n };\n const onPointerLeave = () => {\n ctx.requestClose();\n };\n const onFocus = () => {\n // 紧跟在 mousedown 后面的这次 focus 是浏览器自动带出来的副作用,\n // 不代表用户在用键盘导航,不应该重新打开刚被 mousedown 关掉的 tooltip。\n if (isPointerDown) return;\n if (!ctx.disabled()) ctx.openImmediate();\n };\n const onBlur = () => {\n ctx.closeImmediate();\n };\n const onKeyDown = (e: Event) => {\n const keyboardEvent = e as KeyboardEvent;\n if (keyboardEvent.key === \"Escape\" && ctx.open()) {\n keyboardEvent.stopPropagation();\n ctx.closeImmediate();\n }\n };\n const onMouseDown = () => {\n isPointerDown = true;\n if (ctx.disabled()) return;\n if (ctx.open()) ctx.closeImmediate();\n };\n // 标记要在 mouseup 时清掉,而且特意监听 document 而不是元素自己的\n // mouseup——如果鼠标按下后拖动到元素外面再松开,元素自己收不到 mouseup,\n // 标记会一直卡在 true,导致后续真正的键盘 focus 也被误伤跳过。\n const onDocumentMouseUp = () => {\n isPointerDown = false;\n };\n\n el.addEventListener(\"pointerenter\", onPointerEnter);\n el.addEventListener(\"pointerleave\", onPointerLeave);\n el.addEventListener(\"focus\", onFocus);\n el.addEventListener(\"blur\", onBlur);\n el.addEventListener(\"keydown\", onKeyDown);\n el.addEventListener(\"mousedown\", onMouseDown);\n document.addEventListener(\"mouseup\", onDocumentMouseUp);\n\n onCleanup(() => {\n el.removeEventListener(\"pointerenter\", onPointerEnter);\n el.removeEventListener(\"pointerleave\", onPointerLeave);\n el.removeEventListener(\"focus\", onFocus);\n el.removeEventListener(\"blur\", onBlur);\n el.removeEventListener(\"keydown\", onKeyDown);\n el.removeEventListener(\"mousedown\", onMouseDown);\n document.removeEventListener(\"mouseup\", onDocumentMouseUp);\n });\n };\n\n return { ctx, attachListeners };\n}\n"],"mappings":";;;AA+BA,
|
|
1
|
+
{"version":3,"file":"useTooltipTrigger.js","names":["useTooltipTrigger","ctx","useTooltipContext","isPointerDown","onPointerEnter","onPointerLeave","onFocus","onBlur","onKeyDown","keyboardEvent","onMouseDown","onDocumentMouseUp","el","onCleanup"],"sources":["../../../../src/components/tooltip/TooltipTrigger/useTooltipTrigger.ts"],"sourcesContent":["import { onCleanup } from \"solid-js\";\nimport { useTooltipContext } from \"../Tooltip/Tooltip.context\";\n\nexport interface UseTooltipTriggerResult {\n ctx: ReturnType<typeof useTooltipContext>;\n /**\n * 把打开/关闭相关的原生事件监听器绑定到真正的 DOM 元素上(通过 ref 调用)。\n * 用 addEventListener 而不是 JSX 的 onXxx prop,是为了不占用这些 prop 名——\n * 调用方可以在 <TooltipTrigger onClick={...} onMouseEnter={...}> 上自由传\n * 自己的原生事件处理,两者是完全独立的两套机制(一个走 Solid 的事件系统,\n * 一个是原生 addEventListener),互不覆盖、都会正常触发。\n */\n attachListeners: (el: Element) => void;\n}\n\n/**\n * 封装 TooltipTrigger 需要绑定的所有事件逻辑:\n * - pointerenter/pointerleave(悬停进入/离开)走 openDelay/closeDelay\n * - focus/blur(键盘导航)跳过延迟,立即开关——这是无障碍要求,键盘用户不该被迫等待\n * - Escape 立即关闭,并阻止冒泡(避免被外层其他也监听 Escape 的逻辑重复处理)\n * - mousedown 立即关闭——贴近 shadcn/Radix 的行为:用户开始点击这个元素,\n * 就意味着要跟它交互了,tooltip 这时候还杵在那儿会挡视线,应该立刻让路,\n * 不用等 pointerleave 或者走 closeDelay。\n *\n * mousedown 和 focus 之间有一个容易踩的坑:原生事件顺序是\n * mousedown → focus → mouseup → click——点击一个可聚焦元素(比如 <button>),\n * 浏览器会在 mousedown 之后自动给它 focus。如果不做处理,mousedown 刚关掉\n * tooltip,紧跟着浏览器自动触发的 focus 又会把它立刻重新打开,两条逻辑打架。\n * 用 isPointerDown 标记\"这次 focus 是不是紧跟在点击后面被动触发的\",是的话\n * 就跳过重新打开,只有真正的键盘 Tab 导航触发的 focus 才会打开 tooltip。\n */\nexport function useTooltipTrigger(): UseTooltipTriggerResult {\n const ctx = useTooltipContext(\"TooltipTrigger\");\n\n const attachListeners = (el: Element) => {\n let isPointerDown = false;\n\n const onPointerEnter = () => {\n if (!ctx.disabled()) ctx.requestOpen();\n };\n const onPointerLeave = () => {\n ctx.requestClose();\n };\n const onFocus = () => {\n // 紧跟在 mousedown 后面的这次 focus 是浏览器自动带出来的副作用,\n // 不代表用户在用键盘导航,不应该重新打开刚被 mousedown 关掉的 tooltip。\n if (isPointerDown) return;\n if (!ctx.disabled()) ctx.openImmediate();\n };\n const onBlur = () => {\n ctx.closeImmediate();\n };\n const onKeyDown = (e: Event) => {\n const keyboardEvent = e as KeyboardEvent;\n if (keyboardEvent.key === \"Escape\" && ctx.open()) {\n keyboardEvent.stopPropagation();\n ctx.closeImmediate();\n }\n };\n const onMouseDown = () => {\n isPointerDown = true;\n if (ctx.disabled()) return;\n if (ctx.open()) ctx.closeImmediate();\n };\n // 标记要在 mouseup 时清掉,而且特意监听 document 而不是元素自己的\n // mouseup——如果鼠标按下后拖动到元素外面再松开,元素自己收不到 mouseup,\n // 标记会一直卡在 true,导致后续真正的键盘 focus 也被误伤跳过。\n const onDocumentMouseUp = () => {\n isPointerDown = false;\n };\n\n el.addEventListener(\"pointerenter\", onPointerEnter);\n el.addEventListener(\"pointerleave\", onPointerLeave);\n el.addEventListener(\"focus\", onFocus);\n el.addEventListener(\"blur\", onBlur);\n el.addEventListener(\"keydown\", onKeyDown);\n el.addEventListener(\"mousedown\", onMouseDown);\n document.addEventListener(\"mouseup\", onDocumentMouseUp);\n\n onCleanup(() => {\n el.removeEventListener(\"pointerenter\", onPointerEnter);\n el.removeEventListener(\"pointerleave\", onPointerLeave);\n el.removeEventListener(\"focus\", onFocus);\n el.removeEventListener(\"blur\", onBlur);\n el.removeEventListener(\"keydown\", onKeyDown);\n el.removeEventListener(\"mousedown\", onMouseDown);\n document.removeEventListener(\"mouseup\", onDocumentMouseUp);\n });\n };\n\n return { ctx, attachListeners };\n}\n"],"mappings":";;;AA+BA,SAAgBA,IAA6C;CAC3D,IAAMC,IAAMC,EAAkB,gBAAgB;CA0D9C,OAAO;EAAE;EAAK,kBAxDW,MAAgB;GACvC,IAAIC,IAAgB,IAEdC,UAAuB;IAC3B,AAAKH,EAAI,SAAS,KAAGA,EAAI,YAAY;GACvC,GACMI,UAAuB;IAC3B,EAAI,aAAa;GACnB,GACMC,UAAgB;IAGpB,AAAIH,KACCF,EAAI,SAAS,KAAGA,EAAI,cAAc;GACzC,GACMM,UAAe;IACnB,EAAI,eAAe;GACrB,GACMC,KAAa,MAAa;IAC9B,IAAMC,IAAgB;IACtB,AAAIA,EAAc,QAAQ,YAAYR,EAAI,KAAK,MAC7CQ,EAAc,gBAAgB,GAC9BR,EAAI,eAAe;GAEvB,GACMS,UAAoB;IAExB,AADA,IAAgB,IACZ,GAAI,SAAS,KACbT,EAAI,KAAK,KAAGA,EAAI,eAAe;GACrC,GAIMU,UAA0B;IAC9B,IAAgB;GAClB;GAUA,AARAC,EAAG,iBAAiB,gBAAgBR,CAAc,GAClDQ,EAAG,iBAAiB,gBAAgBP,CAAc,GAClDO,EAAG,iBAAiB,SAASN,CAAO,GACpCM,EAAG,iBAAiB,QAAQL,CAAM,GAClCK,EAAG,iBAAiB,WAAWJ,CAAS,GACxCI,EAAG,iBAAiB,aAAaF,CAAW,GAC5C,SAAS,iBAAiB,WAAWC,CAAiB,GAEtDE,QAAgB;IAOd,AANAD,EAAG,oBAAoB,gBAAgBR,CAAc,GACrDQ,EAAG,oBAAoB,gBAAgBP,CAAc,GACrDO,EAAG,oBAAoB,SAASN,CAAO,GACvCM,EAAG,oBAAoB,QAAQL,CAAM,GACrCK,EAAG,oBAAoB,WAAWJ,CAAS,GAC3CI,EAAG,oBAAoB,aAAaF,CAAW,GAC/C,SAAS,oBAAoB,WAAWC,CAAiB;GAC3D,CAAC;EACH;CAE8B;AAChC"}
|
package/dist/hooks/index.d.ts
CHANGED
package/dist/hooks/index.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import { useFontLoader as e } from "./useFontLoader.js";
|
|
2
|
-
|
|
2
|
+
import { useScrollLock as t } from "./useScrollLock.js";
|
|
3
|
+
import { useScrollEdges as n } from "./useScrollEdges.js";
|
|
4
|
+
export { e as useFontLoader, n as useScrollEdges, t as useScrollLock };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFontLoader.js","names":[],"sources":["../../src/hooks/useFontLoader.ts"],"sourcesContent":["import { createEffect, onCleanup } from \"solid-js\";\n\n// ─── 字体配置表 ────────────────────────────────────────────────\nconst FONT_MAP = {\n en: { family: \"Inter\", weights: \"400;500;700\" },\n fr: { family: \"Inter\", weights: \"400;500;700\" },\n de: { family: \"Inter\", weights: \"400;500;700\" },\n ru: { family: \"Noto+Sans\", weights: \"400;500;700\" },\n \"zh-hans\": { family: \"Noto+Sans+SC\", weights: \"400;500;700\" },\n \"zh-hant\": { family: \"Noto+Sans+TC\", weights: \"400;500;700\" },\n ja: { family: \"Noto+Sans+JP\", weights: \"400;500;700\" },\n ko: { family: \"Noto+Sans+KR\", weights: \"400;500;700\" },\n hi: { family: \"Noto+Sans+Devanagari\", weights: \"400;500;700\" },\n th: { family: \"Noto+Sans+Thai\", weights: \"400;500;700\" },\n bn: { family: \"Noto+Sans+Bengali\", weights: \"400;500;700\" },\n ar: { family: \"Noto+Sans+Arabic\", weights: \"400;500;700\" },\n he: { family: \"Noto+Sans+Hebrew\", weights: \"400;500;700\" },\n fa: { family: \"Noto+Sans+Arabic\", weights: \"400;500;700\" },\n} as const satisfies Record<string, { family: string; weights: string }>;\n\nexport type Lang = keyof typeof FONT_MAP;\n\n// ─── 已加载字体缓存(模块级单例,避免重复插入) ──────────────\nconst loaded = new Set<string>();\n\nfunction filterValidLangs(langs: string[]): Lang[] {\n return langs.filter((lang): lang is Lang => {\n if (lang in FONT_MAP) return true;\n if (!import.meta.env.PROD) {\n console.warn(\n `[useFontLoader] unsupported lang: \"${lang}\". ` +\n `Supported values: ${Object.keys(FONT_MAP).join(\", \")}`,\n );\n }\n return false;\n });\n}\n\nexport interface UseFontLoaderOptions {\n /**\n * 要加载的字体对应的语言\n *\n * 默认为`en`\n */\n langs?: Lang | Lang[];\n\n /**\n * 指定 data-lang 写入的目标元素。\n * - 传入 ref:仅在该元素上生效,适合局部语言切换。\n * - 不传(undefined):写入 ,全局生效。\n * 卸载时自动恢复目标元素的原始 data-lang 值。\n *\n * apply 为 false 时此选项无效。\n */\n targetRef?: HTMLElement;\n\n /**\n * 是否将 data-lang 写入目标元素以应用字体样式。\n * - true(默认):写入 data-lang,字体立即生效。\n * - false:仅预加载字体资源,不修改任何 DOM,\n * 适合提前预热用户可能切换到的语言字体。\n * @default\n */\n apply?: boolean;\n}\n\n/* ----------------------------------------------------------------\n 工具:插入 Google Fonts\n ---------------------------------------------------------------- */\nfunction loadGoogleFonts(langs: Lang[]): void {\n const toLoad = langs.filter((lang) => !loaded.has(FONT_MAP[lang].family));\n if (toLoad.length === 0) return;\n\n const families = [\n ...new Set(\n toLoad.map((lang) => {\n const { family, weights } = FONT_MAP[lang];\n return `family=${family}:wght@${weights}`;\n }),\n ),\n ];\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = `https://fonts.googleapis.com/css2?${families.join(\"&\")}&display=swap`;\n\n document.head.appendChild(link);\n for (const lang of toLoad) {\n loaded.add(FONT_MAP[lang].family);\n }\n}\n\n// ─── Hook ─────────────────────────────────────────────────────\nexport function useFontLoader(options?: UseFontLoaderOptions) {\n const {\n langs = \"en\",\n targetRef = document.documentElement,\n apply = true,\n } = options ?? {};\n\n const langList = Array.isArray(langs) ? langs : [langs];\n const validLangs = filterValidLangs(langList);\n\n // --- 加载字体资源 ---\n createEffect(() => {\n loadGoogleFonts(validLangs);\n });\n\n // --- 将 data-lang 写入目标元素 ---\n createEffect(() => {\n if (!apply || validLangs.length === 0) return;\n\n // targetRef 未传或 ref.current 尚未挂载时,回退到\n const el = targetRef ?? document.documentElement;\n const lang = validLangs[0];\n const prev = el.getAttribute(\"data-lang\");\n\n el.setAttribute(\"data-lang\", lang);\n\n onCleanup(() => {\n // 卸载时恢复:原本有值则还原,原本无则移除\n if (prev === null) {\n el.removeAttribute(\"data-lang\");\n } else {\n el.setAttribute(\"data-lang\", prev);\n }\n });\n });\n}\n"],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"useFontLoader.js","names":["FONT_MAP","loaded","filterValidLangs","langs","lang","loadGoogleFonts","toLoad","families","family","weights","link","useFontLoader","options","validLangs","createEffect","apply","el","targetRef","prev","onCleanup"],"sources":["../../src/hooks/useFontLoader.ts"],"sourcesContent":["import { createEffect, onCleanup } from \"solid-js\";\n\n// ─── 字体配置表 ────────────────────────────────────────────────\nconst FONT_MAP = {\n en: { family: \"Inter\", weights: \"400;500;700\" },\n fr: { family: \"Inter\", weights: \"400;500;700\" },\n de: { family: \"Inter\", weights: \"400;500;700\" },\n ru: { family: \"Noto+Sans\", weights: \"400;500;700\" },\n \"zh-hans\": { family: \"Noto+Sans+SC\", weights: \"400;500;700\" },\n \"zh-hant\": { family: \"Noto+Sans+TC\", weights: \"400;500;700\" },\n ja: { family: \"Noto+Sans+JP\", weights: \"400;500;700\" },\n ko: { family: \"Noto+Sans+KR\", weights: \"400;500;700\" },\n hi: { family: \"Noto+Sans+Devanagari\", weights: \"400;500;700\" },\n th: { family: \"Noto+Sans+Thai\", weights: \"400;500;700\" },\n bn: { family: \"Noto+Sans+Bengali\", weights: \"400;500;700\" },\n ar: { family: \"Noto+Sans+Arabic\", weights: \"400;500;700\" },\n he: { family: \"Noto+Sans+Hebrew\", weights: \"400;500;700\" },\n fa: { family: \"Noto+Sans+Arabic\", weights: \"400;500;700\" },\n} as const satisfies Record<string, { family: string; weights: string }>;\n\nexport type Lang = keyof typeof FONT_MAP;\n\n// ─── 已加载字体缓存(模块级单例,避免重复插入) ──────────────\nconst loaded = new Set<string>();\n\nfunction filterValidLangs(langs: string[]): Lang[] {\n return langs.filter((lang): lang is Lang => {\n if (lang in FONT_MAP) return true;\n if (!import.meta.env.PROD) {\n console.warn(\n `[useFontLoader] unsupported lang: \"${lang}\". ` +\n `Supported values: ${Object.keys(FONT_MAP).join(\", \")}`,\n );\n }\n return false;\n });\n}\n\nexport interface UseFontLoaderOptions {\n /**\n * 要加载的字体对应的语言\n *\n * 默认为`en`\n */\n langs?: Lang | Lang[];\n\n /**\n * 指定 data-lang 写入的目标元素。\n * - 传入 ref:仅在该元素上生效,适合局部语言切换。\n * - 不传(undefined):写入 ,全局生效。\n * 卸载时自动恢复目标元素的原始 data-lang 值。\n *\n * apply 为 false 时此选项无效。\n */\n targetRef?: HTMLElement;\n\n /**\n * 是否将 data-lang 写入目标元素以应用字体样式。\n * - true(默认):写入 data-lang,字体立即生效。\n * - false:仅预加载字体资源,不修改任何 DOM,\n * 适合提前预热用户可能切换到的语言字体。\n * @default\n */\n apply?: boolean;\n}\n\n/* ----------------------------------------------------------------\n 工具:插入 Google Fonts\n ---------------------------------------------------------------- */\nfunction loadGoogleFonts(langs: Lang[]): void {\n const toLoad = langs.filter((lang) => !loaded.has(FONT_MAP[lang].family));\n if (toLoad.length === 0) return;\n\n const families = [\n ...new Set(\n toLoad.map((lang) => {\n const { family, weights } = FONT_MAP[lang];\n return `family=${family}:wght@${weights}`;\n }),\n ),\n ];\n\n const link = document.createElement(\"link\");\n link.rel = \"stylesheet\";\n link.href = `https://fonts.googleapis.com/css2?${families.join(\"&\")}&display=swap`;\n\n document.head.appendChild(link);\n for (const lang of toLoad) {\n loaded.add(FONT_MAP[lang].family);\n }\n}\n\n// ─── Hook ─────────────────────────────────────────────────────\nexport function useFontLoader(options?: UseFontLoaderOptions) {\n const {\n langs = \"en\",\n targetRef = document.documentElement,\n apply = true,\n } = options ?? {};\n\n const langList = Array.isArray(langs) ? langs : [langs];\n const validLangs = filterValidLangs(langList);\n\n // --- 加载字体资源 ---\n createEffect(() => {\n loadGoogleFonts(validLangs);\n });\n\n // --- 将 data-lang 写入目标元素 ---\n createEffect(() => {\n if (!apply || validLangs.length === 0) return;\n\n // targetRef 未传或 ref.current 尚未挂载时,回退到\n const el = targetRef ?? document.documentElement;\n const lang = validLangs[0];\n const prev = el.getAttribute(\"data-lang\");\n\n el.setAttribute(\"data-lang\", lang);\n\n onCleanup(() => {\n // 卸载时恢复:原本有值则还原,原本无则移除\n if (prev === null) {\n el.removeAttribute(\"data-lang\");\n } else {\n el.setAttribute(\"data-lang\", prev);\n }\n });\n });\n}\n"],"mappings":";;AAGA,IAAMA,IAAW;CACf,IAAI;EAAE,QAAQ;EAAS,SAAS;CAAc;CAC9C,IAAI;EAAE,QAAQ;EAAS,SAAS;CAAc;CAC9C,IAAI;EAAE,QAAQ;EAAS,SAAS;CAAc;CAC9C,IAAI;EAAE,QAAQ;EAAa,SAAS;CAAc;CAClD,WAAW;EAAE,QAAQ;EAAgB,SAAS;CAAc;CAC5D,WAAW;EAAE,QAAQ;EAAgB,SAAS;CAAc;CAC5D,IAAI;EAAE,QAAQ;EAAgB,SAAS;CAAc;CACrD,IAAI;EAAE,QAAQ;EAAgB,SAAS;CAAc;CACrD,IAAI;EAAE,QAAQ;EAAwB,SAAS;CAAc;CAC7D,IAAI;EAAE,QAAQ;EAAkB,SAAS;CAAc;CACvD,IAAI;EAAE,QAAQ;EAAqB,SAAS;CAAc;CAC1D,IAAI;EAAE,QAAQ;EAAoB,SAAS;CAAc;CACzD,IAAI;EAAE,QAAQ;EAAoB,SAAS;CAAc;CACzD,IAAI;EAAE,QAAQ;EAAoB,SAAS;CAAc;AAC3D,GAKMC,oBAAS,IAAI,IAAY;AAE/B,SAASC,EAAiB,GAAyB;CACjD,OAAOC,EAAM,QAAQ,MACfC,KAAQJ,CAQb;AACH;AAiCA,SAASK,EAAgB,GAAqB;CAC5C,IAAMC,IAASH,EAAM,QAAQ,MAAS,CAACF,EAAO,IAAID,EAASI,EAAK,CAAC,MAAM,CAAC;CACxE,IAAIE,EAAO,WAAW,GAAG;CAEzB,IAAMC,IAAW,CACf,GAAG,IAAI,IACLD,EAAO,KAAK,MAAS;EACnB,IAAM,EAAE,WAAQ,eAAYN,EAASI;EACrC,OAAO,UAAUI,EAAO,QAAQC;CAClC,CAAC,CACH,CACF,GAEMC,IAAO,SAAS,cAAc,MAAM;CAI1C,AAHA,EAAK,MAAM,cACX,EAAK,OAAO,qCAAqCH,EAAS,KAAK,GAAG,EAAE,gBAEpE,SAAS,KAAK,YAAYG,CAAI;CAC9B,KAAK,IAAMN,KAAQE,GACjB,EAAO,IAAIN,EAASI,EAAK,CAAC,MAAM;AAEpC;AAGA,SAAgBO,EAAc,GAAgC;CAC5D,IAAM,EACJ,WAAQ,MACR,eAAY,SAAS,iBACrB,WAAQ,OACNC,KAAW,CAAC,GAGVC,IAAaX,EADF,MAAM,QAAQC,CAAK,IAAIA,IAAQ,CAACA,CAAK,CACV;CAQ5C,AALAW,QAAmB;EACjB,EAAgBD,CAAU;CAC5B,CAAC,GAGDC,QAAmB;EACjB,IAAI,CAACC,KAASF,EAAW,WAAW,GAAG;EAGvC,IAAMG,IAAKC,KAAa,SAAS,iBAC3Bb,IAAOS,EAAW,IAClBK,IAAOF,EAAG,aAAa,WAAW;EAIxC,AAFAA,EAAG,aAAa,aAAaZ,CAAI,GAEjCe,QAAgB;GAEd,AAAID,MAAS,OACXF,EAAG,gBAAgB,WAAW,IAE9BA,EAAG,aAAa,aAAaE,CAAI;EAErC,CAAC;CACH,CAAC;AACH"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
export interface ScrollEdges {
|
|
3
|
+
/** 上方是否还有未显示的内容 */
|
|
4
|
+
canScrollUp: Accessor<boolean>;
|
|
5
|
+
/** 下方是否还有未显示的内容 */
|
|
6
|
+
canScrollDown: Accessor<boolean>;
|
|
7
|
+
/** 手动刷新一次边缘状态(如打开、内容变化后) */
|
|
8
|
+
refresh: () => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* 跟踪某个滚动容器上方/下方是否还有未显示的内容,用于驱动滚动提示箭头。
|
|
12
|
+
*
|
|
13
|
+
* 监听 scroll(passive) + ResizeObserver(容器与首个子元素尺寸) +
|
|
14
|
+
* MutationObserver(childList/subtree),因此面板高度变化、选项增删后显隐都能及时更新。
|
|
15
|
+
*
|
|
16
|
+
* 显隐用**迟滞阈值**:从"无内容"变为"有内容"要超过 4px,反向要回落到 1px 以内,
|
|
17
|
+
* 避免在滚动到边界时 canScroll* 每帧抖动(箭头反复出现/消失)。
|
|
18
|
+
*/
|
|
19
|
+
export declare function useScrollEdges(target: Accessor<HTMLElement | undefined>): ScrollEdges;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createEffect as e, createSignal as t, onCleanup as n } from "solid-js";
|
|
2
|
+
//#region src/hooks/useScrollEdges.ts
|
|
3
|
+
var r = 4, i = 1;
|
|
4
|
+
function a(a) {
|
|
5
|
+
let [o, s] = t(!1), [c, l] = t(!1), u = () => {
|
|
6
|
+
let e = a();
|
|
7
|
+
if (!e) {
|
|
8
|
+
s(!1), l(!1);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
let t = e.scrollTop, n = e.scrollHeight - e.clientHeight - t;
|
|
12
|
+
s((e) => e ? t > i : t > r), l((e) => e ? n > i : n > r);
|
|
13
|
+
};
|
|
14
|
+
return e(() => {
|
|
15
|
+
let e = a();
|
|
16
|
+
if (!e) return;
|
|
17
|
+
u();
|
|
18
|
+
let t = new ResizeObserver(u);
|
|
19
|
+
t.observe(e), e.firstElementChild && t.observe(e.firstElementChild);
|
|
20
|
+
let r = new MutationObserver(u);
|
|
21
|
+
r.observe(e, {
|
|
22
|
+
childList: !0,
|
|
23
|
+
subtree: !0
|
|
24
|
+
}), e.addEventListener("scroll", u, { passive: !0 }), n(() => {
|
|
25
|
+
t.disconnect(), r.disconnect(), e.removeEventListener("scroll", u);
|
|
26
|
+
});
|
|
27
|
+
}), {
|
|
28
|
+
canScrollUp: o,
|
|
29
|
+
canScrollDown: c,
|
|
30
|
+
refresh: u
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { a as useScrollEdges };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=useScrollEdges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollEdges.js","names":["ENTER_THRESHOLD","EXIT_THRESHOLD","useScrollEdges","canScrollUp","setCanScrollUp","createSignal","canScrollDown","setCanScrollDown","refresh","el","target","top","remaining","prev","createEffect","resizeObserver","mutationObserver","onCleanup"],"sources":["../../src/hooks/useScrollEdges.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup, type Accessor } from \"solid-js\";\n\nexport interface ScrollEdges {\n /** 上方是否还有未显示的内容 */\n canScrollUp: Accessor<boolean>;\n /** 下方是否还有未显示的内容 */\n canScrollDown: Accessor<boolean>;\n /** 手动刷新一次边缘状态(如打开、内容变化后) */\n refresh: () => void;\n}\n\n/** 进入/退出阈值分开(迟滞),避免在边界 1px 处反复翻转导致箭头闪动 */\nconst ENTER_THRESHOLD = 4;\nconst EXIT_THRESHOLD = 1;\n\n/**\n * 跟踪某个滚动容器上方/下方是否还有未显示的内容,用于驱动滚动提示箭头。\n *\n * 监听 scroll(passive) + ResizeObserver(容器与首个子元素尺寸) +\n * MutationObserver(childList/subtree),因此面板高度变化、选项增删后显隐都能及时更新。\n *\n * 显隐用**迟滞阈值**:从\"无内容\"变为\"有内容\"要超过 4px,反向要回落到 1px 以内,\n * 避免在滚动到边界时 canScroll* 每帧抖动(箭头反复出现/消失)。\n */\nexport function useScrollEdges(\n target: Accessor<HTMLElement | undefined>,\n): ScrollEdges {\n const [canScrollUp, setCanScrollUp] = createSignal(false);\n const [canScrollDown, setCanScrollDown] = createSignal(false);\n\n const refresh = () => {\n const el = target();\n if (!el) {\n setCanScrollUp(false);\n setCanScrollDown(false);\n return;\n }\n const top = el.scrollTop;\n const remaining = el.scrollHeight - el.clientHeight - top;\n setCanScrollUp((prev) =>\n prev ? top > EXIT_THRESHOLD : top > ENTER_THRESHOLD,\n );\n setCanScrollDown((prev) =>\n prev ? remaining > EXIT_THRESHOLD : remaining > ENTER_THRESHOLD,\n );\n };\n\n createEffect(() => {\n const el = target();\n if (!el) return;\n\n refresh();\n\n const resizeObserver = new ResizeObserver(refresh);\n resizeObserver.observe(el);\n if (el.firstElementChild) resizeObserver.observe(el.firstElementChild);\n\n const mutationObserver = new MutationObserver(refresh);\n mutationObserver.observe(el, { childList: true, subtree: true });\n\n el.addEventListener(\"scroll\", refresh, { passive: true });\n onCleanup(() => {\n resizeObserver.disconnect();\n mutationObserver.disconnect();\n el.removeEventListener(\"scroll\", refresh);\n });\n });\n\n return { canScrollUp, canScrollDown, refresh };\n}\n"],"mappings":";;AAYA,IAAMA,IAAkB,GAClBC,IAAiB;AAWvB,SAAgBC,EACd,GACa;CACb,IAAM,CAACC,GAAaC,KAAkBC,EAAa,EAAK,GAClD,CAACC,GAAeC,KAAoBF,EAAa,EAAK,GAEtDG,UAAgB;EACpB,IAAMC,IAAKC,EAAO;EAClB,IAAI,CAACD,GAAI;GAEP,AADAL,EAAe,EAAK,GACpBG,EAAiB,EAAK;GACtB;EACF;EACA,IAAMI,IAAMF,EAAG,WACTG,IAAYH,EAAG,eAAeA,EAAG,eAAeE;EAItD,AAHAP,GAAgB,MACdS,IAAOF,IAAMV,IAAiBU,IAAMX,CACtC,GACAO,GAAkB,MAChBM,IAAOD,IAAYX,IAAiBW,IAAYZ,CAClD;CACF;CAuBA,OArBAc,QAAmB;EACjB,IAAML,IAAKC,EAAO;EAClB,IAAI,CAACD,GAAI;EAET,EAAQ;EAER,IAAMM,IAAiB,IAAI,eAAeP,CAAO;EAEjD,AADAO,EAAe,QAAQN,CAAE,GACrBA,EAAG,qBAAmBM,EAAe,QAAQN,EAAG,iBAAiB;EAErE,IAAMO,IAAmB,IAAI,iBAAiBR,CAAO;EAIrD,AAHAQ,EAAiB,QAAQP,GAAI;GAAE,WAAW;GAAM,SAAS;EAAK,CAAC,GAE/DA,EAAG,iBAAiB,UAAUD,GAAS,EAAE,SAAS,GAAK,CAAC,GACxDS,QAAgB;GAGd,AAFAF,EAAe,WAAW,GAC1BC,EAAiB,WAAW,GAC5BP,EAAG,oBAAoB,UAAUD,CAAO;EAC1C,CAAC;CACH,CAAC,GAEM;EAAE;EAAa;EAAe;CAAQ;AAC/C"}
|