@neut/ui 0.0.15 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion/Accordion/Accordion.context.d.ts +1 -1
- package/dist/components/accordion/Accordion/Accordion.context.js.map +1 -1
- package/dist/components/accordion/Accordion/Accordion.d.ts +1 -1
- package/dist/components/accordion/Accordion/Accordion.js.map +1 -1
- package/dist/components/accordion/Accordion/Accordion.styles.js.map +1 -1
- package/dist/components/accordion/Accordion/useAccordion.js.map +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.d.ts +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.js.map +1 -1
- package/dist/components/accordion/AccordionContent/AccordionContent.styles.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.context.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.d.ts +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/dist/components/accordion/AccordionItem/AccordionItem.styles.js.map +1 -1
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.d.ts +1 -1
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.js.map +1 -1
- package/dist/components/accordion/AccordionTrigger/AccordionTrigger.styles.js.map +1 -1
- package/dist/components/alert/Alert/Alert.d.ts +1 -1
- package/dist/components/alert/Alert/Alert.js.map +1 -1
- package/dist/components/alert/Alert/Alert.styles.js.map +1 -1
- package/dist/components/alert/AlertAction/AlertAction.d.ts +1 -1
- package/dist/components/alert/AlertAction/AlertAction.js.map +1 -1
- package/dist/components/alert/AlertAction/AlertAction.styles.js.map +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.d.ts +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.js.map +1 -1
- package/dist/components/alert/AlertDescription/AlertDescription.styles.js.map +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.d.ts +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.js.map +1 -1
- package/dist/components/alert/AlertTitle/AlertTitle.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.d.ts +6 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.js +4 -19
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.types.d.ts +6 -2
- package/dist/components/alert-dialog/AlertDialog/index.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogAction/AlertDialogAction.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogAction/AlertDialogAction.js +13 -4
- package/dist/components/alert-dialog/AlertDialogAction/AlertDialogAction.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js +1 -1
- package/dist/components/alert-dialog/AlertDialogCancel/AlertDialogCancel.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.js +19 -53
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.js +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.types.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogContent/index.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogDescription/AlertDialogDescription.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogFooter/AlertDialogFooter.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogHeader/AlertDialogHeader.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogMedia/AlertDialogMedia.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.js +4 -22
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.js +4 -6
- package/dist/components/alert-dialog/AlertDialogPortal/AlertDialogPortal.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.d.ts +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTitle/AlertDialogTitle.styles.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.d.ts +8 -2
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.js +27 -6
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.js.map +1 -1
- package/dist/components/alert-dialog/AlertDialogTrigger/AlertDialogTrigger.types.d.ts +4 -0
- package/dist/components/alert-dialog/AlertDialogTrigger/index.d.ts +1 -0
- package/dist/components/alert-dialog/index.js +13 -15
- package/dist/components/aspect-ratio/AspectRatio.d.ts +1 -1
- package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
- package/dist/components/aspect-ratio/AspectRatio.styles.js.map +1 -1
- package/dist/components/attachment/Attachment/Attachment.d.ts +6 -0
- package/dist/components/attachment/Attachment/Attachment.js +46 -0
- package/dist/components/attachment/Attachment/Attachment.js.map +1 -0
- package/dist/components/attachment/Attachment/Attachment.styles.d.ts +4 -0
- package/dist/components/attachment/Attachment/Attachment.styles.js +17 -0
- package/dist/components/attachment/Attachment/Attachment.styles.js.map +1 -0
- package/dist/components/attachment/Attachment/Attachment.types.d.ts +8 -0
- package/dist/components/attachment/Attachment/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentAction/AttachmentAction.d.ts +3 -0
- package/dist/components/attachment/AttachmentAction/AttachmentAction.js +15 -0
- package/dist/components/attachment/AttachmentAction/AttachmentAction.js.map +1 -0
- package/dist/components/attachment/AttachmentAction/AttachmentAction.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentAction/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.d.ts +3 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.js +24 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.js.map +1 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.styles.d.ts +1 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.styles.js +6 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentActions/AttachmentActions.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentActions/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentContent/AttachmentContent.d.ts +3 -0
- package/dist/components/attachment/AttachmentContent/AttachmentContent.js +23 -0
- package/dist/components/attachment/AttachmentContent/AttachmentContent.js.map +1 -0
- package/dist/components/attachment/AttachmentContent/AttachmentContent.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentContent/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.d.ts +3 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.js +24 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.js.map +1 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.styles.d.ts +1 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.styles.js +6 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentDescription/AttachmentDescription.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentDescription/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.d.ts +3 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.js +24 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.js.map +1 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.styles.d.ts +1 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.styles.js +6 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentGroup/AttachmentGroup.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentGroup/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.d.ts +3 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.js +31 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.js.map +1 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.styles.d.ts +3 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.styles.js +13 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentMedia/AttachmentMedia.types.d.ts +4 -0
- package/dist/components/attachment/AttachmentMedia/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.d.ts +3 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.js +24 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.js.map +1 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.styles.d.ts +1 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.styles.js +6 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.styles.js.map +1 -0
- package/dist/components/attachment/AttachmentTitle/AttachmentTitle.types.d.ts +2 -0
- package/dist/components/attachment/AttachmentTitle/index.d.ts +2 -0
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.d.ts +7 -0
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js +18 -0
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.js.map +1 -0
- package/dist/components/attachment/AttachmentTrigger/AttachmentTrigger.types.d.ts +5 -0
- package/dist/components/attachment/AttachmentTrigger/index.d.ts +2 -0
- package/dist/components/attachment/index.d.ts +18 -0
- package/dist/components/attachment/index.js +10 -0
- package/dist/components/avatar/Avatar/Avatar.context.js.map +1 -1
- package/dist/components/avatar/Avatar/Avatar.d.ts +1 -1
- package/dist/components/avatar/Avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/AvatarBadge/AvatarBadge.d.ts +1 -1
- package/dist/components/avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/components/avatar/AvatarFallback/AvatarFallback.d.ts +1 -1
- package/dist/components/avatar/AvatarFallback/AvatarFallback.js.map +1 -1
- package/dist/components/avatar/AvatarGroup/AvatarGroup.d.ts +1 -1
- package/dist/components/avatar/AvatarGroup/AvatarGroup.js.map +1 -1
- package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.d.ts +1 -1
- package/dist/components/avatar/AvatarGroupCount/AvatarGroupCount.js.map +1 -1
- package/dist/components/avatar/AvatarImage/AvatarImage.d.ts +1 -1
- package/dist/components/avatar/AvatarImage/AvatarImage.js.map +1 -1
- package/dist/components/badge/Badge.d.ts +1 -1
- package/dist/components/badge/Badge.js.map +1 -1
- package/dist/components/badge/Badge.styles.js.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/components/breadcrumb/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbEllipsis/BreadcrumbEllipsis.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbItem/BreadcrumbItem.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbList/BreadcrumbList.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbPage/BreadcrumbPage.styles.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.d.ts +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.js.map +1 -1
- package/dist/components/breadcrumb/BreadcrumbSeparator/BreadcrumbSeparator.styles.js.map +1 -1
- package/dist/components/button/Button.d.ts +1 -1
- package/dist/components/button/Button.js +1 -1
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/Button.styles.js.map +1 -1
- package/dist/components/button-group/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/components/button-group/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/button-group/ButtonGroup/ButtonGroup.styles.js.map +1 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.d.ts +1 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.js.map +1 -1
- package/dist/components/button-group/ButtonGroupSeparator/ButtonGroupSeparator.styles.js.map +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.d.ts +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.js.map +1 -1
- package/dist/components/button-group/ButtonGroupText/ButtonGroupText.styles.js.map +1 -1
- package/dist/components/calendar/Calendar/Calendar.js.map +1 -1
- package/dist/components/calendar/Calendar/Calendar.utils.js.map +1 -1
- package/dist/components/card/Card/Card.d.ts +1 -1
- package/dist/components/card/Card/Card.js.map +1 -1
- package/dist/components/card/Card/Card.styles.js.map +1 -1
- package/dist/components/card/CardAction/CardAction.d.ts +1 -1
- package/dist/components/card/CardAction/CardAction.js.map +1 -1
- package/dist/components/card/CardAction/CardAction.styles.js.map +1 -1
- package/dist/components/card/CardContent/CardContent.d.ts +1 -1
- package/dist/components/card/CardContent/CardContent.js.map +1 -1
- package/dist/components/card/CardContent/CardContent.styles.js.map +1 -1
- package/dist/components/card/CardDescription/CardDescription.d.ts +1 -1
- package/dist/components/card/CardDescription/CardDescription.js.map +1 -1
- package/dist/components/card/CardDescription/CardDescription.styles.js.map +1 -1
- package/dist/components/card/CardFooter/CardFooter.d.ts +1 -1
- package/dist/components/card/CardFooter/CardFooter.js.map +1 -1
- package/dist/components/card/CardFooter/CardFooter.styles.js.map +1 -1
- package/dist/components/card/CardHeader/CardHeader.d.ts +1 -1
- package/dist/components/card/CardHeader/CardHeader.js.map +1 -1
- package/dist/components/card/CardHeader/CardHeader.styles.js.map +1 -1
- package/dist/components/card/CardTitle/CardTitle.d.ts +1 -1
- package/dist/components/card/CardTitle/CardTitle.js.map +1 -1
- package/dist/components/card/CardTitle/CardTitle.styles.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.context.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.d.ts +1 -1
- package/dist/components/carousel/Carousel/Carousel.js.map +1 -1
- package/dist/components/carousel/Carousel/Carousel.styles.js.map +1 -1
- package/dist/components/carousel/Carousel/useAutoPlay.js.map +1 -1
- package/dist/components/carousel/Carousel/useCarousel.js.map +1 -1
- package/dist/components/carousel/Carousel/useKeyboardNavigation.js.map +1 -1
- package/dist/components/carousel/CarouselContent/CarouselContent.d.ts +1 -1
- package/dist/components/carousel/CarouselContent/CarouselContent.js.map +1 -1
- package/dist/components/carousel/CarouselContent/useItemSizeMeasure.js.map +1 -1
- package/dist/components/carousel/CarouselDots/CarouselDots.d.ts +1 -1
- package/dist/components/carousel/CarouselDots/CarouselDots.js.map +1 -1
- package/dist/components/carousel/CarouselItem/CarouselItem.d.ts +1 -1
- package/dist/components/carousel/CarouselItem/CarouselItem.js.map +1 -1
- package/dist/components/carousel/CarouselNext/CarouselNext.d.ts +1 -1
- package/dist/components/carousel/CarouselNext/CarouselNext.js.map +1 -1
- package/dist/components/carousel/CarouselPrevious/CarouselPrevious.d.ts +1 -1
- package/dist/components/carousel/CarouselPrevious/CarouselPrevious.js.map +1 -1
- package/dist/components/checkbox/Checkbox/Checkbox.d.ts +1 -1
- package/dist/components/checkbox/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox/Checkbox/Checkbox.styles.js.map +1 -1
- package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.d.ts +1 -1
- package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.js.map +1 -1
- package/dist/components/checkbox/CheckboxIndicator/CheckboxIndicator.styles.js.map +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.context.js.map +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.d.ts +1 -1
- package/dist/components/collapsible/Collapsible/Collapsible.js.map +1 -1
- package/dist/components/collapsible/CollapsibleContent/CollapsibleContent.d.ts +1 -1
- package/dist/components/collapsible/CollapsibleContent/CollapsibleContent.js.map +1 -1
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.d.ts +1 -1
- package/dist/components/collapsible/CollapsibleTrigger/CollapsibleTrigger.js.map +1 -1
- package/dist/components/combobox/Combobox/Combobox.context.js.map +1 -1
- package/dist/components/combobox/Combobox/Combobox.js +50 -47
- package/dist/components/combobox/Combobox/Combobox.js.map +1 -1
- package/dist/components/combobox/Combobox/Combobox.types.d.ts +5 -0
- package/dist/components/combobox/ComboboxChip/ComboboxChip.js.map +1 -1
- package/dist/components/combobox/ComboboxChips/ComboboxChips.js.map +1 -1
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.d.ts +1 -1
- package/dist/components/combobox/ComboboxChipsInput/ComboboxChipsInput.js.map +1 -1
- package/dist/components/combobox/ComboboxClear/ComboboxClear.d.ts +1 -1
- package/dist/components/combobox/ComboboxClear/ComboboxClear.js.map +1 -1
- package/dist/components/combobox/ComboboxCollection/ComboboxCollection.js.map +1 -1
- package/dist/components/combobox/ComboboxContent/ComboboxContent.d.ts +1 -1
- package/dist/components/combobox/ComboboxContent/ComboboxContent.js.map +1 -1
- package/dist/components/combobox/ComboboxContent/ComboboxContent.utils.js.map +1 -1
- package/dist/components/combobox/ComboboxContent/useComboboxContent.js.map +1 -1
- package/dist/components/combobox/ComboboxEmpty/ComboboxEmpty.js.map +1 -1
- package/dist/components/combobox/ComboboxGroup/ComboboxGroup.js.map +1 -1
- package/dist/components/combobox/ComboboxInput/ComboboxInput.js.map +1 -1
- package/dist/components/combobox/ComboboxItem/ComboboxItem.js.map +1 -1
- package/dist/components/combobox/ComboboxLabel/ComboboxLabel.js.map +1 -1
- package/dist/components/combobox/ComboboxList/ComboboxList.js +13 -12
- package/dist/components/combobox/ComboboxList/ComboboxList.js.map +1 -1
- package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.d.ts +1 -1
- package/dist/components/combobox/ComboboxSeparator/ComboboxSeparator.js.map +1 -1
- package/dist/components/combobox/ComboboxTrigger/ComboboxTrigger.js.map +1 -1
- package/dist/components/combobox/ComboboxValue/ComboboxValue.js.map +1 -1
- package/dist/components/combobox/useComboboxAnchor/useComboboxAnchor.js.map +1 -1
- package/dist/components/context-menu/ContextMenu/ContextMenu.context.d.ts +3 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.context.js +12 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.context.js.map +1 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.d.ts +23 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.js +73 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/components/context-menu/ContextMenu/ContextMenu.types.d.ts +28 -0
- package/dist/components/context-menu/ContextMenu/index.d.ts +3 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/ContextMenuCheckboxItem.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/ContextMenuCheckboxItem.js +78 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/ContextMenuCheckboxItem.js.map +1 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/ContextMenuCheckboxItem.types.d.ts +20 -0
- package/dist/components/context-menu/ContextMenuCheckboxItem/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuContent.d.ts +9 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuContent.js +64 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuContent.js.map +1 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuContent.types.d.ts +26 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuPopupSurface.d.ts +31 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuPopupSurface.js +102 -0
- package/dist/components/context-menu/ContextMenuContent/ContextMenuPopupSurface.js.map +1 -0
- package/dist/components/context-menu/ContextMenuContent/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.d.ts +52 -0
- package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js +153 -0
- package/dist/components/context-menu/ContextMenuContent/useContextMenuContent.js.map +1 -0
- package/dist/components/context-menu/ContextMenuGroup/ContextMenuGroup.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuGroup/ContextMenuGroup.js +29 -0
- package/dist/components/context-menu/ContextMenuGroup/ContextMenuGroup.js.map +1 -0
- package/dist/components/context-menu/ContextMenuGroup/ContextMenuGroup.types.d.ts +9 -0
- package/dist/components/context-menu/ContextMenuGroup/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuItem/ContextMenuItem.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuItem/ContextMenuItem.js +59 -0
- package/dist/components/context-menu/ContextMenuItem/ContextMenuItem.js.map +1 -0
- package/dist/components/context-menu/ContextMenuItem/ContextMenuItem.types.d.ts +22 -0
- package/dist/components/context-menu/ContextMenuItem/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuLabel/ContextMenuLabel.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuLabel/ContextMenuLabel.js +31 -0
- package/dist/components/context-menu/ContextMenuLabel/ContextMenuLabel.js.map +1 -0
- package/dist/components/context-menu/ContextMenuLabel/ContextMenuLabel.types.d.ts +8 -0
- package/dist/components/context-menu/ContextMenuLabel/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuPortal/ContextMenuPortal.d.ts +16 -0
- package/dist/components/context-menu/ContextMenuPortal/ContextMenuPortal.js +18 -0
- package/dist/components/context-menu/ContextMenuPortal/ContextMenuPortal.js.map +1 -0
- package/dist/components/context-menu/ContextMenuPortal/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/ContextMenuRadioGroup.d.ts +12 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/ContextMenuRadioGroup.js +48 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/ContextMenuRadioGroup.js.map +1 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/ContextMenuRadioGroup.types.d.ts +14 -0
- package/dist/components/context-menu/ContextMenuRadioGroup/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuRadioItem/ContextMenuRadioItem.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuRadioItem/ContextMenuRadioItem.js +74 -0
- package/dist/components/context-menu/ContextMenuRadioItem/ContextMenuRadioItem.js.map +1 -0
- package/dist/components/context-menu/ContextMenuRadioItem/ContextMenuRadioItem.types.d.ts +16 -0
- package/dist/components/context-menu/ContextMenuRadioItem/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuSeparator/ContextMenuSeparator.d.ts +9 -0
- package/dist/components/context-menu/ContextMenuSeparator/ContextMenuSeparator.js +25 -0
- package/dist/components/context-menu/ContextMenuSeparator/ContextMenuSeparator.js.map +1 -0
- package/dist/components/context-menu/ContextMenuSeparator/ContextMenuSeparator.types.d.ts +8 -0
- package/dist/components/context-menu/ContextMenuSeparator/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuShortcut/ContextMenuShortcut.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuShortcut/ContextMenuShortcut.js +19 -0
- package/dist/components/context-menu/ContextMenuShortcut/ContextMenuShortcut.js.map +1 -0
- package/dist/components/context-menu/ContextMenuShortcut/ContextMenuShortcut.types.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuShortcut/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.d.ts +7 -0
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js +55 -0
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.js.map +1 -0
- package/dist/components/context-menu/ContextMenuSub/ContextMenuSub.types.d.ts +18 -0
- package/dist/components/context-menu/ContextMenuSub/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuSubContent/ContextMenuSubContent.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuSubContent/ContextMenuSubContent.js +83 -0
- package/dist/components/context-menu/ContextMenuSubContent/ContextMenuSubContent.js.map +1 -0
- package/dist/components/context-menu/ContextMenuSubContent/ContextMenuSubContent.types.d.ts +17 -0
- package/dist/components/context-menu/ContextMenuSubContent/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/ContextMenuSubTrigger.d.ts +6 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/ContextMenuSubTrigger.js +96 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/ContextMenuSubTrigger.js.map +1 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/ContextMenuSubTrigger.types.d.ts +21 -0
- package/dist/components/context-menu/ContextMenuSubTrigger/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.d.ts +13 -0
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js +34 -0
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.js.map +1 -0
- package/dist/components/context-menu/ContextMenuTrigger/ContextMenuTrigger.types.d.ts +15 -0
- package/dist/components/context-menu/ContextMenuTrigger/index.d.ts +4 -0
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.d.ts +23 -0
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js +47 -0
- package/dist/components/context-menu/ContextMenuTrigger/useContextMenuTrigger.js.map +1 -0
- package/dist/components/context-menu/context-menu.context.d.ts +14 -0
- package/dist/components/context-menu/context-menu.context.js +25 -0
- package/dist/components/context-menu/context-menu.context.js.map +1 -0
- package/dist/components/context-menu/context-menu.entry.d.ts +28 -0
- package/dist/components/context-menu/context-menu.entry.js +31 -0
- package/dist/components/context-menu/context-menu.entry.js.map +1 -0
- package/dist/components/context-menu/context-menu.styles.d.ts +18 -0
- package/dist/components/context-menu/context-menu.styles.js +6 -0
- package/dist/components/context-menu/context-menu.styles.js.map +1 -0
- package/dist/components/context-menu/context-menu.types.d.ts +151 -0
- package/dist/components/context-menu/context-menu.utils.d.ts +28 -0
- package/dist/components/context-menu/context-menu.utils.js +51 -0
- package/dist/components/context-menu/context-menu.utils.js.map +1 -0
- package/dist/components/context-menu/index.d.ts +31 -0
- package/dist/components/context-menu/index.js +16 -0
- package/dist/components/data-table/createRowModel.d.ts +20 -0
- package/dist/components/data-table/createRowModel.js +46 -0
- package/dist/components/data-table/createRowModel.js.map +1 -0
- package/dist/components/data-table/createTable.d.ts +16 -0
- package/dist/components/data-table/createTable.js +94 -0
- package/dist/components/data-table/createTable.js.map +1 -0
- package/dist/components/data-table/createTableColumns.d.ts +19 -0
- package/dist/components/data-table/createTableColumns.js +68 -0
- package/dist/components/data-table/createTableColumns.js.map +1 -0
- package/dist/components/data-table/createTableHeaders.d.ts +10 -0
- package/dist/components/data-table/createTableHeaders.js +26 -0
- package/dist/components/data-table/createTableHeaders.js.map +1 -0
- package/dist/components/data-table/createTableRows.d.ts +16 -0
- package/dist/components/data-table/createTableRows.js +57 -0
- package/dist/components/data-table/createTableRows.js.map +1 -0
- package/dist/components/data-table/createTableSelection.d.ts +12 -0
- package/dist/components/data-table/createTableSelection.js +23 -0
- package/dist/components/data-table/createTableSelection.js.map +1 -0
- package/dist/components/data-table/createTableState.d.ts +16 -0
- package/dist/components/data-table/createTableState.js +34 -0
- package/dist/components/data-table/createTableState.js.map +1 -0
- package/dist/components/data-table/data-table.types.d.ts +123 -0
- package/dist/components/data-table/data-table.utils.d.ts +4 -0
- package/dist/components/data-table/data-table.utils.js +11 -0
- package/dist/components/data-table/data-table.utils.js.map +1 -0
- package/dist/components/data-table/index.d.ts +2 -0
- package/dist/components/data-table/index.js +2 -0
- package/dist/components/date-picker/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.context.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.d.ts +1 -1
- package/dist/components/dialog/Dialog/Dialog.js +18 -16
- package/dist/components/dialog/Dialog/Dialog.js.map +1 -1
- package/dist/components/dialog/Dialog/Dialog.types.d.ts +5 -0
- package/dist/components/dialog/DialogClose/DialogClose.d.ts +1 -1
- package/dist/components/dialog/DialogClose/DialogClose.js +5 -5
- package/dist/components/dialog/DialogClose/DialogClose.js.map +1 -1
- package/dist/components/dialog/DialogClose/DialogClose.styles.js.map +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.context.js.map +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.d.ts +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.js +23 -55
- package/dist/components/dialog/DialogContent/DialogContent.js.map +1 -1
- package/dist/components/dialog/DialogContent/DialogContent.styles.js.map +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.d.ts +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.js.map +1 -1
- package/dist/components/dialog/DialogDescription/DialogDescription.styles.js.map +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.d.ts +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.js.map +1 -1
- package/dist/components/dialog/DialogFooter/DialogFooter.styles.js.map +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.d.ts +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.js.map +1 -1
- package/dist/components/dialog/DialogHeader/DialogHeader.styles.js.map +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.d.ts +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.js +18 -10
- package/dist/components/dialog/DialogOverlay/DialogOverlay.js.map +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.styles.js.map +1 -1
- package/dist/components/dialog/DialogOverlay/DialogOverlay.types.d.ts +4 -1
- package/dist/components/dialog/DialogPortal/DialogPortal.d.ts +1 -1
- package/dist/components/dialog/DialogPortal/DialogPortal.js.map +1 -1
- package/dist/components/dialog/DialogSurface/DialogSurface.d.ts +2 -0
- package/dist/components/dialog/DialogSurface/DialogSurface.js +77 -0
- package/dist/components/dialog/DialogSurface/DialogSurface.js.map +1 -0
- package/dist/components/dialog/DialogSurface/DialogSurface.types.d.ts +15 -0
- package/dist/components/dialog/DialogSurface/index.d.ts +2 -0
- package/dist/components/dialog/DialogTitle/DialogTitle.d.ts +1 -1
- package/dist/components/dialog/DialogTitle/DialogTitle.js.map +1 -1
- package/dist/components/dialog/DialogTitle/DialogTitle.styles.js.map +1 -1
- package/dist/components/dialog/DialogTrigger/DialogTrigger.d.ts +1 -1
- package/dist/components/dialog/DialogTrigger/DialogTrigger.js.map +1 -1
- package/dist/components/dialog/DialogTrigger/useDialogTrigger.js.map +1 -1
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +9 -8
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.context.d.ts +3 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.context.js +12 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.context.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.d.ts +9 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.js +82 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenu/DropdownMenu.types.d.ts +26 -0
- package/dist/components/dropdown-menu/DropdownMenu/index.d.ts +3 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/DropdownMenuCheckboxItem.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/DropdownMenuCheckboxItem.js +78 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/DropdownMenuCheckboxItem.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/DropdownMenuCheckboxItem.types.d.ts +14 -0
- package/dist/components/dropdown-menu/DropdownMenuCheckboxItem/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/DropdownMenuContent.d.ts +6 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/DropdownMenuContent.js +64 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/DropdownMenuContent.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/DropdownMenuContent.types.d.ts +13 -0
- package/dist/components/dropdown-menu/DropdownMenuContent/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/DropdownMenuGroup.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/DropdownMenuGroup.js +29 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/DropdownMenuGroup.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/DropdownMenuGroup.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuGroup/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/DropdownMenuItem.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/DropdownMenuItem.js +59 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/DropdownMenuItem.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/DropdownMenuItem.types.d.ts +14 -0
- package/dist/components/dropdown-menu/DropdownMenuItem/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/DropdownMenuLabel.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/DropdownMenuLabel.js +31 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/DropdownMenuLabel.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/DropdownMenuLabel.types.d.ts +4 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/DropdownMenuPortal.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/DropdownMenuPortal.js +10 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/DropdownMenuPortal.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/DropdownMenuPortal.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuPortal/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.js +48 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/DropdownMenuRadioGroup.types.d.ts +10 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioGroup/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/DropdownMenuRadioItem.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/DropdownMenuRadioItem.js +74 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/DropdownMenuRadioItem.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/DropdownMenuRadioItem.types.d.ts +11 -0
- package/dist/components/dropdown-menu/DropdownMenuRadioItem/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/DropdownMenuSeparator.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/DropdownMenuSeparator.js +25 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/DropdownMenuSeparator.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/DropdownMenuSeparator.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/DropdownMenuShortcut.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/DropdownMenuShortcut.js +19 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/DropdownMenuShortcut.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/DropdownMenuShortcut.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuShortcut/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/DropdownMenuSub.d.ts +4 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/DropdownMenuSub.js +10 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/DropdownMenuSub.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/DropdownMenuSub.types.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSub/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/DropdownMenuSubContent.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/DropdownMenuSubContent.js +82 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/DropdownMenuSubContent.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/DropdownMenuSubContent.types.d.ts +15 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/DropdownMenuSubTrigger.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/DropdownMenuSubTrigger.js +96 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/DropdownMenuSubTrigger.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/DropdownMenuSubTrigger.types.d.ts +12 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.d.ts +5 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js +42 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.js.map +1 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/DropdownMenuTrigger.types.d.ts +4 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.d.ts +4 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js +30 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger/useDropdownMenuTrigger.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.styles.d.ts +11 -0
- package/dist/components/dropdown-menu/dropdown-menu.styles.js +6 -0
- package/dist/components/dropdown-menu/dropdown-menu.styles.js.map +1 -0
- package/dist/components/dropdown-menu/index.d.ts +30 -0
- package/dist/components/dropdown-menu/index.js +16 -0
- package/dist/components/empty/Empty/Empty.d.ts +1 -1
- package/dist/components/empty/Empty/Empty.js.map +1 -1
- package/dist/components/empty/EmptyContent/EmptyContent.d.ts +1 -1
- package/dist/components/empty/EmptyContent/EmptyContent.js.map +1 -1
- package/dist/components/empty/EmptyDescription/EmptyDescription.d.ts +1 -1
- package/dist/components/empty/EmptyDescription/EmptyDescription.js.map +1 -1
- package/dist/components/empty/EmptyHeader/EmptyHeader.d.ts +1 -1
- package/dist/components/empty/EmptyHeader/EmptyHeader.js.map +1 -1
- package/dist/components/empty/EmptyMedia/EmptyMedia.d.ts +1 -1
- package/dist/components/empty/EmptyMedia/EmptyMedia.js.map +1 -1
- package/dist/components/empty/EmptyMedia/EmptyMedia.styles.js.map +1 -1
- package/dist/components/empty/EmptyTitle/EmptyTitle.d.ts +1 -1
- package/dist/components/empty/EmptyTitle/EmptyTitle.js.map +1 -1
- package/dist/components/field/Field/Field.d.ts +1 -1
- package/dist/components/field/Field/Field.js.map +1 -1
- package/dist/components/field/Field/Field.styles.js.map +1 -1
- package/dist/components/field/FieldContent/FieldContent.d.ts +1 -1
- package/dist/components/field/FieldContent/FieldContent.js.map +1 -1
- package/dist/components/field/FieldDescription/FieldDescription.d.ts +1 -1
- package/dist/components/field/FieldDescription/FieldDescription.js.map +1 -1
- package/dist/components/field/FieldError/FieldError.d.ts +1 -1
- package/dist/components/field/FieldError/FieldError.js.map +1 -1
- package/dist/components/field/FieldGroup/FieldGroup.d.ts +1 -1
- package/dist/components/field/FieldGroup/FieldGroup.js.map +1 -1
- package/dist/components/field/FieldLabel/FieldLabel.d.ts +1 -1
- package/dist/components/field/FieldLabel/FieldLabel.js.map +1 -1
- package/dist/components/field/FieldLegend/FieldLegend.d.ts +1 -1
- package/dist/components/field/FieldLegend/FieldLegend.js.map +1 -1
- package/dist/components/field/FieldSeparator/FieldSeparator.d.ts +1 -1
- package/dist/components/field/FieldSeparator/FieldSeparator.js.map +1 -1
- package/dist/components/field/FieldSet/FieldSet.d.ts +1 -1
- package/dist/components/field/FieldSet/FieldSet.js.map +1 -1
- package/dist/components/field/FieldTitle/FieldTitle.d.ts +1 -1
- package/dist/components/field/FieldTitle/FieldTitle.js.map +1 -1
- package/dist/components/image/Image.config.js.map +1 -1
- package/dist/components/image/Image.js.map +1 -1
- package/dist/components/image/Image.utils.js +2 -2
- package/dist/components/image/Image.utils.js.map +1 -1
- package/dist/components/image/ImageElement.js.map +1 -1
- package/dist/components/image/ImagePreload.js.map +1 -1
- package/dist/components/input/Input.js.map +1 -1
- package/dist/components/input-group/InputGroup/InputGroup.d.ts +1 -1
- package/dist/components/input-group/InputGroup/InputGroup.js.map +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.d.ts +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.js.map +1 -1
- package/dist/components/input-group/InputGroupAddon/InputGroupAddon.styles.js.map +1 -1
- package/dist/components/input-group/InputGroupButton/InputGroupButton.d.ts +1 -1
- package/dist/components/input-group/InputGroupButton/InputGroupButton.js.map +1 -1
- package/dist/components/input-group/InputGroupButton/InputGroupButton.styles.js.map +1 -1
- package/dist/components/input-group/InputGroupInput/InputGroupInput.d.ts +1 -1
- package/dist/components/input-group/InputGroupInput/InputGroupInput.js.map +1 -1
- package/dist/components/input-group/InputGroupText/InputGroupText.d.ts +1 -1
- package/dist/components/input-group/InputGroupText/InputGroupText.js.map +1 -1
- package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.d.ts +1 -1
- package/dist/components/input-group/InputGroupTextarea/InputGroupTextarea.js.map +1 -1
- package/dist/components/item/Item/Item.d.ts +1 -1
- package/dist/components/item/Item/Item.js.map +1 -1
- package/dist/components/item/Item/Item.styles.js.map +1 -1
- package/dist/components/item/ItemActions/ItemActions.d.ts +1 -1
- package/dist/components/item/ItemActions/ItemActions.js.map +1 -1
- package/dist/components/item/ItemContent/ItemContent.d.ts +1 -1
- package/dist/components/item/ItemContent/ItemContent.js.map +1 -1
- package/dist/components/item/ItemDescription/ItemDescription.d.ts +1 -1
- package/dist/components/item/ItemDescription/ItemDescription.js.map +1 -1
- package/dist/components/item/ItemFooter/ItemFooter.d.ts +1 -1
- package/dist/components/item/ItemFooter/ItemFooter.js.map +1 -1
- package/dist/components/item/ItemGroup/ItemGroup.d.ts +1 -1
- package/dist/components/item/ItemGroup/ItemGroup.js.map +1 -1
- package/dist/components/item/ItemHeader/ItemHeader.d.ts +1 -1
- package/dist/components/item/ItemHeader/ItemHeader.js.map +1 -1
- package/dist/components/item/ItemMedia/ItemMedia.d.ts +1 -1
- package/dist/components/item/ItemMedia/ItemMedia.js.map +1 -1
- package/dist/components/item/ItemMedia/ItemMedia.styles.js.map +1 -1
- package/dist/components/item/ItemSeparator/ItemSeparator.d.ts +1 -1
- package/dist/components/item/ItemSeparator/ItemSeparator.js.map +1 -1
- package/dist/components/item/ItemTitle/ItemTitle.d.ts +1 -1
- package/dist/components/item/ItemTitle/ItemTitle.js.map +1 -1
- package/dist/components/kbd/Kbd.d.ts +2 -2
- package/dist/components/kbd/Kbd.js.map +1 -1
- package/dist/components/label/Label.d.ts +1 -1
- package/dist/components/label/Label.js.map +1 -1
- package/dist/components/number-input/NumberInput/NumberInput.d.ts +19 -0
- package/dist/components/number-input/NumberInput/NumberInput.js +153 -0
- package/dist/components/number-input/NumberInput/NumberInput.js.map +1 -0
- package/dist/components/number-input/NumberInput/NumberInput.types.d.ts +41 -0
- package/dist/components/number-input/NumberInput/NumberInput.utils.d.ts +10 -0
- package/dist/components/number-input/NumberInput/NumberInput.utils.js +24 -0
- package/dist/components/number-input/NumberInput/NumberInput.utils.js.map +1 -0
- package/dist/components/number-input/NumberInput/create-change-event-details.d.ts +8 -0
- package/dist/components/number-input/NumberInput/create-change-event-details.js +25 -0
- package/dist/components/number-input/NumberInput/create-change-event-details.js.map +1 -0
- package/dist/components/number-input/NumberInput/index.d.ts +2 -0
- package/dist/components/number-input/index.d.ts +2 -0
- package/dist/components/number-input/index.js +2 -0
- package/dist/components/pagination/Pagination/Pagination.d.ts +1 -1
- package/dist/components/pagination/Pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/PaginationContent/PaginationContent.d.ts +1 -1
- package/dist/components/pagination/PaginationContent/PaginationContent.js.map +1 -1
- package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.d.ts +1 -1
- package/dist/components/pagination/PaginationEllipsis/PaginationEllipsis.js.map +1 -1
- package/dist/components/pagination/PaginationItem/PaginationItem.d.ts +1 -1
- package/dist/components/pagination/PaginationItem/PaginationItem.js.map +1 -1
- package/dist/components/pagination/PaginationLink/PaginationLink.d.ts +1 -1
- package/dist/components/pagination/PaginationLink/PaginationLink.js +1 -1
- package/dist/components/pagination/PaginationLink/PaginationLink.js.map +1 -1
- package/dist/components/pagination/PaginationNext/PaginationNext.d.ts +1 -1
- package/dist/components/pagination/PaginationNext/PaginationNext.js.map +1 -1
- package/dist/components/pagination/PaginationPrevious/PaginationPrevious.d.ts +1 -1
- package/dist/components/pagination/PaginationPrevious/PaginationPrevious.js.map +1 -1
- package/dist/components/popover/Popover/Popover.context.js.map +1 -1
- package/dist/components/popover/Popover/Popover.js +25 -22
- package/dist/components/popover/Popover/Popover.js.map +1 -1
- package/dist/components/popover/Popover/Popover.types.d.ts +5 -0
- package/dist/components/popover/PopoverContent/PopoverContent.d.ts +1 -1
- package/dist/components/popover/PopoverContent/PopoverContent.js.map +1 -1
- package/dist/components/popover/PopoverContent/PopoverContent.utils.js.map +1 -1
- package/dist/components/popover/PopoverContent/usePopoverContent.js.map +1 -1
- package/dist/components/popover/PopoverDescription/PopoverDescription.d.ts +1 -1
- package/dist/components/popover/PopoverDescription/PopoverDescription.js.map +1 -1
- package/dist/components/popover/PopoverHeader/PopoverHeader.d.ts +1 -1
- package/dist/components/popover/PopoverHeader/PopoverHeader.js.map +1 -1
- package/dist/components/popover/PopoverTitle/PopoverTitle.d.ts +1 -1
- package/dist/components/popover/PopoverTitle/PopoverTitle.js.map +1 -1
- package/dist/components/popover/PopoverTrigger/PopoverTrigger.d.ts +1 -1
- package/dist/components/popover/PopoverTrigger/PopoverTrigger.js.map +1 -1
- package/dist/components/popover/PopoverTrigger/usePopoverTrigger.js.map +1 -1
- package/dist/components/progress/Progress/Progress.context.js.map +1 -1
- package/dist/components/progress/Progress/Progress.d.ts +1 -1
- package/dist/components/progress/Progress/Progress.js.map +1 -1
- package/dist/components/progress/Progress/Progress.styles.js.map +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.d.ts +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.js.map +1 -1
- package/dist/components/progress/ProgressIndicator/ProgressIndicator.styles.js.map +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.d.ts +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.js.map +1 -1
- package/dist/components/progress/ProgressLabel/ProgressLabel.styles.js.map +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.d.ts +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.js.map +1 -1
- package/dist/components/progress/ProgressTrack/ProgressTrack.styles.js.map +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.d.ts +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.js.map +1 -1
- package/dist/components/progress/ProgressValue/ProgressValue.styles.js.map +1 -1
- package/dist/components/radio-group/RadioGroup/RadioGroup.context.js.map +1 -1
- package/dist/components/radio-group/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.d.ts +1 -1
- package/dist/components/radio-group/RadioGroupItem/RadioGroupItem.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.context.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.d.ts +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/components/scroll-area/ScrollArea/ScrollArea.utils.js.map +1 -1
- package/dist/components/scroll-area/ScrollBar/ScrollBar.d.ts +1 -1
- package/dist/components/scroll-area/ScrollBar/ScrollBar.js.map +1 -1
- package/dist/components/scroll-arrows/ScrollArrowButton.d.ts +9 -0
- package/dist/components/scroll-arrows/ScrollArrowButton.js +51 -0
- package/dist/components/scroll-arrows/ScrollArrowButton.js.map +1 -0
- package/dist/components/scroll-arrows/ScrollArrows.d.ts +8 -0
- package/dist/components/scroll-arrows/ScrollArrows.js +35 -0
- package/dist/components/scroll-arrows/ScrollArrows.js.map +1 -0
- package/dist/components/scroll-arrows/ScrollArrows.types.d.ts +17 -0
- package/dist/components/scroll-arrows/index.d.ts +2 -0
- package/dist/components/scroll-arrows/index.js +2 -0
- package/dist/components/select/Select/Select.context.js.map +1 -1
- package/dist/components/select/Select/Select.js +36 -33
- package/dist/components/select/Select/Select.js.map +1 -1
- package/dist/components/select/Select/Select.types.d.ts +5 -0
- package/dist/components/select/SelectContent/SelectContent.d.ts +1 -1
- package/dist/components/select/SelectContent/SelectContent.js +45 -40
- package/dist/components/select/SelectContent/SelectContent.js.map +1 -1
- package/dist/components/select/SelectContent/SelectContent.utils.js.map +1 -1
- package/dist/components/select/SelectContent/useSelectContent.js.map +1 -1
- package/dist/components/select/SelectGroup/SelectGroup.d.ts +1 -1
- package/dist/components/select/SelectGroup/SelectGroup.js.map +1 -1
- package/dist/components/select/SelectItem/SelectItem.d.ts +1 -1
- package/dist/components/select/SelectItem/SelectItem.js.map +1 -1
- package/dist/components/select/SelectItem/useSelectItem.js.map +1 -1
- package/dist/components/select/SelectLabel/SelectLabel.d.ts +1 -1
- package/dist/components/select/SelectLabel/SelectLabel.js.map +1 -1
- package/dist/components/select/SelectSeparator/SelectSeparator.d.ts +1 -1
- package/dist/components/select/SelectSeparator/SelectSeparator.js.map +1 -1
- package/dist/components/select/SelectTrigger/SelectTrigger.d.ts +1 -1
- package/dist/components/select/SelectTrigger/SelectTrigger.js.map +1 -1
- package/dist/components/select/SelectTrigger/useSelectTrigger.js.map +1 -1
- package/dist/components/select/SelectValue/SelectValue.d.ts +1 -1
- package/dist/components/select/SelectValue/SelectValue.js.map +1 -1
- package/dist/components/separator/Separator.d.ts +1 -1
- package/dist/components/separator/Separator.js.map +1 -1
- package/dist/components/separator/Separator.styles.js.map +1 -1
- package/dist/components/sidebar/Sidebar/Sidebar.d.ts +1 -1
- package/dist/components/sidebar/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/sidebar/SidebarContent/SidebarContent.d.ts +1 -1
- package/dist/components/sidebar/SidebarContent/SidebarContent.js.map +1 -1
- package/dist/components/sidebar/SidebarFooter/SidebarFooter.d.ts +1 -1
- package/dist/components/sidebar/SidebarFooter/SidebarFooter.js.map +1 -1
- package/dist/components/sidebar/SidebarGroup/SidebarGroup.d.ts +1 -1
- package/dist/components/sidebar/SidebarGroup/SidebarGroup.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.d.ts +1 -1
- package/dist/components/sidebar/SidebarGroupAction/SidebarGroupAction.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.d.ts +1 -1
- package/dist/components/sidebar/SidebarGroupContent/SidebarGroupContent.js.map +1 -1
- package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.d.ts +1 -1
- package/dist/components/sidebar/SidebarGroupLabel/SidebarGroupLabel.js.map +1 -1
- package/dist/components/sidebar/SidebarHeader/SidebarHeader.d.ts +1 -1
- package/dist/components/sidebar/SidebarHeader/SidebarHeader.js.map +1 -1
- package/dist/components/sidebar/SidebarInput/SidebarInput.d.ts +1 -1
- package/dist/components/sidebar/SidebarInput/SidebarInput.js.map +1 -1
- package/dist/components/sidebar/SidebarInset/SidebarInset.d.ts +1 -1
- package/dist/components/sidebar/SidebarInset/SidebarInset.js.map +1 -1
- package/dist/components/sidebar/SidebarMenu/SidebarMenu.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenu/SidebarMenu.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuBadge/SidebarMenuBadge.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuButton/SidebarMenuButton.styles.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuItem/SidebarMenuItem.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuSkeleton/SidebarMenuSkeleton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuSub/SidebarMenuSub.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuSubButton/SidebarMenuSubButton.js.map +1 -1
- package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.d.ts +1 -1
- package/dist/components/sidebar/SidebarMenuSubItem/SidebarMenuSubItem.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.consts.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.context.js.map +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.d.ts +1 -1
- package/dist/components/sidebar/SidebarProvider/SidebarProvider.js.map +1 -1
- package/dist/components/sidebar/SidebarRail/SidebarRail.d.ts +1 -1
- package/dist/components/sidebar/SidebarRail/SidebarRail.js.map +1 -1
- package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.d.ts +1 -1
- package/dist/components/sidebar/SidebarSeparator/SidebarSeparator.js.map +1 -1
- package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.d.ts +1 -1
- package/dist/components/sidebar/SidebarTrigger/SidebarTrigger.js.map +1 -1
- package/dist/components/skeleton/Skeleton.d.ts +1 -1
- package/dist/components/skeleton/Skeleton.js.map +1 -1
- package/dist/components/slider/Slider/Slider.context.js.map +1 -1
- package/dist/components/slider/Slider/Slider.d.ts +1 -1
- package/dist/components/slider/Slider/Slider.js.map +1 -1
- package/dist/components/slider/Slider/Slider.styles.js.map +1 -1
- package/dist/components/slider/Slider/useSlider.js.map +1 -1
- package/dist/components/slider/SliderControl/SliderControl.d.ts +1 -1
- package/dist/components/slider/SliderControl/SliderControl.js.map +1 -1
- package/dist/components/slider/SliderControl/SliderControl.styles.js.map +1 -1
- package/dist/components/slider/SliderControl/useSliderControl.js.map +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.d.ts +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.js.map +1 -1
- package/dist/components/slider/SliderIndicator/SliderIndicator.styles.js.map +1 -1
- package/dist/components/slider/SliderIndicator/useSliderIndicator.js.map +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.d.ts +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/components/slider/SliderThumb/SliderThumb.styles.js.map +1 -1
- package/dist/components/slider/SliderThumb/useSliderThumb.js.map +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.d.ts +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.js.map +1 -1
- package/dist/components/slider/SliderTrack/SliderTrack.styles.js.map +1 -1
- package/dist/components/spinner/Spinner.d.ts +1 -1
- package/dist/components/spinner/Spinner.js.map +1 -1
- package/dist/components/spinner/Spinner.styles.js.map +1 -1
- package/dist/components/switch/Switch.d.ts +1 -1
- package/dist/components/switch/Switch.js.map +1 -1
- package/dist/components/switch/Switch.styles.js.map +1 -1
- package/dist/components/table/Table/Table.d.ts +3 -0
- package/dist/components/table/Table/Table.js +24 -0
- package/dist/components/table/Table/Table.js.map +1 -0
- package/dist/components/table/Table/Table.types.d.ts +2 -0
- package/dist/components/table/Table/index.d.ts +2 -0
- package/dist/components/table/TableBody/TableBody.d.ts +2 -0
- package/dist/components/table/TableBody/TableBody.js +24 -0
- package/dist/components/table/TableBody/TableBody.js.map +1 -0
- package/dist/components/table/TableBody/TableBody.types.d.ts +2 -0
- package/dist/components/table/TableBody/index.d.ts +2 -0
- package/dist/components/table/TableCaption/TableCaption.d.ts +2 -0
- package/dist/components/table/TableCaption/TableCaption.js +24 -0
- package/dist/components/table/TableCaption/TableCaption.js.map +1 -0
- package/dist/components/table/TableCaption/TableCaption.types.d.ts +2 -0
- package/dist/components/table/TableCaption/index.d.ts +2 -0
- package/dist/components/table/TableCell/TableCell.d.ts +2 -0
- package/dist/components/table/TableCell/TableCell.js +24 -0
- package/dist/components/table/TableCell/TableCell.js.map +1 -0
- package/dist/components/table/TableCell/TableCell.types.d.ts +2 -0
- package/dist/components/table/TableCell/index.d.ts +2 -0
- package/dist/components/table/TableFooter/TableFooter.d.ts +2 -0
- package/dist/components/table/TableFooter/TableFooter.js +24 -0
- package/dist/components/table/TableFooter/TableFooter.js.map +1 -0
- package/dist/components/table/TableFooter/TableFooter.types.d.ts +2 -0
- package/dist/components/table/TableFooter/index.d.ts +2 -0
- package/dist/components/table/TableHead/TableHead.d.ts +2 -0
- package/dist/components/table/TableHead/TableHead.js +24 -0
- package/dist/components/table/TableHead/TableHead.js.map +1 -0
- package/dist/components/table/TableHead/TableHead.types.d.ts +2 -0
- package/dist/components/table/TableHead/index.d.ts +2 -0
- package/dist/components/table/TableHeader/TableHeader.d.ts +2 -0
- package/dist/components/table/TableHeader/TableHeader.js +24 -0
- package/dist/components/table/TableHeader/TableHeader.js.map +1 -0
- package/dist/components/table/TableHeader/TableHeader.types.d.ts +2 -0
- package/dist/components/table/TableHeader/index.d.ts +2 -0
- package/dist/components/table/TableRow/TableRow.d.ts +2 -0
- package/dist/components/table/TableRow/TableRow.js +24 -0
- package/dist/components/table/TableRow/TableRow.js.map +1 -0
- package/dist/components/table/TableRow/TableRow.types.d.ts +2 -0
- package/dist/components/table/TableRow/index.d.ts +2 -0
- package/dist/components/table/index.d.ts +16 -0
- package/dist/components/table/index.js +9 -0
- package/dist/components/tabs/Tabs/Tabs.context.d.ts +1 -1
- package/dist/components/tabs/Tabs/Tabs.context.js.map +1 -1
- package/dist/components/tabs/Tabs/Tabs.d.ts +1 -1
- package/dist/components/tabs/Tabs/Tabs.js.map +1 -1
- package/dist/components/tabs/Tabs/call-event-handler.js.map +1 -1
- package/dist/components/tabs/Tabs/useTabsKeyboard.js.map +1 -1
- package/dist/components/tabs/TabsContent/TabsContent.js.map +1 -1
- package/dist/components/tabs/TabsList/TabsList.context.js.map +1 -1
- package/dist/components/tabs/TabsList/TabsList.d.ts +1 -1
- package/dist/components/tabs/TabsList/TabsList.js.map +1 -1
- package/dist/components/tabs/TabsList/TabsList.styles.js.map +1 -1
- package/dist/components/tabs/TabsTrigger/TabsTrigger.d.ts +1 -1
- package/dist/components/tabs/TabsTrigger/TabsTrigger.js.map +1 -1
- package/dist/components/tabs/TabsTrigger/TabsTrigger.styles.js.map +1 -1
- package/dist/components/textarea/Textarea.d.ts +1 -1
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/time-picker/TimePicker/TimePicker.context.d.ts +29 -0
- package/dist/components/time-picker/TimePicker/TimePicker.context.js +49 -0
- package/dist/components/time-picker/TimePicker/TimePicker.context.js.map +1 -0
- package/dist/components/time-picker/TimePicker/TimePicker.d.ts +23 -0
- package/dist/components/time-picker/TimePicker/TimePicker.js +52 -0
- package/dist/components/time-picker/TimePicker/TimePicker.js.map +1 -0
- package/dist/components/time-picker/TimePicker/TimePicker.types.d.ts +91 -0
- package/dist/components/time-picker/TimePicker/create-change-event-details.d.ts +8 -0
- package/dist/components/time-picker/TimePicker/create-change-event-details.js +25 -0
- package/dist/components/time-picker/TimePicker/create-change-event-details.js.map +1 -0
- package/dist/components/time-picker/TimePicker/index.d.ts +4 -0
- package/dist/components/time-picker/TimePicker/time-picker.utils.d.ts +28 -0
- package/dist/components/time-picker/TimePicker/time-picker.utils.js +103 -0
- package/dist/components/time-picker/TimePicker/time-picker.utils.js.map +1 -0
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.d.ts +10 -0
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js +60 -0
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.js.map +1 -0
- package/dist/components/time-picker/TimePickerColumn/TimePickerColumn.types.d.ts +8 -0
- package/dist/components/time-picker/TimePickerColumn/index.d.ts +2 -0
- package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.d.ts +16 -0
- package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js +75 -0
- package/dist/components/time-picker/TimePickerColumn/useTimePickerColumn.js.map +1 -0
- package/dist/components/time-picker/TimePickerContent/TimePickerContent.d.ts +7 -0
- package/dist/components/time-picker/TimePickerContent/TimePickerContent.js +48 -0
- package/dist/components/time-picker/TimePickerContent/TimePickerContent.js.map +1 -0
- package/dist/components/time-picker/TimePickerContent/TimePickerContent.types.d.ts +11 -0
- package/dist/components/time-picker/TimePickerContent/index.d.ts +2 -0
- package/dist/components/time-picker/TimePickerOption/TimePickerOption.d.ts +9 -0
- package/dist/components/time-picker/TimePickerOption/TimePickerOption.js +52 -0
- package/dist/components/time-picker/TimePickerOption/TimePickerOption.js.map +1 -0
- package/dist/components/time-picker/TimePickerOption/TimePickerOption.types.d.ts +11 -0
- package/dist/components/time-picker/TimePickerOption/index.d.ts +2 -0
- package/dist/components/time-picker/TimePickerTrigger/TimePickerTrigger.d.ts +9 -0
- package/dist/components/time-picker/TimePickerTrigger/TimePickerTrigger.js +37 -0
- package/dist/components/time-picker/TimePickerTrigger/TimePickerTrigger.js.map +1 -0
- package/dist/components/time-picker/TimePickerTrigger/TimePickerTrigger.types.d.ts +5 -0
- package/dist/components/time-picker/TimePickerTrigger/index.d.ts +2 -0
- package/dist/components/time-picker/index.d.ts +10 -0
- package/dist/components/time-picker/index.js +7 -0
- package/dist/components/toast/Toast/Toast.js.map +1 -1
- package/dist/components/toast/Toast/Toast.styles.js.map +1 -1
- package/dist/components/toast/Toast/Toast.types.js.map +1 -1
- package/dist/components/toast/Toaster/Toaster.js.map +1 -1
- package/dist/components/toast/Toaster/Toaster.styles.js.map +1 -1
- package/dist/components/toast/Toaster/Toaster.utils.js.map +1 -1
- package/dist/components/toast/state/toast.js.map +1 -1
- package/dist/components/toggle/Toggle/Toggle.js.map +1 -1
- package/dist/components/toggle/Toggle/Toggle.styles.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.context.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/ToggleGroup.styles.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/create-change-event-details.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.js.map +1 -1
- package/dist/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.js.map +1 -1
- package/dist/components/toggle-group/call-event-handler.js.map +1 -1
- package/dist/components/tooltip/Tooltip/Tooltip.context.js.map +1 -1
- package/dist/components/tooltip/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.d.ts +1 -1
- package/dist/components/tooltip/TooltipArrow/TooltipArrow.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.context.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.d.ts +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/TooltipContent.utils.js.map +1 -1
- package/dist/components/tooltip/TooltipContent/useTooltipContent.js.map +1 -1
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.context.js.map +1 -1
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.d.ts +1 -1
- package/dist/components/tooltip/TooltipGroup/TooltipGroup.js.map +1 -1
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.context.js.map +1 -1
- package/dist/components/tooltip/TooltipProvider/TooltipProvider.js.map +1 -1
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.d.ts +1 -1
- package/dist/components/tooltip/TooltipTrigger/TooltipTrigger.js.map +1 -1
- package/dist/components/tooltip/TooltipTrigger/useTooltipTrigger.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +3 -1
- package/dist/hooks/useFontLoader.js.map +1 -1
- package/dist/hooks/useScrollEdges.d.ts +16 -0
- package/dist/hooks/useScrollEdges.js +34 -0
- package/dist/hooks/useScrollEdges.js.map +1 -0
- package/dist/hooks/useScrollLock.d.ts +16 -0
- package/dist/hooks/useScrollLock.js +61 -0
- package/dist/hooks/useScrollLock.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +251 -194
- package/dist/lib/positioner/auto-update.js.map +1 -1
- package/dist/lib/positioner/core/compute-position.js.map +1 -1
- package/dist/lib/positioner/core/placement.js.map +1 -1
- package/dist/lib/positioner/create-positioner.js.map +1 -1
- package/dist/lib/positioner/middleware/arrow.js.map +1 -1
- package/dist/lib/positioner/middleware/containing-block-offset.js.map +1 -1
- package/dist/lib/positioner/middleware/flip.js.map +1 -1
- package/dist/lib/positioner/middleware/hide.js.map +1 -1
- package/dist/lib/positioner/middleware/offset.js.map +1 -1
- package/dist/lib/positioner/middleware/shift.js.map +1 -1
- package/dist/lib/positioner/middleware/size.js.map +1 -1
- package/dist/lib/positioner/utils/dom.js.map +1 -1
- package/dist/lib/positioner/virtual-element.js +18 -0
- package/dist/lib/positioner/virtual-element.js.map +1 -0
- package/dist/ui.css +1 -1
- package/dist/utils/clsx.js.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/ref.js.map +1 -1
- package/dist/utils/warn-once.js.map +1 -1
- package/package.json +6 -6
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.context.d.ts +0 -10
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.context.js +0 -11
- package/dist/components/alert-dialog/AlertDialog/AlertDialog.context.js.map +0 -1
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.context.d.ts +0 -8
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.context.js +0 -11
- package/dist/components/alert-dialog/AlertDialogContent/AlertDialogContent.context.js.map +0 -1
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.d.ts +0 -2
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.js +0 -6
- package/dist/components/alert-dialog/AlertDialogOverlay/AlertDialogOverlay.styles.js.map +0 -1
- package/dist/components/alert-dialog/AlertDialogTrigger/useAlertDialogTrigger.d.ts +0 -2
- package/dist/components/alert-dialog/AlertDialogTrigger/useAlertDialogTrigger.js +0 -26
- package/dist/components/alert-dialog/AlertDialogTrigger/useAlertDialogTrigger.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toaster.utils.js","names":[],"sources":["../../../../src/components/toast/Toaster/Toaster.utils.ts"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport type { Position, SwipeDirection } from \"../Toast/Toast.types\";\nimport type { Offset } from \"./Toaster.types\";\n\nconst VIEWPORT_OFFSET = \"24px\";\nconst MOBILE_VIEWPORT_OFFSET = \"16px\";\n\nexport function getPositionClass(position: Position): string {\n switch (position) {\n case \"top-left\":\n return \"top-0 left-0\";\n case \"top-right\":\n return \"top-0 right-0\";\n case \"top-center\":\n return \"top-0 left-1/2 -translate-x-1/2\";\n case \"bottom-left\":\n return \"bottom-0 left-0\";\n case \"bottom-right\":\n return \"bottom-0 right-0\";\n case \"bottom-center\":\n return \"bottom-0 left-1/2 -translate-x-1/2\";\n }\n}\n\nfunction toPx(value: string | number): string {\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\nexport function resolveOffsetStyle(\n position: Position,\n offset?: Offset,\n mobileOffset?: Offset,\n): JSX.CSSProperties {\n const style: JSX.CSSProperties = {};\n const [y, x] = position.split(\"-\");\n\n const normalize = (value: Offset | undefined, fallback: string) =>\n typeof value === \"object\" && value !== null\n ? value\n : {\n top: value ?? fallback,\n right: value ?? fallback,\n bottom: value ?? fallback,\n left: value ?? fallback,\n };\n\n const desktop = normalize(offset, VIEWPORT_OFFSET);\n const mobile = normalize(mobileOffset, MOBILE_VIEWPORT_OFFSET);\n\n if (y === \"top\") {\n style.top = toPx(desktop.top ?? VIEWPORT_OFFSET);\n style[\"--mobile-offset-top\"] = toPx(mobile.top ?? MOBILE_VIEWPORT_OFFSET);\n } else {\n style.bottom = toPx(desktop.bottom ?? VIEWPORT_OFFSET);\n style[\"--mobile-offset-bottom\"] = toPx(\n mobile.bottom ?? MOBILE_VIEWPORT_OFFSET,\n );\n }\n\n if (x === \"left\") {\n style.left = toPx(desktop.left ?? VIEWPORT_OFFSET);\n style[\"--mobile-offset-left\"] = toPx(mobile.left ?? MOBILE_VIEWPORT_OFFSET);\n } else if (x === \"right\") {\n style.right = toPx(desktop.right ?? VIEWPORT_OFFSET);\n style[\"--mobile-offset-right\"] = toPx(\n mobile.right ?? MOBILE_VIEWPORT_OFFSET,\n );\n }\n\n return style;\n}\n\nexport function getDefaultSwipeDirections(\n position: Position,\n): SwipeDirection[] {\n const [y, x] = position.split(\"-\");\n const directions: SwipeDirection[] = [];\n if (y) directions.push(y as SwipeDirection);\n if (x) directions.push(x as SwipeDirection);\n return directions;\n}\n\nexport function getDocumentDirection(): \"rtl\" | \"ltr\" | \"auto\" {\n if (typeof document === \"undefined\") return \"ltr\";\n const dir = document.documentElement.getAttribute(\"dir\");\n if (dir === \"auto\" || !dir) {\n return getComputedStyle(document.documentElement).direction as\n | \"rtl\"\n | \"ltr\"\n | \"auto\";\n }\n return dir as \"rtl\" | \"ltr\" | \"auto\";\n}\n"],"mappings":";AAIA,
|
|
1
|
+
{"version":3,"file":"Toaster.utils.js","names":["VIEWPORT_OFFSET","MOBILE_VIEWPORT_OFFSET","getPositionClass","position","toPx","value","resolveOffsetStyle","style","y","x","normalize","fallback","desktop","offset","mobile","mobileOffset","getDocumentDirection","dir"],"sources":["../../../../src/components/toast/Toaster/Toaster.utils.ts"],"sourcesContent":["import type { JSX } from \"solid-js\";\nimport type { Position, SwipeDirection } from \"../Toast/Toast.types\";\nimport type { Offset } from \"./Toaster.types\";\n\nconst VIEWPORT_OFFSET = \"24px\";\nconst MOBILE_VIEWPORT_OFFSET = \"16px\";\n\nexport function getPositionClass(position: Position): string {\n switch (position) {\n case \"top-left\":\n return \"top-0 left-0\";\n case \"top-right\":\n return \"top-0 right-0\";\n case \"top-center\":\n return \"top-0 left-1/2 -translate-x-1/2\";\n case \"bottom-left\":\n return \"bottom-0 left-0\";\n case \"bottom-right\":\n return \"bottom-0 right-0\";\n case \"bottom-center\":\n return \"bottom-0 left-1/2 -translate-x-1/2\";\n }\n}\n\nfunction toPx(value: string | number): string {\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\nexport function resolveOffsetStyle(\n position: Position,\n offset?: Offset,\n mobileOffset?: Offset,\n): JSX.CSSProperties {\n const style: JSX.CSSProperties = {};\n const [y, x] = position.split(\"-\");\n\n const normalize = (value: Offset | undefined, fallback: string) =>\n typeof value === \"object\" && value !== null\n ? value\n : {\n top: value ?? fallback,\n right: value ?? fallback,\n bottom: value ?? fallback,\n left: value ?? fallback,\n };\n\n const desktop = normalize(offset, VIEWPORT_OFFSET);\n const mobile = normalize(mobileOffset, MOBILE_VIEWPORT_OFFSET);\n\n if (y === \"top\") {\n style.top = toPx(desktop.top ?? VIEWPORT_OFFSET);\n style[\"--mobile-offset-top\"] = toPx(mobile.top ?? MOBILE_VIEWPORT_OFFSET);\n } else {\n style.bottom = toPx(desktop.bottom ?? VIEWPORT_OFFSET);\n style[\"--mobile-offset-bottom\"] = toPx(\n mobile.bottom ?? MOBILE_VIEWPORT_OFFSET,\n );\n }\n\n if (x === \"left\") {\n style.left = toPx(desktop.left ?? VIEWPORT_OFFSET);\n style[\"--mobile-offset-left\"] = toPx(mobile.left ?? MOBILE_VIEWPORT_OFFSET);\n } else if (x === \"right\") {\n style.right = toPx(desktop.right ?? VIEWPORT_OFFSET);\n style[\"--mobile-offset-right\"] = toPx(\n mobile.right ?? MOBILE_VIEWPORT_OFFSET,\n );\n }\n\n return style;\n}\n\nexport function getDefaultSwipeDirections(\n position: Position,\n): SwipeDirection[] {\n const [y, x] = position.split(\"-\");\n const directions: SwipeDirection[] = [];\n if (y) directions.push(y as SwipeDirection);\n if (x) directions.push(x as SwipeDirection);\n return directions;\n}\n\nexport function getDocumentDirection(): \"rtl\" | \"ltr\" | \"auto\" {\n if (typeof document === \"undefined\") return \"ltr\";\n const dir = document.documentElement.getAttribute(\"dir\");\n if (dir === \"auto\" || !dir) {\n return getComputedStyle(document.documentElement).direction as\n | \"rtl\"\n | \"ltr\"\n | \"auto\";\n }\n return dir as \"rtl\" | \"ltr\" | \"auto\";\n}\n"],"mappings":";AAIA,IAAMA,IAAkB,QAClBC,IAAyB;AAE/B,SAAgBC,EAAiB,GAA4B;CAC3D,QAAQC,GAAR;EACE,KAAK,YACH,OAAO;EACT,KAAK,aACH,OAAO;EACT,KAAK,cACH,OAAO;EACT,KAAK,eACH,OAAO;EACT,KAAK,gBACH,OAAO;EACT,KAAK,iBACH,OAAO;CACX;AACF;AAEA,SAASC,EAAK,GAAgC;CAC5C,OAAO,OAAOC,KAAU,WAAW,GAAGA,EAAM,MAAMA;AACpD;AAEA,SAAgBC,EACd,GACA,GACA,GACmB;CACnB,IAAMC,IAA2B,CAAC,GAC5B,CAACC,GAAGC,KAAKN,EAAS,MAAM,GAAG,GAE3BO,KAAa,GAA2B,MAC5C,OAAOL,KAAU,YAAYA,IACzBA,IACA;EACE,KAAKA,KAASM;EACd,OAAON,KAASM;EAChB,QAAQN,KAASM;EACjB,MAAMN,KAASM;CACjB,GAEAC,IAAUF,EAAUG,GAAQb,CAAe,GAC3Cc,IAASJ,EAAUK,GAAcd,CAAsB;CAsB7D,OApBIO,MAAM,SACR,EAAM,MAAMJ,EAAKQ,EAAQ,OAAOZ,CAAe,GAC/C,EAAM,yBAAyBI,EAAKU,EAAO,OAAOb,CAAsB,MAExE,EAAM,SAASG,EAAKQ,EAAQ,UAAUZ,CAAe,GACrD,EAAM,4BAA4BI,EAChCU,EAAO,UAAUb,CACnB,IAGEQ,MAAM,UACR,EAAM,OAAOL,EAAKQ,EAAQ,QAAQZ,CAAe,GACjD,EAAM,0BAA0BI,EAAKU,EAAO,QAAQb,CAAsB,KACjEQ,MAAM,YACf,EAAM,QAAQL,EAAKQ,EAAQ,SAASZ,CAAe,GACnD,EAAM,2BAA2BI,EAC/BU,EAAO,SAASb,CAClB,IAGKM;AACT;AAYA,SAAgBS,IAA+C;CAC7D,IAAI,OAAO,WAAa,KAAa,OAAO;CAC5C,IAAMC,IAAM,SAAS,gBAAgB,aAAa,KAAK;CAOvD,OANIA,MAAQ,UAAU,CAACA,IACd,iBAAiB,SAAS,eAAe,CAAC,CAAC,YAK7CA;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","names":[],"sources":["../../../../src/components/toast/state/toast.ts"],"sourcesContent":["import { createUniqueId, type JSXElement } from \"solid-js\";\nimport { createStore, produce } from \"solid-js/store\";\nimport type {\n ExternalToast,\n PromiseData,\n PromiseT,\n ToastT,\n ToastTypes,\n} from \"../Toast/Toast.types\";\n\nconst [toasts, setToasts] = createStore<ToastT[]>([]);\n\nexport function useSonner() {\n return { toasts };\n}\n\nexport function getToasts() {\n return toasts;\n}\n\nexport function getHistory() {\n return toasts;\n}\n\nfunction createToast(\n data: ExternalToast & {\n message?: JSXElement;\n type?: ToastTypes;\n jsx?: JSXElement;\n promise?: PromiseT;\n },\n): string {\n const id = data.id ?? createUniqueId();\n\n setToasts(\n produce((list) => {\n const existing = list.find((toast) => toast.id === id);\n const next: ToastT = {\n ...data,\n id,\n title: data.message,\n dismissible: data.dismissible ?? true,\n } as ToastT;\n\n if (existing) {\n Object.assign(existing, next, {\n title: data.message ?? existing.title,\n });\n } else {\n list.unshift(next);\n }\n }),\n );\n\n return id;\n}\n\nfunction dismissToast(id?: string) {\n if (id !== undefined) {\n setToasts(\n produce((list) => {\n const toast = list.find((item) => item.id === id);\n if (toast) toast.delete = true;\n }),\n );\n } else {\n setToasts(\n produce((list) => {\n for (const toast of list) toast.delete = true;\n }),\n );\n }\n return id;\n}\n\nfunction removeToast(id: string) {\n setToasts(\n produce((list) => {\n const index = list.findIndex((toast) => toast.id === id);\n if (index !== -1) list.splice(index, 1);\n }),\n );\n}\n\nconst toastFunction = (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, message });\n\nexport const toast = Object.assign(toastFunction, {\n success: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"success\", message }),\n info: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"info\", message }),\n warning: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"warning\", message }),\n error: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"error\", message }),\n loading: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"loading\", message }),\n message: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, message }),\n custom: (jsx: (id: string) => JSXElement, data?: ExternalToast) => {\n const id = data?.id ?? createUniqueId();\n return createToast({ ...data, id, jsx: jsx(id) });\n },\n dismiss: dismissToast,\n promise: <Data = any>(promise: PromiseT<Data>, data?: PromiseData<Data>) => {\n if (!data) return;\n\n let id: string | undefined;\n if (data.loading !== undefined) {\n id = createToast({\n ...data,\n type: \"loading\",\n message: data.loading,\n } as any);\n }\n\n Promise.resolve(typeof promise === \"function\" ? promise() : promise)\n .then(async (result) => {\n const message =\n typeof data.success === \"function\"\n ? await data.success(result)\n : data.success;\n\n if (message !== undefined) {\n createToast({\n id,\n type: \"success\",\n message: message as JSXElement,\n description:\n typeof data.description === \"function\"\n ? await data.description(result)\n : data.description,\n } as any);\n } else if (id !== undefined) {\n dismissToast(id);\n }\n })\n .catch(async (error) => {\n const message =\n typeof data.error === \"function\"\n ? await data.error(error)\n : data.error;\n\n if (message !== undefined) {\n createToast({\n id,\n type: \"error\",\n message: message as JSXElement,\n description:\n typeof data.description === \"function\"\n ? await data.description(error)\n : data.description,\n } as any);\n } else if (id !== undefined) {\n dismissToast(id);\n }\n })\n .finally(() => {\n data.finally?.();\n });\n\n return id as string;\n },\n getToasts,\n getHistory,\n remove: removeToast,\n});\n\nexport { dismissToast, removeToast };\n"],"mappings":";;;AAUA,IAAM,
|
|
1
|
+
{"version":3,"file":"toast.js","names":["toasts","setToasts","createStore","useSonner","getToasts","getHistory","createToast","id","data","createUniqueId","produce","existing","list","toast","next","dismissToast","item","removeToast","index","jsx","promise","message","result","error"],"sources":["../../../../src/components/toast/state/toast.ts"],"sourcesContent":["import { createUniqueId, type JSXElement } from \"solid-js\";\nimport { createStore, produce } from \"solid-js/store\";\nimport type {\n ExternalToast,\n PromiseData,\n PromiseT,\n ToastT,\n ToastTypes,\n} from \"../Toast/Toast.types\";\n\nconst [toasts, setToasts] = createStore<ToastT[]>([]);\n\nexport function useSonner() {\n return { toasts };\n}\n\nexport function getToasts() {\n return toasts;\n}\n\nexport function getHistory() {\n return toasts;\n}\n\nfunction createToast(\n data: ExternalToast & {\n message?: JSXElement;\n type?: ToastTypes;\n jsx?: JSXElement;\n promise?: PromiseT;\n },\n): string {\n const id = data.id ?? createUniqueId();\n\n setToasts(\n produce((list) => {\n const existing = list.find((toast) => toast.id === id);\n const next: ToastT = {\n ...data,\n id,\n title: data.message,\n dismissible: data.dismissible ?? true,\n } as ToastT;\n\n if (existing) {\n Object.assign(existing, next, {\n title: data.message ?? existing.title,\n });\n } else {\n list.unshift(next);\n }\n }),\n );\n\n return id;\n}\n\nfunction dismissToast(id?: string) {\n if (id !== undefined) {\n setToasts(\n produce((list) => {\n const toast = list.find((item) => item.id === id);\n if (toast) toast.delete = true;\n }),\n );\n } else {\n setToasts(\n produce((list) => {\n for (const toast of list) toast.delete = true;\n }),\n );\n }\n return id;\n}\n\nfunction removeToast(id: string) {\n setToasts(\n produce((list) => {\n const index = list.findIndex((toast) => toast.id === id);\n if (index !== -1) list.splice(index, 1);\n }),\n );\n}\n\nconst toastFunction = (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, message });\n\nexport const toast = Object.assign(toastFunction, {\n success: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"success\", message }),\n info: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"info\", message }),\n warning: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"warning\", message }),\n error: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"error\", message }),\n loading: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, type: \"loading\", message }),\n message: (message: JSXElement, data?: ExternalToast) =>\n createToast({ ...data, message }),\n custom: (jsx: (id: string) => JSXElement, data?: ExternalToast) => {\n const id = data?.id ?? createUniqueId();\n return createToast({ ...data, id, jsx: jsx(id) });\n },\n dismiss: dismissToast,\n promise: <Data = any>(promise: PromiseT<Data>, data?: PromiseData<Data>) => {\n if (!data) return;\n\n let id: string | undefined;\n if (data.loading !== undefined) {\n id = createToast({\n ...data,\n type: \"loading\",\n message: data.loading,\n } as any);\n }\n\n Promise.resolve(typeof promise === \"function\" ? promise() : promise)\n .then(async (result) => {\n const message =\n typeof data.success === \"function\"\n ? await data.success(result)\n : data.success;\n\n if (message !== undefined) {\n createToast({\n id,\n type: \"success\",\n message: message as JSXElement,\n description:\n typeof data.description === \"function\"\n ? await data.description(result)\n : data.description,\n } as any);\n } else if (id !== undefined) {\n dismissToast(id);\n }\n })\n .catch(async (error) => {\n const message =\n typeof data.error === \"function\"\n ? await data.error(error)\n : data.error;\n\n if (message !== undefined) {\n createToast({\n id,\n type: \"error\",\n message: message as JSXElement,\n description:\n typeof data.description === \"function\"\n ? await data.description(error)\n : data.description,\n } as any);\n } else if (id !== undefined) {\n dismissToast(id);\n }\n })\n .finally(() => {\n data.finally?.();\n });\n\n return id as string;\n },\n getToasts,\n getHistory,\n remove: removeToast,\n});\n\nexport { dismissToast, removeToast };\n"],"mappings":";;;AAUA,IAAM,CAACA,GAAQC,KAAaC,EAAsB,CAAC,CAAC;AAEpD,SAAgBC,IAAY;CAC1B,OAAO,EAAE,UAAO;AAClB;AAEA,SAAgBC,IAAY;CAC1B,OAAOJ;AACT;AAEA,SAAgBK,IAAa;CAC3B,OAAOL;AACT;AAEA,SAASM,EACP,GAMQ;CACR,IAAMC,IAAKC,EAAK,MAAMC,EAAe;CAsBrC,OApBAR,EACES,GAAS,MAAS;EAChB,IAAMC,IAAWC,EAAK,MAAM,MAAUC,EAAM,OAAON,CAAE,GAC/CO,IAAe;GACnB,GAAGN;GACH;GACA,OAAOA,EAAK;GACZ,aAAaA,EAAK,eAAe;EACnC;EAEA,AAAIG,IACF,OAAO,OAAOA,GAAUG,GAAM,EAC5B,OAAON,EAAK,WAAWG,EAAS,MAClC,CAAC,IAEDC,EAAK,QAAQE,CAAI;CAErB,CAAC,CACH,GAEOP;AACT;AAEA,SAASQ,EAAa,GAAa;CAejC,OANEd,EACES,EATAH,MAAO,KAAA,KASE,MAAS;EAChB,KAAK,IAAMM,KAASD,GAAM,EAAM,SAAS;CAC3C,KATS,MAAS;EAChB,IAAMC,IAAQD,EAAK,MAAM,MAASI,EAAK,OAAOT,CAAE;EAChD,AAAIM,MAAO,EAAM,SAAS;CAC5B,CALO,CAYT,GAEKN;AACT;AAEA,SAASU,EAAY,GAAY;CAC/B,EACEP,GAAS,MAAS;EAChB,IAAMQ,IAAQN,EAAK,WAAW,MAAUC,EAAM,OAAON,CAAE;EACvD,AAAIW,MAAU,MAAIN,EAAK,OAAOM,GAAO,CAAC;CACxC,CAAC,CACH;AACF;AAKA,IAAaL,IAAQ,OAAO,QAHL,GAAqB,MAC1CP,EAAY;CAAE,GAAGE;CAAM;AAAQ,CAAC,GAEgB;CAChD,UAAU,GAAqB,MAC7BF,EAAY;EAAE,GAAGE;EAAM,MAAM;EAAW;CAAQ,CAAC;CACnD,OAAO,GAAqB,MAC1BF,EAAY;EAAE,GAAGE;EAAM,MAAM;EAAQ;CAAQ,CAAC;CAChD,UAAU,GAAqB,MAC7BF,EAAY;EAAE,GAAGE;EAAM,MAAM;EAAW;CAAQ,CAAC;CACnD,QAAQ,GAAqB,MAC3BF,EAAY;EAAE,GAAGE;EAAM,MAAM;EAAS;CAAQ,CAAC;CACjD,UAAU,GAAqB,MAC7BF,EAAY;EAAE,GAAGE;EAAM,MAAM;EAAW;CAAQ,CAAC;CACnD,UAAU,GAAqB,MAC7BF,EAAY;EAAE,GAAGE;EAAM;CAAQ,CAAC;CAClC,SAAS,GAAiC,MAAyB;EACjE,IAAMD,IAAKC,GAAM,MAAMC,EAAe;EACtC,OAAOH,EAAY;GAAE,GAAGE;GAAM;GAAI,KAAKW,EAAIZ,CAAE;EAAE,CAAC;CAClD;CACA,SAASQ;CACT,UAAsB,GAAyB,MAA6B;EAC1E,IAAI,CAACP,GAAM;EAEX,IAAID;EAsDJ,OArDIC,EAAK,YAAY,KAAA,MACnB,IAAKF,EAAY;GACf,GAAGE;GACH,MAAM;GACN,SAASA,EAAK;EAChB,CAAQ,IAGV,QAAQ,QAAQ,OAAOY,KAAY,aAAaA,EAAQ,IAAIA,CAAO,CAAC,CACjE,KAAK,OAAO,MAAW;GACtB,IAAMC,IACJ,OAAOb,EAAK,WAAY,aACpB,MAAMA,EAAK,QAAQc,CAAM,IACzBd,EAAK;GAEX,AAAIa,MAAY,KAAA,IAULd,MAAO,KAAA,KAChBQ,EAAaR,CAAE,IAVfD,EAAY;IACV;IACA,MAAM;IACG;IACT,aACE,OAAOE,EAAK,eAAgB,aACxB,MAAMA,EAAK,YAAYc,CAAM,IAC7Bd,EAAK;GACb,CAAQ;EAIZ,CAAC,CAAC,CACD,MAAM,OAAO,MAAU;GACtB,IAAMa,IACJ,OAAOb,EAAK,SAAU,aAClB,MAAMA,EAAK,MAAMe,CAAK,IACtBf,EAAK;GAEX,AAAIa,MAAY,KAAA,IAULd,MAAO,KAAA,KAChBQ,EAAaR,CAAE,IAVfD,EAAY;IACV;IACA,MAAM;IACG;IACT,aACE,OAAOE,EAAK,eAAgB,aACxB,MAAMA,EAAK,YAAYe,CAAK,IAC5Bf,EAAK;GACb,CAAQ;EAIZ,CAAC,CAAC,CACD,cAAc;GACb,EAAK,UAAU;EACjB,CAAC,GAEID;CACT;CACA;CACA;CACA,QAAQU;AACV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toggle.js","names":["createMemo","createSignal","mergeProps","splitProps","JSX","clsx","toggleVariants","ToggleProps","Toggle","props","Element","merged","type","const","local","rest","internalPressed","setInternalPressed","defaultPressed","pressed","undefined","setPressed","next","onPressedChange","_el$","_tmpl$","$$click","e","onClick","defaultPrevented","_$spread","_$mergeProps","data-state","aria-pressed","class","variant","size","_$delegateEvents"],"sources":["../../../../src/components/toggle/Toggle/Toggle.tsx"],"sourcesContent":["import {\n createMemo,\n createSignal,\n mergeProps,\n splitProps,\n type JSX,\n} from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { toggleVariants } from \"./Toggle.styles\";\nimport type { ToggleProps } from \"./Toggle.types\";\n\nexport function Toggle(props: ToggleProps): JSX.Element {\n const merged = mergeProps({ type: \"button\" as const }, props);\n\n const [local, rest] = splitProps(merged, [\n \"pressed\",\n \"defaultPressed\",\n \"onPressedChange\",\n \"variant\",\n \"size\",\n \"class\",\n \"value\",\n \"type\",\n \"onClick\",\n ]);\n\n const [internalPressed, setInternalPressed] = createSignal(\n local.defaultPressed ?? false,\n );\n const pressed = createMemo(() =>\n local.pressed !== undefined ? local.pressed : internalPressed(),\n );\n\n const setPressed = (next: boolean) => {\n if (local.pressed === undefined) setInternalPressed(next);\n local.onPressedChange?.(next);\n };\n\n return (\n <button\n type={local.type as \"button\"}\n data-slot=\"toggle\"\n data-state={pressed() ? \"on\" : \"off\"}\n aria-pressed={pressed()}\n class={clsx(\n toggleVariants({\n variant: local.variant,\n size: local.size,\n class: local.class,\n }),\n )}\n onClick={(e) => {\n (local.onClick as any)?.(e);\n if (!e.defaultPrevented) setPressed(!pressed());\n }}\n {...rest}\n />\n );\n}\n"],"mappings":";;;;;;AAWA,SAAgBQ,EAAOC,GAAiC;CACtD,IAAME,IAAST,EAAW,EAAEU,MAAM,SAAkB,GAAGH,CAAK,GAEtD,CAACK,GAAOC,KAAQZ,EAAWQ,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAS,CACV,GAEK,CAACK,GAAiBC,KAAsBhB,EAC5Ca,EAAMI,kBAAkB,EAC1B,GACMC,IAAUnB,QACdc,EAAMK,YAAYC,KAAAA,IAA4BJ,EAAgB,IAAhCF,EAAMK,OACtC,GAEME,KAAcC,MAAkB;EAEpCR,AADIA,EAAMK,YAAYC,KAAAA,KAAWH,EAAmBK,CAAI,GACxDR,EAAMS,kBAAkBD,CAAI;CAC9B;CAEA,cAAA;EAAA,IAAAE,IAAAC,EAAA;EAiBY,OAjBZD,EAAAE,WAacC,MAAM;GAEd,
|
|
1
|
+
{"version":3,"file":"Toggle.js","names":["createMemo","createSignal","mergeProps","splitProps","JSX","clsx","toggleVariants","ToggleProps","Toggle","props","Element","merged","type","const","local","rest","internalPressed","setInternalPressed","defaultPressed","pressed","undefined","setPressed","next","onPressedChange","_el$","_tmpl$","$$click","e","onClick","defaultPrevented","_$spread","_$mergeProps","data-state","aria-pressed","class","variant","size","_$delegateEvents","mergeProps","_$mergeProps","_$delegateEvents","mergeProps$1","_tmpl$","Toggle","merged","props","local","rest","splitProps","internalPressed","setInternalPressed","createSignal","pressed","createMemo","setPressed","next","_el$","spread","mergeProps","\"class\"","clsx","toggleVariants","delegateEvents"],"sources":["../../../../src/components/toggle/Toggle/Toggle.tsx"],"sourcesContent":["import {\n createMemo,\n createSignal,\n mergeProps,\n splitProps,\n type JSX,\n} from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { toggleVariants } from \"./Toggle.styles\";\nimport type { ToggleProps } from \"./Toggle.types\";\n\nexport function Toggle(props: ToggleProps): JSX.Element {\n const merged = mergeProps({ type: \"button\" as const }, props);\n\n const [local, rest] = splitProps(merged, [\n \"pressed\",\n \"defaultPressed\",\n \"onPressedChange\",\n \"variant\",\n \"size\",\n \"class\",\n \"value\",\n \"type\",\n \"onClick\",\n ]);\n\n const [internalPressed, setInternalPressed] = createSignal(\n local.defaultPressed ?? false,\n );\n const pressed = createMemo(() =>\n local.pressed !== undefined ? local.pressed : internalPressed(),\n );\n\n const setPressed = (next: boolean) => {\n if (local.pressed === undefined) setInternalPressed(next);\n local.onPressedChange?.(next);\n };\n\n return (\n <button\n type={local.type as \"button\"}\n data-slot=\"toggle\"\n data-state={pressed() ? \"on\" : \"off\"}\n aria-pressed={pressed()}\n class={clsx(\n toggleVariants({\n variant: local.variant,\n size: local.size,\n class: local.class,\n }),\n )}\n onClick={(e) => {\n (local.onClick as any)?.(e);\n if (!e.defaultPrevented) setPressed(!pressed());\n }}\n {...rest}\n />\n );\n}\n"],"mappings":";;;;;;AAWA,SAAgBQ,EAAOC,GAAiC;CACtD,IAAME,IAAST,EAAW,EAAEU,MAAM,SAAkB,GAAGH,CAAK,GAEtD,CAACK,GAAOC,KAAQZ,EAAWQ,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAS,CACV,GAEK,CAACK,GAAiBC,KAAsBhB,EAC5Ca,EAAMI,kBAAkB,EAC1B,GACMC,IAAUnB,QACdc,EAAMK,YAAYC,KAAAA,IAA4BJ,EAAgB,IAAhCF,EAAMK,OACtC,GAEME,KAAcC,MAAkB;EAEpCR,AADIA,EAAMK,YAAYC,KAAAA,KAAWH,EAAmBK,CAAI,GACxDR,EAAMS,kBAAkBD,CAAI;CAC9B;CAEA,cAAA;EAAA,IAAAE,IAAAC,EAAA;EAiBY,OAjBZD,EAAAE,WAacC,MAAM;GAEd,AADAmB,EAAOlB,UAAkBD,CAAC,GACrBA,EAAEE,oBAAkBR,EAAW,CAACF,EAAQ,CAAC;EAChD,GAACW,EAAAN,GAAAO,EAAA;GAAA,IAdDnB,OAAI;IAAA,OAAEE,EAAMF;GAAgB;GAAA,IAAA,eAAA;IAAA,OAEhBO,EAAQ,IAAI,OAAO;GAAK;GAAA,IAAA,iBAAA;IAAA,OACtBA,EAAQ;GAAC;GAAA,IAAAwC,QAAA;IAAA,OAChBtD,EACLC,EAAe;KACb6B,SAASrB,EAAMqB;KACfC,MAAMtB,EAAMsB;KACZF,OAAOpB,EAAMoB;IACf,CAAC,CACH;GAAC;EAAA,GAKGnB,CAAI,GAAA,IAAA,EAAA,GAAAS;CAAA,EAAA,CAAA;AAGd;AAACa,EAAA,CAAA,OAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toggle.styles.js","names":[],"sources":["../../../../src/components/toggle/Toggle/Toggle.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-muted\",\n },\n size: {\n default:\n \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n"],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"Toggle.styles.js","names":["toggleVariants","cva"],"sources":["../../../../src/components/toggle/Toggle/Toggle.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:bg-muted data-[state=on]:bg-muted dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-muted\",\n },\n size: {\n default:\n \"h-8 min-w-8 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5\",\n lg: \"h-9 min-w-9 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n"],"mappings":";;AAEA,IAAaA,IAAiBC,EAC5B,uhBACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SAAS;EACX;EACA,MAAM;GACJ,SACE;GACF,IAAI;GACJ,IAAI;EACN;CACF;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;AACF,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleGroup.context.js","names":[],"sources":["../../../../src/components/toggle-group/ToggleGroup/ToggleGroup.context.ts"],"sourcesContent":["import { createContext, createSignal, useContext } from \"solid-js\";\nimport { createChangeEventDetails } from \"./create-change-event-details\";\nimport type {\n ToggleGroupChangeHandler,\n ToggleGroupContextValue,\n ToggleGroupItemEntry,\n ToggleGroupMultipleProps,\n ToggleGroupOrientation,\n ToggleGroupSingleProps,\n ToggleGroupSize,\n ToggleGroupValue,\n ToggleGroupVariant,\n} from \"./ToggleGroup.types\";\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue>();\n\n/** 单选/多选的 onValueChange 签名(从 props 类型派生,保持单一事实来源) */\ntype SingleChangeHandler<TValue extends ToggleGroupValue> = NonNullable<\n ToggleGroupSingleProps<TValue>[\"onValueChange\"]\n>;\ntype MultipleChangeHandler<TValue extends ToggleGroupValue> = NonNullable<\n ToggleGroupMultipleProps<TValue>[\"onValueChange\"]\n>;\n\n/**\n * createToggleGroupState 的输入:ToggleGroupProps 的运行时形态。\n *\n * 受控值时单选给标量、多选给数组,内部统一规范化成数组;\n * `multiple` 同时决定 onValueChange 用哪种签名回调。\n */\nexport interface ToggleGroupStateProps<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n> {\n value?: TValue | readonly TValue[];\n defaultValue?: TValue | readonly TValue[];\n onValueChange?: ToggleGroupChangeHandler<TValue>;\n multiple?: boolean;\n disabled?: boolean;\n orientation?: ToggleGroupOrientation;\n loopFocus?: boolean;\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n spacing?: number;\n variant?: ToggleGroupVariant;\n size?: ToggleGroupSize;\n}\n\n/**\n * ToggleGroup 的唯一状态源:选中值(受控/非受控)、焦点高亮、item 注册表。\n *\n * 返回的 context 值里所有字段都是 accessor,因此传入的 `props` 可以是\n * splitProps 得到的响应式代理,读取始终是最新值。\n * 组件根只负责输出 DOM 与 data-* 样式钩子,状态与交互算法收敛在这里。\n *\n * 值类型由泛型参数决定;内部只用 `===` / `includes` 做同一性比较,\n * 因此 string 与 number 都能正常工作。\n */\nexport function createToggleGroupState<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n>(props: ToggleGroupStateProps<TValue>): ToggleGroupContextValue<TValue> {\n const multiple = () => props.multiple === true;\n\n /** 单选传标量、多选传数组,内部统一成数组 */\n const toArray = (v: TValue | readonly TValue[] | undefined): TValue[] => {\n if (v === undefined) return [];\n return Array.isArray(v) ? [...(v as readonly TValue[])] : [v as TValue];\n };\n\n const [internalValue, setInternalValue] = createSignal<TValue[]>(\n toArray(props.defaultValue),\n );\n const [highlightedValue, setHighlightedValue] = createSignal<\n TValue | undefined\n >();\n const [itemOrder, setItemOrder] = createSignal<\n ToggleGroupItemEntry<TValue>[]\n >([]);\n\n const isControlled = () => props.value !== undefined;\n // 受控优先:props.value 存在时读外部值,否则读内部状态\n const value = (): readonly TValue[] =>\n isControlled() ? toArray(props.value) : internalValue();\n\n const isPressed = (v: TValue) => value().includes(v);\n\n const toggleItem = (\n itemValue: TValue,\n event: Event,\n trigger?: Element,\n ): void => {\n const current = value();\n const pressed = current.includes(itemValue);\n\n // 单选时再次点击已按下项会取消选中(next = [])\n let next: TValue[];\n if (multiple()) {\n next = pressed\n ? current.filter((v) => v !== itemValue)\n : [...current, itemValue];\n } else {\n next = pressed ? [] : [itemValue];\n }\n\n // 先通知外部:onValueChange 中 cancel() 可阻止组件提交本次变更\n // 单选回调标量(取消时是 undefined),多选回调数组\n const details = createChangeEventDetails(event, trigger);\n if (multiple()) {\n (props.onValueChange as MultipleChangeHandler<TValue> | undefined)?.(\n next,\n details,\n );\n } else {\n (props.onValueChange as SingleChangeHandler<TValue> | undefined)?.(\n next[0],\n details,\n );\n }\n if (details.isCanceled) return;\n\n // 受控模式只通知外部,不改内部状态\n if (!isControlled()) setInternalValue(next);\n };\n\n const registerItem = (entry: ToggleGroupItemEntry<TValue>) => {\n setItemOrder((prev) => [...prev, entry]);\n return () => setItemOrder((prev) => prev.filter((item) => item !== entry));\n };\n\n const isFirstEnabled = (v: TValue) =>\n itemOrder().find((item) => !item.disabled())?.value === v;\n\n const isUsable = (v: TValue) =>\n itemOrder().some((item) => item.value === v && !item.disabled());\n\n return {\n value,\n multiple,\n disabled: () => props.disabled === true,\n orientation: () => props.orientation ?? \"horizontal\",\n loopFocus: () => props.loopFocus ?? true,\n dir: () => props.dir,\n spacing: () => props.spacing ?? 2,\n variant: () => props.variant,\n size: () => props.size,\n highlightedValue,\n isPressed,\n toggleItem,\n setHighlightedValue,\n registerItem,\n getItems: () => itemOrder(),\n isFirstEnabled,\n isUsable,\n };\n}\n\n/**\n * 读取 ToggleGroup 的 context。\n *\n * 泛型参数是**调用方标注**:组件本身无法从子节点推导所属 group 的值类型,\n * 自定义 item 时请显式传入与 ToggleGroup 一致的类型,例如\n * `useToggleGroupContext<\"bold\" | \"italic\">(\"MyToggle\")`。\n */\nexport function useToggleGroupContext<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n>(component: string): ToggleGroupContextValue<TValue> {\n const ctx = useContext(ToggleGroupContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <ToggleGroup> 内部`);\n }\n return ctx as ToggleGroupContextValue<TValue>;\n}\n\nexport { ToggleGroupContext };\n"],"mappings":";;;AAcA,
|
|
1
|
+
{"version":3,"file":"ToggleGroup.context.js","names":["ToggleGroupContext","createContext","createToggleGroupState","multiple","props","toArray","v","internalValue","setInternalValue","createSignal","highlightedValue","setHighlightedValue","itemOrder","setItemOrder","isControlled","value","current","pressed","itemValue","next","details","createChangeEventDetails","event","trigger","prev","entry","item","useToggleGroupContext","ctx","useContext","component"],"sources":["../../../../src/components/toggle-group/ToggleGroup/ToggleGroup.context.ts"],"sourcesContent":["import { createContext, createSignal, useContext } from \"solid-js\";\nimport { createChangeEventDetails } from \"./create-change-event-details\";\nimport type {\n ToggleGroupChangeHandler,\n ToggleGroupContextValue,\n ToggleGroupItemEntry,\n ToggleGroupMultipleProps,\n ToggleGroupOrientation,\n ToggleGroupSingleProps,\n ToggleGroupSize,\n ToggleGroupValue,\n ToggleGroupVariant,\n} from \"./ToggleGroup.types\";\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue>();\n\n/** 单选/多选的 onValueChange 签名(从 props 类型派生,保持单一事实来源) */\ntype SingleChangeHandler<TValue extends ToggleGroupValue> = NonNullable<\n ToggleGroupSingleProps<TValue>[\"onValueChange\"]\n>;\ntype MultipleChangeHandler<TValue extends ToggleGroupValue> = NonNullable<\n ToggleGroupMultipleProps<TValue>[\"onValueChange\"]\n>;\n\n/**\n * createToggleGroupState 的输入:ToggleGroupProps 的运行时形态。\n *\n * 受控值时单选给标量、多选给数组,内部统一规范化成数组;\n * `multiple` 同时决定 onValueChange 用哪种签名回调。\n */\nexport interface ToggleGroupStateProps<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n> {\n value?: TValue | readonly TValue[];\n defaultValue?: TValue | readonly TValue[];\n onValueChange?: ToggleGroupChangeHandler<TValue>;\n multiple?: boolean;\n disabled?: boolean;\n orientation?: ToggleGroupOrientation;\n loopFocus?: boolean;\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n spacing?: number;\n variant?: ToggleGroupVariant;\n size?: ToggleGroupSize;\n}\n\n/**\n * ToggleGroup 的唯一状态源:选中值(受控/非受控)、焦点高亮、item 注册表。\n *\n * 返回的 context 值里所有字段都是 accessor,因此传入的 `props` 可以是\n * splitProps 得到的响应式代理,读取始终是最新值。\n * 组件根只负责输出 DOM 与 data-* 样式钩子,状态与交互算法收敛在这里。\n *\n * 值类型由泛型参数决定;内部只用 `===` / `includes` 做同一性比较,\n * 因此 string 与 number 都能正常工作。\n */\nexport function createToggleGroupState<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n>(props: ToggleGroupStateProps<TValue>): ToggleGroupContextValue<TValue> {\n const multiple = () => props.multiple === true;\n\n /** 单选传标量、多选传数组,内部统一成数组 */\n const toArray = (v: TValue | readonly TValue[] | undefined): TValue[] => {\n if (v === undefined) return [];\n return Array.isArray(v) ? [...(v as readonly TValue[])] : [v as TValue];\n };\n\n const [internalValue, setInternalValue] = createSignal<TValue[]>(\n toArray(props.defaultValue),\n );\n const [highlightedValue, setHighlightedValue] = createSignal<\n TValue | undefined\n >();\n const [itemOrder, setItemOrder] = createSignal<\n ToggleGroupItemEntry<TValue>[]\n >([]);\n\n const isControlled = () => props.value !== undefined;\n // 受控优先:props.value 存在时读外部值,否则读内部状态\n const value = (): readonly TValue[] =>\n isControlled() ? toArray(props.value) : internalValue();\n\n const isPressed = (v: TValue) => value().includes(v);\n\n const toggleItem = (\n itemValue: TValue,\n event: Event,\n trigger?: Element,\n ): void => {\n const current = value();\n const pressed = current.includes(itemValue);\n\n // 单选时再次点击已按下项会取消选中(next = [])\n let next: TValue[];\n if (multiple()) {\n next = pressed\n ? current.filter((v) => v !== itemValue)\n : [...current, itemValue];\n } else {\n next = pressed ? [] : [itemValue];\n }\n\n // 先通知外部:onValueChange 中 cancel() 可阻止组件提交本次变更\n // 单选回调标量(取消时是 undefined),多选回调数组\n const details = createChangeEventDetails(event, trigger);\n if (multiple()) {\n (props.onValueChange as MultipleChangeHandler<TValue> | undefined)?.(\n next,\n details,\n );\n } else {\n (props.onValueChange as SingleChangeHandler<TValue> | undefined)?.(\n next[0],\n details,\n );\n }\n if (details.isCanceled) return;\n\n // 受控模式只通知外部,不改内部状态\n if (!isControlled()) setInternalValue(next);\n };\n\n const registerItem = (entry: ToggleGroupItemEntry<TValue>) => {\n setItemOrder((prev) => [...prev, entry]);\n return () => setItemOrder((prev) => prev.filter((item) => item !== entry));\n };\n\n const isFirstEnabled = (v: TValue) =>\n itemOrder().find((item) => !item.disabled())?.value === v;\n\n const isUsable = (v: TValue) =>\n itemOrder().some((item) => item.value === v && !item.disabled());\n\n return {\n value,\n multiple,\n disabled: () => props.disabled === true,\n orientation: () => props.orientation ?? \"horizontal\",\n loopFocus: () => props.loopFocus ?? true,\n dir: () => props.dir,\n spacing: () => props.spacing ?? 2,\n variant: () => props.variant,\n size: () => props.size,\n highlightedValue,\n isPressed,\n toggleItem,\n setHighlightedValue,\n registerItem,\n getItems: () => itemOrder(),\n isFirstEnabled,\n isUsable,\n };\n}\n\n/**\n * 读取 ToggleGroup 的 context。\n *\n * 泛型参数是**调用方标注**:组件本身无法从子节点推导所属 group 的值类型,\n * 自定义 item 时请显式传入与 ToggleGroup 一致的类型,例如\n * `useToggleGroupContext<\"bold\" | \"italic\">(\"MyToggle\")`。\n */\nexport function useToggleGroupContext<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n>(component: string): ToggleGroupContextValue<TValue> {\n const ctx = useContext(ToggleGroupContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <ToggleGroup> 内部`);\n }\n return ctx as ToggleGroupContextValue<TValue>;\n}\n\nexport { ToggleGroupContext };\n"],"mappings":";;;AAcA,IAAMA,IAAqBC,EAAuC;AA0ClE,SAAgBC,EAEd,GAAuE;CACvE,IAAMC,UAAiBC,EAAM,aAAa,IAGpCC,KAAW,MACXC,MAAM,KAAA,IAAkB,CAAC,IACtB,MAAM,QAAQA,CAAC,IAAI,CAAC,GAAIA,CAAuB,IAAI,CAACA,CAAW,GAGlE,CAACC,GAAeC,KAAoBC,EACxCJ,EAAQD,EAAM,YAAY,CAC5B,GACM,CAACM,GAAkBC,KAAuBF,EAE9C,GACI,CAACG,GAAWC,KAAgBJ,EAEhC,CAAC,CAAC,GAEEK,UAAqBV,EAAM,UAAU,KAAA,GAErCW,UACJD,EAAa,IAAIT,EAAQD,EAAM,KAAK,IAAIG,EAAc;CAqDxD,OAAO;EACL;EACA;EACA,gBAAgBH,EAAM,aAAa;EACnC,mBAAmBA,EAAM,eAAe;EACxC,iBAAiBA,EAAM,aAAa;EACpC,WAAWA,EAAM;EACjB,eAAeA,EAAM,WAAW;EAChC,eAAeA,EAAM;EACrB,YAAYA,EAAM;EAClB;EACA,YA9DiB,MAAcW,EAAM,CAAC,CAAC,SAAST,CAAC;EA+DjD,aA5DA,GACA,GACA,MACS;GACT,IAAMU,IAAUD,EAAM,GAChBE,IAAUD,EAAQ,SAASE,CAAS,GAGtCC;GACJ,AAKEA,IALEhB,EAAS,IACJc,IACHD,EAAQ,QAAQ,MAAMV,MAAMY,CAAS,IACrC,CAAC,GAAGF,GAASE,CAAS,IAEnBD,IAAU,CAAC,IAAI,CAACC,CAAS;GAKlC,IAAME,IAAUC,EAAyBC,GAAOC,CAAO;GAYvD,AAXIpB,EAAS,IACXC,EAAO,gBACLe,GACAC,CACF,IAEAhB,EAAO,gBACLe,EAAK,IACLC,CACF,GAEE,GAAQ,eAGPN,EAAa,KAAGN,EAAiBW,CAAI;EAC5C;EA0BE;EACA,eAzBoB,OACpBN,GAAc,MAAS,CAAC,GAAGW,GAAMC,CAAK,CAAC,SAC1BZ,GAAc,MAASW,EAAK,QAAQ,MAASE,MAASD,CAAK,CAAC;EAwBzE,gBAAgBb,EAAU;EAC1B,iBAtBsB,MACtBA,EAAU,CAAC,CAAC,MAAM,MAAS,CAACc,EAAK,SAAS,CAAC,CAAC,EAAE,UAAUpB;EAsBxD,WApBgB,MAChBM,EAAU,CAAC,CAAC,MAAM,MAASc,EAAK,UAAUpB,KAAK,CAACoB,EAAK,SAAS,CAAC;CAoBjE;AACF;AASA,SAAgBC,EAEd,GAAoD;CACpD,IAAMC,IAAMC,EAAW7B,CAAkB;CACzC,IAAI,CAAC4B,GACH,MAAU,MAAM,IAAIE,EAAU,yBAAyB;CAEzD,OAAOF;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleGroup.js","names":["splitProps","JSX","clsx","callEventHandler","createToggleGroupState","ToggleGroupContext","toggleGroupVariants","ToggleGroupProps","ToggleGroupValue","useToggleGroupKeyboard","ToggleGroup","props","TValue","Element","local","rest","ctx","handleKeyDown","isVertical","orientation","_el$","_tmpl$","$$keydown","e","onKeyDown","defaultPrevented","_$spread","_$mergeProps","data-variant","variant","data-size","size","data-spacing","spacing","data-orientation","data-vertical","data-horizontal","data-multiple","multiple","data-disabled","disabled","aria-disabled","undefined","dir","style","CSSProperties","class","classList","_$insert","_$createComponent","Provider","value","children","_$delegateEvents"],"sources":["../../../../src/components/toggle-group/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import { splitProps, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { callEventHandler } from \"../call-event-handler\";\nimport {\n createToggleGroupState,\n ToggleGroupContext,\n} from \"./ToggleGroup.context\";\nimport { toggleGroupVariants } from \"./ToggleGroup.styles\";\nimport type { ToggleGroupProps, ToggleGroupValue } from \"./ToggleGroup.types\";\nimport { useToggleGroupKeyboard } from \"./useToggleGroupKeyboard\";\n\n/**\n * ToggleGroup 根组件:渲染 `<div role=\"group\">`,输出样式与语义钩子\n * (`data-orientation` / `data-vertical` / `data-horizontal` / `data-multiple`\n * / `data-disabled` / `data-spacing` / `data-variant` / `data-size`),\n * 并挂载 roving focus 键盘导航。\n *\n * 单选模式(默认)的 value 是标量,多选模式(`multiple`)才是数组:\n *\n * @example\n * ```tsx\n * // 单选\n * <ToggleGroup defaultValue=\"bold\" onValueChange={(v) => ...}>\n * <ToggleGroupItem value=\"bold\">Bold</ToggleGroupItem>\n * </ToggleGroup>\n *\n * // 多选\n * <ToggleGroup multiple value={[\"bold\"]} onValueChange={(v) => ...}>\n * <ToggleGroupItem value=\"bold\">Bold</ToggleGroupItem>\n * </ToggleGroup>\n * ```\n */\nexport function ToggleGroup<TValue extends ToggleGroupValue = ToggleGroupValue>(\n props: ToggleGroupProps<TValue>,\n): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"value\",\n \"defaultValue\",\n \"onValueChange\",\n \"multiple\",\n \"disabled\",\n \"orientation\",\n \"loopFocus\",\n \"spacing\",\n \"variant\",\n \"size\",\n \"class\",\n \"classList\",\n \"style\",\n \"dir\",\n \"onKeyDown\",\n \"children\",\n ]);\n\n // 默认值与单选/多选的差异统一由状态层处理,渲染用 ctx 里的已解析值\n const ctx = createToggleGroupState<TValue>(local);\n const { handleKeyDown } = useToggleGroupKeyboard(ctx);\n const isVertical = () => ctx.orientation() === \"vertical\";\n\n return (\n <div\n role=\"group\"\n data-slot=\"toggle-group\"\n data-variant={ctx.variant()}\n data-size={ctx.size()}\n data-spacing={ctx.spacing()}\n data-orientation={ctx.orientation()}\n // 拼接态样式依赖 data-vertical / data-horizontal(与 tabs 根保持一致)\n data-vertical={isVertical() ? \"\" : null}\n data-horizontal={isVertical() ? null : \"\"}\n data-multiple={ctx.multiple() ? \"\" : null}\n data-disabled={ctx.disabled() ? \"\" : null}\n aria-disabled={ctx.disabled() ? \"true\" : undefined}\n dir={local.dir}\n // --gap 作为 spacing 的样式入口,用户 style 可覆盖\n style={{ \"--gap\": ctx.spacing(), ...local.style } as JSX.CSSProperties}\n class={clsx(toggleGroupVariants(), local.class)}\n classList={local.classList}\n onKeyDown={(e) => {\n callEventHandler(local.onKeyDown, e);\n if (!e.defaultPrevented) handleKeyDown(e);\n }}\n {...rest}\n >\n <ToggleGroupContext.Provider value={ctx}>\n {local.children}\n </ToggleGroupContext.Provider>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAgCA,SAAgBU,EACdC,GACa;CACb,IAAM,CAACG,GAAOC,KAAQf,EAAWW,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAGKK,IAAMZ,EAA+BU,CAAK,GAC1C,EAAEG,qBAAkBR,EAAuBO,CAAG,GAC9CE,UAAmBF,EAAIG,YAAY,MAAM;CAE/C,cAAA;EAAA,IAAAC,IAAAC,EAAA;EA0BqB,OA1BrBD,EAAAE,aAmBgBC,MAAM;GAEhB,AADApB,EAAiBW,EAAMU,WAAWD,CAAC,GAC9BA,EAAEE,oBAAkBR,EAAcM,CAAC;EAC1C,GAACG,EAAAN,GAAAO,EAAA;GAAA,IAAA,iBAAA;IAAA,OAlBaX,EAAIa,QAAQ;GAAC;GAAA,IAAA,cAAA;IAAA,OAChBb,EAAIe,KAAK;GAAC;GAAA,IAAA,iBAAA;IAAA,OACPf,EAAIiB,QAAQ;GAAC;GAAA,IAAA,qBAAA;IAAA,OACTjB,EAAIG,YAAY;GAAC;GAAA,IAAA,kBAAA;IAAA,OAEpBD,EAAW,IAAI,KAAK;GAAI;GAAA,IAAA,oBAAA;IAAA,OACtBA,EAAW,IAAI,OAAO;GAAE;GAAA,IAAA,kBAAA;IAAA,OAC1BF,EAAIsB,SAAS,IAAI,KAAK;GAAI;GAAA,IAAA,kBAAA;IAAA,OAC1BtB,EAAIwB,SAAS,IAAI,KAAK;GAAI;GAAA,IAAA,kBAAA;IAAA,OAC1BxB,EAAIwB,SAAS,IAAI,SAASE,KAAAA;GAAS;GAAA,IAClDC,MAAG;IAAA,OAAE7B,EAAM6B;GAAG;GAAA,IAEdC,QAAK;IAAA,OAAE;KAAE,SAAS5B,EAAIiB,QAAQ;KAAG,GAAGnB,EAAM8B;IAAM;GAAsB;GAAA,
|
|
1
|
+
{"version":3,"file":"ToggleGroup.js","names":["splitProps","JSX","clsx","callEventHandler","createToggleGroupState","ToggleGroupContext","toggleGroupVariants","ToggleGroupProps","ToggleGroupValue","useToggleGroupKeyboard","ToggleGroup","props","TValue","Element","local","rest","ctx","handleKeyDown","isVertical","orientation","_el$","_tmpl$","$$keydown","e","onKeyDown","defaultPrevented","_$spread","_$mergeProps","data-variant","variant","data-size","size","data-spacing","spacing","data-orientation","data-vertical","data-horizontal","data-multiple","multiple","data-disabled","disabled","aria-disabled","undefined","dir","style","CSSProperties","class","classList","_$insert","_$createComponent","Provider","value","children","_$delegateEvents","_$mergeProps","_$createComponent","_$delegateEvents","_tmpl$","ToggleGroup","local","rest","splitProps","props","ctx","createToggleGroupState","useToggleGroupKeyboard","isVertical","_el$","callEventHandler","handleKeyDown","spread","mergeProps","\"class\"","clsx","toggleGroupVariants","insert","createComponent","ToggleGroupContext","delegateEvents"],"sources":["../../../../src/components/toggle-group/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import { splitProps, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { callEventHandler } from \"../call-event-handler\";\nimport {\n createToggleGroupState,\n ToggleGroupContext,\n} from \"./ToggleGroup.context\";\nimport { toggleGroupVariants } from \"./ToggleGroup.styles\";\nimport type { ToggleGroupProps, ToggleGroupValue } from \"./ToggleGroup.types\";\nimport { useToggleGroupKeyboard } from \"./useToggleGroupKeyboard\";\n\n/**\n * ToggleGroup 根组件:渲染 `<div role=\"group\">`,输出样式与语义钩子\n * (`data-orientation` / `data-vertical` / `data-horizontal` / `data-multiple`\n * / `data-disabled` / `data-spacing` / `data-variant` / `data-size`),\n * 并挂载 roving focus 键盘导航。\n *\n * 单选模式(默认)的 value 是标量,多选模式(`multiple`)才是数组:\n *\n * @example\n * ```tsx\n * // 单选\n * <ToggleGroup defaultValue=\"bold\" onValueChange={(v) => ...}>\n * <ToggleGroupItem value=\"bold\">Bold</ToggleGroupItem>\n * </ToggleGroup>\n *\n * // 多选\n * <ToggleGroup multiple value={[\"bold\"]} onValueChange={(v) => ...}>\n * <ToggleGroupItem value=\"bold\">Bold</ToggleGroupItem>\n * </ToggleGroup>\n * ```\n */\nexport function ToggleGroup<TValue extends ToggleGroupValue = ToggleGroupValue>(\n props: ToggleGroupProps<TValue>,\n): JSX.Element {\n const [local, rest] = splitProps(props, [\n \"value\",\n \"defaultValue\",\n \"onValueChange\",\n \"multiple\",\n \"disabled\",\n \"orientation\",\n \"loopFocus\",\n \"spacing\",\n \"variant\",\n \"size\",\n \"class\",\n \"classList\",\n \"style\",\n \"dir\",\n \"onKeyDown\",\n \"children\",\n ]);\n\n // 默认值与单选/多选的差异统一由状态层处理,渲染用 ctx 里的已解析值\n const ctx = createToggleGroupState<TValue>(local);\n const { handleKeyDown } = useToggleGroupKeyboard(ctx);\n const isVertical = () => ctx.orientation() === \"vertical\";\n\n return (\n <div\n role=\"group\"\n data-slot=\"toggle-group\"\n data-variant={ctx.variant()}\n data-size={ctx.size()}\n data-spacing={ctx.spacing()}\n data-orientation={ctx.orientation()}\n // 拼接态样式依赖 data-vertical / data-horizontal(与 tabs 根保持一致)\n data-vertical={isVertical() ? \"\" : null}\n data-horizontal={isVertical() ? null : \"\"}\n data-multiple={ctx.multiple() ? \"\" : null}\n data-disabled={ctx.disabled() ? \"\" : null}\n aria-disabled={ctx.disabled() ? \"true\" : undefined}\n dir={local.dir}\n // --gap 作为 spacing 的样式入口,用户 style 可覆盖\n style={{ \"--gap\": ctx.spacing(), ...local.style } as JSX.CSSProperties}\n class={clsx(toggleGroupVariants(), local.class)}\n classList={local.classList}\n onKeyDown={(e) => {\n callEventHandler(local.onKeyDown, e);\n if (!e.defaultPrevented) handleKeyDown(e);\n }}\n {...rest}\n >\n <ToggleGroupContext.Provider value={ctx}>\n {local.children}\n </ToggleGroupContext.Provider>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAgCA,SAAgBU,EACdC,GACa;CACb,IAAM,CAACG,GAAOC,KAAQf,EAAWW,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAGKK,IAAMZ,EAA+BU,CAAK,GAC1C,EAAEG,qBAAkBR,EAAuBO,CAAG,GAC9CE,UAAmBF,EAAIG,YAAY,MAAM;CAE/C,cAAA;EAAA,IAAAC,IAAAC,EAAA;EA0BqB,OA1BrBD,EAAAE,aAmBgBC,MAAM;GAEhB,AADApB,EAAiBW,EAAMU,WAAWD,CAAC,GAC9BA,EAAEE,oBAAkBR,EAAcM,CAAC;EAC1C,GAACG,EAAAN,GAAAO,EAAA;GAAA,IAAA,iBAAA;IAAA,OAlBaX,EAAIa,QAAQ;GAAC;GAAA,IAAA,cAAA;IAAA,OAChBb,EAAIe,KAAK;GAAC;GAAA,IAAA,iBAAA;IAAA,OACPf,EAAIiB,QAAQ;GAAC;GAAA,IAAA,qBAAA;IAAA,OACTjB,EAAIG,YAAY;GAAC;GAAA,IAAA,kBAAA;IAAA,OAEpBD,EAAW,IAAI,KAAK;GAAI;GAAA,IAAA,oBAAA;IAAA,OACtBA,EAAW,IAAI,OAAO;GAAE;GAAA,IAAA,kBAAA;IAAA,OAC1BF,EAAIsB,SAAS,IAAI,KAAK;GAAI;GAAA,IAAA,kBAAA;IAAA,OAC1BtB,EAAIwB,SAAS,IAAI,KAAK;GAAI;GAAA,IAAA,kBAAA;IAAA,OAC1BxB,EAAIwB,SAAS,IAAI,SAASE,KAAAA;GAAS;GAAA,IAClDC,MAAG;IAAA,OAAE7B,EAAM6B;GAAG;GAAA,IAEdC,QAAK;IAAA,OAAE;KAAE,SAAS5B,EAAIiB,QAAQ;KAAG,GAAGnB,EAAM8B;IAAM;GAAsB;GAAA,IAAA4B,QAAA;IAAA,OAC/DtE,EAAKI,EAAoB,GAAGQ,EAAMgC,KAAK;GAAC;GAAA,IAC/CC,YAAS;IAAA,OAAEjC,EAAMiC;GAAS;EAAA,GAKtBhC,CAAI,GAAA,IAAA,EAAA,GAAAiC,EAAA5B,GAAA6B,EAEP5C,EAAmB6C,UAAQ;GAACC,OAAOnC;GAAG,IAAAoC,WAAA;IAAA,OACpCtC,EAAMsC;GAAQ;EAAA,CAAA,CAAA,GAAAhC;CAAA,EAAA,CAAA;AAIvB;AAACiC,EAAA,CAAA,SAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleGroup.styles.js","names":[],"sources":["../../../../src/components/toggle-group/ToggleGroup/ToggleGroup.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\n/**\n * ToggleGroup 根容器样式。\n *\n * 根元素同时输出 `data-vertical` / `data-horizontal`(见 ToggleGroup.tsx),\n * 使 `data-vertical:*`、`group-data-vertical/toggle-group:*` 这类选择器生效 ——\n * item 的“拼接态”样式依赖后两者。\n */\nexport const toggleGroupVariants = cva(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch\",\n);\n"],"mappings":";;AASA,
|
|
1
|
+
{"version":3,"file":"ToggleGroup.styles.js","names":["toggleGroupVariants","cva"],"sources":["../../../../src/components/toggle-group/ToggleGroup/ToggleGroup.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\n/**\n * ToggleGroup 根容器样式。\n *\n * 根元素同时输出 `data-vertical` / `data-horizontal`(见 ToggleGroup.tsx),\n * 使 `data-vertical:*`、`group-data-vertical/toggle-group:*` 这类选择器生效 ——\n * item 的“拼接态”样式依赖后两者。\n */\nexport const toggleGroupVariants = cva(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch\",\n);\n"],"mappings":";;AASA,IAAaA,IAAsBC,EACjC,mMACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-change-event-details.js","names":[],"sources":["../../../../src/components/toggle-group/ToggleGroup/create-change-event-details.ts"],"sourcesContent":["import type { ToggleGroupChangeEventDetails } from \"./ToggleGroup.types\";\n\n/**\n * 构造 onValueChange 的事件详情(对齐 base-ui 的 `ChangeEventDetails`)。\n *\n * `isCanceled` / `isPropagationAllowed` 用 getter 暴露:回调内部可以即时读到\n * `cancel()` / `allowPropagation()` 之后的最新值,而不是创建时的快照。\n */\nexport function createChangeEventDetails(\n event: Event,\n trigger?: Element,\n): ToggleGroupChangeEventDetails {\n let canceled = false;\n let propagationAllowed = false;\n\n return {\n reason: \"none\",\n event,\n trigger,\n cancel: () => {\n canceled = true;\n },\n allowPropagation: () => {\n propagationAllowed = true;\n },\n get isCanceled() {\n return canceled;\n },\n get isPropagationAllowed() {\n return propagationAllowed;\n },\n };\n}\n"],"mappings":";AAQA,
|
|
1
|
+
{"version":3,"file":"create-change-event-details.js","names":["createChangeEventDetails","canceled","propagationAllowed"],"sources":["../../../../src/components/toggle-group/ToggleGroup/create-change-event-details.ts"],"sourcesContent":["import type { ToggleGroupChangeEventDetails } from \"./ToggleGroup.types\";\n\n/**\n * 构造 onValueChange 的事件详情(对齐 base-ui 的 `ChangeEventDetails`)。\n *\n * `isCanceled` / `isPropagationAllowed` 用 getter 暴露:回调内部可以即时读到\n * `cancel()` / `allowPropagation()` 之后的最新值,而不是创建时的快照。\n */\nexport function createChangeEventDetails(\n event: Event,\n trigger?: Element,\n): ToggleGroupChangeEventDetails {\n let canceled = false;\n let propagationAllowed = false;\n\n return {\n reason: \"none\",\n event,\n trigger,\n cancel: () => {\n canceled = true;\n },\n allowPropagation: () => {\n propagationAllowed = true;\n },\n get isCanceled() {\n return canceled;\n },\n get isPropagationAllowed() {\n return propagationAllowed;\n },\n };\n}\n"],"mappings":";AAQA,SAAgBA,EACd,GACA,GAC+B;CAC/B,IAAIC,IAAW,IACXC,IAAqB;CAEzB,OAAO;EACL,QAAQ;EACR;EACA;EACA,cAAc;GACZ,IAAW;EACb;EACA,wBAAwB;GACtB,IAAqB;EACvB;EACA,IAAI,aAAa;GACf,OAAOD;EACT;EACA,IAAI,uBAAuB;GACzB,OAAOC;EACT;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToggleGroupKeyboard.js","names":[],"sources":["../../../../src/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.ts"],"sourcesContent":["import type {\n ToggleGroupContextValue,\n ToggleGroupValue,\n} from \"./ToggleGroup.types\";\n\n/** 键盘导航按键:方向键 + Home/End(对齐 base-ui CompositeRoot 的 enableHomeAndEndKeys) */\nconst NAV_KEYS = new Set([\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\",\n]);\n\n/**\n * ToggleGroup 的 roving focus 键盘导航(纯逻辑,可独立单测)。\n *\n * 方向映射:\n * - horizontal + ltr: ArrowRight → next, ArrowLeft → prev\n * - horizontal + rtl: 左右反转\n * - vertical: ArrowDown → next, ArrowUp → prev\n * - Home → 第一个,End → 最后一个\n * - loopFocus=true 环绕,false 边界停止;跳过 disabled 的 item\n *\n * 只有焦点已经在某个 item 上时才接管按键,避免影响外部其它元素;\n * 移动焦点后由 item 的 onFocus 更新高亮。\n */\nexport function useToggleGroupKeyboard<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n>(ctx: ToggleGroupContextValue<TValue>) {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (ctx.disabled()) return;\n if (!NAV_KEYS.has(e.key)) return;\n\n const activeEl = document.activeElement as HTMLElement | null;\n const items = ctx.getItems().filter((item) => !item.disabled());\n if (items.length === 0) return;\n\n const currentIndex = items.findIndex((item) => item.element === activeEl);\n if (currentIndex === -1) return;\n\n const isVertical = ctx.orientation() === \"vertical\";\n // dir 未指定/auto 时,按根元素的实际书写方向判断(兼容祖先节点上的 dir)\n const dir = ctx.dir();\n const isRTL =\n dir === \"rtl\" ||\n (dir !== \"ltr\" &&\n typeof document !== \"undefined\" &&\n getComputedStyle(e.currentTarget as Element).direction === \"rtl\");\n\n let nextIndex: number | undefined;\n switch (e.key) {\n case \"Home\":\n nextIndex = 0;\n break;\n case \"End\":\n nextIndex = items.length - 1;\n break;\n case \"ArrowLeft\":\n if (isVertical) return;\n nextIndex = currentIndex + (isRTL ? 1 : -1);\n break;\n case \"ArrowRight\":\n if (isVertical) return;\n nextIndex = currentIndex + (isRTL ? -1 : 1);\n break;\n case \"ArrowUp\":\n if (!isVertical) return;\n nextIndex = currentIndex - 1;\n break;\n case \"ArrowDown\":\n if (!isVertical) return;\n nextIndex = currentIndex + 1;\n break;\n }\n\n if (nextIndex === undefined) return;\n\n // 方向键与当前布局匹配,接管默认滚动行为\n e.preventDefault();\n\n if (ctx.loopFocus()) {\n nextIndex = (nextIndex + items.length) % items.length;\n } else {\n nextIndex = Math.min(items.length - 1, Math.max(0, nextIndex));\n }\n\n items[nextIndex].element.focus();\n ctx.setHighlightedValue(items[nextIndex].value);\n };\n\n return { handleKeyDown };\n}\n"],"mappings":";AAMA,
|
|
1
|
+
{"version":3,"file":"useToggleGroupKeyboard.js","names":["NAV_KEYS","useToggleGroupKeyboard","ctx","e","activeEl","items","item","currentIndex","isVertical","dir","isRTL","nextIndex"],"sources":["../../../../src/components/toggle-group/ToggleGroup/useToggleGroupKeyboard.ts"],"sourcesContent":["import type {\n ToggleGroupContextValue,\n ToggleGroupValue,\n} from \"./ToggleGroup.types\";\n\n/** 键盘导航按键:方向键 + Home/End(对齐 base-ui CompositeRoot 的 enableHomeAndEndKeys) */\nconst NAV_KEYS = new Set([\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\",\n]);\n\n/**\n * ToggleGroup 的 roving focus 键盘导航(纯逻辑,可独立单测)。\n *\n * 方向映射:\n * - horizontal + ltr: ArrowRight → next, ArrowLeft → prev\n * - horizontal + rtl: 左右反转\n * - vertical: ArrowDown → next, ArrowUp → prev\n * - Home → 第一个,End → 最后一个\n * - loopFocus=true 环绕,false 边界停止;跳过 disabled 的 item\n *\n * 只有焦点已经在某个 item 上时才接管按键,避免影响外部其它元素;\n * 移动焦点后由 item 的 onFocus 更新高亮。\n */\nexport function useToggleGroupKeyboard<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n>(ctx: ToggleGroupContextValue<TValue>) {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (ctx.disabled()) return;\n if (!NAV_KEYS.has(e.key)) return;\n\n const activeEl = document.activeElement as HTMLElement | null;\n const items = ctx.getItems().filter((item) => !item.disabled());\n if (items.length === 0) return;\n\n const currentIndex = items.findIndex((item) => item.element === activeEl);\n if (currentIndex === -1) return;\n\n const isVertical = ctx.orientation() === \"vertical\";\n // dir 未指定/auto 时,按根元素的实际书写方向判断(兼容祖先节点上的 dir)\n const dir = ctx.dir();\n const isRTL =\n dir === \"rtl\" ||\n (dir !== \"ltr\" &&\n typeof document !== \"undefined\" &&\n getComputedStyle(e.currentTarget as Element).direction === \"rtl\");\n\n let nextIndex: number | undefined;\n switch (e.key) {\n case \"Home\":\n nextIndex = 0;\n break;\n case \"End\":\n nextIndex = items.length - 1;\n break;\n case \"ArrowLeft\":\n if (isVertical) return;\n nextIndex = currentIndex + (isRTL ? 1 : -1);\n break;\n case \"ArrowRight\":\n if (isVertical) return;\n nextIndex = currentIndex + (isRTL ? -1 : 1);\n break;\n case \"ArrowUp\":\n if (!isVertical) return;\n nextIndex = currentIndex - 1;\n break;\n case \"ArrowDown\":\n if (!isVertical) return;\n nextIndex = currentIndex + 1;\n break;\n }\n\n if (nextIndex === undefined) return;\n\n // 方向键与当前布局匹配,接管默认滚动行为\n e.preventDefault();\n\n if (ctx.loopFocus()) {\n nextIndex = (nextIndex + items.length) % items.length;\n } else {\n nextIndex = Math.min(items.length - 1, Math.max(0, nextIndex));\n }\n\n items[nextIndex].element.focus();\n ctx.setHighlightedValue(items[nextIndex].value);\n };\n\n return { handleKeyDown };\n}\n"],"mappings":";AAMA,IAAMA,oBAAW,IAAI,IAAI;CACvB;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAeD,SAAgBC,EAEd,GAAsC;CA8DtC,OAAO,EAAE,gBA7Dc,MAAqB;EAE1C,IADIC,EAAI,SAAS,KACb,CAACF,EAAS,IAAIG,EAAE,GAAG,GAAG;EAE1B,IAAMC,IAAW,SAAS,eACpBC,IAAQH,EAAI,SAAS,CAAC,CAAC,QAAQ,MAAS,CAACI,EAAK,SAAS,CAAC;EAC9D,IAAID,EAAM,WAAW,GAAG;EAExB,IAAME,IAAeF,EAAM,WAAW,MAASC,EAAK,YAAYF,CAAQ;EACxE,IAAIG,MAAiB,IAAI;EAEzB,IAAMC,IAAaN,EAAI,YAAY,MAAM,YAEnCO,IAAMP,EAAI,IAAI,GACdQ,IACJD,MAAQ,SACPA,MAAQ,SACP,OAAO,WAAa,OACpB,iBAAiBN,EAAE,aAAwB,CAAC,CAAC,cAAc,OAE3DQ;EACJ,QAAQR,EAAE,KAAV;GACE,KAAK;IACH,IAAY;IACZ;GACF,KAAK;IACH,IAAYE,EAAM,SAAS;IAC3B;GACF,KAAK;IACH,IAAIG,GAAY;IAChB,IAAYD,KAAgBG,IAAQ,IAAI;IACxC;GACF,KAAK;IACH,IAAIF,GAAY;IAChB,IAAYD,KAAgBG,IAAQ,KAAK;IACzC;GACF,KAAK;IACH,IAAI,CAACF,GAAY;IACjB,IAAYD,IAAe;IAC3B;GACF,KAAK;IACH,IAAI,CAACC,GAAY;IACjB,IAAYD,IAAe;EAE/B;EAEA,AAAII,MAAc,KAAA,MAGlBR,EAAE,eAAe,GAEjB,AAGEQ,IAHET,EAAI,UAAU,KACHS,IAAYN,EAAM,UAAUA,EAAM,SAEnC,KAAK,IAAIA,EAAM,SAAS,GAAG,KAAK,IAAI,GAAGM,CAAS,CAAC,GAG/DN,EAAMM,EAAU,CAAC,QAAQ,MAAM,GAC/BT,EAAI,oBAAoBG,EAAMM,EAAU,CAAC,KAAK;CAChD,EAEuB;AACzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleGroupItem.js","names":["mergeProps","onCleanup","onMount","splitProps","JSX","clsx","toggleVariants","callEventHandler","useToggleGroupContext","ToggleGroupValue","toggleGroupItemVariants","ToggleGroupItemProps","ToggleGroupItem","props","TValue","Element","ctx","merged","type","const","local","rest","elementRef","HTMLButtonElement","variant","size","pressed","isPressed","value","disabled","tabIndex","highlighted","highlightedValue","isUsable","undefined","isFirstEnabled","registerItem","element","_el$","_tmpl$","addEventListener","e","setHighlightedValue","onFocus","$$click","onClick","defaultPrevented","toggleItem","currentTarget","_$use","el","_$spread","_$mergeProps","tabindex","data-variant","data-size","data-spacing","spacing","data-pressed","data-disabled","data-state","aria-pressed","class","classList","_$insert","children","_$delegateEvents"],"sources":["../../../../src/components/toggle-group/ToggleGroupItem/ToggleGroupItem.tsx"],"sourcesContent":["import { mergeProps, onCleanup, onMount, splitProps, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { toggleVariants } from \"~/components/toggle/Toggle/Toggle.styles\";\nimport { callEventHandler } from \"../call-event-handler\";\nimport { useToggleGroupContext } from \"../ToggleGroup/ToggleGroup.context\";\nimport type { ToggleGroupValue } from \"../ToggleGroup/ToggleGroup.types\";\nimport { toggleGroupItemVariants } from \"./ToggleGroupItem.styles\";\nimport type { ToggleGroupItemProps } from \"./ToggleGroupItem.types\";\n\n/**\n * ToggleGroupItem:ToggleGroup 内的两态按钮。\n *\n * - 选中值由 ToggleGroup 统一持有,点击通过 `ctx.toggleItem` 触发变更\n * - disabled 继承整组状态,可在 item 上单独禁用\n * - roving tabindex:整组只有一个 tab 停靠点,方向键在同组内移动焦点\n */\nexport function ToggleGroupItem<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n>(props: ToggleGroupItemProps<TValue>): JSX.Element {\n // context 用宽值类型读取:item 无法从父级推导 group 的值类型,\n // 自己的 TValue 始终可以传给宽类型参数\n const ctx = useToggleGroupContext(\"ToggleGroupItem\");\n const merged = mergeProps({ type: \"button\" as const }, props);\n\n const [local, rest] = splitProps(merged, [\n \"value\",\n \"variant\",\n \"size\",\n \"class\",\n \"classList\",\n \"disabled\",\n \"type\",\n \"onClick\",\n \"onFocus\",\n \"children\",\n ]);\n\n let elementRef: HTMLButtonElement | undefined;\n\n // 组级未显式指定 variant/size 时,item 可单独覆盖\n const variant = () => ctx.variant() ?? local.variant ?? \"default\";\n const size = () => ctx.size() ?? local.size ?? \"default\";\n const pressed = () => ctx.isPressed(local.value);\n const disabled = () => ctx.disabled() || !!local.disabled;\n\n // roving tabindex:高亮 item 持 0;高亮缺失或指向不可用 item(disabled/卸载)时,\n // 首个可用 item 持 0 作为键盘起点,避免整组键盘不可达\n const tabIndex = () => {\n if (disabled()) return -1;\n const highlighted = ctx.highlightedValue();\n if (highlighted === local.value && ctx.isUsable(local.value)) return 0;\n if (\n (highlighted === undefined || !ctx.isUsable(highlighted)) &&\n ctx.isFirstEnabled(local.value)\n ) {\n return 0;\n }\n return -1;\n };\n\n onMount(() => {\n onCleanup(\n ctx.registerItem({\n value: local.value,\n disabled,\n element: elementRef!,\n }),\n );\n });\n\n return (\n <button\n ref={(el) => {\n elementRef = el;\n }}\n type={local.type}\n disabled={disabled()}\n tabindex={tabIndex()}\n data-slot=\"toggle-group-item\"\n data-variant={variant()}\n data-size={size()}\n data-spacing={ctx.spacing()}\n data-pressed={pressed() ? \"\" : null}\n data-disabled={disabled() ? \"\" : null}\n data-state={pressed() ? \"on\" : \"off\"}\n aria-pressed={pressed()}\n class={clsx(\n toggleVariants({ variant: variant(), size: size() }),\n toggleGroupItemVariants(),\n local.class,\n )}\n classList={local.classList}\n onClick={(e) => {\n // 用户回调优先,可用 preventDefault() 阻止本次选中\n callEventHandler(local.onClick, e);\n if (!e.defaultPrevented && !disabled()) {\n ctx.toggleItem(local.value, e, e.currentTarget);\n }\n }}\n onFocus={(e) => {\n // 聚焦更新高亮(roving focus 起点)\n if (!disabled()) ctx.setHighlightedValue(local.value);\n callEventHandler(local.onFocus, e);\n }}\n {...rest}\n >\n {local.children}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgBY,EAEdC,GAAkD;CAGlD,IAAMG,IAAMR,EAAsB,iBAAiB,GAC7CS,IAASjB,EAAW,EAAEkB,MAAM,SAAkB,GAAGL,CAAK,GAEtD,CAACO,GAAOC,KAAQlB,EAAWc,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEGK,GAGEE,UAAgBR,EAAIQ,QAAQ,KAAKJ,EAAMI,WAAW,WAClDC,UAAaT,EAAIS,KAAK,KAAKL,EAAMK,QAAQ,WACzCC,UAAgBV,EAAIW,UAAUP,EAAMQ,KAAK,GACzCC,UAAiBb,EAAIa,SAAS,KAAK,CAAC,CAACT,EAAMS,UAI3CC,UAAiB;EACrB,IAAID,EAAS,GAAG,OAAO;EACvB,IAAME,IAAcf,EAAIgB,iBAAiB;EAQzC,OAPID,MAAgBX,EAAMQ,SAASZ,EAAIiB,SAASb,EAAMQ,KAAK,MAExDG,MAAgBG,KAAAA,KAAa,CAAClB,EAAIiB,SAASF,CAAW,MACvDf,EAAImB,eAAef,EAAMQ,KAAK,IAEvB,IAEF;CACT;CAYA,OAVA1B,QAAc;EACZD,EACEe,EAAIoB,aAAa;GACfR,OAAOR,EAAMQ;GACbC;GACAQ,SAASf;EACX,CAAC,CACH;CACF,CAAC,UAED;EAAA,IAAAgB,IAAAC,EAAA;EAoCmB,OApCnBD,EAAAE,iBAAA,UA6BcC,MAAM;GAGdlC,AADKsB,EAAS,KAAGb,EAAI0B,oBAAoBtB,EAAMQ,KAAK,GACpDrB,EAAiBa,EAAMuB,SAASF,CAAC;EACnC,CAAC,GAAAH,EAAAM,WAXSH,MAAM;GAGd,AADAlC,EAAiBa,EAAMyB,SAASJ,CAAC,GAC7B,CAACA,EAAEK,oBAAoB,CAACjB,EAAS,KACnCb,EAAI+B,WAAW3B,EAAMQ,OAAOa,GAAGA,EAAEO,aAAa;EAElD,GAACC,GA1BKC,MAAO;GACX5B,IAAa4B;EACf,GAACZ,CAAA,GAAAa,EAAAb,GAAAc,EAAA;GAAA,IACDlC,OAAI;IAAA,OAAEE,EAAMF;GAAI;GAAA,IAChBW,WAAQ;IAAA,OAAEA,EAAS;GAAC;GAAA,IACpBwB,WAAQ;IAAA,OAAEvB,EAAS;GAAC;GAAA,IAAA,iBAAA;IAAA,OAENN,EAAQ;GAAC;GAAA,IAAA,cAAA;IAAA,OACZC,EAAK;GAAC;GAAA,IAAA,iBAAA;IAAA,OACHT,EAAIyC,QAAQ;GAAC;GAAA,IAAA,iBAAA;IAAA,OACb/B,EAAQ,IAAI,KAAK;GAAI;GAAA,IAAA,kBAAA;IAAA,OACpBG,EAAS,IAAI,KAAK;GAAI;GAAA,IAAA,eAAA;IAAA,OACzBH,EAAQ,IAAI,OAAO;GAAK;GAAA,IAAA,iBAAA;IAAA,OACtBA,EAAQ;GAAC;GAAA,
|
|
1
|
+
{"version":3,"file":"ToggleGroupItem.js","names":["mergeProps","onCleanup","onMount","splitProps","JSX","clsx","toggleVariants","callEventHandler","useToggleGroupContext","ToggleGroupValue","toggleGroupItemVariants","ToggleGroupItemProps","ToggleGroupItem","props","TValue","Element","ctx","merged","type","const","local","rest","elementRef","HTMLButtonElement","variant","size","pressed","isPressed","value","disabled","tabIndex","highlighted","highlightedValue","isUsable","undefined","isFirstEnabled","registerItem","element","_el$","_tmpl$","addEventListener","e","setHighlightedValue","onFocus","$$click","onClick","defaultPrevented","toggleItem","currentTarget","_$use","el","_$spread","_$mergeProps","tabindex","data-variant","data-size","data-spacing","spacing","data-pressed","data-disabled","data-state","aria-pressed","class","classList","_$insert","children","_$delegateEvents","mergeProps","_$mergeProps","_$delegateEvents","mergeProps$1","_tmpl$","ToggleGroupItem","ctx","useToggleGroupContext","merged","props","local","rest","splitProps","elementRef","variant","size","pressed","disabled","tabIndex","highlighted","onMount","_el$","callEventHandler","use","el","spread","mergeProps","\"class\"","clsx","toggleVariants","toggleGroupItemVariants","insert","delegateEvents"],"sources":["../../../../src/components/toggle-group/ToggleGroupItem/ToggleGroupItem.tsx"],"sourcesContent":["import { mergeProps, onCleanup, onMount, splitProps, type JSX } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { toggleVariants } from \"~/components/toggle/Toggle/Toggle.styles\";\nimport { callEventHandler } from \"../call-event-handler\";\nimport { useToggleGroupContext } from \"../ToggleGroup/ToggleGroup.context\";\nimport type { ToggleGroupValue } from \"../ToggleGroup/ToggleGroup.types\";\nimport { toggleGroupItemVariants } from \"./ToggleGroupItem.styles\";\nimport type { ToggleGroupItemProps } from \"./ToggleGroupItem.types\";\n\n/**\n * ToggleGroupItem:ToggleGroup 内的两态按钮。\n *\n * - 选中值由 ToggleGroup 统一持有,点击通过 `ctx.toggleItem` 触发变更\n * - disabled 继承整组状态,可在 item 上单独禁用\n * - roving tabindex:整组只有一个 tab 停靠点,方向键在同组内移动焦点\n */\nexport function ToggleGroupItem<\n TValue extends ToggleGroupValue = ToggleGroupValue,\n>(props: ToggleGroupItemProps<TValue>): JSX.Element {\n // context 用宽值类型读取:item 无法从父级推导 group 的值类型,\n // 自己的 TValue 始终可以传给宽类型参数\n const ctx = useToggleGroupContext(\"ToggleGroupItem\");\n const merged = mergeProps({ type: \"button\" as const }, props);\n\n const [local, rest] = splitProps(merged, [\n \"value\",\n \"variant\",\n \"size\",\n \"class\",\n \"classList\",\n \"disabled\",\n \"type\",\n \"onClick\",\n \"onFocus\",\n \"children\",\n ]);\n\n let elementRef: HTMLButtonElement | undefined;\n\n // 组级未显式指定 variant/size 时,item 可单独覆盖\n const variant = () => ctx.variant() ?? local.variant ?? \"default\";\n const size = () => ctx.size() ?? local.size ?? \"default\";\n const pressed = () => ctx.isPressed(local.value);\n const disabled = () => ctx.disabled() || !!local.disabled;\n\n // roving tabindex:高亮 item 持 0;高亮缺失或指向不可用 item(disabled/卸载)时,\n // 首个可用 item 持 0 作为键盘起点,避免整组键盘不可达\n const tabIndex = () => {\n if (disabled()) return -1;\n const highlighted = ctx.highlightedValue();\n if (highlighted === local.value && ctx.isUsable(local.value)) return 0;\n if (\n (highlighted === undefined || !ctx.isUsable(highlighted)) &&\n ctx.isFirstEnabled(local.value)\n ) {\n return 0;\n }\n return -1;\n };\n\n onMount(() => {\n onCleanup(\n ctx.registerItem({\n value: local.value,\n disabled,\n element: elementRef!,\n }),\n );\n });\n\n return (\n <button\n ref={(el) => {\n elementRef = el;\n }}\n type={local.type}\n disabled={disabled()}\n tabindex={tabIndex()}\n data-slot=\"toggle-group-item\"\n data-variant={variant()}\n data-size={size()}\n data-spacing={ctx.spacing()}\n data-pressed={pressed() ? \"\" : null}\n data-disabled={disabled() ? \"\" : null}\n data-state={pressed() ? \"on\" : \"off\"}\n aria-pressed={pressed()}\n class={clsx(\n toggleVariants({ variant: variant(), size: size() }),\n toggleGroupItemVariants(),\n local.class,\n )}\n classList={local.classList}\n onClick={(e) => {\n // 用户回调优先,可用 preventDefault() 阻止本次选中\n callEventHandler(local.onClick, e);\n if (!e.defaultPrevented && !disabled()) {\n ctx.toggleItem(local.value, e, e.currentTarget);\n }\n }}\n onFocus={(e) => {\n // 聚焦更新高亮(roving focus 起点)\n if (!disabled()) ctx.setHighlightedValue(local.value);\n callEventHandler(local.onFocus, e);\n }}\n {...rest}\n >\n {local.children}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;AAgBA,SAAgBY,EAEdC,GAAkD;CAGlD,IAAMG,IAAMR,EAAsB,iBAAiB,GAC7CS,IAASjB,EAAW,EAAEkB,MAAM,SAAkB,GAAGL,CAAK,GAEtD,CAACO,GAAOC,KAAQlB,EAAWc,GAAQ;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX,GAEGK,GAGEE,UAAgBR,EAAIQ,QAAQ,KAAKJ,EAAMI,WAAW,WAClDC,UAAaT,EAAIS,KAAK,KAAKL,EAAMK,QAAQ,WACzCC,UAAgBV,EAAIW,UAAUP,EAAMQ,KAAK,GACzCC,UAAiBb,EAAIa,SAAS,KAAK,CAAC,CAACT,EAAMS,UAI3CC,UAAiB;EACrB,IAAID,EAAS,GAAG,OAAO;EACvB,IAAME,IAAcf,EAAIgB,iBAAiB;EAQzC,OAPID,MAAgBX,EAAMQ,SAASZ,EAAIiB,SAASb,EAAMQ,KAAK,MAExDG,MAAgBG,KAAAA,KAAa,CAAClB,EAAIiB,SAASF,CAAW,MACvDf,EAAImB,eAAef,EAAMQ,KAAK,IAEvB,IAEF;CACT;CAYA,OAVA1B,QAAc;EACZD,EACEe,EAAIoB,aAAa;GACfR,OAAOR,EAAMQ;GACbC;GACAQ,SAASf;EACX,CAAC,CACH;CACF,CAAC,UAED;EAAA,IAAAgB,IAAAC,EAAA;EAoCmB,OApCnBD,EAAAE,iBAAA,UA6BcC,MAAM;GAGdlC,AADKsB,EAAS,KAAGb,EAAI0B,oBAAoBtB,EAAMQ,KAAK,GACpDrB,EAAiBa,EAAMuB,SAASF,CAAC;EACnC,CAAC,GAAAH,EAAAM,WAXSH,MAAM;GAGd,AADAlC,EAAiBa,EAAMyB,SAASJ,CAAC,GAC7B,CAACA,EAAEK,oBAAoB,CAACjB,EAAS,KACnCb,EAAI+B,WAAW3B,EAAMQ,OAAOa,GAAGA,EAAEO,aAAa;EAElD,GAACC,GA1BKC,MAAO;GACX5B,IAAa4B;EACf,GAACZ,CAAA,GAAAa,EAAAb,GAAAc,EAAA;GAAA,IACDlC,OAAI;IAAA,OAAEE,EAAMF;GAAI;GAAA,IAChBW,WAAQ;IAAA,OAAEA,EAAS;GAAC;GAAA,IACpBwB,WAAQ;IAAA,OAAEvB,EAAS;GAAC;GAAA,IAAA,iBAAA;IAAA,OAENN,EAAQ;GAAC;GAAA,IAAA,cAAA;IAAA,OACZC,EAAK;GAAC;GAAA,IAAA,iBAAA;IAAA,OACHT,EAAIyC,QAAQ;GAAC;GAAA,IAAA,iBAAA;IAAA,OACb/B,EAAQ,IAAI,KAAK;GAAI;GAAA,IAAA,kBAAA;IAAA,OACpBG,EAAS,IAAI,KAAK;GAAI;GAAA,IAAA,eAAA;IAAA,OACzBH,EAAQ,IAAI,OAAO;GAAK;GAAA,IAAA,iBAAA;IAAA,OACtBA,EAAQ;GAAC;GAAA,IAAAoE,QAAA;IAAA,OAChBzF,EACLC,EAAe;KAAEkB,SAASA,EAAQ;KAAGC,MAAMA,EAAK;IAAE,CAAC,GACnDf,EAAwB,GACxBU,EAAM0C,KACR;GAAC;GAAA,IACDC,YAAS;IAAA,OAAE3C,EAAM2C;GAAS;EAAA,GAatB1C,CAAI,GAAA,IAAA,EAAA,GAAA2C,EAAA1B,SAEPlB,EAAM6C,QAAQ,GAAA3B;CAAA,EAAA,CAAA;AAGrB;AAAC4B,EAAA,CAAA,OAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleGroupItem.styles.js","names":[],"sources":["../../../../src/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\n/**\n * ToggleGroupItem 位于 ToggleGroup 内时需要的“拼接态”样式。\n *\n * 依赖根元素上的钩子:\n * - `group-data-[spacing=0]/toggle-group`:spacing 为 0 时相邻 item 拼接为整体\n * - `data-[spacing=0]`:item 自身的 data-spacing(shadcn 同样在 item 上输出)\n * - `group-data-horizontal|vertical/toggle-group`:按方向决定首尾圆角/边框\n * - `data-[variant=outline]`:outline 拼接时只保留内侧边框\n *\n * variant / size 的基础样式仍由 `toggleVariants` 提供,这里只补“组合关系”。\n */\nexport const toggleGroupItemVariants = cva(\n \"shrink-0 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n);\n"],"mappings":";;AAaA,
|
|
1
|
+
{"version":3,"file":"ToggleGroupItem.styles.js","names":["toggleGroupItemVariants","cva"],"sources":["../../../../src/components/toggle-group/ToggleGroupItem/ToggleGroupItem.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\n/**\n * ToggleGroupItem 位于 ToggleGroup 内时需要的“拼接态”样式。\n *\n * 依赖根元素上的钩子:\n * - `group-data-[spacing=0]/toggle-group`:spacing 为 0 时相邻 item 拼接为整体\n * - `data-[spacing=0]`:item 自身的 data-spacing(shadcn 同样在 item 上输出)\n * - `group-data-horizontal|vertical/toggle-group`:按方向决定首尾圆角/边框\n * - `data-[variant=outline]`:outline 拼接时只保留内侧边框\n *\n * variant / size 的基础样式仍由 `toggleVariants` 提供,这里只补“组合关系”。\n */\nexport const toggleGroupItemVariants = cva(\n \"shrink-0 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n);\n"],"mappings":";;AAaA,IAAaA,IAA0BC,EACrC,k4BACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-event-handler.js","names":[],"sources":["../../../src/components/toggle-group/call-event-handler.ts"],"sourcesContent":["/**\n * 调用用户传入的事件处理器(兼容 Solid 的函数 / 函数数组 / bound 对象形式)。\n * splitProps 提取出的事件类型是 EventHandlerUnion,不能直接调用。\n */\nexport function callEventHandler<E extends Event>(\n handler: unknown,\n event: E,\n): void {\n const list = Array.isArray(handler) ? handler : [handler];\n for (const h of list) {\n if (typeof h === \"function\") (h as (e: E) => void)(event);\n }\n}\n"],"mappings":";AAIA,
|
|
1
|
+
{"version":3,"file":"call-event-handler.js","names":["callEventHandler","list","handler","h","event"],"sources":["../../../src/components/toggle-group/call-event-handler.ts"],"sourcesContent":["/**\n * 调用用户传入的事件处理器(兼容 Solid 的函数 / 函数数组 / bound 对象形式)。\n * splitProps 提取出的事件类型是 EventHandlerUnion,不能直接调用。\n */\nexport function callEventHandler<E extends Event>(\n handler: unknown,\n event: E,\n): void {\n const list = Array.isArray(handler) ? handler : [handler];\n for (const h of list) {\n if (typeof h === \"function\") (h as (e: E) => void)(event);\n }\n}\n"],"mappings":";AAIA,SAAgBA,EACd,GACA,GACM;CACN,IAAMC,IAAO,MAAM,QAAQC,CAAO,IAAIA,IAAU,CAACA,CAAO;CACxD,KAAK,IAAMC,KAAKF,GACd,AAAI,OAAOE,KAAM,cAAYA,EAAsBC,CAAK;AAE5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.context.js","names":[],"sources":["../../../../src/components/tooltip/Tooltip/Tooltip.context.ts"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\nimport type { TooltipContextValue } from \"./Tooltip.types\";\n\nexport const TooltipContext = createContext<TooltipContextValue>();\n\nexport function useTooltipContext(component: string): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <Tooltip> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"Tooltip.context.js","names":["TooltipContext","createContext","useTooltipContext","ctx","useContext","component"],"sources":["../../../../src/components/tooltip/Tooltip/Tooltip.context.ts"],"sourcesContent":["import { createContext, useContext } from \"solid-js\";\nimport type { TooltipContextValue } from \"./Tooltip.types\";\n\nexport const TooltipContext = createContext<TooltipContextValue>();\n\nexport function useTooltipContext(component: string): TooltipContextValue {\n const ctx = useContext(TooltipContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <Tooltip> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAGA,IAAaA,IAAiBC,EAAmC;AAEjE,SAAgBC,EAAkB,GAAwC;CACxE,IAAMC,IAAMC,EAAWJ,CAAc;CACrC,IAAI,CAACG,GACH,MAAU,MAAM,IAAIE,EAAU,qBAAqB;CAErD,OAAOF;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["createSignal","createMemo","createUniqueId","createEffect","onCleanup","JSX","TooltipContext","useTooltipProviderContext","useTooltipGroupContext","TooltipContextValue","TooltipProps","Rect","DEFAULT_OPEN_DELAY","DEFAULT_CLOSE_DELAY","Tooltip","props","Element","group","provider","internalOpen","setInternalOpen","defaultOpen","open","undefined","disabled","reference","setReference","floating","setFloating","HTMLElement","pendingSlideFrom","setPendingSlideFrom","suppressExitAnimation","setSuppressExitAnimation","commit","next","onOpenChange","openTimer","closeTimer","clearTimers","window","clearTimeout","requestOpen","claimedRect","claim","setTimeout","openDelay","delay","requestClose","closeDelay","openImmediate","closeImmediate","forceCloseForGroup","keepOpen","unregister","registerActive","rect","getBoundingClientRect","forceClose","contentId","ctx","clearPendingSlideFrom","consumeSuppressExitAnimation","value","_$createComponent","Provider","children"],"sources":["../../../../src/components/tooltip/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n createSignal,\n createMemo,\n createUniqueId,\n createEffect,\n onCleanup,\n type JSX,\n} from \"solid-js\";\nimport { TooltipContext } from \"./Tooltip.context\";\nimport { useTooltipProviderContext } from \"../TooltipProvider/TooltipProvider.context\";\nimport { useTooltipGroupContext } from \"../TooltipGroup/TooltipGroup.context\";\nimport type { TooltipContextValue, TooltipProps } from \"./Tooltip.types\";\nimport type { Rect } from \"~/lib\";\n\nconst DEFAULT_OPEN_DELAY = 0;\nconst DEFAULT_CLOSE_DELAY = 150;\n\n/**\n * Tooltip 根组件:不渲染任何 DOM,只负责状态管理 + 提供 context。\n * 真正的展示交给 <TooltipTrigger>/<TooltipContent>/<TooltipArrow>。\n *\n * 如果外面包了 <TooltipGroup>,组内相邻 trigger 之间切换 hover 会跳过\n * openDelay,并触发\"从旧位置滑到新位置\"的过渡(细节见 TooltipGroup.context.ts)。\n *\n * @example\n * ```tsx\n * <Tooltip openDelay={300}>\n * <TooltipTrigger>悬停我</TooltipTrigger>\n * <TooltipContent>\n * 提示内容\n * <TooltipArrow />\n * </TooltipContent>\n * </Tooltip>\n * ```\n */\nexport function Tooltip(props: TooltipProps): JSX.Element {\n const group = useTooltipGroupContext(); // undefined 是正常情况,代表没用 TooltipGroup\n const provider = useTooltipProviderContext();\n\n const [internalOpen, setInternalOpen] = createSignal(\n props.defaultOpen ?? false,\n );\n const open = createMemo(() =>\n props.open !== undefined ? props.open : internalOpen(),\n );\n const disabled = createMemo(() => !!props.disabled);\n\n const [reference, setReference] = createSignal<Element>();\n const [floating, setFloating] = createSignal<HTMLElement>();\n const [pendingSlideFrom, setPendingSlideFrom] = createSignal<Rect>();\n const [suppressExitAnimation, setSuppressExitAnimation] = createSignal(false);\n\n const commit = (next: boolean) => {\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n\n // 用 window.setTimeout/clearTimeout(而不是裸的全局 setTimeout)显式拿到\n // DOM lib 的重载(返回 number),避免和 @types/node 的 NodeJS.Timeout 重载冲突。\n let openTimer: number | undefined;\n let closeTimer: number | undefined;\n\n const clearTimers = () => {\n if (openTimer !== undefined) {\n window.clearTimeout(openTimer);\n openTimer = undefined;\n }\n if (closeTimer !== undefined) {\n window.clearTimeout(closeTimer);\n closeTimer = undefined;\n }\n };\n\n const requestOpen = () => {\n clearTimers();\n if (disabled() || open()) return;\n\n // 组内抢占:如果当前组里已经有一个活跃的 tooltip(哪怕它还在自己的\n // closeDelay 倒计时里,还没真正关闭),claim() 会立即强制关闭它、\n // 把它此刻的矩形要回来——这里直接跳过 openDelay,走\"滑入\"路径。\n const claimedRect = group?.claim();\n if (claimedRect) {\n setPendingSlideFrom(claimedRect);\n commit(true);\n return;\n }\n\n openTimer = window.setTimeout(\n () => commit(true),\n props.openDelay ?? provider?.delay() ?? DEFAULT_OPEN_DELAY,\n );\n };\n\n const requestClose = () => {\n clearTimers();\n closeTimer = window.setTimeout(\n () => commit(false),\n props.closeDelay ?? provider?.closeDelay() ?? DEFAULT_CLOSE_DELAY,\n );\n };\n\n const openImmediate = () => {\n if (disabled()) return;\n clearTimers();\n commit(true);\n };\n\n const closeImmediate = () => {\n clearTimers();\n commit(false);\n };\n\n /**\n * 专门给 <TooltipGroup> 抢占用的关闭方式:和 closeImmediate 的区别是,\n * 这里会额外标记 suppressExitAnimation,告诉 TooltipContent 的 Presence\n * 逻辑跳过退场动画、立即卸载——因为这次关闭是\"被新 tooltip 取代\",而不是\n * 用户主动关闭,旧的应该立刻让位,不该和正在滑入的新 tooltip 同时可见。\n * Escape/blur 等正常关闭场景依然走 closeImmediate,退场动画不受影响。\n */\n const forceCloseForGroup = () => {\n setSuppressExitAnimation(true);\n clearTimers();\n commit(false);\n };\n\n const keepOpen = () => {\n if (closeTimer !== undefined) {\n window.clearTimeout(closeTimer);\n closeTimer = undefined;\n }\n };\n\n onCleanup(clearTimers);\n\n // 打开期间把自己登记成\"组内当前活跃的 tooltip\",供其他 trigger 打开时\n // claim 走(触发平移过渡)。关闭或卸载时自动取消登记。\n createEffect(() => {\n if (!group || !open()) return;\n const unregister = group.registerActive({\n rect: () => floating()?.getBoundingClientRect(),\n forceClose: forceCloseForGroup,\n });\n onCleanup(unregister);\n });\n\n const contentId = `tooltip-${createUniqueId()}`;\n\n const ctx: TooltipContextValue = {\n open,\n disabled,\n contentId,\n reference,\n setReference,\n floating,\n setFloating,\n requestOpen,\n requestClose,\n openImmediate,\n closeImmediate,\n keepOpen,\n pendingSlideFrom,\n clearPendingSlideFrom: () => setPendingSlideFrom(undefined),\n suppressExitAnimation,\n consumeSuppressExitAnimation: () => {\n const value = suppressExitAnimation();\n if (value) setSuppressExitAnimation(false);\n return value;\n },\n };\n\n return (\n <TooltipContext.Provider value={ctx}>\n {props.children}\n </TooltipContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAcA,IAAMY,IAAqB,GACrBC,IAAsB;AAoB5B,SAAgBC,EAAQC,GAAkC;CACxD,IAAME,IAAQT,EAAuB,GAC/BU,IAAWX,EAA0B,GAErC,CAACY,GAAcC,KAAmBpB,EACtCe,EAAMM,eAAe,EACvB,GACMC,IAAOrB,QACXc,EAAMO,SAASC,KAAAA,IAAyBJ,EAAa,IAA1BJ,EAAMO,IACnC,GACME,IAAWvB,QAAiB,CAAC,CAACc,EAAMS,QAAQ,GAE5C,CAACC,GAAWC,KAAgB1B,EAAsB,GAClD,CAAC2B,GAAUC,KAAe5B,EAA0B,GACpD,CAAC8B,GAAkBC,KAAuB/B,EAAmB,GAC7D,CAACgC,GAAuBC,KAA4BjC,EAAa,EAAK,GAEtEkC,KAAUC,MAAkB;EAEhCpB,AADIA,EAAMO,SAASC,KAAAA,KAAWH,EAAgBe,CAAI,GAClDpB,EAAMqB,eAAeD,CAAI;CAC3B,GAIIE,GACAC,GAEEC,UAAoB;EAKxB,AAJIF,MAAcd,KAAAA,MAChBiB,OAAOC,aAAaJ,CAAS,GAC7BA,IAAYd,KAAAA,IAEVe,MAAef,KAAAA,MACjBiB,OAAOC,aAAaH,CAAU,GAC9BA,IAAaf,KAAAA;CAEjB,GAEMmB,UAAoB;EAExB,IADAH,EAAY,GACRf,EAAS,KAAKF,EAAK,GAAG;EAK1B,IAAMqB,IAAc1B,GAAO2B,MAAM;EACjC,IAAID,GAAa;GAEfT,AADAH,EAAoBY,CAAW,GAC/BT,EAAO,EAAI;GACX;EACF;EAEAG,IAAYG,OAAOK,iBACXX,EAAO,EAAI,GACjBnB,EAAM+B,aAAa5B,GAAU6B,MAAM,KAAKnC,CAC1C;CACF,GAEMoC,UAAqB;EAEzBV,AADAC,EAAY,GACZD,IAAaE,OAAOK,iBACZX,EAAO,EAAK,GAClBnB,EAAMkC,cAAc/B,GAAU+B,WAAW,KAAKpC,CAChD;CACF,GAEMqC,UAAsB;
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["createSignal","createMemo","createUniqueId","createEffect","onCleanup","JSX","TooltipContext","useTooltipProviderContext","useTooltipGroupContext","TooltipContextValue","TooltipProps","Rect","DEFAULT_OPEN_DELAY","DEFAULT_CLOSE_DELAY","Tooltip","props","Element","group","provider","internalOpen","setInternalOpen","defaultOpen","open","undefined","disabled","reference","setReference","floating","setFloating","HTMLElement","pendingSlideFrom","setPendingSlideFrom","suppressExitAnimation","setSuppressExitAnimation","commit","next","onOpenChange","openTimer","closeTimer","clearTimers","window","clearTimeout","requestOpen","claimedRect","claim","setTimeout","openDelay","delay","requestClose","closeDelay","openImmediate","closeImmediate","forceCloseForGroup","keepOpen","unregister","registerActive","rect","getBoundingClientRect","forceClose","contentId","ctx","clearPendingSlideFrom","consumeSuppressExitAnimation","value","_$createComponent","Provider","children","_$createComponent","DEFAULT_OPEN_DELAY","DEFAULT_CLOSE_DELAY","Tooltip","group","useTooltipGroupContext","provider","useTooltipProviderContext","internalOpen","setInternalOpen","createSignal","props","open","createMemo","disabled","reference","setReference","floating","setFloating","pendingSlideFrom","setPendingSlideFrom","suppressExitAnimation","setSuppressExitAnimation","commit","next","openTimer","closeTimer","clearTimers","requestOpen","claimedRect","requestClose","openImmediate","closeImmediate","forceCloseForGroup","keepOpen","onCleanup","createEffect","unregister","ctx","createUniqueId","value","createComponent","TooltipContext"],"sources":["../../../../src/components/tooltip/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n createSignal,\n createMemo,\n createUniqueId,\n createEffect,\n onCleanup,\n type JSX,\n} from \"solid-js\";\nimport { TooltipContext } from \"./Tooltip.context\";\nimport { useTooltipProviderContext } from \"../TooltipProvider/TooltipProvider.context\";\nimport { useTooltipGroupContext } from \"../TooltipGroup/TooltipGroup.context\";\nimport type { TooltipContextValue, TooltipProps } from \"./Tooltip.types\";\nimport type { Rect } from \"~/lib\";\n\nconst DEFAULT_OPEN_DELAY = 0;\nconst DEFAULT_CLOSE_DELAY = 150;\n\n/**\n * Tooltip 根组件:不渲染任何 DOM,只负责状态管理 + 提供 context。\n * 真正的展示交给 <TooltipTrigger>/<TooltipContent>/<TooltipArrow>。\n *\n * 如果外面包了 <TooltipGroup>,组内相邻 trigger 之间切换 hover 会跳过\n * openDelay,并触发\"从旧位置滑到新位置\"的过渡(细节见 TooltipGroup.context.ts)。\n *\n * @example\n * ```tsx\n * <Tooltip openDelay={300}>\n * <TooltipTrigger>悬停我</TooltipTrigger>\n * <TooltipContent>\n * 提示内容\n * <TooltipArrow />\n * </TooltipContent>\n * </Tooltip>\n * ```\n */\nexport function Tooltip(props: TooltipProps): JSX.Element {\n const group = useTooltipGroupContext(); // undefined 是正常情况,代表没用 TooltipGroup\n const provider = useTooltipProviderContext();\n\n const [internalOpen, setInternalOpen] = createSignal(\n props.defaultOpen ?? false,\n );\n const open = createMemo(() =>\n props.open !== undefined ? props.open : internalOpen(),\n );\n const disabled = createMemo(() => !!props.disabled);\n\n const [reference, setReference] = createSignal<Element>();\n const [floating, setFloating] = createSignal<HTMLElement>();\n const [pendingSlideFrom, setPendingSlideFrom] = createSignal<Rect>();\n const [suppressExitAnimation, setSuppressExitAnimation] = createSignal(false);\n\n const commit = (next: boolean) => {\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n\n // 用 window.setTimeout/clearTimeout(而不是裸的全局 setTimeout)显式拿到\n // DOM lib 的重载(返回 number),避免和 @types/node 的 NodeJS.Timeout 重载冲突。\n let openTimer: number | undefined;\n let closeTimer: number | undefined;\n\n const clearTimers = () => {\n if (openTimer !== undefined) {\n window.clearTimeout(openTimer);\n openTimer = undefined;\n }\n if (closeTimer !== undefined) {\n window.clearTimeout(closeTimer);\n closeTimer = undefined;\n }\n };\n\n const requestOpen = () => {\n clearTimers();\n if (disabled() || open()) return;\n\n // 组内抢占:如果当前组里已经有一个活跃的 tooltip(哪怕它还在自己的\n // closeDelay 倒计时里,还没真正关闭),claim() 会立即强制关闭它、\n // 把它此刻的矩形要回来——这里直接跳过 openDelay,走\"滑入\"路径。\n const claimedRect = group?.claim();\n if (claimedRect) {\n setPendingSlideFrom(claimedRect);\n commit(true);\n return;\n }\n\n openTimer = window.setTimeout(\n () => commit(true),\n props.openDelay ?? provider?.delay() ?? DEFAULT_OPEN_DELAY,\n );\n };\n\n const requestClose = () => {\n clearTimers();\n closeTimer = window.setTimeout(\n () => commit(false),\n props.closeDelay ?? provider?.closeDelay() ?? DEFAULT_CLOSE_DELAY,\n );\n };\n\n const openImmediate = () => {\n if (disabled()) return;\n clearTimers();\n commit(true);\n };\n\n const closeImmediate = () => {\n clearTimers();\n commit(false);\n };\n\n /**\n * 专门给 <TooltipGroup> 抢占用的关闭方式:和 closeImmediate 的区别是,\n * 这里会额外标记 suppressExitAnimation,告诉 TooltipContent 的 Presence\n * 逻辑跳过退场动画、立即卸载——因为这次关闭是\"被新 tooltip 取代\",而不是\n * 用户主动关闭,旧的应该立刻让位,不该和正在滑入的新 tooltip 同时可见。\n * Escape/blur 等正常关闭场景依然走 closeImmediate,退场动画不受影响。\n */\n const forceCloseForGroup = () => {\n setSuppressExitAnimation(true);\n clearTimers();\n commit(false);\n };\n\n const keepOpen = () => {\n if (closeTimer !== undefined) {\n window.clearTimeout(closeTimer);\n closeTimer = undefined;\n }\n };\n\n onCleanup(clearTimers);\n\n // 打开期间把自己登记成\"组内当前活跃的 tooltip\",供其他 trigger 打开时\n // claim 走(触发平移过渡)。关闭或卸载时自动取消登记。\n createEffect(() => {\n if (!group || !open()) return;\n const unregister = group.registerActive({\n rect: () => floating()?.getBoundingClientRect(),\n forceClose: forceCloseForGroup,\n });\n onCleanup(unregister);\n });\n\n const contentId = `tooltip-${createUniqueId()}`;\n\n const ctx: TooltipContextValue = {\n open,\n disabled,\n contentId,\n reference,\n setReference,\n floating,\n setFloating,\n requestOpen,\n requestClose,\n openImmediate,\n closeImmediate,\n keepOpen,\n pendingSlideFrom,\n clearPendingSlideFrom: () => setPendingSlideFrom(undefined),\n suppressExitAnimation,\n consumeSuppressExitAnimation: () => {\n const value = suppressExitAnimation();\n if (value) setSuppressExitAnimation(false);\n return value;\n },\n };\n\n return (\n <TooltipContext.Provider value={ctx}>\n {props.children}\n </TooltipContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAcA,IAAMY,IAAqB,GACrBC,IAAsB;AAoB5B,SAAgBC,EAAQC,GAAkC;CACxD,IAAME,IAAQT,EAAuB,GAC/BU,IAAWX,EAA0B,GAErC,CAACY,GAAcC,KAAmBpB,EACtCe,EAAMM,eAAe,EACvB,GACMC,IAAOrB,QACXc,EAAMO,SAASC,KAAAA,IAAyBJ,EAAa,IAA1BJ,EAAMO,IACnC,GACME,IAAWvB,QAAiB,CAAC,CAACc,EAAMS,QAAQ,GAE5C,CAACC,GAAWC,KAAgB1B,EAAsB,GAClD,CAAC2B,GAAUC,KAAe5B,EAA0B,GACpD,CAAC8B,GAAkBC,KAAuB/B,EAAmB,GAC7D,CAACgC,GAAuBC,KAA4BjC,EAAa,EAAK,GAEtEkC,KAAUC,MAAkB;EAEhCpB,AADIA,EAAMO,SAASC,KAAAA,KAAWH,EAAgBe,CAAI,GAClDpB,EAAMqB,eAAeD,CAAI;CAC3B,GAIIE,GACAC,GAEEC,UAAoB;EAKxB,AAJIF,MAAcd,KAAAA,MAChBiB,OAAOC,aAAaJ,CAAS,GAC7BA,IAAYd,KAAAA,IAEVe,MAAef,KAAAA,MACjBiB,OAAOC,aAAaH,CAAU,GAC9BA,IAAaf,KAAAA;CAEjB,GAEMmB,UAAoB;EAExB,IADAH,EAAY,GACRf,EAAS,KAAKF,EAAK,GAAG;EAK1B,IAAMqB,IAAc1B,GAAO2B,MAAM;EACjC,IAAID,GAAa;GAEfT,AADAH,EAAoBY,CAAW,GAC/BT,EAAO,EAAI;GACX;EACF;EAEAG,IAAYG,OAAOK,iBACXX,EAAO,EAAI,GACjBnB,EAAM+B,aAAa5B,GAAU6B,MAAM,KAAKnC,CAC1C;CACF,GAEMoC,UAAqB;EAEzBV,AADAC,EAAY,GACZD,IAAaE,OAAOK,iBACZX,EAAO,EAAK,GAClBnB,EAAMkC,cAAc/B,GAAU+B,WAAW,KAAKpC,CAChD;CACF,GAEMqC,UAAsB;EAC1B,AAAI1B,EAAS,MACbe,EAAY,GACZL,EAAO,EAAI;CACb,GAEMiB,UAAuB;EAE3BjB,AADAK,EAAY,GACZL,EAAO,EAAK;CACd,GASMkB,UAA2B;EAG/BlB,AAFAD,EAAyB,EAAI,GAC7BM,EAAY,GACZL,EAAO,EAAK;CACd,GAEMmB,UAAiB;EACrB,AAAIf,MAAef,KAAAA,MACjBiB,OAAOC,aAAaH,CAAU,GAC9BA,IAAaf,KAAAA;CAEjB;CAMApB,AAJAC,EAAUmC,CAAW,GAIrBpC,QAAmB;EACjB,IAAI,CAACc,KAAS,CAACK,EAAK,GAAG;EACvB,IAAMgC,IAAarC,EAAMsC,eAAe;GACtCC,YAAY7B,EAAS,CAAC,EAAE8B,sBAAsB;GAC9CC,YAAYN;EACd,CAAC;EACDhD,EAAUkD,CAAU;CACtB,CAAC;CAID,IAAMM,IAA2B;EAC/BtC;EACAE;EACAmC,WAAAA,WAL2BzD,EAAe;EAM1CuB;EACAC;EACAC;EACAC;EACAc;EACAM;EACAE;EACAC;EACAE;EACAvB;EACA+B,6BAA6B9B,EAAoBR,KAAAA,CAAS;EAC1DS;EACA8B,oCAAoC;GAClC,IAAMC,IAAQ/B,EAAsB;GAEpC,OADI+B,KAAO9B,EAAyB,EAAK,GAClC8B;EACT;CACF;CAEA,OAAAC,EACG1D,EAAe2D,UAAQ;EAACF,OAAOH;EAAG,IAAAM,WAAA;GAAA,OAChCnD,EAAMmD;EAAQ;CAAA,CAAA;AAGrB"}
|
|
@@ -6,4 +6,4 @@ export interface TooltipArrowProps {
|
|
|
6
6
|
* 采用 shadcn Base UI 的定位方式:通过 data-side / data-align 和 CSS 变量
|
|
7
7
|
* 完成贴边与对齐,不手动计算 top/left。
|
|
8
8
|
*/
|
|
9
|
-
export declare function TooltipArrow(props: TooltipArrowProps): import(
|
|
9
|
+
export declare function TooltipArrow(props: TooltipArrowProps): import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipArrow.js","names":["createMemo","getAlignment","getSide","clsx","useTooltipContentContext","TooltipArrowProps","class","TooltipArrow","props","ctx","side","placement","align","triggerWidth","reference","getBoundingClientRect","width","_el$","_tmpl$","_ref$","setArrowElement","_$use","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","_$setAttribute","t","a","_$setStyleProperty","o","_$className","undefined"],"sources":["../../../../src/components/tooltip/TooltipArrow/TooltipArrow.tsx"],"sourcesContent":["import { createMemo } from \"solid-js\";\nimport { getAlignment, getSide } from \"~/lib\";\nimport { clsx } from \"~/utils\";\nimport { useTooltipContentContext } from \"../TooltipContent/TooltipContent.context\";\n\nexport interface TooltipArrowProps {\n class?: string;\n}\n\n/**\n * 箭头组件,必须渲染在 <TooltipContent> 内部。\n * 采用 shadcn Base UI 的定位方式:通过 data-side / data-align 和 CSS 变量\n * 完成贴边与对齐,不手动计算 top/left。\n */\nexport function TooltipArrow(props: TooltipArrowProps) {\n const ctx = useTooltipContentContext(\"TooltipArrow\");\n\n const side = createMemo(() => getSide(ctx.placement()));\n const align = createMemo(() => getAlignment(ctx.placement()) ?? \"center\");\n\n const triggerWidth = () =>\n ctx.reference?.()?.getBoundingClientRect().width ?? 0;\n\n return (\n <div\n ref={ctx.setArrowElement}\n data-side={side()}\n data-align={align()}\n style={{ \"--arrow-offset\": `${triggerWidth() / 2}px` }}\n class={clsx(\n \"absolute size-2.5 z-50 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground\",\n \"data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2\",\n \"data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2\",\n \"data-[side=left]:top-1/2! data-[side=left]:right-[-0.175rem] data-[side=left]:-translate-y-1/2\",\n \"data-[side=right]:top-1/2! data-[side=right]:left-[-0.175rem] data-[side=right]:-translate-y-1/2\",\n \"data-[side=top]:-bottom-2.5 data-[side=top]:data-[align=center]:left-1/2 data-[side=top]:data-[align=center]:-translate-x-1/2 data-[side=top]:data-[align=start]:left-(--arrow-offset) data-[side=top]:data-[align=start]:-translate-x-1/2 data-[side=top]:data-[align=end]:right-(--arrow-offset) data-[side=top]:data-[align=end]:translate-x-1/2\",\n \"data-[side=bottom]:top-1 data-[side=bottom]:data-[align=center]:left-1/2 data-[side=bottom]:data-[align=center]:-translate-x-1/2 data-[side=bottom]:data-[align=start]:left-(--arrow-offset) data-[side=bottom]:data-[align=start]:-translate-x-1/2 data-[side=bottom]:data-[align=end]:right-(--arrow-offset) data-[side=bottom]:data-[align=end]:translate-x-1/2\",\n props.class,\n )}\n aria-hidden=\"true\"\n />\n );\n}\n"],"mappings":";;;;;;;AAcA,SAAgBO,EAAaC,GAA0B;CACrD,IAAMC,IAAML,EAAyB,cAAc,GAE7CM,IAAOV,QAAiBE,EAAQO,EAAIE,UAAU,CAAC,CAAC,GAChDC,IAAQZ,QAAiBC,EAAaQ,EAAIE,UAAU,CAAC,KAAK,QAAQ,GAElEE,UACJJ,EAAIK,YAAY,CAAC,EAAEC,sBAAsB,CAAC,CAACC,SAAS;CAEtD,cAAA;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAESV,EAAIW;EAaR,OAbuB,OAAAD,KAAA,aAAAE,EAAAF,GAAAF,CAAA,IAAnBR,EAAIW,kBAAeH,GAAAK,GAAAC,MAAA;GAAA,IAAAC,IACbd,EAAK,GAACe,IACLb,EAAM,GAACc,IACQ,GAAGb,EAAa,IAAI,EAAC,KAAIc,IAC7CxB,EACL,0GACA,0GACA,iHACA,kGACA,oGACA,uVACA,sWACAK,EAAMF,KACR;GAAC,OAAAkB,MAAAD,EAAAK,KAAAC,EAAAZ,GAAA,aAAAM,EAAAK,IAAAJ,CAAA,GAAAC,MAAAF,EAAAO,KAAAD,EAAAZ,GAAA,cAAAM,EAAAO,IAAAL,CAAA,GAAAC,MAAAH,EAAAQ,KAAAC,EAAAf,GAAA,kBAAAM,EAAAQ,IAAAL,CAAA,GAAAC,MAAAJ,EAAAU,KAAAC,EAAAjB,GAAAM,EAAAU,IAAAN,CAAA,GAAAJ;EAAA,GAAA;GAAAK,GAAAO,KAAAA;GAAAL,GAAAK,KAAAA;GAAAJ,GAAAI,KAAAA;GAAAF,GAAAE,KAAAA;EAAA,CAAA,GAAAlB;CAAA,EAAA,CAAA;AAIP"}
|
|
1
|
+
{"version":3,"file":"TooltipArrow.js","names":["createMemo","getAlignment","getSide","clsx","useTooltipContentContext","TooltipArrowProps","class","TooltipArrow","props","ctx","side","placement","align","triggerWidth","reference","getBoundingClientRect","width","_el$","_tmpl$","_ref$","setArrowElement","_$use","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","_$setAttribute","t","a","_$setStyleProperty","o","_$className","undefined","_$use","_$setAttribute","_$setStyleProperty","_$className","_tmpl$","TooltipArrow","ctx","useTooltipContentContext","side","createMemo","getSide","align","getAlignment","triggerWidth","_el$","_ref$","use","effect","_v$","_v$2","_v$3","_v$4","clsx","props","_p$","setAttribute","setStyleProperty","className"],"sources":["../../../../src/components/tooltip/TooltipArrow/TooltipArrow.tsx"],"sourcesContent":["import { createMemo } from \"solid-js\";\nimport { getAlignment, getSide } from \"~/lib\";\nimport { clsx } from \"~/utils\";\nimport { useTooltipContentContext } from \"../TooltipContent/TooltipContent.context\";\n\nexport interface TooltipArrowProps {\n class?: string;\n}\n\n/**\n * 箭头组件,必须渲染在 <TooltipContent> 内部。\n * 采用 shadcn Base UI 的定位方式:通过 data-side / data-align 和 CSS 变量\n * 完成贴边与对齐,不手动计算 top/left。\n */\nexport function TooltipArrow(props: TooltipArrowProps) {\n const ctx = useTooltipContentContext(\"TooltipArrow\");\n\n const side = createMemo(() => getSide(ctx.placement()));\n const align = createMemo(() => getAlignment(ctx.placement()) ?? \"center\");\n\n const triggerWidth = () =>\n ctx.reference?.()?.getBoundingClientRect().width ?? 0;\n\n return (\n <div\n ref={ctx.setArrowElement}\n data-side={side()}\n data-align={align()}\n style={{ \"--arrow-offset\": `${triggerWidth() / 2}px` }}\n class={clsx(\n \"absolute size-2.5 z-50 translate-y-[calc(-50%-2px)] rotate-45 rounded-xs bg-foreground fill-foreground\",\n \"data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2\",\n \"data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2\",\n \"data-[side=left]:top-1/2! data-[side=left]:right-[-0.175rem] data-[side=left]:-translate-y-1/2\",\n \"data-[side=right]:top-1/2! data-[side=right]:left-[-0.175rem] data-[side=right]:-translate-y-1/2\",\n \"data-[side=top]:-bottom-2.5 data-[side=top]:data-[align=center]:left-1/2 data-[side=top]:data-[align=center]:-translate-x-1/2 data-[side=top]:data-[align=start]:left-(--arrow-offset) data-[side=top]:data-[align=start]:-translate-x-1/2 data-[side=top]:data-[align=end]:right-(--arrow-offset) data-[side=top]:data-[align=end]:translate-x-1/2\",\n \"data-[side=bottom]:top-1 data-[side=bottom]:data-[align=center]:left-1/2 data-[side=bottom]:data-[align=center]:-translate-x-1/2 data-[side=bottom]:data-[align=start]:left-(--arrow-offset) data-[side=bottom]:data-[align=start]:-translate-x-1/2 data-[side=bottom]:data-[align=end]:right-(--arrow-offset) data-[side=bottom]:data-[align=end]:translate-x-1/2\",\n props.class,\n )}\n aria-hidden=\"true\"\n />\n );\n}\n"],"mappings":";;;;;;;AAcA,SAAgBO,EAAaC,GAA0B;CACrD,IAAMC,IAAML,EAAyB,cAAc,GAE7CM,IAAOV,QAAiBE,EAAQO,EAAIE,UAAU,CAAC,CAAC,GAChDC,IAAQZ,QAAiBC,EAAaQ,EAAIE,UAAU,CAAC,KAAK,QAAQ,GAElEE,UACJJ,EAAIK,YAAY,CAAC,EAAEC,sBAAsB,CAAC,CAACC,SAAS;CAEtD,cAAA;EAAA,IAAAC,IAAAC,EAAA,GAAAC,IAESV,EAAIW;EAaR,OAbuB,OAAAD,KAAA,aAAAE,EAAAF,GAAAF,CAAA,IAAnBR,EAAIW,kBAAeH,GAAAK,GAAAC,MAAA;GAAA,IAAAC,IACbd,EAAK,GAACe,IACLb,EAAM,GAACc,IACQ,GAAGb,EAAa,IAAI,EAAC,KAAIc,IAC7CxB,EACL,0GACA,0GACA,iHACA,kGACA,oGACA,uVACA,sWACAK,EAAMF,KACR;GAAC,OAAAkB,MAAAD,EAAAK,KAAAC,EAAAZ,GAAA,aAAAM,EAAAK,IAAAJ,CAAA,GAAAC,MAAAF,EAAAO,KAAAD,EAAAZ,GAAA,cAAAM,EAAAO,IAAAL,CAAA,GAAAC,MAAAH,EAAAQ,KAAAC,EAAAf,GAAA,kBAAAM,EAAAQ,IAAAL,CAAA,GAAAC,MAAAJ,EAAAU,KAAAC,EAAAjB,GAAAM,EAAAU,IAAAN,CAAA,GAAAJ;EAAA,GAAA;GAAAK,GAAAO,KAAAA;GAAAL,GAAAK,KAAAA;GAAAJ,GAAAI,KAAAA;GAAAF,GAAAE,KAAAA;EAAA,CAAA,GAAAlB;CAAA,EAAA,CAAA;AAIP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.context.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type { MiddlewareData, Placement } from \"~/lib\";\n\nexport interface TooltipContentContextValue {\n /** createPositioner 产出的 middlewareData,TooltipArrow 从里面取 arrow 中间件算好的偏移量 */\n middlewareData: Accessor<MiddlewareData>;\n /** 触发器元素访问器,TooltipArrow 用它计算 --arrow-offset */\n reference: Accessor<Element | undefined>;\n /** 经过 flip 调整后的最终 placement,决定箭头贴哪条边、朝哪个方向 */\n placement: Accessor<Placement>;\n /** TooltipArrow 挂载时用来把自己的 DOM 节点注册给 arrow middleware(Element 而不是 HTMLElement,兼容 SVG 箭头) */\n setArrowElement: (el: Element) => void;\n /**\n * 驱动进出场动画的状态,和 TooltipContent 内层元素的 data-state 用的是\n * 同一个信号——TooltipArrow 应该用它独立播放自己的一份动画,而不是依赖\n * \"作为内层元素的子节点、被动继承内层的 transform/opacity 动画\"这种隐式\n * 机制(内层的 zoom-in-95 动画会给它加一个非 none 的 transform,CSS 规范\n * 规定这会让内层变成子元素新的\"包含块\",和箭头故意跳过内层、以外层为\n * 基准的设计相冲突,动画播放期间会让\"父子两层谁负责什么\"变得不可靠)。\n */\n animationState: Accessor<\"open\" | \"closed\">;\n}\n\nexport const TooltipContentContext =\n createContext<TooltipContentContextValue>();\n\nexport function useTooltipContentContext(\n component: string,\n): TooltipContentContextValue {\n const ctx = useContext(TooltipContentContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <TooltipContent> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAuBA,
|
|
1
|
+
{"version":3,"file":"TooltipContent.context.js","names":["TooltipContentContext","createContext","useTooltipContentContext","ctx","useContext","component"],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.context.ts"],"sourcesContent":["import { createContext, useContext, type Accessor } from \"solid-js\";\nimport type { MiddlewareData, Placement } from \"~/lib\";\n\nexport interface TooltipContentContextValue {\n /** createPositioner 产出的 middlewareData,TooltipArrow 从里面取 arrow 中间件算好的偏移量 */\n middlewareData: Accessor<MiddlewareData>;\n /** 触发器元素访问器,TooltipArrow 用它计算 --arrow-offset */\n reference: Accessor<Element | undefined>;\n /** 经过 flip 调整后的最终 placement,决定箭头贴哪条边、朝哪个方向 */\n placement: Accessor<Placement>;\n /** TooltipArrow 挂载时用来把自己的 DOM 节点注册给 arrow middleware(Element 而不是 HTMLElement,兼容 SVG 箭头) */\n setArrowElement: (el: Element) => void;\n /**\n * 驱动进出场动画的状态,和 TooltipContent 内层元素的 data-state 用的是\n * 同一个信号——TooltipArrow 应该用它独立播放自己的一份动画,而不是依赖\n * \"作为内层元素的子节点、被动继承内层的 transform/opacity 动画\"这种隐式\n * 机制(内层的 zoom-in-95 动画会给它加一个非 none 的 transform,CSS 规范\n * 规定这会让内层变成子元素新的\"包含块\",和箭头故意跳过内层、以外层为\n * 基准的设计相冲突,动画播放期间会让\"父子两层谁负责什么\"变得不可靠)。\n */\n animationState: Accessor<\"open\" | \"closed\">;\n}\n\nexport const TooltipContentContext =\n createContext<TooltipContentContextValue>();\n\nexport function useTooltipContentContext(\n component: string,\n): TooltipContentContextValue {\n const ctx = useContext(TooltipContentContext);\n if (!ctx) {\n throw new Error(`<${component}> 必须渲染在 <TooltipContent> 内部`);\n }\n return ctx;\n}\n"],"mappings":";;AAuBA,IAAaA,IACXC,EAA0C;AAE5C,SAAgBC,EACd,GAC4B;CAC5B,IAAMC,IAAMC,EAAWJ,CAAqB;CAC5C,IAAI,CAACG,GACH,MAAU,MAAM,IAAIE,EAAU,4BAA4B;CAE5D,OAAOF;AACT"}
|
|
@@ -8,4 +8,4 @@ import { TooltipContentProps } from './TooltipContent.types';
|
|
|
8
8
|
* "离开 trigger 就关闭" 而选不到。如果你的 tooltip 内容很简单、不需要这个特性,
|
|
9
9
|
* 可以自己在外面包一层设置 pointer-events: none。
|
|
10
10
|
*/
|
|
11
|
-
export declare function TooltipContent(props: TooltipContentProps): import(
|
|
11
|
+
export declare function TooltipContent(props: TooltipContentProps): import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.js","names":["Show","onCleanup","splitProps","Portal","useTooltipContent","TooltipContentContext","getTransformOrigin","getSide","getAlignment","TooltipContentProps","clsx","TooltipContent","props","ctx","pos","mounted","animationState","setArrowElement","setContentElement","slideStyle","local","rest","_$createComponent","when","children","_el$","_tmpl$","_el$2","firstChild","_el$3","_$use","el","setFloating","undefined","_$spread","_$mergeProps","id","contentId","data-state","data-side","placement","data-align","onMouseEnter","keepOpen","onMouseLeave","requestClose","style","class","_$insert","Provider","value","middlewareData","reference","_$effect","_p$","_v$","_v$2","floatingStyles","opacity","isPositioned","_v$3","e","_$setAttribute","t","_$style","a"],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.tsx"],"sourcesContent":["import { Show, onCleanup, splitProps } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { useTooltipContent } from \"./useTooltipContent\";\nimport { TooltipContentContext } from \"./TooltipContent.context\";\nimport { getTransformOrigin } from \"./TooltipContent.utils\";\nimport { getSide, getAlignment } from \"~/lib\";\nimport type { TooltipContentProps } from \"./TooltipContent.types\";\nimport { clsx } from \"~/utils\";\n\n/**\n * Tooltip 的浮层内容。挂 Portal 到 body,用 position:fixed 定位。\n *\n * 内容本身默认是可以 hover 的(不是 pointer-events:none):鼠标移进 content\n * 会取消待执行的关闭计时器(ctx.keepOpen),移出才真正走 closeDelay 关闭——\n * 这样用户可以把鼠标从 trigger 移动到 tooltip 上选中里面的文字,不会因为\n * \"离开 trigger 就关闭\" 而选不到。如果你的 tooltip 内容很简单、不需要这个特性,\n * 可以自己在外面包一层设置 pointer-events: none。\n */\nexport function TooltipContent(props: TooltipContentProps) {\n const {\n ctx,\n pos,\n mounted,\n animationState,\n setArrowElement,\n setContentElement,\n slideStyle,\n } = useTooltipContent(() => props);\n\n // 只摘出内部要单独处理的几个字段,剩下的(style、data-*、onXxx 等任意原生\n // prop)原样透传给内层元素——和 TooltipTrigger 是同一套约定。\n const [local, rest] = splitProps(props, [\n \"side\",\n \"align\",\n \"sideOffset\",\n \"alignOffset\",\n \"collisionPadding\",\n \"class\",\n \"style\",\n \"children\",\n ]);\n\n return (\n <Show when={mounted()}>\n <Portal>\n {/*\n 外层:只负责定位(position:fixed 来自 floatingStyles),不设 overflow,\n 也不参与任何动画——它的 transform 已经被占用来做定位(translate(x,y)),\n 如果别的动画也要控制 transform 会互相冲突,所以动画都放在下面两层。\n */}\n <div\n ref={(el) => {\n ctx.setFloating(el);\n // Solid 的 ref 回调只在元素创建时触发一次,元素被移除时不会自动\n // 再调用一次传 undefined(这是 React 的约定,不是 Solid 的)。\n // 不手动清空的话,ctx.floating() 会一直指向一个已经从 DOM 里\n // 摘除的\"僵尸节点\",直到下次重新打开——期间如果被别处读取\n // (比如 TooltipGroup 抢占时读取矩形),getBoundingClientRect()\n // 对一个 detached 元素规范规定就是返回全 0 的矩形,会造成\n // \"滑动效果从左上角(0,0)滑入\"这种明显错误的观感。\n onCleanup(() => ctx.setFloating(undefined));\n }}\n data-placement={pos.placement()}\n style={{\n ...pos.floatingStyles(),\n \"z-index\": 1000,\n opacity: pos.isPositioned() ? 1 : 0,\n }}\n >\n {/*\n 滑动层:命中 <TooltipGroup> 抢占时,用来把整个 tooltip(内容+箭头)\n 从旧 tooltip 的位置平移过来(FLIP 技术,细节见 useTooltipContent 里\n 的 slideOffset 计算)。平时 slideStyle() 是空对象,这一层形同不存在。\n\n 这一层必须夹在\"定位层\"和\"样式/动画层\"之间、而不是随便找个地方加:\n 它自己也会用到 transform(滑动过程中),如果和定位层共用一个元素会\n 跟 translate(x,y) 冲突(原因同上);但它又不能在样式层(overflow:auto\n 那层)的下面/内部,因为箭头的 position:absolute 是故意跳过样式层、\n 以\"最近的已定位祖先\"为基准的(这是修复箭头戳出来触发滚动条那次的\n 设计),如果滑动层的 transform 出现在样式层内部,箭头的定位基准就会\n 变成滑动层而不是外层——效果上依然正确(滑动层的盒子和外层几乎重合),\n 但为了让\"定位基准\"这件事始终清晰、不产生\"技术上是谁、视觉上又是谁\"\n 的心智负担,把滑动层放在外层和样式层之间、维持这条链路的清晰顺序。\n */}\n <div style={slideStyle()}>\n {/*\n 内层:真正的视觉样式 + 进出场动画。\n data-state 跟着 animationState 走(不是 isVisible/mounted):\n - isVisible 变 false 的瞬间,animationState 立刻跟着变 closed,\n 触发退场动画的 class;\n - isVisible 变 true 时,animationState 会晚一帧才变 open,\n 留出时间让箭头(TooltipArrow)完成挂载、注册给 arrow middleware、\n 算出正确的位置偏移(细节见 useTooltipContent 里的注释);\n - mounted 会比 animationState 变 closed 更晚才变 false(见下面的\n Presence 逻辑),留出时间让退场动画播完。\n\n data-[state=open]/data-[state=closed] 这套 class 依赖 tailwindcss-animate\n 插件提供的 animate-in/animate-out/fade-in-0/zoom-in-95 等工具类——\n 如果你的项目还没装,`npm install tailwindcss-animate` 并在 tailwind\n config 里加上这个 plugin 即可;不想装的话,把这几个 data-[state=...]\n class 换成你自己写的 @keyframes + 对应 class 也一样能工作,\n Presence 逻辑(mounted 延迟卸载)不依赖具体用了哪套动画实现。\n\n 箭头(TooltipArrow)不依赖\"作为这个元素的子节点、被动继承这里的\n transform/opacity 动画\"这种隐式机制——它自己也从 context 里读到\n 同一个 animationState,独立播放一份自己的入场/退场动画,两者由\n 同一个信号同步触发。\n\n data-side/data-align 是从最终生效的 placement 拆出来的,驱动上面\n 这几条方向感知的 slide-in class,也顺带给 transform-origin 提供了\n 依据——缩放动画的锚点会落在\"贴近 trigger 的那条边\"上(细节见\n TooltipContent.utils.ts 里的 getTransformOrigin),而不是默认的\n 几何中心,这样整个入场效果才会像是\"从 trigger 那里长出来\",\n 贴近 shadcn 的实际观感。\n\n 特意没有 overflow:auto / max-height,tooltip 不支持内容超长时滚动——\n 宽度上限靠下面静态的 max-w-xs class 兜底,让文字自然换行;高度完全\n 不做限制。这不只是为了贴近 shadcn/Radix 的行为(它们的 tooltip 也不\n 允许滚动),还避免了一个真实踩过的坑:overflow:auto 配合这里的\n zoom-in-95 动画(会给这个元素加一个非 none 的 transform,CSS 规范\n 规定这会让它变成子元素新的包含块)曾经导致箭头戳出边缘的那部分被\n 误判成\"可滚动溢出\",表现为打开瞬间闪一下滚动条、箭头跟着被遮住,\n 动画播完滚动条消失、箭头才重新出现。去掉滚动能力后这个耦合从根上\n 就不存在了。\n */}\n <div\n ref={setContentElement}\n id={ctx.contentId}\n role=\"tooltip\"\n data-state={animationState()}\n data-side={getSide(pos.placement())}\n data-align={getAlignment(pos.placement()) ?? \"center\"}\n onMouseEnter={ctx.keepOpen}\n onMouseLeave={ctx.requestClose}\n style={{\n \"transform-origin\": getTransformOrigin(pos.placement()),\n ...(typeof local.style === \"object\" ? local.style : undefined),\n }}\n class={clsx(\n \"inline-flex w-fit max-w-xs items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background\",\n \"has-data-[slot=kbd]:pr-1.5\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n // 方向感知的滑入:不只是原地淡入缩放,还从\"贴近 trigger 的反方向\"\n // 轻微位移过来——比如 placement 是 top(content 在 trigger 上方),\n // 就从下方 8px(slide-in-from-bottom-2)滑上来,视觉上更像是从\n // trigger 那里\"冒出来\",而不是凭空原地出现。只在打开时生效,\n // 贴近 shadcn 的实际行为(它们的退场动画没有对应的滑出位移)。\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n local.class,\n )}\n {...rest}\n >\n <TooltipContentContext.Provider\n value={{\n middlewareData: pos.middlewareData,\n reference: ctx.reference,\n placement: pos.placement,\n setArrowElement,\n animationState,\n }}\n >\n {local.children}\n </TooltipContentContext.Provider>\n </div>\n </div>\n </div>\n </Portal>\n </Show>\n );\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgBW,EAAeC,GAA4B;CACzD,IAAM,EACJC,QACAC,QACAC,YACAC,mBACAC,oBACAC,sBACAC,kBACEf,QAAwBQ,CAAK,GAI3B,CAACQ,GAAOC,KAAQnB,EAAWU,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,OAAAU,EACGtB,GAAI;EAAA,IAACuB,OAAI;GAAA,OAAER,EAAQ;EAAC;EAAA,IAAAS,WAAA;GAAA,OAAAF,EAClBnB,GAAM,EAAA,IAAAqB,WAAA;IAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG,YAAAC,IAAAF,EAAAC;IAwCqB,OAxCrBE,GAOGC,MAAO;KASX9B,AARAY,EAAImB,YAAYD,CAAE,GAQlB9B,QAAgBY,EAAImB,YAAYC,KAAAA,CAAS,CAAC;IAC5C,GAACR,CAAA,GAAAK,EAiEQZ,GAAiBW,CAAA,GAAAK,EAAAL,GAAAM,EAAA;KAAA,IACtBC,KAAE;MAAA,OAAEvB,EAAIwB;KAAS;KAAA,IAAA,eAAA;MAAA,OAELrB,EAAe;KAAC;KAAA,IAAA,cAAA;MAAA,OACjBT,EAAQO,EAAI0B,UAAU,CAAC;KAAC;KAAA,IAAA,eAAA;MAAA,OACvBhC,EAAaM,EAAI0B,UAAU,CAAC,KAAK;KAAQ;KAAA,IACrDE,eAAY;MAAA,OAAE7B,EAAI8B;KAAQ;KAAA,IAC1BC,eAAY;MAAA,OAAE/B,EAAIgC;KAAY;KAAA,IAC9BC,QAAK;MAAA,OAAE;OACL,oBAAoBxC,EAAmBQ,EAAI0B,UAAU,CAAC;OACtD,GAAI,OAAOpB,EAAM0B,SAAU,WAAW1B,EAAM0B,QAAQb,KAAAA;MACtD;KAAC;KAAA,IAAA,QAAA;MAAA,OACMvB,EACL,gHACA,8BACA,yFACA,kGAMA,0CACA,0CACA,0CACA,0CACAU,EAAM2B,KACR;KAAC;IAAA,GACG1B,CAAI,GAAA,IAAA,EAAA,GAAA2B,EAAAnB,GAAAP,EAEPjB,EAAsB4C,UAAQ;KAAA,IAC7BC,QAAK;MAAA,OAAE;OACLC,gBAAgBrC,EAAIqC;OACpBC,WAAWvC,EAAIuC;OACfZ,WAAW1B,EAAI0B;OACfvB;OACAD;MACF;KAAC;KAAA,IAAAQ,WAAA;MAAA,OAEAJ,EAAMI;KAAQ;IAAA,CAAA,CAAA,GAAA6B,GAAAC,MAAA;KAAA,IAAAC,IAvGLzC,EAAI0B,UAAU,GAACgB,IACxB;MACL,GAAG1C,EAAI2C,eAAe;MAEtBC,SAAS5C,KAAI6C,aAAa;KAC5B,GAACC,IAiBWzC,EAAW;KAAC,OAAAoC,MAAAD,EAAAO,KAAAC,EAAArC,GAAA,kBAAA6B,EAAAO,IAAAN,CAAA,GAAAD,EAAAS,IAAAC,EAAAvC,GAAA+B,GAAAF,EAAAS,CAAA,GAAAT,EAAAW,IAAAD,EAAArC,GAAAiC,GAAAN,EAAAW,CAAA,GAAAX;IAAA,GAAA;KAAAO,GAAA5B,KAAAA;KAAA8B,GAAA9B,KAAAA;KAAAgC,GAAAhC,KAAAA;IAAA,CAAA,GAAAR;GAAA,EAAA,CAAA;EAAA;CAAA,CAAA;AAyFlC"}
|
|
1
|
+
{"version":3,"file":"TooltipContent.js","names":["Show","onCleanup","splitProps","Portal","useTooltipContent","TooltipContentContext","getTransformOrigin","getSide","getAlignment","TooltipContentProps","clsx","TooltipContent","props","ctx","pos","mounted","animationState","setArrowElement","setContentElement","slideStyle","local","rest","_$createComponent","when","children","_el$","_tmpl$","_el$2","firstChild","_el$3","_$use","el","setFloating","undefined","_$spread","_$mergeProps","id","contentId","data-state","data-side","placement","data-align","onMouseEnter","keepOpen","onMouseLeave","requestClose","style","class","_$insert","Provider","value","middlewareData","reference","_$effect","_p$","_v$","_v$2","floatingStyles","opacity","isPositioned","_v$3","e","_$setAttribute","t","_$style","a","_$createComponent","_$mergeProps","_$setAttribute","_$style","_tmpl$","TooltipContent","useTooltipContent","props","local","rest","splitProps","createComponent","Show","mounted","Portal","_el$","_el$2","_el$3","use","ctx","el","onCleanup","setContentElement","spread","mergeProps","animationState","getSide","pos","getAlignment","getTransformOrigin","\"class\"","clsx","insert","TooltipContentContext","effect","_v$","_v$2","_v$3","slideStyle","_p$","setAttribute","style"],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.tsx"],"sourcesContent":["import { Show, onCleanup, splitProps } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { useTooltipContent } from \"./useTooltipContent\";\nimport { TooltipContentContext } from \"./TooltipContent.context\";\nimport { getTransformOrigin } from \"./TooltipContent.utils\";\nimport { getSide, getAlignment } from \"~/lib\";\nimport type { TooltipContentProps } from \"./TooltipContent.types\";\nimport { clsx } from \"~/utils\";\n\n/**\n * Tooltip 的浮层内容。挂 Portal 到 body,用 position:fixed 定位。\n *\n * 内容本身默认是可以 hover 的(不是 pointer-events:none):鼠标移进 content\n * 会取消待执行的关闭计时器(ctx.keepOpen),移出才真正走 closeDelay 关闭——\n * 这样用户可以把鼠标从 trigger 移动到 tooltip 上选中里面的文字,不会因为\n * \"离开 trigger 就关闭\" 而选不到。如果你的 tooltip 内容很简单、不需要这个特性,\n * 可以自己在外面包一层设置 pointer-events: none。\n */\nexport function TooltipContent(props: TooltipContentProps) {\n const {\n ctx,\n pos,\n mounted,\n animationState,\n setArrowElement,\n setContentElement,\n slideStyle,\n } = useTooltipContent(() => props);\n\n // 只摘出内部要单独处理的几个字段,剩下的(style、data-*、onXxx 等任意原生\n // prop)原样透传给内层元素——和 TooltipTrigger 是同一套约定。\n const [local, rest] = splitProps(props, [\n \"side\",\n \"align\",\n \"sideOffset\",\n \"alignOffset\",\n \"collisionPadding\",\n \"class\",\n \"style\",\n \"children\",\n ]);\n\n return (\n <Show when={mounted()}>\n <Portal>\n {/*\n 外层:只负责定位(position:fixed 来自 floatingStyles),不设 overflow,\n 也不参与任何动画——它的 transform 已经被占用来做定位(translate(x,y)),\n 如果别的动画也要控制 transform 会互相冲突,所以动画都放在下面两层。\n */}\n <div\n ref={(el) => {\n ctx.setFloating(el);\n // Solid 的 ref 回调只在元素创建时触发一次,元素被移除时不会自动\n // 再调用一次传 undefined(这是 React 的约定,不是 Solid 的)。\n // 不手动清空的话,ctx.floating() 会一直指向一个已经从 DOM 里\n // 摘除的\"僵尸节点\",直到下次重新打开——期间如果被别处读取\n // (比如 TooltipGroup 抢占时读取矩形),getBoundingClientRect()\n // 对一个 detached 元素规范规定就是返回全 0 的矩形,会造成\n // \"滑动效果从左上角(0,0)滑入\"这种明显错误的观感。\n onCleanup(() => ctx.setFloating(undefined));\n }}\n data-placement={pos.placement()}\n style={{\n ...pos.floatingStyles(),\n \"z-index\": 1000,\n opacity: pos.isPositioned() ? 1 : 0,\n }}\n >\n {/*\n 滑动层:命中 <TooltipGroup> 抢占时,用来把整个 tooltip(内容+箭头)\n 从旧 tooltip 的位置平移过来(FLIP 技术,细节见 useTooltipContent 里\n 的 slideOffset 计算)。平时 slideStyle() 是空对象,这一层形同不存在。\n\n 这一层必须夹在\"定位层\"和\"样式/动画层\"之间、而不是随便找个地方加:\n 它自己也会用到 transform(滑动过程中),如果和定位层共用一个元素会\n 跟 translate(x,y) 冲突(原因同上);但它又不能在样式层(overflow:auto\n 那层)的下面/内部,因为箭头的 position:absolute 是故意跳过样式层、\n 以\"最近的已定位祖先\"为基准的(这是修复箭头戳出来触发滚动条那次的\n 设计),如果滑动层的 transform 出现在样式层内部,箭头的定位基准就会\n 变成滑动层而不是外层——效果上依然正确(滑动层的盒子和外层几乎重合),\n 但为了让\"定位基准\"这件事始终清晰、不产生\"技术上是谁、视觉上又是谁\"\n 的心智负担,把滑动层放在外层和样式层之间、维持这条链路的清晰顺序。\n */}\n <div style={slideStyle()}>\n {/*\n 内层:真正的视觉样式 + 进出场动画。\n data-state 跟着 animationState 走(不是 isVisible/mounted):\n - isVisible 变 false 的瞬间,animationState 立刻跟着变 closed,\n 触发退场动画的 class;\n - isVisible 变 true 时,animationState 会晚一帧才变 open,\n 留出时间让箭头(TooltipArrow)完成挂载、注册给 arrow middleware、\n 算出正确的位置偏移(细节见 useTooltipContent 里的注释);\n - mounted 会比 animationState 变 closed 更晚才变 false(见下面的\n Presence 逻辑),留出时间让退场动画播完。\n\n data-[state=open]/data-[state=closed] 这套 class 依赖 tailwindcss-animate\n 插件提供的 animate-in/animate-out/fade-in-0/zoom-in-95 等工具类——\n 如果你的项目还没装,`npm install tailwindcss-animate` 并在 tailwind\n config 里加上这个 plugin 即可;不想装的话,把这几个 data-[state=...]\n class 换成你自己写的 @keyframes + 对应 class 也一样能工作,\n Presence 逻辑(mounted 延迟卸载)不依赖具体用了哪套动画实现。\n\n 箭头(TooltipArrow)不依赖\"作为这个元素的子节点、被动继承这里的\n transform/opacity 动画\"这种隐式机制——它自己也从 context 里读到\n 同一个 animationState,独立播放一份自己的入场/退场动画,两者由\n 同一个信号同步触发。\n\n data-side/data-align 是从最终生效的 placement 拆出来的,驱动上面\n 这几条方向感知的 slide-in class,也顺带给 transform-origin 提供了\n 依据——缩放动画的锚点会落在\"贴近 trigger 的那条边\"上(细节见\n TooltipContent.utils.ts 里的 getTransformOrigin),而不是默认的\n 几何中心,这样整个入场效果才会像是\"从 trigger 那里长出来\",\n 贴近 shadcn 的实际观感。\n\n 特意没有 overflow:auto / max-height,tooltip 不支持内容超长时滚动——\n 宽度上限靠下面静态的 max-w-xs class 兜底,让文字自然换行;高度完全\n 不做限制。这不只是为了贴近 shadcn/Radix 的行为(它们的 tooltip 也不\n 允许滚动),还避免了一个真实踩过的坑:overflow:auto 配合这里的\n zoom-in-95 动画(会给这个元素加一个非 none 的 transform,CSS 规范\n 规定这会让它变成子元素新的包含块)曾经导致箭头戳出边缘的那部分被\n 误判成\"可滚动溢出\",表现为打开瞬间闪一下滚动条、箭头跟着被遮住,\n 动画播完滚动条消失、箭头才重新出现。去掉滚动能力后这个耦合从根上\n 就不存在了。\n */}\n <div\n ref={setContentElement}\n id={ctx.contentId}\n role=\"tooltip\"\n data-state={animationState()}\n data-side={getSide(pos.placement())}\n data-align={getAlignment(pos.placement()) ?? \"center\"}\n onMouseEnter={ctx.keepOpen}\n onMouseLeave={ctx.requestClose}\n style={{\n \"transform-origin\": getTransformOrigin(pos.placement()),\n ...(typeof local.style === \"object\" ? local.style : undefined),\n }}\n class={clsx(\n \"inline-flex w-fit max-w-xs items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background\",\n \"has-data-[slot=kbd]:pr-1.5\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n // 方向感知的滑入:不只是原地淡入缩放,还从\"贴近 trigger 的反方向\"\n // 轻微位移过来——比如 placement 是 top(content 在 trigger 上方),\n // 就从下方 8px(slide-in-from-bottom-2)滑上来,视觉上更像是从\n // trigger 那里\"冒出来\",而不是凭空原地出现。只在打开时生效,\n // 贴近 shadcn 的实际行为(它们的退场动画没有对应的滑出位移)。\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n local.class,\n )}\n {...rest}\n >\n <TooltipContentContext.Provider\n value={{\n middlewareData: pos.middlewareData,\n reference: ctx.reference,\n placement: pos.placement,\n setArrowElement,\n animationState,\n }}\n >\n {local.children}\n </TooltipContentContext.Provider>\n </div>\n </div>\n </div>\n </Portal>\n </Show>\n );\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgBW,EAAeC,GAA4B;CACzD,IAAM,EACJC,QACAC,QACAC,YACAC,mBACAC,oBACAC,sBACAC,kBACEf,QAAwBQ,CAAK,GAI3B,CAACQ,GAAOC,KAAQnB,EAAWU,GAAO;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAU,CACX;CAED,OAAAU,EACGtB,GAAI;EAAA,IAACuB,OAAI;GAAA,OAAER,EAAQ;EAAC;EAAA,IAAAS,WAAA;GAAA,OAAAF,EAClBnB,GAAM,EAAA,IAAAqB,WAAA;IAAA,IAAAC,IAAAC,EAAA,GAAAC,IAAAF,EAAAG,YAAAC,IAAAF,EAAAC;IAwCqB,OAxCrBE,GAOGC,MAAO;KASX9B,AARAY,EAAImB,YAAYD,CAAE,GAQlB9B,QAAgBY,EAAImB,YAAYC,KAAAA,CAAS,CAAC;IAC5C,GAACR,CAAA,GAAAK,EAiEQZ,GAAiBW,CAAA,GAAAK,EAAAL,GAAAM,EAAA;KAAA,IACtBC,KAAE;MAAA,OAAEvB,EAAIwB;KAAS;KAAA,IAAA,eAAA;MAAA,OAELrB,EAAe;KAAC;KAAA,IAAA,cAAA;MAAA,OACjBT,EAAQO,EAAI0B,UAAU,CAAC;KAAC;KAAA,IAAA,eAAA;MAAA,OACvBhC,EAAaM,EAAI0B,UAAU,CAAC,KAAK;KAAQ;KAAA,IACrDE,eAAY;MAAA,OAAE7B,EAAI8B;KAAQ;KAAA,IAC1BC,eAAY;MAAA,OAAE/B,EAAIgC;KAAY;KAAA,IAC9BC,QAAK;MAAA,OAAE;OACL,oBAAoBxC,EAAmBQ,EAAI0B,UAAU,CAAC;OACtD,GAAI,OAAOpB,EAAM0B,SAAU,WAAW1B,EAAM0B,QAAQb,KAAAA;MACtD;KAAC;KAAA,IAAA+D,QAAA;MAAA,OACMtF,EACL,gHACA,8BACA,yFACA,kGAMA,0CACA,0CACA,0CACA,0CACAU,EAAM2B,KACR;KAAC;IAAA,GACG1B,CAAI,GAAA,IAAA,EAAA,GAAA2B,EAAAnB,GAAAP,EAEPjB,EAAsB4C,UAAQ;KAAA,IAC7BC,QAAK;MAAA,OAAE;OACLC,gBAAgBrC,EAAIqC;OACpBC,WAAWvC,EAAIuC;OACfZ,WAAW1B,EAAI0B;OACfvB;OACAD;MACF;KAAC;KAAA,IAAAQ,WAAA;MAAA,OAEAJ,EAAMI;KAAQ;IAAA,CAAA,CAAA,GAAA6B,GAAAC,MAAA;KAAA,IAAAC,IAvGLzC,EAAI0B,UAAU,GAACgB,IACxB;MACL,GAAG1C,EAAI2C,eAAe;MAEtBC,SAAS5C,KAAI6C,aAAa;KAC5B,GAACC,IAiBWzC,EAAW;KAAC,OAAAoC,MAAAD,EAAAO,KAAAC,EAAArC,GAAA,kBAAA6B,EAAAO,IAAAN,CAAA,GAAAD,EAAAS,IAAAC,EAAAvC,GAAA+B,GAAAF,EAAAS,CAAA,GAAAT,EAAAW,IAAAD,EAAArC,GAAAiC,GAAAN,EAAAW,CAAA,GAAAX;IAAA,GAAA;KAAAO,GAAA5B,KAAAA;KAAA8B,GAAA9B,KAAAA;KAAAgC,GAAAhC,KAAAA;IAAA,CAAA,GAAAR;GAAA,EAAA,CAAA;EAAA;CAAA,CAAA;AAyFlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipContent.utils.js","names":[],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.utils.ts"],"sourcesContent":["import {\n offset,\n flip,\n shift,\n arrow,\n hide,\n containingBlockOffset,\n getSide,\n getAlignment,\n type Middleware,\n type Placement,\n type Side,\n type Alignment,\n} from \"~/lib\";\n\n/**\n * 把 shadcn/Radix 风格的 side + align 拆分参数,转换成核心库统一用的\n * `Placement` 字符串(比如 side='top' + align='start' → 'top-start')。\n * align 是 'center'(默认对齐、不偏移)时不带后缀,直接是 side 本身。\n */\nexport function toPhysicalSide(\n side: Side | \"inline-start\" | \"inline-end\",\n dir?: string,\n): Side {\n if (side === \"inline-start\") {\n return dir === \"rtl\" ? \"right\" : \"left\";\n }\n if (side === \"inline-end\") {\n return dir === \"rtl\" ? \"left\" : \"right\";\n }\n return side;\n}\n\nexport function toPlacement(\n side: Side | \"inline-start\" | \"inline-end\",\n align: Alignment | \"center\",\n dir?: string,\n): Placement {\n const physical = toPhysicalSide(side, dir);\n return align === \"center\" ? physical : (`${physical}-${align}` as Placement);\n}\n\n/**\n * 根据最终生效的 placement,算出缩放动画应该以哪个点为锚点(CSS transform-origin)。\n * 锚点应该落在\"贴近 trigger 的那条边\"上——比如 placement 是 'top'(content 在\n * trigger 上方),锚点就该是 content 自己的底边,缩放动画看起来才会像是\n * \"从 trigger 那里长出来\",而不是原地放大缩小(默认的 transform-origin 是\n * 几何中心 50% 50%,视觉上和\"从哪个方向冒出来\"没有任何关联)。\n * 交叉轴(对齐方向)同理:align 是 start 就贴左/上边,end 就贴右/下边。\n */\nexport function getTransformOrigin(placement: Placement): string {\n const side = getSide(placement);\n const align = getAlignment(placement);\n const crossAxisOrigin =\n align === \"start\" ? \"0%\" : align === \"end\" ? \"100%\" : \"50%\";\n\n switch (side) {\n case \"top\":\n return `${crossAxisOrigin} 100%`;\n case \"bottom\":\n return `${crossAxisOrigin} 0%`;\n case \"left\":\n return `100% ${crossAxisOrigin}`;\n case \"right\":\n return `0% ${crossAxisOrigin}`;\n }\n}\n\nexport interface BuildTooltipMiddlewareOptions {\n sideOffset: number;\n /** 沿交叉轴(对齐方向)的偏移,对应 offset middleware 的 crossAxis */\n alignOffset: number;\n collisionPadding: number;\n arrowElement: () => Element | undefined;\n}\n\n/**\n * Tooltip 定位管线的固定配方:\n *\n * 1. offset — 沿主轴保持 sideOffset 间距,沿交叉轴偏移 alignOffset\n * 2. flip — 主轴方向放不下就翻到对面(比如上方没空间就翻到下方)\n * 3. shift — 翻转后仍溢出,就在不换边的前提下贴边平移\n * 4. arrow — 算出箭头相对 content 的偏移,让它始终指向 trigger 中心\n * 5. hide — trigger 被自己的滚动容器完全裁掉时标记隐藏\n * 6. containingBlockOffset — 修正祖先元素 transform 等属性导致的 position:fixed\n * 包含块偏移(demo 里通常不出现,放进有大量 transform 的真实项目后才会暴露,\n * 详见该 middleware 自身的注释)。放在最后一位,因为它修正的是\"最终要写进\n * DOM 的坐标\",前面几步都在统一的视口坐标系里计算,不受这个偏移影响。\n *\n * 特意没有用 size 中间件去动态限制 max-height、允许内容超长时滚动——\n * tooltip 不应该出现滚动条(这不是本库的一般性限制,是 tooltip 这个组件\n * 类型本身该有的样子,shadcn/Radix 的 Tooltip 也是这么做的)。宽度上限\n * 靠 TooltipContent.tsx 里静态的 `max-w-xs` class 兜底,让文字自然换行;\n * 高度完全不做限制,交给内容自身的实际高度决定。\n *\n * 这个决定还有一个技术上的原因:早先的实现里试过用 size 中间件动态算\n * max-height 配合 overflow:auto 实现\"超长内容可滚动\",结果发现内层元素\n * 一旦同时具备 overflow:auto 和入场动画(zoom-in-95 会给它加一个 transform),\n * 动画播放期间 transform 会让这个元素变成箭头新的包含块(CSS 规范:非 none\n * 的 transform 会创建包含块),箭头戳出内层边缘的那部分又会被算进内层的\n * 可滚动溢出区域——于是出现了\"打开瞬间闪一下滚动条,箭头跟着被遮住,\n * 动画播完滚动条消失、箭头才重新出现\"这种诡异现象。去掉滚动能力后,\n * 这个耦合从根上就不存在了。\n *\n * 顺序不能随便换:arrow 必须在 shift/flip 之后(要用最终坐标才能算对偏移),\n * containingBlockOffset 必须在所有其他 middleware 之后。\n *\n * 单独抽成函数是为了让 useTooltipContent 保持简洁,也方便针对这套管线单独测试。\n */\nexport function createTooltipMiddleware(\n options: BuildTooltipMiddlewareOptions,\n): Middleware[] {\n return [\n offset({ mainAxis: options.sideOffset, crossAxis: options.alignOffset }),\n flip(),\n shift({ padding: options.collisionPadding }),\n arrow({ element: options.arrowElement, padding: 6 }),\n hide(),\n containingBlockOffset(),\n ];\n}\n"],"mappings":";;;;;;;;AAoBA,
|
|
1
|
+
{"version":3,"file":"TooltipContent.utils.js","names":["toPhysicalSide","side","dir","toPlacement","physical","align","getTransformOrigin","getSide","placement","getAlignment","crossAxisOrigin","createTooltipMiddleware","offset","options","flip","shift","arrow","hide","containingBlockOffset"],"sources":["../../../../src/components/tooltip/TooltipContent/TooltipContent.utils.ts"],"sourcesContent":["import {\n offset,\n flip,\n shift,\n arrow,\n hide,\n containingBlockOffset,\n getSide,\n getAlignment,\n type Middleware,\n type Placement,\n type Side,\n type Alignment,\n} from \"~/lib\";\n\n/**\n * 把 shadcn/Radix 风格的 side + align 拆分参数,转换成核心库统一用的\n * `Placement` 字符串(比如 side='top' + align='start' → 'top-start')。\n * align 是 'center'(默认对齐、不偏移)时不带后缀,直接是 side 本身。\n */\nexport function toPhysicalSide(\n side: Side | \"inline-start\" | \"inline-end\",\n dir?: string,\n): Side {\n if (side === \"inline-start\") {\n return dir === \"rtl\" ? \"right\" : \"left\";\n }\n if (side === \"inline-end\") {\n return dir === \"rtl\" ? \"left\" : \"right\";\n }\n return side;\n}\n\nexport function toPlacement(\n side: Side | \"inline-start\" | \"inline-end\",\n align: Alignment | \"center\",\n dir?: string,\n): Placement {\n const physical = toPhysicalSide(side, dir);\n return align === \"center\" ? physical : (`${physical}-${align}` as Placement);\n}\n\n/**\n * 根据最终生效的 placement,算出缩放动画应该以哪个点为锚点(CSS transform-origin)。\n * 锚点应该落在\"贴近 trigger 的那条边\"上——比如 placement 是 'top'(content 在\n * trigger 上方),锚点就该是 content 自己的底边,缩放动画看起来才会像是\n * \"从 trigger 那里长出来\",而不是原地放大缩小(默认的 transform-origin 是\n * 几何中心 50% 50%,视觉上和\"从哪个方向冒出来\"没有任何关联)。\n * 交叉轴(对齐方向)同理:align 是 start 就贴左/上边,end 就贴右/下边。\n */\nexport function getTransformOrigin(placement: Placement): string {\n const side = getSide(placement);\n const align = getAlignment(placement);\n const crossAxisOrigin =\n align === \"start\" ? \"0%\" : align === \"end\" ? \"100%\" : \"50%\";\n\n switch (side) {\n case \"top\":\n return `${crossAxisOrigin} 100%`;\n case \"bottom\":\n return `${crossAxisOrigin} 0%`;\n case \"left\":\n return `100% ${crossAxisOrigin}`;\n case \"right\":\n return `0% ${crossAxisOrigin}`;\n }\n}\n\nexport interface BuildTooltipMiddlewareOptions {\n sideOffset: number;\n /** 沿交叉轴(对齐方向)的偏移,对应 offset middleware 的 crossAxis */\n alignOffset: number;\n collisionPadding: number;\n arrowElement: () => Element | undefined;\n}\n\n/**\n * Tooltip 定位管线的固定配方:\n *\n * 1. offset — 沿主轴保持 sideOffset 间距,沿交叉轴偏移 alignOffset\n * 2. flip — 主轴方向放不下就翻到对面(比如上方没空间就翻到下方)\n * 3. shift — 翻转后仍溢出,就在不换边的前提下贴边平移\n * 4. arrow — 算出箭头相对 content 的偏移,让它始终指向 trigger 中心\n * 5. hide — trigger 被自己的滚动容器完全裁掉时标记隐藏\n * 6. containingBlockOffset — 修正祖先元素 transform 等属性导致的 position:fixed\n * 包含块偏移(demo 里通常不出现,放进有大量 transform 的真实项目后才会暴露,\n * 详见该 middleware 自身的注释)。放在最后一位,因为它修正的是\"最终要写进\n * DOM 的坐标\",前面几步都在统一的视口坐标系里计算,不受这个偏移影响。\n *\n * 特意没有用 size 中间件去动态限制 max-height、允许内容超长时滚动——\n * tooltip 不应该出现滚动条(这不是本库的一般性限制,是 tooltip 这个组件\n * 类型本身该有的样子,shadcn/Radix 的 Tooltip 也是这么做的)。宽度上限\n * 靠 TooltipContent.tsx 里静态的 `max-w-xs` class 兜底,让文字自然换行;\n * 高度完全不做限制,交给内容自身的实际高度决定。\n *\n * 这个决定还有一个技术上的原因:早先的实现里试过用 size 中间件动态算\n * max-height 配合 overflow:auto 实现\"超长内容可滚动\",结果发现内层元素\n * 一旦同时具备 overflow:auto 和入场动画(zoom-in-95 会给它加一个 transform),\n * 动画播放期间 transform 会让这个元素变成箭头新的包含块(CSS 规范:非 none\n * 的 transform 会创建包含块),箭头戳出内层边缘的那部分又会被算进内层的\n * 可滚动溢出区域——于是出现了\"打开瞬间闪一下滚动条,箭头跟着被遮住,\n * 动画播完滚动条消失、箭头才重新出现\"这种诡异现象。去掉滚动能力后,\n * 这个耦合从根上就不存在了。\n *\n * 顺序不能随便换:arrow 必须在 shift/flip 之后(要用最终坐标才能算对偏移),\n * containingBlockOffset 必须在所有其他 middleware 之后。\n *\n * 单独抽成函数是为了让 useTooltipContent 保持简洁,也方便针对这套管线单独测试。\n */\nexport function createTooltipMiddleware(\n options: BuildTooltipMiddlewareOptions,\n): Middleware[] {\n return [\n offset({ mainAxis: options.sideOffset, crossAxis: options.alignOffset }),\n flip(),\n shift({ padding: options.collisionPadding }),\n arrow({ element: options.arrowElement, padding: 6 }),\n hide(),\n containingBlockOffset(),\n ];\n}\n"],"mappings":";;;;;;;;AAoBA,SAAgBA,EACd,GACA,GACM;CAON,OANIC,MAAS,iBACJC,MAAQ,QAAQ,UAAU,SAE/BD,MAAS,eACJC,MAAQ,QAAQ,SAAS,UAE3BD;AACT;AAEA,SAAgBE,EACd,GACA,GACA,GACW;CACX,IAAMC,IAAWJ,EAAeC,GAAMC,CAAG;CACzC,OAAOG,MAAU,WAAWD,IAAY,GAAGA,EAAS,GAAGC;AACzD;AAUA,SAAgBC,EAAmB,GAA8B;CAC/D,IAAML,IAAOM,EAAQC,CAAS,GACxBH,IAAQI,EAAaD,CAAS,GAC9BE,IACJL,MAAU,UAAU,OAAOA,MAAU,QAAQ,SAAS;CAExD,QAAQJ,GAAR;EACE,KAAK,OACH,OAAO,GAAGS,EAAgB;EAC5B,KAAK,UACH,OAAO,GAAGA,EAAgB;EAC5B,KAAK,QACH,OAAO,QAAQA;EACjB,KAAK,SACH,OAAO,MAAMA;CACjB;AACF;AA2CA,SAAgBC,EACd,GACc;CACd,OAAO;EACLC,EAAO;GAAE,UAAUC,EAAQ;GAAY,WAAWA,EAAQ;EAAY,CAAC;EACvEC,EAAK;EACLC,EAAM,EAAE,SAASF,EAAQ,iBAAiB,CAAC;EAC3CG,EAAM;GAAE,SAASH,EAAQ;GAAc,SAAS;EAAE,CAAC;EACnDI,EAAK;EACLC,EAAsB;CACxB;AACF"}
|