@neut/ui 0.0.8 → 0.0.10
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/README.md +83 -56
- package/README.zh-CN.md +137 -0
- package/dist/components/accordion/Accordion/Accordion.context.js.map +1 -1
- package/dist/components/accordion/Accordion/Accordion.js +21 -20
- package/dist/components/accordion/Accordion/Accordion.js.map +1 -1
- package/dist/components/accordion/Accordion/Accordion.styles.d.ts +2 -0
- package/dist/components/accordion/Accordion/Accordion.styles.js +7 -0
- package/dist/components/accordion/Accordion/Accordion.styles.js.map +1 -0
- package/dist/components/accordion/Accordion/useAccordion.js +1 -3
- package/dist/components/accordion/Accordion/useAccordion.js.map +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.js +25 -21
- package/dist/components/accordion/AccordionContent/AccordionContent.js.map +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.styles.d.ts +5 -0
- package/dist/components/accordion/AccordionContent/AccordionContent.styles.js +9 -0
- package/dist/components/accordion/AccordionContent/AccordionContent.styles.js.map +1 -0
- package/dist/components/accordion/AccordionContent/index.d.ts +1 -0
- package/dist/components/accordion/AccordionItem/AccordionItem.context.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.js +19 -18
- package/dist/components/accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.styles.d.ts +2 -0
- package/dist/components/accordion/AccordionItem/AccordionItem.styles.js +6 -0
- package/dist/components/accordion/AccordionItem/AccordionItem.styles.js.map +1 -0
- package/dist/components/accordion/AccordionItem/index.d.ts +1 -0
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js +26 -18
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js.map +1 -1
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.styles.d.ts +6 -0
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.styles.js +10 -0
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.styles.js.map +1 -0
- package/dist/components/accordion/AccordionTrigger/index.d.ts +1 -0
- package/dist/components/accordion/index.d.ts +4 -4
- package/dist/components/accordion/index.js +6 -5
- package/dist/components/alert/Alert/Alert.js +1 -1
- package/dist/components/alert/Alert/Alert.js.map +1 -1
- package/dist/components/alert/Alert/Alert.styles.js +3 -3
- package/dist/components/alert/Alert/Alert.styles.js.map +1 -1
- package/dist/components/alert/AlertAction/AlertAction.js +2 -2
- package/dist/components/alert/AlertAction/AlertAction.js.map +1 -1
- package/dist/components/alert/AlertAction/AlertAction.styles.d.ts +2 -1
- package/dist/components/alert/AlertAction/AlertAction.styles.js +1 -1
- package/dist/components/alert/AlertAction/AlertAction.styles.js.map +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.js +2 -2
- package/dist/components/alert/AlertDescription/AlertDescription.js.map +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.styles.d.ts +2 -1
- package/dist/components/alert/AlertDescription/AlertDescription.styles.js +2 -2
- package/dist/components/alert/AlertDescription/AlertDescription.styles.js.map +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.js +2 -2
- package/dist/components/alert/AlertTitle/AlertTitle.js.map +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.styles.d.ts +2 -1
- package/dist/components/alert/AlertTitle/AlertTitle.styles.js +2 -2
- package/dist/components/alert/AlertTitle/AlertTitle.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.context.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogAction/AlertDialogAction.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js +3 -3
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.context.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.js +11 -11
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.d.ts +2 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.js +2 -2
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js +2 -2
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.styles.d.ts +2 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.styles.js +2 -2
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js +2 -2
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.styles.d.ts +2 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.styles.js +2 -2
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js +2 -2
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.styles.d.ts +2 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.styles.js +2 -2
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js +2 -2
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.styles.d.ts +2 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.styles.js +2 -2
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.js +2 -2
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.d.ts +2 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.js +2 -2
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.js +1 -1
- package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js +2 -2
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.styles.d.ts +2 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.styles.js +2 -2
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTrigger/useAlertDialogTrigger.js.map +1 -1
- package/dist/components/aspect-ratio/AspectRatio.js +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/avatar/Avatar/Avatar.context.js.map +1 -1
- package/dist/components/avatar/Avatar/Avatar.js +9 -9
- package/dist/components/avatar/Avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/AvatarBadge/AvatarBadge.js +1 -1
- package/dist/components/avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/components/avatar/AvatarFallback/AvatarFallback.js +1 -1
- package/dist/components/avatar/AvatarFallback/AvatarFallback.js.map +1 -1
- package/dist/components/avatar/AvatarGroup/AvatarGroup.js +1 -1
- package/dist/components/avatar/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js +1 -1
- package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js.map +1 -1
- package/dist/components/avatar/AvatarImage/AvatarImage.js +1 -1
- package/dist/components/avatar/AvatarImage/AvatarImage.js.map +1 -1
- package/dist/components/badge/Badge.js +1 -1
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/badge/Badge.styles.js +9 -10
- package/dist/components/badge/Badge.styles.js.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb/Breadcrumb.js +1 -1
- package/dist/components/breadcrumb/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js +6 -6
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js.map +1 -1
- package/dist/components/button/Button.js +34 -31
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/Button.styles.d.ts +1 -1
- package/dist/components/button/Button.styles.js +10 -10
- package/dist/components/button/Button.styles.js.map +1 -1
- package/dist/components/button/Button.types.d.ts +4 -30
- package/dist/components/button-group/ButtonGroup/ButtonGroup.js +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.js +1 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.js.map +1 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.styles.d.ts +2 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.styles.js +2 -3
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.styles.js.map +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js +2 -2
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js.map +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.styles.d.ts +2 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.styles.js +2 -3
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.styles.js.map +1 -1
- package/dist/components/card/Card/Card.js +6 -6
- package/dist/components/card/Card/Card.js.map +1 -1
- package/dist/components/card/Card/Card.styles.d.ts +2 -1
- package/dist/components/card/Card/Card.styles.js +2 -2
- package/dist/components/card/Card/Card.styles.js.map +1 -1
- package/dist/components/card/CardAction/CardAction.js +2 -2
- package/dist/components/card/CardAction/CardAction.js.map +1 -1
- package/dist/components/card/CardAction/CardAction.styles.d.ts +2 -1
- package/dist/components/card/CardAction/CardAction.styles.js +1 -1
- package/dist/components/card/CardAction/CardAction.styles.js.map +1 -1
- package/dist/components/card/CardContent/CardContent.js +2 -2
- package/dist/components/card/CardContent/CardContent.js.map +1 -1
- package/dist/components/card/CardContent/CardContent.styles.d.ts +2 -1
- package/dist/components/card/CardContent/CardContent.styles.js +2 -2
- package/dist/components/card/CardContent/CardContent.styles.js.map +1 -1
- package/dist/components/card/CardDescription/CardDescription.js +2 -2
- package/dist/components/card/CardDescription/CardDescription.js.map +1 -1
- package/dist/components/card/CardDescription/CardDescription.styles.d.ts +2 -1
- package/dist/components/card/CardDescription/CardDescription.styles.js +2 -2
- package/dist/components/card/CardDescription/CardDescription.styles.js.map +1 -1
- package/dist/components/card/CardFooter/CardFooter.js +2 -2
- package/dist/components/card/CardFooter/CardFooter.js.map +1 -1
- package/dist/components/card/CardFooter/CardFooter.styles.d.ts +2 -1
- package/dist/components/card/CardFooter/CardFooter.styles.js +2 -2
- package/dist/components/card/CardFooter/CardFooter.styles.js.map +1 -1
- package/dist/components/card/CardHeader/CardHeader.js +2 -2
- package/dist/components/card/CardHeader/CardHeader.js.map +1 -1
- package/dist/components/card/CardHeader/CardHeader.styles.d.ts +2 -1
- package/dist/components/card/CardHeader/CardHeader.styles.js +2 -2
- package/dist/components/card/CardHeader/CardHeader.styles.js.map +1 -1
- package/dist/components/card/CardTitle/CardTitle.js +2 -2
- package/dist/components/card/CardTitle/CardTitle.js.map +1 -1
- package/dist/components/card/CardTitle/CardTitle.styles.d.ts +2 -1
- package/dist/components/card/CardTitle/CardTitle.styles.js +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.js +14 -13
- package/dist/components/carousel/Carousel/Carousel.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.styles.d.ts +2 -0
- package/dist/components/carousel/Carousel/Carousel.styles.js +6 -0
- package/dist/components/carousel/Carousel/Carousel.styles.js.map +1 -0
- 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.js +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.js +1 -1
- package/dist/components/carousel/CarouselDots/CarouselDots.js.map +1 -1
- package/dist/components/carousel/CarouselItem/CarouselItem.js +4 -3
- package/dist/components/carousel/CarouselItem/CarouselItem.js.map +1 -1
- package/dist/components/carousel/CarouselNext/CarouselNext.js +4 -4
- package/dist/components/carousel/CarouselNext/CarouselNext.js.map +1 -1
- package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js +4 -4
- package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js.map +1 -1
- package/dist/components/checkbox/Checkbox/Checkbox.js +18 -18
- 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.js +1 -1
- package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.js.map +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.context.js.map +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.js +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.js.map +1 -1
- package/dist/components/collapsible/CollapsibleContent/CollapsibleContent.js +1 -1
- package/dist/components/collapsible/CollapsibleContent/CollapsibleContent.js.map +1 -1
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js +1 -1
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js.map +1 -1
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.types.d.ts +1 -1
- package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.js +1 -1
- package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
- package/dist/components/dialog/DialogClose/DialogClose.js +4 -6
- package/dist/components/dialog/DialogClose/DialogClose.js.map +1 -1
- package/dist/components/dialog/DialogClose/DialogClose.types.d.ts +2 -2
- package/dist/components/dialog/DialogContent/DialogContent.context.js.map +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.js +10 -10
- package/dist/components/dialog/DialogContent/DialogContent.js.map +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.js +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.js.map +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.js +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.js.map +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.js +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.js.map +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.js +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.js.map +1 -1
- package/dist/components/dialog/DialogPortal/DialogPortal.js +1 -1
- package/dist/components/dialog/DialogPortal/DialogPortal.js.map +1 -1
- package/dist/components/dialog/DialogTitle/DialogTitle.js +1 -1
- package/dist/components/dialog/DialogTitle/DialogTitle.js.map +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/field/Field/Field.js +5 -5
- package/dist/components/field/Field/Field.js.map +1 -1
- package/dist/components/field/Field/Field.styles.js +1 -1
- package/dist/components/field/Field/Field.styles.js.map +1 -1
- package/dist/components/field/FieldContent/FieldContent.js +1 -1
- package/dist/components/field/FieldContent/FieldContent.js.map +1 -1
- package/dist/components/field/FieldDescription/FieldDescription.js +2 -2
- package/dist/components/field/FieldDescription/FieldDescription.js.map +1 -1
- package/dist/components/field/FieldError/FieldError.js +2 -2
- package/dist/components/field/FieldError/FieldError.js.map +1 -1
- package/dist/components/field/FieldGroup/FieldGroup.js +1 -1
- package/dist/components/field/FieldGroup/FieldGroup.js.map +1 -1
- package/dist/components/field/FieldLabel/FieldLabel.js +1 -1
- package/dist/components/field/FieldLabel/FieldLabel.js.map +1 -1
- package/dist/components/field/FieldLegend/FieldLegend.js +5 -5
- package/dist/components/field/FieldLegend/FieldLegend.js.map +1 -1
- package/dist/components/field/FieldSeparator/FieldSeparator.js +14 -14
- package/dist/components/field/FieldSeparator/FieldSeparator.js.map +1 -1
- package/dist/components/field/FieldSet/FieldSet.js +1 -1
- package/dist/components/field/FieldSet/FieldSet.js.map +1 -1
- package/dist/components/field/FieldTitle/FieldTitle.js +1 -1
- package/dist/components/field/FieldTitle/FieldTitle.js.map +1 -1
- package/dist/components/image/Image.config.js +1 -1
- package/dist/components/image/Image.config.js.map +1 -1
- package/dist/components/image/Image.js +13 -13
- package/dist/components/image/Image.js.map +1 -1
- package/dist/components/image/Image.utils.js +67 -67
- package/dist/components/image/Image.utils.js.map +1 -1
- package/dist/components/image/ImageElement.js +19 -19
- package/dist/components/image/ImageElement.js.map +1 -1
- package/dist/components/image/ImagePreload.js +1 -1
- package/dist/components/image/ImagePreload.js.map +1 -1
- package/dist/components/input/Input.js +13 -13
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/input-group/InputGroup/InputGroup.js +2 -2
- package/dist/components/input-group/InputGroup/InputGroup.js.map +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js +5 -5
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js.map +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.styles.js +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.styles.js.map +1 -1
- package/dist/components/input-group/InputGroupButton/InputGroupButton.js +9 -9
- 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/InputGroupButton/InputGroupButton.types.d.ts +2 -3
- package/dist/components/input-group/InputGroupInput/InputGroupInput.js.map +1 -1
- package/dist/components/input-group/InputGroupText/InputGroupText.js +2 -2
- package/dist/components/input-group/InputGroupText/InputGroupText.js.map +1 -1
- package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js.map +1 -1
- package/dist/components/item/Item/Item.js +9 -9
- package/dist/components/item/Item/Item.js.map +1 -1
- package/dist/components/item/Item/Item.styles.js +3 -3
- package/dist/components/item/Item/Item.styles.js.map +1 -1
- package/dist/components/item/ItemActions/ItemActions.js +1 -1
- package/dist/components/item/ItemActions/ItemActions.js.map +1 -1
- package/dist/components/item/ItemContent/ItemContent.js +1 -1
- package/dist/components/item/ItemContent/ItemContent.js.map +1 -1
- package/dist/components/item/ItemDescription/ItemDescription.js +2 -2
- package/dist/components/item/ItemDescription/ItemDescription.js.map +1 -1
- package/dist/components/item/ItemFooter/ItemFooter.js +1 -1
- package/dist/components/item/ItemFooter/ItemFooter.js.map +1 -1
- package/dist/components/item/ItemGroup/ItemGroup.js +1 -1
- package/dist/components/item/ItemGroup/ItemGroup.js.map +1 -1
- package/dist/components/item/ItemHeader/ItemHeader.js +1 -1
- package/dist/components/item/ItemHeader/ItemHeader.js.map +1 -1
- package/dist/components/item/ItemMedia/ItemMedia.js +5 -5
- 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.js.map +1 -1
- package/dist/components/item/ItemTitle/ItemTitle.js +1 -1
- package/dist/components/item/ItemTitle/ItemTitle.js.map +1 -1
- package/dist/components/kbd/Kbd.js +2 -2
- package/dist/components/kbd/Kbd.js.map +1 -1
- package/dist/components/label/Label.js +1 -1
- package/dist/components/label/Label.js.map +1 -1
- package/dist/components/pagination/Pagination/Pagination.js +1 -1
- package/dist/components/pagination/Pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/PaginationContent/PaginationContent.js +1 -1
- package/dist/components/pagination/PaginationContent/PaginationContent.js.map +1 -1
- package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js +1 -1
- package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js.map +1 -1
- package/dist/components/pagination/PaginationItem/PaginationItem.js +1 -1
- package/dist/components/pagination/PaginationItem/PaginationItem.js.map +1 -1
- package/dist/components/pagination/PaginationLink/PaginationLink.js +13 -10
- package/dist/components/pagination/PaginationLink/PaginationLink.js.map +1 -1
- package/dist/components/pagination/PaginationNext/PaginationNext.js +5 -5
- package/dist/components/pagination/PaginationNext/PaginationNext.js.map +1 -1
- package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js +5 -5
- package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js.map +1 -1
- package/dist/components/progress/Progress/Progress.context.js.map +1 -1
- package/dist/components/progress/Progress/Progress.js +1 -1
- package/dist/components/progress/Progress/Progress.js.map +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.js +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.js.map +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.styles.d.ts +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.styles.js +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.styles.js.map +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.js +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.js.map +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.js +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.js.map +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.styles.d.ts +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.styles.js +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.styles.js.map +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.js +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.js.map +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.styles.d.ts +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.styles.js +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.styles.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.js +2 -2
- 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.js +26 -26
- package/dist/components/scroll-area/ScrollBar/ScrollBar.js.map +1 -1
- package/dist/components/separator/Separator.js +7 -7
- package/dist/components/separator/Separator.js.map +1 -1
- package/dist/components/separator/Separator.styles.js +1 -1
- package/dist/components/separator/Separator.styles.js.map +1 -1
- package/dist/components/sidebar/Sidebar/Sidebar.js +10 -10
- package/dist/components/sidebar/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/sidebar/Sidebar/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarContent/SidebarContent.js +1 -1
- package/dist/components/sidebar/SidebarContent/SidebarContent.js.map +1 -1
- package/dist/components/sidebar/SidebarContent/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarFooter/SidebarFooter.js +1 -1
- package/dist/components/sidebar/SidebarFooter/SidebarFooter.js.map +1 -1
- package/dist/components/sidebar/SidebarFooter/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarGroup/SidebarGroup.js +1 -1
- package/dist/components/sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
- package/dist/components/sidebar/SidebarGroup/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js +5 -5
- package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupAction/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js +1 -1
- package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupContent/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js +5 -5
- package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupLabel/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarHeader/SidebarHeader.js +1 -1
- package/dist/components/sidebar/SidebarHeader/SidebarHeader.js.map +1 -1
- package/dist/components/sidebar/SidebarHeader/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarInput/SidebarInput.js +1 -1
- package/dist/components/sidebar/SidebarInput/SidebarInput.js.map +1 -1
- package/dist/components/sidebar/SidebarInput/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarInset/SidebarInset.js +2 -2
- package/dist/components/sidebar/SidebarInset/SidebarInset.js.map +1 -1
- package/dist/components/sidebar/SidebarInset/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenu/SidebarMenu.js +1 -1
- package/dist/components/sidebar/SidebarMenu/SidebarMenu.js.map +1 -1
- package/dist/components/sidebar/SidebarMenu/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js +2 -2
- package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuBadge/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js +47 -31
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.styles.js +5 -6
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.styles.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuButton/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js +1 -1
- package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuItem/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js +7 -7
- package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSkeleton/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js +2 -2
- package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSub/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js +9 -9
- package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSubButton/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js +1 -1
- package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSubItem/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.consts.js +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.js +17 -17
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.js.map +1 -1
- package/dist/components/sidebar/SidebarRail/SidebarRail.js +2 -2
- package/dist/components/sidebar/SidebarRail/SidebarRail.js.map +1 -1
- package/dist/components/sidebar/SidebarRail/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js.map +1 -1
- package/dist/components/sidebar/SidebarSeparator/index.d.ts +1 -0
- package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js.map +1 -1
- package/dist/components/sidebar/SidebarTrigger/index.d.ts +1 -0
- package/dist/components/sidebar/index.d.ts +21 -21
- package/dist/components/skeleton/Skeleton.js +2 -2
- 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.js +10 -10
- package/dist/components/slider/Slider/Slider.js.map +1 -1
- package/dist/components/slider/Slider/useSlider.js.map +1 -1
- package/dist/components/slider/SliderControl/SliderControl.js +1 -1
- package/dist/components/slider/SliderControl/SliderControl.js.map +1 -1
- package/dist/components/slider/SliderControl/useSliderControl.js.map +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.js +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.js.map +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.styles.js +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.js +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.styles.js +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.js +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.js.map +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.styles.d.ts +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.styles.js +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.styles.js.map +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.js +19 -19
- package/dist/components/switch/Switch.js.map +1 -1
- package/dist/components/switch/Switch.styles.js +2 -2
- package/dist/components/switch/Switch.styles.js.map +1 -1
- package/dist/components/textarea/Textarea.js +2 -2
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/toast/components/Assets.js +1 -1
- package/dist/components/toast/components/Assets.js.map +1 -1
- package/dist/components/toast/components/Toast.js +2 -5
- package/dist/components/toast/components/Toast.js.map +1 -1
- package/dist/components/toast/components/ToastActions.js +1 -1
- package/dist/components/toast/components/ToastActions.js.map +1 -1
- package/dist/components/toast/components/ToastContent.js +1 -1
- package/dist/components/toast/components/ToastContent.js.map +1 -1
- package/dist/components/toast/components/ToastIcon.js +1 -1
- package/dist/components/toast/components/ToastIcon.js.map +1 -1
- package/dist/components/toast/components/Toaster.js +1 -1
- package/dist/components/toast/components/Toaster.js.map +1 -1
- package/dist/components/toast/hooks/useSwipe.js.map +1 -1
- package/dist/components/toast/hooks/useTheme.js.map +1 -1
- package/dist/components/toast/hooks/useToastHeight.js.map +1 -1
- package/dist/components/toast/hooks/useToastSubscription.js +3 -2
- package/dist/components/toast/hooks/useToastSubscription.js.map +1 -1
- package/dist/components/toast/hooks/useToastTimer.js.map +1 -1
- package/dist/components/toast/hooks/useToasterKeyboard.js.map +1 -1
- package/dist/components/toast/hooks.js +3 -2
- package/dist/components/toast/hooks.js.map +1 -1
- package/dist/components/toast/state.js +5 -5
- package/dist/components/toast/state.js.map +1 -1
- package/dist/components/toast/utils.js.map +1 -1
- package/dist/components/tooltip/Tooltip/Tooltip.context.d.ts +2 -11
- package/dist/components/tooltip/Tooltip/Tooltip.context.js +4 -4
- package/dist/components/tooltip/Tooltip/Tooltip.context.js.map +1 -1
- package/dist/components/tooltip/Tooltip/Tooltip.d.ts +21 -5
- package/dist/components/tooltip/Tooltip/Tooltip.js +60 -23
- package/dist/components/tooltip/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/tooltip/Tooltip/Tooltip.types.d.ts +58 -0
- package/dist/components/tooltip/Tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.d.ts +34 -1
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.js +48 -12
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.js.map +1 -1
- package/dist/components/tooltip/TooltipArrow/index.d.ts +1 -0
- package/dist/components/tooltip/TooltipContent/TooltipContent.context.d.ts +19 -5
- package/dist/components/tooltip/TooltipContent/TooltipContent.context.js +4 -4
- package/dist/components/tooltip/TooltipContent/TooltipContent.context.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.d.ts +10 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.js +60 -46
- package/dist/components/tooltip/TooltipContent/TooltipContent.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.types.d.ts +13 -3
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.d.ts +57 -6
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js +34 -58
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/index.d.ts +7 -0
- package/dist/components/tooltip/TooltipContent/useTooltipContent.d.ts +45 -8
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js +70 -41
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.context.d.ts +29 -0
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.context.js +10 -0
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.context.js.map +1 -0
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.d.ts +2 -0
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.js +25 -0
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.js.map +1 -0
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.types.d.ts +10 -0
- package/dist/components/tooltip/TooltipGroup/index.d.ts +4 -0
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.d.ts +4 -2
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.js +26 -6
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.js.map +1 -1
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.types.d.ts +3 -0
- package/dist/components/tooltip/TooltipTrigger/index.d.ts +3 -0
- package/dist/components/tooltip/TooltipTrigger/useTooltipTrigger.d.ts +29 -2
- package/dist/components/tooltip/TooltipTrigger/useTooltipTrigger.js +27 -27
- package/dist/components/tooltip/TooltipTrigger/useTooltipTrigger.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +6 -0
- package/dist/components/tooltip/index.js +2 -1
- package/dist/hooks/useFontLoader.js +1 -1
- package/dist/hooks/useFontLoader.js.map +1 -1
- package/dist/index.js +155 -152
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/positioner/auto-update.d.ts +19 -0
- package/dist/lib/positioner/auto-update.js +20 -0
- package/dist/lib/positioner/auto-update.js.map +1 -0
- package/dist/lib/positioner/core/compute-position.d.ts +9 -0
- package/dist/lib/positioner/core/compute-position.js +47 -0
- package/dist/lib/positioner/core/compute-position.js.map +1 -0
- package/dist/lib/positioner/core/placement.d.ts +14 -0
- package/dist/lib/positioner/core/placement.js +45 -0
- package/dist/lib/positioner/core/placement.js.map +1 -0
- package/dist/lib/positioner/create-positioner.d.ts +63 -0
- package/dist/lib/positioner/create-positioner.js +51 -0
- package/dist/lib/positioner/create-positioner.js.map +1 -0
- package/dist/lib/positioner/index.d.ts +11 -0
- package/dist/lib/positioner/middleware/arrow.d.ts +23 -0
- package/dist/lib/positioner/middleware/arrow.js +23 -0
- package/dist/lib/positioner/middleware/arrow.js.map +1 -0
- package/dist/lib/positioner/middleware/containing-block-offset.d.ts +27 -0
- package/dist/lib/positioner/middleware/containing-block-offset.js +46 -0
- package/dist/lib/positioner/middleware/containing-block-offset.js.map +1 -0
- package/dist/lib/positioner/middleware/flip.d.ts +9 -0
- package/dist/lib/positioner/middleware/flip.js +54 -0
- package/dist/lib/positioner/middleware/flip.js.map +1 -0
- package/dist/lib/positioner/middleware/hide.d.ts +22 -0
- package/dist/lib/positioner/middleware/hide.js +19 -0
- package/dist/lib/positioner/middleware/hide.js.map +1 -0
- package/dist/lib/positioner/middleware/index.d.ts +13 -0
- package/dist/lib/positioner/middleware/offset.d.ts +10 -0
- package/dist/lib/positioner/middleware/offset.js +21 -0
- package/dist/lib/positioner/middleware/offset.js.map +1 -0
- package/dist/lib/positioner/middleware/shift.d.ts +13 -0
- package/dist/lib/positioner/middleware/shift.js +30 -0
- package/dist/lib/positioner/middleware/shift.js.map +1 -0
- package/dist/lib/positioner/middleware/size.d.ts +13 -0
- package/dist/lib/positioner/types.d.ts +74 -0
- package/dist/lib/positioner/utils/dom.d.ts +16 -0
- package/dist/lib/positioner/utils/dom.js +43 -0
- package/dist/lib/positioner/utils/dom.js.map +1 -0
- package/dist/lib/positioner/virtual-element.d.ts +21 -0
- package/dist/types/props.types.d.ts +10 -9
- package/dist/ui.css +2 -2
- package/dist/utils/clsx.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +3 -2
- package/dist/utils/logger.d.ts +73 -0
- package/dist/utils/logger.js +37 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/warn-once.js.map +1 -1
- package/package.json +13 -12
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.styles.d.ts +0 -0
- package/dist/components/carousel/CarouselContent/CarouselContent.styles.d.ts +0 -0
|
@@ -1 +1,34 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface TooltipArrowProps {
|
|
2
|
+
/** 箭头沿 tooltip 边缘方向的长度(像素),默认 8 */
|
|
3
|
+
width?: number;
|
|
4
|
+
/** 箭头突出的深度(像素),默认 4 */
|
|
5
|
+
height?: number;
|
|
6
|
+
/**
|
|
7
|
+
* 箭头颜色(Tailwind text-* class,因为 SVG 用 fill="currentColor")。
|
|
8
|
+
* 不传的话默认跟 TooltipContent 的默认背景色一致;如果你自定义了
|
|
9
|
+
* TooltipContent 的背景色,记得这里也传一个匹配的颜色,两者不会自动同步。
|
|
10
|
+
*/
|
|
11
|
+
class?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 箭头组件,必须渲染在 <TooltipContent> 内部(依赖它的 context)。
|
|
15
|
+
* 通过 context 拿到 arrow middleware 算出的偏移量,以及最终生效的 placement,
|
|
16
|
+
* 从而知道该贴哪条边、三角形尖端朝哪个方向。
|
|
17
|
+
*
|
|
18
|
+
* 四个方向用四套独立坐标画三角形,而不是画一个形状再用 CSS rotate 复用——
|
|
19
|
+
* 这是有意的:arrow middleware 用 el.offsetWidth/offsetHeight 判断"沿边长度",
|
|
20
|
+
* 而 CSS transform 不会改变这两个值,如果靠 rotate(90deg) 让同一个 8x4 的形状
|
|
21
|
+
* "看起来"变成 4x8,offsetWidth/offsetHeight 读到的还是旋转前的 8x4,
|
|
22
|
+
* 会导致 left/right 方向的偏移计算对不上。直接让未旋转的 SVG 本身尺寸
|
|
23
|
+
* 就随方向切换(沿边方向用 width,突出方向用 height),从根上避免这个偏差。
|
|
24
|
+
*
|
|
25
|
+
* 进出场动画是箭头自己独立播放的一份(data-state + animate-in/out),
|
|
26
|
+
* 和 TooltipContent 内层元素用的是同一个 animationState 信号驱动,
|
|
27
|
+
* 保证两者严格同步开始/结束——而不是让箭头被动继承内层元素的动画。
|
|
28
|
+
* 后者看似更省事,但内层元素的 zoom-in-95 动画会给它加一个非 none 的
|
|
29
|
+
* transform,CSS 规范规定这会让内层变成子元素新的"包含块",这和箭头
|
|
30
|
+
* 故意跳过内层、以外层为基准定位的设计(避免触发滚动条那次的修复)相冲突,
|
|
31
|
+
* 动画播放期间"父子两层谁负责定位"这个假设会变得不可靠,箭头容易之前观察到
|
|
32
|
+
* "入场看起来比内容慢一拍"这类问题。独立播放同一份动画彻底避开这个耦合。
|
|
33
|
+
*/
|
|
34
|
+
export declare function TooltipArrow(props: TooltipArrowProps): import("solid-js").JSX.Element;
|
|
@@ -1,22 +1,58 @@
|
|
|
1
1
|
import { clsx as e } from "../../../utils/clsx.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { className as r, effect as i, setAttribute as a, setStyleProperty as o, template as s } from "solid-js/web";
|
|
2
|
+
import { useTooltipContentContext as t } from "../TooltipContent/TooltipContent.context.js";
|
|
3
|
+
import { effect as n, setAttribute as r, style as i, template as a, use as o } from "solid-js/web";
|
|
5
4
|
//#region src/components/tooltip/TooltipArrow/TooltipArrow.tsx
|
|
6
|
-
var
|
|
7
|
-
|
|
5
|
+
var s = /*#__PURE__*/ a("<svg aria-hidden=true><polygon fill=currentColor>");
|
|
6
|
+
function c(a) {
|
|
7
|
+
let c = t("TooltipArrow"), l = () => a.width ?? 8, u = () => a.height ?? 4, d = () => c.placement().split("-")[0], f = () => d() === "top" || d() === "bottom", p = () => c.middlewareData().arrow, m = () => {
|
|
8
|
+
let e = l(), t = u();
|
|
9
|
+
switch (d()) {
|
|
10
|
+
case "top": return `0,0 ${e},0 ${e / 2},${t}`;
|
|
11
|
+
case "bottom": return `0,${t} ${e},${t} ${e / 2},0`;
|
|
12
|
+
case "left": return `0,0 0,${e} ${t},${e / 2}`;
|
|
13
|
+
default: return `${t},0 ${t},${e} 0,${e / 2}`;
|
|
14
|
+
}
|
|
15
|
+
}, h = () => {
|
|
16
|
+
let e = u(), t = f() ? p()?.x ?? 0 : p()?.y ?? 0;
|
|
17
|
+
switch (d()) {
|
|
18
|
+
case "top": return {
|
|
19
|
+
bottom: `-${e}px`,
|
|
20
|
+
left: `${t}px`
|
|
21
|
+
};
|
|
22
|
+
case "bottom": return {
|
|
23
|
+
top: `-${e}px`,
|
|
24
|
+
left: `${t}px`
|
|
25
|
+
};
|
|
26
|
+
case "left": return {
|
|
27
|
+
right: `-${e}px`,
|
|
28
|
+
top: `${t}px`
|
|
29
|
+
};
|
|
30
|
+
default: return {
|
|
31
|
+
left: `-${e}px`,
|
|
32
|
+
top: `${t}px`
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
};
|
|
8
36
|
return (() => {
|
|
9
|
-
var t =
|
|
10
|
-
return
|
|
11
|
-
var
|
|
12
|
-
|
|
37
|
+
var t = s(), d = t.firstChild, p = c.setArrowElement;
|
|
38
|
+
return typeof p == "function" ? o(p, t) : c.setArrowElement = t, n((n) => {
|
|
39
|
+
var o = f() ? l() : u(), s = f() ? u() : l(), p = f() ? `0 0 ${l()} ${u()}` : `0 0 ${u()} ${l()}`, g = c.animationState(), _ = {
|
|
40
|
+
position: "absolute",
|
|
41
|
+
...h()
|
|
42
|
+
}, v = e("data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95", "text-foreground", a.class), y = m();
|
|
43
|
+
return o !== n.e && r(t, "width", n.e = o), s !== n.t && r(t, "height", n.t = s), p !== n.a && r(t, "viewBox", n.a = p), g !== n.o && r(t, "data-state", n.o = g), n.i = i(t, _, n.i), v !== n.n && r(t, "class", n.n = v), y !== n.s && r(d, "points", n.s = y), n;
|
|
13
44
|
}, {
|
|
14
45
|
e: void 0,
|
|
15
|
-
t: void 0
|
|
46
|
+
t: void 0,
|
|
47
|
+
a: void 0,
|
|
48
|
+
o: void 0,
|
|
49
|
+
i: void 0,
|
|
50
|
+
n: void 0,
|
|
51
|
+
s: void 0
|
|
16
52
|
}), t;
|
|
17
53
|
})();
|
|
18
|
-
}
|
|
54
|
+
}
|
|
19
55
|
//#endregion
|
|
20
|
-
export {
|
|
56
|
+
export { c as TooltipArrow };
|
|
21
57
|
|
|
22
58
|
//# sourceMappingURL=TooltipArrow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipArrow.js","names":["clsx","useTooltipContentContext","
|
|
1
|
+
{"version":3,"file":"TooltipArrow.js","names":["clsx","useTooltipContentContext","TooltipArrowProps","width","height","class","TooltipArrow","props","ctx","alongLen","protrusion","side","placement","split","isVertical","arrowData","middlewareData","arrow","x","y","points","a","p","positionStyle","crossOffset","bottom","left","top","right","_el$","_tmpl$","_el$2","firstChild","_ref$","setArrowElement","_$use","_$effect","_p$","_v$","_v$2","_v$3","_v$4","animationState","_v$5","position","_v$6","_v$7","e","_$setAttribute","t","o","i","_$style","n","s","undefined"],"sources":["../../../../src/components/tooltip/TooltipArrow/TooltipArrow.tsx"],"sourcesContent":["import { clsx } from \"~/utils\";\nimport { useTooltipContentContext } from \"../TooltipContent/TooltipContent.context\";\n\nexport interface TooltipArrowProps {\n /** 箭头沿 tooltip 边缘方向的长度(像素),默认 8 */\n width?: number;\n /** 箭头突出的深度(像素),默认 4 */\n height?: number;\n /**\n * 箭头颜色(Tailwind text-* class,因为 SVG 用 fill=\"currentColor\")。\n * 不传的话默认跟 TooltipContent 的默认背景色一致;如果你自定义了\n * TooltipContent 的背景色,记得这里也传一个匹配的颜色,两者不会自动同步。\n */\n class?: string;\n}\n\n/**\n * 箭头组件,必须渲染在 <TooltipContent> 内部(依赖它的 context)。\n * 通过 context 拿到 arrow middleware 算出的偏移量,以及最终生效的 placement,\n * 从而知道该贴哪条边、三角形尖端朝哪个方向。\n *\n * 四个方向用四套独立坐标画三角形,而不是画一个形状再用 CSS rotate 复用——\n * 这是有意的:arrow middleware 用 el.offsetWidth/offsetHeight 判断\"沿边长度\",\n * 而 CSS transform 不会改变这两个值,如果靠 rotate(90deg) 让同一个 8x4 的形状\n * \"看起来\"变成 4x8,offsetWidth/offsetHeight 读到的还是旋转前的 8x4,\n * 会导致 left/right 方向的偏移计算对不上。直接让未旋转的 SVG 本身尺寸\n * 就随方向切换(沿边方向用 width,突出方向用 height),从根上避免这个偏差。\n *\n * 进出场动画是箭头自己独立播放的一份(data-state + animate-in/out),\n * 和 TooltipContent 内层元素用的是同一个 animationState 信号驱动,\n * 保证两者严格同步开始/结束——而不是让箭头被动继承内层元素的动画。\n * 后者看似更省事,但内层元素的 zoom-in-95 动画会给它加一个非 none 的\n * transform,CSS 规范规定这会让内层变成子元素新的\"包含块\",这和箭头\n * 故意跳过内层、以外层为基准定位的设计(避免触发滚动条那次的修复)相冲突,\n * 动画播放期间\"父子两层谁负责定位\"这个假设会变得不可靠,箭头容易之前观察到\n * \"入场看起来比内容慢一拍\"这类问题。独立播放同一份动画彻底避开这个耦合。\n */\nexport function TooltipArrow(props: TooltipArrowProps) {\n const ctx = useTooltipContentContext(\"TooltipArrow\");\n\n const alongLen = () => props.width ?? 8;\n const protrusion = () => props.height ?? 4;\n\n const side = () =>\n ctx.placement().split(\"-\")[0] as \"top\" | \"bottom\" | \"left\" | \"right\";\n const isVertical = () => side() === \"top\" || side() === \"bottom\";\n\n const arrowData = () =>\n ctx.middlewareData().arrow as { x?: number; y?: number } | undefined;\n\n const points = () => {\n const a = alongLen();\n const p = protrusion();\n switch (side()) {\n case \"top\":\n return `0,0 ${a},0 ${a / 2},${p}`; // 尖端朝下,指向下方的 trigger\n case \"bottom\":\n return `0,${p} ${a},${p} ${a / 2},0`; // 尖端朝上\n case \"left\":\n return `0,0 0,${a} ${p},${a / 2}`; // 尖端朝右\n default:\n return `${p},0 ${p},${a} 0,${a / 2}`; // 尖端朝左\n }\n };\n\n const positionStyle = () => {\n const p = protrusion();\n const crossOffset = isVertical()\n ? (arrowData()?.x ?? 0)\n : (arrowData()?.y ?? 0);\n switch (side()) {\n case \"top\":\n return { bottom: `-${p}px`, left: `${crossOffset}px` };\n case \"bottom\":\n return { top: `-${p}px`, left: `${crossOffset}px` };\n case \"left\":\n return { right: `-${p}px`, top: `${crossOffset}px` };\n default:\n return { left: `-${p}px`, top: `${crossOffset}px` };\n }\n };\n\n return (\n <svg\n ref={ctx.setArrowElement}\n width={isVertical() ? alongLen() : protrusion()}\n height={isVertical() ? protrusion() : alongLen()}\n viewBox={\n isVertical()\n ? `0 0 ${alongLen()} ${protrusion()}`\n : `0 0 ${protrusion()} ${alongLen()}`\n }\n data-state={ctx.animationState()}\n style={{ position: \"absolute\", ...positionStyle() }}\n class={clsx(\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"text-foreground\",\n props.class,\n )}\n aria-hidden=\"true\"\n >\n <polygon points={points()} fill=\"currentColor\" />\n </svg>\n );\n}\n"],"mappings":";;;;;AAqCA,SAAgBM,EAAaC,GAA0B;CACrD,IAAMC,IAAMP,EAAyB,cAAc,GAE7CQ,UAAiBF,EAAMJ,SAAS,GAChCO,UAAmBH,EAAMH,UAAU,GAEnCO,UACJH,EAAII,UAAU,CAAC,CAACC,MAAM,GAAG,CAAC,CAAC,IACvBC,UAAmBH,EAAK,MAAM,SAASA,EAAK,MAAM,UAElDI,UACJP,EAAIQ,eAAe,CAAC,CAACC,OAEjBG,UAAe;EACnB,IAAMC,IAAIZ,EAAS,GACba,IAAIZ,EAAW;EACrB,QAAQC,EAAK,GAAb;GACE,KAAK,OACH,OAAO,OAAOU,EAAC,KAAMA,IAAI,EAAC,GAAIC;GAChC,KAAK,UACH,OAAO,KAAKA,EAAC,GAAID,EAAC,GAAIC,EAAC,GAAID,IAAI,EAAC;GAClC,KAAK,QACH,OAAO,SAASA,EAAC,GAAIC,EAAC,GAAID,IAAI;GAChC,SACE,OAAO,GAAGC,EAAC,KAAMA,EAAC,GAAID,EAAC,KAAMA,IAAI;EACrC;CACF,GAEME,UAAsB;EAC1B,IAAMD,IAAIZ,EAAW,GACfc,IAAcV,EAAW,IAC1BC,EAAU,CAAC,EAAEG,KAAK,IAClBH,EAAU,CAAC,EAAEI,KAAK;EACvB,QAAQR,EAAK,GAAb;GACE,KAAK,OACH,OAAO;IAAEc,QAAQ,IAAIH,EAAC;IAAMI,MAAM,GAAGF,EAAW;GAAK;GACvD,KAAK,UACH,OAAO;IAAEG,KAAK,IAAIL,EAAC;IAAMI,MAAM,GAAGF,EAAW;GAAK;GACpD,KAAK,QACH,OAAO;IAAEI,OAAO,IAAIN,EAAC;IAAMK,KAAK,GAAGH,EAAW;GAAK;GACrD,SACE,OAAO;IAAEE,MAAM,IAAIJ,EAAC;IAAMK,KAAK,GAAGH,EAAW;GAAK;EACtD;CACF;CAEA,cAAA;EAAA,IAAAK,IAAAC,EAAA,GAAAC,IAAAF,EAAAG,YAAAC,IAESzB,EAAI0B;EAiBgB,OAjBD,OAAAD,KAAA,aAAAE,EAAAF,GAAAJ,CAAA,IAAnBrB,EAAI0B,kBAAeL,GAAAO,GAAAC,MAAA;GAAA,IAAAC,IACjBxB,EAAW,IAAIL,EAAS,IAAIC,EAAW,GAAC6B,IACvCzB,EAAW,IAAIJ,EAAW,IAAID,EAAS,GAAC+B,IAE9C1B,EAAW,IACP,OAAOL,EAAS,EAAC,GAAIC,EAAW,MAChC,OAAOA,EAAW,EAAC,GAAID,EAAS,KAAGgC,IAE7BjC,EAAIkC,eAAe,GAACC,IACzB;IAAEC,UAAU;IAAY,GAAGrB,EAAc;GAAE,GAACsB,IAC5C7C,EACL,wLACA,mBACAO,EAAMF,KACR,GAACyC,IAGgB1B,EAAO;GAAC,OAAAkB,MAAAD,EAAAU,KAAAC,EAAAnB,GAAA,SAAAQ,EAAAU,IAAAT,CAAA,GAAAC,MAAAF,EAAAY,KAAAD,EAAAnB,GAAA,UAAAQ,EAAAY,IAAAV,CAAA,GAAAC,MAAAH,EAAAhB,KAAA2B,EAAAnB,GAAA,WAAAQ,EAAAhB,IAAAmB,CAAA,GAAAC,MAAAJ,EAAAa,KAAAF,EAAAnB,GAAA,cAAAQ,EAAAa,IAAAT,CAAA,GAAAJ,EAAAc,IAAAC,EAAAvB,GAAAc,GAAAN,EAAAc,CAAA,GAAAN,MAAAR,EAAAgB,KAAAL,EAAAnB,GAAA,SAAAQ,EAAAgB,IAAAR,CAAA,GAAAC,MAAAT,EAAAiB,KAAAN,EAAAjB,GAAA,UAAAM,EAAAiB,IAAAR,CAAA,GAAAT;EAAA,GAAA;GAAAU,GAAAQ,KAAAA;GAAAN,GAAAM,KAAAA;GAAAlC,GAAAkC,KAAAA;GAAAL,GAAAK,KAAAA;GAAAJ,GAAAI,KAAAA;GAAAF,GAAAE,KAAAA;GAAAD,GAAAC,KAAAA;EAAA,CAAA,GAAA1B;CAAA,EAAA,CAAA;AAG/B"}
|
|
@@ -1,7 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
import { MiddlewareData, Placement } from '../../../lib';
|
|
3
|
+
export interface TooltipContentContextValue {
|
|
4
|
+
/** createPositioner 产出的 middlewareData,TooltipArrow 从里面取 arrow 中间件算好的偏移量 */
|
|
5
|
+
middlewareData: Accessor<MiddlewareData>;
|
|
6
|
+
/** 经过 flip 调整后的最终 placement,决定箭头贴哪条边、朝哪个方向 */
|
|
7
|
+
placement: Accessor<Placement>;
|
|
8
|
+
/** TooltipArrow 挂载时用来把自己的 DOM 节点注册给 arrow middleware(Element 而不是 HTMLElement,兼容 SVG 箭头) */
|
|
9
|
+
setArrowElement: (el: Element) => void;
|
|
10
|
+
/**
|
|
11
|
+
* 驱动进出场动画的状态,和 TooltipContent 内层元素的 data-state 用的是
|
|
12
|
+
* 同一个信号——TooltipArrow 应该用它独立播放自己的一份动画,而不是依赖
|
|
13
|
+
* "作为内层元素的子节点、被动继承内层的 transform/opacity 动画"这种隐式
|
|
14
|
+
* 机制(内层的 zoom-in-95 动画会给它加一个非 none 的 transform,CSS 规范
|
|
15
|
+
* 规定这会让内层变成子元素新的"包含块",和箭头故意跳过内层、以外层为
|
|
16
|
+
* 基准的设计相冲突,动画播放期间会让"父子两层谁负责什么"变得不可靠)。
|
|
17
|
+
*/
|
|
18
|
+
animationState: Accessor<"open" | "closed">;
|
|
4
19
|
}
|
|
5
20
|
export declare const TooltipContentContext: import('solid-js').Context<TooltipContentContextValue | undefined>;
|
|
6
|
-
export declare function useTooltipContentContext(): TooltipContentContextValue;
|
|
7
|
-
export {};
|
|
21
|
+
export declare function useTooltipContentContext(component: string): TooltipContentContextValue;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createContext as e, useContext as t } from "solid-js";
|
|
2
2
|
//#region src/components/tooltip/TooltipContent/TooltipContent.context.ts
|
|
3
3
|
var n = e();
|
|
4
|
-
function r() {
|
|
5
|
-
let
|
|
6
|
-
if (!
|
|
7
|
-
return
|
|
4
|
+
function r(e) {
|
|
5
|
+
let r = t(n);
|
|
6
|
+
if (!r) throw Error(`<${e}> 必须渲染在 <TooltipContent> 内部`);
|
|
7
|
+
return r;
|
|
8
8
|
}
|
|
9
9
|
//#endregion
|
|
10
10
|
export { n as TooltipContentContext, r as useTooltipContentContext };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.context.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.context.ts"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\n\
|
|
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 /** 经过 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":";;AAqBA,IAAa,IACX,EAA0C;AAE5C,SAAgB,EACd,GAC4B;CAC5B,IAAM,IAAM,EAAW,CAAqB;CAC5C,IAAI,CAAC,GACH,MAAU,MAAM,IAAI,EAAU,4BAA4B;CAE5D,OAAO;AACT"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
import { TooltipContentProps } from './TooltipContent.types';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Tooltip 的浮层内容。挂 Portal 到 body,用 position:fixed 定位。
|
|
4
|
+
*
|
|
5
|
+
* 内容本身默认是可以 hover 的(不是 pointer-events:none):鼠标移进 content
|
|
6
|
+
* 会取消待执行的关闭计时器(ctx.keepOpen),移出才真正走 closeDelay 关闭——
|
|
7
|
+
* 这样用户可以把鼠标从 trigger 移动到 tooltip 上选中里面的文字,不会因为
|
|
8
|
+
* "离开 trigger 就关闭" 而选不到。如果你的 tooltip 内容很简单、不需要这个特性,
|
|
9
|
+
* 可以自己在外面包一层设置 pointer-events: none。
|
|
10
|
+
*/
|
|
11
|
+
export declare function TooltipContent(props: TooltipContentProps): import("solid-js").JSX.Element;
|
|
@@ -1,76 +1,90 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { TooltipContentContext as n } from "./TooltipContent.context.js";
|
|
1
|
+
import { getAlignment as e, getSide as t } from "../../../lib/positioner/core/placement.js";
|
|
2
|
+
import { getTransformOrigin as n } from "./TooltipContent.utils.js";
|
|
4
3
|
import { useTooltipContent as r } from "./useTooltipContent.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { TooltipContentContext as i } from "./TooltipContent.context.js";
|
|
5
|
+
import { Portal as a, createComponent as o, effect as s, insert as c, mergeProps as l, setAttribute as u, spread as d, style as f, template as p, use as m } from "solid-js/web";
|
|
6
|
+
import { Show as h, onCleanup as g, splitProps as _ } from "solid-js";
|
|
7
7
|
//#region src/components/tooltip/TooltipContent/TooltipContent.tsx
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}, l), [
|
|
8
|
+
var v = /*#__PURE__*/ p("<div style=z-index:1000><div><div role=tooltip>");
|
|
9
|
+
function y(...e) {
|
|
10
|
+
return e.filter(Boolean).join(" ");
|
|
11
|
+
}
|
|
12
|
+
function b(p) {
|
|
13
|
+
let { ctx: b, pos: x, mounted: S, animationState: C, setArrowElement: w, setContentElement: T, slideStyle: E } = r(() => p), [D, O] = _(p, [
|
|
15
14
|
"side",
|
|
16
15
|
"align",
|
|
17
|
-
"alignOffset",
|
|
18
16
|
"sideOffset",
|
|
17
|
+
"alignOffset",
|
|
18
|
+
"collisionPadding",
|
|
19
19
|
"class",
|
|
20
|
-
"
|
|
20
|
+
"style",
|
|
21
21
|
"children"
|
|
22
|
-
])
|
|
23
|
-
return
|
|
22
|
+
]);
|
|
23
|
+
return o(h, {
|
|
24
24
|
get when() {
|
|
25
25
|
return S();
|
|
26
26
|
},
|
|
27
27
|
get children() {
|
|
28
|
-
return a
|
|
29
|
-
var
|
|
30
|
-
return
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
return o(a, { get children() {
|
|
29
|
+
var r = v(), a = r.firstChild, p = a.firstChild;
|
|
30
|
+
return m((e) => {
|
|
31
|
+
b.setFloating(e), g(() => b.setFloating(void 0));
|
|
32
|
+
}, r), m(T, p), d(p, l({
|
|
33
|
+
get id() {
|
|
34
|
+
return b.contentId;
|
|
33
35
|
},
|
|
34
|
-
get "data-
|
|
35
|
-
return
|
|
36
|
-
},
|
|
37
|
-
get "data-align"() {
|
|
38
|
-
return C.align;
|
|
36
|
+
get "data-state"() {
|
|
37
|
+
return C();
|
|
39
38
|
},
|
|
40
39
|
get "data-side"() {
|
|
41
|
-
return
|
|
40
|
+
return t(x.placement());
|
|
42
41
|
},
|
|
43
|
-
get
|
|
44
|
-
return
|
|
42
|
+
get "data-align"() {
|
|
43
|
+
return e(x.placement()) ?? "center";
|
|
45
44
|
},
|
|
46
|
-
get
|
|
47
|
-
return
|
|
45
|
+
get onMouseEnter() {
|
|
46
|
+
return b.keepOpen;
|
|
47
|
+
},
|
|
48
|
+
get onMouseLeave() {
|
|
49
|
+
return b.requestClose;
|
|
48
50
|
},
|
|
49
51
|
get style() {
|
|
50
52
|
return {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
visibility: C.top === 0 ? "hidden" : "visible"
|
|
53
|
+
"transform-origin": n(x.placement()),
|
|
54
|
+
...typeof D.style == "object" ? D.style : void 0
|
|
54
55
|
};
|
|
56
|
+
},
|
|
57
|
+
get class() {
|
|
58
|
+
return y("max-w-xs rounded-md px-3 py-1.5 text-xs leading-relaxed shadow-md", "data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95", "data-[side=top]:slide-in-from-bottom-2", "data-[side=bottom]:slide-in-from-top-2", "data-[side=left]:slide-in-from-right-2", "data-[side=right]:slide-in-from-left-2", "bg-foreground text-background", D.class);
|
|
55
59
|
}
|
|
56
|
-
},
|
|
57
|
-
value
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
60
|
+
}, O), !1, !0), c(p, o(i.Provider, {
|
|
61
|
+
get value() {
|
|
62
|
+
return {
|
|
63
|
+
middlewareData: x.middlewareData,
|
|
64
|
+
placement: x.placement,
|
|
65
|
+
setArrowElement: w,
|
|
66
|
+
animationState: C
|
|
67
|
+
};
|
|
64
68
|
},
|
|
65
69
|
get children() {
|
|
66
|
-
return
|
|
70
|
+
return D.children;
|
|
67
71
|
}
|
|
68
|
-
})),
|
|
72
|
+
})), s((e) => {
|
|
73
|
+
var t = x.placement(), n = {
|
|
74
|
+
...x.floatingStyles(),
|
|
75
|
+
opacity: +!!x.isPositioned()
|
|
76
|
+
}, i = E();
|
|
77
|
+
return t !== e.e && u(r, "data-placement", e.e = t), e.t = f(r, n, e.t), e.a = f(a, i, e.a), e;
|
|
78
|
+
}, {
|
|
79
|
+
e: void 0,
|
|
80
|
+
t: void 0,
|
|
81
|
+
a: void 0
|
|
82
|
+
}), r;
|
|
69
83
|
} });
|
|
70
84
|
}
|
|
71
85
|
});
|
|
72
|
-
}
|
|
86
|
+
}
|
|
73
87
|
//#endregion
|
|
74
|
-
export {
|
|
88
|
+
export { b as TooltipContent };
|
|
75
89
|
|
|
76
90
|
//# sourceMappingURL=TooltipContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.js","names":["
|
|
1
|
+
{"version":3,"file":"TooltipContent.js","names":["Show","onCleanup","splitProps","Portal","useTooltipContent","TooltipContentContext","getTransformOrigin","getSide","getAlignment","TooltipContentProps","cn","classes","Array","filter","Boolean","join","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","_$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\";\n\nfunction cn(...classes: Array<string | false | undefined | null>): string {\n return classes.filter(Boolean).join(\" \");\n}\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={cn(\n \"max-w-xs rounded-md px-3 py-1.5 text-xs leading-relaxed shadow-md\",\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 \"bg-foreground text-background\",\n local.class,\n )}\n {...rest}\n >\n <TooltipContentContext.Provider\n value={{\n middlewareData: pos.middlewareData,\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":";;;;;;;;AAQA,SAASU,EAAG,GAAGC,GAA2D;CACxE,OAAOA,EAAQE,OAAOC,OAAO,CAAC,CAACC,KAAK,GAAG;AACzC;AAWA,SAAgBC,EAAeC,GAA4B;CACzD,IAAM,EACJC,QACAC,QACAC,YACAC,mBACAC,oBACAC,sBACAC,kBACEpB,QAAwBa,CAAK,GAI3B,CAACQ,GAAOC,KAAQxB,EAAWe,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,OAAAU,EACG3B,GAAI;EAAA,IAAC4B,OAAI;GAAA,OAAER,EAAQ;EAAC;EAAA,IAAAS,WAAA;GAAA,OAAAF,EAClBxB,GAAM,EAAA,IAAA0B,WAAA;IAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG,YAAAC,IAAAF,EAAAC;IAwCqB,OAxCrBE,GAOGC,MAAO;KASXnC,AARAiB,EAAImB,YAAYD,CAAE,GAQlBnC,QAAgBiB,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,OACjBd,EAAQY,EAAI0B,UAAU,CAAC;KAAC;KAAA,IAAA,eAAA;MAAA,OACvBrC,EAAaW,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,oBAAoB7C,EAAmBa,EAAI0B,UAAU,CAAC;OACtD,GAAI,OAAOpB,EAAM0B,SAAU,WAAW1B,EAAM0B,QAAQb,KAAAA;MACtD;KAAC;KAAA,IAAA,QAAA;MAAA,OACM5B,EACL,qEACA,yFACA,kGAMA,0CACA,0CACA,0CACA,0CACA,iCACAe,EAAM2B,KACR;KAAC;IAAA,GACG1B,CAAI,GAAA,IAAA,EAAA,GAAA2B,EAAAnB,GAAAP,EAEPtB,EAAsBiD,UAAQ;KAAA,IAC7BC,QAAK;MAAA,OAAE;OACLC,gBAAgBrC,EAAIqC;OACpBX,WAAW1B,EAAI0B;OACfvB;OACAD;MACF;KAAC;KAAA,IAAAQ,WAAA;MAAA,OAEAJ,EAAMI;KAAQ;IAAA,CAAA,CAAA,GAAA4B,GAAAC,MAAA;KAAA,IAAAC,IAtGLxC,EAAI0B,UAAU,GAACe,IACxB;MACL,GAAGzC,EAAI0C,eAAe;MAEtBC,SAAS3C,KAAI4C,aAAa;KAC5B,GAACC,IAiBWxC,EAAW;KAAC,OAAAmC,MAAAD,EAAAO,KAAAC,EAAApC,GAAA,kBAAA4B,EAAAO,IAAAN,CAAA,GAAAD,EAAAS,IAAAC,EAAAtC,GAAA8B,GAAAF,EAAAS,CAAA,GAAAT,EAAAW,IAAAD,EAAApC,GAAAgC,GAAAN,EAAAW,CAAA,GAAAX;IAAA,GAAA;KAAAO,GAAA3B,KAAAA;KAAA6B,GAAA7B,KAAAA;KAAA+B,GAAA/B,KAAAA;IAAA,CAAA,GAAAR;GAAA,EAAA,CAAA;EAAA;CAAA,CAAA;AAwFlC"}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
import { Alignment, Side } from '../../../lib';
|
|
1
2
|
import { BaseProps, PolymorphicProps } from '../../../types';
|
|
2
3
|
interface BaseTooltipContentProps extends BaseProps {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
/** 贴 trigger 的哪一侧,默认 'top' */
|
|
5
|
+
side?: Side;
|
|
6
|
+
/** 沿边对齐方式,默认 'center'(不偏移,居中对齐) */
|
|
7
|
+
align?: Alignment | "center";
|
|
8
|
+
/** 沿主轴(side 指向的方向)与 trigger 之间的间距(像素),默认 8 */
|
|
6
9
|
sideOffset?: number;
|
|
10
|
+
/**
|
|
11
|
+
* 沿交叉轴(对齐方向)的偏移(像素),默认 0——align 是 'start'/'end' 时
|
|
12
|
+
* 微调对齐位置用。底层直接对应 offset middleware 的 crossAxis。
|
|
13
|
+
*/
|
|
14
|
+
alignOffset?: number;
|
|
15
|
+
/** 距视口边缘的最小间距(像素),用于 flip/shift 的边界检测,默认 8 */
|
|
16
|
+
collisionPadding?: number;
|
|
7
17
|
}
|
|
8
18
|
export type TooltipContentProps = PolymorphicProps<"div", BaseTooltipContentProps, false>;
|
|
9
19
|
export {};
|
|
@@ -1,6 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { Middleware, Placement, Side, Alignment } from '../../../lib';
|
|
2
|
+
/**
|
|
3
|
+
* 把 shadcn/Radix 风格的 side + align 拆分参数,转换成核心库统一用的
|
|
4
|
+
* `Placement` 字符串(比如 side='top' + align='start' → 'top-start')。
|
|
5
|
+
* align 是 'center'(默认对齐、不偏移)时不带后缀,直接是 side 本身。
|
|
6
|
+
*/
|
|
7
|
+
export declare function toPlacement(side: Side, align: Alignment | "center"): Placement;
|
|
8
|
+
/**
|
|
9
|
+
* 根据最终生效的 placement,算出缩放动画应该以哪个点为锚点(CSS transform-origin)。
|
|
10
|
+
* 锚点应该落在"贴近 trigger 的那条边"上——比如 placement 是 'top'(content 在
|
|
11
|
+
* trigger 上方),锚点就该是 content 自己的底边,缩放动画看起来才会像是
|
|
12
|
+
* "从 trigger 那里长出来",而不是原地放大缩小(默认的 transform-origin 是
|
|
13
|
+
* 几何中心 50% 50%,视觉上和"从哪个方向冒出来"没有任何关联)。
|
|
14
|
+
* 交叉轴(对齐方向)同理:align 是 start 就贴左/上边,end 就贴右/下边。
|
|
15
|
+
*/
|
|
16
|
+
export declare function getTransformOrigin(placement: Placement): string;
|
|
17
|
+
export interface BuildTooltipMiddlewareOptions {
|
|
18
|
+
sideOffset: number;
|
|
19
|
+
/** 沿交叉轴(对齐方向)的偏移,对应 offset middleware 的 crossAxis */
|
|
20
|
+
alignOffset: number;
|
|
21
|
+
collisionPadding: number;
|
|
22
|
+
arrowElement: () => Element | undefined;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Tooltip 定位管线的固定配方:
|
|
26
|
+
*
|
|
27
|
+
* 1. offset — 沿主轴保持 sideOffset 间距,沿交叉轴偏移 alignOffset
|
|
28
|
+
* 2. flip — 主轴方向放不下就翻到对面(比如上方没空间就翻到下方)
|
|
29
|
+
* 3. shift — 翻转后仍溢出,就在不换边的前提下贴边平移
|
|
30
|
+
* 4. arrow — 算出箭头相对 content 的偏移,让它始终指向 trigger 中心
|
|
31
|
+
* 5. hide — trigger 被自己的滚动容器完全裁掉时标记隐藏
|
|
32
|
+
* 6. containingBlockOffset — 修正祖先元素 transform 等属性导致的 position:fixed
|
|
33
|
+
* 包含块偏移(demo 里通常不出现,放进有大量 transform 的真实项目后才会暴露,
|
|
34
|
+
* 详见该 middleware 自身的注释)。放在最后一位,因为它修正的是"最终要写进
|
|
35
|
+
* DOM 的坐标",前面几步都在统一的视口坐标系里计算,不受这个偏移影响。
|
|
36
|
+
*
|
|
37
|
+
* 特意没有用 size 中间件去动态限制 max-height、允许内容超长时滚动——
|
|
38
|
+
* tooltip 不应该出现滚动条(这不是本库的一般性限制,是 tooltip 这个组件
|
|
39
|
+
* 类型本身该有的样子,shadcn/Radix 的 Tooltip 也是这么做的)。宽度上限
|
|
40
|
+
* 靠 TooltipContent.tsx 里静态的 `max-w-xs` class 兜底,让文字自然换行;
|
|
41
|
+
* 高度完全不做限制,交给内容自身的实际高度决定。
|
|
42
|
+
*
|
|
43
|
+
* 这个决定还有一个技术上的原因:早先的实现里试过用 size 中间件动态算
|
|
44
|
+
* max-height 配合 overflow:auto 实现"超长内容可滚动",结果发现内层元素
|
|
45
|
+
* 一旦同时具备 overflow:auto 和入场动画(zoom-in-95 会给它加一个 transform),
|
|
46
|
+
* 动画播放期间 transform 会让这个元素变成箭头新的包含块(CSS 规范:非 none
|
|
47
|
+
* 的 transform 会创建包含块),箭头戳出内层边缘的那部分又会被算进内层的
|
|
48
|
+
* 可滚动溢出区域——于是出现了"打开瞬间闪一下滚动条,箭头跟着被遮住,
|
|
49
|
+
* 动画播完滚动条消失、箭头才重新出现"这种诡异现象。去掉滚动能力后,
|
|
50
|
+
* 这个耦合从根上就不存在了。
|
|
51
|
+
*
|
|
52
|
+
* 顺序不能随便换:arrow 必须在 shift/flip 之后(要用最终坐标才能算对偏移),
|
|
53
|
+
* containingBlockOffset 必须在所有其他 middleware 之后。
|
|
54
|
+
*
|
|
55
|
+
* 单独抽成函数是为了让 useTooltipContent 保持简洁,也方便针对这套管线单独测试。
|
|
56
|
+
*/
|
|
57
|
+
export declare function createTooltipMiddleware(options: BuildTooltipMiddlewareOptions): Middleware[];
|
|
@@ -1,64 +1,40 @@
|
|
|
1
|
+
import { getAlignment as e, getSide as t } from "../../../lib/positioner/core/placement.js";
|
|
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
8
|
//#region src/components/tooltip/TooltipContent/TooltipContent.utils.ts
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
case "
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
case "
|
|
12
|
-
o.left < s + a && o.right + a + s <= l && (p = "right");
|
|
13
|
-
break;
|
|
14
|
-
case "right":
|
|
15
|
-
o.right + a + s > l && o.left - a - s >= 0 && (p = "left");
|
|
16
|
-
break;
|
|
17
|
-
}
|
|
18
|
-
switch (p) {
|
|
19
|
-
case "top":
|
|
20
|
-
d = o.top - c - a;
|
|
21
|
-
break;
|
|
22
|
-
case "bottom":
|
|
23
|
-
d = o.bottom + a;
|
|
24
|
-
break;
|
|
25
|
-
case "left":
|
|
26
|
-
f = o.left - s - a;
|
|
27
|
-
break;
|
|
28
|
-
case "right":
|
|
29
|
-
f = o.right + a;
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
if (p === "top" || p === "bottom") switch (r) {
|
|
33
|
-
case "start":
|
|
34
|
-
f = o.left + i;
|
|
35
|
-
break;
|
|
36
|
-
case "center":
|
|
37
|
-
f = o.left + o.width / 2 - s / 2 + i;
|
|
38
|
-
break;
|
|
39
|
-
case "end":
|
|
40
|
-
f = o.right - s - i;
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
else switch (r) {
|
|
44
|
-
case "start":
|
|
45
|
-
d = o.top + i;
|
|
46
|
-
break;
|
|
47
|
-
case "center":
|
|
48
|
-
d = o.top + o.height / 2 - c / 2 + i;
|
|
49
|
-
break;
|
|
50
|
-
case "end":
|
|
51
|
-
d = o.bottom - c - i;
|
|
52
|
-
break;
|
|
9
|
+
function c(e, t) {
|
|
10
|
+
return t === "center" ? e : `${e}-${t}`;
|
|
11
|
+
}
|
|
12
|
+
function l(n) {
|
|
13
|
+
let r = t(n), i = e(n), a = i === "start" ? "0%" : i === "end" ? "100%" : "50%";
|
|
14
|
+
switch (r) {
|
|
15
|
+
case "top": return `${a} 100%`;
|
|
16
|
+
case "bottom": return `${a} 0%`;
|
|
17
|
+
case "left": return `100% ${a}`;
|
|
18
|
+
case "right": return `0% ${a}`;
|
|
53
19
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
20
|
+
}
|
|
21
|
+
function u(e) {
|
|
22
|
+
return [
|
|
23
|
+
n({
|
|
24
|
+
mainAxis: e.sideOffset,
|
|
25
|
+
crossAxis: e.alignOffset
|
|
26
|
+
}),
|
|
27
|
+
i(),
|
|
28
|
+
r({ padding: e.collisionPadding }),
|
|
29
|
+
a({
|
|
30
|
+
element: e.arrowElement,
|
|
31
|
+
padding: 6
|
|
32
|
+
}),
|
|
33
|
+
o(),
|
|
34
|
+
s()
|
|
35
|
+
];
|
|
60
36
|
}
|
|
61
37
|
//#endregion
|
|
62
|
-
export {
|
|
38
|
+
export { u as createTooltipMiddleware, l as getTransformOrigin, c as toPlacement };
|
|
63
39
|
|
|
64
40
|
//# sourceMappingURL=TooltipContent.utils.js.map
|