@neut/ui 0.0.9 → 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/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
|
@@ -12,7 +12,7 @@ import { addEventListener as l, className as u, createComponent as d, delegateEv
|
|
|
12
12
|
import { Show as b, createEffect as x, createMemo as S, createSignal as C, onMount as w } from "solid-js";
|
|
13
13
|
import { X as T } from "lucide-solid";
|
|
14
14
|
//#region src/components/toast/components/Toast.tsx
|
|
15
|
-
var E =
|
|
15
|
+
var E = /*#__PURE__*/ v("<li data-sonner-toast>"), D = (f) => {
|
|
16
16
|
let v, [D, O] = C(!1), [k, A] = C(!1), j = a(), M = () => f.index === 0, N = () => f.index + 1 <= f.visibleToasts, P = () => f.toast.dismissible !== !1, F = () => f.toast.type ?? "default", I = () => F() === "loading", L = () => f.toast.closeButton ?? f.closeButton, R = () => f.toast.duration ?? f.duration ?? 4e3, [z, B] = f.position.split("-"), V = S(() => f.heights.findIndex((e) => e.toastId === f.toast.id) || 0), H = S(() => f.heights.reduce((e, t, n) => n >= V() ? e : e + t.height, 0)), U = S(() => V() * (f.gap ?? 14) + H());
|
|
17
17
|
w(() => O(!0));
|
|
18
18
|
let W = () => {
|
|
@@ -65,10 +65,7 @@ var E = /* @__PURE__ */ v("<li data-sonner-toast>"), D = (f) => {
|
|
|
65
65
|
};
|
|
66
66
|
},
|
|
67
67
|
get icon() {
|
|
68
|
-
return {
|
|
69
|
-
icon: d(T, {}),
|
|
70
|
-
ariaLabel: "Close"
|
|
71
|
-
};
|
|
68
|
+
return d(T, {});
|
|
72
69
|
},
|
|
73
70
|
size: "xs"
|
|
74
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","names":["createEffect","createMemo","createSignal","onMount","Show","Component","ToastIcon","ToastContent","ToastActions","useIsDocumentHidden","useToastTimer","useSwipe","useToastHeight","TIME_BEFORE_UNMOUNT","TOAST_LIFETIME","ToastProps","clsx","Button","X","Toast","props","toastRef","HTMLLIElement","mounted","setMounted","removed","setRemoved","isDocumentHidden","isFront","index","isVisible","visibleToasts","dismissible","toast","toastType","type","disabled","closeButton","duration","y","x","position","split","heightIndex","heights","findIndex","h","toastId","id","toastsHeightBefore","reduce","acc","curr","idx","height","offset","gap","deleteToast","swipe","setOffsetBeforeRemove","setHeights","filter","setTimeout","removeToast","initialHeight","expanded","interacting","swipeDirections","delete","onDismiss","_el$","_tmpl$","_$addEventListener","onPointerMove","onPointerUp","onPointerDown","onDragEnd","_ref$","_$use","_$setAttribute","_$insert","_$createComponent","when","_$memo","jsx","children","aria-label","closeButtonAriaLabel","data-disabled","onClick","undefined","icon","ariaLabel","size","icons","classes","descriptionClassName","descriptionClass","cancelButtonStyle","actionButtonStyle","_$effect","_p$","_v$","class","default","_v$2","richColors","defaultRichColors","_v$3","unstyled","_v$4","_v$5","Boolean","promise","_v$6","isSwiped","_v$7","_v$8","_v$9","_v$0","_v$1","swiping","_v$10","_v$11","_v$12","invert","_v$13","swipeOut","_v$14","swipeOutDirection","_v$15","expandByDefault","_v$16","testId","_v$17","toasts","length","offsetBeforeRemove","style","e","_$className","t","a","o","i","n","s","r","d","l","u","c","w","m","f","g","p","_$style","_$delegateEvents"],"sources":["../../../../src/components/toast/components/Toast.tsx"],"sourcesContent":["/**\n * components/Toast.tsx\n * Renders a single toast item.\n * Composes sub-components (ToastIcon, ToastContent, ToastActions) and hooks\n * (useToastTimer, useSwipe, useToastHeight). No business logic lives here directly.\n */\nimport {\n createEffect,\n createMemo,\n createSignal,\n onMount,\n Show,\n type Component,\n} from \"solid-js\";\nimport { ToastIcon } from \"./ToastIcon\";\nimport { ToastContent } from \"./ToastContent\";\nimport { ToastActions } from \"./ToastActions\";\nimport { useIsDocumentHidden } from \"../hooks\";\nimport { useToastTimer } from \"../hooks/useToastTimer\";\nimport { useSwipe } from \"../hooks/useSwipe\";\nimport { useToastHeight } from \"../hooks/useToastHeight\";\nimport { TIME_BEFORE_UNMOUNT, TOAST_LIFETIME } from \"../constants\";\nimport type { ToastProps } from \"../types\";\nimport { clsx } from \"~/utils\";\nimport { Button } from \"~/components/button\";\nimport { X } from \"lucide-solid\";\n\nexport const Toast: Component<ToastProps> = (props) => {\n let toastRef: HTMLLIElement | undefined;\n\n const [mounted, setMounted] = createSignal(false);\n const [removed, setRemoved] = createSignal(false);\n\n const isDocumentHidden = useIsDocumentHidden();\n\n // Derived values\n const isFront = () => props.index === 0;\n const isVisible = () => props.index + 1 <= props.visibleToasts;\n const dismissible = () => props.toast.dismissible !== false;\n const toastType = () => props.toast.type ?? \"default\";\n const disabled = () => toastType() === \"loading\";\n\n const closeButton = () => props.toast.closeButton ?? props.closeButton;\n const duration = () =>\n props.toast.duration ?? props.duration ?? TOAST_LIFETIME;\n\n const [y, x] = props.position.split(\"-\");\n\n const heightIndex = createMemo(\n () => props.heights.findIndex((h) => h.toastId === props.toast.id) || 0,\n );\n\n const toastsHeightBefore = createMemo(() =>\n props.heights.reduce((acc, curr, idx) => {\n if (idx >= heightIndex()) return acc;\n return acc + curr.height;\n }, 0),\n );\n\n const offset = createMemo(\n () => heightIndex() * (props.gap ?? 14) + toastsHeightBefore(),\n );\n\n // ─── Mount animation ─────────────────────────────────────────────────────────\n onMount(() => setMounted(true));\n\n // ─── Delete helper ───────────────────────────────────────────────────────────\n const deleteToast = () => {\n setRemoved(true);\n swipe.setOffsetBeforeRemove(offset());\n props.setHeights((h) => h.filter((x) => x.toastId !== props.toast.id));\n setTimeout(() => props.removeToast(props.toast), TIME_BEFORE_UNMOUNT);\n };\n\n // ─── Sub-hooks ───────────────────────────────────────────────────────────────\n const { initialHeight } = useToastHeight({\n toastRef: () => toastRef,\n toast: () => props.toast,\n mounted,\n setHeights: props.setHeights,\n });\n\n useToastTimer({\n toast: props.toast,\n duration: duration(),\n expanded: () => props.expanded,\n interacting: () => props.interacting,\n isDocumentHidden,\n deleteToast,\n });\n\n const swipe = useSwipe({\n toastRef: () => toastRef,\n toast: props.toast,\n dismissible: dismissible(),\n position: props.position,\n swipeDirections: props.swipeDirections,\n offset,\n deleteToast,\n });\n\n // ─── External delete signal ──────────────────────────────────────────────────\n createEffect(() => {\n if (props.toast.delete) {\n deleteToast();\n props.toast.onDismiss?.(props.toast);\n }\n });\n\n return (\n <li\n // tabIndex={0}\n ref={toastRef}\n class={clsx(\n props.class,\n props.toast.class,\n props.classes?.toast,\n props.toast.classes?.toast,\n props.classes?.default,\n props.classes?.[toastType()],\n props.toast.classes?.[toastType()],\n )}\n data-sonner-toast=\"\"\n data-rich-colors={props.toast.richColors ?? props.defaultRichColors}\n data-styled={!(props.toast.jsx || props.toast.unstyled || props.unstyled)}\n data-mounted={mounted()}\n data-promise={Boolean(props.toast.promise)}\n data-swiped={swipe.isSwiped()}\n data-removed={removed()}\n data-visible={isVisible()}\n data-y-position={y}\n data-x-position={x}\n data-index={props.index}\n data-front={isFront()}\n data-swiping={swipe.swiping()}\n data-dismissible={dismissible()}\n data-type={toastType()}\n data-invert={props.toast.invert || props.invert}\n data-swipe-out={swipe.swipeOut()}\n data-swipe-direction={swipe.swipeOutDirection()}\n data-expanded={props.expanded || (props.expandByDefault && mounted())}\n data-testid={props.toast.testId}\n style={{\n \"--index\": props.index,\n \"--toasts-before\": props.index,\n \"--z-index\": props.toasts.length - props.index,\n \"--offset\": `${removed() ? swipe.offsetBeforeRemove() : offset()}px`,\n \"--initial-height\": props.expandByDefault\n ? \"auto\"\n : `${initialHeight()}px`,\n ...props.style,\n ...props.toast.style,\n }}\n onDragEnd={swipe.onDragEnd}\n onPointerDown={swipe.onPointerDown}\n onPointerUp={swipe.onPointerUp}\n onPointerMove={swipe.onPointerMove}\n >\n {/* Close button */}\n <Show\n when={\n closeButton() && !props.toast.jsx && props.toast.type !== \"loading\"\n }\n >\n <Button\n aria-label={props.closeButtonAriaLabel ?? \"Close toast\"}\n data-disabled={disabled()}\n data-close-button\n onClick={\n disabled() || !dismissible()\n ? undefined\n : () => {\n deleteToast();\n props.toast.onDismiss?.(props.toast);\n }\n }\n icon={{ icon: <X />, ariaLabel: \"Close\" }}\n size=\"xs\"\n />\n </Show>\n\n {/* Icon area */}\n <ToastIcon\n toast={props.toast}\n icons={props.icons}\n classes={props.classes}\n />\n\n {/* Text content */}\n <ToastContent\n toast={props.toast}\n classes={props.classes}\n descriptionClassName={props.descriptionClass}\n />\n\n {/* Action buttons */}\n <ToastActions\n toast={props.toast}\n classes={props.classes}\n cancelButtonStyle={props.cancelButtonStyle}\n actionButtonStyle={props.actionButtonStyle}\n dismissible={dismissible()}\n deleteToast={deleteToast}\n />\n </li>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Toast.js","names":["createEffect","createMemo","createSignal","onMount","Show","Component","ToastIcon","ToastContent","ToastActions","useIsDocumentHidden","useToastTimer","useSwipe","useToastHeight","TIME_BEFORE_UNMOUNT","TOAST_LIFETIME","ToastProps","clsx","Button","X","Toast","props","toastRef","HTMLLIElement","mounted","setMounted","removed","setRemoved","isDocumentHidden","isFront","index","isVisible","visibleToasts","dismissible","toast","toastType","type","disabled","closeButton","duration","y","x","position","split","heightIndex","heights","findIndex","h","toastId","id","toastsHeightBefore","reduce","acc","curr","idx","height","offset","gap","deleteToast","swipe","setOffsetBeforeRemove","setHeights","filter","setTimeout","removeToast","initialHeight","expanded","interacting","swipeDirections","delete","onDismiss","_el$","_tmpl$","_$addEventListener","onPointerMove","onPointerUp","onPointerDown","onDragEnd","_ref$","_$use","_$setAttribute","_$insert","_$createComponent","when","_$memo","jsx","children","aria-label","closeButtonAriaLabel","data-disabled","onClick","undefined","icon","size","icons","classes","descriptionClassName","descriptionClass","cancelButtonStyle","actionButtonStyle","_$effect","_p$","_v$","class","default","_v$2","richColors","defaultRichColors","_v$3","unstyled","_v$4","_v$5","Boolean","promise","_v$6","isSwiped","_v$7","_v$8","_v$9","_v$0","_v$1","swiping","_v$10","_v$11","_v$12","invert","_v$13","swipeOut","_v$14","swipeOutDirection","_v$15","expandByDefault","_v$16","testId","_v$17","toasts","length","offsetBeforeRemove","style","e","_$className","t","a","o","i","n","s","r","d","l","u","c","w","m","f","g","p","_$style","_$delegateEvents"],"sources":["../../../../src/components/toast/components/Toast.tsx"],"sourcesContent":["/**\n * components/Toast.tsx\n * Renders a single toast item.\n * Composes sub-components (ToastIcon, ToastContent, ToastActions) and hooks\n * (useToastTimer, useSwipe, useToastHeight). No business logic lives here directly.\n */\nimport {\n createEffect,\n createMemo,\n createSignal,\n onMount,\n Show,\n type Component,\n} from \"solid-js\";\nimport { ToastIcon } from \"./ToastIcon\";\nimport { ToastContent } from \"./ToastContent\";\nimport { ToastActions } from \"./ToastActions\";\nimport { useIsDocumentHidden } from \"../hooks\";\nimport { useToastTimer } from \"../hooks/useToastTimer\";\nimport { useSwipe } from \"../hooks/useSwipe\";\nimport { useToastHeight } from \"../hooks/useToastHeight\";\nimport { TIME_BEFORE_UNMOUNT, TOAST_LIFETIME } from \"../constants\";\nimport type { ToastProps } from \"../types\";\nimport { clsx } from \"~/utils\";\nimport { Button } from \"~/components/button\";\nimport { X } from \"lucide-solid\";\n\nexport const Toast: Component<ToastProps> = (props) => {\n let toastRef: HTMLLIElement | undefined;\n\n const [mounted, setMounted] = createSignal(false);\n const [removed, setRemoved] = createSignal(false);\n\n const isDocumentHidden = useIsDocumentHidden();\n\n // Derived values\n const isFront = () => props.index === 0;\n const isVisible = () => props.index + 1 <= props.visibleToasts;\n const dismissible = () => props.toast.dismissible !== false;\n const toastType = () => props.toast.type ?? \"default\";\n const disabled = () => toastType() === \"loading\";\n\n const closeButton = () => props.toast.closeButton ?? props.closeButton;\n const duration = () =>\n props.toast.duration ?? props.duration ?? TOAST_LIFETIME;\n\n const [y, x] = props.position.split(\"-\");\n\n const heightIndex = createMemo(\n () => props.heights.findIndex((h) => h.toastId === props.toast.id) || 0,\n );\n\n const toastsHeightBefore = createMemo(() =>\n props.heights.reduce((acc, curr, idx) => {\n if (idx >= heightIndex()) return acc;\n return acc + curr.height;\n }, 0),\n );\n\n const offset = createMemo(\n () => heightIndex() * (props.gap ?? 14) + toastsHeightBefore(),\n );\n\n // ─── Mount animation ─────────────────────────────────────────────────────────\n onMount(() => setMounted(true));\n\n // ─── Delete helper ───────────────────────────────────────────────────────────\n const deleteToast = () => {\n setRemoved(true);\n swipe.setOffsetBeforeRemove(offset());\n props.setHeights((h) => h.filter((x) => x.toastId !== props.toast.id));\n setTimeout(() => props.removeToast(props.toast), TIME_BEFORE_UNMOUNT);\n };\n\n // ─── Sub-hooks ───────────────────────────────────────────────────────────────\n const { initialHeight } = useToastHeight({\n toastRef: () => toastRef,\n toast: () => props.toast,\n mounted,\n setHeights: props.setHeights,\n });\n\n useToastTimer({\n toast: props.toast,\n duration: duration(),\n expanded: () => props.expanded,\n interacting: () => props.interacting,\n isDocumentHidden,\n deleteToast,\n });\n\n const swipe = useSwipe({\n toastRef: () => toastRef,\n toast: props.toast,\n dismissible: dismissible(),\n position: props.position,\n swipeDirections: props.swipeDirections,\n offset,\n deleteToast,\n });\n\n // ─── External delete signal ──────────────────────────────────────────────────\n createEffect(() => {\n if (props.toast.delete) {\n deleteToast();\n props.toast.onDismiss?.(props.toast);\n }\n });\n\n return (\n <li\n // tabIndex={0}\n ref={toastRef}\n class={clsx(\n props.class,\n props.toast.class,\n props.classes?.toast,\n props.toast.classes?.toast,\n props.classes?.default,\n props.classes?.[toastType()],\n props.toast.classes?.[toastType()],\n )}\n data-sonner-toast=\"\"\n data-rich-colors={props.toast.richColors ?? props.defaultRichColors}\n data-styled={!(props.toast.jsx || props.toast.unstyled || props.unstyled)}\n data-mounted={mounted()}\n data-promise={Boolean(props.toast.promise)}\n data-swiped={swipe.isSwiped()}\n data-removed={removed()}\n data-visible={isVisible()}\n data-y-position={y}\n data-x-position={x}\n data-index={props.index}\n data-front={isFront()}\n data-swiping={swipe.swiping()}\n data-dismissible={dismissible()}\n data-type={toastType()}\n data-invert={props.toast.invert || props.invert}\n data-swipe-out={swipe.swipeOut()}\n data-swipe-direction={swipe.swipeOutDirection()}\n data-expanded={props.expanded || (props.expandByDefault && mounted())}\n data-testid={props.toast.testId}\n style={{\n \"--index\": props.index,\n \"--toasts-before\": props.index,\n \"--z-index\": props.toasts.length - props.index,\n \"--offset\": `${removed() ? swipe.offsetBeforeRemove() : offset()}px`,\n \"--initial-height\": props.expandByDefault\n ? \"auto\"\n : `${initialHeight()}px`,\n ...props.style,\n ...props.toast.style,\n }}\n onDragEnd={swipe.onDragEnd}\n onPointerDown={swipe.onPointerDown}\n onPointerUp={swipe.onPointerUp}\n onPointerMove={swipe.onPointerMove}\n >\n {/* Close button */}\n <Show\n when={\n closeButton() && !props.toast.jsx && props.toast.type !== \"loading\"\n }\n >\n <Button\n aria-label={props.closeButtonAriaLabel ?? \"Close toast\"}\n data-disabled={disabled()}\n data-close-button\n onClick={\n disabled() || !dismissible()\n ? undefined\n : () => {\n deleteToast();\n props.toast.onDismiss?.(props.toast);\n }\n }\n icon={<X />}\n size=\"xs\"\n />\n </Show>\n\n {/* Icon area */}\n <ToastIcon\n toast={props.toast}\n icons={props.icons}\n classes={props.classes}\n />\n\n {/* Text content */}\n <ToastContent\n toast={props.toast}\n classes={props.classes}\n descriptionClassName={props.descriptionClass}\n />\n\n {/* Action buttons */}\n <ToastActions\n toast={props.toast}\n classes={props.classes}\n cancelButtonStyle={props.cancelButtonStyle}\n actionButtonStyle={props.actionButtonStyle}\n dismissible={dismissible()}\n deleteToast={deleteToast}\n />\n </li>\n );\n};\n"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { isAction as t } from "../types.js";
|
|
|
3
3
|
import { className as n, createComponent as r, delegateEvents as i, effect as a, insert as o, memo as s, style as c, template as l } from "solid-js/web";
|
|
4
4
|
import { Show as u } from "solid-js";
|
|
5
5
|
//#region src/components/toast/components/ToastActions.tsx
|
|
6
|
-
var d =
|
|
6
|
+
var d = /*#__PURE__*/ l("<button type=button data-button data-cancel>"), f = /*#__PURE__*/ l("<button type=button data-button data-action>"), p = (i) => [
|
|
7
7
|
r(u, {
|
|
8
8
|
get when() {
|
|
9
9
|
return t(i.toast.cancel);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastActions.js","names":["JSX","Show","Component","isAction","ToastT","ToastClassnames","Action","clsx","ToastActionsProps","toast","classes","cancelButtonStyle","actionButtonStyle","dismissible","deleteToast","ToastActions","props","_$createComponent","when","cancel","children","_el$","_tmpl$","$$click","e","onClick","_$insert","label","_$effect","_p$","_v$","_v$2","cancelButton","_$style","t","_$className","undefined","_$memo","Element","action","_el$2","_tmpl$2","defaultPrevented","_v$3","_v$4","actionButton","_$delegateEvents"],"sources":["../../../../src/components/toast/components/ToastActions.tsx"],"sourcesContent":["import { type JSX, Show, type Component } from \"solid-js\";\nimport { isAction } from \"../types\";\nimport type { ToastT, ToastClassnames, Action } from \"../types\";\nimport { clsx } from \"~/utils\";\n\ninterface ToastActionsProps {\n toast: ToastT;\n classes?: ToastClassnames;\n cancelButtonStyle?: any;\n actionButtonStyle?: any;\n dismissible: boolean;\n deleteToast: () => void;\n}\n\nexport const ToastActions: Component<ToastActionsProps> = (props) => {\n return (\n <>\n {/* Cancel button */}\n <Show when={isAction(props.toast.cancel)}>\n <button\n type=\"button\"\n data-button\n data-cancel\n style={props.toast.cancelButtonStyle ?? props.cancelButtonStyle}\n class={clsx(\n props.classes?.cancelButton,\n props.toast.classes?.cancelButton,\n )}\n onClick={(e) => {\n if (!isAction(props.toast.cancel)) return;\n if (!props.dismissible) return;\n props.toast.cancel.onClick?.(e);\n props.deleteToast();\n }}\n >\n {(props.toast.cancel as Action).label}\n </button>\n </Show>\n\n {/* Cancel as custom element */}\n <Show when={props.toast.cancel && !isAction(props.toast.cancel)}>\n {props.toast.cancel as JSX.Element}\n </Show>\n\n {/* Action button */}\n <Show when={isAction(props.toast.action)}>\n <button\n type=\"button\"\n data-button\n data-action\n style={props.toast.actionButtonStyle ?? props.actionButtonStyle}\n class={clsx(\n props.classes?.actionButton,\n props.toast.classes?.actionButton,\n )}\n onClick={(e) => {\n if (!isAction(props.toast.action as any)) return;\n (props.toast.action as any).onClick?.(e);\n if (e.defaultPrevented) return;\n props.deleteToast();\n }}\n >\n {(props.toast.action as any).label}\n </button>\n </Show>\n\n {/* Action as custom element */}\n <Show when={props.toast.action && !isAction(props.toast.action as any)}>\n {props.toast.action as any}\n </Show>\n </>\n );\n};\n"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ToastActions.js","names":["JSX","Show","Component","isAction","ToastT","ToastClassnames","Action","clsx","ToastActionsProps","toast","classes","cancelButtonStyle","actionButtonStyle","dismissible","deleteToast","ToastActions","props","_$createComponent","when","cancel","children","_el$","_tmpl$","$$click","e","onClick","_$insert","label","_$effect","_p$","_v$","_v$2","cancelButton","_$style","t","_$className","undefined","_$memo","Element","action","_el$2","_tmpl$2","defaultPrevented","_v$3","_v$4","actionButton","_$delegateEvents"],"sources":["../../../../src/components/toast/components/ToastActions.tsx"],"sourcesContent":["import { type JSX, Show, type Component } from \"solid-js\";\nimport { isAction } from \"../types\";\nimport type { ToastT, ToastClassnames, Action } from \"../types\";\nimport { clsx } from \"~/utils\";\n\ninterface ToastActionsProps {\n toast: ToastT;\n classes?: ToastClassnames;\n cancelButtonStyle?: any;\n actionButtonStyle?: any;\n dismissible: boolean;\n deleteToast: () => void;\n}\n\nexport const ToastActions: Component<ToastActionsProps> = (props) => {\n return (\n <>\n {/* Cancel button */}\n <Show when={isAction(props.toast.cancel)}>\n <button\n type=\"button\"\n data-button\n data-cancel\n style={props.toast.cancelButtonStyle ?? props.cancelButtonStyle}\n class={clsx(\n props.classes?.cancelButton,\n props.toast.classes?.cancelButton,\n )}\n onClick={(e) => {\n if (!isAction(props.toast.cancel)) return;\n if (!props.dismissible) return;\n props.toast.cancel.onClick?.(e);\n props.deleteToast();\n }}\n >\n {(props.toast.cancel as Action).label}\n </button>\n </Show>\n\n {/* Cancel as custom element */}\n <Show when={props.toast.cancel && !isAction(props.toast.cancel)}>\n {props.toast.cancel as JSX.Element}\n </Show>\n\n {/* Action button */}\n <Show when={isAction(props.toast.action)}>\n <button\n type=\"button\"\n data-button\n data-action\n style={props.toast.actionButtonStyle ?? props.actionButtonStyle}\n class={clsx(\n props.classes?.actionButton,\n props.toast.classes?.actionButton,\n )}\n onClick={(e) => {\n if (!isAction(props.toast.action as any)) return;\n (props.toast.action as any).onClick?.(e);\n if (e.defaultPrevented) return;\n props.deleteToast();\n }}\n >\n {(props.toast.action as any).label}\n </button>\n </Show>\n\n {/* Action as custom element */}\n <Show when={props.toast.action && !isAction(props.toast.action as any)}>\n {props.toast.action as any}\n </Show>\n </>\n );\n};\n"],"mappings":";;;;;8IAcae,KAA8CC,MACzD;CAAAC,EAGKhB,GAAI;EAAA,IAACiB,OAAI;GAAA,OAAEf,EAASa,EAAMP,MAAMU,MAAM;EAAC;EAAA,IAAAC,WAAA;GAAA,IAAAC,IAAAC,EAAA;GASnC,OATmCD,EAAAE,WAU1BC,MAAM;IACTrB,EAASa,EAAMP,MAAMU,MAAM,KAC3BH,EAAMH,gBACXG,EAAMP,MAAMU,OAAOM,UAAUD,CAAC,GAC9BR,EAAMF,YAAY;GACpB,GAACY,EAAAL,SAECL,EAAMP,MAAMU,OAAkBQ,KAAK,GAAAC,GAAAC,MAAA;IAAA,IAAAC,IAZ9Bd,EAAMP,MAAME,qBAAqBK,EAAML,mBAAiBoB,IACxDxB,EACLS,EAAMN,SAASsB,cACfhB,EAAMP,MAAMC,SAASsB,YACvB;IAAC,OAAAH,EAAAL,IAAAS,EAAAZ,GAAAS,GAAAD,EAAAL,CAAA,GAAAO,MAAAF,EAAAK,KAAAC,EAAAd,GAAAQ,EAAAK,IAAAH,CAAA,GAAAF;GAAA,GAAA;IAAAL,GAAAY,KAAAA;IAAAF,GAAAE,KAAAA;GAAA,CAAA,GAAAf;EAAA;CAAA,CAAA;CAAAJ,EAaJhB,GAAI;EAAA,IAACiB,OAAI;GAAA,OAAEmB,QAAA,CAAA,CAAArB,EAAMP,MAAMU,MAAM,CAAA,CAAA,KAAI,CAAChB,EAASa,EAAMP,MAAMU,MAAM;EAAC;EAAA,IAAAC,WAAA;GAAA,OAC5DJ,EAAMP,MAAMU;EAAqB;CAAA,CAAA;CAAAF,EAInChB,GAAI;EAAA,IAACiB,OAAI;GAAA,OAAEf,EAASa,EAAMP,MAAM8B,MAAM;EAAC;EAAA,IAAAnB,WAAA;GAAA,IAAAoB,IAAAC,EAAA;GASnC,OATmCD,EAAAjB,WAU1BC,MAAM;IACTrB,EAASa,EAAMP,MAAM8B,MAAa,MACvC,EAAO9B,MAAM8B,OAAed,UAAUD,CAAC,GACnCA,GAAEkB,oBACN1B,EAAMF,YAAY;GACpB,GAACY,EAAAc,SAECxB,EAAMP,MAAM8B,OAAeZ,KAAK,GAAAC,GAAAC,MAAA;IAAA,IAAAc,IAZ3B3B,EAAMP,MAAMG,qBAAqBI,EAAMJ,mBAAiBgC,IACxDrC,EACLS,EAAMN,SAASmC,cACf7B,EAAMP,MAAMC,SAASmC,YACvB;IAAC,OAAAhB,EAAAL,IAAAS,EAAAO,GAAAG,GAAAd,EAAAL,CAAA,GAAAoB,MAAAf,EAAAK,KAAAC,EAAAK,GAAAX,EAAAK,IAAAU,CAAA,GAAAf;GAAA,GAAA;IAAAL,GAAAY,KAAAA;IAAAF,GAAAE,KAAAA;GAAA,CAAA,GAAAI;EAAA;CAAA,CAAA;CAAAvB,EAaJhB,GAAI;EAAA,IAACiB,OAAI;GAAA,OAAEmB,QAAA,CAAA,CAAArB,EAAMP,MAAM8B,MAAM,CAAA,CAAA,KAAI,CAACpC,EAASa,EAAMP,MAAM8B,MAAa;EAAC;EAAA,IAAAnB,WAAA;GAAA,OACnEJ,EAAMP,MAAM8B;EAAa;CAAA,CAAA;AAAA;AAIhCO,EAAA,CAAA,OAAA,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { clsx as e } from "../../../utils/clsx.js";
|
|
|
2
2
|
import { className as t, createComponent as n, effect as r, insert as i, template as a } from "solid-js/web";
|
|
3
3
|
import { Show as o } from "solid-js";
|
|
4
4
|
//#region src/components/toast/components/ToastContent.tsx
|
|
5
|
-
var s =
|
|
5
|
+
var s = /*#__PURE__*/ a("<div data-description>"), c = /*#__PURE__*/ a("<div data-content><div data-title>"), l = (a) => {
|
|
6
6
|
let l = () => {
|
|
7
7
|
if (a.toast.jsx) return a.toast.jsx;
|
|
8
8
|
let e = a.toast.title;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastContent.js","names":["Show","Component","ToastT","ToastClassnames","clsx","ToastContentProps","toast","classes","descriptionClassName","ToastContent","props","title","jsx","t","description","d","_el$","_tmpl$2","_el$2","firstChild","_$insert","_$createComponent","when","children","_el$3","_tmpl$","_$effect","_$className","descriptionClass","_p$","_v$","content","_v$2","e","undefined"],"sources":["../../../../src/components/toast/components/ToastContent.tsx"],"sourcesContent":["import { Show, type Component } from \"solid-js\";\nimport type { ToastT, ToastClassnames } from \"../types\";\nimport { clsx } from \"~/utils\";\n\ninterface ToastContentProps {\n toast: ToastT;\n classes?: ToastClassnames;\n descriptionClassName?: string;\n}\n\nexport const ToastContent: Component<ToastContentProps> = (props) => {\n const title = () => {\n if (props.toast.jsx) return props.toast.jsx;\n const t = props.toast.title;\n return typeof t === \"function\" ? t() : t;\n };\n\n const description = () => {\n const d = props.toast.description;\n return typeof d === \"function\" ? d() : d;\n };\n\n return (\n <div\n data-content=\"\"\n class={clsx(props.classes?.content, props.toast.classes?.content)}\n >\n <div\n data-title=\"\"\n class={clsx(props.classes?.title, props.toast.classes?.title)}\n >\n {title()}\n </div>\n\n <Show when={props.toast.description}>\n <div\n data-description=\"\"\n class={clsx(\n props.descriptionClassName,\n props.toast.descriptionClass,\n props.classes?.description,\n props.toast.classes?.description,\n )}\n >\n {description()}\n </div>\n </Show>\n </div>\n );\n};\n"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"ToastContent.js","names":["Show","Component","ToastT","ToastClassnames","clsx","ToastContentProps","toast","classes","descriptionClassName","ToastContent","props","title","jsx","t","description","d","_el$","_tmpl$2","_el$2","firstChild","_$insert","_$createComponent","when","children","_el$3","_tmpl$","_$effect","_$className","descriptionClass","_p$","_v$","content","_v$2","e","undefined"],"sources":["../../../../src/components/toast/components/ToastContent.tsx"],"sourcesContent":["import { Show, type Component } from \"solid-js\";\nimport type { ToastT, ToastClassnames } from \"../types\";\nimport { clsx } from \"~/utils\";\n\ninterface ToastContentProps {\n toast: ToastT;\n classes?: ToastClassnames;\n descriptionClassName?: string;\n}\n\nexport const ToastContent: Component<ToastContentProps> = (props) => {\n const title = () => {\n if (props.toast.jsx) return props.toast.jsx;\n const t = props.toast.title;\n return typeof t === \"function\" ? t() : t;\n };\n\n const description = () => {\n const d = props.toast.description;\n return typeof d === \"function\" ? d() : d;\n };\n\n return (\n <div\n data-content=\"\"\n class={clsx(props.classes?.content, props.toast.classes?.content)}\n >\n <div\n data-title=\"\"\n class={clsx(props.classes?.title, props.toast.classes?.title)}\n >\n {title()}\n </div>\n\n <Show when={props.toast.description}>\n <div\n data-description=\"\"\n class={clsx(\n props.descriptionClassName,\n props.toast.descriptionClass,\n props.classes?.description,\n props.toast.classes?.description,\n )}\n >\n {description()}\n </div>\n </Show>\n </div>\n );\n};\n"],"mappings":";;;;8GAUaS,KAA8CC,MAAU;CACnE,IAAMC,UAAc;EAClB,IAAID,EAAMJ,MAAMM,KAAK,OAAOF,EAAMJ,MAAMM;EACxC,IAAMC,IAAIH,EAAMJ,MAAMK;EACtB,OAAO,OAAOE,KAAM,aAAaA,EAAE,IAAIA;CACzC,GAEMC,UAAoB;EACxB,IAAMC,IAAIL,EAAMJ,MAAMQ;EACtB,OAAO,OAAOC,KAAM,aAAaA,EAAE,IAAIA;CACzC;CAEA,cAAA;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG;EAOmE,OAPnEC,EAAAF,GASOP,CAAK,GAAAS,EAAAJ,GAAAK,EAGPrB,GAAI;GAAA,IAACsB,OAAI;IAAA,OAAEZ,EAAMJ,MAAMQ;GAAW;GAAA,IAAAS,WAAA;IAAA,IAAAC,IAAAC,EAAA;IAQ9B,OAR8BL,EAAAI,GAU9BV,CAAW,GAAAY,QAAAC,EAAAH,GAPLpB,EACLM,EAAMF,sBACNE,EAAMJ,MAAMsB,kBACZlB,EAAMH,SAASO,aACfJ,EAAMJ,MAAMC,SAASO,WACvB,CAAC,CAAA,GAAAU;GAAA;EAAA,CAAA,GAAA,IAAA,GAAAE,GAAAG,MAAA;GAAA,IAAAC,IAjBE1B,EAAKM,EAAMH,SAASwB,SAASrB,EAAMJ,MAAMC,SAASwB,OAAO,GAACC,IAIxD5B,EAAKM,EAAMH,SAASI,OAAOD,EAAMJ,MAAMC,SAASI,KAAK;GAAC,OAAAmB,MAAAD,EAAAI,KAAAN,EAAAX,GAAAa,EAAAI,IAAAH,CAAA,GAAAE,MAAAH,EAAAhB,KAAAc,EAAAT,GAAAW,EAAAhB,IAAAmB,CAAA,GAAAH;EAAA,GAAA;GAAAI,GAAAC,KAAAA;GAAArB,GAAAqB,KAAAA;EAAA,CAAA,GAAAlB;CAAA,EAAA,CAAA;AAoBrE"}
|
|
@@ -3,7 +3,7 @@ import { Loader as t, getAsset as n } from "./Assets.js";
|
|
|
3
3
|
import { className as r, createComponent as i, effect as a, insert as o, memo as s, setAttribute as c, template as l } from "solid-js/web";
|
|
4
4
|
import { Show as u } from "solid-js";
|
|
5
5
|
//#region src/components/toast/components/ToastIcon.tsx
|
|
6
|
-
var d =
|
|
6
|
+
var d = /*#__PURE__*/ l("<div>"), f = /*#__PURE__*/ l("<div data-icon>"), p = (l) => {
|
|
7
7
|
let p = () => l.toast.type || "default", m = () => l.toast.icon ?? l.icons?.[p()] ?? n(p()), h = () => p() === "loading" && !l.toast.icon, g = () => (p() || l.toast.icon || l.toast.promise) && l.toast.icon !== null && (l.icons?.[p()] !== null || l.toast.icon);
|
|
8
8
|
return i(u, {
|
|
9
9
|
get when() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastIcon.js","names":["Show","Component","Loader","getAsset","ToastT","ToastIcons","ToastClassnames","clsx","ToastIconProps","toast","icons","classes","ToastIcon","props","toastType","type","icon","isLoading","showIconArea","promise","_$createComponent","when","_$memo","children","_el$","_tmpl$2","_$insert","loading","fallback","class","loader","visible","_el$2","_tmpl$","_$effect","_p$","_v$","_v$2","e","_$className","t","_$setAttribute","undefined"],"sources":["../../../../src/components/toast/components/ToastIcon.tsx"],"sourcesContent":["import { Show, type Component } from \"solid-js\";\nimport { Loader, getAsset } from \"./Assets\";\nimport type { ToastT, ToastIcons, ToastClassnames } from \"../types\";\nimport { clsx } from \"~/utils\";\n\ninterface ToastIconProps {\n toast: ToastT;\n icons?: ToastIcons;\n classes?: ToastClassnames;\n}\n\nexport const ToastIcon: Component<ToastIconProps> = (props) => {\n const toastType = () => props.toast.type || \"default\";\n\n const icon = () =>\n props.toast.icon ??\n props.icons?.[toastType()! as keyof ToastIcons] ??\n getAsset(toastType()!);\n\n const isLoading = () => toastType() === \"loading\" && !props.toast.icon;\n\n const showIconArea = () =>\n (toastType() || props.toast.icon || props.toast.promise) &&\n props.toast.icon !== null &&\n (props.icons?.[toastType()! as keyof ToastIcons] !== null ||\n props.toast.icon);\n\n return (\n <Show when={showIconArea() && icon()}>\n <div\n data-icon=\"\"\n class={clsx(props.classes?.icon, props.toast.classes?.icon)}\n >\n {/* Loading state: show spinner or custom loading icon */}\n <Show when={props.toast.promise || isLoading()}>\n <Show\n when={props.icons?.loading}\n fallback={\n <Loader\n class={clsx(\n props.classes?.loader,\n props.toast.classes?.loader,\n \"sonner-loader\",\n )}\n visible={toastType() === \"loading\"}\n />\n }\n >\n <div\n class={clsx(\n props.classes?.loader,\n props.toast.classes?.loader,\n \"sonner-loader\",\n )}\n data-visible={toastType() === \"loading\"}\n >\n {props.icons!.loading}\n </div>\n </Show>\n </Show>\n\n {/* Non-loading icon */}\n <Show when={toastType() !== \"loading\"}>{icon()}</Show>\n </div>\n </Show>\n );\n};\n"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ToastIcon.js","names":["Show","Component","Loader","getAsset","ToastT","ToastIcons","ToastClassnames","clsx","ToastIconProps","toast","icons","classes","ToastIcon","props","toastType","type","icon","isLoading","showIconArea","promise","_$createComponent","when","_$memo","children","_el$","_tmpl$2","_$insert","loading","fallback","class","loader","visible","_el$2","_tmpl$","_$effect","_p$","_v$","_v$2","e","_$className","t","_$setAttribute","undefined"],"sources":["../../../../src/components/toast/components/ToastIcon.tsx"],"sourcesContent":["import { Show, type Component } from \"solid-js\";\nimport { Loader, getAsset } from \"./Assets\";\nimport type { ToastT, ToastIcons, ToastClassnames } from \"../types\";\nimport { clsx } from \"~/utils\";\n\ninterface ToastIconProps {\n toast: ToastT;\n icons?: ToastIcons;\n classes?: ToastClassnames;\n}\n\nexport const ToastIcon: Component<ToastIconProps> = (props) => {\n const toastType = () => props.toast.type || \"default\";\n\n const icon = () =>\n props.toast.icon ??\n props.icons?.[toastType()! as keyof ToastIcons] ??\n getAsset(toastType()!);\n\n const isLoading = () => toastType() === \"loading\" && !props.toast.icon;\n\n const showIconArea = () =>\n (toastType() || props.toast.icon || props.toast.promise) &&\n props.toast.icon !== null &&\n (props.icons?.[toastType()! as keyof ToastIcons] !== null ||\n props.toast.icon);\n\n return (\n <Show when={showIconArea() && icon()}>\n <div\n data-icon=\"\"\n class={clsx(props.classes?.icon, props.toast.classes?.icon)}\n >\n {/* Loading state: show spinner or custom loading icon */}\n <Show when={props.toast.promise || isLoading()}>\n <Show\n when={props.icons?.loading}\n fallback={\n <Loader\n class={clsx(\n props.classes?.loader,\n props.toast.classes?.loader,\n \"sonner-loader\",\n )}\n visible={toastType() === \"loading\"}\n />\n }\n >\n <div\n class={clsx(\n props.classes?.loader,\n props.toast.classes?.loader,\n \"sonner-loader\",\n )}\n data-visible={toastType() === \"loading\"}\n >\n {props.icons!.loading}\n </div>\n </Show>\n </Show>\n\n {/* Non-loading icon */}\n <Show when={toastType() !== \"loading\"}>{icon()}</Show>\n </div>\n </Show>\n );\n};\n"],"mappings":";;;;;0EAWaY,KAAwCC,MAAU;CAC7D,IAAMC,UAAkBD,EAAMJ,MAAMM,QAAQ,WAEtCC,UACJH,EAAMJ,MAAMO,QACZH,EAAMH,QAAQI,EAAU,MACxBX,EAASW,EAAU,CAAE,GAEjBG,UAAkBH,EAAU,MAAM,aAAa,CAACD,EAAMJ,MAAMO,MAE5DE,WACHJ,EAAU,KAAKD,EAAMJ,MAAMO,QAAQH,EAAMJ,MAAMU,YAChDN,EAAMJ,MAAMO,SAAS,SACpBH,EAAMH,QAAQI,EAAU,OAA4B,QACnDD,EAAMJ,MAAMO;CAEhB,OAAAI,EACGpB,GAAI;EAAA,IAACqB,OAAI;GAAA,OAAEC,QAAA,CAAA,CAAAJ,EAAa,CAAC,CAAA,CAAA,KAAIF,EAAK;EAAC;EAAA,IAAAO,WAAA;GAAA,IAAAC,IAAAC,EAAA;GAG2B,OAH3BC,EAAAF,GAAAJ,EAM/BpB,GAAI;IAAA,IAACqB,OAAI;KAAA,OAAER,EAAMJ,MAAMU,WAAWF,EAAU;IAAC;IAAA,IAAAM,WAAA;KAAA,OAAAH,EAC3CpB,GAAI;MAAA,IACHqB,OAAI;OAAA,OAAER,EAAMH,OAAOiB;MAAO;MAAA,IAC1BC,WAAQ;OAAA,OAAAR,EACLlB,GAAM;QAAA,IAAA,QAAA;SAAA,OACEK,EACLM,EAAMF,SAASmB,QACfjB,EAAMJ,MAAME,SAASmB,QACrB,eACF;QAAC;QAAA,IACDC,UAAO;SAAA,OAAEjB,EAAU,MAAM;QAAS;OAAA,CAAA;MAAA;MAAA,IAAAS,WAAA;OAAA,IAAAS,IAAAC,EAAA;OAUG,OAVHP,EAAAM,SAYnCnB,EAAMH,MAAOiB,OAAO,GAAAO,GAAAC,MAAA;QAAA,IAAAC,IAPd7B,EACLM,EAAMF,SAASmB,QACfjB,EAAMJ,MAAME,SAASmB,QACrB,eACF,GAACO,IACavB,EAAU,MAAM;QAAS,OAAAsB,MAAAD,EAAAG,KAAAC,EAAAP,GAAAG,EAAAG,IAAAF,CAAA,GAAAC,MAAAF,EAAAK,KAAAC,EAAAT,GAAA,gBAAAG,EAAAK,IAAAH,CAAA,GAAAF;OAAA,GAAA;QAAAG,GAAAI,KAAAA;QAAAF,GAAAE,KAAAA;OAAA,CAAA,GAAAV;MAAA;KAAA,CAAA;IAAA;GAAA,CAAA,GAAA,IAAA,GAAAN,EAAAF,GAAAJ,EAQ5CpB,GAAI;IAAA,IAACqB,OAAI;KAAA,OAAEP,EAAU,MAAM;IAAS;IAAA,IAAAS,WAAA;KAAA,OAAGP,EAAK;IAAC;GAAA,CAAA,GAAA,IAAA,GAAAkB,QAAAK,EAAAf,GA/BvCjB,EAAKM,EAAMF,SAASK,MAAMH,EAAMJ,MAAME,SAASK,IAAI,CAAC,CAAA,GAAAQ;EAAA;CAAA,CAAA;AAmCnE"}
|
|
@@ -6,7 +6,7 @@ import { useToastSubscription as a } from "../hooks/useToastSubscription.js";
|
|
|
6
6
|
import { Portal as o, className as s, createComponent as c, delegateEvents as l, effect as u, insert as d, setAttribute as f, style as p, template as m, use as h } from "solid-js/web";
|
|
7
7
|
import { For as g, Show as _, createMemo as v, createSignal as y, mergeProps as b } from "solid-js";
|
|
8
8
|
//#region src/components/toast/components/Toaster.tsx
|
|
9
|
-
var x =
|
|
9
|
+
var x = /*#__PURE__*/ m("<section tabindex=-1 aria-live=polite aria-relevant=\"additions text\"aria-atomic=false>"), S = /*#__PURE__*/ m("<ol tabindex=-1 data-sonner-toaster>"), C = (l) => {
|
|
10
10
|
console.warn("The current `Toast` component still has many bugs, which originate from the upstream component library at https://github.com/emilkowalski/sonner. If you encounter a bug, you can file an issue in the upstream repository or in this repository. The design concept of the upstream project is very impressive, but due to poor code quality, this component will not stay in sync with the upstream code unless the upstream adds significantly more impressive features. Bugs and some edge cases will be fixed independently.");
|
|
11
11
|
let m = b({
|
|
12
12
|
position: "bottom-right",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster.js","names":["createMemo","createSignal","For","mergeProps","Show","Component","Toast","useTheme","useToasterKeyboard","useToastSubscription","assignOffset","getDocumentDirection","GAP","TOAST_WIDTH","VISIBLE_TOASTS_AMOUNT","HeightT","Position","ToasterProps","Portal","Toaster","props","console","warn","merged","position","hotkey","gap","visibleToasts","dir","containerAriaLabel","const","hotkeyLabel","join","replace","heights","setHeights","expanded","setExpanded","interacting","setInteracting","listRef","HTMLOListElement","lastFocusedElement","HTMLElement","isFocusWithin","actualTheme","theme","toasts","removeToast","filteredToasts","id","filter","t","toasterId","possiblePositions","Array","from","Set","concat","map","length","onFocus","e","FocusEvent","target","dataset","dismissible","relatedTarget","onBlur","currentTarget","contains","Node","focus","preventScroll","offsetVars","offset","mobileOffset","_$createComponent","children","_el$","_tmpl$","_$insert","each","pos","posY","posX","split","toastsForPos","when","_el$2","_tmpl$2","$$pointerup","$$pointerdown","addEventListener","$$mousemove","_$use","el","_$setAttribute","toast","index","heightsForPos","h","icons","defaultRichColors","richColors","duration","toastOptions","class","descriptionClass","invert","closeButton","style","unstyled","classes","cancelButtonStyle","actionButtonStyle","closeButtonAriaLabel","expandByDefault","expand","swipeDirections","_$effect","_p$","_v$","_v$2","_v$3","_v$4","height","_$className","a","o","_$style","undefined","customAriaLabel","_$delegateEvents"],"sources":["../../../../src/components/toast/components/Toaster.tsx"],"sourcesContent":["/**\n * components/Toaster.tsx\n * Root component that renders the toast container(s) into a portal.\n * Single responsibility: layout, positioning, and orchestrating sub-components/hooks.\n * All state logic is delegated to dedicated hooks.\n */\nimport {\n createMemo,\n createSignal,\n For,\n mergeProps,\n Show,\n type Component,\n} from \"solid-js\";\nimport { Toast } from \"./Toast\";\nimport { useTheme } from \"../hooks/useTheme\";\nimport { useToasterKeyboard } from \"../hooks/useToasterKeyboard\";\nimport { useToastSubscription } from \"../hooks/useToastSubscription\";\nimport { assignOffset, getDocumentDirection } from \"../utils\";\nimport { GAP, TOAST_WIDTH, VISIBLE_TOASTS_AMOUNT } from \"../constants\";\nimport type { HeightT, Position, ToasterProps } from \"../types\";\nimport { Portal } from \"solid-js/web\";\n\nexport const Toaster: Component<ToasterProps> = (props) => {\n console.warn(\n \"The current `Toast` component still has many bugs, which originate from the upstream component library at https://github.com/emilkowalski/sonner. If you encounter a bug, you can file an issue in the upstream repository or in this repository. The design concept of the upstream project is very impressive, but due to poor code quality, this component will not stay in sync with the upstream code unless the upstream adds significantly more impressive features. Bugs and some edge cases will be fixed independently.\",\n );\n\n const merged = mergeProps(\n {\n position: \"bottom-right\",\n hotkey: [\"altKey\", \"KeyT\"] as string[],\n gap: GAP,\n visibleToasts: VISIBLE_TOASTS_AMOUNT,\n dir: getDocumentDirection(),\n containerAriaLabel: \"Notifications\",\n } as const,\n props,\n );\n\n const hotkeyLabel = () =>\n merged.hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n\n // ─── Local state ──────────────────────────────────────────────────────────────\n const [heights, setHeights] = createSignal<HeightT[]>([]);\n const [expanded, setExpanded] = createSignal(false);\n const [interacting, setInteracting] = createSignal(false);\n\n let listRef: HTMLOListElement | undefined;\n let lastFocusedElement: HTMLElement | null = null;\n let isFocusWithin = false;\n\n // ─── Composed hooks ───────────────────────────────────────────────────────────\n const actualTheme = useTheme(() => props.theme ?? \"light\");\n const { toasts, removeToast } = useToastSubscription();\n\n useToasterKeyboard({\n hotkey: merged.hotkey,\n listRef: () => listRef,\n setExpanded,\n });\n\n // ─── Derived data ─────────────────────────────────────────────────────────────\n /** Toasts that belong to this specific Toaster instance (by id) */\n const filteredToasts = createMemo(() => {\n const id = props.id;\n return id\n ? toasts().filter((t) => t.toasterId === id)\n : toasts().filter((t) => !t.toasterId);\n });\n\n /** All unique positions used by active toasts (plus the default position) */\n const possiblePositions = createMemo(() =>\n Array.from(\n new Set(\n [merged.position].concat(\n filteredToasts()\n .filter((t) => t.position)\n .map((t) => t.position as Position),\n ),\n ),\n ),\n );\n\n // Collapse when only one toast remains\n createMemo(() => {\n if (toasts().length <= 1) setExpanded(false);\n });\n\n // ─── Focus management ─────────────────────────────────────────────────────────\n const onFocus = (e: FocusEvent) => {\n const target = e.target as HTMLElement;\n if (target.dataset.dismissible === \"false\") return;\n if (!isFocusWithin) {\n isFocusWithin = true;\n lastFocusedElement = e.relatedTarget as HTMLElement;\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n if (isFocusWithin && !currentTarget.contains(e.relatedTarget as Node)) {\n isFocusWithin = false;\n if (lastFocusedElement) {\n lastFocusedElement.focus({ preventScroll: true });\n lastFocusedElement = null;\n }\n }\n };\n\n // ─── CSS offset vars ──────────────────────────────────────────────────────────\n const offsetVars = createMemo(() =>\n assignOffset(props.offset, props.mobileOffset),\n );\n\n return (\n <Portal>\n <section\n aria-label={\n props.customAriaLabel ??\n `${merged.containerAriaLabel} ${hotkeyLabel()}`\n }\n tabIndex={-1}\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n aria-atomic=\"false\"\n >\n <For each={possiblePositions()}>\n {(pos) => {\n const [posY, posX] = pos.split(\"-\");\n const toastsForPos = () =>\n filteredToasts().filter(\n (t) =>\n (!t.position && pos === merged.position) ||\n t.position === pos,\n );\n\n return (\n <Show when={toastsForPos().length > 0}>\n <ol\n ref={(el) => (listRef = el)}\n dir={\n merged.dir === \"auto\" ? getDocumentDirection() : merged.dir\n }\n tabIndex={-1}\n class={props.class}\n data-sonner-toaster\n data-sonner-theme={actualTheme()}\n data-y-position={posY}\n data-x-position={posX}\n style={{\n \"--front-toast-height\": `${heights()[0]?.height ?? 0}px`,\n \"--width\": `${TOAST_WIDTH}px`,\n \"--gap\": `${merged.gap}px`,\n ...(props.style as any),\n ...offsetVars(),\n }}\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseEnter={() => setExpanded(true)}\n onMouseMove={() => setExpanded(true)}\n onMouseLeave={() => {\n if (!interacting()) setExpanded(false);\n }}\n onDragEnd={() => setExpanded(false)}\n onPointerDown={(e) => {\n const target = e.target as HTMLElement;\n if (target.dataset.dismissible === \"false\") return;\n setInteracting(true);\n }}\n onPointerUp={() => setInteracting(false)}\n >\n <For each={toastsForPos()}>\n {(toast, index) => {\n const heightsForPos = createMemo(() =>\n heights().filter((h) => h.position === toast.position),\n );\n\n return (\n <Toast\n icons={props.icons}\n index={index()}\n toast={toast}\n defaultRichColors={props.richColors}\n duration={\n props.toastOptions?.duration ?? props.duration\n }\n class={props.toastOptions?.class}\n descriptionClass={\n props.toastOptions?.descriptionClass\n }\n invert={props.invert ?? false}\n visibleToasts={merged.visibleToasts}\n closeButton={\n props.toastOptions?.closeButton ??\n props.closeButton ??\n false\n }\n interacting={interacting()}\n position={pos}\n style={props.toastOptions?.style}\n unstyled={props.toastOptions?.unstyled}\n classes={props.toastOptions?.classes}\n cancelButtonStyle={\n props.toastOptions?.cancelButtonStyle\n }\n actionButtonStyle={\n props.toastOptions?.actionButtonStyle\n }\n closeButtonAriaLabel={\n props.toastOptions?.closeButtonAriaLabel\n }\n removeToast={removeToast}\n toasts={toastsForPos()}\n heights={heightsForPos()}\n setHeights={setHeights}\n expandByDefault={props.expand ?? false}\n gap={merged.gap}\n expanded={expanded()}\n swipeDirections={props.swipeDirections}\n />\n );\n }}\n </For>\n </ol>\n </Show>\n );\n }}\n </For>\n </section>\n </Portal>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Toaster.js","names":["createMemo","createSignal","For","mergeProps","Show","Component","Toast","useTheme","useToasterKeyboard","useToastSubscription","assignOffset","getDocumentDirection","GAP","TOAST_WIDTH","VISIBLE_TOASTS_AMOUNT","HeightT","Position","ToasterProps","Portal","Toaster","props","console","warn","merged","position","hotkey","gap","visibleToasts","dir","containerAriaLabel","const","hotkeyLabel","join","replace","heights","setHeights","expanded","setExpanded","interacting","setInteracting","listRef","HTMLOListElement","lastFocusedElement","HTMLElement","isFocusWithin","actualTheme","theme","toasts","removeToast","filteredToasts","id","filter","t","toasterId","possiblePositions","Array","from","Set","concat","map","length","onFocus","e","FocusEvent","target","dataset","dismissible","relatedTarget","onBlur","currentTarget","contains","Node","focus","preventScroll","offsetVars","offset","mobileOffset","_$createComponent","children","_el$","_tmpl$","_$insert","each","pos","posY","posX","split","toastsForPos","when","_el$2","_tmpl$2","$$pointerup","$$pointerdown","addEventListener","$$mousemove","_$use","el","_$setAttribute","toast","index","heightsForPos","h","icons","defaultRichColors","richColors","duration","toastOptions","class","descriptionClass","invert","closeButton","style","unstyled","classes","cancelButtonStyle","actionButtonStyle","closeButtonAriaLabel","expandByDefault","expand","swipeDirections","_$effect","_p$","_v$","_v$2","_v$3","_v$4","height","_$className","a","o","_$style","undefined","customAriaLabel","_$delegateEvents"],"sources":["../../../../src/components/toast/components/Toaster.tsx"],"sourcesContent":["/**\n * components/Toaster.tsx\n * Root component that renders the toast container(s) into a portal.\n * Single responsibility: layout, positioning, and orchestrating sub-components/hooks.\n * All state logic is delegated to dedicated hooks.\n */\nimport {\n createMemo,\n createSignal,\n For,\n mergeProps,\n Show,\n type Component,\n} from \"solid-js\";\nimport { Toast } from \"./Toast\";\nimport { useTheme } from \"../hooks/useTheme\";\nimport { useToasterKeyboard } from \"../hooks/useToasterKeyboard\";\nimport { useToastSubscription } from \"../hooks/useToastSubscription\";\nimport { assignOffset, getDocumentDirection } from \"../utils\";\nimport { GAP, TOAST_WIDTH, VISIBLE_TOASTS_AMOUNT } from \"../constants\";\nimport type { HeightT, Position, ToasterProps } from \"../types\";\nimport { Portal } from \"solid-js/web\";\n\nexport const Toaster: Component<ToasterProps> = (props) => {\n console.warn(\n \"The current `Toast` component still has many bugs, which originate from the upstream component library at https://github.com/emilkowalski/sonner. If you encounter a bug, you can file an issue in the upstream repository or in this repository. The design concept of the upstream project is very impressive, but due to poor code quality, this component will not stay in sync with the upstream code unless the upstream adds significantly more impressive features. Bugs and some edge cases will be fixed independently.\",\n );\n\n const merged = mergeProps(\n {\n position: \"bottom-right\",\n hotkey: [\"altKey\", \"KeyT\"] as string[],\n gap: GAP,\n visibleToasts: VISIBLE_TOASTS_AMOUNT,\n dir: getDocumentDirection(),\n containerAriaLabel: \"Notifications\",\n } as const,\n props,\n );\n\n const hotkeyLabel = () =>\n merged.hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n\n // ─── Local state ──────────────────────────────────────────────────────────────\n const [heights, setHeights] = createSignal<HeightT[]>([]);\n const [expanded, setExpanded] = createSignal(false);\n const [interacting, setInteracting] = createSignal(false);\n\n let listRef: HTMLOListElement | undefined;\n let lastFocusedElement: HTMLElement | null = null;\n let isFocusWithin = false;\n\n // ─── Composed hooks ───────────────────────────────────────────────────────────\n const actualTheme = useTheme(() => props.theme ?? \"light\");\n const { toasts, removeToast } = useToastSubscription();\n\n useToasterKeyboard({\n hotkey: merged.hotkey,\n listRef: () => listRef,\n setExpanded,\n });\n\n // ─── Derived data ─────────────────────────────────────────────────────────────\n /** Toasts that belong to this specific Toaster instance (by id) */\n const filteredToasts = createMemo(() => {\n const id = props.id;\n return id\n ? toasts().filter((t) => t.toasterId === id)\n : toasts().filter((t) => !t.toasterId);\n });\n\n /** All unique positions used by active toasts (plus the default position) */\n const possiblePositions = createMemo(() =>\n Array.from(\n new Set(\n [merged.position].concat(\n filteredToasts()\n .filter((t) => t.position)\n .map((t) => t.position as Position),\n ),\n ),\n ),\n );\n\n // Collapse when only one toast remains\n createMemo(() => {\n if (toasts().length <= 1) setExpanded(false);\n });\n\n // ─── Focus management ─────────────────────────────────────────────────────────\n const onFocus = (e: FocusEvent) => {\n const target = e.target as HTMLElement;\n if (target.dataset.dismissible === \"false\") return;\n if (!isFocusWithin) {\n isFocusWithin = true;\n lastFocusedElement = e.relatedTarget as HTMLElement;\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n if (isFocusWithin && !currentTarget.contains(e.relatedTarget as Node)) {\n isFocusWithin = false;\n if (lastFocusedElement) {\n lastFocusedElement.focus({ preventScroll: true });\n lastFocusedElement = null;\n }\n }\n };\n\n // ─── CSS offset vars ──────────────────────────────────────────────────────────\n const offsetVars = createMemo(() =>\n assignOffset(props.offset, props.mobileOffset),\n );\n\n return (\n <Portal>\n <section\n aria-label={\n props.customAriaLabel ??\n `${merged.containerAriaLabel} ${hotkeyLabel()}`\n }\n tabIndex={-1}\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n aria-atomic=\"false\"\n >\n <For each={possiblePositions()}>\n {(pos) => {\n const [posY, posX] = pos.split(\"-\");\n const toastsForPos = () =>\n filteredToasts().filter(\n (t) =>\n (!t.position && pos === merged.position) ||\n t.position === pos,\n );\n\n return (\n <Show when={toastsForPos().length > 0}>\n <ol\n ref={(el) => (listRef = el)}\n dir={\n merged.dir === \"auto\" ? getDocumentDirection() : merged.dir\n }\n tabIndex={-1}\n class={props.class}\n data-sonner-toaster\n data-sonner-theme={actualTheme()}\n data-y-position={posY}\n data-x-position={posX}\n style={{\n \"--front-toast-height\": `${heights()[0]?.height ?? 0}px`,\n \"--width\": `${TOAST_WIDTH}px`,\n \"--gap\": `${merged.gap}px`,\n ...(props.style as any),\n ...offsetVars(),\n }}\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseEnter={() => setExpanded(true)}\n onMouseMove={() => setExpanded(true)}\n onMouseLeave={() => {\n if (!interacting()) setExpanded(false);\n }}\n onDragEnd={() => setExpanded(false)}\n onPointerDown={(e) => {\n const target = e.target as HTMLElement;\n if (target.dataset.dismissible === \"false\") return;\n setInteracting(true);\n }}\n onPointerUp={() => setInteracting(false)}\n >\n <For each={toastsForPos()}>\n {(toast, index) => {\n const heightsForPos = createMemo(() =>\n heights().filter((h) => h.position === toast.position),\n );\n\n return (\n <Toast\n icons={props.icons}\n index={index()}\n toast={toast}\n defaultRichColors={props.richColors}\n duration={\n props.toastOptions?.duration ?? props.duration\n }\n class={props.toastOptions?.class}\n descriptionClass={\n props.toastOptions?.descriptionClass\n }\n invert={props.invert ?? false}\n visibleToasts={merged.visibleToasts}\n closeButton={\n props.toastOptions?.closeButton ??\n props.closeButton ??\n false\n }\n interacting={interacting()}\n position={pos}\n style={props.toastOptions?.style}\n unstyled={props.toastOptions?.unstyled}\n classes={props.toastOptions?.classes}\n cancelButtonStyle={\n props.toastOptions?.cancelButtonStyle\n }\n actionButtonStyle={\n props.toastOptions?.actionButtonStyle\n }\n closeButtonAriaLabel={\n props.toastOptions?.closeButtonAriaLabel\n }\n removeToast={removeToast}\n toasts={toastsForPos()}\n heights={heightsForPos()}\n setHeights={setHeights}\n expandByDefault={props.expand ?? false}\n gap={merged.gap}\n expanded={expanded()}\n swipeDirections={props.swipeDirections}\n />\n );\n }}\n </For>\n </ol>\n </Show>\n );\n }}\n </For>\n </section>\n </Portal>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwipe.js","names":[],"sources":["../../../../src/components/toast/hooks/useSwipe.ts"],"sourcesContent":["import { createSignal } from \"solid-js\";\nimport { SWIPE_THRESHOLD } from \"../constants\";\nimport { getDefaultSwipeDirections } from \"../utils\";\nimport type { SwipeDirection, ToastT } from \"../types\";\n\ninterface UseSwipeOptions {\n toastRef: () => HTMLLIElement | undefined;\n toast: ToastT;\n dismissible: boolean;\n position: string;\n swipeDirections?: SwipeDirection[];\n offset: () => number;\n deleteToast: () => void;\n}\n\nexport function useSwipe(opts: UseSwipeOptions) {\n const [swiping, setSwiping] = createSignal(false);\n const [swipeOut, setSwipeOut] = createSignal(false);\n const [swipeOutDirection, setSwipeOutDirection] = createSignal<\n \"left\" | \"right\" | \"up\" | \"down\" | null\n >(null);\n const [isSwiped, setIsSwiped] = createSignal(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = createSignal(0);\n\n let swipeDirection: \"x\" | \"y\" | null = null;\n let pointerStart: { x: number; y: number } | null = null;\n let dragStartTime: Date | null = null;\n\n const disabled = () => opts.toast.type === \"loading\";\n\n const onPointerDown = (e: PointerEvent) => {\n if (e.button === 2) return;\n if (disabled() || !opts.dismissible) return;\n dragStartTime = new Date();\n setOffsetBeforeRemove(opts.offset());\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n if ((e.target as HTMLElement).tagName === \"BUTTON\") return;\n setSwiping(true);\n pointerStart = { x: e.clientX, y: e.clientY };\n };\n\n const onPointerUp = () => {\n if (swipeOut() || !opts.dismissible) return;\n pointerStart = null;\n\n const el = opts.toastRef();\n const amtX = Number(\n el?.style.getPropertyValue(\"--swipe-amount-x\").replace(\"px\", \"\") || 0,\n );\n const amtY = Number(\n el?.style.getPropertyValue(\"--swipe-amount-y\").replace(\"px\", \"\") || 0,\n );\n const timeTaken = Date.now() - (dragStartTime?.getTime() ?? 0);\n const swipeAmt = swipeDirection === \"x\" ? amtX : amtY;\n const velocity = Math.abs(swipeAmt) / timeTaken;\n\n if (Math.abs(swipeAmt) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(opts.offset());\n opts.toast.onDismiss?.(opts.toast);\n if (swipeDirection === \"x\") {\n setSwipeOutDirection(amtX > 0 ? \"right\" : \"left\");\n } else {\n setSwipeOutDirection(amtY > 0 ? \"down\" : \"up\");\n }\n opts.deleteToast();\n setSwipeOut(true);\n return;\n }\n\n el?.style.setProperty(\"--swipe-amount-x\", \"0px\");\n el?.style.setProperty(\"--swipe-amount-y\", \"0px\");\n setIsSwiped(false);\n setSwiping(false);\n swipeDirection = null;\n };\n\n const onPointerMove = (e: PointerEvent) => {\n if (!pointerStart || !opts.dismissible) return;\n if ((window.getSelection()?.toString().length ?? 0) > 0) return;\n\n const yDelta = e.clientY - pointerStart.y;\n const xDelta = e.clientX - pointerStart.x;\n const dirs =\n opts.swipeDirections ?? getDefaultSwipeDirections(opts.position);\n\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n swipeDirection = Math.abs(xDelta) > Math.abs(yDelta) ? \"x\" : \"y\";\n }\n\n const getDampen = (delta: number) => 1 / (1.5 + Math.abs(delta) / 20);\n\n const swipeAmt = { x: 0, y: 0 };\n\n if (\n swipeDirection === \"y\" &&\n (dirs.includes(\"top\") || dirs.includes(\"bottom\"))\n ) {\n if (\n (dirs.includes(\"top\") && yDelta < 0) ||\n (dirs.includes(\"bottom\") && yDelta > 0)\n ) {\n swipeAmt.y = yDelta;\n } else {\n const d = yDelta * getDampen(yDelta);\n swipeAmt.y = Math.abs(d) < Math.abs(yDelta) ? d : yDelta;\n }\n } else if (\n swipeDirection === \"x\" &&\n (dirs.includes(\"left\") || dirs.includes(\"right\"))\n ) {\n if (\n (dirs.includes(\"left\") && xDelta < 0) ||\n (dirs.includes(\"right\") && xDelta > 0)\n ) {\n swipeAmt.x = xDelta;\n } else {\n const d = xDelta * getDampen(xDelta);\n swipeAmt.x = Math.abs(d) < Math.abs(xDelta) ? d : xDelta;\n }\n }\n\n if (Math.abs(swipeAmt.x) > 0 || Math.abs(swipeAmt.y) > 0) setIsSwiped(true);\n\n const el = opts.toastRef();\n el?.style.setProperty(\"--swipe-amount-x\", `${swipeAmt.x}px`);\n el?.style.setProperty(\"--swipe-amount-y\", `${swipeAmt.y}px`);\n };\n\n const onDragEnd = () => {\n setSwiping(false);\n swipeDirection = null;\n pointerStart = null;\n };\n\n return {\n swiping,\n swipeOut,\n swipeOutDirection,\n isSwiped,\n offsetBeforeRemove,\n setOffsetBeforeRemove,\n onPointerDown,\n onPointerUp,\n onPointerMove,\n onDragEnd,\n };\n}\n"],"mappings":";;;AAeA,SAAgB,EAAS,GAAuB;CAC9C,IAAM,CAAC,GAAS,KAAc,EAAa,
|
|
1
|
+
{"version":3,"file":"useSwipe.js","names":[],"sources":["../../../../src/components/toast/hooks/useSwipe.ts"],"sourcesContent":["import { createSignal } from \"solid-js\";\nimport { SWIPE_THRESHOLD } from \"../constants\";\nimport { getDefaultSwipeDirections } from \"../utils\";\nimport type { SwipeDirection, ToastT } from \"../types\";\n\ninterface UseSwipeOptions {\n toastRef: () => HTMLLIElement | undefined;\n toast: ToastT;\n dismissible: boolean;\n position: string;\n swipeDirections?: SwipeDirection[];\n offset: () => number;\n deleteToast: () => void;\n}\n\nexport function useSwipe(opts: UseSwipeOptions) {\n const [swiping, setSwiping] = createSignal(false);\n const [swipeOut, setSwipeOut] = createSignal(false);\n const [swipeOutDirection, setSwipeOutDirection] = createSignal<\n \"left\" | \"right\" | \"up\" | \"down\" | null\n >(null);\n const [isSwiped, setIsSwiped] = createSignal(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = createSignal(0);\n\n let swipeDirection: \"x\" | \"y\" | null = null;\n let pointerStart: { x: number; y: number } | null = null;\n let dragStartTime: Date | null = null;\n\n const disabled = () => opts.toast.type === \"loading\";\n\n const onPointerDown = (e: PointerEvent) => {\n if (e.button === 2) return;\n if (disabled() || !opts.dismissible) return;\n dragStartTime = new Date();\n setOffsetBeforeRemove(opts.offset());\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n if ((e.target as HTMLElement).tagName === \"BUTTON\") return;\n setSwiping(true);\n pointerStart = { x: e.clientX, y: e.clientY };\n };\n\n const onPointerUp = () => {\n if (swipeOut() || !opts.dismissible) return;\n pointerStart = null;\n\n const el = opts.toastRef();\n const amtX = Number(\n el?.style.getPropertyValue(\"--swipe-amount-x\").replace(\"px\", \"\") || 0,\n );\n const amtY = Number(\n el?.style.getPropertyValue(\"--swipe-amount-y\").replace(\"px\", \"\") || 0,\n );\n const timeTaken = Date.now() - (dragStartTime?.getTime() ?? 0);\n const swipeAmt = swipeDirection === \"x\" ? amtX : amtY;\n const velocity = Math.abs(swipeAmt) / timeTaken;\n\n if (Math.abs(swipeAmt) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(opts.offset());\n opts.toast.onDismiss?.(opts.toast);\n if (swipeDirection === \"x\") {\n setSwipeOutDirection(amtX > 0 ? \"right\" : \"left\");\n } else {\n setSwipeOutDirection(amtY > 0 ? \"down\" : \"up\");\n }\n opts.deleteToast();\n setSwipeOut(true);\n return;\n }\n\n el?.style.setProperty(\"--swipe-amount-x\", \"0px\");\n el?.style.setProperty(\"--swipe-amount-y\", \"0px\");\n setIsSwiped(false);\n setSwiping(false);\n swipeDirection = null;\n };\n\n const onPointerMove = (e: PointerEvent) => {\n if (!pointerStart || !opts.dismissible) return;\n if ((window.getSelection()?.toString().length ?? 0) > 0) return;\n\n const yDelta = e.clientY - pointerStart.y;\n const xDelta = e.clientX - pointerStart.x;\n const dirs =\n opts.swipeDirections ?? getDefaultSwipeDirections(opts.position);\n\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n swipeDirection = Math.abs(xDelta) > Math.abs(yDelta) ? \"x\" : \"y\";\n }\n\n const getDampen = (delta: number) => 1 / (1.5 + Math.abs(delta) / 20);\n\n const swipeAmt = { x: 0, y: 0 };\n\n if (\n swipeDirection === \"y\" &&\n (dirs.includes(\"top\") || dirs.includes(\"bottom\"))\n ) {\n if (\n (dirs.includes(\"top\") && yDelta < 0) ||\n (dirs.includes(\"bottom\") && yDelta > 0)\n ) {\n swipeAmt.y = yDelta;\n } else {\n const d = yDelta * getDampen(yDelta);\n swipeAmt.y = Math.abs(d) < Math.abs(yDelta) ? d : yDelta;\n }\n } else if (\n swipeDirection === \"x\" &&\n (dirs.includes(\"left\") || dirs.includes(\"right\"))\n ) {\n if (\n (dirs.includes(\"left\") && xDelta < 0) ||\n (dirs.includes(\"right\") && xDelta > 0)\n ) {\n swipeAmt.x = xDelta;\n } else {\n const d = xDelta * getDampen(xDelta);\n swipeAmt.x = Math.abs(d) < Math.abs(xDelta) ? d : xDelta;\n }\n }\n\n if (Math.abs(swipeAmt.x) > 0 || Math.abs(swipeAmt.y) > 0) setIsSwiped(true);\n\n const el = opts.toastRef();\n el?.style.setProperty(\"--swipe-amount-x\", `${swipeAmt.x}px`);\n el?.style.setProperty(\"--swipe-amount-y\", `${swipeAmt.y}px`);\n };\n\n const onDragEnd = () => {\n setSwiping(false);\n swipeDirection = null;\n pointerStart = null;\n };\n\n return {\n swiping,\n swipeOut,\n swipeOutDirection,\n isSwiped,\n offsetBeforeRemove,\n setOffsetBeforeRemove,\n onPointerDown,\n onPointerUp,\n onPointerMove,\n onDragEnd,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.js","names":[],"sources":["../../../../src/components/toast/hooks/useTheme.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup } from \"solid-js\";\nimport type { Theme } from \"../types\";\n\nexport function useTheme(theme: () => Theme | \"system\") {\n const getSystemTheme = (): Theme =>\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n\n const [actualTheme, setActualTheme] = createSignal<Theme>(\n theme() !== \"system\" ? (theme() as Theme) : getSystemTheme(),\n );\n\n createEffect(() => {\n if (theme() !== \"system\") {\n setActualTheme(theme() as Theme);\n return;\n }\n\n setActualTheme(getSystemTheme());\n\n if (typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e: MediaQueryListEvent) =>\n setActualTheme(e.matches ? \"dark\" : \"light\");\n\n try {\n mq.addEventListener(\"change\", handler);\n onCleanup(() => mq.removeEventListener(\"change\", handler));\n } catch {\n // Safari < 14 fallback\n mq.addListener(handler);\n onCleanup(() => mq.removeListener(handler as any));\n }\n });\n\n return actualTheme;\n}\n"],"mappings":";;AAGA,SAAgB,EAAS,GAA+B;CACtD,IAAM,UACJ,OAAO,SAAW,OAClB,OAAO,aAAa
|
|
1
|
+
{"version":3,"file":"useTheme.js","names":[],"sources":["../../../../src/components/toast/hooks/useTheme.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup } from \"solid-js\";\nimport type { Theme } from \"../types\";\n\nexport function useTheme(theme: () => Theme | \"system\") {\n const getSystemTheme = (): Theme =>\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-color-scheme: dark)\").matches\n ? \"dark\"\n : \"light\";\n\n const [actualTheme, setActualTheme] = createSignal<Theme>(\n theme() !== \"system\" ? (theme() as Theme) : getSystemTheme(),\n );\n\n createEffect(() => {\n if (theme() !== \"system\") {\n setActualTheme(theme() as Theme);\n return;\n }\n\n setActualTheme(getSystemTheme());\n\n if (typeof window === \"undefined\") return;\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e: MediaQueryListEvent) =>\n setActualTheme(e.matches ? \"dark\" : \"light\");\n\n try {\n mq.addEventListener(\"change\", handler);\n onCleanup(() => mq.removeEventListener(\"change\", handler));\n } catch {\n // Safari < 14 fallback\n mq.addListener(handler);\n onCleanup(() => mq.removeListener(handler as any));\n }\n });\n\n return actualTheme;\n}\n"],"mappings":";;AAGA,SAAgB,EAAS,GAA+B;CACtD,IAAM,UACJ,OAAO,SAAW,OAClB,OAAO,aAAa,8BAA8B,CAAC,CAAC,UAChD,SACA,SAEA,CAAC,GAAa,KAAkB,EACpC,EAAM,MAAM,WAAgC,EAAe,IAAnC,EAAM,CAChC;CAyBA,OAvBA,QAAmB;EACjB,IAAI,EAAM,MAAM,UAAU;GACxB,EAAe,EAAM,CAAU;GAC/B;EACF;EAIA,IAFA,EAAe,EAAe,CAAC,GAE3B,OAAO,SAAW,KAAa;EACnC,IAAM,IAAK,OAAO,WAAW,8BAA8B,GACrD,KAAW,MACf,EAAe,EAAE,UAAU,SAAS,OAAO;EAE7C,IAAI;GAEF,AADA,EAAG,iBAAiB,UAAU,CAAO,GACrC,QAAgB,EAAG,oBAAoB,UAAU,CAAO,CAAC;EAC3D,QAAQ;GAGN,AADA,EAAG,YAAY,CAAO,GACtB,QAAgB,EAAG,eAAe,CAAc,CAAC;EACnD;CACF,CAAC,GAEM;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToastHeight.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastHeight.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup } from \"solid-js\";\nimport type { HeightT, Position, ToastT } from \"../types\";\n\ninterface UseToastHeightOptions {\n toastRef: () => HTMLLIElement | undefined;\n toast: () => ToastT;\n mounted: () => boolean;\n setHeights: (updater: (prev: HeightT[]) => HeightT[]) => void;\n}\n\nexport function useToastHeight(opts: UseToastHeightOptions) {\n const [initialHeight, setInitialHeight] = createSignal(0);\n\n const toast = opts.toast();\n\n // Register height on first mount\n createEffect(() => {\n const el = opts.toastRef();\n if (!el) return;\n const h = el.getBoundingClientRect().height;\n setInitialHeight(h);\n opts.setHeights((prev) => [\n {\n toastId: toast.id,\n height: h,\n position: toast.position as Position,\n },\n ...prev,\n ]);\n onCleanup(() =>\n opts.setHeights((prev) => prev.filter((x) => x.toastId !== toast.id)),\n );\n });\n\n // Keep height in sync when content changes\n createEffect(() => {\n if (!opts.mounted()) return;\n const el = opts.toastRef();\n if (!el) return;\n\n // Read deps so effect re-runs on content change\n void toast.title;\n void toast.description;\n void toast.jsx;\n void toast.action;\n void toast.cancel;\n\n const orig = el.style.height;\n el.style.height = \"auto\";\n const newH = el.getBoundingClientRect().height;\n el.style.height = orig;\n setInitialHeight(newH);\n\n opts.setHeights((prev) => {\n const exists = prev.find((x) => x.toastId === toast.id);\n if (!exists) {\n return [\n {\n toastId: toast.id,\n height: newH,\n position: toast.position as Position,\n },\n ...prev,\n ];\n }\n return prev.map((x) =>\n x.toastId === toast.id ? { ...x, height: newH } : x,\n );\n });\n });\n\n return { initialHeight };\n}\n"],"mappings":";;AAUA,SAAgB,EAAe,GAA6B;CAC1D,IAAM,CAAC,GAAe,KAAoB,EAAa,
|
|
1
|
+
{"version":3,"file":"useToastHeight.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastHeight.ts"],"sourcesContent":["import { createEffect, createSignal, onCleanup } from \"solid-js\";\nimport type { HeightT, Position, ToastT } from \"../types\";\n\ninterface UseToastHeightOptions {\n toastRef: () => HTMLLIElement | undefined;\n toast: () => ToastT;\n mounted: () => boolean;\n setHeights: (updater: (prev: HeightT[]) => HeightT[]) => void;\n}\n\nexport function useToastHeight(opts: UseToastHeightOptions) {\n const [initialHeight, setInitialHeight] = createSignal(0);\n\n const toast = opts.toast();\n\n // Register height on first mount\n createEffect(() => {\n const el = opts.toastRef();\n if (!el) return;\n const h = el.getBoundingClientRect().height;\n setInitialHeight(h);\n opts.setHeights((prev) => [\n {\n toastId: toast.id,\n height: h,\n position: toast.position as Position,\n },\n ...prev,\n ]);\n onCleanup(() =>\n opts.setHeights((prev) => prev.filter((x) => x.toastId !== toast.id)),\n );\n });\n\n // Keep height in sync when content changes\n createEffect(() => {\n if (!opts.mounted()) return;\n const el = opts.toastRef();\n if (!el) return;\n\n // Read deps so effect re-runs on content change\n void toast.title;\n void toast.description;\n void toast.jsx;\n void toast.action;\n void toast.cancel;\n\n const orig = el.style.height;\n el.style.height = \"auto\";\n const newH = el.getBoundingClientRect().height;\n el.style.height = orig;\n setInitialHeight(newH);\n\n opts.setHeights((prev) => {\n const exists = prev.find((x) => x.toastId === toast.id);\n if (!exists) {\n return [\n {\n toastId: toast.id,\n height: newH,\n position: toast.position as Position,\n },\n ...prev,\n ];\n }\n return prev.map((x) =>\n x.toastId === toast.id ? { ...x, height: newH } : x,\n );\n });\n });\n\n return { initialHeight };\n}\n"],"mappings":";;AAUA,SAAgB,EAAe,GAA6B;CAC1D,IAAM,CAAC,GAAe,KAAoB,EAAa,CAAC,GAElD,IAAQ,EAAK,MAAM;CA0DzB,OAvDA,QAAmB;EACjB,IAAM,IAAK,EAAK,SAAS;EACzB,IAAI,CAAC,GAAI;EACT,IAAM,IAAI,EAAG,sBAAsB,CAAC,CAAC;EAUrC,AATA,EAAiB,CAAC,GAClB,EAAK,YAAY,MAAS,CACxB;GACE,SAAS,EAAM;GACf,QAAQ;GACR,UAAU,EAAM;EAClB,GACA,GAAG,CACL,CAAC,GACD,QACE,EAAK,YAAY,MAAS,EAAK,QAAQ,MAAM,EAAE,YAAY,EAAM,EAAE,CAAC,CACtE;CACF,CAAC,GAGD,QAAmB;EACjB,IAAI,CAAC,EAAK,QAAQ,GAAG;EACrB,IAAM,IAAK,EAAK,SAAS;EACzB,IAAI,CAAC,GAAI;EAOT,AAJA,EAAW,OACX,EAAW,aACX,EAAW,KACX,EAAW,QACX,EAAW;EAEX,IAAM,IAAO,EAAG,MAAM;EACtB,EAAG,MAAM,SAAS;EAClB,IAAM,IAAO,EAAG,sBAAsB,CAAC,CAAC;EAIxC,AAHA,EAAG,MAAM,SAAS,GAClB,EAAiB,CAAI,GAErB,EAAK,YAAY,MACA,EAAK,MAAM,MAAM,EAAE,YAAY,EAAM,EAC/C,IAUE,EAAK,KAAK,MACf,EAAE,YAAY,EAAM,KAAK;GAAE,GAAG;GAAG,QAAQ;EAAK,IAAI,CACpD,IAXS,CACL;GACE,SAAS,EAAM;GACf,QAAQ;GACR,UAAU,EAAM;EAClB,GACA,GAAG,CACL,CAKH;CACH,CAAC,GAEM,EAAE,iBAAc;AACzB"}
|
|
@@ -4,7 +4,7 @@ import { createSignal as t, onCleanup as n, onMount as r } from "solid-js";
|
|
|
4
4
|
function i() {
|
|
5
5
|
let [i, a] = t([]);
|
|
6
6
|
return r(() => {
|
|
7
|
-
|
|
7
|
+
let t = e.subscribe((e) => {
|
|
8
8
|
if (e.dismiss) {
|
|
9
9
|
a((t) => t.map((t) => t.id === e.id ? {
|
|
10
10
|
...t,
|
|
@@ -23,7 +23,8 @@ function i() {
|
|
|
23
23
|
...t.slice(n + 1)
|
|
24
24
|
];
|
|
25
25
|
});
|
|
26
|
-
})
|
|
26
|
+
});
|
|
27
|
+
n(t);
|
|
27
28
|
}), {
|
|
28
29
|
toasts: i,
|
|
29
30
|
removeToast: (t) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToastSubscription.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastSubscription.ts"],"sourcesContent":["/**\n * hooks/useToastSubscription.ts\n * Subscribes to the global ToastState observable and maintains a local reactive\n * list of toasts for the Toaster component.\n * Single responsibility: state synchronization between the observer and Solid signals.\n */\nimport { createSignal, onCleanup, onMount } from \"solid-js\";\nimport { ToastState } from \"../state\";\nimport type { ToastT, ToastToDismiss } from \"../types\";\n\nexport function useToastSubscription() {\n const [toasts, setToasts] = createSignal<ToastT[]>([]);\n\n onMount(() => {\n const unsubscribe = ToastState.subscribe((incoming) => {\n if ((incoming as ToastToDismiss).dismiss) {\n // Mark as deleted — the Toast component will animate out\n setToasts((prev) =>\n prev.map((t) => (t.id === incoming.id ? { ...t, delete: true } : t)),\n );\n return;\n }\n\n setToasts((prev) => {\n const idx = prev.findIndex((t) => t.id === incoming.id);\n if (idx !== -1) {\n return [\n ...prev.slice(0, idx),\n { ...prev[idx], ...(incoming as ToastT) },\n ...prev.slice(idx + 1),\n ];\n }\n return [incoming as ToastT, ...prev];\n });\n });\n\n onCleanup(unsubscribe);\n });\n\n const removeToast = (toast: ToastT) => {\n if (!toast.delete) ToastState.dismiss(toast.id);\n setToasts((prev) => prev.filter((t) => t.id !== toast.id));\n };\n\n return { toasts, removeToast };\n}\n"],"mappings":";;;AAUA,SAAgB,IAAuB;CACrC,IAAM,CAAC,GAAQ,KAAa,EAAuB,
|
|
1
|
+
{"version":3,"file":"useToastSubscription.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastSubscription.ts"],"sourcesContent":["/**\n * hooks/useToastSubscription.ts\n * Subscribes to the global ToastState observable and maintains a local reactive\n * list of toasts for the Toaster component.\n * Single responsibility: state synchronization between the observer and Solid signals.\n */\nimport { createSignal, onCleanup, onMount } from \"solid-js\";\nimport { ToastState } from \"../state\";\nimport type { ToastT, ToastToDismiss } from \"../types\";\n\nexport function useToastSubscription() {\n const [toasts, setToasts] = createSignal<ToastT[]>([]);\n\n onMount(() => {\n const unsubscribe = ToastState.subscribe((incoming) => {\n if ((incoming as ToastToDismiss).dismiss) {\n // Mark as deleted — the Toast component will animate out\n setToasts((prev) =>\n prev.map((t) => (t.id === incoming.id ? { ...t, delete: true } : t)),\n );\n return;\n }\n\n setToasts((prev) => {\n const idx = prev.findIndex((t) => t.id === incoming.id);\n if (idx !== -1) {\n return [\n ...prev.slice(0, idx),\n { ...prev[idx], ...(incoming as ToastT) },\n ...prev.slice(idx + 1),\n ];\n }\n return [incoming as ToastT, ...prev];\n });\n });\n\n onCleanup(unsubscribe);\n });\n\n const removeToast = (toast: ToastT) => {\n if (!toast.delete) ToastState.dismiss(toast.id);\n setToasts((prev) => prev.filter((t) => t.id !== toast.id));\n };\n\n return { toasts, removeToast };\n}\n"],"mappings":";;;AAUA,SAAgB,IAAuB;CACrC,IAAM,CAAC,GAAQ,KAAa,EAAuB,CAAC,CAAC;CAiCrD,OA/BA,QAAc;EACZ,IAAM,IAAc,EAAW,WAAW,MAAa;GACrD,IAAK,EAA4B,SAAS;IAExC,GAAW,MACT,EAAK,KAAK,MAAO,EAAE,OAAO,EAAS,KAAK;KAAE,GAAG;KAAG,QAAQ;IAAK,IAAI,CAAE,CACrE;IACA;GACF;GAEA,GAAW,MAAS;IAClB,IAAM,IAAM,EAAK,WAAW,MAAM,EAAE,OAAO,EAAS,EAAE;IAQtD,OAPI,MAAQ,KAOL,CAAC,GAAoB,GAAG,CAAI,IAN1B;KACL,GAAG,EAAK,MAAM,GAAG,CAAG;KACpB;MAAE,GAAG,EAAK;MAAM,GAAI;KAAoB;KACxC,GAAG,EAAK,MAAM,IAAM,CAAC;IACvB;GAGJ,CAAC;EACH,CAAC;EAED,EAAU,CAAW;CACvB,CAAC,GAOM;EAAE;EAAQ,cALI,MAAkB;GAErC,AADK,EAAM,UAAQ,EAAW,QAAQ,EAAM,EAAE,GAC9C,GAAW,MAAS,EAAK,QAAQ,MAAM,EAAE,OAAO,EAAM,EAAE,CAAC;EAC3D;CAE6B;AAC/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToastTimer.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastTimer.ts"],"sourcesContent":["/**\n * hooks/useToastTimer.ts\n * Manages the auto-dismiss countdown for a single toast.\n * Single responsibility: start, pause, and resume a timer; call deleteToast when done.\n */\nimport { createEffect, onCleanup } from \"solid-js\";\nimport type { ToastT } from \"../types\";\n\ninterface UseToastTimerOptions {\n toast: ToastT;\n duration: number;\n expanded: () => boolean;\n interacting: () => boolean;\n isDocumentHidden: () => boolean;\n deleteToast: () => void;\n}\n\nexport function useToastTimer(opts: UseToastTimerOptions) {\n let remainingTime = opts.toast.duration ?? opts.duration;\n let closeTimerStart = 0;\n let lastPauseTime = 0;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n const shouldSkip = () =>\n (opts.toast.promise && opts.toast.type === \"loading\") ||\n opts.toast.duration === Infinity ||\n opts.toast.type === \"loading\";\n\n const pauseTimer = () => {\n if (lastPauseTime < closeTimerStart) {\n const elapsed = Date.now() - closeTimerStart;\n remainingTime = Math.max(0, remainingTime - elapsed);\n }\n lastPauseTime = Date.now();\n };\n\n const startTimer = () => {\n if (remainingTime === Infinity) return;\n clearTimeout(timeoutId);\n closeTimerStart = Date.now();\n timeoutId = setTimeout(() => {\n opts.toast.onAutoClose?.(opts.toast);\n opts.deleteToast();\n }, remainingTime);\n };\n\n createEffect(() => {\n if (shouldSkip()) return;\n if (opts.expanded() || opts.interacting() || opts.isDocumentHidden()) {\n pauseTimer();\n } else {\n startTimer();\n }\n onCleanup(() => clearTimeout(timeoutId));\n });\n}\n"],"mappings":";;AAiBA,SAAgB,EAAc,GAA4B;CACxD,IAAI,IAAgB,EAAK,MAAM,YAAY,EAAK,UAC5C,IAAkB,GAClB,IAAgB,GAChB,GAEE,UACH,EAAK,MAAM,WAAW,EAAK,MAAM,SAAS,aAC3C,EAAK,MAAM,aAAa,YACxB,EAAK,MAAM,SAAS,WAEhB,UAAmB;
|
|
1
|
+
{"version":3,"file":"useToastTimer.js","names":[],"sources":["../../../../src/components/toast/hooks/useToastTimer.ts"],"sourcesContent":["/**\n * hooks/useToastTimer.ts\n * Manages the auto-dismiss countdown for a single toast.\n * Single responsibility: start, pause, and resume a timer; call deleteToast when done.\n */\nimport { createEffect, onCleanup } from \"solid-js\";\nimport type { ToastT } from \"../types\";\n\ninterface UseToastTimerOptions {\n toast: ToastT;\n duration: number;\n expanded: () => boolean;\n interacting: () => boolean;\n isDocumentHidden: () => boolean;\n deleteToast: () => void;\n}\n\nexport function useToastTimer(opts: UseToastTimerOptions) {\n let remainingTime = opts.toast.duration ?? opts.duration;\n let closeTimerStart = 0;\n let lastPauseTime = 0;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n const shouldSkip = () =>\n (opts.toast.promise && opts.toast.type === \"loading\") ||\n opts.toast.duration === Infinity ||\n opts.toast.type === \"loading\";\n\n const pauseTimer = () => {\n if (lastPauseTime < closeTimerStart) {\n const elapsed = Date.now() - closeTimerStart;\n remainingTime = Math.max(0, remainingTime - elapsed);\n }\n lastPauseTime = Date.now();\n };\n\n const startTimer = () => {\n if (remainingTime === Infinity) return;\n clearTimeout(timeoutId);\n closeTimerStart = Date.now();\n timeoutId = setTimeout(() => {\n opts.toast.onAutoClose?.(opts.toast);\n opts.deleteToast();\n }, remainingTime);\n };\n\n createEffect(() => {\n if (shouldSkip()) return;\n if (opts.expanded() || opts.interacting() || opts.isDocumentHidden()) {\n pauseTimer();\n } else {\n startTimer();\n }\n onCleanup(() => clearTimeout(timeoutId));\n });\n}\n"],"mappings":";;AAiBA,SAAgB,EAAc,GAA4B;CACxD,IAAI,IAAgB,EAAK,MAAM,YAAY,EAAK,UAC5C,IAAkB,GAClB,IAAgB,GAChB,GAEE,UACH,EAAK,MAAM,WAAW,EAAK,MAAM,SAAS,aAC3C,EAAK,MAAM,aAAa,YACxB,EAAK,MAAM,SAAS,WAEhB,UAAmB;EACvB,IAAI,IAAgB,GAAiB;GACnC,IAAM,IAAU,KAAK,IAAI,IAAI;GAC7B,IAAgB,KAAK,IAAI,GAAG,IAAgB,CAAO;EACrD;EACA,IAAgB,KAAK,IAAI;CAC3B,GAEM,UAAmB;EACnB,MAAkB,aACtB,aAAa,CAAS,GACtB,IAAkB,KAAK,IAAI,GAC3B,IAAY,iBAAiB;GAE3B,AADA,EAAK,MAAM,cAAc,EAAK,KAAK,GACnC,EAAK,YAAY;EACnB,GAAG,CAAa;CAClB;CAEA,QAAmB;EACb,EAAW,MACX,EAAK,SAAS,KAAK,EAAK,YAAY,KAAK,EAAK,iBAAiB,IACjE,EAAW,IAEX,EAAW,GAEb,QAAgB,aAAa,CAAS,CAAC;CACzC,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToasterKeyboard.js","names":[],"sources":["../../../../src/components/toast/hooks/useToasterKeyboard.ts"],"sourcesContent":["/**\n * hooks/useToasterKeyboard.ts\n * Handles keyboard interactions for the Toaster:\n * - Custom hotkey → expand the toast list and focus it\n * - Escape → collapse the toast list\n * Single responsibility: keyboard event binding only.\n */\nimport { onCleanup, onMount } from \"solid-js\";\n\ninterface UseToasterKeyboardOptions {\n hotkey: string[];\n listRef: () => HTMLOListElement | undefined;\n setExpanded: (v: boolean) => void;\n}\n\nexport function useToasterKeyboard(opts: UseToasterKeyboardOptions) {\n onMount(() => {\n const handler = (e: KeyboardEvent) => {\n const hotkeyPressed =\n opts.hotkey.length > 0 &&\n opts.hotkey.every((k) => (e as any)[k] || e.code === k);\n\n if (hotkeyPressed) {\n opts.setExpanded(true);\n opts.listRef()?.focus();\n }\n\n if (\n e.code === \"Escape\" &&\n (document.activeElement === opts.listRef() ||\n opts.listRef()?.contains(document.activeElement))\n ) {\n opts.setExpanded(false);\n }\n };\n\n document.addEventListener(\"keydown\", handler);\n onCleanup(() => document.removeEventListener(\"keydown\", handler));\n });\n}\n"],"mappings":";;AAeA,SAAgB,EAAmB,GAAiC;
|
|
1
|
+
{"version":3,"file":"useToasterKeyboard.js","names":[],"sources":["../../../../src/components/toast/hooks/useToasterKeyboard.ts"],"sourcesContent":["/**\n * hooks/useToasterKeyboard.ts\n * Handles keyboard interactions for the Toaster:\n * - Custom hotkey → expand the toast list and focus it\n * - Escape → collapse the toast list\n * Single responsibility: keyboard event binding only.\n */\nimport { onCleanup, onMount } from \"solid-js\";\n\ninterface UseToasterKeyboardOptions {\n hotkey: string[];\n listRef: () => HTMLOListElement | undefined;\n setExpanded: (v: boolean) => void;\n}\n\nexport function useToasterKeyboard(opts: UseToasterKeyboardOptions) {\n onMount(() => {\n const handler = (e: KeyboardEvent) => {\n const hotkeyPressed =\n opts.hotkey.length > 0 &&\n opts.hotkey.every((k) => (e as any)[k] || e.code === k);\n\n if (hotkeyPressed) {\n opts.setExpanded(true);\n opts.listRef()?.focus();\n }\n\n if (\n e.code === \"Escape\" &&\n (document.activeElement === opts.listRef() ||\n opts.listRef()?.contains(document.activeElement))\n ) {\n opts.setExpanded(false);\n }\n };\n\n document.addEventListener(\"keydown\", handler);\n onCleanup(() => document.removeEventListener(\"keydown\", handler));\n });\n}\n"],"mappings":";;AAeA,SAAgB,EAAmB,GAAiC;CAClE,QAAc;EACZ,IAAM,KAAW,MAAqB;GAUpC,AARE,EAAK,OAAO,SAAS,KACrB,EAAK,OAAO,OAAO,MAAO,EAAU,MAAM,EAAE,SAAS,CAAC,MAGtD,EAAK,YAAY,EAAI,GACrB,EAAK,QAAQ,CAAC,EAAE,MAAM,IAItB,EAAE,SAAS,aACV,SAAS,kBAAkB,EAAK,QAAQ,KACvC,EAAK,QAAQ,CAAC,EAAE,SAAS,SAAS,aAAa,MAEjD,EAAK,YAAY,EAAK;EAE1B;EAGA,AADA,SAAS,iBAAiB,WAAW,CAAO,GAC5C,QAAgB,SAAS,oBAAoB,WAAW,CAAO,CAAC;CAClE,CAAC;AACH"}
|
|
@@ -11,7 +11,7 @@ function i() {
|
|
|
11
11
|
function a() {
|
|
12
12
|
let [i, a] = t([]);
|
|
13
13
|
return r(() => {
|
|
14
|
-
|
|
14
|
+
let t = e.subscribe((e) => {
|
|
15
15
|
if (e.dismiss) {
|
|
16
16
|
a((t) => t.filter((t) => t.id !== e.id));
|
|
17
17
|
return;
|
|
@@ -27,7 +27,8 @@ function a() {
|
|
|
27
27
|
...t.slice(n + 1)
|
|
28
28
|
];
|
|
29
29
|
});
|
|
30
|
-
})
|
|
30
|
+
});
|
|
31
|
+
n(t);
|
|
31
32
|
}), { toasts: i };
|
|
32
33
|
}
|
|
33
34
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","names":[],"sources":["../../../src/components/toast/hooks.ts"],"sourcesContent":["import { createSignal, onCleanup, onMount } from \"solid-js\";\nimport { ToastState } from \"./state\";\nimport type { ToastT, ToastToDismiss } from \"./types\";\n\n// ─── Document visibility ───────────────────────────────────────────────────────\n/**\n * Returns a reactive boolean that tracks whether the browser tab is hidden.\n * Used to pause auto-dismiss timers while the user has switched tabs.\n */\nexport function useIsDocumentHidden() {\n const [isHidden, setIsHidden] = createSignal(document.hidden);\n\n onMount(() => {\n const handler = () => setIsHidden(document.hidden);\n document.addEventListener(\"visibilitychange\", handler);\n onCleanup(() => document.removeEventListener(\"visibilitychange\", handler));\n });\n\n return isHidden;\n}\n\n// ─── Active toasts (for external consumers) ────────────────────────────────────\n/**\n * Subscribes to the global ToastState and returns the list of currently visible\n * toasts as a SolidJS signal. Useful for building custom toast UIs.\n */\nexport function useSonner() {\n const [activeToasts, setActiveToasts] = createSignal<ToastT[]>([]);\n\n onMount(() => {\n const unsubscribe = ToastState.subscribe((toast) => {\n if ((toast as ToastToDismiss).dismiss) {\n setActiveToasts((prev) => prev.filter((t) => t.id !== toast.id));\n return;\n }\n\n setActiveToasts((prev) => {\n const idx = prev.findIndex((t) => t.id === toast.id);\n if (idx !== -1) {\n return [\n ...prev.slice(0, idx),\n { ...prev[idx], ...(toast as ToastT) },\n ...prev.slice(idx + 1),\n ];\n }\n return [toast as ToastT, ...prev];\n });\n });\n\n onCleanup(unsubscribe);\n });\n\n return { toasts: activeToasts };\n}\n"],"mappings":";;;AASA,SAAgB,IAAsB;CACpC,IAAM,CAAC,GAAU,KAAe,EAAa,SAAS,
|
|
1
|
+
{"version":3,"file":"hooks.js","names":[],"sources":["../../../src/components/toast/hooks.ts"],"sourcesContent":["import { createSignal, onCleanup, onMount } from \"solid-js\";\nimport { ToastState } from \"./state\";\nimport type { ToastT, ToastToDismiss } from \"./types\";\n\n// ─── Document visibility ───────────────────────────────────────────────────────\n/**\n * Returns a reactive boolean that tracks whether the browser tab is hidden.\n * Used to pause auto-dismiss timers while the user has switched tabs.\n */\nexport function useIsDocumentHidden() {\n const [isHidden, setIsHidden] = createSignal(document.hidden);\n\n onMount(() => {\n const handler = () => setIsHidden(document.hidden);\n document.addEventListener(\"visibilitychange\", handler);\n onCleanup(() => document.removeEventListener(\"visibilitychange\", handler));\n });\n\n return isHidden;\n}\n\n// ─── Active toasts (for external consumers) ────────────────────────────────────\n/**\n * Subscribes to the global ToastState and returns the list of currently visible\n * toasts as a SolidJS signal. Useful for building custom toast UIs.\n */\nexport function useSonner() {\n const [activeToasts, setActiveToasts] = createSignal<ToastT[]>([]);\n\n onMount(() => {\n const unsubscribe = ToastState.subscribe((toast) => {\n if ((toast as ToastToDismiss).dismiss) {\n setActiveToasts((prev) => prev.filter((t) => t.id !== toast.id));\n return;\n }\n\n setActiveToasts((prev) => {\n const idx = prev.findIndex((t) => t.id === toast.id);\n if (idx !== -1) {\n return [\n ...prev.slice(0, idx),\n { ...prev[idx], ...(toast as ToastT) },\n ...prev.slice(idx + 1),\n ];\n }\n return [toast as ToastT, ...prev];\n });\n });\n\n onCleanup(unsubscribe);\n });\n\n return { toasts: activeToasts };\n}\n"],"mappings":";;;AASA,SAAgB,IAAsB;CACpC,IAAM,CAAC,GAAU,KAAe,EAAa,SAAS,MAAM;CAQ5D,OANA,QAAc;EACZ,IAAM,UAAgB,EAAY,SAAS,MAAM;EAEjD,AADA,SAAS,iBAAiB,oBAAoB,CAAO,GACrD,QAAgB,SAAS,oBAAoB,oBAAoB,CAAO,CAAC;CAC3E,CAAC,GAEM;AACT;AAOA,SAAgB,IAAY;CAC1B,IAAM,CAAC,GAAc,KAAmB,EAAuB,CAAC,CAAC;CAyBjE,OAvBA,QAAc;EACZ,IAAM,IAAc,EAAW,WAAW,MAAU;GAClD,IAAK,EAAyB,SAAS;IACrC,GAAiB,MAAS,EAAK,QAAQ,MAAM,EAAE,OAAO,EAAM,EAAE,CAAC;IAC/D;GACF;GAEA,GAAiB,MAAS;IACxB,IAAM,IAAM,EAAK,WAAW,MAAM,EAAE,OAAO,EAAM,EAAE;IAQnD,OAPI,MAAQ,KAOL,CAAC,GAAiB,GAAG,CAAI,IANvB;KACL,GAAG,EAAK,MAAM,GAAG,CAAG;KACpB;MAAE,GAAG,EAAK;MAAM,GAAI;KAAiB;KACrC,GAAG,EAAK,MAAM,IAAM,CAAC;IACvB;GAGJ,CAAC;EACH,CAAC;EAED,EAAU,CAAW;CACvB,CAAC,GAEM,EAAE,QAAQ,EAAa;AAChC"}
|
|
@@ -15,7 +15,7 @@ var t = (e) => !("id" in e && "message" in e), n = new class {
|
|
|
15
15
|
this.publish(e), this.toasts = [...this.toasts, e];
|
|
16
16
|
};
|
|
17
17
|
create = (t) => {
|
|
18
|
-
let { message: n, ...r } = t, i = typeof t?.id == "number" || t.id?.length > 0 ? t.id : e(), a = this.toasts.find((e) => e.id === i), o = t.dismissible === void 0
|
|
18
|
+
let { message: n, ...r } = t, i = typeof t?.id == "number" || t.id?.length > 0 ? t.id : e(), a = this.toasts.find((e) => e.id === i), o = t.dismissible === void 0 || t.dismissible;
|
|
19
19
|
return this.dismissedToasts.has(i) && this.dismissedToasts.delete(i), a ? this.toasts = this.toasts.map((e) => e.id === i ? (this.publish({
|
|
20
20
|
...e,
|
|
21
21
|
...t,
|
|
@@ -150,7 +150,7 @@ var t = (e) => !("id" in e && "message" in e), n = new class {
|
|
|
150
150
|
...r,
|
|
151
151
|
id: i
|
|
152
152
|
}), i;
|
|
153
|
-
}, i = (e) => e && typeof e == "object" && "ok" in e && typeof e.ok == "boolean" && "status" in e && typeof e.status == "number", a = Object.assign(r, {
|
|
153
|
+
}, i = (e) => e && typeof e == "object" && "ok" in e && typeof e.ok == "boolean" && "status" in e && typeof e.status == "number", a = () => n.toasts, o = () => n.getActiveToasts(), s = Object.assign(r, {
|
|
154
154
|
success: n.success,
|
|
155
155
|
info: n.info,
|
|
156
156
|
warning: n.warning,
|
|
@@ -161,10 +161,10 @@ var t = (e) => !("id" in e && "message" in e), n = new class {
|
|
|
161
161
|
dismiss: n.dismiss,
|
|
162
162
|
loading: n.loading
|
|
163
163
|
}, {
|
|
164
|
-
getHistory:
|
|
165
|
-
getToasts:
|
|
164
|
+
getHistory: a,
|
|
165
|
+
getToasts: o
|
|
166
166
|
});
|
|
167
167
|
//#endregion
|
|
168
|
-
export { n as ToastState, a as toast };
|
|
168
|
+
export { n as ToastState, a as getHistory, o as getToasts, s as toast };
|
|
169
169
|
|
|
170
170
|
//# sourceMappingURL=state.js.map
|