@neut/ui 0.0.9 → 0.0.11
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.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/tabs/Tabs/Tabs.context.d.ts +47 -0
- package/dist/components/tabs/Tabs/Tabs.context.js +54 -0
- package/dist/components/tabs/Tabs/Tabs.context.js.map +1 -0
- package/dist/components/tabs/Tabs/Tabs.d.ts +2 -0
- package/dist/components/tabs/Tabs/Tabs.js +71 -0
- package/dist/components/tabs/Tabs/Tabs.js.map +1 -0
- package/dist/components/tabs/Tabs/Tabs.types.d.ts +16 -0
- package/dist/components/tabs/Tabs/call-event-handler.d.ts +5 -0
- package/dist/components/tabs/Tabs/call-event-handler.js +9 -0
- package/dist/components/tabs/Tabs/call-event-handler.js.map +1 -0
- package/dist/components/tabs/Tabs/index.d.ts +2 -0
- package/dist/components/tabs/Tabs/useTabsKeyboard.d.ts +18 -0
- package/dist/components/tabs/Tabs/useTabsKeyboard.js +49 -0
- package/dist/components/tabs/Tabs/useTabsKeyboard.js.map +1 -0
- package/dist/components/tabs/TabsContent/TabsContent.d.ts +3 -0
- package/dist/components/tabs/TabsContent/TabsContent.js +52 -0
- package/dist/components/tabs/TabsContent/TabsContent.js.map +1 -0
- package/dist/components/tabs/TabsContent/TabsContent.types.d.ts +6 -0
- package/dist/components/tabs/TabsContent/index.d.ts +2 -0
- package/dist/components/tabs/TabsList/TabsList.context.d.ts +7 -0
- package/dist/components/tabs/TabsList/TabsList.context.js +11 -0
- package/dist/components/tabs/TabsList/TabsList.context.js.map +1 -0
- package/dist/components/tabs/TabsList/TabsList.d.ts +2 -0
- package/dist/components/tabs/TabsList/TabsList.js +48 -0
- package/dist/components/tabs/TabsList/TabsList.js.map +1 -0
- package/dist/components/tabs/TabsList/TabsList.styles.d.ts +3 -0
- package/dist/components/tabs/TabsList/TabsList.styles.js +13 -0
- package/dist/components/tabs/TabsList/TabsList.styles.js.map +1 -0
- package/dist/components/tabs/TabsList/TabsList.types.d.ts +7 -0
- package/dist/components/tabs/TabsList/index.d.ts +2 -0
- package/dist/components/tabs/TabsTrigger/TabsTrigger.d.ts +2 -0
- package/dist/components/tabs/TabsTrigger/TabsTrigger.js +71 -0
- package/dist/components/tabs/TabsTrigger/TabsTrigger.js.map +1 -0
- package/dist/components/tabs/TabsTrigger/TabsTrigger.styles.d.ts +1 -0
- package/dist/components/tabs/TabsTrigger/TabsTrigger.styles.js +7 -0
- package/dist/components/tabs/TabsTrigger/TabsTrigger.styles.js.map +1 -0
- package/dist/components/tabs/TabsTrigger/TabsTrigger.types.d.ts +6 -0
- package/dist/components/tabs/TabsTrigger/index.d.ts +2 -0
- package/dist/components/tabs/index.d.ts +4 -0
- package/dist/components/tabs/index.js +5 -0
- 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.d.ts +1 -0
- package/dist/index.js +159 -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 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltipContent.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/useTooltipContent.ts"],"sourcesContent":["import {
|
|
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(props().side ?? \"top\", props().align ?? \"center\"),\n strategy: \"fixed\",\n middleware: () =>\n createTooltipMiddleware({\n sideOffset: props().sideOffset ?? 8,\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 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 const [mounted, setMounted] = createSignal(isVisible());\n\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,IAAM,IAAmB;AA2CzB,SAAgB,EACd,GACyB;CACzB,IAAM,IAAM,EAAkB,gBAAgB,GACxC,CAAC,GAAc,KAAmB,EAAsB,GACxD,CAAC,GAAgB,KAAqB,EAA0B,GAEhE,IAAM,EAAiB,EAAI,WAAW,EAAI,UAAU;EACxD,iBACE,EAAY,EAAM,CAAC,CAAC,QAAQ,OAAO,EAAM,CAAC,CAAC,SAAS,QAAQ;EAC9D,UAAU;EACV,kBACE,EAAwB;GACtB,YAAY,EAAM,CAAC,CAAC,cAAc;GAClC,aAAa,EAAM,CAAC,CAAC,eAAe;GACpC,kBAAkB,EAAM,CAAC,CAAC,oBAAoB;GAC9C;EACF,CAAC;CACL,CAAC,GAIK,IAAY,QACV,EAAI,KAAK,KAAK,CAAC,EAAI,eAAe,CAAC,CAAC,MAAM,eAClD,GAKM,CAAC,GAAgB,KAAqB,EAC1C,QACF;CAEA,QAAmB;EACjB,IAAI,EAAU,GAAG;GACf,IAAM,IAAM,4BAA4B,EAAkB,MAAM,CAAC;GACjE,QAAgB,qBAAqB,CAAG,CAAC;EAC3C,OAGE,EAAkB,QAAQ;CAE9B,CAAC;CAGD,IAAM,CAAC,GAAa,KAAkB,EAGnC;CAEH,QAAmB;EACjB,IAAI,CAAC,EAAQ,GAAG;EAChB,IAAM,IAAO,EAAI,iBAAiB;EAGlC,IAFI,CAAC,KAED,CAAC,EAAI,aAAa,GAAG;EAEzB,IAAM,IAAK,EAAK,IAAI,EAAI,EAAE,GACpB,IAAK,EAAK,IAAI,EAAI,EAAE;EAa1B,AAVA,EAAe;GAAE,GAAG;GAAI,GAAG;EAAG,CAAC,GAG/B,EAAI,sBAAsB,GAO1B,4BAA4B,EAAe;GAAE,GAAG;GAAG,GAAG;EAAE,CAAC,CAAC;CAC5D,CAAC;CAED,IAAM,IAAa,QAAiB;EAClC,IAAM,IAAS,EAAY;EAC3B,IAAI,CAAC,GAAQ,OAAO,CAAC;EACrB,IAAM,IAAS,EAAO,MAAM,KAAK,EAAO,MAAM;EAC9C,OAAO;GACL,WAAW,aAAa,EAAO,EAAE,MAAM,EAAO,EAAE;GAGhD,YAAY,IAAS,yBAAyB,KAAA;EAChD;CACF,CAAC,GAMK,CAAC,GAAS,KAAc,EAAa,EAAU,CAAC;CAsCtD,OApCA,GAAc,MAAwB;EACpC,IAAM,IAAU,EAAU,GACpB,IAAK,EAAe;EAE1B,IAAI,GACF,EAAW,EAAI;OACV,IAAI,KAAc,GACvB,IAAI,EAAI,6BAA6B,GAInC,EAAW,EAAK;OACX;GACL,IAAM,KAAsB,MAAsB;IAE5C,EAAE,WAAW,KACjB,EAAW,EAAK;GAClB;GAEA,AADA,EAAG,iBAAiB,gBAAgB,CAAkB,GACtD,QACE,EAAG,oBAAoB,gBAAgB,CAAkB,CAC3D;GAEA,IAAM,IAAW,OAAO,iBAChB,EAAW,EAAK,GACtB,CACF;GACA,QAAgB,OAAO,aAAa,CAAQ,CAAC;EAC/C;OACK,AAAK,KACV,EAAW,EAAK;EAGlB,OAAO;CACT,GAAG,EAAU,CAAC,GAEP;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Rect } from '../../../lib';
|
|
2
|
+
export interface ActiveTooltipEntry {
|
|
3
|
+
/** 读取这个 tooltip 浮层此刻的实时矩形,供下一个抢占它的 tooltip 当"滑入起点"用 */
|
|
4
|
+
rect: () => Rect | undefined;
|
|
5
|
+
/** 立即关闭(跳过 closeDelay 和退场动画)——组内切换到别的 trigger 时调用 */
|
|
6
|
+
forceClose: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface TooltipGroupContextValue {
|
|
9
|
+
/** 打开时注册自己为"组内当前活跃的 tooltip",返回取消注册函数(关闭/卸载时调用) */
|
|
10
|
+
registerActive: (entry: ActiveTooltipEntry) => () => void;
|
|
11
|
+
/**
|
|
12
|
+
* 组内某个 tooltip 即将打开时调用:
|
|
13
|
+
* 如果组里当前已经有一个活跃的 tooltip,立即强制关闭它、拿到它此刻的矩形
|
|
14
|
+
* 并返回(用作平移过渡的起点);如果组内当前没有任何活跃 tooltip,返回
|
|
15
|
+
* undefined,调用方应该走正常的 openDelay 流程。
|
|
16
|
+
*
|
|
17
|
+
* 用"是否存在活跃 tooltip"而不是"上一个关闭后多久之内"这种时间窗口来判断,
|
|
18
|
+
* 是为了精确匹配"旧的还在退场倒计时里、这时候 hover 了别的 trigger"这个场景——
|
|
19
|
+
* 这种情况下旧的严格来说还没真正关闭(open() 依然是 true),基于时间窗口的
|
|
20
|
+
* 判断会因为"还没关闭、没触发通知"而错过这次协调,直接查"当前活跃"更可靠。
|
|
21
|
+
*/
|
|
22
|
+
claim: () => Rect | undefined;
|
|
23
|
+
}
|
|
24
|
+
export declare const TooltipGroupContext: import('solid-js').Context<TooltipGroupContextValue | undefined>;
|
|
25
|
+
/**
|
|
26
|
+
* 注意:和其他 useXxxContext 不同,这里缺失 context 时不抛错——
|
|
27
|
+
* <TooltipGroup> 是可选的,单独使用 <Tooltip> 不需要包一层。
|
|
28
|
+
*/
|
|
29
|
+
export declare function useTooltipGroupContext(): TooltipGroupContextValue | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createContext as e, useContext as t } from "solid-js";
|
|
2
|
+
//#region src/components/tooltip/TooltipGroup/TooltipGroup.context.ts
|
|
3
|
+
var n = e();
|
|
4
|
+
function r() {
|
|
5
|
+
return t(n);
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { n as TooltipGroupContext, r as useTooltipGroupContext };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=TooltipGroup.context.js.map
|
|
@@ -0,0 +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,IAAa,IAAsB,EAAwC;AAM3E,SAAgB,IAA+D;CAC7E,OAAO,EAAW,CAAmB;AACvC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { TooltipGroupContext as e } from "./TooltipGroup.context.js";
|
|
2
|
+
import { createComponent as t } from "solid-js/web";
|
|
3
|
+
//#region src/components/tooltip/TooltipGroup/TooltipGroup.tsx
|
|
4
|
+
function n(n) {
|
|
5
|
+
let r;
|
|
6
|
+
return t(e.Provider, {
|
|
7
|
+
value: {
|
|
8
|
+
registerActive: (e) => (r = e, () => {
|
|
9
|
+
r === e && (r = void 0);
|
|
10
|
+
}),
|
|
11
|
+
claim: () => {
|
|
12
|
+
if (!r) return;
|
|
13
|
+
let e = r.rect();
|
|
14
|
+
if (r.forceClose(), r = void 0, !(!e || e.width === 0 && e.height === 0)) return e;
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
get children() {
|
|
18
|
+
return n.children;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { n as TooltipGroup };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=TooltipGroup.js.map
|
|
@@ -0,0 +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;IAC9BL,MAAYM,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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ParentProps } from 'solid-js';
|
|
2
|
+
/**
|
|
3
|
+
* <TooltipGroup> 是可选的:把多个 <Tooltip> 包在一起,组内相邻 trigger 之间
|
|
4
|
+
* 切换 hover 时,会跳过 openDelay 并触发"从旧位置滑到新位置"的过渡效果,
|
|
5
|
+
* 而不是旧的先走完退场动画、新的再等 openDelay 出现。
|
|
6
|
+
*
|
|
7
|
+
* 不需要这个效果的话,<Tooltip> 完全可以脱离 <TooltipGroup> 单独使用,
|
|
8
|
+
* 行为不受影响(内部用 useTooltipGroupContext 判断是否存在,缺失时静默降级)。
|
|
9
|
+
*/
|
|
10
|
+
export type TooltipGroupProps = ParentProps;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { TooltipGroup } from './TooltipGroup';
|
|
2
|
+
export { TooltipGroupContext, useTooltipGroupContext, } from './TooltipGroup.context';
|
|
3
|
+
export type { TooltipGroupContextValue, ActiveTooltipEntry, } from './TooltipGroup.context';
|
|
4
|
+
export type { TooltipGroupProps } from './TooltipGroup.types';
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { ValidComponent } from 'solid-js';
|
|
2
|
+
import { TooltipTriggerProps } from './TooltipTrigger.types';
|
|
3
|
+
import { Button } from '../../button';
|
|
4
|
+
export declare const TooltipTrigger: <T extends ValidComponent = typeof Button<"button">>(props: TooltipTriggerProps<T>) => import("solid-js").JSX.Element;
|
|
@@ -1,11 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Button as e } from "../../button/Button.js";
|
|
2
|
+
import { useTooltipTrigger as t } from "./useTooltipTrigger.js";
|
|
3
|
+
import { Dynamic as n, createComponent as r, memo as i, mergeProps as a } from "solid-js/web";
|
|
3
4
|
//#region src/components/tooltip/TooltipTrigger/TooltipTrigger.tsx
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
function o(...e) {
|
|
6
|
+
return (t) => {
|
|
7
|
+
for (let n of e) typeof n == "function" && n(t);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
var s = (s) => {
|
|
11
|
+
let { ctx: c, attachListeners: l } = t();
|
|
12
|
+
return r(n, a(s, {
|
|
13
|
+
get component() {
|
|
14
|
+
return s.component ?? e;
|
|
15
|
+
},
|
|
16
|
+
ref(e) {
|
|
17
|
+
var t = o(c.setReference, s.ref, l);
|
|
18
|
+
typeof t == "function" && t(e);
|
|
19
|
+
},
|
|
20
|
+
get "aria-describedby"() {
|
|
21
|
+
return i(() => !!c.open())() ? c.contentId : void 0;
|
|
22
|
+
},
|
|
23
|
+
get "data-state"() {
|
|
24
|
+
return c.open() ? "open" : "closed";
|
|
25
|
+
}
|
|
26
|
+
}));
|
|
7
27
|
};
|
|
8
28
|
//#endregion
|
|
9
|
-
export {
|
|
29
|
+
export { s as TooltipTrigger };
|
|
10
30
|
|
|
11
31
|
//# sourceMappingURL=TooltipTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipTrigger.js","names":["
|
|
1
|
+
{"version":3,"file":"TooltipTrigger.js","names":["ValidComponent","Dynamic","useTooltipTrigger","TooltipTriggerProps","Button","mergeRefs","refs","Array","Element","el","ref","TooltipTrigger","props","T","ctx","attachListeners","_$createComponent","_$mergeProps","component","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\";\n\n/**\n * 合并多个 ref,依次调用,谁都不会覆盖谁。\n *\n * 类型上写成 `Element | ((el: Element) => void)`,是为了匹配 Solid 的 ref\n * 类型约定(调用方在 JSX 里可以写 `ref={myVar}` 也可以写 `ref={(el) => ...}`)。\n * 但组件内部实际拿到的 props.ref,无论调用方是哪种写法,Solid 编译器都会\n * 统一规整成回调函数再转发进来(这是官方文档明确说明的行为:\n * https://docs.solidjs.com/concepts/refs#forwarding-refs),所以这里直接\n * 当函数调用即可,不需要再判断类型。\n */\nfunction mergeRefs(\n ...refs: Array<Element | ((el: Element) => void) | undefined>\n) {\n return (el: Element) => {\n for (const ref of refs) {\n if (typeof ref === \"function\") ref(el);\n }\n };\n}\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":";;;;AAkBA,SAASK,EACP,GAAGC,GACH;CACA,QAAQG,MAAgB;EACtB,KAAK,IAAMC,KAAOJ,GAChB,AAAI,OAAOI,KAAQ,cAAYA,EAAID,CAAE;CAEzC;AACF;AAEA,IAAaE,KAGXC,MACG;CACH,IAAM,EAAEE,QAAKC,uBAAoBb,EAAkB;CAEnD,OAAAc,EACGf,GAAOgB,EACFL,GAAK;EAAA,IACTM,YAAS;GAAA,OAAGN,EAAMM,aAAgCd;EAAgB;EAAAM,IAAAS,GAAA;GAAA,IAAAC,IAC7Df,EAAUS,EAAIO,cAAcT,EAAMF,KAAKK,CAAe;GAAC,OAAAK,KAAA,cAAAA,EAAAD,CAAA;EAAA;EAAA,IAAA,qBAAA;GAAA,OAC1CI,QAAA,CAAA,CAAAT,EAAIU,KAAK,CAAC,CAAA,CAAA,IAAGV,EAAIW,YAAYC,KAAAA;EAAS;EAAA,IAAA,eAAA;GAAA,OAC5CZ,EAAIU,KAAK,IAAI,SAAS;EAAQ;CAAA,CAAA,CAAA;AAIhD"}
|
|
@@ -1,2 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
1
|
+
import { useTooltipContext } from '../Tooltip/Tooltip.context';
|
|
2
|
+
export interface UseTooltipTriggerResult {
|
|
3
|
+
ctx: ReturnType<typeof useTooltipContext>;
|
|
4
|
+
/**
|
|
5
|
+
* 把打开/关闭相关的原生事件监听器绑定到真正的 DOM 元素上(通过 ref 调用)。
|
|
6
|
+
* 用 addEventListener 而不是 JSX 的 onXxx prop,是为了不占用这些 prop 名——
|
|
7
|
+
* 调用方可以在 <TooltipTrigger onClick={...} onMouseEnter={...}> 上自由传
|
|
8
|
+
* 自己的原生事件处理,两者是完全独立的两套机制(一个走 Solid 的事件系统,
|
|
9
|
+
* 一个是原生 addEventListener),互不覆盖、都会正常触发。
|
|
10
|
+
*/
|
|
11
|
+
attachListeners: (el: Element) => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 封装 TooltipTrigger 需要绑定的所有事件逻辑:
|
|
15
|
+
* - pointerenter/pointerleave(悬停进入/离开)走 openDelay/closeDelay
|
|
16
|
+
* - focus/blur(键盘导航)跳过延迟,立即开关——这是无障碍要求,键盘用户不该被迫等待
|
|
17
|
+
* - Escape 立即关闭,并阻止冒泡(避免被外层其他也监听 Escape 的逻辑重复处理)
|
|
18
|
+
* - mousedown 立即关闭——贴近 shadcn/Radix 的行为:用户开始点击这个元素,
|
|
19
|
+
* 就意味着要跟它交互了,tooltip 这时候还杵在那儿会挡视线,应该立刻让路,
|
|
20
|
+
* 不用等 pointerleave 或者走 closeDelay。
|
|
21
|
+
*
|
|
22
|
+
* mousedown 和 focus 之间有一个容易踩的坑:原生事件顺序是
|
|
23
|
+
* mousedown → focus → mouseup → click——点击一个可聚焦元素(比如 <button>),
|
|
24
|
+
* 浏览器会在 mousedown 之后自动给它 focus。如果不做处理,mousedown 刚关掉
|
|
25
|
+
* tooltip,紧跟着浏览器自动触发的 focus 又会把它立刻重新打开,两条逻辑打架。
|
|
26
|
+
* 用 isPointerDown 标记"这次 focus 是不是紧跟在点击后面被动触发的",是的话
|
|
27
|
+
* 就跳过重新打开,只有真正的键盘 Tab 导航触发的 focus 才会打开 tooltip。
|
|
28
|
+
*/
|
|
29
|
+
export declare function useTooltipTrigger(): UseTooltipTriggerResult;
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
import { useTooltipContext as e } from "../Tooltip/Tooltip.context.js";
|
|
2
|
-
import { onCleanup as t
|
|
2
|
+
import { onCleanup as t } from "solid-js";
|
|
3
3
|
//#region src/components/tooltip/TooltipTrigger/useTooltipTrigger.ts
|
|
4
|
-
|
|
5
|
-
let
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
4
|
+
function n() {
|
|
5
|
+
let n = e("TooltipTrigger");
|
|
6
|
+
return {
|
|
7
|
+
ctx: n,
|
|
8
|
+
attachListeners: (e) => {
|
|
9
|
+
let r = !1, i = () => {
|
|
10
|
+
n.disabled() || n.requestOpen();
|
|
11
|
+
}, a = () => {
|
|
12
|
+
n.requestClose();
|
|
13
|
+
}, o = () => {
|
|
14
|
+
r || n.disabled() || n.openImmediate();
|
|
15
|
+
}, s = () => {
|
|
16
|
+
n.closeImmediate();
|
|
17
|
+
}, c = (e) => {
|
|
18
|
+
let t = e;
|
|
19
|
+
t.key === "Escape" && n.open() && (t.stopPropagation(), n.closeImmediate());
|
|
20
|
+
}, l = () => {
|
|
21
|
+
r = !0, !n.disabled() && n.open() && n.closeImmediate();
|
|
22
|
+
}, u = () => {
|
|
23
|
+
r = !1;
|
|
24
|
+
};
|
|
25
|
+
e.addEventListener("pointerenter", i), e.addEventListener("pointerleave", a), e.addEventListener("focus", o), e.addEventListener("blur", s), e.addEventListener("keydown", c), e.addEventListener("mousedown", l), document.addEventListener("mouseup", u), t(() => {
|
|
26
|
+
e.removeEventListener("pointerenter", i), e.removeEventListener("pointerleave", a), e.removeEventListener("focus", o), e.removeEventListener("blur", s), e.removeEventListener("keydown", c), e.removeEventListener("mousedown", l), document.removeEventListener("mouseup", u);
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
31
|
//#endregion
|
|
32
|
-
export {
|
|
32
|
+
export { n as useTooltipTrigger };
|
|
33
33
|
|
|
34
34
|
//# sourceMappingURL=useTooltipTrigger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltipTrigger.js","names":[],"sources":["../../../../src/components/tooltip/TooltipTrigger/useTooltipTrigger.ts"],"sourcesContent":["import { onCleanup
|
|
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,SAAgB,IAA6C;CAC3D,IAAM,IAAM,EAAkB,gBAAgB;CA0D9C,OAAO;EAAE;EAAK,kBAxDW,MAAgB;GACvC,IAAI,IAAgB,IAEd,UAAuB;IAC3B,AAAK,EAAI,SAAS,KAAG,EAAI,YAAY;GACvC,GACM,UAAuB;IAC3B,EAAI,aAAa;GACnB,GACM,UAAgB;IAGhB,KACC,EAAI,SAAS,KAAG,EAAI,cAAc;GACzC,GACM,UAAe;IACnB,EAAI,eAAe;GACrB,GACM,KAAa,MAAa;IAC9B,IAAM,IAAgB;IACtB,AAAI,EAAc,QAAQ,YAAY,EAAI,KAAK,MAC7C,EAAc,gBAAgB,GAC9B,EAAI,eAAe;GAEvB,GACM,UAAoB;IACxB,IAAgB,IACZ,GAAI,SAAS,KACb,EAAI,KAAK,KAAG,EAAI,eAAe;GACrC,GAIM,UAA0B;IAC9B,IAAgB;GAClB;GAUA,AARA,EAAG,iBAAiB,gBAAgB,CAAc,GAClD,EAAG,iBAAiB,gBAAgB,CAAc,GAClD,EAAG,iBAAiB,SAAS,CAAO,GACpC,EAAG,iBAAiB,QAAQ,CAAM,GAClC,EAAG,iBAAiB,WAAW,CAAS,GACxC,EAAG,iBAAiB,aAAa,CAAW,GAC5C,SAAS,iBAAiB,WAAW,CAAiB,GAEtD,QAAgB;IAOd,AANA,EAAG,oBAAoB,gBAAgB,CAAc,GACrD,EAAG,oBAAoB,gBAAgB,CAAc,GACrD,EAAG,oBAAoB,SAAS,CAAO,GACvC,EAAG,oBAAoB,QAAQ,CAAM,GACrC,EAAG,oBAAoB,WAAW,CAAS,GAC3C,EAAG,oBAAoB,aAAa,CAAW,GAC/C,SAAS,oBAAoB,WAAW,CAAiB;GAC3D,CAAC;EACH;CAE8B;AAChC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
export { Tooltip } from './Tooltip';
|
|
2
|
+
export type { TooltipProps, TooltipContextValue } from './Tooltip';
|
|
2
3
|
export { TooltipTrigger } from './TooltipTrigger';
|
|
4
|
+
export type { TooltipTriggerProps } from './TooltipTrigger';
|
|
3
5
|
export { TooltipContent } from './TooltipContent';
|
|
6
|
+
export type { TooltipContentProps } from './TooltipContent';
|
|
4
7
|
export { TooltipArrow } from './TooltipArrow';
|
|
8
|
+
export type { TooltipArrowProps } from './TooltipArrow';
|
|
9
|
+
export { TooltipGroup } from './TooltipGroup';
|
|
10
|
+
export type { TooltipGroupProps, TooltipGroupContextValue, ActiveTooltipEntry, } from './TooltipGroup';
|
|
@@ -2,4 +2,5 @@ import { Tooltip as e } from "./Tooltip/Tooltip.js";
|
|
|
2
2
|
import { TooltipTrigger as t } from "./TooltipTrigger/TooltipTrigger.js";
|
|
3
3
|
import { TooltipContent as n } from "./TooltipContent/TooltipContent.js";
|
|
4
4
|
import { TooltipArrow as r } from "./TooltipArrow/TooltipArrow.js";
|
|
5
|
-
|
|
5
|
+
import { TooltipGroup as i } from "./TooltipGroup/TooltipGroup.js";
|
|
6
|
+
export { e as Tooltip, r as TooltipArrow, n as TooltipContent, i as TooltipGroup, t as TooltipTrigger };
|
|
@@ -59,7 +59,7 @@ var n = {
|
|
|
59
59
|
}
|
|
60
60
|
}, r = /* @__PURE__ */ new Set();
|
|
61
61
|
function i(e) {
|
|
62
|
-
return e.filter((e) => e in n
|
|
62
|
+
return e.filter((e) => e in n);
|
|
63
63
|
}
|
|
64
64
|
function a(e) {
|
|
65
65
|
let t = e.filter((e) => !r.has(n[e].family));
|
|
@@ -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 (
|
|
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,IAAM,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,GAKM,oBAAS,IAAI,IAAY;AAE/B,SAAS,EAAiB,GAAyB;CACjD,OAAO,EAAM,QAAQ,MACf,KAAQ,CAQb;AACH;AAiCA,SAAS,EAAgB,GAAqB;CAC5C,IAAM,IAAS,EAAM,QAAQ,MAAS,CAAC,EAAO,IAAI,EAAS,EAAK,CAAC,MAAM,CAAC;CACxE,IAAI,EAAO,WAAW,GAAG;CAEzB,IAAM,IAAW,CACf,GAAG,IAAI,IACL,EAAO,KAAK,MAAS;EACnB,IAAM,EAAE,WAAQ,eAAY,EAAS;EACrC,OAAO,UAAU,EAAO,QAAQ;CAClC,CAAC,CACH,CACF,GAEM,IAAO,SAAS,cAAc,MAAM;CAI1C,AAHA,EAAK,MAAM,cACX,EAAK,OAAO,qCAAqC,EAAS,KAAK,GAAG,EAAE,gBAEpE,SAAS,KAAK,YAAY,CAAI;CAC9B,KAAK,IAAM,KAAQ,GACjB,EAAO,IAAI,EAAS,EAAK,CAAC,MAAM;AAEpC;AAGA,SAAgB,EAAc,GAAgC;CAC5D,IAAM,EACJ,WAAQ,MACR,eAAY,SAAS,iBACrB,WAAQ,OACN,KAAW,CAAC,GAGV,IAAa,EADF,MAAM,QAAQ,CAAK,IAAI,IAAQ,CAAC,CAAK,CACV;CAQ5C,AALA,QAAmB;EACjB,EAAgB,CAAU;CAC5B,CAAC,GAGD,QAAmB;EACjB,IAAI,CAAC,KAAS,EAAW,WAAW,GAAG;EAGvC,IAAM,IAAK,KAAa,SAAS,iBAC3B,IAAO,EAAW,IAClB,IAAO,EAAG,aAAa,WAAW;EAIxC,AAFA,EAAG,aAAa,aAAa,CAAI,GAEjC,QAAgB;GAEd,AAAI,MAAS,OACX,EAAG,gBAAgB,WAAW,IAE9B,EAAG,aAAa,aAAa,CAAI;EAErC,CAAC;CACH,CAAC;AACH"}
|
package/dist/index.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export * from './components/skeleton';
|
|
|
28
28
|
export * from './components/slider';
|
|
29
29
|
export * from './components/spinner';
|
|
30
30
|
export * from './components/switch';
|
|
31
|
+
export * from './components/tabs';
|
|
31
32
|
export * from './components/textarea';
|
|
32
33
|
export * from './components/toast';
|
|
33
34
|
export * from './components/tooltip';
|