@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":"Image.utils.js","names":[],"sources":["../../../src/components/image/Image.utils.ts"],"sourcesContent":["/**\n * handle-loading.ts\n * 单一职责:封装图片加载完成后的所有副作用——decode、回调触发、开发环境警告。\n * 纯 TypeScript,不包含任何 JSX 或组件代码。\n */\n\nimport { mergeProps, splitProps } from \"solid-js\";\nimport { warnOnce } from \"~/utils\";\nimport { imageConfigDefault } from \"./Image.config\";\nimport type {\n ImageConfig,\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderWithConfig,\n ImageProps,\n ImgProps,\n ImgPropsResult,\n LoadingValue,\n OnLoad,\n OnLoadingComplete,\n PlaceholderStyle,\n PlaceholderValue,\n StaticImageData,\n StaticImport,\n StaticRequire,\n} from \"./Image.types\";\n\n// ─── 类型补充 ─────────────────────────────────────────────────────────────────\n\n/** 用于追踪每个 img 节点已处理的 src,避免重复触发 */\ntype ImgWithDataProp = HTMLImageElement & { \"data-loaded-src\"?: string };\n\n// ─── 主函数 ───────────────────────────────────────────────────────────────────\n\n/**\n * 在图片加载/hydrate 后调用。\n * - 使用 img.decode() 确保像素已解码再触发回调\n * - 清除 blur placeholder\n * - 开发环境下输出 fill / sizes 相关警告\n */\nexport function handleLoading(\n img: ImgWithDataProp,\n placeholder: PlaceholderValue,\n onLoad: OnLoad | undefined,\n onLoadingComplete: OnLoadingComplete | undefined,\n setBlurComplete: (v: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined,\n): void {\n const src = img?.src;\n // 同一张图只处理一次\n if (!img || img[\"data-loaded-src\"] === src) return;\n img[\"data-loaded-src\"] = src;\n\n const p: Promise<void> = \"decode\" in img ? img.decode() : Promise.resolve();\n\n p.catch(() => {}).then(() => {\n // 若组件已卸载则提前退出\n if (!img.parentElement || !img.isConnected) return;\n\n if (placeholder !== \"empty\") {\n setBlurComplete(true);\n }\n\n if (onLoad) {\n const event = new Event(\"load\");\n Object.defineProperty(event, \"target\", { writable: false, value: img });\n onLoad(\n event as Event & { currentTarget: HTMLImageElement; target: Element },\n );\n }\n\n if (onLoadingComplete) {\n onLoadingComplete(img);\n }\n\n if (import.meta.env.DEV) {\n warnFillUsage(img, unoptimized, sizesInput);\n warnAspectRatioMismatch(img);\n }\n });\n}\n\n// ─── 开发警告辅助 ──────────────────────────────────────────────────────────────\n\nfunction warnFillUsage(\n img: HTMLImageElement,\n unoptimized: boolean,\n sizesInput: string | undefined,\n): void {\n if (img.getAttribute(\"data-nimg\") !== \"fill\") return;\n\n const origSrc =\n new URL(img.src, \"http://n\").searchParams.get(\"url\") || img.src;\n\n if (!unoptimized) {\n const widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth;\n if (widthViewportRatio < 0.6) {\n if (sizesInput === \"100vw\") {\n console.warn(\n `[Image] src=\"${origSrc}\" 设置了 fill 和 sizes=\"100vw\",但实际渲染宽度不足视口宽度,请调整 sizes 以提升性能。`,\n );\n } else if (!sizesInput) {\n console.warn(\n `[Image] src=\"${origSrc}\" 设置了 fill 但缺少 sizes 属性,请添加以提升性能。`,\n );\n }\n }\n }\n\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement);\n const valid = [\"absolute\", \"fixed\", \"relative\"];\n if (!valid.includes(position)) {\n console.warn(\n `[Image] src=\"${origSrc}\" 设置了 fill,但父元素 position=\"${position}\",应为 ${valid.join(\" | \")} 之一。`,\n );\n }\n }\n\n if (img.height === 0) {\n console.warn(\n `[Image] src=\"${origSrc}\" 设置了 fill 且高度为 0,请为父元素设置明确高度。`,\n );\n }\n}\n\nfunction warnAspectRatioMismatch(img: HTMLImageElement): void {\n const heightModified = img.height.toString() !== img.getAttribute(\"height\");\n const widthModified = img.width.toString() !== img.getAttribute(\"width\");\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n const origSrc =\n new URL(img.src, \"http://n\").searchParams.get(\"url\") || img.src;\n console.warn(\n `[Image] src=\"${origSrc}\" 仅修改了 width 或 height 其中之一,请同时添加 width: \"auto\" 或 height: \"auto\" 样式以保持宽高比。`,\n );\n }\n}\n\ninterface GetImgPropsOptions {\n imgConf: ImageConfigComplete;\n blurComplete: boolean;\n showAltText: boolean;\n}\n\nexport const VALID_LOADING_VALUES = [\"lazy\", \"eager\", undefined] as const;\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n \"-moz-initial\",\n \"fill\",\n \"none\",\n \"scale-down\",\n undefined,\n];\n\nlet perfObserver: PerformanceObserver | undefined;\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>();\n\nexport function getImgProps(\n props: ImageProps,\n { imgConf, blurComplete, showAltText }: GetImgPropsOptions,\n): ImgPropsResult {\n const merged = mergeProps(\n {\n // loader: defaultLoader,\n fill: false,\n priority: false,\n preload: false,\n placeholder: \"empty\",\n unoptimized: imgConf.unoptimized,\n decoding: \"async\",\n } as const,\n props,\n );\n const [local, others] = splitProps(merged, [\n \"src\",\n \"loader\",\n \"quality\",\n \"width\",\n \"height\",\n \"fill\",\n \"sizes\",\n \"priority\",\n \"placeholder\",\n \"blurDataURL\",\n \"unoptimized\",\n \"overrideSrc\",\n \"onLoad\",\n \"onLoadingComplete\",\n \"layout\",\n \"style\",\n \"preload\",\n \"loading\",\n \"objectFit\",\n \"objectPosition\",\n \"lazyBoundary\",\n \"lazyRoot\",\n \"fetchpriority\",\n \"class\",\n \"decoding\",\n ]);\n\n let config: ImageConfig;\n const c = imgConf || imageConfigDefault;\n\n if (\"allSizes\" in c) {\n config = c as ImageConfig;\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b);\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b);\n const qualities = c.qualities?.sort((a, b) => a - b);\n config = { ...c, allSizes, deviceSizes, qualities };\n }\n\n if (typeof defaultLoader === \"undefined\") {\n throw new Error(\n \"images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config\",\n );\n }\n\n let style = local.style;\n let sizes = local.sizes;\n let fill = local.fill;\n\n const loader: ImageLoaderWithConfig = local.loader || defaultLoader;\n\n if (local.layout) {\n if (local.layout === \"fill\") {\n fill = true;\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: \"100%\", height: \"auto\" },\n responsive: { width: \"100%\", height: \"auto\" },\n };\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: \"100vw\",\n fill: \"100vw\",\n };\n const layoutStyle = layoutToStyle[local.layout];\n if (layoutStyle) {\n style = { ...style, ...layoutStyle };\n }\n const layoutSizes = layoutToSizes[local.layout];\n if (layoutSizes && !sizes) {\n sizes = layoutSizes;\n }\n }\n\n let staticSrc = \"\";\n let blurDataURL = local.blurDataURL;\n let widthInt = getInt(local.width);\n let heightInt = getInt(local.height);\n let blurWidth: number | undefined;\n let blurHeight: number | undefined;\n\n if (isStaticImport(local.src)) {\n const staticImageData = isStaticRequire(local.src)\n ? local.src.default\n : local.src;\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData,\n )}`,\n );\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData,\n )}`,\n );\n }\n\n blurWidth = staticImageData.blurWidth;\n blurHeight = staticImageData.blurHeight;\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width;\n heightInt = staticImageData.height;\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width;\n heightInt = Math.round(staticImageData.height * ratio);\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height;\n widthInt = Math.round(staticImageData.width * ratio);\n }\n }\n }\n const src = typeof local.src === \"string\" ? local.src : staticSrc;\n\n let unoptimized = local.unoptimized;\n let isLazy =\n !local.priority &&\n !local.preload &&\n (local.loading === \"lazy\" || typeof local.loading === \"undefined\");\n if (!src || src.startsWith(\"data:\") || src.startsWith(\"blob:\")) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (config.unoptimized) {\n unoptimized = true;\n }\n if (!config.dangerouslyAllowSVG && src.split(\"?\", 1)[0].endsWith(\".svg\")) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true;\n }\n\n const qualityInt = getInt(local.quality);\n\n if (!import.meta.env.PROD) {\n if (config.output === \"export\" && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`,\n );\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true;\n } else {\n if (fill) {\n if (local.width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`,\n );\n }\n if (local.height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`,\n );\n }\n if (style?.position && style.position !== \"absolute\") {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`,\n );\n }\n if (style?.width && style.width !== \"100%\") {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`,\n );\n }\n if (style?.height && style.height !== \"100%\") {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`,\n );\n }\n } else {\n if (typeof widthInt === \"undefined\") {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`,\n );\n } else if (Number.isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${local.width}\".`,\n );\n }\n if (typeof heightInt === \"undefined\") {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`,\n );\n } else if (Number.isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${local.height}\".`,\n );\n }\n\n // biome-ignore lint/suspicious/noControlCharactersInRegex: no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`,\n );\n }\n // biome-ignore lint/suspicious/noControlCharactersInRegex: no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`,\n );\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(local.loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${local.loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String,\n ).join(\",\")}.`,\n );\n }\n if (local.priority && local.loading === \"lazy\") {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`,\n );\n }\n if (local.preload && local.loading === \"lazy\") {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`,\n );\n }\n if (local.preload && local.priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`,\n );\n }\n if (\n local.placeholder !== \"empty\" &&\n local.placeholder !== \"blur\" &&\n !local.placeholder.startsWith(\"data:image/\")\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${local.placeholder}\".`,\n );\n }\n if (local.placeholder !== \"empty\") {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`,\n );\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(\", \")}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(\", \")}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`,\n );\n }\n if (local.placeholder === \"blur\" && !blurDataURL) {\n const VALID_BLUR_EXT = [\"jpeg\", \"png\", \"webp\", \"avif\"]; // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n \",\",\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`,\n );\n }\n if (\"ref\" in others) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`,\n );\n }\n\n if (!unoptimized) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n });\n let url: URL | undefined;\n try {\n url = new URL(urlStr);\n } catch (err) {\n console.error(err);\n }\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`,\n );\n }\n }\n\n if (local.onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`,\n );\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout: local.layout,\n objectFit: local.objectFit,\n objectPosition: local.objectPosition,\n lazyBoundary: local.lazyBoundary,\n lazyRoot: local.lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`,\n );\n }\n }\n\n if (\n typeof window !== \"undefined\" &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-expect-error - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || \"\";\n const lcpImage = allImgs.get(imgSrc);\n if (\n lcpImage &&\n lcpImage.loading === \"lazy\" &&\n lcpImage.placeholder === \"empty\" &&\n !lcpImage.src.startsWith(\"data:\") &&\n !lcpImage.src.startsWith(\"blob:\")\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`,\n );\n }\n }\n });\n try {\n perfObserver.observe({\n type: \"largest-contentful-paint\",\n buffered: true,\n });\n } catch (err) {\n // Log error but don't crash the app\n console.error(err);\n }\n }\n }\n\n const imgStyle = Object.assign(\n fill\n ? {\n position: \"absolute\",\n height: \"100%\",\n width: \"100%\",\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit: local.objectFit,\n objectPosition: local.objectPosition,\n }\n : {},\n showAltText ? {} : { color: \"transparent\" },\n style,\n );\n\n const backgroundImage =\n !blurComplete && local.placeholder !== \"empty\"\n ? local.placeholder === \"blur\"\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || \"\", // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${local.placeholder}\")` // assume `data:image/`\n : null;\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit,\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === \"fill\"\n ? \"100% 100%\" // the background-size equivalent of `fill`\n : \"cover\";\n\n const placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n \"background-size\": backgroundSize,\n \"background-position\": imgStyle.objectPosition || \"50% 50%\",\n \"background-repeat\": \"no-repeat\",\n \"background-image\": backgroundImage,\n }\n : {};\n\n if (import.meta.env.DEV) {\n if (\n placeholderStyle[\"background-image\"] &&\n local.placeholder === \"blur\" &&\n blurDataURL?.startsWith(\"/\")\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle[\"background-image\"] = `url(\"${blurDataURL}\")`;\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n });\n\n const loadingFinal = isLazy ? \"lazy\" : local.loading;\n\n if (!import.meta.env.PROD) {\n if (typeof window !== \"undefined\") {\n let fullUrl: URL;\n try {\n fullUrl = new URL(imgAttributes.src);\n } catch (e) {\n console.error(e);\n fullUrl = new URL(imgAttributes.src, window.location.href);\n }\n allImgs.set(fullUrl.href, {\n src,\n loading: loadingFinal,\n placeholder: local.placeholder,\n });\n }\n }\n\n const newProps: ImgProps = {\n ...others,\n loading: loadingFinal,\n fetchpriority: local.fetchpriority,\n width: widthInt,\n height: heightInt,\n decoding: local.decoding,\n class: local.class,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: local.overrideSrc || imgAttributes.src,\n };\n const meta = {\n unoptimized,\n preload: local.preload || local.priority,\n placeholder: local.placeholder,\n fill,\n };\n return { props: newProps, meta };\n}\n\nfunction defaultLoader({ src, width, quality }: ImageLoaderProps): string {\n if (import.meta.env.DEV) {\n const missingValues: string[] = [];\n if (!src) missingValues.push(\"src\");\n if (!width) missingValues.push(\"width\");\n if (missingValues.length > 0) {\n throw new Error(\n `[defaultLoader] 缺少必要属性:${missingValues.join(\", \")}。` +\n `请确认调用方式正确,或提供自定义 loader。`,\n );\n }\n }\n\n // 如果 src 本身已是带参数的 URL(外部图片),直接返回\n if (src.startsWith(\"http://\") || src.startsWith(\"https://\")) {\n return src;\n }\n\n // 本地图片:追加 w / q 参数(供自定义服务器处理)\n const params = new URLSearchParams();\n params.set(\"url\", src);\n params.set(\"w\", String(width));\n if (quality) params.set(\"q\", String(quality));\n return `/_image?${params.toString()}`;\n}\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === \"undefined\") {\n return x;\n }\n if (typeof x === \"number\") {\n return Number.isFinite(x) ? x : NaN;\n }\n if (typeof x === \"string\" && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10);\n }\n return NaN;\n}\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData,\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined;\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData,\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined;\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === \"object\" &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n );\n}\n\nfunction getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number;\n heightInt?: number;\n blurWidth?: number;\n blurHeight?: number;\n blurDataURL: string;\n objectFit?: string;\n}): string {\n const std = 20;\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt;\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt;\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : \"\";\n const preserveAspectRatio = viewBox\n ? \"none\"\n : objectFit === \"contain\"\n ? \"xMidYMid\"\n : objectFit === \"cover\"\n ? \"xMidYMid slice\"\n : \"none\";\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`;\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig;\n src: string;\n unoptimized: boolean;\n loader: ImageLoaderWithConfig;\n width?: number;\n quality?: number;\n sizes?: string;\n};\n\ntype GenImgAttrsResult = {\n src: string;\n srcSet: string | undefined;\n sizes: string | undefined;\n};\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined };\n }\n\n const { widths, kind } = getWidths(config, width, sizes);\n const last = widths.length - 1;\n\n return {\n sizes: !sizes && kind === \"w\" ? \"100vw\" : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === \"w\" ? w : i + 1\n }${kind}`,\n )\n .join(\", \"),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n };\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined,\n): { widths: number[]; kind: \"w\" | \"x\" } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = [];\n for (\n let match: RegExpExecArray | null;\n // biome-ignore lint/suspicious/noAssignInExpressions: nextjs code\n (match = viewportWidthRe.exec(sizes));\n match\n ) {\n percentSizes.push(Number.parseInt(match[2], 10));\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: \"w\",\n };\n }\n return { widths: allSizes, kind: \"w\" };\n }\n if (typeof width !== \"number\") {\n return { widths: deviceSizes, kind: \"w\" };\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1],\n ),\n ),\n ];\n return { widths, kind: \"x\" };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Image.utils.js","names":["handleLoading","src","img","placeholder","setBlurComplete","onLoad","event","onLoadingComplete","INVALID_BACKGROUND_SIZE_VALUES","getImgProps","merged","mergeProps","imgConf","props","local","others","splitProps","config","c","imageConfigDefault","allSizes","a","b","deviceSizes","qualities","defaultLoader","style","sizes","fill","loader","layoutToStyle","layoutToSizes","layoutStyle","layoutSizes","staticSrc","blurDataURL","widthInt","getInt","heightInt","blurWidth","blurHeight","isStaticImport","staticImageData","isStaticRequire","ratio","unoptimized","isLazy","qualityInt","imgStyle","showAltText","backgroundImage","blurComplete","getImageBlurSvg","backgroundSize","placeholderStyle","imgAttributes","generateImgAttrs","loadingFinal","params","width","quality","x","isStaticImageData","svgWidth","svgHeight","viewBox","objectFit","getWidths","last","widths","kind","w","i","viewportWidthRe","percentSizes","match","smallestRatio","s","p"],"sources":["../../../src/components/image/Image.utils.ts"],"sourcesContent":["/**\n * handle-loading.ts\n * 单一职责:封装图片加载完成后的所有副作用——decode、回调触发、开发环境警告。\n * 纯 TypeScript,不包含任何 JSX 或组件代码。\n */\n\nimport { mergeProps, splitProps } from \"solid-js\";\nimport { warnOnce } from \"~/utils\";\nimport { imageConfigDefault } from \"./Image.config\";\nimport type {\n ImageConfig,\n ImageConfigComplete,\n ImageLoaderProps,\n ImageLoaderWithConfig,\n ImageProps,\n ImgProps,\n ImgPropsResult,\n LoadingValue,\n OnLoad,\n OnLoadingComplete,\n PlaceholderStyle,\n PlaceholderValue,\n StaticImageData,\n StaticImport,\n StaticRequire,\n} from \"./Image.types\";\n\n// ─── 类型补充 ─────────────────────────────────────────────────────────────────\n\n/** 用于追踪每个 img 节点已处理的 src,避免重复触发 */\ntype ImgWithDataProp = HTMLImageElement & { \"data-loaded-src\"?: string };\n\n// ─── 主函数 ───────────────────────────────────────────────────────────────────\n\n/**\n * 在图片加载/hydrate 后调用。\n * - 使用 img.decode() 确保像素已解码再触发回调\n * - 清除 blur placeholder\n * - 开发环境下输出 fill / sizes 相关警告\n */\nexport function handleLoading(\n img: ImgWithDataProp,\n placeholder: PlaceholderValue,\n onLoad: OnLoad | undefined,\n onLoadingComplete: OnLoadingComplete | undefined,\n setBlurComplete: (v: boolean) => void,\n unoptimized: boolean,\n sizesInput: string | undefined,\n): void {\n const src = img?.src;\n // 同一张图只处理一次\n if (!img || img[\"data-loaded-src\"] === src) return;\n img[\"data-loaded-src\"] = src;\n\n const p: Promise<void> = \"decode\" in img ? img.decode() : Promise.resolve();\n\n p.catch(() => {}).then(() => {\n // 若组件已卸载则提前退出\n if (!img.parentElement || !img.isConnected) return;\n\n if (placeholder !== \"empty\") {\n setBlurComplete(true);\n }\n\n if (onLoad) {\n const event = new Event(\"load\");\n Object.defineProperty(event, \"target\", { writable: false, value: img });\n onLoad(\n event as Event & { currentTarget: HTMLImageElement; target: Element },\n );\n }\n\n if (onLoadingComplete) {\n onLoadingComplete(img);\n }\n\n if (import.meta.env.DEV) {\n warnFillUsage(img, unoptimized, sizesInput);\n warnAspectRatioMismatch(img);\n }\n });\n}\n\n// ─── 开发警告辅助 ──────────────────────────────────────────────────────────────\n\nfunction warnFillUsage(\n img: HTMLImageElement,\n unoptimized: boolean,\n sizesInput: string | undefined,\n): void {\n if (img.getAttribute(\"data-nimg\") !== \"fill\") return;\n\n const origSrc =\n new URL(img.src, \"http://n\").searchParams.get(\"url\") || img.src;\n\n if (!unoptimized) {\n const widthViewportRatio =\n img.getBoundingClientRect().width / window.innerWidth;\n if (widthViewportRatio < 0.6) {\n if (sizesInput === \"100vw\") {\n console.warn(\n `[Image] src=\"${origSrc}\" 设置了 fill 和 sizes=\"100vw\",但实际渲染宽度不足视口宽度,请调整 sizes 以提升性能。`,\n );\n } else if (!sizesInput) {\n console.warn(\n `[Image] src=\"${origSrc}\" 设置了 fill 但缺少 sizes 属性,请添加以提升性能。`,\n );\n }\n }\n }\n\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement);\n const valid = [\"absolute\", \"fixed\", \"relative\"];\n if (!valid.includes(position)) {\n console.warn(\n `[Image] src=\"${origSrc}\" 设置了 fill,但父元素 position=\"${position}\",应为 ${valid.join(\" | \")} 之一。`,\n );\n }\n }\n\n if (img.height === 0) {\n console.warn(\n `[Image] src=\"${origSrc}\" 设置了 fill 且高度为 0,请为父元素设置明确高度。`,\n );\n }\n}\n\nfunction warnAspectRatioMismatch(img: HTMLImageElement): void {\n const heightModified = img.height.toString() !== img.getAttribute(\"height\");\n const widthModified = img.width.toString() !== img.getAttribute(\"width\");\n if (\n (heightModified && !widthModified) ||\n (!heightModified && widthModified)\n ) {\n const origSrc =\n new URL(img.src, \"http://n\").searchParams.get(\"url\") || img.src;\n console.warn(\n `[Image] src=\"${origSrc}\" 仅修改了 width 或 height 其中之一,请同时添加 width: \"auto\" 或 height: \"auto\" 样式以保持宽高比。`,\n );\n }\n}\n\ninterface GetImgPropsOptions {\n imgConf: ImageConfigComplete;\n blurComplete: boolean;\n showAltText: boolean;\n}\n\nexport const VALID_LOADING_VALUES = [\"lazy\", \"eager\", undefined] as const;\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n \"-moz-initial\",\n \"fill\",\n \"none\",\n \"scale-down\",\n undefined,\n];\n\nlet perfObserver: PerformanceObserver | undefined;\nconst allImgs = new Map<\n string,\n { src: string; loading: LoadingValue; placeholder: PlaceholderValue }\n>();\n\nexport function getImgProps(\n props: ImageProps,\n { imgConf, blurComplete, showAltText }: GetImgPropsOptions,\n): ImgPropsResult {\n const merged = mergeProps(\n {\n // loader: defaultLoader,\n fill: false,\n priority: false,\n preload: false,\n placeholder: \"empty\",\n unoptimized: imgConf.unoptimized,\n decoding: \"async\",\n } as const,\n props,\n );\n const [local, others] = splitProps(merged, [\n \"src\",\n \"loader\",\n \"quality\",\n \"width\",\n \"height\",\n \"fill\",\n \"sizes\",\n \"priority\",\n \"placeholder\",\n \"blurDataURL\",\n \"unoptimized\",\n \"overrideSrc\",\n \"onLoad\",\n \"onLoadingComplete\",\n \"layout\",\n \"style\",\n \"preload\",\n \"loading\",\n \"objectFit\",\n \"objectPosition\",\n \"lazyBoundary\",\n \"lazyRoot\",\n \"fetchpriority\",\n \"class\",\n \"decoding\",\n ]);\n\n let config: ImageConfig;\n const c = imgConf || imageConfigDefault;\n\n if (\"allSizes\" in c) {\n config = c as ImageConfig;\n } else {\n const allSizes = [...c.deviceSizes, ...c.imageSizes].sort((a, b) => a - b);\n const deviceSizes = c.deviceSizes.sort((a, b) => a - b);\n const qualities = c.qualities?.sort((a, b) => a - b);\n config = { ...c, allSizes, deviceSizes, qualities };\n }\n\n if (typeof defaultLoader === \"undefined\") {\n throw new Error(\n \"images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config\",\n );\n }\n\n let style = local.style;\n let sizes = local.sizes;\n let fill = local.fill;\n\n const loader: ImageLoaderWithConfig = local.loader || defaultLoader;\n\n if (local.layout) {\n if (local.layout === \"fill\") {\n fill = true;\n }\n const layoutToStyle: Record<string, Record<string, string> | undefined> = {\n intrinsic: { maxWidth: \"100%\", height: \"auto\" },\n responsive: { width: \"100%\", height: \"auto\" },\n };\n const layoutToSizes: Record<string, string | undefined> = {\n responsive: \"100vw\",\n fill: \"100vw\",\n };\n const layoutStyle = layoutToStyle[local.layout];\n if (layoutStyle) {\n style = { ...style, ...layoutStyle };\n }\n const layoutSizes = layoutToSizes[local.layout];\n if (layoutSizes && !sizes) {\n sizes = layoutSizes;\n }\n }\n\n let staticSrc = \"\";\n let blurDataURL = local.blurDataURL;\n let widthInt = getInt(local.width);\n let heightInt = getInt(local.height);\n let blurWidth: number | undefined;\n let blurHeight: number | undefined;\n\n if (isStaticImport(local.src)) {\n const staticImageData = isStaticRequire(local.src)\n ? local.src.default\n : local.src;\n\n if (!staticImageData.src) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(\n staticImageData,\n )}`,\n );\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw new Error(\n `An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(\n staticImageData,\n )}`,\n );\n }\n\n blurWidth = staticImageData.blurWidth;\n blurHeight = staticImageData.blurHeight;\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width;\n heightInt = staticImageData.height;\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width;\n heightInt = Math.round(staticImageData.height * ratio);\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height;\n widthInt = Math.round(staticImageData.width * ratio);\n }\n }\n }\n const src = typeof local.src === \"string\" ? local.src : staticSrc;\n\n let unoptimized = local.unoptimized;\n let isLazy =\n !local.priority &&\n !local.preload &&\n (local.loading === \"lazy\" || typeof local.loading === \"undefined\");\n if (!src || src.startsWith(\"data:\") || src.startsWith(\"blob:\")) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (config.unoptimized) {\n unoptimized = true;\n }\n if (!config.dangerouslyAllowSVG && src.split(\"?\", 1)[0].endsWith(\".svg\")) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true;\n }\n\n const qualityInt = getInt(local.quality);\n\n if (!import.meta.env.PROD) {\n if (config.output === \"export\" && !unoptimized) {\n throw new Error(\n `Image Optimization using the default loader is not compatible with \\`{ output: 'export' }\\`.\n Possible solutions:\n - Remove \\`{ output: 'export' }\\` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure \\`{ images: { unoptimized: true } }\\` in \\`next.config.js\\` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api`,\n );\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true;\n } else {\n if (fill) {\n if (local.width) {\n throw new Error(\n `Image with src \"${src}\" has both \"width\" and \"fill\" properties. Only one should be used.`,\n );\n }\n if (local.height) {\n throw new Error(\n `Image with src \"${src}\" has both \"height\" and \"fill\" properties. Only one should be used.`,\n );\n }\n if (style?.position && style.position !== \"absolute\") {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.`,\n );\n }\n if (style?.width && style.width !== \"100%\") {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.`,\n );\n }\n if (style?.height && style.height !== \"100%\") {\n throw new Error(\n `Image with src \"${src}\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.`,\n );\n }\n } else {\n if (typeof widthInt === \"undefined\") {\n throw new Error(\n `Image with src \"${src}\" is missing required \"width\" property.`,\n );\n } else if (Number.isNaN(widthInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"width\" property. Expected a numeric value in pixels but received \"${local.width}\".`,\n );\n }\n if (typeof heightInt === \"undefined\") {\n throw new Error(\n `Image with src \"${src}\" is missing required \"height\" property.`,\n );\n } else if (Number.isNaN(heightInt)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"height\" property. Expected a numeric value in pixels but received \"${local.height}\".`,\n );\n }\n\n // biome-ignore lint/suspicious/noControlCharactersInRegex: no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.`,\n );\n }\n // biome-ignore lint/suspicious/noControlCharactersInRegex: no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw new Error(\n `Image with src \"${src}\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.`,\n );\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(local.loading)) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"loading\" property. Provided \"${local.loading}\" should be one of ${VALID_LOADING_VALUES.map(\n String,\n ).join(\",\")}.`,\n );\n }\n if (local.priority && local.loading === \"lazy\") {\n throw new Error(\n `Image with src \"${src}\" has both \"priority\" and \"loading='lazy'\" properties. Only one should be used.`,\n );\n }\n if (local.preload && local.loading === \"lazy\") {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"loading='lazy'\" properties. Only one should be used.`,\n );\n }\n if (local.preload && local.priority) {\n throw new Error(\n `Image with src \"${src}\" has both \"preload\" and \"priority\" properties. Only \"preload\" should be used.`,\n );\n }\n if (\n local.placeholder !== \"empty\" &&\n local.placeholder !== \"blur\" &&\n !local.placeholder.startsWith(\"data:image/\")\n ) {\n throw new Error(\n `Image with src \"${src}\" has invalid \"placeholder\" property \"${local.placeholder}\".`,\n );\n }\n if (local.placeholder !== \"empty\") {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n warnOnce(\n `Image with src \"${src}\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.`,\n );\n }\n }\n if (\n qualityInt &&\n config.qualities &&\n !config.qualities.includes(qualityInt)\n ) {\n warnOnce(\n `Image with src \"${src}\" is using quality \"${qualityInt}\" which is not configured in images.qualities [${config.qualities.join(\", \")}]. Please update your config to [${[...config.qualities, qualityInt].sort().join(\", \")}].` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-unconfigured-qualities`,\n );\n }\n if (local.placeholder === \"blur\" && !blurDataURL) {\n const VALID_BLUR_EXT = [\"jpeg\", \"png\", \"webp\", \"avif\"]; // should match next-image-loader\n\n throw new Error(\n `Image with src \"${src}\" has \"placeholder='blur'\" property but is missing the \"blurDataURL\" property.\n Possible solutions:\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\n - Change the \"src\" property to a static import with one of the supported file types: ${VALID_BLUR_EXT.join(\n \",\",\n )} (animated images not supported)\n - Remove the \"placeholder\" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url`,\n );\n }\n if (\"ref\" in others) {\n warnOnce(\n `Image with src \"${src}\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.`,\n );\n }\n\n if (!unoptimized) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75,\n });\n let url: URL | undefined;\n try {\n url = new URL(urlStr);\n } catch (err) {\n console.error(err);\n }\n if (urlStr === src || (url && url.pathname === src && !url.search)) {\n warnOnce(\n `Image with src \"${src}\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width`,\n );\n }\n }\n\n if (local.onLoadingComplete) {\n warnOnce(\n `Image with src \"${src}\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.`,\n );\n }\n\n for (const [legacyKey, legacyValue] of Object.entries({\n layout: local.layout,\n objectFit: local.objectFit,\n objectPosition: local.objectPosition,\n lazyBoundary: local.lazyBoundary,\n lazyRoot: local.lazyRoot,\n })) {\n if (legacyValue) {\n warnOnce(\n `Image with src \"${src}\" has legacy prop \"${legacyKey}\". Did you forget to run the codemod?` +\n `\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13`,\n );\n }\n }\n\n if (\n typeof window !== \"undefined\" &&\n !perfObserver &&\n window.PerformanceObserver\n ) {\n perfObserver = new PerformanceObserver((entryList) => {\n for (const entry of entryList.getEntries()) {\n // @ts-expect-error - missing \"LargestContentfulPaint\" class with \"element\" prop\n const imgSrc = entry?.element?.src || \"\";\n const lcpImage = allImgs.get(imgSrc);\n if (\n lcpImage &&\n lcpImage.loading === \"lazy\" &&\n lcpImage.placeholder === \"empty\" &&\n !lcpImage.src.startsWith(\"data:\") &&\n !lcpImage.src.startsWith(\"blob:\")\n ) {\n // https://web.dev/lcp/#measure-lcp-in-javascript\n warnOnce(\n `Image with src \"${lcpImage.src}\" was detected as the Largest Contentful Paint (LCP). Please add the \\`loading=\"eager\"\\` property if this image is above the fold.` +\n `\\nRead more: https://nextjs.org/docs/app/api-reference/components/image#loading`,\n );\n }\n }\n });\n try {\n perfObserver.observe({\n type: \"largest-contentful-paint\",\n buffered: true,\n });\n } catch (err) {\n // Log error but don't crash the app\n console.error(err);\n }\n }\n }\n\n const imgStyle = Object.assign(\n fill\n ? {\n position: \"absolute\",\n height: \"100%\",\n width: \"100%\",\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit: local.objectFit,\n objectPosition: local.objectPosition,\n }\n : {},\n showAltText ? {} : { color: \"transparent\" },\n style,\n );\n\n const backgroundImage =\n !blurComplete && local.placeholder !== \"empty\"\n ? local.placeholder === \"blur\"\n ? `url(\"data:image/svg+xml;charset=utf-8,${getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || \"\", // assume not undefined\n objectFit: imgStyle.objectFit,\n })}\")`\n : `url(\"${local.placeholder}\")` // assume `data:image/`\n : null;\n\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(\n imgStyle.objectFit,\n )\n ? imgStyle.objectFit\n : imgStyle.objectFit === \"fill\"\n ? \"100% 100%\" // the background-size equivalent of `fill`\n : \"cover\";\n\n const placeholderStyle: PlaceholderStyle = backgroundImage\n ? {\n \"background-size\": backgroundSize,\n \"background-position\": imgStyle.objectPosition || \"50% 50%\",\n \"background-repeat\": \"no-repeat\",\n \"background-image\": backgroundImage,\n }\n : {};\n\n if (import.meta.env.DEV) {\n if (\n placeholderStyle[\"background-image\"] &&\n local.placeholder === \"blur\" &&\n blurDataURL?.startsWith(\"/\")\n ) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle[\"background-image\"] = `url(\"${blurDataURL}\")`;\n }\n }\n\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader,\n });\n\n const loadingFinal = isLazy ? \"lazy\" : local.loading;\n\n if (!import.meta.env.PROD) {\n if (typeof window !== \"undefined\") {\n let fullUrl: URL;\n try {\n fullUrl = new URL(imgAttributes.src);\n } catch (e) {\n console.error(e);\n fullUrl = new URL(imgAttributes.src, window.location.href);\n }\n allImgs.set(fullUrl.href, {\n src,\n loading: loadingFinal,\n placeholder: local.placeholder,\n });\n }\n }\n\n const newProps: ImgProps = {\n ...others,\n loading: loadingFinal,\n fetchpriority: local.fetchpriority,\n width: widthInt,\n height: heightInt,\n decoding: local.decoding,\n class: local.class,\n style: { ...imgStyle, ...placeholderStyle },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: local.overrideSrc || imgAttributes.src,\n };\n const meta = {\n unoptimized,\n preload: local.preload || local.priority,\n placeholder: local.placeholder,\n fill,\n };\n return { props: newProps, meta };\n}\n\nfunction defaultLoader({ src, width, quality }: ImageLoaderProps): string {\n if (import.meta.env.DEV) {\n const missingValues: string[] = [];\n if (!src) missingValues.push(\"src\");\n if (!width) missingValues.push(\"width\");\n if (missingValues.length > 0) {\n throw new Error(\n `[defaultLoader] 缺少必要属性:${missingValues.join(\", \")}。` +\n `请确认调用方式正确,或提供自定义 loader。`,\n );\n }\n }\n\n // 如果 src 本身已是带参数的 URL(外部图片),直接返回\n if (src.startsWith(\"http://\") || src.startsWith(\"https://\")) {\n return src;\n }\n\n // 本地图片:追加 w / q 参数(供自定义服务器处理)\n const params = new URLSearchParams();\n params.set(\"url\", src);\n params.set(\"w\", String(width));\n if (quality) params.set(\"q\", String(quality));\n return `/_image?${params.toString()}`;\n}\n\nfunction getInt(x: unknown): number | undefined {\n if (typeof x === \"undefined\") {\n return x;\n }\n if (typeof x === \"number\") {\n return Number.isFinite(x) ? x : NaN;\n }\n if (typeof x === \"string\" && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10);\n }\n return NaN;\n}\n\nfunction isStaticRequire(\n src: StaticRequire | StaticImageData,\n): src is StaticRequire {\n return (src as StaticRequire).default !== undefined;\n}\n\nfunction isStaticImageData(\n src: StaticRequire | StaticImageData,\n): src is StaticImageData {\n return (src as StaticImageData).src !== undefined;\n}\n\nfunction isStaticImport(src: string | StaticImport): src is StaticImport {\n return (\n !!src &&\n typeof src === \"object\" &&\n (isStaticRequire(src as StaticImport) ||\n isStaticImageData(src as StaticImport))\n );\n}\n\nfunction getImageBlurSvg({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL,\n objectFit,\n}: {\n widthInt?: number;\n heightInt?: number;\n blurWidth?: number;\n blurHeight?: number;\n blurDataURL: string;\n objectFit?: string;\n}): string {\n const std = 20;\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt;\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt;\n\n const viewBox =\n svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : \"\";\n const preserveAspectRatio = viewBox\n ? \"none\"\n : objectFit === \"contain\"\n ? \"xMidYMid\"\n : objectFit === \"cover\"\n ? \"xMidYMid slice\"\n : \"none\";\n\n return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`;\n}\n\ntype GenImgAttrsData = {\n config: ImageConfig;\n src: string;\n unoptimized: boolean;\n loader: ImageLoaderWithConfig;\n width?: number;\n quality?: number;\n sizes?: string;\n};\n\ntype GenImgAttrsResult = {\n src: string;\n srcSet: string | undefined;\n sizes: string | undefined;\n};\n\nfunction generateImgAttrs({\n config,\n src,\n unoptimized,\n width,\n quality,\n sizes,\n loader,\n}: GenImgAttrsData): GenImgAttrsResult {\n if (unoptimized) {\n return { src, srcSet: undefined, sizes: undefined };\n }\n\n const { widths, kind } = getWidths(config, width, sizes);\n const last = widths.length - 1;\n\n return {\n sizes: !sizes && kind === \"w\" ? \"100vw\" : sizes,\n srcSet: widths\n .map(\n (w, i) =>\n `${loader({ config, src, quality, width: w })} ${\n kind === \"w\" ? w : i + 1\n }${kind}`,\n )\n .join(\", \"),\n\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({ config, src, quality, width: widths[last] }),\n };\n}\n\nfunction getWidths(\n { deviceSizes, allSizes }: ImageConfig,\n width: number | undefined,\n sizes: string | undefined,\n): { widths: number[]; kind: \"w\" | \"x\" } {\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = [];\n for (\n let match: RegExpExecArray | null;\n // biome-ignore lint/suspicious/noAssignInExpressions: nextjs code\n (match = viewportWidthRe.exec(sizes));\n match\n ) {\n percentSizes.push(Number.parseInt(match[2], 10));\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),\n kind: \"w\",\n };\n }\n return { widths: allSizes, kind: \"w\" };\n }\n if (typeof width !== \"number\") {\n return { widths: deviceSizes, kind: \"w\" };\n }\n\n const widths = [\n ...new Set(\n // > This means that most OLED screens that say they are 3x resolution,\n // > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [width, width * 2 /*, width * 3*/].map(\n (w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1],\n ),\n ),\n ];\n return { widths, kind: \"x\" };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageElement.js","names":["Component","mergeProps","splitProps","ImgProps","OnLoad","OnLoadingComplete","PlaceholderValue","handleLoading","ImageElementProps","unoptimized","placeholder","setBlurComplete","v","setShowAltText","sizesInput","onLoad","onLoadingComplete","ref","el","HTMLImageElement","ImageElement","rawProps","props","decoding","const","internal","imgAttrs","handleRef","img","onError","src","import","meta","env","PROD","console","error","getAttribute","alt","undefined","complete","_el$","_tmpl$","_ref$","_$use","_$spread","_$mergeProps","loading","width","height","data-nimg","fill","class","style","sizes","srcset","srcSet","e","currentTarget"],"sources":["../../../src/components/image/ImageElement.tsx"],"sourcesContent":["/**\n * ImageElement.tsx\n * 单一职责:仅负责渲染原生 <img> 元素,并将 ref 回调、onLoad、onError 事件桥接到\n * 上层传入的副作用函数。不包含配置解析、preload 或 blur placeholder 逻辑。\n */\n\nimport { type Component, mergeProps, splitProps } from \"solid-js\";\nimport type {\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from \"./Image.types\";\nimport { handleLoading } from \"./Image.utils\";\n\n// ─── 额外内部 Props ────────────────────────────────────────────────────────────\n\nexport interface ImageElementProps extends ImgProps {\n unoptimized: boolean;\n placeholder: PlaceholderValue;\n /** 上层通过 signal setter 传入,避免在此组件内管理状态 */\n setBlurComplete: (v: boolean) => void;\n setShowAltText: (v: boolean) => void;\n sizesInput: string | undefined;\n onLoad?: OnLoad;\n onLoadingComplete?: OnLoadingComplete;\n // onError?: (e: Event) => void;\n /** 透传给原生 img 的 ref */\n ref?: (el: HTMLImageElement) => void;\n}\n\n// ─── 组件 ─────────────────────────────────────────────────────────────────────\n\nconst ImageElement: Component<ImageElementProps> = (rawProps) => {\n const props = mergeProps({ decoding: \"async\" as const }, rawProps);\n\n // 分离内部 props 与透传给 <img> 的 props\n const [internal, imgAttrs] = splitProps(props, [\n \"src\",\n \"srcSet\",\n \"sizes\",\n \"height\",\n \"width\",\n \"decoding\",\n \"class\",\n \"classList\",\n \"style\",\n \"fetchpriority\",\n \"placeholder\",\n \"loading\",\n \"unoptimized\",\n \"fill\",\n \"setBlurComplete\",\n \"setShowAltText\",\n \"sizesInput\",\n \"onLoad\",\n \"onError\",\n \"onLoadingComplete\",\n \"ref\",\n \"alt\",\n ]);\n\n /**\n * ref 回调:在元素挂载后立即处理\"图片在 hydrate 前已加载完成\"的情况,\n * 并将 ref 透传给调用方(如需要访问 img 节点)。\n */\n function handleRef(img: HTMLImageElement) {\n if (!img) return;\n\n // 让 Safari 重新触发 onerror(如果图片在 hydrate 前就已失败)\n if (internal.onError) {\n // biome-ignore lint/correctness/noSelfAssign: If the image has an error before react hydrates, then the error is lost. The workaround is to wait until the image is mounted which is after hydration, then we set the src again to trigger the error handler (if there was an error).\n img.src = img.src;\n }\n\n if (!import.meta.env.PROD) {\n if (!internal.src) {\n console.error('[Image] 缺少必填属性 \"src\"', img);\n }\n if (img.getAttribute(\"alt\") === null && internal.alt === undefined) {\n console.error('[Image] 缺少必填属性 \"alt\"...');\n }\n }\n\n // 图片在组件挂载前已完成加载(cached 场景)\n if (img.complete) {\n handleLoading(\n img,\n internal.placeholder,\n internal.onLoad,\n internal.onLoadingComplete,\n internal.setBlurComplete,\n internal.unoptimized,\n internal.sizesInput,\n );\n }\n\n // 透传 ref\n internal.ref?.(img);\n }\n\n return (\n // 注意属性顺序:\n // 1. loading 在 src 之前,修复 Safari/Firefox 懒加载时机问题\n // 2. sizes / srcSet 在 src 之前,避免 Safari 提前请求错误尺寸\n // 3. src 最后设置\n <img\n {...imgAttrs}\n // React 19 使用 camelCase fetchPriority;SolidJS 直接透传 JSX 属性即可\n alt={internal.alt}\n loading={internal.loading}\n width={internal.width}\n height={internal.height}\n decoding={internal.decoding}\n data-nimg={internal.fill ? \"fill\" : \"1\"}\n class={internal.class}\n style={internal.style}\n sizes={internal.sizes}\n srcset={internal.srcSet}\n src={internal.src}\n ref={handleRef}\n onLoad={(e) => {\n const img = e.currentTarget as HTMLImageElement;\n handleLoading(\n img,\n internal.placeholder,\n internal.onLoad,\n internal.onLoadingComplete,\n internal.setBlurComplete,\n internal.unoptimized,\n internal.sizesInput,\n );\n }}\n onError={(e) => {\n // 图片加载失败时显示 alt 文本\n internal.setShowAltText(true);\n if (internal.placeholder !== \"empty\") {\n // 即使真实图片失败,也要移除 blur placeholder\n internal.setBlurComplete(true);\n }\n\n if (!internal.onError) return;\n\n if (typeof internal.onError !== \"function\") return;\n\n internal.onError(e);\n }}\n />\n );\n};\n\nexport default ImageElement;\n"],"mappings":";;;;8CAiCMoB,KAA8CC,MAAa;CAC/D,IAAMC,IAAQrB,EAAW,EAAEsB,UAAU,QAAiB,GAAGF,CAAQ,GAG3D,CAACI,GAAUC,KAAYxB,EAAWoB,GAAO;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAK,CACN;CAMD,SAASK,EAAUC,GAAuB;
|
|
1
|
+
{"version":3,"file":"ImageElement.js","names":["Component","mergeProps","splitProps","ImgProps","OnLoad","OnLoadingComplete","PlaceholderValue","handleLoading","ImageElementProps","unoptimized","placeholder","setBlurComplete","v","setShowAltText","sizesInput","onLoad","onLoadingComplete","ref","el","HTMLImageElement","ImageElement","rawProps","props","decoding","const","internal","imgAttrs","handleRef","img","onError","src","import","meta","env","PROD","console","error","getAttribute","alt","undefined","complete","_el$","_tmpl$","_ref$","_$use","_$spread","_$mergeProps","loading","width","height","data-nimg","fill","class","style","sizes","srcset","srcSet","e","currentTarget","mergeProps","_$use","_$mergeProps","mergeProps$1","_tmpl$","ImageElement","props","rawProps","internal","imgAttrs","splitProps","handleRef","img","handleLoading","_el$","_ref$","use","spread","mergeProps","\"class\"","\"onLoad\"","e","\"onError\""],"sources":["../../../src/components/image/ImageElement.tsx"],"sourcesContent":["/**\n * ImageElement.tsx\n * 单一职责:仅负责渲染原生 <img> 元素,并将 ref 回调、onLoad、onError 事件桥接到\n * 上层传入的副作用函数。不包含配置解析、preload 或 blur placeholder 逻辑。\n */\n\nimport { type Component, mergeProps, splitProps } from \"solid-js\";\nimport type {\n ImgProps,\n OnLoad,\n OnLoadingComplete,\n PlaceholderValue,\n} from \"./Image.types\";\nimport { handleLoading } from \"./Image.utils\";\n\n// ─── 额外内部 Props ────────────────────────────────────────────────────────────\n\nexport interface ImageElementProps extends ImgProps {\n unoptimized: boolean;\n placeholder: PlaceholderValue;\n /** 上层通过 signal setter 传入,避免在此组件内管理状态 */\n setBlurComplete: (v: boolean) => void;\n setShowAltText: (v: boolean) => void;\n sizesInput: string | undefined;\n onLoad?: OnLoad;\n onLoadingComplete?: OnLoadingComplete;\n // onError?: (e: Event) => void;\n /** 透传给原生 img 的 ref */\n ref?: (el: HTMLImageElement) => void;\n}\n\n// ─── 组件 ─────────────────────────────────────────────────────────────────────\n\nconst ImageElement: Component<ImageElementProps> = (rawProps) => {\n const props = mergeProps({ decoding: \"async\" as const }, rawProps);\n\n // 分离内部 props 与透传给 <img> 的 props\n const [internal, imgAttrs] = splitProps(props, [\n \"src\",\n \"srcSet\",\n \"sizes\",\n \"height\",\n \"width\",\n \"decoding\",\n \"class\",\n \"classList\",\n \"style\",\n \"fetchpriority\",\n \"placeholder\",\n \"loading\",\n \"unoptimized\",\n \"fill\",\n \"setBlurComplete\",\n \"setShowAltText\",\n \"sizesInput\",\n \"onLoad\",\n \"onError\",\n \"onLoadingComplete\",\n \"ref\",\n \"alt\",\n ]);\n\n /**\n * ref 回调:在元素挂载后立即处理\"图片在 hydrate 前已加载完成\"的情况,\n * 并将 ref 透传给调用方(如需要访问 img 节点)。\n */\n function handleRef(img: HTMLImageElement) {\n if (!img) return;\n\n // 让 Safari 重新触发 onerror(如果图片在 hydrate 前就已失败)\n if (internal.onError) {\n // biome-ignore lint/correctness/noSelfAssign: If the image has an error before react hydrates, then the error is lost. The workaround is to wait until the image is mounted which is after hydration, then we set the src again to trigger the error handler (if there was an error).\n img.src = img.src;\n }\n\n if (!import.meta.env.PROD) {\n if (!internal.src) {\n console.error('[Image] 缺少必填属性 \"src\"', img);\n }\n if (img.getAttribute(\"alt\") === null && internal.alt === undefined) {\n console.error('[Image] 缺少必填属性 \"alt\"...');\n }\n }\n\n // 图片在组件挂载前已完成加载(cached 场景)\n if (img.complete) {\n handleLoading(\n img,\n internal.placeholder,\n internal.onLoad,\n internal.onLoadingComplete,\n internal.setBlurComplete,\n internal.unoptimized,\n internal.sizesInput,\n );\n }\n\n // 透传 ref\n internal.ref?.(img);\n }\n\n return (\n // 注意属性顺序:\n // 1. loading 在 src 之前,修复 Safari/Firefox 懒加载时机问题\n // 2. sizes / srcSet 在 src 之前,避免 Safari 提前请求错误尺寸\n // 3. src 最后设置\n <img\n {...imgAttrs}\n // React 19 使用 camelCase fetchPriority;SolidJS 直接透传 JSX 属性即可\n alt={internal.alt}\n loading={internal.loading}\n width={internal.width}\n height={internal.height}\n decoding={internal.decoding}\n data-nimg={internal.fill ? \"fill\" : \"1\"}\n class={internal.class}\n style={internal.style}\n sizes={internal.sizes}\n srcset={internal.srcSet}\n src={internal.src}\n ref={handleRef}\n onLoad={(e) => {\n const img = e.currentTarget as HTMLImageElement;\n handleLoading(\n img,\n internal.placeholder,\n internal.onLoad,\n internal.onLoadingComplete,\n internal.setBlurComplete,\n internal.unoptimized,\n internal.sizesInput,\n );\n }}\n onError={(e) => {\n // 图片加载失败时显示 alt 文本\n internal.setShowAltText(true);\n if (internal.placeholder !== \"empty\") {\n // 即使真实图片失败,也要移除 blur placeholder\n internal.setBlurComplete(true);\n }\n\n if (!internal.onError) return;\n\n if (typeof internal.onError !== \"function\") return;\n\n internal.onError(e);\n }}\n />\n );\n};\n\nexport default ImageElement;\n"],"mappings":";;;;8CAiCMoB,KAA8CC,MAAa;CAC/D,IAAMC,IAAQrB,EAAW,EAAEsB,UAAU,QAAiB,GAAGF,CAAQ,GAG3D,CAACI,GAAUC,KAAYxB,EAAWoB,GAAO;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CAAK,CACN;CAMD,SAASK,EAAUC,GAAuB;EACxC,AAAKA,MAGDH,EAASI,YAEXD,EAAIE,MAAMF,EAAIE,MAaZF,EAAIY,YACNjC,EACEqB,GACAH,EAASf,aACTe,EAASV,QACTU,EAAST,mBACTS,EAASd,iBACTc,EAAShB,aACTgB,EAASX,UACX,GAIFW,EAASR,MAAMW,CAAG;CACpB;CAEA,cAIE;EAAA,IAAAa,IAAAC,EAAA,GAAAC,IAeOhB;EA0BJ,OA1Ba,OAAAgB,KAAA,aAAAC,EAAAD,GAAAF,CAAA,IAATd,IAASc,GAAAI,EAAAJ,GAAAK,EAbVpB,GAAQ;GAAA,IAEZY,MAAG;IAAA,OAAEb,EAASa;GAAG;GAAA,IACjBS,UAAO;IAAA,OAAEtB,EAASsB;GAAO;GAAA,IACzBC,QAAK;IAAA,OAAEvB,EAASuB;GAAK;GAAA,IACrBC,SAAM;IAAA,OAAExB,EAASwB;GAAM;GAAA,IACvB1B,WAAQ;IAAA,OAAEE,EAASF;GAAQ;GAAA,IAAA,cAAA;IAAA,OAChBE,EAAS0B,OAAO,SAAS;GAAG;GAAA,IAAA2B,QAAA;IAAA,OAChCrD,EAAS2B;GAAK;GAAA,IACrBC,QAAK;IAAA,OAAE5B,EAAS4B;GAAK;GAAA,IACrBC,QAAK;IAAA,OAAE7B,EAAS6B;GAAK;GAAA,IACrBC,SAAM;IAAA,OAAE9B,EAAS+B;GAAM;GAAA,IACvB1B,MAAG;IAAA,OAAEL,EAASK;GAAG;GAAAiD,SAERtB,MAAM;IACb,IAAM7B,IAAM6B,EAAEC;IACdnD,EACEqB,GACAH,EAASf,aACTe,EAASV,QACTU,EAAST,mBACTS,EAASd,iBACTc,EAAShB,aACTgB,EAASX,UACX;GACF;GAACmE,UACSxB,MAAM;IAQd,AANAhC,EAASZ,eAAe,EAAI,GACxBY,EAASf,gBAAgB,WAE3Be,EAASd,gBAAgB,EAAI,GAG1Bc,EAASI,WAEV,OAAOJ,EAASI,WAAY,cAEhCJ,EAASI,QAAQ4B,CAAC;GACpB;EAAC,CAAA,GAAA,IAAA,EAAA,GAAAhB;CAAA,EAAA,CAAA;AAGP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImagePreload.js","names":["Component","Portal","ImgProps","ImagePreloadProps","imgAttributes","Pick","ImagePreload","props","a","linkKey","src","srcSet","sizes","document","head","querySelector","_$createComponent","mount","children","_el$","_tmpl$","_$setAttribute","_$effect","_p$","_v$","undefined","_v$2","_v$3","_v$4","crossOrigin","_v$5","referrerPolicy","_v$6","fetchpriority","e","t","o","i","n"],"sources":["../../../src/components/image/ImagePreload.tsx"],"sourcesContent":["/**\n * ImagePreload.tsx\n * 单一职责:仅负责向 <head> 注入 <link rel=\"preload\"> 标签,\n * 以提升 LCP 图片的加载优先级。不包含任何 <img> 渲染逻辑。\n */\n\nimport type { Component } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport type { ImgProps } from \"./Image.types\";\n\n// ─── Props ────────────────────────────────────────────────────────────────────\n\nexport interface ImagePreloadProps {\n imgAttributes: Pick<\n ImgProps,\n | \"src\"\n | \"srcSet\"\n | \"sizes\"\n | \"crossOrigin\"\n | \"referrerPolicy\"\n | \"fetchpriority\"\n >;\n}\n\n// ─── 组件 ─────────────────────────────────────────────────────────────────────\n\n/**\n * 通过 SolidJS <Portal> 将 <link> 插入 document.head。\n *\n * 注意:\n * - 故意省略 href(当 imagesrcset 存在时),以避免不支持 srcset 的浏览器\n * 加载错误尺寸的图片。详见 HTML spec §attr-link-imagesrcset。\n * - SolidJS SSR 环境可将此组件替换为 server-side head injection。\n */\nconst ImagePreload: Component<ImagePreloadProps> = (props) => {\n const { imgAttributes: a } = props;\n\n // 唯一 key 避免重复插入相同的 preload\n const linkKey = `__img-preload-${a.src}-${a.srcSet ?? \"\"}-${a.sizes ?? \"\"}`;\n\n // 若已存在相同 key 的 link,则跳过(SSR hydrate 场景)\n if (typeof document !== \"undefined\") {\n if (document.head.querySelector(`link[data-img-key=\"${linkKey}\"]`)) {\n return null;\n }\n }\n\n return (\n <Portal mount={document.head}>\n <link\n rel=\"preload\"\n as=\"image\"\n data-img-key={linkKey}\n // 当存在 srcset 时不设置 href,遵从 spec\n href={a.srcSet ? undefined : a.src}\n imagesrcset={a.srcSet}\n imagesizes={a.sizes}\n crossorigin={a.crossOrigin}\n referrerpolicy={a.referrerPolicy}\n fetchpriority={a.fetchpriority}\n />\n </Portal>\n );\n};\n\nexport default ImagePreload;\n"],"mappings":";;wDAkCMM,KAA8CC,MAAU;CAC5D,IAAM,EAAEH,eAAeI,MAAMD,GAGvBE,IAAU,iBAAiBD,EAAEE,IAAG,GAAIF,EAAEG,UAAU,GAAE,GAAIH,EAAEI,SAAS;CASvE,OANI,OAAOC,WAAa,OAClBA,SAASC,KAAKC,cAAc,sBAAsBN,EAAO,GAAI,IACxD,OAIXO,EACGf,GAAM;EAAA,IAACgB,QAAK;GAAA,OAAEJ,SAASC;EAAI;EAAA,IAAAI,WAAA;GAAA,IAAAC,IAAAC,EAAA;GAWM,OAXNC,EAAAF,GAAA,gBAIVV,CAAO,GAAAa,GAAAC,MAAA;IAAA,IAAAC,IAEfhB,EAAEG,SAASc,KAAAA,IAAYjB,EAAEE,KAAGgB,IACrBlB,EAAEG,QAAMgB,IACTnB,EAAEI,OAAKgB,IACNpB,EAAEqB,aAAWC,IACVtB,EAAEuB,gBAAcC,IACjBxB,EAAEyB;IAAa,OAAAT,MAAAD,EAAAW,KAAAb,EAAAF,GAAA,QAAAI,EAAAW,IAAAV,CAAA,GAAAE,MAAAH,EAAAY,KAAAd,EAAAF,GAAA,eAAAI,EAAAY,IAAAT,CAAA,GAAAC,MAAAJ,EAAAf,KAAAa,EAAAF,GAAA,cAAAI,EAAAf,IAAAmB,CAAA,GAAAC,MAAAL,EAAAa,KAAAf,EAAAF,GAAA,eAAAI,EAAAa,IAAAR,CAAA,GAAAE,MAAAP,EAAAc,KAAAhB,EAAAF,GAAA,kBAAAI,EAAAc,IAAAP,CAAA,GAAAE,MAAAT,EAAAe,KAAAjB,EAAAF,GAAA,iBAAAI,EAAAe,IAAAN,CAAA,GAAAT;GAAA,GAAA;IAAAW,GAAAT,KAAAA;IAAAU,GAAAV,KAAAA;IAAAjB,GAAAiB,KAAAA;IAAAW,GAAAX,KAAAA;IAAAY,GAAAZ,KAAAA;IAAAa,GAAAb,KAAAA;GAAA,CAAA,GAAAN;EAAA;CAAA,CAAA;AAItC"}
|
|
1
|
+
{"version":3,"file":"ImagePreload.js","names":["Component","Portal","ImgProps","ImagePreloadProps","imgAttributes","Pick","ImagePreload","props","a","linkKey","src","srcSet","sizes","document","head","querySelector","_$createComponent","mount","children","_el$","_tmpl$","_$setAttribute","_$effect","_p$","_v$","undefined","_v$2","_v$3","_v$4","crossOrigin","_v$5","referrerPolicy","_v$6","fetchpriority","e","t","o","i","n","_$createComponent","_$setAttribute","_tmpl$","ImagePreload","a","props","linkKey","createComponent","Portal","_el$","setAttribute","effect","_v$","_v$2","_v$3","_v$4","_v$5","_v$6","_p$"],"sources":["../../../src/components/image/ImagePreload.tsx"],"sourcesContent":["/**\n * ImagePreload.tsx\n * 单一职责:仅负责向 <head> 注入 <link rel=\"preload\"> 标签,\n * 以提升 LCP 图片的加载优先级。不包含任何 <img> 渲染逻辑。\n */\n\nimport type { Component } from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport type { ImgProps } from \"./Image.types\";\n\n// ─── Props ────────────────────────────────────────────────────────────────────\n\nexport interface ImagePreloadProps {\n imgAttributes: Pick<\n ImgProps,\n | \"src\"\n | \"srcSet\"\n | \"sizes\"\n | \"crossOrigin\"\n | \"referrerPolicy\"\n | \"fetchpriority\"\n >;\n}\n\n// ─── 组件 ─────────────────────────────────────────────────────────────────────\n\n/**\n * 通过 SolidJS <Portal> 将 <link> 插入 document.head。\n *\n * 注意:\n * - 故意省略 href(当 imagesrcset 存在时),以避免不支持 srcset 的浏览器\n * 加载错误尺寸的图片。详见 HTML spec §attr-link-imagesrcset。\n * - SolidJS SSR 环境可将此组件替换为 server-side head injection。\n */\nconst ImagePreload: Component<ImagePreloadProps> = (props) => {\n const { imgAttributes: a } = props;\n\n // 唯一 key 避免重复插入相同的 preload\n const linkKey = `__img-preload-${a.src}-${a.srcSet ?? \"\"}-${a.sizes ?? \"\"}`;\n\n // 若已存在相同 key 的 link,则跳过(SSR hydrate 场景)\n if (typeof document !== \"undefined\") {\n if (document.head.querySelector(`link[data-img-key=\"${linkKey}\"]`)) {\n return null;\n }\n }\n\n return (\n <Portal mount={document.head}>\n <link\n rel=\"preload\"\n as=\"image\"\n data-img-key={linkKey}\n // 当存在 srcset 时不设置 href,遵从 spec\n href={a.srcSet ? undefined : a.src}\n imagesrcset={a.srcSet}\n imagesizes={a.sizes}\n crossorigin={a.crossOrigin}\n referrerpolicy={a.referrerPolicy}\n fetchpriority={a.fetchpriority}\n />\n </Portal>\n );\n};\n\nexport default ImagePreload;\n"],"mappings":";;wDAkCMM,KAA8CC,MAAU;CAC5D,IAAM,EAAEH,eAAeI,MAAMD,GAGvBE,IAAU,iBAAiBD,EAAEE,IAAG,GAAIF,EAAEG,UAAU,GAAE,GAAIH,EAAEI,SAAS;CASvE,OANI,OAAOC,WAAa,OAClBA,SAASC,KAAKC,cAAc,sBAAsBN,EAAO,GAAI,IACxD,OAIXO,EACGf,GAAM;EAAA,IAACgB,QAAK;GAAA,OAAEJ,SAASC;EAAI;EAAA,IAAAI,WAAA;GAAA,IAAAC,IAAAC,EAAA;GAWM,OAXNC,EAAAF,GAAA,gBAIVV,CAAO,GAAAa,GAAAC,MAAA;IAAA,IAAAC,IAEfhB,EAAEG,SAASc,KAAAA,IAAYjB,EAAEE,KAAGgB,IACrBlB,EAAEG,QAAMgB,IACTnB,EAAEI,OAAKgB,IACNpB,EAAEqB,aAAWC,IACVtB,EAAEuB,gBAAcC,IACjBxB,EAAEyB;IAAa,OAAAT,MAAAD,EAAAW,KAAAb,EAAAF,GAAA,QAAAI,EAAAW,IAAAV,CAAA,GAAAE,MAAAH,EAAAY,KAAAd,EAAAF,GAAA,eAAAI,EAAAY,IAAAT,CAAA,GAAAC,MAAAJ,EAAAf,KAAAa,EAAAF,GAAA,cAAAI,EAAAf,IAAAmB,CAAA,GAAAC,MAAAL,EAAAa,KAAAf,EAAAF,GAAA,eAAAI,EAAAa,IAAAR,CAAA,GAAAE,MAAAP,EAAAc,KAAAhB,EAAAF,GAAA,kBAAAI,EAAAc,IAAAP,CAAA,GAAAE,MAAAT,EAAAe,KAAAjB,EAAAF,GAAA,iBAAAI,EAAAe,IAAAN,CAAA,GAAAT;GAAA,GAAA;IAAAW,GAAAT,KAAAA;IAAAU,GAAAV,KAAAA;IAAAjB,GAAAiB,KAAAA;IAAAW,GAAAX,KAAAA;IAAAY,GAAAZ,KAAAA;IAAAa,GAAAb,KAAAA;GAAA,CAAA,GAAAN;EAAA;CAAA,CAAA;AAItC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["createMemo","createUniqueId","JSX","mergeProps","splitProps","InputProps","clsx","Input","props","merged","id","type","const","local","others","handleInput","IntrinsicElements","e","value","target","Number","onInput","handleChange","onChange","undefined","defaultValue","_el$","_tmpl$","addEventListener","$$input","_$spread","_$mergeProps","class","_$delegateEvents"],"sources":["../../../src/components/input/Input.tsx"],"sourcesContent":["import {\n createMemo,\n createUniqueId,\n type JSX,\n mergeProps,\n splitProps,\n} from \"solid-js\";\nimport type { InputProps } from \"./Input.types\";\nimport { clsx } from \"~/utils\";\n\nexport const Input = (props: InputProps) => {\n const merged = mergeProps(\n { id: createUniqueId(), type: \"text\" } as const,\n props,\n );\n\n const [local, others] = splitProps(merged, [\n \"value\",\n \"defaultValue\",\n \"type\",\n \"onInput\",\n \"onChange\",\n \"class\",\n ]);\n\n const handleInput: JSX.IntrinsicElements[\"input\"][\"onInput\"] = (e) => {\n let value: string | number = e.target.value;\n if (local.type === \"number\") {\n value = Number(e.target.value);\n }\n // @ts-expect-error\n local.onInput?.(value);\n };\n\n const handleChange: JSX.IntrinsicElements[\"input\"][\"onChange\"] = (e) => {\n let value: string | number = e.target.value;\n if (local.type === \"number\") {\n value = Number(e.target.value);\n }\n // @ts-expect-error\n local.onChange?.(value);\n };\n\n const value = createMemo(() =>\n local.value !== undefined ? local.value : local.defaultValue,\n );\n\n return (\n <input\n type={local.type}\n value={value()}\n data-slot=\"input\"\n class={clsx(\n \"h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n local.class,\n )}\n onInput={handleInput}\n onChange={handleChange}\n {...others}\n />\n );\n};\n"],"mappings":";;;;oDAUaO,KAASC,MAAsB;CAC1C,IAAMC,IAASN,EACb;EAAEO,IAAIT,EAAe;EAAGU,MAAM;CAAO,GACrCH,CACF,GAEM,CAACK,GAAOC,KAAUV,EAAWK,GAAQ;EACzC;EACA;EACA;EACA;EACA;EACA;CAAO,CACR,GAEKM,KAA0DE,MAAM;EACpE,IAAIC,IAAyBD,EAAEE,OAAOD;EAKtCL,AAJIA,EAAMF,SAAS,aACjBO,IAAQE,OAAOH,EAAEE,OAAOD,KAAK,IAG/BL,EAAMQ,UAAUH,CAAK;CACvB,GAEMI,KAA4DL,MAAM;EACtE,IAAIC,IAAyBD,EAAEE,OAAOD;EAKtCL,AAJIA,EAAMF,SAAS,aACjBO,IAAQE,OAAOH,EAAEE,OAAOD,KAAK,IAG/BL,EAAMU,WAAWL,CAAK;CACxB,GAEMA,IAAQlB,QACZa,EAAMK,UAAUM,KAAAA,IAA0BX,EAAMY,eAApBZ,EAAMK,KACpC;CAEA,cAAA;EAAA,IAAAQ,IAAAC,EAAA;EAWc,OAXdD,EAAAE,iBAAA,UAUcN,CAAY,GAAAI,EAAAG,UADbd,GAAWe,EAAAJ,GAAAK,EAAA;GAAA,IAPpBpB,OAAI;IAAA,OAAEE,EAAMF;GAAI;GAAA,IAChBO,QAAK;IAAA,OAAEA,EAAM;GAAC;GAAA,
|
|
1
|
+
{"version":3,"file":"Input.js","names":["createMemo","createUniqueId","JSX","mergeProps","splitProps","InputProps","clsx","Input","props","merged","id","type","const","local","others","handleInput","IntrinsicElements","e","value","target","Number","onInput","handleChange","onChange","undefined","defaultValue","_el$","_tmpl$","addEventListener","$$input","_$spread","_$mergeProps","class","_$delegateEvents","mergeProps","_$mergeProps","_$delegateEvents","mergeProps$1","_tmpl$","Input","merged","createUniqueId","props","local","others","splitProps","handleInput","value","handleChange","createMemo","_el$","spread","mergeProps","\"class\"","clsx","delegateEvents"],"sources":["../../../src/components/input/Input.tsx"],"sourcesContent":["import {\n createMemo,\n createUniqueId,\n type JSX,\n mergeProps,\n splitProps,\n} from \"solid-js\";\nimport type { InputProps } from \"./Input.types\";\nimport { clsx } from \"~/utils\";\n\nexport const Input = (props: InputProps) => {\n const merged = mergeProps(\n { id: createUniqueId(), type: \"text\" } as const,\n props,\n );\n\n const [local, others] = splitProps(merged, [\n \"value\",\n \"defaultValue\",\n \"type\",\n \"onInput\",\n \"onChange\",\n \"class\",\n ]);\n\n const handleInput: JSX.IntrinsicElements[\"input\"][\"onInput\"] = (e) => {\n let value: string | number = e.target.value;\n if (local.type === \"number\") {\n value = Number(e.target.value);\n }\n // @ts-expect-error\n local.onInput?.(value);\n };\n\n const handleChange: JSX.IntrinsicElements[\"input\"][\"onChange\"] = (e) => {\n let value: string | number = e.target.value;\n if (local.type === \"number\") {\n value = Number(e.target.value);\n }\n // @ts-expect-error\n local.onChange?.(value);\n };\n\n const value = createMemo(() =>\n local.value !== undefined ? local.value : local.defaultValue,\n );\n\n return (\n <input\n type={local.type}\n value={value()}\n data-slot=\"input\"\n class={clsx(\n \"h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n local.class,\n )}\n onInput={handleInput}\n onChange={handleChange}\n {...others}\n />\n );\n};\n"],"mappings":";;;;oDAUaO,KAASC,MAAsB;CAC1C,IAAMC,IAASN,EACb;EAAEO,IAAIT,EAAe;EAAGU,MAAM;CAAO,GACrCH,CACF,GAEM,CAACK,GAAOC,KAAUV,EAAWK,GAAQ;EACzC;EACA;EACA;EACA;EACA;EACA;CAAO,CACR,GAEKM,KAA0DE,MAAM;EACpE,IAAIC,IAAyBD,EAAEE,OAAOD;EAKtCL,AAJIA,EAAMF,SAAS,aACjBO,IAAQE,OAAOH,EAAEE,OAAOD,KAAK,IAG/BL,EAAMQ,UAAUH,CAAK;CACvB,GAEMI,KAA4DL,MAAM;EACtE,IAAIC,IAAyBD,EAAEE,OAAOD;EAKtCL,AAJIA,EAAMF,SAAS,aACjBO,IAAQE,OAAOH,EAAEE,OAAOD,KAAK,IAG/BL,EAAMU,WAAWL,CAAK;CACxB,GAEMA,IAAQlB,QACZa,EAAMK,UAAUM,KAAAA,IAA0BX,EAAMY,eAApBZ,EAAMK,KACpC;CAEA,cAAA;EAAA,IAAAQ,IAAAC,EAAA;EAWc,OAXdD,EAAAE,iBAAA,UAUcN,CAAY,GAAAI,EAAAG,UADbd,GAAWe,EAAAJ,GAAAK,EAAA;GAAA,IAPpBpB,OAAI;IAAA,OAAEE,EAAMF;GAAI;GAAA,IAChBO,QAAK;IAAA,OAAEA,EAAM;GAAC;GAAA,IAAAmC,QAAA;IAAA,OAEP/C,EACL,+oBACAO,EAAMmB,KACR;GAAC;EAAA,GAGGlB,CAAM,GAAA,IAAA,EAAA,GAAAY;CAAA,EAAA,CAAA;AAGhB;AAAEO,EAAA,CAAA,OAAA,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { InputGroupProps } from './InputGroup.types';
|
|
2
|
-
export declare const InputGroup: (props: InputGroupProps) => import(
|
|
2
|
+
export declare const InputGroup: (props: InputGroupProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroup.js","names":["splitProps","InputGroupProps","clsx","InputGroup","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class"],"sources":["../../../../src/components/input-group/InputGroup/InputGroup.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport type { InputGroupProps } from \"./InputGroup.types\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroup = (props: InputGroupProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n class={clsx(\n \"group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;mEAIaG,KAAcC,MAA2B;CACpD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAChE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAQc,OARdC,EAAAF,GAAAG,EAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"InputGroup.js","names":["splitProps","InputGroupProps","clsx","InputGroup","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","InputGroup","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/input-group/InputGroup/InputGroup.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport type { InputGroupProps } from \"./InputGroup.types\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroup = (props: InputGroupProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n class={clsx(\n \"group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;mEAIaG,KAAcC,MAA2B;CACpD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAChE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAQc,OARdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAIWpB,EACL,ylCACAG,EAAMM,KACR;EAAC,EAAA,GACGL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { InputGroupAddonProps } from './InputGroupAddon.types';
|
|
2
|
-
export declare const InputGroupAddon: (props: InputGroupAddonProps) => import(
|
|
2
|
+
export declare const InputGroupAddon: (props: InputGroupAddonProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroupAddon.js","names":["InputGroupAddonProps","inputGroupAddonVariants","mergeProps","splitProps","clsx","InputGroupAddon","props","merged","align","const","local","others","_el$","_tmpl$","$$click","e","target","HTMLElement","closest","currentTarget","parentElement","querySelector","focus","_$spread","_$mergeProps","data-align","class","_$delegateEvents"],"sources":["../../../../src/components/input-group/InputGroupAddon/InputGroupAddon.tsx"],"sourcesContent":["import type { InputGroupAddonProps } from \"./InputGroupAddon.types\";\nimport { inputGroupAddonVariants } from \"./InputGroupAddon.styles\";\nimport { mergeProps, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroupAddon = (props: InputGroupAddonProps) => {\n const merged = mergeProps({ align: \"inline-start\" } as const, props);\n\n const [local, others] = splitProps(merged, [\"align\", \"class\", \"classList\"]);\n\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={local.align}\n class={clsx(inputGroupAddonVariants({ align: local.align }), local.class)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;yEAKaK,KAAmBC,MAAgC;CAC9D,IAAMC,IAASL,EAAW,EAAEM,OAAO,eAAe,GAAYF,CAAK,GAE7D,CAACI,GAAOC,KAAUR,EAAWI,GAAQ;EAAC;EAAS;EAAS;CAAW,CAAC;CAE1E,cAAA;EAAA,IAAAK,IAAAC,EAAA;EAYc,OAZdD,EAAAE,WAMcC,MAAM;
|
|
1
|
+
{"version":3,"file":"InputGroupAddon.js","names":["InputGroupAddonProps","inputGroupAddonVariants","mergeProps","splitProps","clsx","InputGroupAddon","props","merged","align","const","local","others","_el$","_tmpl$","$$click","e","target","HTMLElement","closest","currentTarget","parentElement","querySelector","focus","_$spread","_$mergeProps","data-align","class","_$delegateEvents","mergeProps","_$mergeProps","_$delegateEvents","mergeProps$1","_tmpl$","InputGroupAddon","merged","props","local","others","splitProps","_el$","spread","mergeProps","\"class\"","clsx","inputGroupAddonVariants","delegateEvents"],"sources":["../../../../src/components/input-group/InputGroupAddon/InputGroupAddon.tsx"],"sourcesContent":["import type { InputGroupAddonProps } from \"./InputGroupAddon.types\";\nimport { inputGroupAddonVariants } from \"./InputGroupAddon.styles\";\nimport { mergeProps, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroupAddon = (props: InputGroupAddonProps) => {\n const merged = mergeProps({ align: \"inline-start\" } as const, props);\n\n const [local, others] = splitProps(merged, [\"align\", \"class\", \"classList\"]);\n\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={local.align}\n class={clsx(inputGroupAddonVariants({ align: local.align }), local.class)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;yEAKaK,KAAmBC,MAAgC;CAC9D,IAAMC,IAASL,EAAW,EAAEM,OAAO,eAAe,GAAYF,CAAK,GAE7D,CAACI,GAAOC,KAAUR,EAAWI,GAAQ;EAAC;EAAS;EAAS;CAAW,CAAC;CAE1E,cAAA;EAAA,IAAAK,IAAAC,EAAA;EAYc,OAZdD,EAAAE,WAMcC,MAAM;GACd,AAAKA,EAAEC,OAAuBE,QAAQ,QAAQ,KAG9CH,EAAEI,cAAcC,eAAeC,cAAc,OAAO,CAAC,EAAEC,MAAM;EAC/D,GAACC,EAAAX,GAAAY,EAAA;GAAA,IAAA,eAAA;IAAA,OAPWd,EAAMF;GAAK;GAAA,IAAAkC,QAAA;IAAA,OAChBtC,EAAKH,EAAwB,EAAEO,OAAOE,EAAMF,MAAM,CAAC,GAAGE,EAAMgB,KAAK;GAAC;EAAA,GAOrEf,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB;AAAEe,EAAA,CAAA,OAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroupAddon.styles.js","names":[],"sources":["../../../../src/components/input-group/InputGroupAddon/InputGroupAddon.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\":\n \"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n"],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"InputGroupAddon.styles.js","names":["inputGroupAddonVariants","cva"],"sources":["../../../../src/components/input-group/InputGroupAddon/InputGroupAddon.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\":\n \"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n"],"mappings":";;AAEA,IAAaA,IAA0BC,EACrC,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBACE;EACF,cACE;EACF,eACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EACf,OAAO,eACT;AACF,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { InputGroupButtonProps } from './InputGroupButton.types';
|
|
2
|
-
export declare const InputGroupButton: (props: InputGroupButtonProps) => import(
|
|
2
|
+
export declare const InputGroupButton: (props: InputGroupButtonProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroupButton.js","names":["Button","InputGroupButtonProps","createMemo","mergeProps","splitProps","clsx","inputGroupButtonVariants","InputGroupButton","props","merged","type","variant","size","const","local","others","iconOnly","icon","children","_$createComponent","_$mergeProps","data-size","class","undefined","iconSize"],"sources":["../../../../src/components/input-group/InputGroupButton/InputGroupButton.tsx"],"sourcesContent":["import { Button } from \"~/components/button/Button\";\nimport type { InputGroupButtonProps } from \"./InputGroupButton.types\";\nimport { createMemo, mergeProps, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { inputGroupButtonVariants } from \"./InputGroupButton.styles\";\n\nexport const InputGroupButton = (props: InputGroupButtonProps) => {\n const merged = mergeProps(\n { type: \"button\", variant: \"ghost\", size: \"xs\" } as const,\n props,\n );\n const [local, others] = splitProps(merged, [\n \"size\",\n \"variant\",\n \"class\",\n \"classList\",\n ]);\n\n const iconOnly = createMemo(() => !!others.icon && !others.children);\n\n return (\n <Button\n {...others}\n data-size={local.size}\n variant={local.variant}\n class={clsx(\n inputGroupButtonVariants({\n size: iconOnly() ? undefined : local.size,\n iconSize: iconOnly() ? local.size : undefined,\n }),\n local.class,\n )}\n />\n );\n};\n"],"mappings":";;;;;;AAMA,IAAaO,KAAoBC,MAAiC;CAChE,IAAMC,IAASN,EACb;EAAEO,MAAM;EAAUC,SAAS;EAASC,MAAM;CAAK,GAC/CJ,CACF,GACM,CAACM,GAAOC,KAAUX,EAAWK,GAAQ;EACzC;EACA;EACA;EACA;CAAW,CACZ,GAEKO,IAAWd,QAAiB,CAAC,CAACa,EAAOE,QAAQ,CAACF,EAAOG,QAAQ;CAEnE,OAAAC,EACGnB,GAAMoB,EACDL,GAAM;EAAA,IAAA,cAAA;GAAA,OACCD,EAAMF;EAAI;EAAA,IACrBD,UAAO;GAAA,OAAEG,EAAMH;EAAO;EAAA,
|
|
1
|
+
{"version":3,"file":"InputGroupButton.js","names":["Button","InputGroupButtonProps","createMemo","mergeProps","splitProps","clsx","inputGroupButtonVariants","InputGroupButton","props","merged","type","variant","size","const","local","others","iconOnly","icon","children","_$createComponent","_$mergeProps","data-size","class","undefined","iconSize","mergeProps","_$createComponent","_$mergeProps","mergeProps$1","InputGroupButton","merged","props","local","others","splitProps","iconOnly","createMemo","createComponent","Button","mergeProps","\"class\"","clsx","inputGroupButtonVariants"],"sources":["../../../../src/components/input-group/InputGroupButton/InputGroupButton.tsx"],"sourcesContent":["import { Button } from \"~/components/button/Button\";\nimport type { InputGroupButtonProps } from \"./InputGroupButton.types\";\nimport { createMemo, mergeProps, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport { inputGroupButtonVariants } from \"./InputGroupButton.styles\";\n\nexport const InputGroupButton = (props: InputGroupButtonProps) => {\n const merged = mergeProps(\n { type: \"button\", variant: \"ghost\", size: \"xs\" } as const,\n props,\n );\n const [local, others] = splitProps(merged, [\n \"size\",\n \"variant\",\n \"class\",\n \"classList\",\n ]);\n\n const iconOnly = createMemo(() => !!others.icon && !others.children);\n\n return (\n <Button\n {...others}\n data-size={local.size}\n variant={local.variant}\n class={clsx(\n inputGroupButtonVariants({\n size: iconOnly() ? undefined : local.size,\n iconSize: iconOnly() ? local.size : undefined,\n }),\n local.class,\n )}\n />\n );\n};\n"],"mappings":";;;;;;AAMA,IAAaO,KAAoBC,MAAiC;CAChE,IAAMC,IAASN,EACb;EAAEO,MAAM;EAAUC,SAAS;EAASC,MAAM;CAAK,GAC/CJ,CACF,GACM,CAACM,GAAOC,KAAUX,EAAWK,GAAQ;EACzC;EACA;EACA;EACA;CAAW,CACZ,GAEKO,IAAWd,QAAiB,CAAC,CAACa,EAAOE,QAAQ,CAACF,EAAOG,QAAQ;CAEnE,OAAAC,EACGnB,GAAMoB,EACDL,GAAM;EAAA,IAAA,cAAA;GAAA,OACCD,EAAMF;EAAI;EAAA,IACrBD,UAAO;GAAA,OAAEG,EAAMH;EAAO;EAAA,IAAA6B,QAAA;GAAA,OACfnC,EACLC,EAAyB;IACvBM,MAAMI,EAAS,IAAIO,KAAAA,IAAYT,EAAMF;IACrCY,UAAUR,EAAS,IAAIF,EAAMF,OAAOW,KAAAA;GACtC,CAAC,GACDT,EAAMQ,KACR;EAAC;CAAA,CAAA,CAAA;AAGP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroupButton.styles.js","names":[],"sources":["../../../../src/components/input-group/InputGroupButton/InputGroupButton.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n },\n iconSize: {\n xs: \"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0\",\n sm: \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n"],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"InputGroupButton.styles.js","names":["inputGroupButtonVariants","cva"],"sources":["../../../../src/components/input-group/InputGroupButton/InputGroupButton.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n },\n iconSize: {\n xs: \"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0\",\n sm: \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n"],"mappings":";;AAEA,IAAaA,IAA2BC,EACtC,+CACA;CACE,UAAU;EACR,MAAM;GACJ,IAAI;GACJ,IAAI;EACN;EACA,UAAU;GACR,IAAI;GACJ,IAAI;EACN;CACF;CACA,iBAAiB,EACf,MAAM,KACR;AACF,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { InputGroupInputProps } from './InputGroupInput.types';
|
|
2
|
-
export declare const InputGroupInput: (props: InputGroupInputProps) => import(
|
|
2
|
+
export declare const InputGroupInput: (props: InputGroupInputProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroupInput.js","names":["Input","InputGroupInputProps","splitProps","clsx","InputGroupInput","props","local","others","_$createComponent","_$mergeProps","class"],"sources":["../../../../src/components/input-group/InputGroupInput/InputGroupInput.tsx"],"sourcesContent":["import { Input } from \"~/components/input/Input\";\nimport type { InputGroupInputProps } from \"./InputGroupInput.types\";\nimport { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroupInput = (props: InputGroupInputProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <Input\n data-slot=\"input-group-control\"\n class={clsx(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;AAKA,IAAaI,KAAmBC,MAAgC;CAC9D,IAAM,CAACC,GAAOC,KAAUL,EAAWG,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,OAAAG,EACGR,GAAKS,EAAA;EAAA,aAAA;EAAA,
|
|
1
|
+
{"version":3,"file":"InputGroupInput.js","names":["Input","InputGroupInputProps","splitProps","clsx","InputGroupInput","props","local","others","_$createComponent","_$mergeProps","class","_$createComponent","_$mergeProps","InputGroupInput","local","others","splitProps","props","createComponent","Input","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/input-group/InputGroupInput/InputGroupInput.tsx"],"sourcesContent":["import { Input } from \"~/components/input/Input\";\nimport type { InputGroupInputProps } from \"./InputGroupInput.types\";\nimport { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroupInput = (props: InputGroupInputProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <Input\n data-slot=\"input-group-control\"\n class={clsx(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;AAKA,IAAaI,KAAmBC,MAAgC;CAC9D,IAAM,CAACC,GAAOC,KAAUL,EAAWG,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,OAAAG,EACGR,GAAKS,EAAA;EAAA,aAAA;EAAA,IAAAY,QAAA;GAAA,OAEGlB,EACL,oLACAG,EAAMI,KACR;EAAC;CAAA,GACGH,CAAM,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { InputGroupTextProps } from './InputGroupText.types';
|
|
2
|
-
export declare const InputGroupText: (props: InputGroupTextProps) => import(
|
|
2
|
+
export declare const InputGroupText: (props: InputGroupTextProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroupText.js","names":["splitProps","InputGroupTextProps","clsx","InputGroupText","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class"],"sources":["../../../../src/components/input-group/InputGroupText/InputGroupText.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport type { InputGroupTextProps } from \"./InputGroupText.types\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroupText = (props: InputGroupTextProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <span\n class={clsx(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;mCAIaG,KAAkBC,MAA+B;CAC5D,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAMc,OANdC,EAAAF,GAAAG,EAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"InputGroupText.js","names":["splitProps","InputGroupTextProps","clsx","InputGroupText","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","InputGroupText","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/input-group/InputGroupText/InputGroupText.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport type { InputGroupTextProps } from \"./InputGroupText.types\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroupText = (props: InputGroupTextProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <span\n class={clsx(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;mCAIaG,KAAkBC,MAA+B;CAC5D,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAMc,OANdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAEWpB,EACL,0HACAG,EAAMM,KACR;EAAC,EAAA,GACGL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { InputGroupTextareaProps } from './InputGroupTextarea.types';
|
|
2
|
-
export declare const InputGroupTextarea: (props: InputGroupTextareaProps) => import(
|
|
2
|
+
export declare const InputGroupTextarea: (props: InputGroupTextareaProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputGroupTextarea.js","names":["splitProps","InputGroupTextareaProps","Textarea","clsx","InputGroupTextarea","props","local","others","_$createComponent","_$mergeProps","class"],"sources":["../../../../src/components/input-group/InputGroupTextarea/InputGroupTextarea.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport type { InputGroupTextareaProps } from \"./InputGroupTextarea.types\";\nimport { Textarea } from \"~/components/textarea\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroupTextarea = (props: InputGroupTextareaProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <Textarea\n data-slot=\"input-group-control\"\n class={clsx(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;AAKA,IAAaI,KAAsBC,MAAmC;CACpE,IAAM,CAACC,GAAOC,KAAUP,EAAWK,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,OAAAG,EACGN,GAAQO,EAAA;EAAA,aAAA;EAAA,
|
|
1
|
+
{"version":3,"file":"InputGroupTextarea.js","names":["splitProps","InputGroupTextareaProps","Textarea","clsx","InputGroupTextarea","props","local","others","_$createComponent","_$mergeProps","class","_$createComponent","_$mergeProps","InputGroupTextarea","local","others","splitProps","props","createComponent","Textarea","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/input-group/InputGroupTextarea/InputGroupTextarea.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport type { InputGroupTextareaProps } from \"./InputGroupTextarea.types\";\nimport { Textarea } from \"~/components/textarea\";\nimport { clsx } from \"~/utils\";\n\nexport const InputGroupTextarea = (props: InputGroupTextareaProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <Textarea\n data-slot=\"input-group-control\"\n class={clsx(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;AAKA,IAAaI,KAAsBC,MAAmC;CACpE,IAAM,CAACC,GAAOC,KAAUP,EAAWK,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,OAAAG,EACGN,GAAQO,EAAA;EAAA,aAAA;EAAA,IAAAY,QAAA;GAAA,OAEAlB,EACL,qMACAG,EAAMI,KACR;EAAC;CAAA,GACGH,CAAM,CAAA;AAGhB"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ValidComponent } from 'solid-js';
|
|
2
2
|
import { ItemProps } from './Item.types';
|
|
3
|
-
export declare const Item: <T extends ValidComponent = "div">(props: ItemProps<T>) => import(
|
|
3
|
+
export declare const Item: <T extends ValidComponent = "div">(props: ItemProps<T>) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","names":["mergeProps","splitProps","ValidComponent","clsx","ItemProps","itemVariants","Dynamic","Item","props","T","merged","variant","size","component","const","local","others","_$createComponent","_$mergeProps","class"],"sources":["../../../../src/components/item/Item/Item.tsx"],"sourcesContent":["import { mergeProps, splitProps, type ValidComponent } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemProps } from \"./Item.types\";\nimport { itemVariants } from \"./Item.styles\";\nimport { Dynamic } from \"solid-js/web\";\n\nexport const Item = <T extends ValidComponent = \"div\">(props: ItemProps<T>) => {\n const merged = mergeProps(\n { variant: \"ghost\", size: \"sm\", component: \"div\" } as const,\n props,\n );\n\n const [local, others] = splitProps(merged, [\n \"component\",\n \"variant\",\n \"size\",\n \"class\",\n \"classList\",\n ]);\n\n return (\n <Dynamic\n component={local.component as ValidComponent}\n data-slot=\"item\"\n class={clsx(\n itemVariants({ variant: local.variant, size: local.size }),\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;AAMA,IAAaO,KAA0CC,MAAwB;CAC7E,IAAME,IAASV,EACb;EAAEW,SAAS;EAASC,MAAM;EAAMC,WAAW;CAAM,GACjDL,CACF,GAEM,CAACO,GAAOC,KAAUf,EAAWS,GAAQ;EACzC;EACA;EACA;EACA;EACA;CAAW,CACZ;CAED,OAAAO,EACGX,GAAOY,EAAA;EAAA,IACNL,YAAS;GAAA,OAAEE,EAAMF;EAA2B;EAAA,aAAA;EAAA,
|
|
1
|
+
{"version":3,"file":"Item.js","names":["mergeProps","splitProps","ValidComponent","clsx","ItemProps","itemVariants","Dynamic","Item","props","T","merged","variant","size","component","const","local","others","_$createComponent","_$mergeProps","class","mergeProps","_$createComponent","_$mergeProps","mergeProps$1","Item","merged","props","local","others","splitProps","createComponent","Dynamic","mergeProps","\"class\"","clsx","itemVariants"],"sources":["../../../../src/components/item/Item/Item.tsx"],"sourcesContent":["import { mergeProps, splitProps, type ValidComponent } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemProps } from \"./Item.types\";\nimport { itemVariants } from \"./Item.styles\";\nimport { Dynamic } from \"solid-js/web\";\n\nexport const Item = <T extends ValidComponent = \"div\">(props: ItemProps<T>) => {\n const merged = mergeProps(\n { variant: \"ghost\", size: \"sm\", component: \"div\" } as const,\n props,\n );\n\n const [local, others] = splitProps(merged, [\n \"component\",\n \"variant\",\n \"size\",\n \"class\",\n \"classList\",\n ]);\n\n return (\n <Dynamic\n component={local.component as ValidComponent}\n data-slot=\"item\"\n class={clsx(\n itemVariants({ variant: local.variant, size: local.size }),\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;AAMA,IAAaO,KAA0CC,MAAwB;CAC7E,IAAME,IAASV,EACb;EAAEW,SAAS;EAASC,MAAM;EAAMC,WAAW;CAAM,GACjDL,CACF,GAEM,CAACO,GAAOC,KAAUf,EAAWS,GAAQ;EACzC;EACA;EACA;EACA;EACA;CAAW,CACZ;CAED,OAAAO,EACGX,GAAOY,EAAA;EAAA,IACNL,YAAS;GAAA,OAAEE,EAAMF;EAA2B;EAAA,aAAA;EAAA,IAAAoB,QAAA;GAAA,OAErC9B,EACLE,EAAa;IAAEM,SAASI,EAAMJ;IAASC,MAAMG,EAAMH;GAAK,CAAC,GACzDG,EAAMI,KACR;EAAC;CAAA,GACGH,CAAM,CAAA;AAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Item.styles.js","names":[],"sources":["../../../../src/components/item/Item/Item.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const itemVariants = cva(\n \"group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted\",\n {\n variants: {\n variant: {\n ghost: \"border-transparent\",\n outline: \"border-border\",\n muted: \"border-transparent bg-muted/50\",\n },\n size: {\n sm: \"gap-2.5 px-3 py-2.5\",\n xs: \"gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0\",\n },\n },\n defaultVariants: {\n variant: \"ghost\",\n size: \"sm\",\n },\n },\n);\n"],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"Item.styles.js","names":["itemVariants","cva"],"sources":["../../../../src/components/item/Item/Item.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const itemVariants = cva(\n \"group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted\",\n {\n variants: {\n variant: {\n ghost: \"border-transparent\",\n outline: \"border-border\",\n muted: \"border-transparent bg-muted/50\",\n },\n size: {\n sm: \"gap-2.5 px-3 py-2.5\",\n xs: \"gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0\",\n },\n },\n defaultVariants: {\n variant: \"ghost\",\n size: \"sm\",\n },\n },\n);\n"],"mappings":";;AAEA,IAAaA,IAAeC,EAC1B,8OACA;CACE,UAAU;EACR,SAAS;GACP,OAAO;GACP,SAAS;GACT,OAAO;EACT;EACA,MAAM;GACJ,IAAI;GACJ,IAAI;EACN;CACF;CACA,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;AACF,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemActionsProps } from './ItemActions.types';
|
|
2
|
-
export declare const ItemActions: (props: ItemActionsProps) => import(
|
|
2
|
+
export declare const ItemActions: (props: ItemActionsProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemActions.js","names":["splitProps","clsx","ItemActionsProps","ItemActions","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class"],"sources":["../../../../src/components/item/ItemActions/ItemActions.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemActionsProps } from \"./ItemActions.types\";\n\nexport const ItemActions = (props: ItemActionsProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <p\n data-slot=\"item-actions\"\n class={clsx(\"flex items-center gap-2\", local.class)}\n {...others}\n />\n );\n};\n"],"mappings":";;;;uDAIaG,KAAeC,MAA4B;CACtD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAIc,OAJdC,EAAAF,GAAAG,EAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"ItemActions.js","names":["splitProps","clsx","ItemActionsProps","ItemActions","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","ItemActions","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/item/ItemActions/ItemActions.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemActionsProps } from \"./ItemActions.types\";\n\nexport const ItemActions = (props: ItemActionsProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <p\n data-slot=\"item-actions\"\n class={clsx(\"flex items-center gap-2\", local.class)}\n {...others}\n />\n );\n};\n"],"mappings":";;;;uDAIaG,KAAeC,MAA4B;CACtD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAIc,OAJdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAGWrB,EAAK,2BAA2BI,EAAMM,KAAK;EAAC,EAAA,GAC/CL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemContentProps } from './ItemContent.types';
|
|
2
|
-
export declare const ItemContent: (props: ItemContentProps) => import(
|
|
2
|
+
export declare const ItemContent: (props: ItemContentProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemContent.js","names":["splitProps","clsx","ItemContentProps","ItemContent","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class"],"sources":["../../../../src/components/item/ItemContent/ItemContent.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemContentProps } from \"./ItemContent.types\";\n\nexport const ItemContent = (props: ItemContentProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <div\n data-slot=\"item-content\"\n class={clsx(\n \"flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;yDAIaG,KAAeC,MAA4B;CACtD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"ItemContent.js","names":["splitProps","clsx","ItemContentProps","ItemContent","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","ItemContent","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/item/ItemContent/ItemContent.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemContentProps } from \"./ItemContent.types\";\n\nexport const ItemContent = (props: ItemContentProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <div\n data-slot=\"item-content\"\n class={clsx(\n \"flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;yDAIaG,KAAeC,MAA4B;CACtD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAGWrB,EACL,qGACAI,EAAMM,KACR;EAAC,EAAA,GACGL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemDescriptionProps } from './ItemDescription.types';
|
|
2
|
-
export declare const ItemDescription: (props: ItemDescriptionProps) => import(
|
|
2
|
+
export declare const ItemDescription: (props: ItemDescriptionProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemDescription.js","names":["splitProps","clsx","ItemDescriptionProps","ItemDescription","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class"],"sources":["../../../../src/components/item/ItemDescription/ItemDescription.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemDescriptionProps } from \"./ItemDescription.types\";\n\nexport const ItemDescription = (props: ItemDescriptionProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <p\n data-slot=\"item-description\"\n class={clsx(\n \"line-clamp-2 text-left text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;2DAIaG,KAAmBC,MAAgC;CAC9D,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"ItemDescription.js","names":["splitProps","clsx","ItemDescriptionProps","ItemDescription","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","ItemDescription","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/item/ItemDescription/ItemDescription.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemDescriptionProps } from \"./ItemDescription.types\";\n\nexport const ItemDescription = (props: ItemDescriptionProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <p\n data-slot=\"item-description\"\n class={clsx(\n \"line-clamp-2 text-left text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;2DAIaG,KAAmBC,MAAgC;CAC9D,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAGWrB,EACL,uLACAI,EAAMM,KACR;EAAC,EAAA,GACGL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemFooterProps } from './ItemFooter.types';
|
|
2
|
-
export declare const ItemFooter: (props: ItemFooterProps) => import(
|
|
2
|
+
export declare const ItemFooter: (props: ItemFooterProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemFooter.js","names":["splitProps","clsx","ItemFooterProps","ItemFooter","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class"],"sources":["../../../../src/components/item/ItemFooter/ItemFooter.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemFooterProps } from \"./ItemFooter.types\";\n\nexport const ItemFooter = (props: ItemFooterProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <div\n data-slot=\"item-footer\"\n class={clsx(\n \"flex basis-full items-center justify-between gap-2\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;wDAIaG,KAAcC,MAA2B;CACpD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"ItemFooter.js","names":["splitProps","clsx","ItemFooterProps","ItemFooter","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","ItemFooter","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/item/ItemFooter/ItemFooter.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemFooterProps } from \"./ItemFooter.types\";\n\nexport const ItemFooter = (props: ItemFooterProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <div\n data-slot=\"item-footer\"\n class={clsx(\n \"flex basis-full items-center justify-between gap-2\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;wDAIaG,KAAcC,MAA2B;CACpD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAGWrB,EACL,sDACAI,EAAMM,KACR;EAAC,EAAA,GACGL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemGroupProps } from './ItemGroup.types';
|
|
2
|
-
export declare const ItemGroup: (props: ItemGroupProps) => import(
|
|
2
|
+
export declare const ItemGroup: (props: ItemGroupProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemGroup.js","names":["splitProps","clsx","ItemGroupProps","ItemGroup","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class"],"sources":["../../../../src/components/item/ItemGroup/ItemGroup.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemGroupProps } from \"./ItemGroup.types\";\n\nexport const ItemGroup = (props: ItemGroupProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n class={clsx(\n \"group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;iEAIaG,KAAaC,MAA0B;CAClD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAQc,OARdC,EAAAF,GAAAG,EAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"ItemGroup.js","names":["splitProps","clsx","ItemGroupProps","ItemGroup","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","ItemGroup","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/item/ItemGroup/ItemGroup.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemGroupProps } from \"./ItemGroup.types\";\n\nexport const ItemGroup = (props: ItemGroupProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n class={clsx(\n \"group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;iEAIaG,KAAaC,MAA0B;CAClD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAQc,OARdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAIWrB,EACL,mGACAI,EAAMM,KACR;EAAC,EAAA,GACGL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemHeaderProps } from './ItemHeader.types';
|
|
2
|
-
export declare const ItemHeader: (props: ItemHeaderProps) => import(
|
|
2
|
+
export declare const ItemHeader: (props: ItemHeaderProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemHeader.js","names":["splitProps","clsx","ItemHeaderProps","ItemHeader","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class"],"sources":["../../../../src/components/item/ItemHeader/ItemHeader.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemHeaderProps } from \"./ItemHeader.types\";\n\nexport const ItemHeader = (props: ItemHeaderProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <div\n data-slot=\"item-header\"\n class={clsx(\n \"flex basis-full items-center justify-between gap-2\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;wDAIaG,KAAcC,MAA2B;CACpD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"ItemHeader.js","names":["splitProps","clsx","ItemHeaderProps","ItemHeader","props","local","others","_el$","_tmpl$","_$spread","_$mergeProps","class","_$mergeProps","_tmpl$","ItemHeader","local","others","splitProps","props","_el$","spread","mergeProps","\"class\"","clsx"],"sources":["../../../../src/components/item/ItemHeader/ItemHeader.tsx"],"sourcesContent":["import { splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemHeaderProps } from \"./ItemHeader.types\";\n\nexport const ItemHeader = (props: ItemHeaderProps) => {\n const [local, others] = splitProps(props, [\"class\", \"classList\"]);\n\n return (\n <div\n data-slot=\"item-header\"\n class={clsx(\n \"flex basis-full items-center justify-between gap-2\",\n local.class,\n )}\n {...others}\n />\n );\n};\n"],"mappings":";;;;wDAIaG,KAAcC,MAA2B;CACpD,IAAM,CAACC,GAAOC,KAAUN,EAAWI,GAAO,CAAC,SAAS,WAAW,CAAC;CAEhE,cAAA;EAAA,IAAAG,IAAAC,EAAA;EAOc,OAPdC,EAAAF,GAAAG,EAAA,EAAA,IAAAY,QAAA;GAAA,OAGWrB,EACL,sDACAI,EAAMM,KACR;EAAC,EAAA,GACGL,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemMediaProps } from './ItemMedia.types';
|
|
2
|
-
export declare const ItemMedia: (props: ItemMediaProps) => import(
|
|
2
|
+
export declare const ItemMedia: (props: ItemMediaProps) => import('solid-js').JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemMedia.js","names":["mergeProps","splitProps","clsx","ItemMediaProps","itemMediaVariants","ItemMedia","props","merged","variant","const","local","others","_el$","_tmpl$","_$spread","_$mergeProps","data-variant","class"],"sources":["../../../../src/components/item/ItemMedia/ItemMedia.tsx"],"sourcesContent":["import { mergeProps, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemMediaProps } from \"./ItemMedia.types\";\nimport { itemMediaVariants } from \"./ItemMedia.styles\";\n\nexport const ItemMedia = (props: ItemMediaProps) => {\n const merged = mergeProps({ variant: \"ghost\" } as const, props);\n\n const [local, others] = splitProps(merged, [\"variant\", \"class\", \"classList\"]);\n\n return (\n <div\n data-slot=\"item-media\"\n data-variant={local.variant}\n class={clsx(itemMediaVariants({ variant: local.variant }), local.class)}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;uDAKaK,KAAaC,MAA0B;CAClD,IAAMC,IAASP,EAAW,EAAEQ,SAAS,QAAQ,GAAYF,CAAK,GAExD,CAACI,GAAOC,KAAUV,EAAWM,GAAQ;EAAC;EAAW;EAAS;CAAW,CAAC;CAE5E,cAAA;EAAA,IAAAK,IAAAC,EAAA;EAKc,OALdC,EAAAF,GAAAG,EAAA;GAAA,IAAA,iBAAA;IAAA,OAGkBL,EAAMF;GAAO;GAAA,
|
|
1
|
+
{"version":3,"file":"ItemMedia.js","names":["mergeProps","splitProps","clsx","ItemMediaProps","itemMediaVariants","ItemMedia","props","merged","variant","const","local","others","_el$","_tmpl$","_$spread","_$mergeProps","data-variant","class","mergeProps","_$mergeProps","mergeProps$1","_tmpl$","ItemMedia","merged","props","local","others","splitProps","_el$","spread","mergeProps","\"class\"","clsx","itemMediaVariants"],"sources":["../../../../src/components/item/ItemMedia/ItemMedia.tsx"],"sourcesContent":["import { mergeProps, splitProps } from \"solid-js\";\nimport { clsx } from \"~/utils\";\nimport type { ItemMediaProps } from \"./ItemMedia.types\";\nimport { itemMediaVariants } from \"./ItemMedia.styles\";\n\nexport const ItemMedia = (props: ItemMediaProps) => {\n const merged = mergeProps({ variant: \"ghost\" } as const, props);\n\n const [local, others] = splitProps(merged, [\"variant\", \"class\", \"classList\"]);\n\n return (\n <div\n data-slot=\"item-media\"\n data-variant={local.variant}\n class={clsx(itemMediaVariants({ variant: local.variant }), local.class)}\n {...others}\n />\n );\n};\n"],"mappings":";;;;;uDAKaK,KAAaC,MAA0B;CAClD,IAAMC,IAASP,EAAW,EAAEQ,SAAS,QAAQ,GAAYF,CAAK,GAExD,CAACI,GAAOC,KAAUV,EAAWM,GAAQ;EAAC;EAAW;EAAS;CAAW,CAAC;CAE5E,cAAA;EAAA,IAAAK,IAAAC,EAAA;EAKc,OALdC,EAAAF,GAAAG,EAAA;GAAA,IAAA,iBAAA;IAAA,OAGkBL,EAAMF;GAAO;GAAA,IAAAuB,QAAA;IAAA,OACpB7B,EAAKE,EAAkB,EAAEI,SAASE,EAAMF,QAAQ,CAAC,GAAGE,EAAMO,KAAK;GAAC;EAAA,GACnEN,CAAM,GAAA,IAAA,EAAA,GAAAC;CAAA,EAAA,CAAA;AAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemMedia.styles.js","names":[],"sources":["../../../../src/components/item/ItemMedia/ItemMedia.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n ghost: \"bg-transparent\",\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"ghost\",\n },\n },\n);\n"],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"file":"ItemMedia.styles.js","names":["itemMediaVariants","cva"],"sources":["../../../../src/components/item/ItemMedia/ItemMedia.styles.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\n\nexport const itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n ghost: \"bg-transparent\",\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"ghost\",\n },\n },\n);\n"],"mappings":";;AAEA,IAAaA,IAAoBC,EAC/B,kMACA;CACE,UAAU,EACR,SAAS;EACP,OAAO;EACP,MAAM;EACN,OACE;CACJ,EACF;CACA,iBAAiB,EACf,SAAS,QACX;AACF,CACF"}
|