fancy-ui-react 0.2.0
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/LICENSE +21 -0
- package/PORTING.md +118 -0
- package/README.md +643 -0
- package/dist/cameleon/FancyProvider.d.ts +11 -0
- package/dist/cameleon/FancyProvider.js +42 -0
- package/dist/cameleon/context.d.ts +22 -0
- package/dist/cameleon/context.js +16 -0
- package/dist/cameleon/index.d.ts +31 -0
- package/dist/cameleon/index.js +39 -0
- package/dist/cameleon/primitives/Badge.d.ts +10 -0
- package/dist/cameleon/primitives/Badge.js +12 -0
- package/dist/cameleon/primitives/Button.d.ts +11 -0
- package/dist/cameleon/primitives/Button.js +43 -0
- package/dist/cameleon/primitives/Checkbox.d.ts +10 -0
- package/dist/cameleon/primitives/Checkbox.js +39 -0
- package/dist/cameleon/primitives/Input.d.ts +10 -0
- package/dist/cameleon/primitives/Input.js +13 -0
- package/dist/cameleon/primitives/Radio.d.ts +12 -0
- package/dist/cameleon/primitives/Radio.js +29 -0
- package/dist/cameleon/primitives/Select.d.ts +10 -0
- package/dist/cameleon/primitives/Select.js +27 -0
- package/dist/cameleon/primitives/Slider.d.ts +7 -0
- package/dist/cameleon/primitives/Slider.js +22 -0
- package/dist/cameleon/primitives/Switch.d.ts +9 -0
- package/dist/cameleon/primitives/Switch.js +33 -0
- package/dist/cameleon/primitives/Textarea.d.ts +9 -0
- package/dist/cameleon/primitives/Textarea.js +13 -0
- package/dist/cameleon/primitives/Tooltip.d.ts +14 -0
- package/dist/cameleon/primitives/Tooltip.js +15 -0
- package/dist/cameleon/primitives/index.d.ts +10 -0
- package/dist/cameleon/skins/aurora/index.d.ts +2 -0
- package/dist/cameleon/skins/aurora/index.js +16 -0
- package/dist/cameleon/skins/aurora/meta.d.ts +3 -0
- package/dist/cameleon/skins/aurora/meta.js +61 -0
- package/dist/cameleon/skins/aurora/recipes.d.ts +24 -0
- package/dist/cameleon/skins/aurora/recipes.js +124 -0
- package/dist/cameleon/skins/aurora/tokens.d.ts +6 -0
- package/dist/cameleon/skins/aurora/tokens.js +18 -0
- package/dist/cameleon/skins/brutal/index.d.ts +2 -0
- package/dist/cameleon/skins/brutal/index.js +35 -0
- package/dist/cameleon/skins/brutal/meta.d.ts +3 -0
- package/dist/cameleon/skins/brutal/meta.js +73 -0
- package/dist/cameleon/skins/brutal/ornaments.d.ts +7 -0
- package/dist/cameleon/skins/brutal/ornaments.js +18 -0
- package/dist/cameleon/skins/brutal/recipes.d.ts +23 -0
- package/dist/cameleon/skins/brutal/recipes.js +113 -0
- package/dist/cameleon/skins/brutal/tokens.d.ts +8 -0
- package/dist/cameleon/skins/brutal/tokens.js +23 -0
- package/dist/cameleon/skins/default.d.ts +2 -0
- package/dist/cameleon/skins/default.js +79 -0
- package/dist/cameleon/skins/glass/index.d.ts +2 -0
- package/dist/cameleon/skins/glass/index.js +16 -0
- package/dist/cameleon/skins/glass/meta.d.ts +3 -0
- package/dist/cameleon/skins/glass/meta.js +63 -0
- package/dist/cameleon/skins/glass/recipes.d.ts +24 -0
- package/dist/cameleon/skins/glass/recipes.js +124 -0
- package/dist/cameleon/skins/glass/tokens.d.ts +5 -0
- package/dist/cameleon/skins/glass/tokens.js +18 -0
- package/dist/cameleon/skins/retro-os/index.d.ts +2 -0
- package/dist/cameleon/skins/retro-os/index.js +24 -0
- package/dist/cameleon/skins/retro-os/meta.d.ts +3 -0
- package/dist/cameleon/skins/retro-os/meta.js +61 -0
- package/dist/cameleon/skins/retro-os/ornaments.d.ts +9 -0
- package/dist/cameleon/skins/retro-os/ornaments.js +28 -0
- package/dist/cameleon/skins/retro-os/recipes.d.ts +35 -0
- package/dist/cameleon/skins/retro-os/recipes.js +126 -0
- package/dist/cameleon/skins/retro-os/tokens.d.ts +16 -0
- package/dist/cameleon/skins/retro-os/tokens.js +23 -0
- package/dist/cameleon/skins/terminal/index.d.ts +2 -0
- package/dist/cameleon/skins/terminal/index.js +24 -0
- package/dist/cameleon/skins/terminal/meta.d.ts +3 -0
- package/dist/cameleon/skins/terminal/meta.js +70 -0
- package/dist/cameleon/skins/terminal/ornaments.d.ts +7 -0
- package/dist/cameleon/skins/terminal/ornaments.js +8 -0
- package/dist/cameleon/skins/terminal/recipes.d.ts +25 -0
- package/dist/cameleon/skins/terminal/recipes.js +125 -0
- package/dist/cameleon/skins/terminal/tokens.d.ts +5 -0
- package/dist/cameleon/skins/terminal/tokens.js +18 -0
- package/dist/cameleon/types.d.ts +133 -0
- package/dist/components/agent-plan/AgentPlan.d.ts +25 -0
- package/dist/components/agent-plan/AgentPlan.js +181 -0
- package/dist/components/agent-plan/index.d.ts +2 -0
- package/dist/components/ai-data-table/AiDataTable.d.ts +54 -0
- package/dist/components/ai-data-table/AiDataTable.js +110 -0
- package/dist/components/ai-data-table/index.d.ts +2 -0
- package/dist/components/alert-dialog/AlertDialog.d.ts +35 -0
- package/dist/components/alert-dialog/AlertDialog.js +109 -0
- package/dist/components/alert-dialog/index.d.ts +2 -0
- package/dist/components/animated-beam/AnimatedBeam.d.ts +39 -0
- package/dist/components/animated-beam/AnimatedBeam.js +192 -0
- package/dist/components/animated-beam/index.d.ts +2 -0
- package/dist/components/animated-testimonials/AnimatedTestimonials.d.ts +32 -0
- package/dist/components/animated-testimonials/AnimatedTestimonials.js +172 -0
- package/dist/components/animated-testimonials/index.d.ts +2 -0
- package/dist/components/animated-tooltip/AnimatedTooltip.d.ts +13 -0
- package/dist/components/animated-tooltip/AnimatedTooltip.js +137 -0
- package/dist/components/animated-tooltip/index.d.ts +2 -0
- package/dist/components/apple-card-carousel/AppleCard.d.ts +30 -0
- package/dist/components/apple-card-carousel/AppleCard.js +219 -0
- package/dist/components/apple-card-carousel/AppleCardCarousel.d.ts +14 -0
- package/dist/components/apple-card-carousel/AppleCardCarousel.js +30 -0
- package/dist/components/apple-card-carousel/index.d.ts +4 -0
- package/dist/components/approval-card/ApprovalCard.d.ts +57 -0
- package/dist/components/approval-card/ApprovalCard.js +153 -0
- package/dist/components/approval-card/index.d.ts +2 -0
- package/dist/components/artifact-card/ArtifactCard.d.ts +44 -0
- package/dist/components/artifact-card/ArtifactCard.js +204 -0
- package/dist/components/artifact-card/index.d.ts +2 -0
- package/dist/components/autocomplete/Autocomplete.d.ts +36 -0
- package/dist/components/autocomplete/Autocomplete.js +186 -0
- package/dist/components/autocomplete/AutocompletePanel.d.ts +12 -0
- package/dist/components/autocomplete/AutocompletePanel.js +123 -0
- package/dist/components/autocomplete/index.d.ts +4 -0
- package/dist/components/autocomplete/match.d.ts +6 -0
- package/dist/components/autocomplete/match.js +10 -0
- package/dist/components/autocomplete/types.d.ts +52 -0
- package/dist/components/autocomplete/types.js +6 -0
- package/dist/components/bento-grid/BentoGrid.d.ts +6 -0
- package/dist/components/bento-grid/BentoGrid.js +19 -0
- package/dist/components/bento-grid/BentoGridCard.d.ts +11 -0
- package/dist/components/bento-grid/BentoGridCard.js +49 -0
- package/dist/components/bento-grid/BentoGridItem.d.ts +9 -0
- package/dist/components/bento-grid/BentoGridItem.js +33 -0
- package/dist/components/bento-grid/index.d.ts +6 -0
- package/dist/components/bg-falling-stars/FallingStarsBg.d.ts +24 -0
- package/dist/components/bg-falling-stars/FallingStarsBg.js +134 -0
- package/dist/components/bg-falling-stars/index.d.ts +2 -0
- package/dist/components/bg-stars/StarsBackground.d.ts +40 -0
- package/dist/components/bg-stars/StarsBackground.js +188 -0
- package/dist/components/bg-stars/index.d.ts +2 -0
- package/dist/components/blur-reveal/BlurReveal.d.ts +19 -0
- package/dist/components/blur-reveal/BlurReveal.js +50 -0
- package/dist/components/blur-reveal/index.d.ts +2 -0
- package/dist/components/book/Book.d.ts +13 -0
- package/dist/components/book/Book.js +94 -0
- package/dist/components/book/BookDescription.d.ts +6 -0
- package/dist/components/book/BookDescription.js +9 -0
- package/dist/components/book/BookHeader.d.ts +6 -0
- package/dist/components/book/BookHeader.js +9 -0
- package/dist/components/book/BookTitle.d.ts +6 -0
- package/dist/components/book/BookTitle.js +9 -0
- package/dist/components/book/index.d.ts +132 -0
- package/dist/components/book/index.js +48 -0
- package/dist/components/border-beam/BorderBeam.d.ts +25 -0
- package/dist/components/border-beam/BorderBeam.js +45 -0
- package/dist/components/border-beam/index.d.ts +2 -0
- package/dist/components/box-reveal/BoxReveal.d.ts +20 -0
- package/dist/components/box-reveal/BoxReveal.js +58 -0
- package/dist/components/box-reveal/index.d.ts +2 -0
- package/dist/components/breadcrumb/Breadcrumb.d.ts +49 -0
- package/dist/components/breadcrumb/Breadcrumb.js +61 -0
- package/dist/components/breadcrumb/index.d.ts +2 -0
- package/dist/components/button/Button.d.ts +44 -0
- package/dist/components/button/Button.js +120 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/button/types.d.ts +4 -0
- package/dist/components/button-group/ButtonGroup.d.ts +23 -0
- package/dist/components/button-group/ButtonGroup.js +30 -0
- package/dist/components/button-group/index.d.ts +4 -0
- package/dist/components/button-group/types.d.ts +34 -0
- package/dist/components/button-group/types.js +7 -0
- package/dist/components/card-3d/CardBody.d.ts +8 -0
- package/dist/components/card-3d/CardBody.js +9 -0
- package/dist/components/card-3d/CardContainer.d.ts +19 -0
- package/dist/components/card-3d/CardContainer.js +61 -0
- package/dist/components/card-3d/CardItem.d.ts +22 -0
- package/dist/components/card-3d/CardItem.js +29 -0
- package/dist/components/card-3d/index.d.ts +6 -0
- package/dist/components/card-spotlight/CardSpotlight.d.ts +16 -0
- package/dist/components/card-spotlight/CardSpotlight.js +65 -0
- package/dist/components/card-spotlight/index.d.ts +2 -0
- package/dist/components/chat-error/ChatError.d.ts +32 -0
- package/dist/components/chat-error/ChatError.js +75 -0
- package/dist/components/chat-error/index.d.ts +2 -0
- package/dist/components/chat-message/ChatMessage.d.ts +43 -0
- package/dist/components/chat-message/ChatMessage.js +127 -0
- package/dist/components/chat-message/ChatMessageAction.d.ts +20 -0
- package/dist/components/chat-message/ChatMessageAction.js +58 -0
- package/dist/components/chat-message/ChatMessageActions.d.ts +14 -0
- package/dist/components/chat-message/ChatMessageActions.js +30 -0
- package/dist/components/chat-message/ChatMessageBranches.d.ts +15 -0
- package/dist/components/chat-message/ChatMessageBranches.js +93 -0
- package/dist/components/chat-message/index.d.ts +10 -0
- package/dist/components/chat-message/types.d.ts +38 -0
- package/dist/components/chat-message/types.js +7 -0
- package/dist/components/chat-panel/ChatEmptyState.d.ts +17 -0
- package/dist/components/chat-panel/ChatEmptyState.js +42 -0
- package/dist/components/chat-panel/ChatPanel.d.ts +31 -0
- package/dist/components/chat-panel/ChatPanel.js +163 -0
- package/dist/components/chat-panel/index.d.ts +4 -0
- package/dist/components/checkbox/Checkbox.d.ts +64 -0
- package/dist/components/checkbox/Checkbox.js +123 -0
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/code-diff/CodeDiff.d.ts +39 -0
- package/dist/components/code-diff/CodeDiff.js +213 -0
- package/dist/components/code-diff/index.d.ts +2 -0
- package/dist/components/colourful-text/ColourfulText.d.ts +28 -0
- package/dist/components/colourful-text/ColourfulText.js +73 -0
- package/dist/components/colourful-text/index.d.ts +2 -0
- package/dist/components/combobox/Combobox.d.ts +53 -0
- package/dist/components/combobox/Combobox.js +248 -0
- package/dist/components/combobox/ComboboxPanel.d.ts +28 -0
- package/dist/components/combobox/ComboboxPanel.js +110 -0
- package/dist/components/combobox/index.d.ts +4 -0
- package/dist/components/combobox/match.d.ts +15 -0
- package/dist/components/combobox/match.js +14 -0
- package/dist/components/combobox/types.d.ts +60 -0
- package/dist/components/combobox/types.js +6 -0
- package/dist/components/command-menu/CommandMenu.d.ts +37 -0
- package/dist/components/command-menu/CommandMenu.js +386 -0
- package/dist/components/command-menu/index.d.ts +3 -0
- package/dist/components/command-menu/match.d.ts +19 -0
- package/dist/components/command-menu/match.js +45 -0
- package/dist/components/command-menu/types.d.ts +19 -0
- package/dist/components/compare/Compare.d.ts +31 -0
- package/dist/components/compare/Compare.js +300 -0
- package/dist/components/compare/StarField.d.ts +22 -0
- package/dist/components/compare/StarField.js +66 -0
- package/dist/components/compare/index.d.ts +4 -0
- package/dist/components/composer/Composer.d.ts +56 -0
- package/dist/components/composer/Composer.js +155 -0
- package/dist/components/composer/ComposerAttachment.d.ts +14 -0
- package/dist/components/composer/ComposerAttachment.js +127 -0
- package/dist/components/composer/ComposerAttachments.d.ts +18 -0
- package/dist/components/composer/ComposerAttachments.js +85 -0
- package/dist/components/composer/ComposerCommandMenu.d.ts +37 -0
- package/dist/components/composer/ComposerCommandMenu.js +208 -0
- package/dist/components/composer/ComposerInput.d.ts +22 -0
- package/dist/components/composer/ComposerInput.js +96 -0
- package/dist/components/composer/ComposerModelPicker.d.ts +32 -0
- package/dist/components/composer/ComposerModelPicker.js +223 -0
- package/dist/components/composer/ComposerSubmit.d.ts +16 -0
- package/dist/components/composer/ComposerSubmit.js +52 -0
- package/dist/components/composer/ComposerToolbar.d.ts +38 -0
- package/dist/components/composer/ComposerToolbar.js +9 -0
- package/dist/components/composer/caret.d.ts +69 -0
- package/dist/components/composer/caret.js +112 -0
- package/dist/components/composer/index.d.ts +18 -0
- package/dist/components/composer/types.d.ts +86 -0
- package/dist/components/composer/types.js +7 -0
- package/dist/components/confetti/Confetti.d.ts +37 -0
- package/dist/components/confetti/Confetti.js +45 -0
- package/dist/components/confetti/ConfettiButton.d.ts +23 -0
- package/dist/components/confetti/ConfettiButton.js +29 -0
- package/dist/components/confetti/context.d.ts +21 -0
- package/dist/components/confetti/context.js +6 -0
- package/dist/components/confetti/index.d.ts +4 -0
- package/dist/components/container-scroll/ContainerScroll.d.ts +10 -0
- package/dist/components/container-scroll/ContainerScroll.js +74 -0
- package/dist/components/container-scroll/index.d.ts +2 -0
- package/dist/components/container-text-flip/ContainerTextFlip.d.ts +9 -0
- package/dist/components/container-text-flip/ContainerTextFlip.js +58 -0
- package/dist/components/container-text-flip/index.d.ts +2 -0
- package/dist/components/context-menu/ContextMenu.d.ts +39 -0
- package/dist/components/context-menu/ContextMenu.js +105 -0
- package/dist/components/context-menu/ContextMenuContent.d.ts +27 -0
- package/dist/components/context-menu/ContextMenuContent.js +97 -0
- package/dist/components/context-menu/ContextMenuTrigger.d.ts +26 -0
- package/dist/components/context-menu/ContextMenuTrigger.js +37 -0
- package/dist/components/context-menu/index.d.ts +20 -0
- package/dist/components/context-menu/types.d.ts +52 -0
- package/dist/components/context-menu/types.js +17 -0
- package/dist/components/context-ring/ContextRing.d.ts +33 -0
- package/dist/components/context-ring/ContextRing.js +257 -0
- package/dist/components/context-ring/index.d.ts +2 -0
- package/dist/components/copy-button/CopyButton.d.ts +39 -0
- package/dist/components/copy-button/CopyButton.js +124 -0
- package/dist/components/copy-button/index.d.ts +2 -0
- package/dist/components/date-picker/DatePicker.d.ts +58 -0
- package/dist/components/date-picker/DatePicker.js +331 -0
- package/dist/components/date-picker/date-utils.d.ts +39 -0
- package/dist/components/date-picker/date-utils.js +85 -0
- package/dist/components/date-picker/index.d.ts +2 -0
- package/dist/components/dialog/Dialog.d.ts +29 -0
- package/dist/components/dialog/Dialog.js +105 -0
- package/dist/components/dialog/DialogSurface.d.ts +2 -0
- package/dist/components/dialog/DialogSurface.js +98 -0
- package/dist/components/dialog/index.d.ts +2 -0
- package/dist/components/dialog/types.d.ts +61 -0
- package/dist/components/dim-siblings/DimSiblings.d.ts +30 -0
- package/dist/components/dim-siblings/DimSiblings.js +47 -0
- package/dist/components/dim-siblings/index.d.ts +2 -0
- package/dist/components/direction-aware-hover/DirectionAwareHover.d.ts +10 -0
- package/dist/components/direction-aware-hover/DirectionAwareHover.js +185 -0
- package/dist/components/direction-aware-hover/index.d.ts +2 -0
- package/dist/components/displacement-text/DisplacementText.d.ts +26 -0
- package/dist/components/displacement-text/DisplacementText.js +185 -0
- package/dist/components/displacement-text/index.d.ts +2 -0
- package/dist/components/dock/Dock.d.ts +28 -0
- package/dist/components/dock/Dock.js +80 -0
- package/dist/components/dock/DockIcon.d.ts +17 -0
- package/dist/components/dock/DockIcon.js +38 -0
- package/dist/components/dock/DockSeparator.d.ts +6 -0
- package/dist/components/dock/DockSeparator.js +20 -0
- package/dist/components/dock/index.d.ts +7 -0
- package/dist/components/dock/types.d.ts +47 -0
- package/dist/components/dock/types.js +15 -0
- package/dist/components/drawer/Drawer.d.ts +34 -0
- package/dist/components/drawer/Drawer.js +237 -0
- package/dist/components/drawer/index.d.ts +2 -0
- package/dist/components/dropdown-menu/DropdownMenu.d.ts +38 -0
- package/dist/components/dropdown-menu/DropdownMenu.js +99 -0
- package/dist/components/dropdown-menu/DropdownMenuContent.d.ts +15 -0
- package/dist/components/dropdown-menu/DropdownMenuContent.js +111 -0
- package/dist/components/dropdown-menu/DropdownMenuItem.d.ts +26 -0
- package/dist/components/dropdown-menu/DropdownMenuItem.js +74 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel.d.ts +15 -0
- package/dist/components/dropdown-menu/DropdownMenuLabel.js +18 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator.d.ts +6 -0
- package/dist/components/dropdown-menu/DropdownMenuSeparator.js +15 -0
- package/dist/components/dropdown-menu/DropdownMenuSub.d.ts +10 -0
- package/dist/components/dropdown-menu/DropdownMenuSub.js +110 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent.d.ts +15 -0
- package/dist/components/dropdown-menu/DropdownMenuSubContent.js +139 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger.d.ts +17 -0
- package/dist/components/dropdown-menu/DropdownMenuSubTrigger.js +104 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger.d.ts +16 -0
- package/dist/components/dropdown-menu/DropdownMenuTrigger.js +67 -0
- package/dist/components/dropdown-menu/index.d.ts +20 -0
- package/dist/components/dropdown-menu/menu-shared.d.ts +39 -0
- package/dist/components/dropdown-menu/menu-shared.js +48 -0
- package/dist/components/dropdown-menu/types.d.ts +159 -0
- package/dist/components/dropdown-menu/types.js +32 -0
- package/dist/components/editorial-engine/EditorialEngine.d.ts +21 -0
- package/dist/components/editorial-engine/EditorialEngine.js +68 -0
- package/dist/components/editorial-engine/engine.d.ts +7 -0
- package/dist/components/editorial-engine/engine.js +558 -0
- package/dist/components/editorial-engine/index.d.ts +2 -0
- package/dist/components/file-upload/FileUpload.d.ts +63 -0
- package/dist/components/file-upload/FileUpload.js +438 -0
- package/dist/components/file-upload/index.d.ts +2 -0
- package/dist/components/fireworks-hdr/FireworksHdr.d.ts +56 -0
- package/dist/components/fireworks-hdr/FireworksHdr.js +426 -0
- package/dist/components/fireworks-hdr/dev.d.ts +1 -0
- package/dist/components/fireworks-hdr/dev.js +8 -0
- package/dist/components/fireworks-hdr/fireworks-shared.d.ts +444 -0
- package/dist/components/fireworks-hdr/fireworks-shared.js +1205 -0
- package/dist/components/fireworks-hdr/index.d.ts +4 -0
- package/dist/components/fireworks-hdr/webgl2-renderer.d.ts +20 -0
- package/dist/components/fireworks-hdr/webgl2-renderer.js +517 -0
- package/dist/components/fireworks-hdr/webgpu-renderer.d.ts +51 -0
- package/dist/components/fireworks-hdr/webgpu-renderer.js +461 -0
- package/dist/components/fireworks-hdr/webgpu-types.d.ts +159 -0
- package/dist/components/flickering-grid/FlickeringGrid.d.ts +33 -0
- package/dist/components/flickering-grid/FlickeringGrid.js +154 -0
- package/dist/components/flickering-grid/index.d.ts +2 -0
- package/dist/components/flip-card/FlipCard.d.ts +8 -0
- package/dist/components/flip-card/FlipCard.js +35 -0
- package/dist/components/flip-card/index.d.ts +2 -0
- package/dist/components/flip-words/FlipWords.d.ts +16 -0
- package/dist/components/flip-words/FlipWords.js +82 -0
- package/dist/components/flip-words/index.d.ts +2 -0
- package/dist/components/fluid-cursor/FluidCursor.d.ts +61 -0
- package/dist/components/fluid-cursor/FluidCursor.js +1479 -0
- package/dist/components/fluid-cursor/fluid-shared.d.ts +74 -0
- package/dist/components/fluid-cursor/fluid-shared.js +120 -0
- package/dist/components/fluid-cursor/index.d.ts +8 -0
- package/dist/components/fluid-cursor/webgpu-engine.d.ts +36 -0
- package/dist/components/fluid-cursor/webgpu-engine.js +922 -0
- package/dist/components/focus/Focus.d.ts +24 -0
- package/dist/components/focus/Focus.js +103 -0
- package/dist/components/focus/index.d.ts +2 -0
- package/dist/components/form-field/FormField.d.ts +46 -0
- package/dist/components/form-field/FormField.js +151 -0
- package/dist/components/form-field/index.d.ts +2 -0
- package/dist/components/frosted-glass/FrostedGlass.d.ts +48 -0
- package/dist/components/frosted-glass/FrostedGlass.js +89 -0
- package/dist/components/frosted-glass/index.d.ts +2 -0
- package/dist/components/glare-card/GlareCard.d.ts +8 -0
- package/dist/components/glare-card/GlareCard.js +103 -0
- package/dist/components/glare-card/index.d.ts +2 -0
- package/dist/components/glow-border/GlowBorder.d.ts +8 -0
- package/dist/components/glow-border/GlowBorder.js +39 -0
- package/dist/components/glow-border/index.d.ts +2 -0
- package/dist/components/glowing-effect/GlowingEffect.d.ts +23 -0
- package/dist/components/glowing-effect/GlowingEffect.js +157 -0
- package/dist/components/glowing-effect/index.d.ts +2 -0
- package/dist/components/gradient-button/GradientButton.d.ts +28 -0
- package/dist/components/gradient-button/GradientButton.js +66 -0
- package/dist/components/gradient-button/index.d.ts +2 -0
- package/dist/components/hover-card/HoverCard.d.ts +57 -0
- package/dist/components/hover-card/HoverCard.js +139 -0
- package/dist/components/hover-card/index.d.ts +2 -0
- package/dist/components/hyper-text/HyperText.d.ts +25 -0
- package/dist/components/hyper-text/HyperText.js +102 -0
- package/dist/components/hyper-text/index.d.ts +2 -0
- package/dist/components/icon-button/IconButton.d.ts +46 -0
- package/dist/components/icon-button/IconButton.js +62 -0
- package/dist/components/icon-button/index.d.ts +2 -0
- package/dist/components/image-generation/ImageGeneration.d.ts +33 -0
- package/dist/components/image-generation/ImageGeneration.js +131 -0
- package/dist/components/image-generation/index.d.ts +2 -0
- package/dist/components/image-trail-cursor/ImageTrailCursor.d.ts +15 -0
- package/dist/components/image-trail-cursor/ImageTrailCursor.js +75 -0
- package/dist/components/image-trail-cursor/index.d.ts +3 -0
- package/dist/components/image-trail-cursor/trail-variants.d.ts +112 -0
- package/dist/components/image-trail-cursor/trail-variants.js +787 -0
- package/dist/components/inline-citation/InlineCitation.d.ts +23 -0
- package/dist/components/inline-citation/InlineCitation.js +179 -0
- package/dist/components/inline-citation/index.d.ts +2 -0
- package/dist/components/input/Input.d.ts +41 -0
- package/dist/components/input/Input.js +74 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/interactive-grid-pattern/InteractiveGridPattern.d.ts +17 -0
- package/dist/components/interactive-grid-pattern/InteractiveGridPattern.js +89 -0
- package/dist/components/interactive-grid-pattern/index.d.ts +2 -0
- package/dist/components/interactive-hover-button/InteractiveHoverButton.d.ts +18 -0
- package/dist/components/interactive-hover-button/InteractiveHoverButton.js +66 -0
- package/dist/components/interactive-hover-button/index.d.ts +2 -0
- package/dist/components/label/Label.d.ts +18 -0
- package/dist/components/label/Label.js +28 -0
- package/dist/components/label/index.d.ts +2 -0
- package/dist/components/letter-pullup/LetterPullup.d.ts +16 -0
- package/dist/components/letter-pullup/LetterPullup.js +27 -0
- package/dist/components/letter-pullup/index.d.ts +2 -0
- package/dist/components/line-hover-link/LineHoverLink.d.ts +33 -0
- package/dist/components/line-hover-link/LineHoverLink.js +69 -0
- package/dist/components/line-hover-link/index.d.ts +2 -0
- package/dist/components/line-reveal/LineReveal.d.ts +31 -0
- package/dist/components/line-reveal/LineReveal.js +117 -0
- package/dist/components/line-reveal/index.d.ts +2 -0
- package/dist/components/line-shadow-text/LineShadowText.d.ts +18 -0
- package/dist/components/line-shadow-text/LineShadowText.js +26 -0
- package/dist/components/line-shadow-text/index.d.ts +2 -0
- package/dist/components/link/Link.d.ts +30 -0
- package/dist/components/link/Link.js +82 -0
- package/dist/components/link/index.d.ts +2 -0
- package/dist/components/liquid-glass/LiquidGlass.d.ts +49 -0
- package/dist/components/liquid-glass/LiquidGlass.js +165 -0
- package/dist/components/liquid-glass/index.d.ts +2 -0
- package/dist/components/liquid-text/LiquidText.d.ts +35 -0
- package/dist/components/liquid-text/LiquidText.js +882 -0
- package/dist/components/liquid-text/index.d.ts +2 -0
- package/dist/components/logo-cloud/AnimatedLogoCloud.d.ts +13 -0
- package/dist/components/logo-cloud/AnimatedLogoCloud.js +38 -0
- package/dist/components/logo-cloud/IconLogoCloud.d.ts +10 -0
- package/dist/components/logo-cloud/IconLogoCloud.js +20 -0
- package/dist/components/logo-cloud/StaticLogoCloud.d.ts +28 -0
- package/dist/components/logo-cloud/StaticLogoCloud.js +45 -0
- package/dist/components/logo-cloud/index.d.ts +6 -0
- package/dist/components/magnetic/Magnetic.d.ts +35 -0
- package/dist/components/magnetic/Magnetic.js +113 -0
- package/dist/components/magnetic/index.d.ts +2 -0
- package/dist/components/marquee/Marquee.d.ts +16 -0
- package/dist/components/marquee/Marquee.js +39 -0
- package/dist/components/marquee/ReviewCard.d.ts +8 -0
- package/dist/components/marquee/ReviewCard.js +17 -0
- package/dist/components/marquee/index.d.ts +4 -0
- package/dist/components/matrix-rain/MatrixRain.d.ts +35 -0
- package/dist/components/matrix-rain/MatrixRain.js +130 -0
- package/dist/components/matrix-rain/index.d.ts +2 -0
- package/dist/components/meteors/Meteors.d.ts +21 -0
- package/dist/components/meteors/Meteors.js +45 -0
- package/dist/components/meteors/index.d.ts +2 -0
- package/dist/components/mosaic-glow/MosaicGlow.d.ts +47 -0
- package/dist/components/mosaic-glow/MosaicGlow.js +438 -0
- package/dist/components/mosaic-glow/index.d.ts +2 -0
- package/dist/components/mosaic-glow/mosaic-glow-core.d.ts +94 -0
- package/dist/components/mosaic-glow/mosaic-glow-core.js +190 -0
- package/dist/components/navbar/Navbar.d.ts +25 -0
- package/dist/components/navbar/Navbar.js +27 -0
- package/dist/components/navbar/NavbarLink.d.ts +37 -0
- package/dist/components/navbar/NavbarLink.js +48 -0
- package/dist/components/navbar/index.d.ts +4 -0
- package/dist/components/navigation-menu/NavigationMenu.d.ts +28 -0
- package/dist/components/navigation-menu/NavigationMenu.js +202 -0
- package/dist/components/navigation-menu/NavigationMenuContent.d.ts +8 -0
- package/dist/components/navigation-menu/NavigationMenuContent.js +77 -0
- package/dist/components/navigation-menu/NavigationMenuItem.d.ts +20 -0
- package/dist/components/navigation-menu/NavigationMenuItem.js +18 -0
- package/dist/components/navigation-menu/NavigationMenuLink.d.ts +31 -0
- package/dist/components/navigation-menu/NavigationMenuLink.js +41 -0
- package/dist/components/navigation-menu/NavigationMenuList.d.ts +8 -0
- package/dist/components/navigation-menu/NavigationMenuList.js +33 -0
- package/dist/components/navigation-menu/NavigationMenuTrigger.d.ts +8 -0
- package/dist/components/navigation-menu/NavigationMenuTrigger.js +90 -0
- package/dist/components/navigation-menu/index.d.ts +14 -0
- package/dist/components/navigation-menu/types.d.ts +107 -0
- package/dist/components/navigation-menu/types.js +32 -0
- package/dist/components/neon-border/NeonBorder.d.ts +22 -0
- package/dist/components/neon-border/NeonBorder.js +50 -0
- package/dist/components/neon-border/index.d.ts +2 -0
- package/dist/components/noise-reveal/NoiseReveal.d.ts +29 -0
- package/dist/components/noise-reveal/NoiseReveal.js +329 -0
- package/dist/components/noise-reveal/index.d.ts +2 -0
- package/dist/components/number-input/NumberInput.d.ts +40 -0
- package/dist/components/number-input/NumberInput.js +207 -0
- package/dist/components/number-input/index.d.ts +2 -0
- package/dist/components/number-ticker/NumberTicker.d.ts +22 -0
- package/dist/components/number-ticker/NumberTicker.js +106 -0
- package/dist/components/number-ticker/index.d.ts +2 -0
- package/dist/components/pagination/Pagination.d.ts +43 -0
- package/dist/components/pagination/Pagination.js +156 -0
- package/dist/components/pagination/index.d.ts +2 -0
- package/dist/components/pagination/pagination-range.d.ts +11 -0
- package/dist/components/pagination/pagination-range.js +35 -0
- package/dist/components/password-input/PasswordInput.d.ts +56 -0
- package/dist/components/password-input/PasswordInput.js +246 -0
- package/dist/components/password-input/index.d.ts +2 -0
- package/dist/components/pixel-loader/PixelLoader.d.ts +18 -0
- package/dist/components/pixel-loader/PixelLoader.js +56 -0
- package/dist/components/pixel-loader/index.d.ts +2 -0
- package/dist/components/popover/Popover.d.ts +49 -0
- package/dist/components/popover/Popover.js +81 -0
- package/dist/components/popover/PopoverContent.d.ts +21 -0
- package/dist/components/popover/PopoverContent.js +78 -0
- package/dist/components/popover/index.d.ts +6 -0
- package/dist/components/popover/types.d.ts +64 -0
- package/dist/components/popover/types.js +17 -0
- package/dist/components/presence/Presence.d.ts +40 -0
- package/dist/components/presence/Presence.js +49 -0
- package/dist/components/presence/index.d.ts +2 -0
- package/dist/components/pressable/Pressable.d.ts +27 -0
- package/dist/components/pressable/Pressable.js +86 -0
- package/dist/components/pressable/index.d.ts +2 -0
- package/dist/components/prompt-suggestions/PromptSuggestions.d.ts +25 -0
- package/dist/components/prompt-suggestions/PromptSuggestions.js +68 -0
- package/dist/components/prompt-suggestions/index.d.ts +2 -0
- package/dist/components/pulse-beam/PulseBeam.d.ts +44 -0
- package/dist/components/pulse-beam/PulseBeam.js +197 -0
- package/dist/components/pulse-beam/index.d.ts +2 -0
- package/dist/components/pulse-beam/pulse-beam-data.d.ts +81 -0
- package/dist/components/pulse-beam/pulse-beam-data.js +306 -0
- package/dist/components/pulse-beam/pulse-beam-loop.d.ts +26 -0
- package/dist/components/pulse-beam/pulse-beam-loop.js +58 -0
- package/dist/components/radio-group/RadioGroup.d.ts +56 -0
- package/dist/components/radio-group/RadioGroup.js +82 -0
- package/dist/components/radio-group/RadioGroupItem.d.ts +21 -0
- package/dist/components/radio-group/RadioGroupItem.js +47 -0
- package/dist/components/radio-group/index.d.ts +6 -0
- package/dist/components/radio-group/types.d.ts +50 -0
- package/dist/components/radio-group/types.js +7 -0
- package/dist/components/rainbow-button/RainbowButton.d.ts +21 -0
- package/dist/components/rainbow-button/RainbowButton.js +59 -0
- package/dist/components/rainbow-button/index.d.ts +2 -0
- package/dist/components/reasoning-panel/ReasoningPanel.d.ts +38 -0
- package/dist/components/reasoning-panel/ReasoningPanel.js +172 -0
- package/dist/components/reasoning-panel/index.d.ts +2 -0
- package/dist/components/recommendation-card/RecommendationCard.d.ts +53 -0
- package/dist/components/recommendation-card/RecommendationCard.js +234 -0
- package/dist/components/recommendation-card/index.d.ts +2 -0
- package/dist/components/reveal/Reveal.d.ts +36 -0
- package/dist/components/reveal/Reveal.js +138 -0
- package/dist/components/reveal/index.d.ts +2 -0
- package/dist/components/ripple/Ripple.d.ts +11 -0
- package/dist/components/ripple/Ripple.js +45 -0
- package/dist/components/ripple/index.d.ts +2 -0
- package/dist/components/ripple-button/RippleButton.d.ts +17 -0
- package/dist/components/ripple-button/RippleButton.js +77 -0
- package/dist/components/ripple-button/index.d.ts +2 -0
- package/dist/components/scroll-anchor/ScrollAnchor.d.ts +33 -0
- package/dist/components/scroll-anchor/ScrollAnchor.js +99 -0
- package/dist/components/scroll-anchor/index.d.ts +2 -0
- package/dist/components/scroll-progress/ScrollProgress.d.ts +39 -0
- package/dist/components/scroll-progress/ScrollProgress.js +118 -0
- package/dist/components/scroll-progress/index.d.ts +2 -0
- package/dist/components/search-input/SearchInput.d.ts +56 -0
- package/dist/components/search-input/SearchInput.js +192 -0
- package/dist/components/search-input/index.d.ts +2 -0
- package/dist/components/select/Select.d.ts +44 -0
- package/dist/components/select/Select.js +255 -0
- package/dist/components/select/SelectPanel.d.ts +33 -0
- package/dist/components/select/SelectPanel.js +108 -0
- package/dist/components/select/index.d.ts +3 -0
- package/dist/components/select/types.d.ts +83 -0
- package/dist/components/select/types.js +8 -0
- package/dist/components/sheet/Sheet.d.ts +40 -0
- package/dist/components/sheet/Sheet.js +183 -0
- package/dist/components/sheet/index.d.ts +2 -0
- package/dist/components/shimmer-button/ShimmerButton.d.ts +26 -0
- package/dist/components/shimmer-button/ShimmerButton.js +69 -0
- package/dist/components/shimmer-button/index.d.ts +2 -0
- package/dist/components/sidebar/Sidebar.d.ts +17 -0
- package/dist/components/sidebar/Sidebar.js +27 -0
- package/dist/components/sidebar/SidebarFooter.d.ts +10 -0
- package/dist/components/sidebar/SidebarFooter.js +31 -0
- package/dist/components/sidebar/SidebarGroup.d.ts +10 -0
- package/dist/components/sidebar/SidebarGroup.js +28 -0
- package/dist/components/sidebar/SidebarItem.d.ts +33 -0
- package/dist/components/sidebar/SidebarItem.js +81 -0
- package/dist/components/sidebar/SidebarSeparator.d.ts +5 -0
- package/dist/components/sidebar/SidebarSeparator.js +13 -0
- package/dist/components/sidebar/index.d.ts +12 -0
- package/dist/components/sidebar/types.d.ts +36 -0
- package/dist/components/sidebar/types.js +7 -0
- package/dist/components/skeleton/Skeleton.d.ts +35 -0
- package/dist/components/skeleton/Skeleton.js +106 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/slider/Slider.d.ts +32 -0
- package/dist/components/slider/Slider.js +119 -0
- package/dist/components/slider/index.d.ts +2 -0
- package/dist/components/smooth-cursor/SmoothCursor.d.ts +18 -0
- package/dist/components/smooth-cursor/SmoothCursor.js +186 -0
- package/dist/components/smooth-cursor/index.d.ts +2 -0
- package/dist/components/sources/SourceCard.d.ts +21 -0
- package/dist/components/sources/SourceCard.js +48 -0
- package/dist/components/sources/Sources.d.ts +31 -0
- package/dist/components/sources/Sources.js +39 -0
- package/dist/components/sources/SourcesList.d.ts +13 -0
- package/dist/components/sources/SourcesList.js +42 -0
- package/dist/components/sources/SourcesTrigger.d.ts +11 -0
- package/dist/components/sources/SourcesTrigger.js +50 -0
- package/dist/components/sources/index.d.ts +10 -0
- package/dist/components/sources/types.d.ts +45 -0
- package/dist/components/sources/types.js +7 -0
- package/dist/components/sparkles/Sparkles.d.ts +35 -0
- package/dist/components/sparkles/Sparkles.js +112 -0
- package/dist/components/sparkles/index.d.ts +2 -0
- package/dist/components/sparkles-text/SparklesText.d.ts +28 -0
- package/dist/components/sparkles-text/SparklesText.js +84 -0
- package/dist/components/sparkles-text/index.d.ts +2 -0
- package/dist/components/status-morph/StatusMorph.d.ts +47 -0
- package/dist/components/status-morph/StatusMorph.js +110 -0
- package/dist/components/status-morph/index.d.ts +2 -0
- package/dist/components/stepper/Step.d.ts +24 -0
- package/dist/components/stepper/Step.js +152 -0
- package/dist/components/stepper/Stepper.d.ts +38 -0
- package/dist/components/stepper/Stepper.js +79 -0
- package/dist/components/stepper/index.d.ts +6 -0
- package/dist/components/stepper/types.d.ts +66 -0
- package/dist/components/stepper/types.js +7 -0
- package/dist/components/sticky-scroll/StickyScroll.d.ts +40 -0
- package/dist/components/sticky-scroll/StickyScroll.js +163 -0
- package/dist/components/sticky-scroll/index.d.ts +2 -0
- package/dist/components/streaming-text/StreamingText.d.ts +20 -0
- package/dist/components/streaming-text/StreamingText.js +32 -0
- package/dist/components/streaming-text/index.d.ts +2 -0
- package/dist/components/subagent-list/SubagentList.d.ts +28 -0
- package/dist/components/subagent-list/SubagentList.js +167 -0
- package/dist/components/subagent-list/index.d.ts +2 -0
- package/dist/components/switch/Switch.d.ts +55 -0
- package/dist/components/switch/Switch.js +77 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/tabs/Tabs.d.ts +43 -0
- package/dist/components/tabs/Tabs.js +123 -0
- package/dist/components/tabs/TabsContent.d.ts +26 -0
- package/dist/components/tabs/TabsContent.js +64 -0
- package/dist/components/tabs/TabsList.d.ts +16 -0
- package/dist/components/tabs/TabsList.js +152 -0
- package/dist/components/tabs/TabsTrigger.d.ts +19 -0
- package/dist/components/tabs/TabsTrigger.js +138 -0
- package/dist/components/tabs/index.d.ts +10 -0
- package/dist/components/tabs/types.d.ts +94 -0
- package/dist/components/tabs/types.js +7 -0
- package/dist/components/terminal-block/TerminalBlock.d.ts +27 -0
- package/dist/components/terminal-block/TerminalBlock.js +120 -0
- package/dist/components/terminal-block/ansi.d.ts +30 -0
- package/dist/components/terminal-block/ansi.js +114 -0
- package/dist/components/terminal-block/index.d.ts +2 -0
- package/dist/components/terminal-text/TerminalText.d.ts +11 -0
- package/dist/components/terminal-text/TerminalText.js +140 -0
- package/dist/components/terminal-text/index.d.ts +2 -0
- package/dist/components/text-generate-effect/TextGenerateEffect.d.ts +9 -0
- package/dist/components/text-generate-effect/TextGenerateEffect.js +58 -0
- package/dist/components/text-generate-effect/index.d.ts +2 -0
- package/dist/components/text-reveal-card/TextRevealCard.d.ts +21 -0
- package/dist/components/text-reveal-card/TextRevealCard.js +107 -0
- package/dist/components/text-reveal-card/TextRevealStars.d.ts +25 -0
- package/dist/components/text-reveal-card/TextRevealStars.js +59 -0
- package/dist/components/text-reveal-card/index.d.ts +4 -0
- package/dist/components/text-roll/TextRoll.d.ts +43 -0
- package/dist/components/text-roll/TextRoll.js +242 -0
- package/dist/components/text-roll/index.d.ts +2 -0
- package/dist/components/text-roll/roll-transitions.d.ts +74 -0
- package/dist/components/text-roll/roll-transitions.js +31 -0
- package/dist/components/textarea/Textarea.d.ts +48 -0
- package/dist/components/textarea/Textarea.js +129 -0
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/thinking-indicator/ThinkingIndicator.d.ts +26 -0
- package/dist/components/thinking-indicator/ThinkingIndicator.js +60 -0
- package/dist/components/thinking-indicator/index.d.ts +2 -0
- package/dist/components/thread-list/ThreadList.d.ts +44 -0
- package/dist/components/thread-list/ThreadList.js +178 -0
- package/dist/components/thread-list/index.d.ts +2 -0
- package/dist/components/time-picker/TimePicker.d.ts +44 -0
- package/dist/components/time-picker/TimePicker.js +254 -0
- package/dist/components/time-picker/TimePickerPanel.d.ts +30 -0
- package/dist/components/time-picker/TimePickerPanel.js +94 -0
- package/dist/components/time-picker/index.d.ts +2 -0
- package/dist/components/time-picker/time-utils.d.ts +33 -0
- package/dist/components/time-picker/time-utils.js +65 -0
- package/dist/components/time-picker/types.d.ts +53 -0
- package/dist/components/time-picker/types.js +10 -0
- package/dist/components/timeline/Timeline.d.ts +18 -0
- package/dist/components/timeline/Timeline.js +96 -0
- package/dist/components/timeline/index.d.ts +2 -0
- package/dist/components/toast/Toast.d.ts +16 -0
- package/dist/components/toast/Toast.js +99 -0
- package/dist/components/toast/Toaster.d.ts +19 -0
- package/dist/components/toast/Toaster.js +147 -0
- package/dist/components/toast/index.d.ts +6 -0
- package/dist/components/toast/store.d.ts +102 -0
- package/dist/components/toast/store.js +118 -0
- package/dist/components/toggle/Toggle.d.ts +28 -0
- package/dist/components/toggle/Toggle.js +69 -0
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle-group/ToggleGroup.d.ts +42 -0
- package/dist/components/toggle-group/ToggleGroup.js +150 -0
- package/dist/components/toggle-group/ToggleGroupItem.d.ts +21 -0
- package/dist/components/toggle-group/ToggleGroupItem.js +100 -0
- package/dist/components/toggle-group/index.d.ts +6 -0
- package/dist/components/toggle-group/types.d.ts +75 -0
- package/dist/components/toggle-group/types.js +7 -0
- package/dist/components/tool-call/ToolCall.d.ts +39 -0
- package/dist/components/tool-call/ToolCall.js +195 -0
- package/dist/components/tool-call/index.d.ts +2 -0
- package/dist/components/tool-timeline/ToolTimeline.d.ts +31 -0
- package/dist/components/tool-timeline/ToolTimeline.js +99 -0
- package/dist/components/tool-timeline/index.d.ts +2 -0
- package/dist/components/tooltip/Tooltip.d.ts +36 -0
- package/dist/components/tooltip/Tooltip.js +214 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tracing-beam/TracingBeam.d.ts +11 -0
- package/dist/components/tracing-beam/TracingBeam.js +163 -0
- package/dist/components/tracing-beam/index.d.ts +2 -0
- package/dist/components/typing-indicator/TypingIndicator.d.ts +17 -0
- package/dist/components/typing-indicator/TypingIndicator.js +47 -0
- package/dist/components/typing-indicator/index.d.ts +2 -0
- package/dist/components/voice-input/VoiceInput.d.ts +60 -0
- package/dist/components/voice-input/VoiceInput.js +268 -0
- package/dist/components/voice-input/index.d.ts +2 -0
- package/dist/components/web-search/WebSearch.d.ts +37 -0
- package/dist/components/web-search/WebSearch.js +135 -0
- package/dist/components/web-search/index.d.ts +2 -0
- package/dist/index.d.ts +148 -0
- package/dist/index.js +489 -0
- package/dist/internals/Portal.d.ts +35 -0
- package/dist/internals/Portal.js +37 -0
- package/dist/internals/StreamText.d.ts +20 -0
- package/dist/internals/StreamText.js +25 -0
- package/dist/internals/ai-types.d.ts +117 -0
- package/dist/internals/anchor-position.d.ts +79 -0
- package/dist/internals/anchor-position.js +154 -0
- package/dist/internals/calendar-core.d.ts +26 -0
- package/dist/internals/calendar-core.js +57 -0
- package/dist/internals/diff.d.ts +38 -0
- package/dist/internals/diff.js +176 -0
- package/dist/internals/dismissable.d.ts +76 -0
- package/dist/internals/dismissable.js +105 -0
- package/dist/internals/dom/context.d.ts +16 -0
- package/dist/internals/dom/context.js +20 -0
- package/dist/internals/dom/ssr.d.ts +21 -0
- package/dist/internals/dom/ssr.js +21 -0
- package/dist/internals/dom/types.d.ts +9 -0
- package/dist/internals/dom/use-composed-refs.d.ts +15 -0
- package/dist/internals/dom/use-composed-refs.js +34 -0
- package/dist/internals/dom/use-element-ref.d.ts +11 -0
- package/dist/internals/dom/use-element-ref.js +12 -0
- package/dist/internals/dom/use-event-callback.d.ts +14 -0
- package/dist/internals/dom/use-event-callback.js +12 -0
- package/dist/internals/dom/use-inert-attribute.d.ts +26 -0
- package/dist/internals/dom/use-inert-attribute.js +22 -0
- package/dist/internals/dom/use-live-ref.d.ts +10 -0
- package/dist/internals/dom/use-live-ref.js +12 -0
- package/dist/internals/field.d.ts +136 -0
- package/dist/internals/field.js +33 -0
- package/dist/internals/float.d.ts +47 -0
- package/dist/internals/float.js +31 -0
- package/dist/internals/focus-trap.d.ts +82 -0
- package/dist/internals/focus-trap.js +145 -0
- package/dist/internals/host.d.ts +38 -0
- package/dist/internals/host.js +24 -0
- package/dist/internals/listbox.d.ts +101 -0
- package/dist/internals/listbox.js +171 -0
- package/dist/internals/markdown/Markdown.d.ts +22 -0
- package/dist/internals/markdown/Markdown.js +53 -0
- package/dist/internals/markdown/MarkdownInline.d.ts +5 -0
- package/dist/internals/markdown/MarkdownInline.js +40 -0
- package/dist/internals/markdown.d.ts +66 -0
- package/dist/internals/markdown.js +467 -0
- package/dist/internals/menu.d.ts +121 -0
- package/dist/internals/menu.js +217 -0
- package/dist/internals/motion/anchored.d.ts +104 -0
- package/dist/internals/motion/anchored.js +44 -0
- package/dist/internals/motion/animate.d.ts +92 -0
- package/dist/internals/motion/animate.js +84 -0
- package/dist/internals/motion/easing.d.ts +20 -0
- package/dist/internals/motion/easing.js +13 -0
- package/dist/internals/motion/haptics.d.ts +42 -0
- package/dist/internals/motion/haptics.js +29 -0
- package/dist/internals/motion/in-view.d.ts +67 -0
- package/dist/internals/motion/in-view.js +97 -0
- package/dist/internals/motion/media-query.d.ts +50 -0
- package/dist/internals/motion/media-query.js +54 -0
- package/dist/internals/motion/presence.d.ts +108 -0
- package/dist/internals/motion/presence.js +197 -0
- package/dist/internals/motion/presets.d.ts +34 -0
- package/dist/internals/motion/presets.js +19 -0
- package/dist/internals/motion/raf.d.ts +35 -0
- package/dist/internals/motion/raf.js +27 -0
- package/dist/internals/motion/stagger.d.ts +32 -0
- package/dist/internals/motion/stagger.js +15 -0
- package/dist/internals/motion/tokens.d.ts +97 -0
- package/dist/internals/motion/tokens.js +18 -0
- package/dist/internals/motion/transitions.d.ts +66 -0
- package/dist/internals/motion/transitions.js +41 -0
- package/dist/internals/motion/types.d.ts +17 -0
- package/dist/internals/relative-time.d.ts +25 -0
- package/dist/internals/relative-time.js +46 -0
- package/dist/internals/scroll-lock.d.ts +26 -0
- package/dist/internals/scroll-lock.js +65 -0
- package/dist/internals/use-anchor-position.d.ts +54 -0
- package/dist/internals/use-anchor-position.js +87 -0
- package/dist/internals/use-autoscroll.d.ts +43 -0
- package/dist/internals/use-autoscroll.js +128 -0
- package/dist/internals/use-copy.d.ts +54 -0
- package/dist/internals/use-copy.js +67 -0
- package/dist/internals/use-elapsed.d.ts +96 -0
- package/dist/internals/use-elapsed.js +195 -0
- package/dist/internals/use-float.d.ts +49 -0
- package/dist/internals/use-float.js +150 -0
- package/dist/internals/use-id.d.ts +22 -0
- package/dist/internals/use-id.js +20 -0
- package/dist/internals/use-text-stream.d.ts +94 -0
- package/dist/internals/use-text-stream.js +133 -0
- package/dist/internals/waveform-core.d.ts +33 -0
- package/dist/internals/waveform-core.js +39 -0
- package/dist/sound/SoundToggle.d.ts +23 -0
- package/dist/sound/SoundToggle.js +96 -0
- package/dist/sound/engine.d.ts +67 -0
- package/dist/sound/engine.js +370 -0
- package/dist/sound/index.d.ts +7 -0
- package/dist/sound/sound-feedback.d.ts +77 -0
- package/dist/sound/sound-feedback.js +152 -0
- package/dist/sound/sound.d.ts +98 -0
- package/dist/sound/sound.js +309 -0
- package/dist/sound/themes.d.ts +19 -0
- package/dist/sound/themes.js +355 -0
- package/dist/sound/types.d.ts +125 -0
- package/dist/sound/types.js +54 -0
- package/dist/sound/use-sound.d.ts +53 -0
- package/dist/sound/use-sound.js +82 -0
- package/dist/styles.css +7975 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.js +8 -0
- package/package.json +96 -0
- package/tailwind.css +132 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { Side, Align } from "../../internals/anchor-position.js";
|
|
2
|
+
/**
|
|
3
|
+
* One selectable entry in a `Select`'s option list.
|
|
4
|
+
*
|
|
5
|
+
* A plain data shape, not a child component: `Select`'s whole API is driven
|
|
6
|
+
* off an `options` array (closer to a native `<select>`'s `<option>` list
|
|
7
|
+
* than to `RadioGroup`'s caller-composed items), so there is no
|
|
8
|
+
* `SelectOption` component to import alongside it.
|
|
9
|
+
*/
|
|
10
|
+
export interface SelectOption {
|
|
11
|
+
/** The value this option represents — what `Select`'s own `value` becomes when it is picked. */
|
|
12
|
+
value: string;
|
|
13
|
+
/** Visible text for this option, both in the trigger once selected and as a row in the panel. */
|
|
14
|
+
label: string;
|
|
15
|
+
/** Skips this option in keyboard navigation, typeahead, and pointer selection. */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The contract between the `Select` trigger and its portalled listbox panel.
|
|
20
|
+
*
|
|
21
|
+
* `Select` owns the value, the option list, and where the active (highlighted)
|
|
22
|
+
* index sits — everything the panel only ever reads or reports back through
|
|
23
|
+
* `setActive`/`commit`. The panel never assigns `value` itself; `commit`
|
|
24
|
+
* routes back through the root so `onValueChange` and the closing of the
|
|
25
|
+
* panel stay in the one place that already handles both for every other way
|
|
26
|
+
* a selection can be made (Enter, Tab, closed-state typeahead).
|
|
27
|
+
*/
|
|
28
|
+
export interface SelectContext {
|
|
29
|
+
/** Whether the panel is open. Read by the panel's own presence clock, which
|
|
30
|
+
* needs it to tell an entrance from a departure, and by the panel's
|
|
31
|
+
* dismissable `active` gate: the instant this flips false the layer stops
|
|
32
|
+
* answering Escape, so a second Escape during the fade reaches whatever is
|
|
33
|
+
* underneath instead of being swallowed by a panel that is already
|
|
34
|
+
* leaving. */
|
|
35
|
+
readonly open: boolean;
|
|
36
|
+
/** The panel's own id — also what the trigger's `aria-controls` points at while open. */
|
|
37
|
+
readonly panelId: string;
|
|
38
|
+
/** The options to render as rows, in order. */
|
|
39
|
+
readonly options: SelectOption[];
|
|
40
|
+
/** The current value, `""` when nothing is selected. */
|
|
41
|
+
readonly value: string;
|
|
42
|
+
/** The trigger's own accessible name (the `label` prop), so the portalled
|
|
43
|
+
* panel can carry the same name as `aria-label` — without this, a screen
|
|
44
|
+
* reader announces the listbox as unnamed the instant it expands, even
|
|
45
|
+
* though the combobox itself is named. `undefined` renders no attribute at
|
|
46
|
+
* all, matching the trigger's own `aria-label={label}`. */
|
|
47
|
+
readonly label: string | undefined;
|
|
48
|
+
/** Index of the highlighted option, or -1 when nothing is active. */
|
|
49
|
+
readonly activeIndex: number;
|
|
50
|
+
/** Side of the trigger to place the panel on. */
|
|
51
|
+
readonly side: Side;
|
|
52
|
+
/** Alignment along the trigger's cross axis. */
|
|
53
|
+
readonly align: Align;
|
|
54
|
+
/** The real trigger button — what the panel anchors against and excludes from its own outside-click check. */
|
|
55
|
+
readonly triggerRef: HTMLElement | null;
|
|
56
|
+
/** The id a given option row must carry — also what `aria-activedescendant` points at while it's active. */
|
|
57
|
+
optionId(index: number): string;
|
|
58
|
+
/** Whether the option at `index` is the current selection. */
|
|
59
|
+
isSelected(index: number): boolean;
|
|
60
|
+
/** Whether the option at `index` is the highlighted (`aria-activedescendant`) one. */
|
|
61
|
+
isActive(index: number): boolean;
|
|
62
|
+
/** Highlights `index` without selecting it — a pointer hover, not a commit. */
|
|
63
|
+
setActive(index: number): void;
|
|
64
|
+
/** Selects the option at `index` and closes the panel, the same way Enter does. */
|
|
65
|
+
commit(index: number): void;
|
|
66
|
+
/** Closes the panel without changing the value — what Escape and an outside click do. */
|
|
67
|
+
close(): void;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The React counterpart of the source's `SELECT_KEY` symbol: a context object
|
|
71
|
+
* plus its two readers, per the internals contract's naming table
|
|
72
|
+
* (`FOO_KEY` → `FooReactContext` + `useFoo()`).
|
|
73
|
+
*
|
|
74
|
+
* Not re-exported from this folder's `index.ts`, because the source barrel
|
|
75
|
+
* does not export `SELECT_KEY` either — the trigger/panel wiring is private to
|
|
76
|
+
* the pair.
|
|
77
|
+
*/
|
|
78
|
+
export declare const SelectReactContext: import("../../internals/dom/context.js").InternalContext<SelectContext>;
|
|
79
|
+
/** Reads the surrounding `Select`'s context. Throws outside one, which is the
|
|
80
|
+
* compound-component contract: `SelectPanel` is only ever rendered by
|
|
81
|
+
* `Select`, so there is no standalone-usage fallback to design for — the same
|
|
82
|
+
* as the source's `getContext(SELECT_KEY)` with no fallback branch. */
|
|
83
|
+
export declare const useSelectContext: () => SelectContext;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createInternalContext } from "../../internals/dom/context.js";
|
|
3
|
+
const SelectReactContext = createInternalContext("Select context");
|
|
4
|
+
const useSelectContext = SelectReactContext.useRequired;
|
|
5
|
+
export {
|
|
6
|
+
SelectReactContext,
|
|
7
|
+
useSelectContext
|
|
8
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export type SheetSide = "left" | "right" | "top" | "bottom";
|
|
3
|
+
export type SheetSize = "sm" | "md" | "lg";
|
|
4
|
+
export interface SheetProps {
|
|
5
|
+
/** Whether the sheet is open. Controlled when given; the component keeps its own copy either way. */
|
|
6
|
+
open?: boolean;
|
|
7
|
+
/** Called with the new value whenever the sheet opens or closes. */
|
|
8
|
+
onOpenChange?: (open: boolean) => void;
|
|
9
|
+
/** Edge of the viewport the panel slides in from. */
|
|
10
|
+
side?: SheetSide;
|
|
11
|
+
/** Heading rendered in the header and wired to `aria-labelledby`. */
|
|
12
|
+
title?: string;
|
|
13
|
+
/** Supporting text under the title, wired to `aria-describedby`. */
|
|
14
|
+
description?: string;
|
|
15
|
+
/** Whether Escape, the scrim and the close button can close the sheet. */
|
|
16
|
+
dismissible?: boolean;
|
|
17
|
+
/** Panel width (left/right sides) or height (top/bottom sides). */
|
|
18
|
+
size?: SheetSize;
|
|
19
|
+
/** Panel body content. */
|
|
20
|
+
children?: ReactNode;
|
|
21
|
+
/** Content pinned below the body, e.g. actions. */
|
|
22
|
+
footer?: ReactNode;
|
|
23
|
+
/** Additional CSS classes merged onto the panel. */
|
|
24
|
+
className?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Accessible name for the panel when there is no `title`. A modal dialog
|
|
27
|
+
* must be named, and `aria-labelledby` can only point at a rendered
|
|
28
|
+
* heading — pass this when the header is built from `children` instead.
|
|
29
|
+
* Ignored once `title` is set, since `aria-labelledby` already supplies
|
|
30
|
+
* the name.
|
|
31
|
+
*/
|
|
32
|
+
ariaLabel?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Plays the `close` cue through the sound controller when the sheet is
|
|
35
|
+
* dismissed. Off by default; only audible once the user has enabled
|
|
36
|
+
* sound.
|
|
37
|
+
*/
|
|
38
|
+
sound?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export declare const Sheet: import("react").ForwardRefExoticComponent<SheetProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useState } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { Portal } from "../../internals/Portal.js";
|
|
6
|
+
import { useDismissable } from "../../internals/dismissable.js";
|
|
7
|
+
import { useFocusTrap } from "../../internals/focus-trap.js";
|
|
8
|
+
import { useScrollLock } from "../../internals/scroll-lock.js";
|
|
9
|
+
import { useComposedRefs } from "../../internals/dom/use-composed-refs.js";
|
|
10
|
+
import { useElementRef } from "../../internals/dom/use-element-ref.js";
|
|
11
|
+
import { useFancyId } from "../../internals/use-id.js";
|
|
12
|
+
import { anchored, prefersReducedMotion } from "../../internals/motion/anchored.js";
|
|
13
|
+
import { DURATIONS, JS_EASINGS } from "../../internals/motion/tokens.js";
|
|
14
|
+
import { usePresence } from "../../internals/motion/presence.js";
|
|
15
|
+
import { useSoundCue } from "../../sound/use-sound.js";
|
|
16
|
+
function edgeSlide(_node, params) {
|
|
17
|
+
const reduced = prefersReducedMotion();
|
|
18
|
+
const entering = params?.entering ?? false;
|
|
19
|
+
const side = params?.side ?? "right";
|
|
20
|
+
const axis = side === "left" || side === "right" ? "X" : "Y";
|
|
21
|
+
const sign = side === "left" || side === "top" ? -1 : 1;
|
|
22
|
+
return {
|
|
23
|
+
delay: 0,
|
|
24
|
+
// Reduced motion collapses this to 0, which makes `runTransition`
|
|
25
|
+
// finish synchronously and never touch `element.animate()` — so the
|
|
26
|
+
// close is exactly as synchronous as it was before the sheet animated
|
|
27
|
+
// out at all.
|
|
28
|
+
duration: reduced ? 0 : entering ? DURATIONS.base : DURATIONS.exit,
|
|
29
|
+
easing: entering ? JS_EASINGS.out : JS_EASINGS.in,
|
|
30
|
+
// `u = 1 - t`: fully out at t=0, resting at t=1. No opacity term — a
|
|
31
|
+
// sheet leaves by travelling, and fading it as well reads as two
|
|
32
|
+
// gestures fighting.
|
|
33
|
+
css: (_t, u) => `transform: translate${axis}(${sign * 100 * u}%)`
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const POSITION_CLASSES = {
|
|
37
|
+
left: "inset-y-0 left-0 border-r border-border",
|
|
38
|
+
right: "inset-y-0 right-0 border-l border-border",
|
|
39
|
+
top: "inset-x-0 top-0 border-b border-border",
|
|
40
|
+
bottom: "inset-x-0 bottom-0 border-t border-border"
|
|
41
|
+
};
|
|
42
|
+
const WIDTH_CLASSES = {
|
|
43
|
+
sm: "w-[20rem] max-w-[90vw] h-dvh",
|
|
44
|
+
md: "w-[24rem] max-w-[90vw] h-dvh",
|
|
45
|
+
lg: "w-[32rem] max-w-[90vw] h-dvh"
|
|
46
|
+
};
|
|
47
|
+
const HEIGHT_CLASSES = {
|
|
48
|
+
sm: "h-[14rem] max-h-[85vh] w-full",
|
|
49
|
+
md: "h-[18rem] max-h-[85vh] w-full",
|
|
50
|
+
lg: "h-[24rem] max-h-[85vh] w-full"
|
|
51
|
+
};
|
|
52
|
+
const Sheet = forwardRef(function Sheet2({
|
|
53
|
+
open: openProp,
|
|
54
|
+
onOpenChange,
|
|
55
|
+
side = "right",
|
|
56
|
+
title,
|
|
57
|
+
description,
|
|
58
|
+
dismissible = true,
|
|
59
|
+
size = "md",
|
|
60
|
+
children,
|
|
61
|
+
footer,
|
|
62
|
+
className,
|
|
63
|
+
ariaLabel,
|
|
64
|
+
sound = false
|
|
65
|
+
}, forwardedRef) {
|
|
66
|
+
const [open, setOpenState] = useState(openProp ?? false);
|
|
67
|
+
const [lastOpenProp, setLastOpenProp] = useState(openProp);
|
|
68
|
+
if (lastOpenProp !== openProp) {
|
|
69
|
+
setLastOpenProp(openProp);
|
|
70
|
+
setOpenState(openProp ?? false);
|
|
71
|
+
}
|
|
72
|
+
const playCue = useSoundCue(sound);
|
|
73
|
+
function close() {
|
|
74
|
+
if (!open) return;
|
|
75
|
+
setOpenState(false);
|
|
76
|
+
playCue("close");
|
|
77
|
+
onOpenChange?.(false);
|
|
78
|
+
}
|
|
79
|
+
const uid = useFancyId();
|
|
80
|
+
const titleId = title ? `${uid}-title` : void 0;
|
|
81
|
+
const descriptionId = description ? `${uid}-description` : void 0;
|
|
82
|
+
const [panel, setPanelNode] = useElementRef();
|
|
83
|
+
const trap = useFocusTrap(panel);
|
|
84
|
+
const presence = usePresence(open, {
|
|
85
|
+
// The two halves of the focus handshake, at the two moments the
|
|
86
|
+
// source puts them: `onintrostart` → rearm, `onoutrostart` →
|
|
87
|
+
// returnFocusNow.
|
|
88
|
+
//
|
|
89
|
+
// `returnFocusNow` at the dismiss instant is the whole point: it is
|
|
90
|
+
// called on EVERY close path (Escape, the scrim, the close button, a
|
|
91
|
+
// caller's own `open` write). Waiting for the trap's own destroy
|
|
92
|
+
// would leave a keyboard user on `<body>` for the whole length of the
|
|
93
|
+
// slide-out, because the closing panel is made inert the instant the
|
|
94
|
+
// exit starts.
|
|
95
|
+
//
|
|
96
|
+
// `rearm` is the other half. A sheet reopened DURING its exit
|
|
97
|
+
// reverses instead of remounting, so the trap is never re-created:
|
|
98
|
+
// without this the panel would come back `aria-modal` and interactive
|
|
99
|
+
// with focus left on the trigger behind it, and the eager return
|
|
100
|
+
// already spent for the life of the instance.
|
|
101
|
+
onEnterStart: () => trap.rearm(),
|
|
102
|
+
onExitStart: () => trap.returnFocusNow()
|
|
103
|
+
});
|
|
104
|
+
useScrollLock(presence.mounted);
|
|
105
|
+
useDismissable(panel, {
|
|
106
|
+
onDismiss: close,
|
|
107
|
+
escape: dismissible,
|
|
108
|
+
outsideClick: dismissible,
|
|
109
|
+
active: open
|
|
110
|
+
});
|
|
111
|
+
const panelRef = useComposedRefs(
|
|
112
|
+
setPanelNode,
|
|
113
|
+
forwardedRef,
|
|
114
|
+
presence.register("panel", edgeSlide, (entering) => ({ side, entering }))
|
|
115
|
+
);
|
|
116
|
+
const scrimRef = presence.register("scrim", anchored, (entering) => ({
|
|
117
|
+
entering,
|
|
118
|
+
scale: false,
|
|
119
|
+
duration: DURATIONS.base,
|
|
120
|
+
exitDuration: DURATIONS.exit
|
|
121
|
+
}));
|
|
122
|
+
const isHorizontal = side === "left" || side === "right";
|
|
123
|
+
const dimensionClasses = isHorizontal ? WIDTH_CLASSES[size] : HEIGHT_CLASSES[size];
|
|
124
|
+
const panelClasses = cn(
|
|
125
|
+
"ft-sheet-panel bg-popover text-popover-foreground fixed z-50 flex flex-col gap-4 p-4 shadow-2xl",
|
|
126
|
+
POSITION_CLASSES[side],
|
|
127
|
+
dimensionClasses,
|
|
128
|
+
className
|
|
129
|
+
);
|
|
130
|
+
return /* @__PURE__ */ jsx(Portal, { children: presence.mounted ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
131
|
+
/* @__PURE__ */ jsx(
|
|
132
|
+
"div",
|
|
133
|
+
{
|
|
134
|
+
ref: scrimRef,
|
|
135
|
+
className: "ft-sheet-scrim fixed inset-0 z-50 bg-black/60",
|
|
136
|
+
"aria-hidden": "true"
|
|
137
|
+
}
|
|
138
|
+
),
|
|
139
|
+
/* @__PURE__ */ jsxs(
|
|
140
|
+
"div",
|
|
141
|
+
{
|
|
142
|
+
ref: panelRef,
|
|
143
|
+
className: panelClasses,
|
|
144
|
+
role: "dialog",
|
|
145
|
+
"aria-modal": "true",
|
|
146
|
+
"aria-label": titleId ? void 0 : ariaLabel,
|
|
147
|
+
"aria-labelledby": titleId,
|
|
148
|
+
"aria-describedby": descriptionId,
|
|
149
|
+
"data-state": presence.surfaceState,
|
|
150
|
+
"data-side": side,
|
|
151
|
+
children: [
|
|
152
|
+
title || dismissible ? /* @__PURE__ */ jsxs("div", { className: "ft-sheet-header flex items-start justify-between gap-4", children: [
|
|
153
|
+
title ? /* @__PURE__ */ jsx("h2", { id: titleId, className: "text-[15px] font-semibold", children: title }) : null,
|
|
154
|
+
dismissible ? /* @__PURE__ */ jsx(
|
|
155
|
+
"button",
|
|
156
|
+
{
|
|
157
|
+
type: "button",
|
|
158
|
+
className: "ft-sheet-close text-muted-foreground hover:text-foreground cursor-pointer text-[13px] leading-none",
|
|
159
|
+
"aria-label": "Close",
|
|
160
|
+
onClick: close,
|
|
161
|
+
children: "✕"
|
|
162
|
+
}
|
|
163
|
+
) : null
|
|
164
|
+
] }) : null,
|
|
165
|
+
description ? /* @__PURE__ */ jsx(
|
|
166
|
+
"p",
|
|
167
|
+
{
|
|
168
|
+
id: descriptionId,
|
|
169
|
+
className: "text-muted-foreground text-[12.5px] leading-relaxed",
|
|
170
|
+
children: description
|
|
171
|
+
}
|
|
172
|
+
) : null,
|
|
173
|
+
/* @__PURE__ */ jsx("div", { className: "ft-sheet-body flex flex-1 flex-col gap-3 overflow-y-auto", children }),
|
|
174
|
+
footer ? /* @__PURE__ */ jsx("div", { className: "ft-sheet-footer flex justify-end gap-2", children: footer }) : null
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
)
|
|
178
|
+
] }) : null });
|
|
179
|
+
});
|
|
180
|
+
Sheet.displayName = "Sheet";
|
|
181
|
+
export {
|
|
182
|
+
Sheet
|
|
183
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ButtonHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
type BaseProps = {
|
|
3
|
+
/** Shimmer highlight color */
|
|
4
|
+
shimmerColor?: string;
|
|
5
|
+
/** Thickness of the shimmer border */
|
|
6
|
+
shimmerSize?: string;
|
|
7
|
+
/** Button border radius */
|
|
8
|
+
borderRadius?: string;
|
|
9
|
+
/** Duration of the shimmer animation cycle */
|
|
10
|
+
shimmerDuration?: string;
|
|
11
|
+
/** Button background color */
|
|
12
|
+
background?: string;
|
|
13
|
+
/** Custom CSS class */
|
|
14
|
+
className?: string;
|
|
15
|
+
/** Button content */
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* Plays the matching interface cue through the sound controller. Off
|
|
19
|
+
* by default; only audible once the user has enabled sound.
|
|
20
|
+
*/
|
|
21
|
+
sound?: boolean;
|
|
22
|
+
};
|
|
23
|
+
export interface ShimmerButtonProps extends BaseProps, Omit<ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseProps> {
|
|
24
|
+
}
|
|
25
|
+
export declare const ShimmerButton: import("react").ForwardRefExoticComponent<ShimmerButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { useSoundCue } from "../../sound/use-sound.js";
|
|
6
|
+
/* empty css */
|
|
7
|
+
const ShimmerButton = forwardRef(
|
|
8
|
+
({
|
|
9
|
+
className,
|
|
10
|
+
shimmerColor = "#ffffff",
|
|
11
|
+
shimmerSize = "0.05em",
|
|
12
|
+
borderRadius = "100px",
|
|
13
|
+
shimmerDuration = "3s",
|
|
14
|
+
background = "rgba(0, 0, 0, 1)",
|
|
15
|
+
children,
|
|
16
|
+
sound = false,
|
|
17
|
+
onClick,
|
|
18
|
+
...restProps
|
|
19
|
+
}, ref) => {
|
|
20
|
+
const styleVars = {
|
|
21
|
+
"--spread": "90deg",
|
|
22
|
+
"--shimmer-color": shimmerColor,
|
|
23
|
+
"--radius": borderRadius,
|
|
24
|
+
"--speed": shimmerDuration,
|
|
25
|
+
"--cut": shimmerSize,
|
|
26
|
+
"--bg": background
|
|
27
|
+
};
|
|
28
|
+
const playCue = useSoundCue(sound);
|
|
29
|
+
function handleClick(event) {
|
|
30
|
+
if (sound && !restProps.disabled) playCue("press");
|
|
31
|
+
onClick?.(event);
|
|
32
|
+
}
|
|
33
|
+
return /* @__PURE__ */ jsxs(
|
|
34
|
+
"button",
|
|
35
|
+
{
|
|
36
|
+
ref,
|
|
37
|
+
className: cn(
|
|
38
|
+
"shimmer-button group relative z-0 flex cursor-pointer items-center justify-center overflow-hidden [border-radius:var(--radius)] border border-white/10 px-6 py-3 whitespace-nowrap text-white [background:var(--bg)]",
|
|
39
|
+
"transform-gpu transition-transform duration-300 ease-in-out active:translate-y-px",
|
|
40
|
+
className
|
|
41
|
+
),
|
|
42
|
+
style: styleVars,
|
|
43
|
+
onClick: handleClick,
|
|
44
|
+
...restProps,
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ jsx("div", { className: "[container-type:size] absolute inset-0 -z-30 overflow-visible blur-[2px]", children: /* @__PURE__ */ jsx("div", { className: "shimmer-slide absolute inset-0 [aspect-ratio:1] h-[100cqh] [border-radius:0] [mask:none]", children: /* @__PURE__ */ jsx("div", { className: "spin-around absolute -inset-full w-auto [translate:0_0] rotate-0 [background:conic-gradient(from_calc(270deg-(var(--spread)*0.5)),transparent_0,var(--shimmer-color)_var(--spread),transparent_var(--spread))]" }) }) }),
|
|
47
|
+
children,
|
|
48
|
+
/* @__PURE__ */ jsx(
|
|
49
|
+
"div",
|
|
50
|
+
{
|
|
51
|
+
className: cn(
|
|
52
|
+
"insert-0 absolute size-full",
|
|
53
|
+
"rounded-2xl px-4 py-1.5 text-sm font-medium shadow-[inset_0_-8px_10px_#ffffff1f]",
|
|
54
|
+
"transform-gpu transition-all duration-300 ease-in-out",
|
|
55
|
+
"group-hover:shadow-[inset_0_-6px_10px_#ffffff3f]",
|
|
56
|
+
"group-active:shadow-[inset_0_-10px_10px_#ffffff3f]"
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
/* @__PURE__ */ jsx("div", { className: "absolute [inset:var(--cut)] -z-20 [border-radius:var(--radius)] [background:var(--bg)]" })
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
ShimmerButton.displayName = "ShimmerButton";
|
|
67
|
+
export {
|
|
68
|
+
ShimmerButton
|
|
69
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface SidebarProps {
|
|
3
|
+
/** Accessible name for the `<nav>` landmark. Defaults to `"Sidebar"`. */
|
|
4
|
+
label?: string;
|
|
5
|
+
/**
|
|
6
|
+
* Whether the sidebar is collapsed to an icon-only rail. A plain prop —
|
|
7
|
+
* `Sidebar` has no internal control of its own that ever changes this, so
|
|
8
|
+
* there is nothing for a controlled/uncontrolled split to round-trip. Own
|
|
9
|
+
* the state yourself and pass it down.
|
|
10
|
+
*/
|
|
11
|
+
collapsed?: boolean;
|
|
12
|
+
/** `SidebarGroup`, `SidebarSeparator` and `SidebarFooter`. */
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
/** Additional CSS classes */
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const Sidebar: import("react").ForwardRefExoticComponent<SidebarProps & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useMemo } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { SIDEBAR_KEY } from "./types.js";
|
|
6
|
+
/* empty css */
|
|
7
|
+
const Sidebar = forwardRef(function Sidebar2({ label = "Sidebar", collapsed = false, children, className }, ref) {
|
|
8
|
+
const context = useMemo(() => ({ collapsed }), [collapsed]);
|
|
9
|
+
return /* @__PURE__ */ jsx(SIDEBAR_KEY.Provider, { value: context, children: /* @__PURE__ */ jsx(
|
|
10
|
+
"nav",
|
|
11
|
+
{
|
|
12
|
+
ref,
|
|
13
|
+
"aria-label": label,
|
|
14
|
+
"data-collapsed": collapsed,
|
|
15
|
+
className: cn(
|
|
16
|
+
"ft-sidebar bg-background flex h-full flex-col gap-3 p-3",
|
|
17
|
+
collapsed ? "w-[64px] items-center px-2" : "w-[240px]",
|
|
18
|
+
className
|
|
19
|
+
),
|
|
20
|
+
children
|
|
21
|
+
}
|
|
22
|
+
) });
|
|
23
|
+
});
|
|
24
|
+
Sidebar.displayName = "Sidebar";
|
|
25
|
+
export {
|
|
26
|
+
Sidebar
|
|
27
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface SidebarFooterProps {
|
|
3
|
+
/** A decorative avatar, shown even when the sidebar is collapsed. */
|
|
4
|
+
avatar?: ReactNode;
|
|
5
|
+
/** The name / text next to the avatar. Moves to `sr-only` while collapsed — never removed. */
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
/** Additional CSS classes */
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const SidebarFooter: import("react").ForwardRefExoticComponent<SidebarFooterProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useContext } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { SidebarSeparator } from "./SidebarSeparator.js";
|
|
6
|
+
import { SIDEBAR_KEY } from "./types.js";
|
|
7
|
+
const SidebarFooter = forwardRef(function SidebarFooter2({ avatar, children, className }, ref) {
|
|
8
|
+
const sidebar = useContext(SIDEBAR_KEY);
|
|
9
|
+
const collapsed = sidebar?.collapsed ?? false;
|
|
10
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("ft-sidebar-footer mt-auto flex w-full flex-col", className), children: [
|
|
11
|
+
/* @__PURE__ */ jsx(SidebarSeparator, {}),
|
|
12
|
+
/* @__PURE__ */ jsxs(
|
|
13
|
+
"div",
|
|
14
|
+
{
|
|
15
|
+
className: cn(
|
|
16
|
+
"flex items-center gap-2.5 px-2 py-[7px] text-[12px]",
|
|
17
|
+
"text-muted-foreground",
|
|
18
|
+
collapsed && "justify-center"
|
|
19
|
+
),
|
|
20
|
+
children: [
|
|
21
|
+
avatar ? /* @__PURE__ */ jsx("span", { className: "shrink-0", "aria-hidden": "true", children: avatar }) : null,
|
|
22
|
+
/* @__PURE__ */ jsx("span", { className: cn("min-w-0 truncate", collapsed && "sr-only"), children })
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
)
|
|
26
|
+
] });
|
|
27
|
+
});
|
|
28
|
+
SidebarFooter.displayName = "SidebarFooter";
|
|
29
|
+
export {
|
|
30
|
+
SidebarFooter
|
|
31
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface SidebarGroupProps {
|
|
3
|
+
/** The section heading, e.g. `"General"`. Required — read by `aria-labelledby`, not decorative. */
|
|
4
|
+
label: string;
|
|
5
|
+
/** The `SidebarItem`s in this section. */
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
/** Additional CSS classes */
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function SidebarGroup({ label, children, className }: SidebarGroupProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useContext } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { useFancyId } from "../../internals/use-id.js";
|
|
6
|
+
import { SIDEBAR_KEY } from "./types.js";
|
|
7
|
+
function SidebarGroup({ label, children, className }) {
|
|
8
|
+
const sidebar = useContext(SIDEBAR_KEY);
|
|
9
|
+
const collapsed = sidebar?.collapsed ?? false;
|
|
10
|
+
const headingId = useFancyId();
|
|
11
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("ft-sidebar-group flex w-full flex-col gap-0.5", className), children: [
|
|
12
|
+
/* @__PURE__ */ jsx(
|
|
13
|
+
"span",
|
|
14
|
+
{
|
|
15
|
+
id: headingId,
|
|
16
|
+
className: cn(
|
|
17
|
+
"text-muted-foreground/70 px-2 py-1 text-[10px] font-semibold tracking-[0.08em] uppercase",
|
|
18
|
+
collapsed && "sr-only"
|
|
19
|
+
),
|
|
20
|
+
children: label
|
|
21
|
+
}
|
|
22
|
+
),
|
|
23
|
+
/* @__PURE__ */ jsx("ul", { className: "m-0 flex list-none flex-col gap-0.5 p-0", "aria-labelledby": headingId, children })
|
|
24
|
+
] });
|
|
25
|
+
}
|
|
26
|
+
export {
|
|
27
|
+
SidebarGroup
|
|
28
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { MouseEvent, ReactNode } from "react";
|
|
2
|
+
export interface SidebarItemProps {
|
|
3
|
+
/** Renders an `<a>` when set; a `<button type="button">` otherwise. */
|
|
4
|
+
href?: string;
|
|
5
|
+
/**
|
|
6
|
+
* Marks this as the current item: `aria-current="page"` plus the
|
|
7
|
+
* accent left bar — current is never conveyed by colour alone.
|
|
8
|
+
*/
|
|
9
|
+
current?: boolean;
|
|
10
|
+
/** A count or short flag, e.g. `4` — rendered as a pill and folded into the accessible name. */
|
|
11
|
+
badge?: string | number;
|
|
12
|
+
/**
|
|
13
|
+
* What the badge means, read alongside its value in the accessible
|
|
14
|
+
* name (`"Inbox, 4 unread"`). Defaults to just the badge value if not given.
|
|
15
|
+
*/
|
|
16
|
+
badgeLabel?: string;
|
|
17
|
+
/** Disables both the click and keyboard-activation paths. */
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** Click handler, for the `<button>` branch. Never called while `disabled`. */
|
|
20
|
+
onClick?: (event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>) => void;
|
|
21
|
+
/** A decorative glyph or icon, shown even when the sidebar is collapsed. */
|
|
22
|
+
icon?: ReactNode;
|
|
23
|
+
/** The item's label. Moves to `sr-only` text while the sidebar is collapsed — never removed. */
|
|
24
|
+
children?: ReactNode;
|
|
25
|
+
/** Additional CSS classes */
|
|
26
|
+
className?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Plays the select cue through the sound controller. Off by default;
|
|
29
|
+
* only audible once the user has enabled sound.
|
|
30
|
+
*/
|
|
31
|
+
sound?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare const SidebarItem: import("react").ForwardRefExoticComponent<SidebarItemProps & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useContext } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { useSoundCue } from "../../sound/use-sound.js";
|
|
6
|
+
import { SIDEBAR_KEY } from "./types.js";
|
|
7
|
+
/* empty css */
|
|
8
|
+
const SidebarItem = forwardRef(
|
|
9
|
+
function SidebarItem2({
|
|
10
|
+
href,
|
|
11
|
+
current = false,
|
|
12
|
+
badge,
|
|
13
|
+
badgeLabel,
|
|
14
|
+
disabled = false,
|
|
15
|
+
onClick,
|
|
16
|
+
icon,
|
|
17
|
+
children,
|
|
18
|
+
className,
|
|
19
|
+
sound = false
|
|
20
|
+
}, ref) {
|
|
21
|
+
const sidebar = useContext(SIDEBAR_KEY);
|
|
22
|
+
const collapsed = sidebar?.collapsed ?? false;
|
|
23
|
+
const playCue = useSoundCue(sound);
|
|
24
|
+
const hasBadge = badge !== void 0 && badge !== null && badge !== "";
|
|
25
|
+
const classes = cn(
|
|
26
|
+
"ft-sidebar-item flex w-full items-center gap-2.5 rounded-[6px] px-2 py-[7px] text-[13px] transition-colors",
|
|
27
|
+
"focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none",
|
|
28
|
+
collapsed && "justify-center",
|
|
29
|
+
current ? "ft-sidebar-item--current bg-accent text-accent-foreground font-medium" : "text-muted-foreground hover:bg-accent hover:text-accent-foreground",
|
|
30
|
+
disabled && "pointer-events-none opacity-50",
|
|
31
|
+
className
|
|
32
|
+
);
|
|
33
|
+
function handleClick(event) {
|
|
34
|
+
if (disabled) {
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (!current) playCue("select");
|
|
39
|
+
onClick?.(event);
|
|
40
|
+
}
|
|
41
|
+
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
42
|
+
icon ? /* @__PURE__ */ jsx("span", { className: "ft-sidebar-item-icon shrink-0", "aria-hidden": "true", children: icon }) : null,
|
|
43
|
+
/* @__PURE__ */ jsx("span", { className: cn("min-w-0 flex-1 truncate text-left", collapsed && "sr-only"), children }),
|
|
44
|
+
hasBadge ? /* @__PURE__ */ jsxs("span", { className: cn("ft-sidebar-item-badge shrink-0", collapsed && "sr-only"), children: [
|
|
45
|
+
badge,
|
|
46
|
+
badgeLabel ? /* @__PURE__ */ jsxs("span", { className: "sr-only", children: [
|
|
47
|
+
" ",
|
|
48
|
+
badgeLabel
|
|
49
|
+
] }) : null
|
|
50
|
+
] }) : null
|
|
51
|
+
] });
|
|
52
|
+
return /* @__PURE__ */ jsx("li", { className: "ft-sidebar-item-wrapper w-full list-none", children: href ? /* @__PURE__ */ jsx(
|
|
53
|
+
"a",
|
|
54
|
+
{
|
|
55
|
+
ref,
|
|
56
|
+
href: disabled ? void 0 : href,
|
|
57
|
+
"aria-current": current ? "page" : void 0,
|
|
58
|
+
"aria-disabled": disabled ? "true" : void 0,
|
|
59
|
+
tabIndex: disabled ? -1 : void 0,
|
|
60
|
+
className: classes,
|
|
61
|
+
onClick: handleClick,
|
|
62
|
+
children: content
|
|
63
|
+
}
|
|
64
|
+
) : /* @__PURE__ */ jsx(
|
|
65
|
+
"button",
|
|
66
|
+
{
|
|
67
|
+
ref,
|
|
68
|
+
type: "button",
|
|
69
|
+
disabled,
|
|
70
|
+
"aria-current": current ? "page" : void 0,
|
|
71
|
+
className: classes,
|
|
72
|
+
onClick: handleClick,
|
|
73
|
+
children: content
|
|
74
|
+
}
|
|
75
|
+
) });
|
|
76
|
+
}
|
|
77
|
+
);
|
|
78
|
+
SidebarItem.displayName = "SidebarItem";
|
|
79
|
+
export {
|
|
80
|
+
SidebarItem
|
|
81
|
+
};
|