@hanzo/ui 8.0.26 → 8.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ThemeToggleNext-AEDLHX5X.js +1 -0
- package/dist/ThemeToggleNext-N6ASYJ6J.cjs +1 -0
- package/dist/backends/gui/aspect-ratio.d.ts +14 -0
- package/dist/backends/gui/avatar.d.ts +16 -0
- package/dist/backends/gui/badge.d.ts +19 -0
- package/dist/backends/gui/button.d.ts +50 -0
- package/dist/backends/gui/card.d.ts +44 -0
- package/dist/backends/gui/checkbox.d.ts +9 -0
- package/dist/backends/gui/collapsible.d.ts +10 -0
- package/dist/backends/gui/command.d.ts +86 -0
- package/dist/backends/gui/command.logic.d.ts +20 -0
- package/dist/backends/gui/dialog.d.ts +27 -0
- package/dist/backends/gui/dropdown-menu.d.ts +98 -0
- package/dist/backends/gui/index.d.ts +24 -2
- package/dist/backends/gui/ink.d.ts +7 -0
- package/dist/backends/gui/input.d.ts +19 -0
- package/dist/backends/gui/label.d.ts +6 -0
- package/dist/backends/gui/popover.d.ts +22 -0
- package/dist/backends/gui/progress.d.ts +6 -0
- package/dist/backends/gui/resizable.d.ts +52 -0
- package/dist/backends/gui/resizable.logic.d.ts +23 -0
- package/dist/backends/gui/scroll-area.d.ts +45 -0
- package/dist/backends/gui/select.d.ts +30 -0
- package/dist/backends/gui/separator.d.ts +10 -0
- package/dist/backends/gui/slider.d.ts +6 -0
- package/dist/backends/gui/slot.d.ts +6 -0
- package/dist/backends/gui/switch.d.ts +6 -0
- package/dist/backends/gui/tabs.d.ts +12 -0
- package/dist/backends/gui/textarea.d.ts +11 -0
- package/dist/backends/gui/toaster.d.ts +28 -0
- package/dist/backends/gui/tooltip.d.ts +12 -0
- package/dist/canvas.cjs +1 -0
- package/dist/canvas.js +1 -0
- package/dist/chunk-2U3MNE4I.js +4 -0
- package/dist/chunk-2U3MNE4I.js.map +1 -0
- package/dist/chunk-3NG33DV2.cjs +1 -0
- package/dist/chunk-6DDY6XZI.js +53 -0
- package/dist/chunk-6DDY6XZI.js.map +1 -0
- package/dist/chunk-6KZWRBK2.cjs +1498 -0
- package/dist/chunk-6KZWRBK2.cjs.map +1 -0
- package/dist/chunk-77AMCLN4.js +1 -0
- package/dist/chunk-7XDEUEWI.cjs +1 -0
- package/dist/chunk-7ZNK6JSS.js +1 -0
- package/dist/chunk-ARV3P4CE.cjs +1 -0
- package/dist/chunk-DC52DQ27.cjs +303 -0
- package/dist/chunk-DC52DQ27.cjs.map +1 -0
- package/dist/chunk-FVQXROBK.js +1 -0
- package/dist/chunk-GVCOAJLO.js +1 -0
- package/dist/chunk-MWBFAV3D.cjs +1 -0
- package/dist/chunk-NQUA5YRQ.cjs +55 -0
- package/dist/chunk-NQUA5YRQ.cjs.map +1 -0
- package/dist/chunk-ONVERVFG.cjs +1 -0
- package/dist/chunk-P2QU5MN5.js +1 -0
- package/dist/chunk-PI3GSHLU.js +263 -0
- package/dist/chunk-PI3GSHLU.js.map +1 -0
- package/dist/chunk-QHC2ZNAF.js +11 -0
- package/dist/chunk-QHC2ZNAF.js.map +1 -0
- package/dist/chunk-QV52JQHR.cjs +77 -0
- package/dist/chunk-QV52JQHR.cjs.map +1 -0
- package/dist/chunk-RBS5AYO4.cjs +13 -0
- package/dist/chunk-RBS5AYO4.cjs.map +1 -0
- package/dist/chunk-RCMDRI6V.js +1401 -0
- package/dist/chunk-RCMDRI6V.js.map +1 -0
- package/dist/chunk-WHJR5S4L.cjs +1 -0
- package/dist/chunk-ZGTJCJ55.js +1 -0
- package/dist/components.d.ts +1 -1
- package/dist/core/cn.d.ts +3 -5
- package/dist/core/index.cjs +92 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/tokens.cjs +77 -0
- package/dist/core/tokens.cjs.map +1 -0
- package/dist/core/tokens.js +4 -0
- package/dist/core/tokens.js.map +1 -0
- package/dist/dashboard.cjs +1 -0
- package/dist/dashboard.js +1 -0
- package/dist/data.cjs +1 -0
- package/dist/data.js +1 -0
- package/dist/framework/core.cjs +1 -0
- package/dist/framework/core.js +1 -0
- package/dist/framework/index.cjs +5 -3
- package/dist/framework/index.cjs.map +1 -1
- package/dist/framework/index.js +3 -1
- package/dist/framework/index.js.map +1 -1
- package/dist/gitops.cjs +1 -0
- package/dist/gitops.js +1 -0
- package/dist/gui-config.cjs +1 -0
- package/dist/gui-config.js +1 -0
- package/dist/index.cjs +366 -1136
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -1017
- package/dist/index.js.map +1 -1
- package/dist/models/catalog.d.ts +1 -1
- package/dist/models/index.cjs +225 -0
- package/dist/models/index.cjs.map +1 -0
- package/dist/models/index.js +218 -0
- package/dist/models/index.js.map +1 -0
- package/dist/oss.cjs +1 -0
- package/dist/oss.js +1 -0
- package/dist/primitives/AspectRatio.cjs +14 -0
- package/dist/primitives/AspectRatio.cjs.map +1 -0
- package/dist/primitives/AspectRatio.d.ts +1 -1
- package/dist/primitives/AspectRatio.js +5 -0
- package/dist/primitives/AspectRatio.js.map +1 -0
- package/dist/primitives/Avatar.cjs +14 -0
- package/dist/primitives/Avatar.cjs.map +1 -0
- package/dist/primitives/Avatar.d.ts +1 -1
- package/dist/primitives/Avatar.js +5 -0
- package/dist/primitives/Avatar.js.map +1 -0
- package/dist/primitives/AvatarFallback.cjs +14 -0
- package/dist/primitives/AvatarFallback.cjs.map +1 -0
- package/dist/primitives/AvatarFallback.d.ts +1 -1
- package/dist/primitives/AvatarFallback.js +5 -0
- package/dist/primitives/AvatarFallback.js.map +1 -0
- package/dist/primitives/AvatarImage.cjs +14 -0
- package/dist/primitives/AvatarImage.cjs.map +1 -0
- package/dist/primitives/AvatarImage.d.ts +1 -1
- package/dist/primitives/AvatarImage.js +5 -0
- package/dist/primitives/AvatarImage.js.map +1 -0
- package/dist/primitives/Badge.cjs +14 -0
- package/dist/primitives/Badge.cjs.map +1 -0
- package/dist/primitives/Badge.d.ts +1 -1
- package/dist/primitives/Badge.js +5 -0
- package/dist/primitives/Badge.js.map +1 -0
- package/dist/primitives/Button.cjs +14 -0
- package/dist/primitives/Button.cjs.map +1 -0
- package/dist/primitives/Button.d.ts +1 -1
- package/dist/primitives/Button.js +5 -0
- package/dist/primitives/Button.js.map +1 -0
- package/dist/primitives/Card.cjs +14 -0
- package/dist/primitives/Card.cjs.map +1 -0
- package/dist/primitives/Card.d.ts +1 -1
- package/dist/primitives/Card.js +5 -0
- package/dist/primitives/Card.js.map +1 -0
- package/dist/primitives/CardAction.cjs +14 -0
- package/dist/primitives/CardAction.cjs.map +1 -0
- package/dist/primitives/CardAction.d.ts +1 -1
- package/dist/primitives/CardAction.js +5 -0
- package/dist/primitives/CardAction.js.map +1 -0
- package/dist/primitives/CardContent.cjs +14 -0
- package/dist/primitives/CardContent.cjs.map +1 -0
- package/dist/primitives/CardContent.d.ts +1 -1
- package/dist/primitives/CardContent.js +5 -0
- package/dist/primitives/CardContent.js.map +1 -0
- package/dist/primitives/CardDescription.cjs +14 -0
- package/dist/primitives/CardDescription.cjs.map +1 -0
- package/dist/primitives/CardDescription.d.ts +1 -1
- package/dist/primitives/CardDescription.js +5 -0
- package/dist/primitives/CardDescription.js.map +1 -0
- package/dist/primitives/CardFooter.cjs +14 -0
- package/dist/primitives/CardFooter.cjs.map +1 -0
- package/dist/primitives/CardFooter.d.ts +1 -1
- package/dist/primitives/CardFooter.js +5 -0
- package/dist/primitives/CardFooter.js.map +1 -0
- package/dist/primitives/CardHeader.cjs +14 -0
- package/dist/primitives/CardHeader.cjs.map +1 -0
- package/dist/primitives/CardHeader.d.ts +1 -1
- package/dist/primitives/CardHeader.js +5 -0
- package/dist/primitives/CardHeader.js.map +1 -0
- package/dist/primitives/CardTitle.cjs +14 -0
- package/dist/primitives/CardTitle.cjs.map +1 -0
- package/dist/primitives/CardTitle.d.ts +1 -1
- package/dist/primitives/CardTitle.js +5 -0
- package/dist/primitives/CardTitle.js.map +1 -0
- package/dist/primitives/Checkbox.cjs +14 -0
- package/dist/primitives/Checkbox.cjs.map +1 -0
- package/dist/primitives/Checkbox.d.ts +1 -1
- package/dist/primitives/Checkbox.js +5 -0
- package/dist/primitives/Checkbox.js.map +1 -0
- package/dist/primitives/Collapsible.cjs +14 -0
- package/dist/primitives/Collapsible.cjs.map +1 -0
- package/dist/primitives/Collapsible.d.ts +1 -1
- package/dist/primitives/Collapsible.js +5 -0
- package/dist/primitives/Collapsible.js.map +1 -0
- package/dist/primitives/CollapsibleContent.cjs +14 -0
- package/dist/primitives/CollapsibleContent.cjs.map +1 -0
- package/dist/primitives/CollapsibleContent.d.ts +1 -1
- package/dist/primitives/CollapsibleContent.js +5 -0
- package/dist/primitives/CollapsibleContent.js.map +1 -0
- package/dist/primitives/CollapsibleTrigger.cjs +14 -0
- package/dist/primitives/CollapsibleTrigger.cjs.map +1 -0
- package/dist/primitives/CollapsibleTrigger.d.ts +1 -1
- package/dist/primitives/CollapsibleTrigger.js +5 -0
- package/dist/primitives/CollapsibleTrigger.js.map +1 -0
- package/dist/primitives/Command.cjs +14 -0
- package/dist/primitives/Command.cjs.map +1 -0
- package/dist/primitives/Command.d.ts +1 -1
- package/dist/primitives/Command.js +5 -0
- package/dist/primitives/Command.js.map +1 -0
- package/dist/primitives/CommandDialog.cjs +14 -0
- package/dist/primitives/CommandDialog.cjs.map +1 -0
- package/dist/primitives/CommandDialog.d.ts +1 -1
- package/dist/primitives/CommandDialog.js +5 -0
- package/dist/primitives/CommandDialog.js.map +1 -0
- package/dist/primitives/CommandEmpty.cjs +14 -0
- package/dist/primitives/CommandEmpty.cjs.map +1 -0
- package/dist/primitives/CommandEmpty.d.ts +1 -1
- package/dist/primitives/CommandEmpty.js +5 -0
- package/dist/primitives/CommandEmpty.js.map +1 -0
- package/dist/primitives/CommandGroup.cjs +14 -0
- package/dist/primitives/CommandGroup.cjs.map +1 -0
- package/dist/primitives/CommandGroup.d.ts +1 -1
- package/dist/primitives/CommandGroup.js +5 -0
- package/dist/primitives/CommandGroup.js.map +1 -0
- package/dist/primitives/CommandInput.cjs +14 -0
- package/dist/primitives/CommandInput.cjs.map +1 -0
- package/dist/primitives/CommandInput.d.ts +1 -1
- package/dist/primitives/CommandInput.js +5 -0
- package/dist/primitives/CommandInput.js.map +1 -0
- package/dist/primitives/CommandItem.cjs +14 -0
- package/dist/primitives/CommandItem.cjs.map +1 -0
- package/dist/primitives/CommandItem.d.ts +1 -1
- package/dist/primitives/CommandItem.js +5 -0
- package/dist/primitives/CommandItem.js.map +1 -0
- package/dist/primitives/CommandList.cjs +14 -0
- package/dist/primitives/CommandList.cjs.map +1 -0
- package/dist/primitives/CommandList.d.ts +1 -1
- package/dist/primitives/CommandList.js +5 -0
- package/dist/primitives/CommandList.js.map +1 -0
- package/dist/primitives/CommandSeparator.cjs +14 -0
- package/dist/primitives/CommandSeparator.cjs.map +1 -0
- package/dist/primitives/CommandSeparator.d.ts +1 -1
- package/dist/primitives/CommandSeparator.js +5 -0
- package/dist/primitives/CommandSeparator.js.map +1 -0
- package/dist/primitives/CommandShortcut.cjs +14 -0
- package/dist/primitives/CommandShortcut.cjs.map +1 -0
- package/dist/primitives/CommandShortcut.d.ts +1 -1
- package/dist/primitives/CommandShortcut.js +5 -0
- package/dist/primitives/CommandShortcut.js.map +1 -0
- package/dist/primitives/Dialog.cjs +14 -0
- package/dist/primitives/Dialog.cjs.map +1 -0
- package/dist/primitives/Dialog.d.ts +1 -1
- package/dist/primitives/Dialog.js +5 -0
- package/dist/primitives/Dialog.js.map +1 -0
- package/dist/primitives/DialogClose.cjs +14 -0
- package/dist/primitives/DialogClose.cjs.map +1 -0
- package/dist/primitives/DialogClose.d.ts +1 -1
- package/dist/primitives/DialogClose.js +5 -0
- package/dist/primitives/DialogClose.js.map +1 -0
- package/dist/primitives/DialogContent.cjs +14 -0
- package/dist/primitives/DialogContent.cjs.map +1 -0
- package/dist/primitives/DialogContent.d.ts +1 -1
- package/dist/primitives/DialogContent.js +5 -0
- package/dist/primitives/DialogContent.js.map +1 -0
- package/dist/primitives/DialogDescription.cjs +14 -0
- package/dist/primitives/DialogDescription.cjs.map +1 -0
- package/dist/primitives/DialogDescription.d.ts +1 -1
- package/dist/primitives/DialogDescription.js +5 -0
- package/dist/primitives/DialogDescription.js.map +1 -0
- package/dist/primitives/DialogFooter.cjs +14 -0
- package/dist/primitives/DialogFooter.cjs.map +1 -0
- package/dist/primitives/DialogFooter.d.ts +1 -1
- package/dist/primitives/DialogFooter.js +5 -0
- package/dist/primitives/DialogFooter.js.map +1 -0
- package/dist/primitives/DialogHeader.cjs +14 -0
- package/dist/primitives/DialogHeader.cjs.map +1 -0
- package/dist/primitives/DialogHeader.d.ts +1 -1
- package/dist/primitives/DialogHeader.js +5 -0
- package/dist/primitives/DialogHeader.js.map +1 -0
- package/dist/primitives/DialogOverlay.cjs +14 -0
- package/dist/primitives/DialogOverlay.cjs.map +1 -0
- package/dist/primitives/DialogOverlay.d.ts +1 -1
- package/dist/primitives/DialogOverlay.js +5 -0
- package/dist/primitives/DialogOverlay.js.map +1 -0
- package/dist/primitives/DialogPortal.cjs +14 -0
- package/dist/primitives/DialogPortal.cjs.map +1 -0
- package/dist/primitives/DialogPortal.d.ts +1 -1
- package/dist/primitives/DialogPortal.js +5 -0
- package/dist/primitives/DialogPortal.js.map +1 -0
- package/dist/primitives/DialogTitle.cjs +14 -0
- package/dist/primitives/DialogTitle.cjs.map +1 -0
- package/dist/primitives/DialogTitle.d.ts +1 -1
- package/dist/primitives/DialogTitle.js +5 -0
- package/dist/primitives/DialogTitle.js.map +1 -0
- package/dist/primitives/DialogTrigger.cjs +14 -0
- package/dist/primitives/DialogTrigger.cjs.map +1 -0
- package/dist/primitives/DialogTrigger.d.ts +1 -1
- package/dist/primitives/DialogTrigger.js +5 -0
- package/dist/primitives/DialogTrigger.js.map +1 -0
- package/dist/primitives/DropdownMenu.cjs +14 -0
- package/dist/primitives/DropdownMenu.cjs.map +1 -0
- package/dist/primitives/DropdownMenu.d.ts +1 -1
- package/dist/primitives/DropdownMenu.js +5 -0
- package/dist/primitives/DropdownMenu.js.map +1 -0
- package/dist/primitives/DropdownMenuCheckboxItem.cjs +14 -0
- package/dist/primitives/DropdownMenuCheckboxItem.cjs.map +1 -0
- package/dist/primitives/DropdownMenuCheckboxItem.d.ts +1 -1
- package/dist/primitives/DropdownMenuCheckboxItem.js +5 -0
- package/dist/primitives/DropdownMenuCheckboxItem.js.map +1 -0
- package/dist/primitives/DropdownMenuContent.cjs +14 -0
- package/dist/primitives/DropdownMenuContent.cjs.map +1 -0
- package/dist/primitives/DropdownMenuContent.d.ts +1 -1
- package/dist/primitives/DropdownMenuContent.js +5 -0
- package/dist/primitives/DropdownMenuContent.js.map +1 -0
- package/dist/primitives/DropdownMenuGroup.cjs +14 -0
- package/dist/primitives/DropdownMenuGroup.cjs.map +1 -0
- package/dist/primitives/DropdownMenuGroup.d.ts +1 -1
- package/dist/primitives/DropdownMenuGroup.js +5 -0
- package/dist/primitives/DropdownMenuGroup.js.map +1 -0
- package/dist/primitives/DropdownMenuItem.cjs +14 -0
- package/dist/primitives/DropdownMenuItem.cjs.map +1 -0
- package/dist/primitives/DropdownMenuItem.d.ts +1 -1
- package/dist/primitives/DropdownMenuItem.js +5 -0
- package/dist/primitives/DropdownMenuItem.js.map +1 -0
- package/dist/primitives/DropdownMenuLabel.cjs +14 -0
- package/dist/primitives/DropdownMenuLabel.cjs.map +1 -0
- package/dist/primitives/DropdownMenuLabel.d.ts +1 -1
- package/dist/primitives/DropdownMenuLabel.js +5 -0
- package/dist/primitives/DropdownMenuLabel.js.map +1 -0
- package/dist/primitives/DropdownMenuPortal.cjs +14 -0
- package/dist/primitives/DropdownMenuPortal.cjs.map +1 -0
- package/dist/primitives/DropdownMenuPortal.d.ts +1 -1
- package/dist/primitives/DropdownMenuPortal.js +5 -0
- package/dist/primitives/DropdownMenuPortal.js.map +1 -0
- package/dist/primitives/DropdownMenuRadioGroup.cjs +14 -0
- package/dist/primitives/DropdownMenuRadioGroup.cjs.map +1 -0
- package/dist/primitives/DropdownMenuRadioGroup.d.ts +1 -1
- package/dist/primitives/DropdownMenuRadioGroup.js +5 -0
- package/dist/primitives/DropdownMenuRadioGroup.js.map +1 -0
- package/dist/primitives/DropdownMenuRadioItem.cjs +14 -0
- package/dist/primitives/DropdownMenuRadioItem.cjs.map +1 -0
- package/dist/primitives/DropdownMenuRadioItem.d.ts +1 -1
- package/dist/primitives/DropdownMenuRadioItem.js +5 -0
- package/dist/primitives/DropdownMenuRadioItem.js.map +1 -0
- package/dist/primitives/DropdownMenuSeparator.cjs +14 -0
- package/dist/primitives/DropdownMenuSeparator.cjs.map +1 -0
- package/dist/primitives/DropdownMenuSeparator.d.ts +1 -1
- package/dist/primitives/DropdownMenuSeparator.js +5 -0
- package/dist/primitives/DropdownMenuSeparator.js.map +1 -0
- package/dist/primitives/DropdownMenuShortcut.cjs +14 -0
- package/dist/primitives/DropdownMenuShortcut.cjs.map +1 -0
- package/dist/primitives/DropdownMenuShortcut.d.ts +1 -1
- package/dist/primitives/DropdownMenuShortcut.js +5 -0
- package/dist/primitives/DropdownMenuShortcut.js.map +1 -0
- package/dist/primitives/DropdownMenuSub.cjs +14 -0
- package/dist/primitives/DropdownMenuSub.cjs.map +1 -0
- package/dist/primitives/DropdownMenuSub.d.ts +1 -1
- package/dist/primitives/DropdownMenuSub.js +5 -0
- package/dist/primitives/DropdownMenuSub.js.map +1 -0
- package/dist/primitives/DropdownMenuSubContent.cjs +14 -0
- package/dist/primitives/DropdownMenuSubContent.cjs.map +1 -0
- package/dist/primitives/DropdownMenuSubContent.d.ts +1 -1
- package/dist/primitives/DropdownMenuSubContent.js +5 -0
- package/dist/primitives/DropdownMenuSubContent.js.map +1 -0
- package/dist/primitives/DropdownMenuSubTrigger.cjs +14 -0
- package/dist/primitives/DropdownMenuSubTrigger.cjs.map +1 -0
- package/dist/primitives/DropdownMenuSubTrigger.d.ts +1 -1
- package/dist/primitives/DropdownMenuSubTrigger.js +5 -0
- package/dist/primitives/DropdownMenuSubTrigger.js.map +1 -0
- package/dist/primitives/DropdownMenuTrigger.cjs +14 -0
- package/dist/primitives/DropdownMenuTrigger.cjs.map +1 -0
- package/dist/primitives/DropdownMenuTrigger.d.ts +1 -1
- package/dist/primitives/DropdownMenuTrigger.js +5 -0
- package/dist/primitives/DropdownMenuTrigger.js.map +1 -0
- package/dist/primitives/Input.cjs +14 -0
- package/dist/primitives/Input.cjs.map +1 -0
- package/dist/primitives/Input.d.ts +1 -1
- package/dist/primitives/Input.js +5 -0
- package/dist/primitives/Input.js.map +1 -0
- package/dist/primitives/Label.cjs +14 -0
- package/dist/primitives/Label.cjs.map +1 -0
- package/dist/primitives/Label.d.ts +1 -1
- package/dist/primitives/Label.js +5 -0
- package/dist/primitives/Label.js.map +1 -0
- package/dist/primitives/Popover.cjs +14 -0
- package/dist/primitives/Popover.cjs.map +1 -0
- package/dist/primitives/Popover.d.ts +1 -1
- package/dist/primitives/Popover.js +5 -0
- package/dist/primitives/Popover.js.map +1 -0
- package/dist/primitives/PopoverAnchor.cjs +14 -0
- package/dist/primitives/PopoverAnchor.cjs.map +1 -0
- package/dist/primitives/PopoverAnchor.d.ts +1 -1
- package/dist/primitives/PopoverAnchor.js +5 -0
- package/dist/primitives/PopoverAnchor.js.map +1 -0
- package/dist/primitives/PopoverClose.cjs +14 -0
- package/dist/primitives/PopoverClose.cjs.map +1 -0
- package/dist/primitives/PopoverClose.d.ts +1 -0
- package/dist/primitives/PopoverClose.js +5 -0
- package/dist/primitives/PopoverClose.js.map +1 -0
- package/dist/primitives/PopoverContent.cjs +14 -0
- package/dist/primitives/PopoverContent.cjs.map +1 -0
- package/dist/primitives/PopoverContent.d.ts +1 -1
- package/dist/primitives/PopoverContent.js +5 -0
- package/dist/primitives/PopoverContent.js.map +1 -0
- package/dist/primitives/PopoverTrigger.cjs +14 -0
- package/dist/primitives/PopoverTrigger.cjs.map +1 -0
- package/dist/primitives/PopoverTrigger.d.ts +1 -1
- package/dist/primitives/PopoverTrigger.js +5 -0
- package/dist/primitives/PopoverTrigger.js.map +1 -0
- package/dist/primitives/Progress.cjs +14 -0
- package/dist/primitives/Progress.cjs.map +1 -0
- package/dist/primitives/Progress.d.ts +1 -1
- package/dist/primitives/Progress.js +5 -0
- package/dist/primitives/Progress.js.map +1 -0
- package/dist/primitives/ResizableHandle.cjs +14 -0
- package/dist/primitives/ResizableHandle.cjs.map +1 -0
- package/dist/primitives/ResizableHandle.d.ts +1 -0
- package/dist/primitives/ResizableHandle.js +5 -0
- package/dist/primitives/ResizableHandle.js.map +1 -0
- package/dist/primitives/ResizablePanel.cjs +14 -0
- package/dist/primitives/ResizablePanel.cjs.map +1 -0
- package/dist/primitives/ResizablePanel.d.ts +1 -0
- package/dist/primitives/ResizablePanel.js +5 -0
- package/dist/primitives/ResizablePanel.js.map +1 -0
- package/dist/primitives/ResizablePanelGroup.cjs +14 -0
- package/dist/primitives/ResizablePanelGroup.cjs.map +1 -0
- package/dist/primitives/ResizablePanelGroup.d.ts +1 -0
- package/dist/primitives/ResizablePanelGroup.js +5 -0
- package/dist/primitives/ResizablePanelGroup.js.map +1 -0
- package/dist/primitives/ScrollArea.cjs +14 -0
- package/dist/primitives/ScrollArea.cjs.map +1 -0
- package/dist/primitives/ScrollArea.d.ts +1 -1
- package/dist/primitives/ScrollArea.js +5 -0
- package/dist/primitives/ScrollArea.js.map +1 -0
- package/dist/primitives/ScrollBar.cjs +14 -0
- package/dist/primitives/ScrollBar.cjs.map +1 -0
- package/dist/primitives/ScrollBar.d.ts +1 -1
- package/dist/primitives/ScrollBar.js +5 -0
- package/dist/primitives/ScrollBar.js.map +1 -0
- package/dist/primitives/Select.cjs +14 -0
- package/dist/primitives/Select.cjs.map +1 -0
- package/dist/primitives/Select.d.ts +1 -1
- package/dist/primitives/Select.js +5 -0
- package/dist/primitives/Select.js.map +1 -0
- package/dist/primitives/SelectContent.cjs +14 -0
- package/dist/primitives/SelectContent.cjs.map +1 -0
- package/dist/primitives/SelectContent.d.ts +1 -1
- package/dist/primitives/SelectContent.js +5 -0
- package/dist/primitives/SelectContent.js.map +1 -0
- package/dist/primitives/SelectGroup.cjs +14 -0
- package/dist/primitives/SelectGroup.cjs.map +1 -0
- package/dist/primitives/SelectGroup.d.ts +1 -1
- package/dist/primitives/SelectGroup.js +5 -0
- package/dist/primitives/SelectGroup.js.map +1 -0
- package/dist/primitives/SelectItem.cjs +14 -0
- package/dist/primitives/SelectItem.cjs.map +1 -0
- package/dist/primitives/SelectItem.d.ts +1 -1
- package/dist/primitives/SelectItem.js +5 -0
- package/dist/primitives/SelectItem.js.map +1 -0
- package/dist/primitives/SelectLabel.cjs +14 -0
- package/dist/primitives/SelectLabel.cjs.map +1 -0
- package/dist/primitives/SelectLabel.d.ts +1 -1
- package/dist/primitives/SelectLabel.js +5 -0
- package/dist/primitives/SelectLabel.js.map +1 -0
- package/dist/primitives/SelectScrollDownButton.cjs +14 -0
- package/dist/primitives/SelectScrollDownButton.cjs.map +1 -0
- package/dist/primitives/SelectScrollDownButton.d.ts +1 -1
- package/dist/primitives/SelectScrollDownButton.js +5 -0
- package/dist/primitives/SelectScrollDownButton.js.map +1 -0
- package/dist/primitives/SelectScrollUpButton.cjs +14 -0
- package/dist/primitives/SelectScrollUpButton.cjs.map +1 -0
- package/dist/primitives/SelectScrollUpButton.d.ts +1 -1
- package/dist/primitives/SelectScrollUpButton.js +5 -0
- package/dist/primitives/SelectScrollUpButton.js.map +1 -0
- package/dist/primitives/SelectSeparator.cjs +14 -0
- package/dist/primitives/SelectSeparator.cjs.map +1 -0
- package/dist/primitives/SelectSeparator.d.ts +1 -1
- package/dist/primitives/SelectSeparator.js +5 -0
- package/dist/primitives/SelectSeparator.js.map +1 -0
- package/dist/primitives/SelectTrigger.cjs +14 -0
- package/dist/primitives/SelectTrigger.cjs.map +1 -0
- package/dist/primitives/SelectTrigger.d.ts +1 -1
- package/dist/primitives/SelectTrigger.js +5 -0
- package/dist/primitives/SelectTrigger.js.map +1 -0
- package/dist/primitives/SelectValue.cjs +14 -0
- package/dist/primitives/SelectValue.cjs.map +1 -0
- package/dist/primitives/SelectValue.d.ts +1 -1
- package/dist/primitives/SelectValue.js +5 -0
- package/dist/primitives/SelectValue.js.map +1 -0
- package/dist/primitives/Separator.cjs +14 -0
- package/dist/primitives/Separator.cjs.map +1 -0
- package/dist/primitives/Separator.d.ts +1 -1
- package/dist/primitives/Separator.js +5 -0
- package/dist/primitives/Separator.js.map +1 -0
- package/dist/primitives/Slider.cjs +14 -0
- package/dist/primitives/Slider.cjs.map +1 -0
- package/dist/primitives/Slider.d.ts +1 -1
- package/dist/primitives/Slider.js +5 -0
- package/dist/primitives/Slider.js.map +1 -0
- package/dist/primitives/Switch.cjs +14 -0
- package/dist/primitives/Switch.cjs.map +1 -0
- package/dist/primitives/Switch.d.ts +1 -1
- package/dist/primitives/Switch.js +5 -0
- package/dist/primitives/Switch.js.map +1 -0
- package/dist/primitives/Tabs.cjs +14 -0
- package/dist/primitives/Tabs.cjs.map +1 -0
- package/dist/primitives/Tabs.d.ts +1 -1
- package/dist/primitives/Tabs.js +5 -0
- package/dist/primitives/Tabs.js.map +1 -0
- package/dist/primitives/TabsContent.cjs +14 -0
- package/dist/primitives/TabsContent.cjs.map +1 -0
- package/dist/primitives/TabsContent.d.ts +1 -1
- package/dist/primitives/TabsContent.js +5 -0
- package/dist/primitives/TabsContent.js.map +1 -0
- package/dist/primitives/TabsList.cjs +14 -0
- package/dist/primitives/TabsList.cjs.map +1 -0
- package/dist/primitives/TabsList.d.ts +1 -1
- package/dist/primitives/TabsList.js +5 -0
- package/dist/primitives/TabsList.js.map +1 -0
- package/dist/primitives/TabsTrigger.cjs +14 -0
- package/dist/primitives/TabsTrigger.cjs.map +1 -0
- package/dist/primitives/TabsTrigger.d.ts +1 -1
- package/dist/primitives/TabsTrigger.js +5 -0
- package/dist/primitives/TabsTrigger.js.map +1 -0
- package/dist/primitives/Textarea.cjs +14 -0
- package/dist/primitives/Textarea.cjs.map +1 -0
- package/dist/primitives/Textarea.d.ts +1 -1
- package/dist/primitives/Textarea.js +5 -0
- package/dist/primitives/Textarea.js.map +1 -0
- package/dist/primitives/Toaster.cjs +14 -0
- package/dist/primitives/Toaster.cjs.map +1 -0
- package/dist/primitives/Toaster.d.ts +1 -1
- package/dist/primitives/Toaster.js +5 -0
- package/dist/primitives/Toaster.js.map +1 -0
- package/dist/primitives/Tooltip.cjs +14 -0
- package/dist/primitives/Tooltip.cjs.map +1 -0
- package/dist/primitives/Tooltip.d.ts +1 -1
- package/dist/primitives/Tooltip.js +5 -0
- package/dist/primitives/Tooltip.js.map +1 -0
- package/dist/primitives/TooltipContent.cjs +14 -0
- package/dist/primitives/TooltipContent.cjs.map +1 -0
- package/dist/primitives/TooltipContent.d.ts +1 -1
- package/dist/primitives/TooltipContent.js +5 -0
- package/dist/primitives/TooltipContent.js.map +1 -0
- package/dist/primitives/TooltipProvider.cjs +14 -0
- package/dist/primitives/TooltipProvider.cjs.map +1 -0
- package/dist/primitives/TooltipProvider.d.ts +1 -1
- package/dist/primitives/TooltipProvider.js +5 -0
- package/dist/primitives/TooltipProvider.js.map +1 -0
- package/dist/primitives/TooltipTrigger.cjs +14 -0
- package/dist/primitives/TooltipTrigger.cjs.map +1 -0
- package/dist/primitives/TooltipTrigger.d.ts +1 -1
- package/dist/primitives/TooltipTrigger.js +5 -0
- package/dist/primitives/TooltipTrigger.js.map +1 -0
- package/dist/primitives/badgeVariants.cjs +14 -0
- package/dist/primitives/badgeVariants.cjs.map +1 -0
- package/dist/primitives/badgeVariants.d.ts +1 -1
- package/dist/primitives/badgeVariants.js +5 -0
- package/dist/primitives/badgeVariants.js.map +1 -0
- package/dist/primitives/bases/data/index.cjs +1 -0
- package/dist/primitives/bases/data/index.js +1 -0
- package/dist/primitives/buttonVariants.cjs +14 -0
- package/dist/primitives/buttonVariants.cjs.map +1 -0
- package/dist/primitives/buttonVariants.d.ts +1 -1
- package/dist/primitives/buttonVariants.js +5 -0
- package/dist/primitives/buttonVariants.js.map +1 -0
- package/dist/primitives/index.cjs +370 -0
- package/dist/primitives/index.cjs.map +1 -0
- package/dist/primitives/index.d.ts +1 -1
- package/dist/primitives/index.js +5 -0
- package/dist/primitives/index.js.map +1 -0
- package/dist/primitives/toast.cjs +14 -0
- package/dist/primitives/toast.cjs.map +1 -0
- package/dist/primitives/toast.d.ts +1 -1
- package/dist/primitives/toast.js +5 -0
- package/dist/primitives/toast.js.map +1 -0
- package/dist/product/index.cjs +285 -35
- package/dist/product/index.cjs.map +1 -1
- package/dist/product/index.d.ts +1 -0
- package/dist/product/index.js +265 -9
- package/dist/product/index.js.map +1 -1
- package/dist/product/menu/index.d.ts +1 -1
- package/dist/product/social/api.cjs +1 -0
- package/dist/product/social/api.js +1 -0
- package/dist/product/social/index.cjs +1 -0
- package/dist/product/social/index.js +1 -0
- package/dist/styles/hanzo-motion.css +188 -0
- package/dist/telemetry.cjs +1 -0
- package/dist/telemetry.js +1 -0
- package/dist/theme.css +160 -0
- package/dist/usage.cjs +1 -0
- package/dist/usage.js +1 -0
- package/package.json +31 -71
- package/dist/backends/shadcn/aspect-ratio.d.ts +0 -4
- package/dist/backends/shadcn/avatar.d.ts +0 -6
- package/dist/backends/shadcn/badge.d.ts +0 -9
- package/dist/backends/shadcn/button.d.ts +0 -19
- package/dist/backends/shadcn/card.d.ts +0 -9
- package/dist/backends/shadcn/checkbox.d.ts +0 -9
- package/dist/backends/shadcn/collapsible.d.ts +0 -5
- package/dist/backends/shadcn/command.d.ts +0 -80
- package/dist/backends/shadcn/dialog.d.ts +0 -15
- package/dist/backends/shadcn/dropdown-menu.d.ts +0 -34
- package/dist/backends/shadcn/index.d.ts +0 -23
- package/dist/backends/shadcn/input.d.ts +0 -11
- package/dist/backends/shadcn/label.d.ts +0 -4
- package/dist/backends/shadcn/popover.d.ts +0 -7
- package/dist/backends/shadcn/progress.d.ts +0 -4
- package/dist/backends/shadcn/scroll-area.d.ts +0 -5
- package/dist/backends/shadcn/select.d.ts +0 -13
- package/dist/backends/shadcn/separator.d.ts +0 -4
- package/dist/backends/shadcn/slider.d.ts +0 -4
- package/dist/backends/shadcn/switch.d.ts +0 -4
- package/dist/backends/shadcn/tabs.d.ts +0 -7
- package/dist/backends/shadcn/textarea.d.ts +0 -4
- package/dist/backends/shadcn/toaster.d.ts +0 -10
- package/dist/backends/shadcn/tooltip.d.ts +0 -7
- package/dist/backends/shadcn/utils.d.ts +0 -8
- package/dist/billing.cjs +0 -14
- package/dist/billing.cjs.map +0 -1
- package/dist/billing.d.ts +0 -1
- package/dist/billing.js +0 -3
- package/dist/billing.js.map +0 -1
- package/dist/chunk-5CZOYONP.js +0 -342
- package/dist/chunk-5CZOYONP.js.map +0 -1
- package/dist/chunk-GWNNLYX4.cjs +0 -352
- package/dist/chunk-GWNNLYX4.cjs.map +0 -1
- package/dist/network.cjs +0 -14
- package/dist/network.cjs.map +0 -1
- package/dist/network.d.ts +0 -1
- package/dist/network.js +0 -3
- package/dist/network.js.map +0 -1
- package/dist/product/menu/DropdownMenu.d.ts +0 -29
- package/dist/wallet.cjs +0 -14
- package/dist/wallet.cjs.map +0 -1
- package/dist/wallet.d.ts +0 -1
- package/dist/wallet.js +0 -3
- package/dist/wallet.js.map +0 -1
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var gui = require('@hanzo/gui');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var lucideIcons2 = require('@hanzogui/lucide-icons-2');
|
|
8
|
+
|
|
9
|
+
function _interopNamespace(e) {
|
|
10
|
+
if (e && e.__esModule) return e;
|
|
11
|
+
var n = Object.create(null);
|
|
12
|
+
if (e) {
|
|
13
|
+
Object.keys(e).forEach(function (k) {
|
|
14
|
+
if (k !== 'default') {
|
|
15
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
16
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return e[k]; }
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
n.default = e;
|
|
24
|
+
return Object.freeze(n);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
28
|
+
|
|
29
|
+
// src/product/menu/portal-theme.tsx
|
|
30
|
+
function PortalTheme({ name, children }) {
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(gui.Theme, { name, children });
|
|
32
|
+
}
|
|
33
|
+
var ROW_H = 32;
|
|
34
|
+
var TAP_MIN = 44;
|
|
35
|
+
var HIT_SLOP = {
|
|
36
|
+
top: (TAP_MIN - ROW_H) / 2,
|
|
37
|
+
bottom: (TAP_MIN - ROW_H) / 2,
|
|
38
|
+
left: 0,
|
|
39
|
+
right: 0
|
|
40
|
+
};
|
|
41
|
+
var ROW_PX = 8;
|
|
42
|
+
var INSET_PL = 32;
|
|
43
|
+
var INDICATOR_SLOT = 14;
|
|
44
|
+
var ICON = 16;
|
|
45
|
+
var panel = {
|
|
46
|
+
bg: "$color2",
|
|
47
|
+
borderColor: "$borderColor",
|
|
48
|
+
borderWidth: 1,
|
|
49
|
+
rounded: "$4",
|
|
50
|
+
p: 4,
|
|
51
|
+
minW: 128,
|
|
52
|
+
overflow: "hidden",
|
|
53
|
+
shadowColor: "rgba(0,0,0,0.45)",
|
|
54
|
+
shadowRadius: 20,
|
|
55
|
+
shadowOffset: { width: 0, height: 10 }
|
|
56
|
+
};
|
|
57
|
+
var row = {
|
|
58
|
+
items: "center",
|
|
59
|
+
gap: ROW_PX,
|
|
60
|
+
px: ROW_PX,
|
|
61
|
+
minH: ROW_H,
|
|
62
|
+
rounded: "$3",
|
|
63
|
+
select: "none",
|
|
64
|
+
cursor: "pointer",
|
|
65
|
+
hitSlop: HIT_SLOP,
|
|
66
|
+
hoverStyle: { bg: "$color5" },
|
|
67
|
+
focusStyle: { bg: "$color5" },
|
|
68
|
+
pressStyle: { bg: "$color6" }
|
|
69
|
+
};
|
|
70
|
+
var Indicator = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
71
|
+
gui.XStack,
|
|
72
|
+
{
|
|
73
|
+
position: "absolute",
|
|
74
|
+
l: ROW_PX,
|
|
75
|
+
width: INDICATOR_SLOT,
|
|
76
|
+
height: INDICATOR_SLOT,
|
|
77
|
+
items: "center",
|
|
78
|
+
justify: "center",
|
|
79
|
+
pointerEvents: "none",
|
|
80
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(gui.Menu.ItemIndicator, { children })
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
var OffsetContext = /* @__PURE__ */ React__namespace.createContext(null);
|
|
84
|
+
var DEFAULT_OFFSET = 4;
|
|
85
|
+
function DropdownMenu({
|
|
86
|
+
offset = DEFAULT_OFFSET,
|
|
87
|
+
trigger,
|
|
88
|
+
items,
|
|
89
|
+
minWidth,
|
|
90
|
+
maxHeight,
|
|
91
|
+
children,
|
|
92
|
+
...props
|
|
93
|
+
}) {
|
|
94
|
+
const [current, setOffset] = React__namespace.useState(offset);
|
|
95
|
+
React__namespace.useEffect(() => setOffset(offset), [offset]);
|
|
96
|
+
return /* @__PURE__ */ jsxRuntime.jsx(OffsetContext.Provider, { value: setOffset, children: /* @__PURE__ */ jsxRuntime.jsxs(gui.Menu, { offset: current, ...props, children: [
|
|
97
|
+
trigger ? /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuTrigger, { asChild: true, children: trigger }) : null,
|
|
98
|
+
items ? /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuContent, { minW: minWidth, maxH: maxHeight, children: items.map(renderSpec) }) : null,
|
|
99
|
+
children
|
|
100
|
+
] }) });
|
|
101
|
+
}
|
|
102
|
+
var renderSpec = (spec, i) => {
|
|
103
|
+
if (spec.type === "separator")
|
|
104
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuSeparator, {}, spec.key ?? `sep-${i}`);
|
|
105
|
+
if (spec.type === "label")
|
|
106
|
+
return /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuLabel, { children: spec.label }, spec.key ?? `label-${i}`);
|
|
107
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
108
|
+
DropdownMenuItem,
|
|
109
|
+
{
|
|
110
|
+
disabled: spec.disabled,
|
|
111
|
+
variant: spec.destructive ? "destructive" : "default",
|
|
112
|
+
onSelect: spec.onSelect,
|
|
113
|
+
children: [
|
|
114
|
+
spec.icon ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
115
|
+
gui.XStack,
|
|
116
|
+
{
|
|
117
|
+
width: ICON,
|
|
118
|
+
height: ICON,
|
|
119
|
+
items: "center",
|
|
120
|
+
justify: "center",
|
|
121
|
+
shrink: 0,
|
|
122
|
+
children: spec.icon
|
|
123
|
+
}
|
|
124
|
+
) : null,
|
|
125
|
+
/* @__PURE__ */ jsxRuntime.jsxs(gui.YStack, { flex: 1, minW: 0, children: [
|
|
126
|
+
/* @__PURE__ */ jsxRuntime.jsx(gui.Text, { fontSize: "$2", color: "$color12", numberOfLines: 1, children: spec.label }),
|
|
127
|
+
spec.description ? /* @__PURE__ */ jsxRuntime.jsx(gui.Text, { fontSize: "$1", color: "$color11", numberOfLines: 1, children: spec.description }) : null
|
|
128
|
+
] }),
|
|
129
|
+
spec.shortcut ? /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuShortcut, { children: spec.shortcut }) : null,
|
|
130
|
+
spec.selected ? /* @__PURE__ */ jsxRuntime.jsx(lucideIcons2.Check, { size: ICON - 2, ml: "auto" }) : null,
|
|
131
|
+
spec.hasSubmenu ? /* @__PURE__ */ jsxRuntime.jsx(lucideIcons2.ChevronRight, { size: ICON - 2, ml: "auto", opacity: 0.6 }) : null
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
spec.key
|
|
135
|
+
);
|
|
136
|
+
};
|
|
137
|
+
var DropdownMenuTrigger = gui.Menu.Trigger;
|
|
138
|
+
var DropdownMenuGroup = gui.Menu.Group;
|
|
139
|
+
var DropdownMenuPortal = gui.Menu.Portal;
|
|
140
|
+
var DropdownMenuSub = gui.Menu.Sub;
|
|
141
|
+
var DropdownMenuRadioGroup = gui.Menu.RadioGroup;
|
|
142
|
+
var DropdownMenuContent = /* @__PURE__ */ React__namespace.forwardRef(function DropdownMenuContent2({ sideOffset = DEFAULT_OFFSET, children, ...props }, ref) {
|
|
143
|
+
const themeName = gui.useThemeName();
|
|
144
|
+
const setOffset = React__namespace.useContext(OffsetContext);
|
|
145
|
+
React__namespace.useEffect(() => setOffset?.(sideOffset), [setOffset, sideOffset]);
|
|
146
|
+
return /* @__PURE__ */ jsxRuntime.jsx(gui.Menu.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(PortalTheme, { name: themeName, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
147
|
+
gui.Menu.Content,
|
|
148
|
+
{
|
|
149
|
+
ref,
|
|
150
|
+
"data-slot": "dropdown-menu-content",
|
|
151
|
+
...panel,
|
|
152
|
+
...props,
|
|
153
|
+
children
|
|
154
|
+
}
|
|
155
|
+
) }) });
|
|
156
|
+
});
|
|
157
|
+
var DropdownMenuSubContent = /* @__PURE__ */ React__namespace.forwardRef(function DropdownMenuSubContent2(props, ref) {
|
|
158
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
159
|
+
gui.Menu.SubContent,
|
|
160
|
+
{
|
|
161
|
+
ref,
|
|
162
|
+
"data-slot": "dropdown-menu-sub-content",
|
|
163
|
+
...panel,
|
|
164
|
+
...props
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
});
|
|
168
|
+
var DropdownMenuItem = /* @__PURE__ */ React__namespace.forwardRef(function DropdownMenuItem2({ inset, variant = "default", disabled, ...props }, ref) {
|
|
169
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
170
|
+
gui.Menu.Item,
|
|
171
|
+
{
|
|
172
|
+
ref,
|
|
173
|
+
"data-slot": "dropdown-menu-item",
|
|
174
|
+
"data-inset": inset,
|
|
175
|
+
"data-variant": variant,
|
|
176
|
+
disabled,
|
|
177
|
+
...row,
|
|
178
|
+
pl: inset ? INSET_PL : ROW_PX,
|
|
179
|
+
theme: variant === "destructive" ? "red" : void 0,
|
|
180
|
+
opacity: disabled ? 0.5 : 1,
|
|
181
|
+
cursor: disabled ? "default" : "pointer",
|
|
182
|
+
...props
|
|
183
|
+
}
|
|
184
|
+
);
|
|
185
|
+
});
|
|
186
|
+
var DropdownMenuCheckboxItem = /* @__PURE__ */ React__namespace.forwardRef(function DropdownMenuCheckboxItem2({ children, checked, ...props }, ref) {
|
|
187
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
188
|
+
gui.Menu.CheckboxItem,
|
|
189
|
+
{
|
|
190
|
+
ref,
|
|
191
|
+
"data-slot": "dropdown-menu-checkbox-item",
|
|
192
|
+
checked,
|
|
193
|
+
...row,
|
|
194
|
+
pl: INSET_PL,
|
|
195
|
+
...props,
|
|
196
|
+
children: [
|
|
197
|
+
/* @__PURE__ */ jsxRuntime.jsx(Indicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideIcons2.Check, { size: ICON }) }),
|
|
198
|
+
children
|
|
199
|
+
]
|
|
200
|
+
}
|
|
201
|
+
);
|
|
202
|
+
});
|
|
203
|
+
var DropdownMenuRadioItem = /* @__PURE__ */ React__namespace.forwardRef(function DropdownMenuRadioItem2({ children, ...props }, ref) {
|
|
204
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
205
|
+
gui.Menu.RadioItem,
|
|
206
|
+
{
|
|
207
|
+
ref,
|
|
208
|
+
"data-slot": "dropdown-menu-radio-item",
|
|
209
|
+
...row,
|
|
210
|
+
pl: INSET_PL,
|
|
211
|
+
...props,
|
|
212
|
+
children: [
|
|
213
|
+
/* @__PURE__ */ jsxRuntime.jsx(Indicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideIcons2.Circle, { size: 8, fill: "currentColor" }) }),
|
|
214
|
+
children
|
|
215
|
+
]
|
|
216
|
+
}
|
|
217
|
+
);
|
|
218
|
+
});
|
|
219
|
+
var DropdownMenuSubTrigger = /* @__PURE__ */ React__namespace.forwardRef(function DropdownMenuSubTrigger2({ inset, children, ...props }, ref) {
|
|
220
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
221
|
+
gui.Menu.SubTrigger,
|
|
222
|
+
{
|
|
223
|
+
ref,
|
|
224
|
+
"data-slot": "dropdown-menu-sub-trigger",
|
|
225
|
+
"data-inset": inset,
|
|
226
|
+
...row,
|
|
227
|
+
pl: inset ? INSET_PL : ROW_PX,
|
|
228
|
+
...props,
|
|
229
|
+
children: [
|
|
230
|
+
children,
|
|
231
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideIcons2.ChevronRight, { size: ICON, ml: "auto", opacity: 0.6 })
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
);
|
|
235
|
+
});
|
|
236
|
+
var DropdownMenuLabel = /* @__PURE__ */ React__namespace.forwardRef(function DropdownMenuLabel2({ inset, ...props }, ref) {
|
|
237
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
238
|
+
gui.Menu.Label,
|
|
239
|
+
{
|
|
240
|
+
ref,
|
|
241
|
+
"data-slot": "dropdown-menu-label",
|
|
242
|
+
"data-inset": inset,
|
|
243
|
+
px: ROW_PX,
|
|
244
|
+
py: 4,
|
|
245
|
+
pl: inset ? INSET_PL : ROW_PX,
|
|
246
|
+
fontSize: "$2",
|
|
247
|
+
fontWeight: "500",
|
|
248
|
+
color: "$color12",
|
|
249
|
+
select: "none",
|
|
250
|
+
...props
|
|
251
|
+
}
|
|
252
|
+
);
|
|
253
|
+
});
|
|
254
|
+
var DropdownMenuSeparator = /* @__PURE__ */ React__namespace.forwardRef(function DropdownMenuSeparator2(props, ref) {
|
|
255
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
256
|
+
gui.Menu.Separator,
|
|
257
|
+
{
|
|
258
|
+
ref,
|
|
259
|
+
"data-slot": "dropdown-menu-separator",
|
|
260
|
+
height: 1,
|
|
261
|
+
bg: "$borderColor",
|
|
262
|
+
mx: 4,
|
|
263
|
+
my: 4,
|
|
264
|
+
...props
|
|
265
|
+
}
|
|
266
|
+
);
|
|
267
|
+
});
|
|
268
|
+
function DropdownMenuShortcut(props) {
|
|
269
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
270
|
+
gui.Text,
|
|
271
|
+
{
|
|
272
|
+
"data-slot": "dropdown-menu-shortcut",
|
|
273
|
+
ml: "auto",
|
|
274
|
+
fontSize: "$1",
|
|
275
|
+
letterSpacing: 1,
|
|
276
|
+
color: "$color11",
|
|
277
|
+
...props
|
|
278
|
+
}
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
Object.defineProperty(exports, "useThemeName", {
|
|
283
|
+
enumerable: true,
|
|
284
|
+
get: function () { return gui.useThemeName; }
|
|
285
|
+
});
|
|
286
|
+
exports.DropdownMenu = DropdownMenu;
|
|
287
|
+
exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
|
|
288
|
+
exports.DropdownMenuContent = DropdownMenuContent;
|
|
289
|
+
exports.DropdownMenuGroup = DropdownMenuGroup;
|
|
290
|
+
exports.DropdownMenuItem = DropdownMenuItem;
|
|
291
|
+
exports.DropdownMenuLabel = DropdownMenuLabel;
|
|
292
|
+
exports.DropdownMenuPortal = DropdownMenuPortal;
|
|
293
|
+
exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup;
|
|
294
|
+
exports.DropdownMenuRadioItem = DropdownMenuRadioItem;
|
|
295
|
+
exports.DropdownMenuSeparator = DropdownMenuSeparator;
|
|
296
|
+
exports.DropdownMenuShortcut = DropdownMenuShortcut;
|
|
297
|
+
exports.DropdownMenuSub = DropdownMenuSub;
|
|
298
|
+
exports.DropdownMenuSubContent = DropdownMenuSubContent;
|
|
299
|
+
exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger;
|
|
300
|
+
exports.DropdownMenuTrigger = DropdownMenuTrigger;
|
|
301
|
+
exports.PortalTheme = PortalTheme;
|
|
302
|
+
//# sourceMappingURL=chunk-DC52DQ27.cjs.map
|
|
303
|
+
//# sourceMappingURL=chunk-DC52DQ27.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/product/menu/portal-theme.tsx","../src/backends/gui/dropdown-menu.tsx"],"names":["jsx","Theme","XStack","Menu","React","jsxs","YStack","Text","Check","ChevronRight","DropdownMenuContent","useThemeName","DropdownMenuSubContent","DropdownMenuItem","DropdownMenuCheckboxItem","DropdownMenuRadioItem","Circle","DropdownMenuSubTrigger","DropdownMenuLabel","DropdownMenuSeparator"],"mappings":"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","file":"chunk-DC52DQ27.cjs","sourcesContent":["'use client'\n\n/**\n * PortalTheme — the ONE fix for \"themed content escapes its theme through a portal\".\n *\n * @hanzo/gui's `Popover.Content` and `Portal` render their children in a SEPARATE\n * React subtree (a Gorhom-style portal host mounted at the app root), NOT via\n * `ReactDOM.createPortal`. React context therefore does NOT flow from the trigger's\n * location to the host. Under a nested `<Theme name=\"dark\">` the portaled content\n * lands OUTSIDE that theme context and Tamagui throws \"Missing theme\" (or renders\n * unthemed).\n *\n * The fix is two-part and must stay two-part:\n * 1. At the TRIGGER site (theme context still available) capture the resolved\n * theme name with `useThemeName()`.\n * 2. INSIDE the portaled content re-apply it: `<PortalTheme name={captured}>`.\n *\n * Every portal-backed menu in this package (DropdownMenu, ContextMenu, SelectMenu,\n * ComboBox) uses this so a menu renders identically whether it is opened under the\n * root theme or under any nested `<Theme>`, light or dark.\n */\nimport type { ReactNode } from 'react'\nimport { Theme, useThemeName } from '@hanzo/gui'\n\n/** Capture the current resolved theme name at the trigger site. Re-exported so the\n * capture + re-apply pair reads from one module. */\nexport { useThemeName }\n\nexport function PortalTheme({ name, children }: { name: string; children: ReactNode }) {\n // `name` is the resolved theme name (e.g. \"dark\", or a compound \"dark_purple\").\n // Tamagui's `Theme` accepts the resolved name and reconstructs the context.\n return <Theme name={name as never}>{children}</Theme>\n}\n","\"use client\"\n\n/**\n * DropdownMenu — the ONE compound menu, native to @hanzo/gui.\n *\n * @hanzogui/menu already ships the whole compound surface (Root/Trigger/Portal/\n * Content/Group/Label/Item/CheckboxItem/RadioGroup/RadioItem/ItemIndicator/\n * Separator/Sub/SubTrigger/SubContent) with the a11y, roving focus, popper\n * placement and dismiss behaviour. This file only FLATTENS `Menu.X` into the 15\n * `DropdownMenuX` names and dresses them in the Hanzo tokens, so there is one\n * menu component rather than two shapes of the same idea.\n *\n * Cross-platform: gui style props only — no Tailwind class strings, no Radix, no\n * DOM APIs. Rows are 32px tall (the design density) with a 6px vertical `hitSlop`\n * so the real tap target is 44px on touch hosts.\n *\n * `DropdownMenuContent` mounts its OWN `Menu.Portal`, so callers never wrap it —\n * and re-applies the trigger's resolved theme inside the portal via `PortalTheme`\n * (gui portals re-root the subtree, so React theme context does not flow).\n */\nimport * as React from \"react\"\nimport { Menu, Text, XStack, YStack, type GuiElement } from \"@hanzo/gui\"\nimport { Check, ChevronRight, Circle } from \"@hanzogui/lucide-icons-2\"\n\nimport type { MenuItemSpec } from \"../../product/menu/items\"\nimport { PortalTheme, useThemeName } from \"../../product/menu/portal-theme\"\n\n// ── Geometry — literal px on the 8-grid; 32px row + 6px hitSlop = 44px tap ──────\nconst ROW_H = 32\nconst TAP_MIN = 44\nconst HIT_SLOP = {\n top: (TAP_MIN - ROW_H) / 2,\n bottom: (TAP_MIN - ROW_H) / 2,\n left: 0,\n right: 0,\n}\nconst ROW_PX = 8\nconst INSET_PL = 32\nconst INDICATOR_SLOT = 14\nconst ICON = 16\n\nconst panel = {\n bg: \"$color2\",\n borderColor: \"$borderColor\",\n borderWidth: 1,\n rounded: \"$4\",\n p: 4,\n minW: 128,\n overflow: \"hidden\",\n shadowColor: \"rgba(0,0,0,0.45)\",\n shadowRadius: 20,\n shadowOffset: { width: 0, height: 10 },\n} as const\n\nconst row = {\n items: \"center\",\n gap: ROW_PX,\n px: ROW_PX,\n minH: ROW_H,\n rounded: \"$3\",\n select: \"none\",\n cursor: \"pointer\",\n hitSlop: HIT_SLOP,\n hoverStyle: { bg: \"$color5\" },\n focusStyle: { bg: \"$color5\" },\n pressStyle: { bg: \"$color6\" },\n} as const\n\n/** Left indicator well shared by checkbox + radio rows. */\nconst Indicator = ({ children }: { children: React.ReactNode }) => (\n <XStack\n position=\"absolute\"\n l={ROW_PX}\n width={INDICATOR_SLOT}\n height={INDICATOR_SLOT}\n items=\"center\"\n justify=\"center\"\n pointerEvents=\"none\"\n >\n <Menu.ItemIndicator>{children}</Menu.ItemIndicator>\n </XStack>\n)\n\n// ── Root — owns popper geometry ─────────────────────────────────────────────────\n// gui puts `offset` on the Popper ROOT; the compound API puts `sideOffset` on\n// Content. One value, one owner: the root holds it, Content publishes into it.\nconst OffsetContext = /* @__PURE__ */ React.createContext<\n ((n: number) => void) | null\n>(null)\nconst DEFAULT_OFFSET = 4\n\nexport type DropdownMenuProps = Omit<\n React.ComponentProps<typeof Menu>,\n \"offset\"\n> & {\n offset?: number\n /**\n * Declarative form. Give a `trigger` element and an `items` spec and the menu\n * builds itself out of the very same compound parts a hand-written `children`\n * tree would use — one component, one API, one rendering, whichever form the\n * call site prefers.\n */\n trigger?: React.ReactElement\n items?: MenuItemSpec[]\n minWidth?: number\n maxHeight?: number\n}\n\nfunction DropdownMenu({\n offset = DEFAULT_OFFSET,\n trigger,\n items,\n minWidth,\n maxHeight,\n children,\n ...props\n}: DropdownMenuProps) {\n const [current, setOffset] = React.useState(offset)\n React.useEffect(() => setOffset(offset), [offset])\n return (\n <OffsetContext.Provider value={setOffset}>\n <Menu offset={current} {...props}>\n {trigger ? (\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n ) : null}\n {items ? (\n <DropdownMenuContent minW={minWidth} maxH={maxHeight}>\n {items.map(renderSpec)}\n </DropdownMenuContent>\n ) : null}\n {children}\n </Menu>\n </OffsetContext.Provider>\n )\n}\n\n/** One spec row -> the matching compound part. Never a second row renderer. */\nconst renderSpec = (spec: MenuItemSpec, i: number) => {\n if (spec.type === \"separator\")\n return <DropdownMenuSeparator key={spec.key ?? `sep-${i}`} />\n if (spec.type === \"label\")\n return (\n <DropdownMenuLabel key={spec.key ?? `label-${i}`}>\n {spec.label}\n </DropdownMenuLabel>\n )\n return (\n <DropdownMenuItem\n key={spec.key}\n disabled={spec.disabled}\n variant={spec.destructive ? \"destructive\" : \"default\"}\n onSelect={spec.onSelect}\n >\n {spec.icon ? (\n <XStack\n width={ICON}\n height={ICON}\n items=\"center\"\n justify=\"center\"\n shrink={0}\n >\n {spec.icon}\n </XStack>\n ) : null}\n <YStack flex={1} minW={0}>\n <Text fontSize=\"$2\" color=\"$color12\" numberOfLines={1}>\n {spec.label}\n </Text>\n {spec.description ? (\n <Text fontSize=\"$1\" color=\"$color11\" numberOfLines={1}>\n {spec.description}\n </Text>\n ) : null}\n </YStack>\n {spec.shortcut ? (\n <DropdownMenuShortcut>{spec.shortcut}</DropdownMenuShortcut>\n ) : null}\n {spec.selected ? <Check size={ICON - 2} ml=\"auto\" /> : null}\n {spec.hasSubmenu ? (\n <ChevronRight size={ICON - 2} ml=\"auto\" opacity={0.6} />\n ) : null}\n </DropdownMenuItem>\n )\n}\n\n// ── Passthroughs — the gui part already IS the part ─────────────────────────────\nconst DropdownMenuTrigger: typeof Menu.Trigger = Menu.Trigger\nconst DropdownMenuGroup: typeof Menu.Group = Menu.Group\nconst DropdownMenuPortal: typeof Menu.Portal = Menu.Portal\nconst DropdownMenuSub: typeof Menu.Sub = Menu.Sub\nconst DropdownMenuRadioGroup: typeof Menu.RadioGroup = Menu.RadioGroup\n\n// ── Content — self-portalling, theme-forwarded ──────────────────────────────────\ntype ContentProps = React.ComponentProps<typeof Menu.Content> & {\n sideOffset?: number\n}\n\nconst DropdownMenuContent = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n ContentProps\n>(function DropdownMenuContent(\n { sideOffset = DEFAULT_OFFSET, children, ...props },\n ref\n) {\n const themeName = useThemeName()\n const setOffset = React.useContext(OffsetContext)\n React.useEffect(() => setOffset?.(sideOffset), [setOffset, sideOffset])\n return (\n <Menu.Portal>\n <PortalTheme name={themeName}>\n <Menu.Content\n ref={ref}\n data-slot=\"dropdown-menu-content\"\n {...panel}\n {...props}\n >\n {children}\n </Menu.Content>\n </PortalTheme>\n </Menu.Portal>\n )\n})\n\nconst DropdownMenuSubContent = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.SubContent>\n>(function DropdownMenuSubContent(props, ref) {\n return (\n <Menu.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n {...panel}\n {...props}\n />\n )\n})\n\n// ── Rows ────────────────────────────────────────────────────────────────────────\ntype ItemProps = Omit<React.ComponentProps<typeof Menu.Item>, \"variant\"> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}\n\nconst DropdownMenuItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n ItemProps\n>(function DropdownMenuItem(\n { inset, variant = \"default\", disabled, ...props },\n ref\n) {\n return (\n <Menu.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n disabled={disabled}\n {...row}\n pl={inset ? INSET_PL : ROW_PX}\n theme={variant === \"destructive\" ? \"red\" : undefined}\n opacity={disabled ? 0.5 : 1}\n cursor={disabled ? \"default\" : \"pointer\"}\n {...props}\n />\n )\n})\n\nconst DropdownMenuCheckboxItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.CheckboxItem>\n>(function DropdownMenuCheckboxItem({ children, checked, ...props }, ref) {\n return (\n <Menu.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n checked={checked}\n {...row}\n pl={INSET_PL}\n {...props}\n >\n <Indicator>\n <Check size={ICON} />\n </Indicator>\n {children}\n </Menu.CheckboxItem>\n )\n})\n\nconst DropdownMenuRadioItem = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.RadioItem>\n>(function DropdownMenuRadioItem({ children, ...props }, ref) {\n return (\n <Menu.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n {...row}\n pl={INSET_PL}\n {...props}\n >\n <Indicator>\n <Circle size={8} fill=\"currentColor\" />\n </Indicator>\n {children}\n </Menu.RadioItem>\n )\n})\n\nconst DropdownMenuSubTrigger = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.SubTrigger> & { inset?: boolean }\n>(function DropdownMenuSubTrigger({ inset, children, ...props }, ref) {\n return (\n <Menu.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n {...row}\n pl={inset ? INSET_PL : ROW_PX}\n {...props}\n >\n {children}\n <ChevronRight size={ICON} ml=\"auto\" opacity={0.6} />\n </Menu.SubTrigger>\n )\n})\n\n// ── Static rows ─────────────────────────────────────────────────────────────────\nconst DropdownMenuLabel = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.Label> & { inset?: boolean }\n>(function DropdownMenuLabel({ inset, ...props }, ref) {\n return (\n <Menu.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n px={ROW_PX}\n py={4}\n pl={inset ? INSET_PL : ROW_PX}\n fontSize=\"$2\"\n fontWeight=\"500\"\n color=\"$color12\"\n select=\"none\"\n {...props}\n />\n )\n})\n\nconst DropdownMenuSeparator = /* @__PURE__ */ React.forwardRef<\n GuiElement,\n React.ComponentProps<typeof Menu.Separator>\n>(function DropdownMenuSeparator(props, ref) {\n return (\n <Menu.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n height={1}\n bg=\"$borderColor\"\n mx={4}\n my={4}\n {...props}\n />\n )\n})\n\n/** Right-aligned shortcut hint. gui `Text`, not a raw `<span>`, so it renders on native. */\nfunction DropdownMenuShortcut(props: React.ComponentProps<typeof Text>) {\n return (\n <Text\n data-slot=\"dropdown-menu-shortcut\"\n ml=\"auto\"\n fontSize=\"$1\"\n letterSpacing={1}\n color=\"$color11\"\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n"]}
|
package/dist/chunk-FVQXROBK.js
CHANGED
package/dist/chunk-GVCOAJLO.js
CHANGED
package/dist/chunk-MWBFAV3D.cjs
CHANGED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var chunkDC52DQ27_cjs = require('./chunk-DC52DQ27.cjs');
|
|
5
|
+
var gui = require('@hanzo/gui');
|
|
6
|
+
var lucideIcons2 = require('@hanzogui/lucide-icons-2');
|
|
7
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
|
|
9
|
+
function SelectMenu({
|
|
10
|
+
options,
|
|
11
|
+
value,
|
|
12
|
+
onChange,
|
|
13
|
+
allLabel = "All",
|
|
14
|
+
icon,
|
|
15
|
+
minWidth = 130,
|
|
16
|
+
required,
|
|
17
|
+
minHeight,
|
|
18
|
+
disabled,
|
|
19
|
+
ariaLabel
|
|
20
|
+
}) {
|
|
21
|
+
const active = value === null ? null : options.find((o) => o.key === value) ?? null;
|
|
22
|
+
const triggerLabel = active ? active.label : allLabel;
|
|
23
|
+
const items = [
|
|
24
|
+
...required ? [] : [{ key: "__all__", label: allLabel, selected: value === null, onSelect: () => onChange(null) }],
|
|
25
|
+
...options.map((o) => ({ key: o.key, label: o.label, selected: value === o.key, onSelect: () => onChange(o.key) }))
|
|
26
|
+
];
|
|
27
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
28
|
+
chunkDC52DQ27_cjs.DropdownMenu,
|
|
29
|
+
{
|
|
30
|
+
minWidth: Math.max(minWidth, 160),
|
|
31
|
+
trigger: /* @__PURE__ */ jsxRuntime.jsx(
|
|
32
|
+
gui.Button,
|
|
33
|
+
{
|
|
34
|
+
size: minHeight && minHeight >= 40 ? "$4" : "$2",
|
|
35
|
+
minW: minWidth,
|
|
36
|
+
minH: minHeight,
|
|
37
|
+
disabled,
|
|
38
|
+
"aria-label": ariaLabel,
|
|
39
|
+
justify: "space-between",
|
|
40
|
+
borderWidth: 1,
|
|
41
|
+
borderColor: "$borderColor",
|
|
42
|
+
bg: !required && value !== null ? "$color5" : "transparent",
|
|
43
|
+
icon,
|
|
44
|
+
iconAfter: /* @__PURE__ */ jsxRuntime.jsx(lucideIcons2.ChevronDown, { size: 14, opacity: 0.6 }),
|
|
45
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(gui.Text, { fontSize: "$2", color: "$color12", numberOfLines: 1, flex: 1, children: triggerLabel })
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
items
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
exports.SelectMenu = SelectMenu;
|
|
54
|
+
//# sourceMappingURL=chunk-NQUA5YRQ.cjs.map
|
|
55
|
+
//# sourceMappingURL=chunk-NQUA5YRQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/product/SelectMenu.tsx"],"names":["jsx","DropdownMenu","Button","ChevronDown","Text"],"mappings":";;;;;;;AAwBO,SAAS,UAAA,CAA6B;AAAA,EAC3C,OAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,IAAA;AAAA,EACA,QAAA,GAAW,GAAA;AAAA,EACX,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAgBG;AACD,EAAA,MAAM,MAAA,GAAS,KAAA,KAAU,IAAA,GAAO,IAAA,GAAO,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,GAAA,KAAQ,KAAK,CAAA,IAAK,IAAA;AAC/E,EAAA,MAAM,YAAA,GAAe,MAAA,GAAS,MAAA,CAAO,KAAA,GAAQ,QAAA;AAE7C,EAAA,MAAM,KAAA,GAAwB;AAAA,IAC5B,GAAI,QAAA,GACA,KACA,CAAC,EAAE,KAAK,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,UAAU,IAAA,EAAM,QAAA,EAAU,MAAM,QAAA,CAAS,IAAI,GAAG,CAAA;AAAA,IAClG,GAAG,QAAQ,GAAA,CAAI,CAAC,OAAO,EAAE,GAAA,EAAK,CAAA,CAAE,GAAA,EAAK,KAAA,EAAO,CAAA,CAAE,OAAO,QAAA,EAAU,KAAA,KAAU,EAAE,GAAA,EAAK,QAAA,EAAU,MAAM,QAAA,CAAS,CAAA,CAAE,GAAG,CAAA,EAAE,CAAE;AAAA,GACpH;AAEA,EAAA,uBACEA,cAAA;AAAA,IAACC,8BAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,QAAA,EAAU,GAAG,CAAA;AAAA,MAChC,OAAA,kBACED,cAAA;AAAA,QAACE,UAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,SAAA,IAAa,SAAA,IAAa,EAAA,GAAK,IAAA,GAAO,IAAA;AAAA,UAC5C,IAAA,EAAM,QAAA;AAAA,UACN,IAAA,EAAM,SAAA;AAAA,UACN,QAAA;AAAA,UACA,YAAA,EAAY,SAAA;AAAA,UACZ,OAAA,EAAQ,eAAA;AAAA,UACR,WAAA,EAAa,CAAA;AAAA,UACb,WAAA,EAAY,cAAA;AAAA,UACZ,EAAA,EAAI,CAAC,QAAA,IAAY,KAAA,KAAU,OAAO,SAAA,GAAY,aAAA;AAAA,UAC9C,IAAA;AAAA,UACA,2BAAWF,cAAA,CAACG,wBAAA,EAAA,EAAY,IAAA,EAAM,EAAA,EAAI,SAAS,GAAA,EAAK,CAAA;AAAA,UAEhD,QAAA,kBAAAH,cAAA,CAACI,QAAA,EAAA,EAAK,QAAA,EAAS,IAAA,EAAK,KAAA,EAAM,YAAW,aAAA,EAAe,CAAA,EAAG,IAAA,EAAM,CAAA,EAC1D,QAAA,EAAA,YAAA,EACH;AAAA;AAAA,OACF;AAAA,MAEF;AAAA;AAAA,GACF;AAEJ","file":"chunk-NQUA5YRQ.cjs","sourcesContent":["'use client'\n\n/**\n * SelectMenu — a compact, reusable dropdown select. Renders a labelled trigger (\"All\n * types\", or the chosen option) and a menu list with a check on the active option.\n * Prop-driven + self-contained. `value === null` is the \"all\"/unfiltered state.\n *\n * `required` turns the same control into a \"pick exactly one of N\": the null row is\n * dropped and the value is never nullable. That is the SAME control, not a second\n * one — a required field picker and a filter differ only in whether \"none\" is an\n * option, so it stays one component rather than growing a fourth select.\n *\n * A thin DropdownMenu (the ONE menu mechanism) so it is pixel-identical to every other\n * menu and rides the same portal-theme-safe Portal path — no gui Popover, no Sheet\n * re-root, works on gui-native hosts.\n */\nimport type { ReactElement } from 'react'\nimport { Button, Text } from '@hanzo/gui'\nimport { ChevronDown } from '@hanzogui/lucide-icons-2'\nimport { DropdownMenu } from '../backends/gui/dropdown-menu'\nimport type { MenuItemSpec } from './menu/items'\n\nexport type SelectOption<T extends string> = { key: T; label: string }\n\nexport function SelectMenu<T extends string>({\n options,\n value,\n onChange,\n allLabel = 'All',\n icon,\n minWidth = 130,\n required,\n minHeight,\n disabled,\n ariaLabel,\n}: {\n options: SelectOption<T>[]\n value: T | null\n onChange: (v: T | null) => void\n /** Label shown (and first menu row) for the unfiltered `null` state. */\n allLabel?: string\n /** Optional leading icon in the trigger. */\n icon?: ReactElement\n minWidth?: number\n /** Exactly one of `options` is always chosen — no \"all\"/none row. */\n required?: boolean\n /** Trigger height floor — pass the 44px tap floor on a phone. */\n minHeight?: number\n disabled?: boolean\n /** Accessible name for an unlabelled trigger. */\n ariaLabel?: string\n}) {\n const active = value === null ? null : options.find((o) => o.key === value) ?? null\n const triggerLabel = active ? active.label : allLabel\n\n const items: MenuItemSpec[] = [\n ...(required\n ? []\n : [{ key: '__all__', label: allLabel, selected: value === null, onSelect: () => onChange(null) }]),\n ...options.map((o) => ({ key: o.key, label: o.label, selected: value === o.key, onSelect: () => onChange(o.key) })),\n ]\n\n return (\n <DropdownMenu\n minWidth={Math.max(minWidth, 160)}\n trigger={\n <Button\n size={minHeight && minHeight >= 40 ? '$4' : '$2'}\n minW={minWidth}\n minH={minHeight}\n disabled={disabled}\n aria-label={ariaLabel}\n justify=\"space-between\"\n borderWidth={1}\n borderColor=\"$borderColor\"\n bg={!required && value !== null ? '$color5' : 'transparent'}\n icon={icon}\n iconAfter={<ChevronDown size={14} opacity={0.6} />}\n >\n <Text fontSize=\"$2\" color=\"$color12\" numberOfLines={1} flex={1}>\n {triggerLabel}\n </Text>\n </Button>\n }\n items={items}\n />\n )\n}\n"]}
|
package/dist/chunk-ONVERVFG.cjs
CHANGED
package/dist/chunk-P2QU5MN5.js
CHANGED