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,18 @@
|
|
|
1
|
+
import { type HTMLAttributes } from "react";
|
|
2
|
+
export interface PixelLoaderProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** Number of pixel columns */
|
|
4
|
+
cols?: number;
|
|
5
|
+
/** Number of pixel rows */
|
|
6
|
+
rows?: number;
|
|
7
|
+
/** Size of a single pixel in px */
|
|
8
|
+
cellSize?: number;
|
|
9
|
+
/** Space between pixels in px */
|
|
10
|
+
gap?: number;
|
|
11
|
+
/** Pixel colour, any CSS colour value */
|
|
12
|
+
color?: string;
|
|
13
|
+
/** Duration of one full pulse cycle in seconds */
|
|
14
|
+
speed?: number;
|
|
15
|
+
/** Accessible label announced by assistive tech */
|
|
16
|
+
label?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const PixelLoader: import("react").ForwardRefExoticComponent<PixelLoaderProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
/* empty css */
|
|
6
|
+
const PixelLoader = forwardRef(
|
|
7
|
+
({
|
|
8
|
+
cols = 5,
|
|
9
|
+
rows = 5,
|
|
10
|
+
cellSize = 6,
|
|
11
|
+
gap = 2,
|
|
12
|
+
color = "var(--ft-pixel-color, currentColor)",
|
|
13
|
+
speed = 1.6,
|
|
14
|
+
label = "Loading",
|
|
15
|
+
className,
|
|
16
|
+
style,
|
|
17
|
+
...rest
|
|
18
|
+
}, ref) => {
|
|
19
|
+
const cycle = Math.max(0.01, speed);
|
|
20
|
+
const span = rows + cols;
|
|
21
|
+
const step = cycle / span;
|
|
22
|
+
const delays = [];
|
|
23
|
+
for (let row = 0; row < rows; row++) {
|
|
24
|
+
for (let col = 0; col < cols; col++) {
|
|
25
|
+
delays.push((row + col) % span * step);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const rootStyle = {
|
|
29
|
+
"--ft-pixel-cell-color": color,
|
|
30
|
+
"--ft-pixel-speed": `${cycle}s`,
|
|
31
|
+
gridTemplateColumns: `repeat(${cols}, ${cellSize}px)`,
|
|
32
|
+
gridAutoRows: `${cellSize}px`,
|
|
33
|
+
gap: `${gap}px`,
|
|
34
|
+
...style
|
|
35
|
+
};
|
|
36
|
+
return /* @__PURE__ */ jsxs(
|
|
37
|
+
"div",
|
|
38
|
+
{
|
|
39
|
+
ref,
|
|
40
|
+
role: "status",
|
|
41
|
+
"aria-live": "polite",
|
|
42
|
+
className: cn("inline-grid", className),
|
|
43
|
+
style: rootStyle,
|
|
44
|
+
...rest,
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: label }),
|
|
47
|
+
delays.map((delay, i) => /* @__PURE__ */ jsx("span", { className: "ft-pixel", style: { animationDelay: `${delay}s` } }, i))
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
PixelLoader.displayName = "PixelLoader";
|
|
54
|
+
export {
|
|
55
|
+
PixelLoader
|
|
56
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { Side, Align } from "../../internals/anchor-position.js";
|
|
3
|
+
export interface PopoverProps {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the panel is open.
|
|
6
|
+
*
|
|
7
|
+
* The source declares this `$bindable(false)`; React has no two-way
|
|
8
|
+
* channel, so the component keeps its own copy either way and re-syncs it
|
|
9
|
+
* whenever the CALLER changes the prop. That is what makes all three
|
|
10
|
+
* documented call shapes work off one implementation — a caller driving
|
|
11
|
+
* `open` from its own state, a caller who passes only `onOpenChange`, and
|
|
12
|
+
* a caller who passes a plain unbound value alongside it.
|
|
13
|
+
*/
|
|
14
|
+
open?: boolean;
|
|
15
|
+
/** Called with the new value whenever the panel opens or closes, however the change happened. */
|
|
16
|
+
onOpenChange?: (open: boolean) => void;
|
|
17
|
+
/** Side of the trigger to place the panel on. */
|
|
18
|
+
side?: Side;
|
|
19
|
+
/** Alignment along the trigger's cross axis. */
|
|
20
|
+
align?: Align;
|
|
21
|
+
/** Gap in pixels between the trigger and the panel. */
|
|
22
|
+
offset?: number;
|
|
23
|
+
/** Whether Escape and an outside click close the panel. */
|
|
24
|
+
dismissible?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The trigger's content. Rendered inside the real `<button>` this
|
|
27
|
+
* component owns — keep it to text/icons, not another interactive
|
|
28
|
+
* control, or activation ends up on two nested buttons at once.
|
|
29
|
+
*/
|
|
30
|
+
trigger?: ReactNode;
|
|
31
|
+
/** The panel's content. */
|
|
32
|
+
children?: ReactNode;
|
|
33
|
+
/** Additional CSS classes, merged onto the panel. */
|
|
34
|
+
className?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Plays the matching open/close cue through the sound controller. Off by
|
|
37
|
+
* default; only audible once the user has enabled sound.
|
|
38
|
+
*/
|
|
39
|
+
sound?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The disclosure root: the real `<button>` trigger, and the portalled panel
|
|
43
|
+
* it anchors.
|
|
44
|
+
*
|
|
45
|
+
* The source declares `ref = $bindable(null)` for the PANEL element, so the
|
|
46
|
+
* panel arrives through this component's ref channel (PORTING.md
|
|
47
|
+
* §"API contract") rather than through a prop.
|
|
48
|
+
*/
|
|
49
|
+
export declare const Popover: import("react").ForwardRefExoticComponent<PopoverProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useState, useRef, useCallback, useMemo } from "react";
|
|
4
|
+
import { useLiveRef } from "../../internals/dom/use-live-ref.js";
|
|
5
|
+
import { useFancyId } from "../../internals/use-id.js";
|
|
6
|
+
import { useSoundCue } from "../../sound/use-sound.js";
|
|
7
|
+
import { PopoverContent } from "./PopoverContent.js";
|
|
8
|
+
import { POPOVER_KEY } from "./types.js";
|
|
9
|
+
/* empty css */
|
|
10
|
+
const Popover = forwardRef(function Popover2({
|
|
11
|
+
open: openProp,
|
|
12
|
+
onOpenChange,
|
|
13
|
+
side = "bottom",
|
|
14
|
+
align = "center",
|
|
15
|
+
offset = 8,
|
|
16
|
+
dismissible = true,
|
|
17
|
+
trigger,
|
|
18
|
+
children,
|
|
19
|
+
className,
|
|
20
|
+
sound = false
|
|
21
|
+
}, forwardedRef) {
|
|
22
|
+
const contentId = useFancyId();
|
|
23
|
+
const [open, setOpenState] = useState(openProp ?? false);
|
|
24
|
+
const [lastOpenProp, setLastOpenProp] = useState(openProp);
|
|
25
|
+
if (lastOpenProp !== openProp) {
|
|
26
|
+
setLastOpenProp(openProp);
|
|
27
|
+
setOpenState(openProp ?? false);
|
|
28
|
+
}
|
|
29
|
+
const triggerRef = useRef(null);
|
|
30
|
+
const openRef = useLiveRef(open);
|
|
31
|
+
const playCue = useSoundCue(sound);
|
|
32
|
+
const setOpen = useCallback(
|
|
33
|
+
(next) => {
|
|
34
|
+
if (openRef.current === next) return;
|
|
35
|
+
setOpenState(next);
|
|
36
|
+
playCue(next ? "open" : "close");
|
|
37
|
+
onOpenChange?.(next);
|
|
38
|
+
},
|
|
39
|
+
[openRef, onOpenChange, playCue]
|
|
40
|
+
);
|
|
41
|
+
function toggle() {
|
|
42
|
+
setOpen(!open);
|
|
43
|
+
}
|
|
44
|
+
const close = useCallback(() => {
|
|
45
|
+
setOpen(false);
|
|
46
|
+
}, [setOpen]);
|
|
47
|
+
const context = useMemo(
|
|
48
|
+
() => ({
|
|
49
|
+
contentId,
|
|
50
|
+
side,
|
|
51
|
+
align,
|
|
52
|
+
offset,
|
|
53
|
+
dismissible,
|
|
54
|
+
open,
|
|
55
|
+
get triggerRef() {
|
|
56
|
+
return triggerRef.current;
|
|
57
|
+
},
|
|
58
|
+
close
|
|
59
|
+
}),
|
|
60
|
+
[contentId, side, align, offset, dismissible, open, close]
|
|
61
|
+
);
|
|
62
|
+
return /* @__PURE__ */ jsxs(POPOVER_KEY.Provider, { value: context, children: [
|
|
63
|
+
/* @__PURE__ */ jsx(
|
|
64
|
+
"button",
|
|
65
|
+
{
|
|
66
|
+
ref: triggerRef,
|
|
67
|
+
type: "button",
|
|
68
|
+
className: "ft-popover-trigger border-border text-foreground hover:bg-accent hover:text-accent-foreground inline-flex cursor-pointer items-center gap-1.5 rounded-[8px] border px-[14px] py-[7px] text-[12px] font-medium transition-colors focus-visible:ring-[3px] focus-visible:ring-[var(--ft-overlay-accent)]/35 focus-visible:outline-none",
|
|
69
|
+
"aria-expanded": open,
|
|
70
|
+
"aria-controls": open ? contentId : void 0,
|
|
71
|
+
onClick: toggle,
|
|
72
|
+
children: trigger
|
|
73
|
+
}
|
|
74
|
+
),
|
|
75
|
+
/* @__PURE__ */ jsx(PopoverContent, { ref: forwardedRef, className, children })
|
|
76
|
+
] });
|
|
77
|
+
});
|
|
78
|
+
Popover.displayName = "Popover";
|
|
79
|
+
export {
|
|
80
|
+
Popover
|
|
81
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface PopoverContentProps {
|
|
3
|
+
/** The panel's content, forwarded straight from `Popover`'s own `children`. */
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
/** Additional CSS classes, merged onto the panel. */
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The portalled, anchored panel.
|
|
10
|
+
*
|
|
11
|
+
* No `role` here on purpose. A popover is a disclosure, not a dialog — it
|
|
12
|
+
* has no title to hang `aria-labelledby` off (the `trigger` node is whatever
|
|
13
|
+
* the caller passed, not a documented "title"), and `role="dialog"` without
|
|
14
|
+
* an accessible name is worse than no role at all. Reachability comes from
|
|
15
|
+
* `useFocusTrap` (moves focus in, and returns it to the trigger the instant
|
|
16
|
+
* the panel is dismissed) and `useDismissable`, not from a landmark role.
|
|
17
|
+
*
|
|
18
|
+
* The source declares `ref = $bindable(null)`, so the panel element arrives
|
|
19
|
+
* through the ref channel rather than a prop.
|
|
20
|
+
*/
|
|
21
|
+
export declare const PopoverContent: import("react").ForwardRefExoticComponent<PopoverContentProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { Portal } from "../../internals/Portal.js";
|
|
6
|
+
import { useAnchorPosition } from "../../internals/use-anchor-position.js";
|
|
7
|
+
import { useDismissable } from "../../internals/dismissable.js";
|
|
8
|
+
import { useFocusTrap } from "../../internals/focus-trap.js";
|
|
9
|
+
import { useComposedRefs } from "../../internals/dom/use-composed-refs.js";
|
|
10
|
+
import { useElementRef } from "../../internals/dom/use-element-ref.js";
|
|
11
|
+
import { anchored, originFor } from "../../internals/motion/anchored.js";
|
|
12
|
+
import { usePresence } from "../../internals/motion/presence.js";
|
|
13
|
+
import { usePopoverContext } from "./types.js";
|
|
14
|
+
const PopoverContent = forwardRef(
|
|
15
|
+
function PopoverContent2({ children, className }, forwardedRef) {
|
|
16
|
+
const ctx = usePopoverContext();
|
|
17
|
+
const [panel, setPanelNode] = useElementRef();
|
|
18
|
+
const { side: resolvedSide, align: resolvedAlign } = useAnchorPosition(panel, {
|
|
19
|
+
anchor: () => ctx.triggerRef,
|
|
20
|
+
side: ctx.side,
|
|
21
|
+
align: ctx.align,
|
|
22
|
+
offset: ctx.offset
|
|
23
|
+
});
|
|
24
|
+
const trap = useFocusTrap(panel, { returnFocus: true });
|
|
25
|
+
const presence = usePresence(ctx.open, {
|
|
26
|
+
// The two halves of the focus handshake, at the two moments the
|
|
27
|
+
// source puts them: `onintrostart` → rearm, `onoutrostart` →
|
|
28
|
+
// returnFocusNow.
|
|
29
|
+
//
|
|
30
|
+
// `returnFocusNow` at the dismiss instant is the whole point:
|
|
31
|
+
// waiting for the trap's own `destroy()` would strand a keyboard
|
|
32
|
+
// user on `<body>` for the whole length of the fade, because the
|
|
33
|
+
// panel is marked `inert` the instant the exit starts.
|
|
34
|
+
//
|
|
35
|
+
// `rearm` is the other half. A popover reopened DURING its fade
|
|
36
|
+
// reverses the exit instead of remounting, so the trap is never
|
|
37
|
+
// re-created: without this the panel would come back interactive
|
|
38
|
+
// with focus left on the trigger behind it, Tab walking the page
|
|
39
|
+
// rather than the panel, and the eager return already spent for the
|
|
40
|
+
// life of the instance.
|
|
41
|
+
onEnterStart: () => trap.rearm(),
|
|
42
|
+
onExitStart: () => trap.returnFocusNow()
|
|
43
|
+
});
|
|
44
|
+
useDismissable(panel, {
|
|
45
|
+
onDismiss: ctx.close,
|
|
46
|
+
escape: ctx.dismissible,
|
|
47
|
+
outsideClick: ctx.dismissible,
|
|
48
|
+
exclude: () => [ctx.triggerRef],
|
|
49
|
+
active: ctx.open
|
|
50
|
+
});
|
|
51
|
+
const panelRef = useComposedRefs(
|
|
52
|
+
setPanelNode,
|
|
53
|
+
forwardedRef,
|
|
54
|
+
presence.register(anchored, (entering) => ({ side: resolvedSide, entering }))
|
|
55
|
+
);
|
|
56
|
+
const classes = cn(
|
|
57
|
+
"ft-popover-content flex w-max flex-col gap-[6px] rounded-[10px] border border-border bg-popover px-[14px] py-[12px] text-[12px] text-popover-foreground shadow-lg outline-none",
|
|
58
|
+
className
|
|
59
|
+
);
|
|
60
|
+
return /* @__PURE__ */ jsx(Portal, { children: presence.mounted ? /* @__PURE__ */ jsx(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
ref: panelRef,
|
|
64
|
+
id: ctx.contentId,
|
|
65
|
+
className: classes,
|
|
66
|
+
"data-state": presence.surfaceState,
|
|
67
|
+
"data-side": resolvedSide,
|
|
68
|
+
"data-align": ctx.align,
|
|
69
|
+
style: { transformOrigin: originFor(resolvedSide, resolvedAlign) },
|
|
70
|
+
children
|
|
71
|
+
}
|
|
72
|
+
) : null });
|
|
73
|
+
}
|
|
74
|
+
);
|
|
75
|
+
PopoverContent.displayName = "PopoverContent";
|
|
76
|
+
export {
|
|
77
|
+
PopoverContent
|
|
78
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { Popover } from "./Popover.js";
|
|
2
|
+
export type { PopoverProps } from "./Popover.js";
|
|
3
|
+
export { PopoverContent } from "./PopoverContent.js";
|
|
4
|
+
export type { PopoverContentProps } from "./PopoverContent.js";
|
|
5
|
+
export { POPOVER_KEY } from "./types.js";
|
|
6
|
+
export type { PopoverContext } from "./types.js";
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contract between the `Popover` root and its portalled content panel,
|
|
3
|
+
* and the React context that carries it.
|
|
4
|
+
*
|
|
5
|
+
* The source publishes this contract under a `unique symbol` context key;
|
|
6
|
+
* React's own context object plays that role here, so the exported name is
|
|
7
|
+
* kept and the value is a `React.Context` object rather than a symbol — the
|
|
8
|
+
* same substitution the menu family makes for `MENU_KEY`:
|
|
9
|
+
*
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const popover = useContext(POPOVER_KEY);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
import type { Side, Align } from "../../internals/anchor-position.js";
|
|
15
|
+
/**
|
|
16
|
+
* The contract between the `Popover` root and its portalled content panel.
|
|
17
|
+
*
|
|
18
|
+
* The root owns everything that decides *whether* and *where* the panel
|
|
19
|
+
* renders — the open flag, the trigger element to anchor against, and the
|
|
20
|
+
* positioning/dismiss knobs the caller passed in. The content panel only
|
|
21
|
+
* ever reads this; it never sets `open` itself (it closes through `close()`,
|
|
22
|
+
* which routes back through the root so `onOpenChange` still fires).
|
|
23
|
+
*/
|
|
24
|
+
export interface PopoverContext {
|
|
25
|
+
/** The panel's own id — also what the trigger's `aria-controls` points at. */
|
|
26
|
+
readonly contentId: string;
|
|
27
|
+
/** Side of the trigger to place the panel on. */
|
|
28
|
+
readonly side: Side;
|
|
29
|
+
/** Alignment along the trigger's cross axis. */
|
|
30
|
+
readonly align: Align;
|
|
31
|
+
/** Gap in pixels between the trigger and the panel. */
|
|
32
|
+
readonly offset: number;
|
|
33
|
+
/** Whether Escape and an outside click are allowed to close the panel. */
|
|
34
|
+
readonly dismissible: boolean;
|
|
35
|
+
/** The real trigger button, once mounted — what the panel anchors against. */
|
|
36
|
+
readonly triggerRef: HTMLElement | null;
|
|
37
|
+
/**
|
|
38
|
+
* Whether the panel is open. Read by the panel's own presence clock to
|
|
39
|
+
* tell an entrance from a departure, and by `useDismissable`'s `active`
|
|
40
|
+
* gate, so a panel that is already fading stops answering Escape and
|
|
41
|
+
* stops counting as the top layer.
|
|
42
|
+
*
|
|
43
|
+
* A plain boolean where the source needed a getter (divergence D-6):
|
|
44
|
+
* React re-renders the still-mounted exiting panel normally, so every
|
|
45
|
+
* reader sees the current value without a getter having to defeat an
|
|
46
|
+
* inert-effect scheduler.
|
|
47
|
+
*
|
|
48
|
+
* The panel still never *writes* this: it closes through `close()`, which
|
|
49
|
+
* routes back through the root so `onOpenChange` fires exactly once.
|
|
50
|
+
*/
|
|
51
|
+
readonly open: boolean;
|
|
52
|
+
/** Closes the panel, going through the root's own `open` state so `onOpenChange` fires. */
|
|
53
|
+
close(): void;
|
|
54
|
+
}
|
|
55
|
+
export declare const POPOVER_KEY: import("react").Context<PopoverContext | undefined>;
|
|
56
|
+
/**
|
|
57
|
+
* Reads the enclosing `Popover`'s context.
|
|
58
|
+
*
|
|
59
|
+
* `Popover` only ever mounts `PopoverContent` under its own provider, so
|
|
60
|
+
* there is no standalone-usage fallback to design for — the same assumption
|
|
61
|
+
* the source's own content component makes about its root. Internal: not
|
|
62
|
+
* exported from `index.ts`.
|
|
63
|
+
*/
|
|
64
|
+
export declare function usePopoverContext(): PopoverContext;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
const POPOVER_KEY = createContext(void 0);
|
|
4
|
+
POPOVER_KEY.displayName = "PopoverContext";
|
|
5
|
+
function usePopoverContext() {
|
|
6
|
+
const value = useContext(POPOVER_KEY);
|
|
7
|
+
if (value === void 0) {
|
|
8
|
+
throw new Error(
|
|
9
|
+
"PopoverContext is missing: this component must be rendered inside its provider."
|
|
10
|
+
);
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
POPOVER_KEY,
|
|
16
|
+
usePopoverContext
|
|
17
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { PresetName } from "../../internals/motion/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Presence — mounts and unmounts content with a real entrance and exit rather
|
|
5
|
+
* than an instant swap, driving `data-state` through `opening → open →
|
|
6
|
+
* closing` and firing lifecycle callbacks a caller can hook into. Shares
|
|
7
|
+
* Reveal's preset vocabulary, plus `blur`/`zoom` — the one place besides
|
|
8
|
+
* Reveal a preset may carry `filter`, and here it is opt-in per instance
|
|
9
|
+
* rather than per child — with an asymmetric, faster-leaving exit by default.
|
|
10
|
+
*
|
|
11
|
+
* There is deliberately no stylesheet: the source has no `<style>` block and
|
|
12
|
+
* no custom properties, because the motion is entirely JS-timed through
|
|
13
|
+
* `duration`/`exitDuration`/`delay`/`distance` feeding `preset()`'s sampled
|
|
14
|
+
* keyframes. There is nothing for a stylesheet to override; use the props.
|
|
15
|
+
*/
|
|
16
|
+
export interface PresenceProps extends Omit<HTMLAttributes<HTMLDivElement>, "className" | "children"> {
|
|
17
|
+
/** Whether the content is mounted and, once the entrance settles, visible. */
|
|
18
|
+
open: boolean;
|
|
19
|
+
/** Shares Reveal's preset vocabulary, plus `blur`/`zoom` — the one place besides Reveal a preset may carry `filter`, and here it's opt-in per instance, not per child. */
|
|
20
|
+
preset?: PresetName;
|
|
21
|
+
/** Entrance duration in ms. */
|
|
22
|
+
duration?: number;
|
|
23
|
+
/** Exit duration in ms — shorter than the entrance by default; leaving reads faster than arriving. */
|
|
24
|
+
exitDuration?: number;
|
|
25
|
+
/** Delay in ms before the entrance starts. Applied to the exit too. */
|
|
26
|
+
delay?: number;
|
|
27
|
+
/** Entrance travel distance in px for the four directional presets. The exit travels half as far. */
|
|
28
|
+
distance?: number;
|
|
29
|
+
/** Whether the panel is `inert` while closing. `true`, the default, reproduces the native behaviour the source framework applies to any transitioning element; `false` is an explicit opt-out, and it means the attribute is never touched at all. */
|
|
30
|
+
inert?: boolean;
|
|
31
|
+
/** Fires once the entrance transition settles. */
|
|
32
|
+
onEnterEnd?: () => void;
|
|
33
|
+
/** Fires once the exit transition settles — NOT guaranteed if the component is unmounted mid-exit. */
|
|
34
|
+
onExitEnd?: () => void;
|
|
35
|
+
/** Additional CSS classes, merged onto the root. */
|
|
36
|
+
className?: string;
|
|
37
|
+
/** Panel content. */
|
|
38
|
+
children: ReactNode;
|
|
39
|
+
}
|
|
40
|
+
export declare const Presence: import("react").ForwardRefExoticComponent<PresenceProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { useComposedRefs } from "../../internals/dom/use-composed-refs.js";
|
|
6
|
+
import { useReducedMotion } from "../../internals/motion/media-query.js";
|
|
7
|
+
import { usePresence } from "../../internals/motion/presence.js";
|
|
8
|
+
import { preset } from "../../internals/motion/transitions.js";
|
|
9
|
+
const Presence = forwardRef(function Presence2({
|
|
10
|
+
open,
|
|
11
|
+
preset: preset$1 = "fade",
|
|
12
|
+
duration = 300,
|
|
13
|
+
// DURATIONS.base
|
|
14
|
+
exitDuration = 200,
|
|
15
|
+
// DURATIONS.exit
|
|
16
|
+
delay = 0,
|
|
17
|
+
distance = 16,
|
|
18
|
+
inert = true,
|
|
19
|
+
onEnterEnd,
|
|
20
|
+
onExitEnd,
|
|
21
|
+
className,
|
|
22
|
+
children,
|
|
23
|
+
...restProps
|
|
24
|
+
}, forwardedRef) {
|
|
25
|
+
const reduced = useReducedMotion();
|
|
26
|
+
const presence = usePresence(open, { inert, onEnterEnd, onExitEnd });
|
|
27
|
+
const rootRef = useComposedRefs(
|
|
28
|
+
forwardedRef,
|
|
29
|
+
presence.register(preset(preset$1), (entering) => ({
|
|
30
|
+
duration: reduced ? 0 : entering ? duration : exitDuration,
|
|
31
|
+
delay: reduced ? 0 : delay,
|
|
32
|
+
distance: entering ? distance : distance / 2
|
|
33
|
+
}))
|
|
34
|
+
);
|
|
35
|
+
if (!presence.mounted) return null;
|
|
36
|
+
return /* @__PURE__ */ jsx(
|
|
37
|
+
"div",
|
|
38
|
+
{
|
|
39
|
+
...restProps,
|
|
40
|
+
ref: rootRef,
|
|
41
|
+
className: cn("ft-presence", className),
|
|
42
|
+
"data-state": presence.state,
|
|
43
|
+
children
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
});
|
|
47
|
+
export {
|
|
48
|
+
Presence
|
|
49
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
import type { HapticPattern } from "../../internals/motion/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Props for Pressable.
|
|
5
|
+
*
|
|
6
|
+
* Pressable wraps exactly one interactive child (a `<button>`, an `<a>`,
|
|
7
|
+
* or anything that already owns its own role and keyboard handling) and
|
|
8
|
+
* gives it a consistent, cross-browser press animation. It supersedes a
|
|
9
|
+
* hand-rolled `:active` style — see the README before pairing the two.
|
|
10
|
+
*/
|
|
11
|
+
export interface PressableProps extends Omit<HTMLAttributes<HTMLDivElement>, "onPointerDown" | "onPointerUp" | "onPointerCancel" | "onPointerLeave" | "onBlur" | "onKeyDown" | "onKeyUp"> {
|
|
12
|
+
/** Additional CSS classes. */
|
|
13
|
+
className?: string;
|
|
14
|
+
/** How far the wrapper shrinks while pressed, as a CSS `scale()` factor. */
|
|
15
|
+
scale?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Touch-only haptic pattern fired on `pointerdown`. `false` (the
|
|
18
|
+
* default) never vibrates — this is an opt-in, additive effect, never
|
|
19
|
+
* a required one.
|
|
20
|
+
*/
|
|
21
|
+
haptic?: false | HapticPattern;
|
|
22
|
+
/** Suppresses every listener; the wrapper never sets `data-pressed`. */
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/** Exactly one interactive child. Not enforced at runtime — documented only. */
|
|
25
|
+
children: ReactNode;
|
|
26
|
+
}
|
|
27
|
+
export declare const Pressable: import("react").ForwardRefExoticComponent<PressableProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { forwardRef, useRef, useState, useEffect } from "react";
|
|
4
|
+
import { cn } from "../../utils.js";
|
|
5
|
+
import { useComposedRefs } from "../../internals/dom/use-composed-refs.js";
|
|
6
|
+
import { canVibrate, vibrate } from "../../internals/motion/haptics.js";
|
|
7
|
+
/* empty css */
|
|
8
|
+
const DEFAULT_SCALE = 0.97;
|
|
9
|
+
function isActivationKey(key) {
|
|
10
|
+
return key === " " || key === "Enter";
|
|
11
|
+
}
|
|
12
|
+
const Pressable = forwardRef(
|
|
13
|
+
({
|
|
14
|
+
scale = DEFAULT_SCALE,
|
|
15
|
+
haptic = false,
|
|
16
|
+
disabled = false,
|
|
17
|
+
children,
|
|
18
|
+
className,
|
|
19
|
+
style,
|
|
20
|
+
...restProps
|
|
21
|
+
}, ref) => {
|
|
22
|
+
const rootRef = useRef(null);
|
|
23
|
+
const setRootRef = useComposedRefs(ref, rootRef);
|
|
24
|
+
const [pressed, setPressed] = useState(false);
|
|
25
|
+
function isInsideRoot(target) {
|
|
26
|
+
const root = rootRef.current;
|
|
27
|
+
return !!root && target instanceof Node && root.contains(target);
|
|
28
|
+
}
|
|
29
|
+
function press() {
|
|
30
|
+
if (!disabled) setPressed(true);
|
|
31
|
+
}
|
|
32
|
+
function release() {
|
|
33
|
+
setPressed(false);
|
|
34
|
+
}
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (disabled) setPressed(false);
|
|
37
|
+
}, [disabled]);
|
|
38
|
+
function handlePointerDown(event) {
|
|
39
|
+
if (disabled) return;
|
|
40
|
+
if (event.pointerType === "mouse" && event.button !== 0) return;
|
|
41
|
+
press();
|
|
42
|
+
if (haptic && event.pointerType === "touch" && canVibrate()) vibrate(haptic);
|
|
43
|
+
}
|
|
44
|
+
function handlePointerRelease() {
|
|
45
|
+
release();
|
|
46
|
+
}
|
|
47
|
+
function handleFocusOut() {
|
|
48
|
+
release();
|
|
49
|
+
}
|
|
50
|
+
function handleKeyDown(event) {
|
|
51
|
+
if (disabled || event.repeat) return;
|
|
52
|
+
if (!isActivationKey(event.key)) return;
|
|
53
|
+
if (!isInsideRoot(event.target)) return;
|
|
54
|
+
press();
|
|
55
|
+
}
|
|
56
|
+
function handleKeyUp(event) {
|
|
57
|
+
if (event.repeat) return;
|
|
58
|
+
if (!isActivationKey(event.key)) return;
|
|
59
|
+
release();
|
|
60
|
+
}
|
|
61
|
+
const mergedStyle = scale === DEFAULT_SCALE ? style : { ...style, "--ft-pressable-scale": scale };
|
|
62
|
+
return /* @__PURE__ */ jsx(
|
|
63
|
+
"div",
|
|
64
|
+
{
|
|
65
|
+
ref: setRootRef,
|
|
66
|
+
className: cn("ft-pressable", className),
|
|
67
|
+
...restProps,
|
|
68
|
+
style: mergedStyle,
|
|
69
|
+
"data-pressed": pressed ? "true" : void 0,
|
|
70
|
+
"data-disabled": disabled ? "true" : void 0,
|
|
71
|
+
onPointerDown: handlePointerDown,
|
|
72
|
+
onPointerUp: handlePointerRelease,
|
|
73
|
+
onPointerCancel: handlePointerRelease,
|
|
74
|
+
onPointerLeave: handlePointerRelease,
|
|
75
|
+
onBlur: handleFocusOut,
|
|
76
|
+
onKeyDown: handleKeyDown,
|
|
77
|
+
onKeyUp: handleKeyUp,
|
|
78
|
+
children
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
Pressable.displayName = "Pressable";
|
|
84
|
+
export {
|
|
85
|
+
Pressable
|
|
86
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface PromptSuggestionsProps {
|
|
3
|
+
/** Prompt texts offered to the user, in display order */
|
|
4
|
+
suggestions: string[];
|
|
5
|
+
/** Called with the chosen prompt and its index when a pill is activated */
|
|
6
|
+
onSelect?: (suggestion: string, index: number) => void;
|
|
7
|
+
/** Whether the pills are shown; flipping this to true replays the entrance */
|
|
8
|
+
visible?: boolean;
|
|
9
|
+
/** Delay between two consecutive pills entering, in milliseconds. Defaults to
|
|
10
|
+
* 60ms via a CSS fallback — omit this prop to let an ancestor's
|
|
11
|
+
* `--ft-suggestions-stagger` theme the whole subtree instead. */
|
|
12
|
+
staggerMs?: number;
|
|
13
|
+
/** Accessible name of the group wrapping the pills */
|
|
14
|
+
label?: string;
|
|
15
|
+
/** Custom pill content, receiving the suggestion and its index */
|
|
16
|
+
item?: (suggestion: string, index: number) => ReactNode;
|
|
17
|
+
/** Additional CSS classes */
|
|
18
|
+
className?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Plays the matching interface cue through the sound controller. Off
|
|
21
|
+
* by default; only audible once the user has enabled sound.
|
|
22
|
+
*/
|
|
23
|
+
sound?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare const PromptSuggestions: import("react").ForwardRefExoticComponent<PromptSuggestionsProps & import("react").RefAttributes<HTMLDivElement>>;
|