fancy-ui-svelte 0.9.0 → 0.10.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/README.md +8 -102
- package/dist/fancy-ui/_internals/FieldConsumer.test.svelte +25 -0
- package/dist/fancy-ui/_internals/FieldConsumer.test.svelte.d.ts +18 -0
- package/dist/fancy-ui/_internals/FieldHarness.test.svelte +37 -0
- package/dist/fancy-ui/_internals/FieldHarness.test.svelte.d.ts +8 -0
- package/dist/fancy-ui/_internals/Markdown.svelte +227 -0
- package/dist/fancy-ui/_internals/Markdown.svelte.d.ts +24 -0
- package/dist/fancy-ui/_internals/MarkdownInline.svelte +56 -0
- package/dist/fancy-ui/_internals/MarkdownInline.svelte.d.ts +7 -0
- package/dist/fancy-ui/_internals/StreamText.svelte +64 -0
- package/dist/fancy-ui/_internals/StreamText.svelte.d.ts +14 -0
- package/dist/fancy-ui/_internals/StreamText.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/StreamText.test.js +77 -0
- package/dist/fancy-ui/_internals/ai-types.d.ts +117 -0
- package/dist/fancy-ui/_internals/ai-types.js +9 -0
- package/dist/fancy-ui/_internals/anchor-position.d.ts +61 -0
- package/dist/fancy-ui/_internals/anchor-position.js +158 -0
- package/dist/fancy-ui/_internals/anchor-position.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/anchor-position.test.js +205 -0
- package/dist/fancy-ui/_internals/autoscroll.d.ts +30 -0
- package/dist/fancy-ui/_internals/autoscroll.js +149 -0
- package/dist/fancy-ui/_internals/autoscroll.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/autoscroll.test.js +233 -0
- package/dist/fancy-ui/_internals/calendar-core.d.ts +26 -0
- package/dist/fancy-ui/_internals/calendar-core.js +75 -0
- package/dist/fancy-ui/_internals/calendar-core.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/calendar-core.test.js +132 -0
- package/dist/fancy-ui/_internals/clipboard.svelte.d.ts +18 -0
- package/dist/fancy-ui/_internals/clipboard.svelte.js +58 -0
- package/dist/fancy-ui/_internals/clipboard.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/clipboard.test.js +97 -0
- package/dist/fancy-ui/_internals/diff.d.ts +38 -0
- package/dist/fancy-ui/_internals/diff.js +211 -0
- package/dist/fancy-ui/_internals/diff.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/diff.test.js +261 -0
- package/dist/fancy-ui/_internals/dismissable.d.ts +12 -0
- package/dist/fancy-ui/_internals/dismissable.js +63 -0
- package/dist/fancy-ui/_internals/dismissable.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/dismissable.test.js +128 -0
- package/dist/fancy-ui/_internals/elapsed.svelte.d.ts +49 -0
- package/dist/fancy-ui/_internals/elapsed.svelte.js +106 -0
- package/dist/fancy-ui/_internals/elapsed.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/elapsed.test.js +124 -0
- package/dist/fancy-ui/_internals/field.svelte.d.ts +106 -0
- package/dist/fancy-ui/_internals/field.svelte.js +73 -0
- package/dist/fancy-ui/_internals/field.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/field.test.js +223 -0
- package/dist/fancy-ui/_internals/float.d.ts +46 -0
- package/dist/fancy-ui/_internals/float.js +177 -0
- package/dist/fancy-ui/_internals/float.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/float.test.js +242 -0
- package/dist/fancy-ui/_internals/focus-trap.d.ts +18 -0
- package/dist/fancy-ui/_internals/focus-trap.js +135 -0
- package/dist/fancy-ui/_internals/focus-trap.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/focus-trap.test.js +229 -0
- package/dist/fancy-ui/_internals/host.d.ts +38 -0
- package/dist/fancy-ui/_internals/host.js +63 -0
- package/dist/fancy-ui/_internals/host.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/host.test.js +57 -0
- package/dist/fancy-ui/_internals/id.d.ts +11 -0
- package/dist/fancy-ui/_internals/id.js +30 -0
- package/dist/fancy-ui/_internals/id.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/id.test.js +31 -0
- package/dist/fancy-ui/_internals/listbox.svelte.d.ts +50 -0
- package/dist/fancy-ui/_internals/listbox.svelte.js +207 -0
- package/dist/fancy-ui/_internals/listbox.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/listbox.test.js +399 -0
- package/dist/fancy-ui/_internals/markdown-security.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/markdown-security.test.js +258 -0
- package/dist/fancy-ui/_internals/markdown.d.ts +66 -0
- package/dist/fancy-ui/_internals/markdown.js +586 -0
- package/dist/fancy-ui/_internals/markdown.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/markdown.test.js +473 -0
- package/dist/fancy-ui/_internals/menu.svelte.d.ts +74 -0
- package/dist/fancy-ui/_internals/menu.svelte.js +307 -0
- package/dist/fancy-ui/_internals/menu.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/menu.test.js +393 -0
- package/dist/fancy-ui/_internals/portal.d.ts +14 -0
- package/dist/fancy-ui/_internals/portal.js +49 -0
- package/dist/fancy-ui/_internals/portal.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/portal.test.js +57 -0
- package/dist/fancy-ui/_internals/relative-time.d.ts +22 -0
- package/dist/fancy-ui/_internals/relative-time.js +56 -0
- package/dist/fancy-ui/_internals/relative-time.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/relative-time.test.js +56 -0
- package/dist/fancy-ui/_internals/scroll-lock.d.ts +7 -0
- package/dist/fancy-ui/_internals/scroll-lock.js +91 -0
- package/dist/fancy-ui/_internals/scroll-lock.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/scroll-lock.test.js +98 -0
- package/dist/fancy-ui/_internals/stream-text.svelte.d.ts +45 -0
- package/dist/fancy-ui/_internals/stream-text.svelte.js +106 -0
- package/dist/fancy-ui/_internals/stream-text.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/stream-text.test.js +117 -0
- package/dist/fancy-ui/_internals/waveform-core.d.ts +33 -0
- package/dist/fancy-ui/_internals/waveform-core.js +63 -0
- package/dist/fancy-ui/_internals/waveform-core.test.d.ts +1 -0
- package/dist/fancy-ui/_internals/waveform-core.test.js +124 -0
- package/dist/fancy-ui/agent-plan/AgentPlan.svelte +459 -0
- package/dist/fancy-ui/agent-plan/AgentPlan.svelte.d.ts +24 -0
- package/dist/fancy-ui/agent-plan/AgentPlan.test.d.ts +1 -0
- package/dist/fancy-ui/agent-plan/AgentPlan.test.js +305 -0
- package/dist/fancy-ui/agent-plan/README.md +136 -0
- package/dist/fancy-ui/agent-plan/index.d.ts +3 -0
- package/dist/fancy-ui/agent-plan/index.js +2 -0
- package/dist/fancy-ui/ai-data-table/AiDataTable.svelte +214 -0
- package/dist/fancy-ui/ai-data-table/AiDataTable.svelte.d.ts +45 -0
- package/dist/fancy-ui/ai-data-table/AiDataTable.test.d.ts +1 -0
- package/dist/fancy-ui/ai-data-table/AiDataTable.test.js +223 -0
- package/dist/fancy-ui/ai-data-table/README.md +147 -0
- package/dist/fancy-ui/ai-data-table/index.d.ts +3 -0
- package/dist/fancy-ui/ai-data-table/index.js +2 -0
- package/dist/fancy-ui/alert-dialog/AlertDialog.svelte +139 -0
- package/dist/fancy-ui/alert-dialog/AlertDialog.svelte.d.ts +34 -0
- package/dist/fancy-ui/alert-dialog/AlertDialog.test.d.ts +1 -0
- package/dist/fancy-ui/alert-dialog/AlertDialog.test.js +254 -0
- package/dist/fancy-ui/alert-dialog/README.md +75 -0
- package/dist/fancy-ui/alert-dialog/index.d.ts +2 -0
- package/dist/fancy-ui/alert-dialog/index.js +2 -0
- package/dist/fancy-ui/approval-card/ApprovalCard.svelte +299 -0
- package/dist/fancy-ui/approval-card/ApprovalCard.svelte.d.ts +35 -0
- package/dist/fancy-ui/approval-card/ApprovalCard.test.d.ts +1 -0
- package/dist/fancy-ui/approval-card/ApprovalCard.test.js +175 -0
- package/dist/fancy-ui/approval-card/ApprovalCardHarness.test.svelte +35 -0
- package/dist/fancy-ui/approval-card/ApprovalCardHarness.test.svelte.d.ts +13 -0
- package/dist/fancy-ui/approval-card/README.md +116 -0
- package/dist/fancy-ui/approval-card/index.d.ts +3 -0
- package/dist/fancy-ui/approval-card/index.js +2 -0
- package/dist/fancy-ui/artifact-card/ArtifactCard.svelte +362 -0
- package/dist/fancy-ui/artifact-card/ArtifactCard.svelte.d.ts +35 -0
- package/dist/fancy-ui/artifact-card/ArtifactCard.test.d.ts +1 -0
- package/dist/fancy-ui/artifact-card/ArtifactCard.test.js +214 -0
- package/dist/fancy-ui/artifact-card/README.md +124 -0
- package/dist/fancy-ui/artifact-card/index.d.ts +3 -0
- package/dist/fancy-ui/artifact-card/index.js +2 -0
- package/dist/fancy-ui/autocomplete/Autocomplete.svelte +272 -0
- package/dist/fancy-ui/autocomplete/Autocomplete.svelte.d.ts +35 -0
- package/dist/fancy-ui/autocomplete/Autocomplete.test.d.ts +1 -0
- package/dist/fancy-ui/autocomplete/Autocomplete.test.js +400 -0
- package/dist/fancy-ui/autocomplete/AutocompleteFieldHarness.test.svelte +68 -0
- package/dist/fancy-ui/autocomplete/AutocompleteFieldHarness.test.svelte.d.ts +20 -0
- package/dist/fancy-ui/autocomplete/AutocompleteHarness.test.svelte +30 -0
- package/dist/fancy-ui/autocomplete/AutocompleteHarness.test.svelte.d.ts +9 -0
- package/dist/fancy-ui/autocomplete/AutocompletePanel.svelte +75 -0
- package/dist/fancy-ui/autocomplete/AutocompletePanel.svelte.d.ts +18 -0
- package/dist/fancy-ui/autocomplete/README.md +160 -0
- package/dist/fancy-ui/autocomplete/index.d.ts +4 -0
- package/dist/fancy-ui/autocomplete/index.js +3 -0
- package/dist/fancy-ui/autocomplete/match.d.ts +6 -0
- package/dist/fancy-ui/autocomplete/match.js +16 -0
- package/dist/fancy-ui/autocomplete/types.d.ts +32 -0
- package/dist/fancy-ui/autocomplete/types.js +1 -0
- package/dist/fancy-ui/breadcrumb/Breadcrumb.svelte +145 -0
- package/dist/fancy-ui/breadcrumb/Breadcrumb.svelte.d.ts +39 -0
- package/dist/fancy-ui/breadcrumb/Breadcrumb.test.d.ts +1 -0
- package/dist/fancy-ui/breadcrumb/Breadcrumb.test.js +268 -0
- package/dist/fancy-ui/breadcrumb/README.md +119 -0
- package/dist/fancy-ui/breadcrumb/index.d.ts +3 -0
- package/dist/fancy-ui/breadcrumb/index.js +2 -0
- package/dist/fancy-ui/button/Button.svelte +234 -0
- package/dist/fancy-ui/button/Button.svelte.d.ts +43 -0
- package/dist/fancy-ui/button/Button.test.d.ts +1 -0
- package/dist/fancy-ui/button/Button.test.js +231 -0
- package/dist/fancy-ui/button/README.md +91 -0
- package/dist/fancy-ui/button/index.d.ts +3 -0
- package/dist/fancy-ui/button/index.js +2 -0
- package/dist/fancy-ui/button/types.d.ts +4 -0
- package/dist/fancy-ui/button/types.js +1 -0
- package/dist/fancy-ui/button-group/ButtonGroup.svelte +129 -0
- package/dist/fancy-ui/button-group/ButtonGroup.svelte.d.ts +17 -0
- package/dist/fancy-ui/button-group/ButtonGroup.test.d.ts +1 -0
- package/dist/fancy-ui/button-group/ButtonGroup.test.js +133 -0
- package/dist/fancy-ui/button-group/ButtonGroupContextProbe.test.svelte +15 -0
- package/dist/fancy-ui/button-group/ButtonGroupContextProbe.test.svelte.d.ts +18 -0
- package/dist/fancy-ui/button-group/ButtonGroupHarness.test.svelte +21 -0
- package/dist/fancy-ui/button-group/ButtonGroupHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/button-group/README.md +91 -0
- package/dist/fancy-ui/button-group/index.d.ts +4 -0
- package/dist/fancy-ui/button-group/index.js +3 -0
- package/dist/fancy-ui/button-group/types.d.ts +16 -0
- package/dist/fancy-ui/button-group/types.js +10 -0
- package/dist/fancy-ui/chat-error/ChatError.svelte +195 -0
- package/dist/fancy-ui/chat-error/ChatError.svelte.d.ts +27 -0
- package/dist/fancy-ui/chat-error/ChatError.test.d.ts +1 -0
- package/dist/fancy-ui/chat-error/ChatError.test.js +94 -0
- package/dist/fancy-ui/chat-error/README.md +78 -0
- package/dist/fancy-ui/chat-error/index.d.ts +3 -0
- package/dist/fancy-ui/chat-error/index.js +2 -0
- package/dist/fancy-ui/chat-message/ChatMessage.svelte +205 -0
- package/dist/fancy-ui/chat-message/ChatMessage.svelte.d.ts +31 -0
- package/dist/fancy-ui/chat-message/ChatMessage.test.d.ts +1 -0
- package/dist/fancy-ui/chat-message/ChatMessage.test.js +179 -0
- package/dist/fancy-ui/chat-message/ChatMessageAction.svelte +82 -0
- package/dist/fancy-ui/chat-message/ChatMessageAction.svelte.d.ts +21 -0
- package/dist/fancy-ui/chat-message/ChatMessageActions.svelte +73 -0
- package/dist/fancy-ui/chat-message/ChatMessageActions.svelte.d.ts +15 -0
- package/dist/fancy-ui/chat-message/ChatMessageBranches.svelte +86 -0
- package/dist/fancy-ui/chat-message/ChatMessageBranches.svelte.d.ts +16 -0
- package/dist/fancy-ui/chat-message/ChatMessageHarness.test.svelte +47 -0
- package/dist/fancy-ui/chat-message/ChatMessageHarness.test.svelte.d.ts +12 -0
- package/dist/fancy-ui/chat-message/ChatMessageParts.test.d.ts +1 -0
- package/dist/fancy-ui/chat-message/ChatMessageParts.test.js +173 -0
- package/dist/fancy-ui/chat-message/README.md +184 -0
- package/dist/fancy-ui/chat-message/index.d.ts +10 -0
- package/dist/fancy-ui/chat-message/index.js +6 -0
- package/dist/fancy-ui/chat-message/types.d.ts +18 -0
- package/dist/fancy-ui/chat-message/types.js +10 -0
- package/dist/fancy-ui/chat-panel/ChatEmptyState.svelte +80 -0
- package/dist/fancy-ui/chat-panel/ChatEmptyState.svelte.d.ts +21 -0
- package/dist/fancy-ui/chat-panel/ChatPanel.svelte +303 -0
- package/dist/fancy-ui/chat-panel/ChatPanel.svelte.d.ts +29 -0
- package/dist/fancy-ui/chat-panel/ChatPanel.test.d.ts +1 -0
- package/dist/fancy-ui/chat-panel/ChatPanel.test.js +303 -0
- package/dist/fancy-ui/chat-panel/README.md +209 -0
- package/dist/fancy-ui/chat-panel/index.d.ts +5 -0
- package/dist/fancy-ui/chat-panel/index.js +3 -0
- package/dist/fancy-ui/checkbox/Checkbox.svelte +235 -0
- package/dist/fancy-ui/checkbox/Checkbox.svelte.d.ts +50 -0
- package/dist/fancy-ui/checkbox/Checkbox.test.d.ts +1 -0
- package/dist/fancy-ui/checkbox/Checkbox.test.js +237 -0
- package/dist/fancy-ui/checkbox/CheckboxFieldHarness.test.svelte +25 -0
- package/dist/fancy-ui/checkbox/CheckboxFieldHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/checkbox/CheckboxHarness.test.svelte +34 -0
- package/dist/fancy-ui/checkbox/CheckboxHarness.test.svelte.d.ts +8 -0
- package/dist/fancy-ui/checkbox/README.md +150 -0
- package/dist/fancy-ui/checkbox/index.d.ts +3 -0
- package/dist/fancy-ui/checkbox/index.js +2 -0
- package/dist/fancy-ui/code-diff/CodeDiff.svelte +428 -0
- package/dist/fancy-ui/code-diff/CodeDiff.svelte.d.ts +27 -0
- package/dist/fancy-ui/code-diff/CodeDiff.test.d.ts +1 -0
- package/dist/fancy-ui/code-diff/CodeDiff.test.js +298 -0
- package/dist/fancy-ui/code-diff/README.md +82 -0
- package/dist/fancy-ui/code-diff/index.d.ts +3 -0
- package/dist/fancy-ui/code-diff/index.js +2 -0
- package/dist/fancy-ui/combobox/Combobox.svelte +337 -0
- package/dist/fancy-ui/combobox/Combobox.svelte.d.ts +35 -0
- package/dist/fancy-ui/combobox/Combobox.test.d.ts +1 -0
- package/dist/fancy-ui/combobox/Combobox.test.js +445 -0
- package/dist/fancy-ui/combobox/ComboboxFieldHarness.test.svelte +69 -0
- package/dist/fancy-ui/combobox/ComboboxFieldHarness.test.svelte.d.ts +21 -0
- package/dist/fancy-ui/combobox/ComboboxHarness.test.svelte +30 -0
- package/dist/fancy-ui/combobox/ComboboxHarness.test.svelte.d.ts +9 -0
- package/dist/fancy-ui/combobox/ComboboxPanel.svelte +87 -0
- package/dist/fancy-ui/combobox/ComboboxPanel.svelte.d.ts +18 -0
- package/dist/fancy-ui/combobox/README.md +168 -0
- package/dist/fancy-ui/combobox/index.d.ts +4 -0
- package/dist/fancy-ui/combobox/index.js +3 -0
- package/dist/fancy-ui/combobox/match.d.ts +15 -0
- package/dist/fancy-ui/combobox/match.js +35 -0
- package/dist/fancy-ui/combobox/types.d.ts +40 -0
- package/dist/fancy-ui/combobox/types.js +12 -0
- package/dist/fancy-ui/command-menu/CommandMenu.svelte +547 -0
- package/dist/fancy-ui/command-menu/CommandMenu.svelte.d.ts +36 -0
- package/dist/fancy-ui/command-menu/CommandMenu.test.d.ts +1 -0
- package/dist/fancy-ui/command-menu/CommandMenu.test.js +569 -0
- package/dist/fancy-ui/command-menu/README.md +176 -0
- package/dist/fancy-ui/command-menu/index.d.ts +2 -0
- package/dist/fancy-ui/command-menu/index.js +2 -0
- package/dist/fancy-ui/command-menu/match.d.ts +19 -0
- package/dist/fancy-ui/command-menu/match.js +124 -0
- package/dist/fancy-ui/command-menu/types.d.ts +19 -0
- package/dist/fancy-ui/command-menu/types.js +1 -0
- package/dist/fancy-ui/composer/Composer.svelte +241 -0
- package/dist/fancy-ui/composer/Composer.svelte.d.ts +37 -0
- package/dist/fancy-ui/composer/Composer.test.d.ts +1 -0
- package/dist/fancy-ui/composer/Composer.test.js +399 -0
- package/dist/fancy-ui/composer/ComposerAttachment.svelte +220 -0
- package/dist/fancy-ui/composer/ComposerAttachment.svelte.d.ts +15 -0
- package/dist/fancy-ui/composer/ComposerAttachments.svelte +158 -0
- package/dist/fancy-ui/composer/ComposerAttachments.svelte.d.ts +19 -0
- package/dist/fancy-ui/composer/ComposerAttachments.test.d.ts +1 -0
- package/dist/fancy-ui/composer/ComposerAttachments.test.js +360 -0
- package/dist/fancy-ui/composer/ComposerCommandMenu.svelte +399 -0
- package/dist/fancy-ui/composer/ComposerCommandMenu.svelte.d.ts +34 -0
- package/dist/fancy-ui/composer/ComposerCommandMenu.test.d.ts +1 -0
- package/dist/fancy-ui/composer/ComposerCommandMenu.test.js +311 -0
- package/dist/fancy-ui/composer/ComposerHarness.test.svelte +99 -0
- package/dist/fancy-ui/composer/ComposerHarness.test.svelte.d.ts +24 -0
- package/dist/fancy-ui/composer/ComposerInput.svelte +178 -0
- package/dist/fancy-ui/composer/ComposerInput.svelte.d.ts +20 -0
- package/dist/fancy-ui/composer/ComposerIntegration.test.d.ts +14 -0
- package/dist/fancy-ui/composer/ComposerIntegration.test.js +283 -0
- package/dist/fancy-ui/composer/ComposerModelPicker.svelte +375 -0
- package/dist/fancy-ui/composer/ComposerModelPicker.svelte.d.ts +19 -0
- package/dist/fancy-ui/composer/ComposerSubmit.svelte +85 -0
- package/dist/fancy-ui/composer/ComposerSubmit.svelte.d.ts +17 -0
- package/dist/fancy-ui/composer/ComposerToolbar.svelte +55 -0
- package/dist/fancy-ui/composer/ComposerToolbar.svelte.d.ts +13 -0
- package/dist/fancy-ui/composer/ComposerToolbar.test.d.ts +1 -0
- package/dist/fancy-ui/composer/ComposerToolbar.test.js +285 -0
- package/dist/fancy-ui/composer/IntegrationHarness.test.svelte +142 -0
- package/dist/fancy-ui/composer/IntegrationHarness.test.svelte.d.ts +28 -0
- package/dist/fancy-ui/composer/README.md +416 -0
- package/dist/fancy-ui/composer/caret.d.ts +69 -0
- package/dist/fancy-ui/composer/caret.js +197 -0
- package/dist/fancy-ui/composer/caret.test.d.ts +1 -0
- package/dist/fancy-ui/composer/caret.test.js +87 -0
- package/dist/fancy-ui/composer/index.d.ts +18 -0
- package/dist/fancy-ui/composer/index.js +10 -0
- package/dist/fancy-ui/composer/types.d.ts +61 -0
- package/dist/fancy-ui/composer/types.js +18 -0
- package/dist/fancy-ui/context-menu/ContextMenu.svelte +147 -0
- package/dist/fancy-ui/context-menu/ContextMenu.svelte.d.ts +21 -0
- package/dist/fancy-ui/context-menu/ContextMenu.test.d.ts +1 -0
- package/dist/fancy-ui/context-menu/ContextMenu.test.js +309 -0
- package/dist/fancy-ui/context-menu/ContextMenuContent.svelte +130 -0
- package/dist/fancy-ui/context-menu/ContextMenuContent.svelte.d.ts +12 -0
- package/dist/fancy-ui/context-menu/ContextMenuHarness.test.svelte +72 -0
- package/dist/fancy-ui/context-menu/ContextMenuHarness.test.svelte.d.ts +16 -0
- package/dist/fancy-ui/context-menu/ContextMenuTrigger.svelte +72 -0
- package/dist/fancy-ui/context-menu/ContextMenuTrigger.svelte.d.ts +14 -0
- package/dist/fancy-ui/context-menu/README.md +226 -0
- package/dist/fancy-ui/context-menu/index.d.ts +12 -0
- package/dist/fancy-ui/context-menu/index.js +19 -0
- package/dist/fancy-ui/context-menu/types.d.ts +26 -0
- package/dist/fancy-ui/context-menu/types.js +8 -0
- package/dist/fancy-ui/context-ring/ContextRing.svelte +407 -0
- package/dist/fancy-ui/context-ring/ContextRing.svelte.d.ts +29 -0
- package/dist/fancy-ui/context-ring/ContextRing.test.d.ts +1 -0
- package/dist/fancy-ui/context-ring/ContextRing.test.js +250 -0
- package/dist/fancy-ui/context-ring/README.md +138 -0
- package/dist/fancy-ui/context-ring/index.d.ts +3 -0
- package/dist/fancy-ui/context-ring/index.js +2 -0
- package/dist/fancy-ui/copy-button/CopyButton.svelte +169 -0
- package/dist/fancy-ui/copy-button/CopyButton.svelte.d.ts +36 -0
- package/dist/fancy-ui/copy-button/CopyButton.test.d.ts +1 -0
- package/dist/fancy-ui/copy-button/CopyButton.test.js +183 -0
- package/dist/fancy-ui/copy-button/README.md +113 -0
- package/dist/fancy-ui/copy-button/index.d.ts +3 -0
- package/dist/fancy-ui/copy-button/index.js +2 -0
- package/dist/fancy-ui/date-picker/DatePicker.svelte +421 -0
- package/dist/fancy-ui/date-picker/DatePicker.svelte.d.ts +38 -0
- package/dist/fancy-ui/date-picker/DatePicker.test.d.ts +1 -0
- package/dist/fancy-ui/date-picker/DatePicker.test.js +402 -0
- package/dist/fancy-ui/date-picker/DatePickerFieldHarness.test.svelte +25 -0
- package/dist/fancy-ui/date-picker/DatePickerFieldHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/date-picker/DatePickerHarness.test.svelte +29 -0
- package/dist/fancy-ui/date-picker/DatePickerHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/date-picker/README.md +193 -0
- package/dist/fancy-ui/date-picker/date-utils.d.ts +39 -0
- package/dist/fancy-ui/date-picker/date-utils.js +116 -0
- package/dist/fancy-ui/date-picker/date-utils.test.d.ts +1 -0
- package/dist/fancy-ui/date-picker/date-utils.test.js +175 -0
- package/dist/fancy-ui/date-picker/index.d.ts +3 -0
- package/dist/fancy-ui/date-picker/index.js +2 -0
- package/dist/fancy-ui/dialog/Dialog.svelte +149 -0
- package/dist/fancy-ui/dialog/Dialog.svelte.d.ts +28 -0
- package/dist/fancy-ui/dialog/Dialog.test.d.ts +1 -0
- package/dist/fancy-ui/dialog/Dialog.test.js +304 -0
- package/dist/fancy-ui/dialog/DialogSurface.svelte +126 -0
- package/dist/fancy-ui/dialog/DialogSurface.svelte.d.ts +4 -0
- package/dist/fancy-ui/dialog/README.md +95 -0
- package/dist/fancy-ui/dialog/index.d.ts +2 -0
- package/dist/fancy-ui/dialog/index.js +2 -0
- package/dist/fancy-ui/dialog/types.d.ts +58 -0
- package/dist/fancy-ui/dialog/types.js +1 -0
- package/dist/fancy-ui/drawer/Drawer.svelte +305 -0
- package/dist/fancy-ui/drawer/Drawer.svelte.d.ts +26 -0
- package/dist/fancy-ui/drawer/Drawer.test.d.ts +1 -0
- package/dist/fancy-ui/drawer/Drawer.test.js +283 -0
- package/dist/fancy-ui/drawer/DrawerHarness.test.svelte +31 -0
- package/dist/fancy-ui/drawer/DrawerHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/drawer/README.md +135 -0
- package/dist/fancy-ui/drawer/index.d.ts +3 -0
- package/dist/fancy-ui/drawer/index.js +2 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenu.svelte +123 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenu.svelte.d.ts +21 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenu.test.d.ts +1 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenu.test.js +504 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuContent.svelte +155 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuContent.svelte.d.ts +12 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuHarness.test.svelte +95 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuHarness.test.svelte.d.ts +24 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuItem.svelte +151 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuItem.svelte.d.ts +22 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuLabel.svelte +32 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuLabel.svelte.d.ts +10 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuSeparator.svelte +18 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuSeparator.svelte.d.ts +7 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuSub.svelte +117 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuSub.svelte.d.ts +8 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuSubContent.svelte +155 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuSubContent.svelte.d.ts +12 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuSubTrigger.svelte +151 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuSubTrigger.svelte.d.ts +14 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuTrigger.svelte +96 -0
- package/dist/fancy-ui/dropdown-menu/DropdownMenuTrigger.svelte.d.ts +14 -0
- package/dist/fancy-ui/dropdown-menu/README.md +394 -0
- package/dist/fancy-ui/dropdown-menu/index.d.ts +11 -0
- package/dist/fancy-ui/dropdown-menu/index.js +11 -0
- package/dist/fancy-ui/dropdown-menu/menu-shared.d.ts +32 -0
- package/dist/fancy-ui/dropdown-menu/menu-shared.js +74 -0
- package/dist/fancy-ui/dropdown-menu/types.d.ts +97 -0
- package/dist/fancy-ui/dropdown-menu/types.js +3 -0
- package/dist/fancy-ui/file-upload/FileUpload.svelte +495 -0
- package/dist/fancy-ui/file-upload/FileUpload.svelte.d.ts +48 -0
- package/dist/fancy-ui/file-upload/FileUpload.test.d.ts +1 -0
- package/dist/fancy-ui/file-upload/FileUpload.test.js +286 -0
- package/dist/fancy-ui/file-upload/FileUploadFieldHarness.test.svelte +47 -0
- package/dist/fancy-ui/file-upload/FileUploadFieldHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/file-upload/FileUploadHarness.test.svelte +28 -0
- package/dist/fancy-ui/file-upload/FileUploadHarness.test.svelte.d.ts +8 -0
- package/dist/fancy-ui/file-upload/README.md +217 -0
- package/dist/fancy-ui/file-upload/index.d.ts +3 -0
- package/dist/fancy-ui/file-upload/index.js +2 -0
- package/dist/fancy-ui/fireworks-hdr/FireworksHdr.svelte +629 -0
- package/dist/fancy-ui/fireworks-hdr/FireworksHdr.svelte.d.ts +56 -0
- package/dist/fancy-ui/fireworks-hdr/FireworksHdr.test.d.ts +1 -0
- package/dist/fancy-ui/fireworks-hdr/FireworksHdr.test.js +74 -0
- package/dist/fancy-ui/fireworks-hdr/README.md +492 -0
- package/dist/fancy-ui/fireworks-hdr/fireworks-shared.d.ts +444 -0
- package/dist/fancy-ui/fireworks-hdr/fireworks-shared.js +1520 -0
- package/dist/fancy-ui/fireworks-hdr/fireworks-shared.test.d.ts +1 -0
- package/dist/fancy-ui/fireworks-hdr/fireworks-shared.test.js +1054 -0
- package/dist/fancy-ui/fireworks-hdr/index.d.ts +5 -0
- package/dist/fancy-ui/fireworks-hdr/index.js +5 -0
- package/dist/fancy-ui/fireworks-hdr/webgl2-renderer.d.ts +20 -0
- package/dist/fancy-ui/fireworks-hdr/webgl2-renderer.js +634 -0
- package/dist/fancy-ui/fireworks-hdr/webgl2-renderer.test.d.ts +1 -0
- package/dist/fancy-ui/fireworks-hdr/webgl2-renderer.test.js +33 -0
- package/dist/fancy-ui/fireworks-hdr/webgpu-renderer.d.ts +51 -0
- package/dist/fancy-ui/fireworks-hdr/webgpu-renderer.js +538 -0
- package/dist/fancy-ui/fluid-cursor/FluidCursor.svelte +71 -4
- package/dist/fancy-ui/fluid-cursor/FluidCursor.svelte.d.ts +13 -0
- package/dist/fancy-ui/fluid-cursor/FluidCursor.test.js +28 -0
- package/dist/fancy-ui/fluid-cursor/README.md +27 -0
- package/dist/fancy-ui/form-field/FormField.svelte +121 -0
- package/dist/fancy-ui/form-field/FormField.svelte.d.ts +4 -0
- package/dist/fancy-ui/form-field/FormField.test.d.ts +1 -0
- package/dist/fancy-ui/form-field/FormField.test.js +206 -0
- package/dist/fancy-ui/form-field/FormFieldControl.test.svelte +37 -0
- package/dist/fancy-ui/form-field/FormFieldControl.test.svelte.d.ts +8 -0
- package/dist/fancy-ui/form-field/FormFieldHarness.test.svelte +30 -0
- package/dist/fancy-ui/form-field/FormFieldHarness.test.svelte.d.ts +4 -0
- package/dist/fancy-ui/form-field/FormFieldPairHarness.test.svelte +20 -0
- package/dist/fancy-ui/form-field/FormFieldPairHarness.test.svelte.d.ts +18 -0
- package/dist/fancy-ui/form-field/README.md +215 -0
- package/dist/fancy-ui/form-field/index.d.ts +3 -0
- package/dist/fancy-ui/form-field/index.js +2 -0
- package/dist/fancy-ui/form-field/types.d.ts +40 -0
- package/dist/fancy-ui/form-field/types.js +1 -0
- package/dist/fancy-ui/hover-card/HoverCard.svelte +204 -0
- package/dist/fancy-ui/hover-card/HoverCard.svelte.d.ts +45 -0
- package/dist/fancy-ui/hover-card/HoverCard.test.d.ts +1 -0
- package/dist/fancy-ui/hover-card/HoverCard.test.js +243 -0
- package/dist/fancy-ui/hover-card/HoverCardAriaHarness.test.svelte +26 -0
- package/dist/fancy-ui/hover-card/HoverCardAriaHarness.test.svelte.d.ts +18 -0
- package/dist/fancy-ui/hover-card/HoverCardHarness.test.svelte +24 -0
- package/dist/fancy-ui/hover-card/HoverCardHarness.test.svelte.d.ts +6 -0
- package/dist/fancy-ui/hover-card/README.md +65 -0
- package/dist/fancy-ui/hover-card/index.d.ts +2 -0
- package/dist/fancy-ui/hover-card/index.js +2 -0
- package/dist/fancy-ui/icon-button/IconButton.svelte +111 -0
- package/dist/fancy-ui/icon-button/IconButton.svelte.d.ts +45 -0
- package/dist/fancy-ui/icon-button/IconButton.test.d.ts +1 -0
- package/dist/fancy-ui/icon-button/IconButton.test.js +120 -0
- package/dist/fancy-ui/icon-button/README.md +184 -0
- package/dist/fancy-ui/icon-button/index.d.ts +2 -0
- package/dist/fancy-ui/icon-button/index.js +2 -0
- package/dist/fancy-ui/image-generation/ImageGeneration.svelte +274 -0
- package/dist/fancy-ui/image-generation/ImageGeneration.svelte.d.ts +28 -0
- package/dist/fancy-ui/image-generation/ImageGeneration.test.d.ts +1 -0
- package/dist/fancy-ui/image-generation/ImageGeneration.test.js +248 -0
- package/dist/fancy-ui/image-generation/README.md +96 -0
- package/dist/fancy-ui/image-generation/index.d.ts +3 -0
- package/dist/fancy-ui/image-generation/index.js +2 -0
- package/dist/fancy-ui/index.d.ts +72 -0
- package/dist/fancy-ui/index.js +76 -0
- package/dist/fancy-ui/inline-citation/InlineCitation.svelte +289 -0
- package/dist/fancy-ui/inline-citation/InlineCitation.svelte.d.ts +24 -0
- package/dist/fancy-ui/inline-citation/InlineCitation.test.d.ts +1 -0
- package/dist/fancy-ui/inline-citation/InlineCitation.test.js +272 -0
- package/dist/fancy-ui/inline-citation/InlineCitationHarness.test.svelte +21 -0
- package/dist/fancy-ui/inline-citation/InlineCitationHarness.test.svelte.d.ts +9 -0
- package/dist/fancy-ui/inline-citation/README.md +107 -0
- package/dist/fancy-ui/inline-citation/index.d.ts +3 -0
- package/dist/fancy-ui/inline-citation/index.js +2 -0
- package/dist/fancy-ui/input/Input.svelte +123 -0
- package/dist/fancy-ui/input/Input.svelte.d.ts +34 -0
- package/dist/fancy-ui/input/Input.test.d.ts +1 -0
- package/dist/fancy-ui/input/Input.test.js +133 -0
- package/dist/fancy-ui/input/InputFieldHarness.test.svelte +49 -0
- package/dist/fancy-ui/input/InputFieldHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/input/InputHarness.test.svelte +28 -0
- package/dist/fancy-ui/input/InputHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/input/README.md +126 -0
- package/dist/fancy-ui/input/index.d.ts +3 -0
- package/dist/fancy-ui/input/index.js +2 -0
- package/dist/fancy-ui/label/Label.svelte +54 -0
- package/dist/fancy-ui/label/Label.svelte.d.ts +16 -0
- package/dist/fancy-ui/label/Label.test.d.ts +1 -0
- package/dist/fancy-ui/label/Label.test.js +105 -0
- package/dist/fancy-ui/label/LabelHarness.test.svelte +37 -0
- package/dist/fancy-ui/label/LabelHarness.test.svelte.d.ts +11 -0
- package/dist/fancy-ui/label/README.md +87 -0
- package/dist/fancy-ui/label/index.d.ts +2 -0
- package/dist/fancy-ui/label/index.js +2 -0
- package/dist/fancy-ui/link/Link.svelte +145 -0
- package/dist/fancy-ui/link/Link.svelte.d.ts +29 -0
- package/dist/fancy-ui/link/Link.test.d.ts +1 -0
- package/dist/fancy-ui/link/Link.test.js +170 -0
- package/dist/fancy-ui/link/README.md +77 -0
- package/dist/fancy-ui/link/index.d.ts +3 -0
- package/dist/fancy-ui/link/index.js +2 -0
- package/dist/fancy-ui/liquid-text/LiquidText.svelte +52 -11
- package/dist/fancy-ui/liquid-text/LiquidText.test.js +1 -3
- package/dist/fancy-ui/navbar/Navbar.svelte +88 -0
- package/dist/fancy-ui/navbar/Navbar.svelte.d.ts +22 -0
- package/dist/fancy-ui/navbar/Navbar.test.d.ts +1 -0
- package/dist/fancy-ui/navbar/Navbar.test.js +157 -0
- package/dist/fancy-ui/navbar/NavbarLink.svelte +109 -0
- package/dist/fancy-ui/navbar/NavbarLink.svelte.d.ts +29 -0
- package/dist/fancy-ui/navbar/README.md +137 -0
- package/dist/fancy-ui/navbar/index.d.ts +5 -0
- package/dist/fancy-ui/navbar/index.js +3 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenu.svelte +265 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenu.svelte.d.ts +22 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenu.test.d.ts +1 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenu.test.js +487 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuContent.svelte +130 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuContent.svelte.d.ts +12 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuHarness.test.svelte +78 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuHarness.test.svelte.d.ts +24 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuItem.svelte +43 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuItem.svelte.d.ts +12 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuLink.svelte +93 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuLink.svelte.d.ts +24 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuList.svelte +40 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuList.svelte.d.ts +12 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuTrigger.svelte +137 -0
- package/dist/fancy-ui/navigation-menu/NavigationMenuTrigger.svelte.d.ts +12 -0
- package/dist/fancy-ui/navigation-menu/README.md +309 -0
- package/dist/fancy-ui/navigation-menu/index.d.ts +14 -0
- package/dist/fancy-ui/navigation-menu/index.js +8 -0
- package/dist/fancy-ui/navigation-menu/types.d.ts +77 -0
- package/dist/fancy-ui/navigation-menu/types.js +16 -0
- package/dist/fancy-ui/number-input/NumberInput.svelte +282 -0
- package/dist/fancy-ui/number-input/NumberInput.svelte.d.ts +33 -0
- package/dist/fancy-ui/number-input/NumberInput.test.d.ts +1 -0
- package/dist/fancy-ui/number-input/NumberInput.test.js +354 -0
- package/dist/fancy-ui/number-input/NumberInputFieldHarness.test.svelte +25 -0
- package/dist/fancy-ui/number-input/NumberInputFieldHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/number-input/NumberInputHarness.test.svelte +31 -0
- package/dist/fancy-ui/number-input/NumberInputHarness.test.svelte.d.ts +10 -0
- package/dist/fancy-ui/number-input/README.md +141 -0
- package/dist/fancy-ui/number-input/index.d.ts +3 -0
- package/dist/fancy-ui/number-input/index.js +2 -0
- package/dist/fancy-ui/pagination/Pagination.svelte +226 -0
- package/dist/fancy-ui/pagination/Pagination.svelte.d.ts +30 -0
- package/dist/fancy-ui/pagination/Pagination.test.d.ts +1 -0
- package/dist/fancy-ui/pagination/Pagination.test.js +194 -0
- package/dist/fancy-ui/pagination/PaginationHarness.test.svelte +53 -0
- package/dist/fancy-ui/pagination/PaginationHarness.test.svelte.d.ts +13 -0
- package/dist/fancy-ui/pagination/README.md +117 -0
- package/dist/fancy-ui/pagination/index.d.ts +3 -0
- package/dist/fancy-ui/pagination/index.js +9 -0
- package/dist/fancy-ui/pagination/pagination-range.d.ts +11 -0
- package/dist/fancy-ui/pagination/pagination-range.js +77 -0
- package/dist/fancy-ui/pagination/pagination-range.test.d.ts +1 -0
- package/dist/fancy-ui/pagination/pagination-range.test.js +118 -0
- package/dist/fancy-ui/password-input/PasswordInput.svelte +314 -0
- package/dist/fancy-ui/password-input/PasswordInput.svelte.d.ts +44 -0
- package/dist/fancy-ui/password-input/PasswordInput.test.d.ts +1 -0
- package/dist/fancy-ui/password-input/PasswordInput.test.js +290 -0
- package/dist/fancy-ui/password-input/PasswordInputFieldHarness.test.svelte +66 -0
- package/dist/fancy-ui/password-input/PasswordInputFieldHarness.test.svelte.d.ts +19 -0
- package/dist/fancy-ui/password-input/PasswordInputHarness.test.svelte +28 -0
- package/dist/fancy-ui/password-input/PasswordInputHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/password-input/README.md +135 -0
- package/dist/fancy-ui/password-input/index.d.ts +2 -0
- package/dist/fancy-ui/password-input/index.js +2 -0
- package/dist/fancy-ui/pixel-loader/PixelLoader.svelte +111 -0
- package/dist/fancy-ui/pixel-loader/PixelLoader.svelte.d.ts +23 -0
- package/dist/fancy-ui/pixel-loader/PixelLoader.test.d.ts +1 -0
- package/dist/fancy-ui/pixel-loader/PixelLoader.test.js +77 -0
- package/dist/fancy-ui/pixel-loader/README.md +47 -0
- package/dist/fancy-ui/pixel-loader/index.d.ts +3 -0
- package/dist/fancy-ui/pixel-loader/index.js +2 -0
- package/dist/fancy-ui/popover/Popover.svelte +127 -0
- package/dist/fancy-ui/popover/Popover.svelte.d.ts +31 -0
- package/dist/fancy-ui/popover/Popover.test.d.ts +1 -0
- package/dist/fancy-ui/popover/Popover.test.js +246 -0
- package/dist/fancy-ui/popover/PopoverContent.svelte +85 -0
- package/dist/fancy-ui/popover/PopoverContent.svelte.d.ts +12 -0
- package/dist/fancy-ui/popover/README.md +146 -0
- package/dist/fancy-ui/popover/index.d.ts +6 -0
- package/dist/fancy-ui/popover/index.js +4 -0
- package/dist/fancy-ui/popover/types.d.ts +27 -0
- package/dist/fancy-ui/popover/types.js +1 -0
- package/dist/fancy-ui/prompt-suggestions/PromptSuggestions.svelte +130 -0
- package/dist/fancy-ui/prompt-suggestions/PromptSuggestions.svelte.d.ts +24 -0
- package/dist/fancy-ui/prompt-suggestions/PromptSuggestions.test.d.ts +1 -0
- package/dist/fancy-ui/prompt-suggestions/PromptSuggestions.test.js +129 -0
- package/dist/fancy-ui/prompt-suggestions/README.md +77 -0
- package/dist/fancy-ui/prompt-suggestions/index.d.ts +3 -0
- package/dist/fancy-ui/prompt-suggestions/index.js +2 -0
- package/dist/fancy-ui/radio-group/README.md +219 -0
- package/dist/fancy-ui/radio-group/RadioGroup.svelte +154 -0
- package/dist/fancy-ui/radio-group/RadioGroup.svelte.d.ts +39 -0
- package/dist/fancy-ui/radio-group/RadioGroup.test.d.ts +1 -0
- package/dist/fancy-ui/radio-group/RadioGroup.test.js +347 -0
- package/dist/fancy-ui/radio-group/RadioGroupHarness.test.svelte +67 -0
- package/dist/fancy-ui/radio-group/RadioGroupHarness.test.svelte.d.ts +22 -0
- package/dist/fancy-ui/radio-group/RadioGroupItem.svelte +148 -0
- package/dist/fancy-ui/radio-group/RadioGroupItem.svelte.d.ts +18 -0
- package/dist/fancy-ui/radio-group/index.d.ts +6 -0
- package/dist/fancy-ui/radio-group/index.js +4 -0
- package/dist/fancy-ui/radio-group/types.d.ts +35 -0
- package/dist/fancy-ui/radio-group/types.js +12 -0
- package/dist/fancy-ui/reasoning-panel/README.md +70 -0
- package/dist/fancy-ui/reasoning-panel/ReasoningPanel.svelte +260 -0
- package/dist/fancy-ui/reasoning-panel/ReasoningPanel.svelte.d.ts +32 -0
- package/dist/fancy-ui/reasoning-panel/ReasoningPanel.test.d.ts +1 -0
- package/dist/fancy-ui/reasoning-panel/ReasoningPanel.test.js +163 -0
- package/dist/fancy-ui/reasoning-panel/index.d.ts +3 -0
- package/dist/fancy-ui/reasoning-panel/index.js +2 -0
- package/dist/fancy-ui/recommendation-card/README.md +106 -0
- package/dist/fancy-ui/recommendation-card/RecommendationCard.svelte +375 -0
- package/dist/fancy-ui/recommendation-card/RecommendationCard.svelte.d.ts +38 -0
- package/dist/fancy-ui/recommendation-card/RecommendationCard.test.d.ts +1 -0
- package/dist/fancy-ui/recommendation-card/RecommendationCard.test.js +255 -0
- package/dist/fancy-ui/recommendation-card/RecommendationCardHarness.test.svelte +33 -0
- package/dist/fancy-ui/recommendation-card/RecommendationCardHarness.test.svelte.d.ts +12 -0
- package/dist/fancy-ui/recommendation-card/index.d.ts +3 -0
- package/dist/fancy-ui/recommendation-card/index.js +2 -0
- package/dist/fancy-ui/registry.d.ts +14 -1
- package/dist/fancy-ui/registry.js +4958 -40
- package/dist/fancy-ui/scroll-anchor/README.md +93 -0
- package/dist/fancy-ui/scroll-anchor/ScrollAnchor.svelte +197 -0
- package/dist/fancy-ui/scroll-anchor/ScrollAnchor.svelte.d.ts +31 -0
- package/dist/fancy-ui/scroll-anchor/ScrollAnchor.test.d.ts +1 -0
- package/dist/fancy-ui/scroll-anchor/ScrollAnchor.test.js +206 -0
- package/dist/fancy-ui/scroll-anchor/index.d.ts +3 -0
- package/dist/fancy-ui/scroll-anchor/index.js +2 -0
- package/dist/fancy-ui/search-input/README.md +118 -0
- package/dist/fancy-ui/search-input/SearchInput.svelte +261 -0
- package/dist/fancy-ui/search-input/SearchInput.svelte.d.ts +43 -0
- package/dist/fancy-ui/search-input/SearchInput.test.d.ts +1 -0
- package/dist/fancy-ui/search-input/SearchInput.test.js +279 -0
- package/dist/fancy-ui/search-input/SearchInputFieldHarness.test.svelte +66 -0
- package/dist/fancy-ui/search-input/SearchInputFieldHarness.test.svelte.d.ts +19 -0
- package/dist/fancy-ui/search-input/SearchInputHarness.test.svelte +28 -0
- package/dist/fancy-ui/search-input/SearchInputHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/search-input/index.d.ts +2 -0
- package/dist/fancy-ui/search-input/index.js +2 -0
- package/dist/fancy-ui/select/README.md +208 -0
- package/dist/fancy-ui/select/Select.svelte +361 -0
- package/dist/fancy-ui/select/Select.svelte.d.ts +36 -0
- package/dist/fancy-ui/select/Select.test.d.ts +1 -0
- package/dist/fancy-ui/select/Select.test.js +461 -0
- package/dist/fancy-ui/select/SelectHarness.test.svelte +63 -0
- package/dist/fancy-ui/select/SelectHarness.test.svelte.d.ts +19 -0
- package/dist/fancy-ui/select/SelectPanel.svelte +138 -0
- package/dist/fancy-ui/select/SelectPanel.svelte.d.ts +9 -0
- package/dist/fancy-ui/select/index.d.ts +3 -0
- package/dist/fancy-ui/select/index.js +2 -0
- package/dist/fancy-ui/select/types.d.ts +56 -0
- package/dist/fancy-ui/select/types.js +1 -0
- package/dist/fancy-ui/sheet/README.md +128 -0
- package/dist/fancy-ui/sheet/Sheet.svelte +240 -0
- package/dist/fancy-ui/sheet/Sheet.svelte.d.ts +30 -0
- package/dist/fancy-ui/sheet/Sheet.test.d.ts +1 -0
- package/dist/fancy-ui/sheet/Sheet.test.js +236 -0
- package/dist/fancy-ui/sheet/SheetHarness.test.svelte +31 -0
- package/dist/fancy-ui/sheet/SheetHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/sheet/index.d.ts +3 -0
- package/dist/fancy-ui/sheet/index.js +2 -0
- package/dist/fancy-ui/sidebar/README.md +219 -0
- package/dist/fancy-ui/sidebar/Sidebar.svelte +81 -0
- package/dist/fancy-ui/sidebar/Sidebar.svelte.d.ts +21 -0
- package/dist/fancy-ui/sidebar/Sidebar.test.d.ts +1 -0
- package/dist/fancy-ui/sidebar/Sidebar.test.js +307 -0
- package/dist/fancy-ui/sidebar/SidebarFooter.svelte +46 -0
- package/dist/fancy-ui/sidebar/SidebarFooter.svelte.d.ts +14 -0
- package/dist/fancy-ui/sidebar/SidebarGroup.svelte +45 -0
- package/dist/fancy-ui/sidebar/SidebarGroup.svelte.d.ts +12 -0
- package/dist/fancy-ui/sidebar/SidebarHarness.test.svelte +41 -0
- package/dist/fancy-ui/sidebar/SidebarHarness.test.svelte.d.ts +6 -0
- package/dist/fancy-ui/sidebar/SidebarItem.svelte +168 -0
- package/dist/fancy-ui/sidebar/SidebarItem.svelte.d.ts +32 -0
- package/dist/fancy-ui/sidebar/SidebarSeparator.svelte +17 -0
- package/dist/fancy-ui/sidebar/SidebarSeparator.svelte.d.ts +9 -0
- package/dist/fancy-ui/sidebar/index.d.ts +12 -0
- package/dist/fancy-ui/sidebar/index.js +7 -0
- package/dist/fancy-ui/sidebar/types.d.ts +23 -0
- package/dist/fancy-ui/sidebar/types.js +18 -0
- package/dist/fancy-ui/slider/README.md +126 -0
- package/dist/fancy-ui/slider/Slider.svelte +252 -0
- package/dist/fancy-ui/slider/Slider.svelte.d.ts +31 -0
- package/dist/fancy-ui/slider/Slider.test.d.ts +1 -0
- package/dist/fancy-ui/slider/Slider.test.js +175 -0
- package/dist/fancy-ui/slider/SliderFieldHarness.test.svelte +25 -0
- package/dist/fancy-ui/slider/SliderFieldHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/slider/SliderHarness.test.svelte +28 -0
- package/dist/fancy-ui/slider/SliderHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/slider/index.d.ts +3 -0
- package/dist/fancy-ui/slider/index.js +2 -0
- package/dist/fancy-ui/sources/README.md +189 -0
- package/dist/fancy-ui/sources/SourceCard.svelte +174 -0
- package/dist/fancy-ui/sources/SourceCard.svelte.d.ts +22 -0
- package/dist/fancy-ui/sources/Sources.svelte +75 -0
- package/dist/fancy-ui/sources/Sources.svelte.d.ts +22 -0
- package/dist/fancy-ui/sources/Sources.test.d.ts +1 -0
- package/dist/fancy-ui/sources/Sources.test.js +140 -0
- package/dist/fancy-ui/sources/SourcesHarness.test.svelte +36 -0
- package/dist/fancy-ui/sources/SourcesHarness.test.svelte.d.ts +12 -0
- package/dist/fancy-ui/sources/SourcesList.svelte +123 -0
- package/dist/fancy-ui/sources/SourcesList.svelte.d.ts +14 -0
- package/dist/fancy-ui/sources/SourcesParts.test.d.ts +1 -0
- package/dist/fancy-ui/sources/SourcesParts.test.js +245 -0
- package/dist/fancy-ui/sources/SourcesTrigger.svelte +126 -0
- package/dist/fancy-ui/sources/SourcesTrigger.svelte.d.ts +12 -0
- package/dist/fancy-ui/sources/index.d.ts +10 -0
- package/dist/fancy-ui/sources/index.js +6 -0
- package/dist/fancy-ui/sources/types.d.ts +26 -0
- package/dist/fancy-ui/sources/types.js +10 -0
- package/dist/fancy-ui/stepper/README.md +173 -0
- package/dist/fancy-ui/stepper/Step.svelte +247 -0
- package/dist/fancy-ui/stepper/Step.svelte.d.ts +21 -0
- package/dist/fancy-ui/stepper/Stepper.svelte +123 -0
- package/dist/fancy-ui/stepper/Stepper.svelte.d.ts +22 -0
- package/dist/fancy-ui/stepper/Stepper.test.d.ts +1 -0
- package/dist/fancy-ui/stepper/Stepper.test.js +197 -0
- package/dist/fancy-ui/stepper/StepperHarness.test.svelte +49 -0
- package/dist/fancy-ui/stepper/StepperHarness.test.svelte.d.ts +15 -0
- package/dist/fancy-ui/stepper/index.d.ts +6 -0
- package/dist/fancy-ui/stepper/index.js +4 -0
- package/dist/fancy-ui/stepper/types.d.ts +45 -0
- package/dist/fancy-ui/stepper/types.js +1 -0
- package/dist/fancy-ui/streaming-text/README.md +80 -0
- package/dist/fancy-ui/streaming-text/StreamingText.svelte +126 -0
- package/dist/fancy-ui/streaming-text/StreamingText.svelte.d.ts +27 -0
- package/dist/fancy-ui/streaming-text/StreamingText.test.d.ts +1 -0
- package/dist/fancy-ui/streaming-text/StreamingText.test.js +98 -0
- package/dist/fancy-ui/streaming-text/index.d.ts +3 -0
- package/dist/fancy-ui/streaming-text/index.js +2 -0
- package/dist/fancy-ui/subagent-list/README.md +153 -0
- package/dist/fancy-ui/subagent-list/SubagentList.svelte +438 -0
- package/dist/fancy-ui/subagent-list/SubagentList.svelte.d.ts +27 -0
- package/dist/fancy-ui/subagent-list/SubagentList.test.d.ts +1 -0
- package/dist/fancy-ui/subagent-list/SubagentList.test.js +303 -0
- package/dist/fancy-ui/subagent-list/index.d.ts +3 -0
- package/dist/fancy-ui/subagent-list/index.js +2 -0
- package/dist/fancy-ui/switch/README.md +143 -0
- package/dist/fancy-ui/switch/Switch.svelte +233 -0
- package/dist/fancy-ui/switch/Switch.svelte.d.ts +40 -0
- package/dist/fancy-ui/switch/Switch.test.d.ts +1 -0
- package/dist/fancy-ui/switch/Switch.test.js +199 -0
- package/dist/fancy-ui/switch/SwitchFieldHarness.test.svelte +25 -0
- package/dist/fancy-ui/switch/SwitchFieldHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/switch/SwitchHarness.test.svelte +28 -0
- package/dist/fancy-ui/switch/SwitchHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/switch/index.d.ts +3 -0
- package/dist/fancy-ui/switch/index.js +2 -0
- package/dist/fancy-ui/tabs/README.md +271 -0
- package/dist/fancy-ui/tabs/Tabs.svelte +218 -0
- package/dist/fancy-ui/tabs/Tabs.svelte.d.ts +26 -0
- package/dist/fancy-ui/tabs/Tabs.test.d.ts +1 -0
- package/dist/fancy-ui/tabs/Tabs.test.js +392 -0
- package/dist/fancy-ui/tabs/TabsContent.svelte +58 -0
- package/dist/fancy-ui/tabs/TabsContent.svelte.d.ts +22 -0
- package/dist/fancy-ui/tabs/TabsHarness.test.svelte +53 -0
- package/dist/fancy-ui/tabs/TabsHarness.test.svelte.d.ts +17 -0
- package/dist/fancy-ui/tabs/TabsList.svelte +73 -0
- package/dist/fancy-ui/tabs/TabsList.svelte.d.ts +12 -0
- package/dist/fancy-ui/tabs/TabsTrigger.svelte +246 -0
- package/dist/fancy-ui/tabs/TabsTrigger.svelte.d.ts +16 -0
- package/dist/fancy-ui/tabs/index.d.ts +10 -0
- package/dist/fancy-ui/tabs/index.js +6 -0
- package/dist/fancy-ui/tabs/types.d.ts +66 -0
- package/dist/fancy-ui/tabs/types.js +16 -0
- package/dist/fancy-ui/terminal-block/README.md +109 -0
- package/dist/fancy-ui/terminal-block/TerminalBlock.svelte +263 -0
- package/dist/fancy-ui/terminal-block/TerminalBlock.svelte.d.ts +31 -0
- package/dist/fancy-ui/terminal-block/TerminalBlock.test.d.ts +1 -0
- package/dist/fancy-ui/terminal-block/TerminalBlock.test.js +197 -0
- package/dist/fancy-ui/terminal-block/ansi.d.ts +30 -0
- package/dist/fancy-ui/terminal-block/ansi.js +163 -0
- package/dist/fancy-ui/terminal-block/ansi.test.d.ts +1 -0
- package/dist/fancy-ui/terminal-block/ansi.test.js +123 -0
- package/dist/fancy-ui/terminal-block/index.d.ts +3 -0
- package/dist/fancy-ui/terminal-block/index.js +2 -0
- package/dist/fancy-ui/textarea/README.md +134 -0
- package/dist/fancy-ui/textarea/Textarea.svelte +225 -0
- package/dist/fancy-ui/textarea/Textarea.svelte.d.ts +40 -0
- package/dist/fancy-ui/textarea/Textarea.test.d.ts +1 -0
- package/dist/fancy-ui/textarea/Textarea.test.js +179 -0
- package/dist/fancy-ui/textarea/TextareaFieldHarness.test.svelte +49 -0
- package/dist/fancy-ui/textarea/TextareaFieldHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/textarea/TextareaHarness.test.svelte +28 -0
- package/dist/fancy-ui/textarea/TextareaHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/textarea/index.d.ts +3 -0
- package/dist/fancy-ui/textarea/index.js +2 -0
- package/dist/fancy-ui/thinking-indicator/README.md +64 -0
- package/dist/fancy-ui/thinking-indicator/ThinkingIndicator.svelte +189 -0
- package/dist/fancy-ui/thinking-indicator/ThinkingIndicator.svelte.d.ts +27 -0
- package/dist/fancy-ui/thinking-indicator/ThinkingIndicator.test.d.ts +1 -0
- package/dist/fancy-ui/thinking-indicator/ThinkingIndicator.test.js +148 -0
- package/dist/fancy-ui/thinking-indicator/index.d.ts +3 -0
- package/dist/fancy-ui/thinking-indicator/index.js +2 -0
- package/dist/fancy-ui/thread-list/README.md +141 -0
- package/dist/fancy-ui/thread-list/ThreadList.svelte +340 -0
- package/dist/fancy-ui/thread-list/ThreadList.svelte.d.ts +28 -0
- package/dist/fancy-ui/thread-list/ThreadList.test.d.ts +1 -0
- package/dist/fancy-ui/thread-list/ThreadList.test.js +267 -0
- package/dist/fancy-ui/thread-list/ThreadListHarness.test.svelte +61 -0
- package/dist/fancy-ui/thread-list/ThreadListHarness.test.svelte.d.ts +15 -0
- package/dist/fancy-ui/thread-list/index.d.ts +3 -0
- package/dist/fancy-ui/thread-list/index.js +2 -0
- package/dist/fancy-ui/time-picker/README.md +155 -0
- package/dist/fancy-ui/time-picker/TimePicker.svelte +297 -0
- package/dist/fancy-ui/time-picker/TimePicker.svelte.d.ts +37 -0
- package/dist/fancy-ui/time-picker/TimePicker.test.d.ts +1 -0
- package/dist/fancy-ui/time-picker/TimePicker.test.js +365 -0
- package/dist/fancy-ui/time-picker/TimePickerFieldHarness.test.svelte +35 -0
- package/dist/fancy-ui/time-picker/TimePickerFieldHarness.test.svelte.d.ts +11 -0
- package/dist/fancy-ui/time-picker/TimePickerHarness.test.svelte +28 -0
- package/dist/fancy-ui/time-picker/TimePickerHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/time-picker/TimePickerPanel.svelte +109 -0
- package/dist/fancy-ui/time-picker/TimePickerPanel.svelte.d.ts +9 -0
- package/dist/fancy-ui/time-picker/index.d.ts +3 -0
- package/dist/fancy-ui/time-picker/index.js +2 -0
- package/dist/fancy-ui/time-picker/time-utils.d.ts +33 -0
- package/dist/fancy-ui/time-picker/time-utils.js +96 -0
- package/dist/fancy-ui/time-picker/time-utils.test.d.ts +1 -0
- package/dist/fancy-ui/time-picker/time-utils.test.js +123 -0
- package/dist/fancy-ui/time-picker/types.d.ts +32 -0
- package/dist/fancy-ui/time-picker/types.js +1 -0
- package/dist/fancy-ui/toast/README.md +180 -0
- package/dist/fancy-ui/toast/Toast.svelte +203 -0
- package/dist/fancy-ui/toast/Toast.svelte.d.ts +12 -0
- package/dist/fancy-ui/toast/Toast.test.d.ts +1 -0
- package/dist/fancy-ui/toast/Toast.test.js +274 -0
- package/dist/fancy-ui/toast/Toaster.svelte +111 -0
- package/dist/fancy-ui/toast/Toaster.svelte.d.ts +12 -0
- package/dist/fancy-ui/toast/index.d.ts +4 -0
- package/dist/fancy-ui/toast/index.js +4 -0
- package/dist/fancy-ui/toast/store.svelte.d.ts +95 -0
- package/dist/fancy-ui/toast/store.svelte.js +160 -0
- package/dist/fancy-ui/toggle/README.md +89 -0
- package/dist/fancy-ui/toggle/Toggle.svelte +120 -0
- package/dist/fancy-ui/toggle/Toggle.svelte.d.ts +26 -0
- package/dist/fancy-ui/toggle/Toggle.test.d.ts +1 -0
- package/dist/fancy-ui/toggle/Toggle.test.js +97 -0
- package/dist/fancy-ui/toggle/ToggleHarness.test.svelte +30 -0
- package/dist/fancy-ui/toggle/ToggleHarness.test.svelte.d.ts +7 -0
- package/dist/fancy-ui/toggle/index.d.ts +3 -0
- package/dist/fancy-ui/toggle/index.js +2 -0
- package/dist/fancy-ui/toggle-group/README.md +206 -0
- package/dist/fancy-ui/toggle-group/ToggleGroup.svelte +259 -0
- package/dist/fancy-ui/toggle-group/ToggleGroup.svelte.d.ts +29 -0
- package/dist/fancy-ui/toggle-group/ToggleGroup.test.d.ts +1 -0
- package/dist/fancy-ui/toggle-group/ToggleGroup.test.js +382 -0
- package/dist/fancy-ui/toggle-group/ToggleGroupHarness.test.svelte +50 -0
- package/dist/fancy-ui/toggle-group/ToggleGroupHarness.test.svelte.d.ts +18 -0
- package/dist/fancy-ui/toggle-group/ToggleGroupItem.svelte +173 -0
- package/dist/fancy-ui/toggle-group/ToggleGroupItem.svelte.d.ts +18 -0
- package/dist/fancy-ui/toggle-group/index.d.ts +6 -0
- package/dist/fancy-ui/toggle-group/index.js +4 -0
- package/dist/fancy-ui/toggle-group/types.d.ts +50 -0
- package/dist/fancy-ui/toggle-group/types.js +17 -0
- package/dist/fancy-ui/tool-call/README.md +137 -0
- package/dist/fancy-ui/tool-call/ToolCall.svelte +430 -0
- package/dist/fancy-ui/tool-call/ToolCall.svelte.d.ts +30 -0
- package/dist/fancy-ui/tool-call/ToolCall.test.d.ts +1 -0
- package/dist/fancy-ui/tool-call/ToolCall.test.js +241 -0
- package/dist/fancy-ui/tool-call/index.d.ts +3 -0
- package/dist/fancy-ui/tool-call/index.js +2 -0
- package/dist/fancy-ui/tool-timeline/README.md +106 -0
- package/dist/fancy-ui/tool-timeline/ToolTimeline.svelte +263 -0
- package/dist/fancy-ui/tool-timeline/ToolTimeline.svelte.d.ts +24 -0
- package/dist/fancy-ui/tool-timeline/ToolTimeline.test.d.ts +1 -0
- package/dist/fancy-ui/tool-timeline/ToolTimeline.test.js +160 -0
- package/dist/fancy-ui/tool-timeline/index.d.ts +3 -0
- package/dist/fancy-ui/tool-timeline/index.js +2 -0
- package/dist/fancy-ui/tooltip/README.md +133 -0
- package/dist/fancy-ui/tooltip/Tooltip.svelte +307 -0
- package/dist/fancy-ui/tooltip/Tooltip.svelte.d.ts +32 -0
- package/dist/fancy-ui/tooltip/Tooltip.test.d.ts +1 -0
- package/dist/fancy-ui/tooltip/Tooltip.test.js +299 -0
- package/dist/fancy-ui/tooltip/index.d.ts +3 -0
- package/dist/fancy-ui/tooltip/index.js +2 -0
- package/dist/fancy-ui/typing-indicator/README.md +49 -0
- package/dist/fancy-ui/typing-indicator/TypingIndicator.svelte +97 -0
- package/dist/fancy-ui/typing-indicator/TypingIndicator.svelte.d.ts +17 -0
- package/dist/fancy-ui/typing-indicator/TypingIndicator.test.d.ts +1 -0
- package/dist/fancy-ui/typing-indicator/TypingIndicator.test.js +60 -0
- package/dist/fancy-ui/typing-indicator/index.d.ts +3 -0
- package/dist/fancy-ui/typing-indicator/index.js +2 -0
- package/dist/fancy-ui/voice-input/README.md +149 -0
- package/dist/fancy-ui/voice-input/VoiceInput.svelte +407 -0
- package/dist/fancy-ui/voice-input/VoiceInput.svelte.d.ts +43 -0
- package/dist/fancy-ui/voice-input/VoiceInput.test.d.ts +1 -0
- package/dist/fancy-ui/voice-input/VoiceInput.test.js +264 -0
- package/dist/fancy-ui/voice-input/VoiceInputHarness.test.svelte +34 -0
- package/dist/fancy-ui/voice-input/VoiceInputHarness.test.svelte.d.ts +11 -0
- package/dist/fancy-ui/voice-input/index.d.ts +3 -0
- package/dist/fancy-ui/voice-input/index.js +2 -0
- package/dist/fancy-ui/web-search/README.md +105 -0
- package/dist/fancy-ui/web-search/WebSearch.svelte +335 -0
- package/dist/fancy-ui/web-search/WebSearch.svelte.d.ts +28 -0
- package/dist/fancy-ui/web-search/WebSearch.test.d.ts +1 -0
- package/dist/fancy-ui/web-search/WebSearch.test.js +265 -0
- package/dist/fancy-ui/web-search/index.d.ts +3 -0
- package/dist/fancy-ui/web-search/index.js +2 -0
- package/dist/types.d.ts +3 -1
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src=".github/logo.png" alt="FancyUI" width="88" height="88" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
# fancy-ui
|
|
2
6
|
|
|
3
7
|
Beautiful animation and UI components for **Svelte 5**.
|
|
@@ -5,7 +9,7 @@ Beautiful animation and UI components for **Svelte 5**.
|
|
|
5
9
|

|
|
6
10
|

|
|
7
11
|

|
|
8
|
-

|
|
9
13
|

|
|
10
14
|
|
|
11
15
|
<p align="center">
|
|
@@ -32,107 +36,9 @@ Beautiful animation and UI components for **Svelte 5**.
|
|
|
32
36
|
- **Svelte 5 Runes** — Built with `$state`, `$derived`, `$effect`, and `$props`
|
|
33
37
|
- **Tailwind CSS 4** — Utility-first styling with theme tokens
|
|
34
38
|
- **TypeScript** — Fully typed props and events
|
|
35
|
-
- **
|
|
39
|
+
- **132 Components** — Core primitives (forms, navigation, overlays) alongside buttons, text animations, backgrounds and effects
|
|
36
40
|
- **Dark Mode** — All components support light and dark themes
|
|
37
|
-
- **Tested** —
|
|
38
|
-
|
|
39
|
-
## Components
|
|
40
|
-
|
|
41
|
-
### Buttons
|
|
42
|
-
|
|
43
|
-
| Component | Description | Demo |
|
|
44
|
-
| ---------------------- | ---------------------------------------- | -------------------------------------------------------------------------- |
|
|
45
|
-
| RainbowButton | Animated rainbow gradient border effect | [Demo](https://fancy-ui.rama.app/docs/components/rainbow-button) |
|
|
46
|
-
| RippleButton | Ripple click effect | [Demo](https://fancy-ui.rama.app/docs/components/ripple-button) |
|
|
47
|
-
| ShimmerButton | Rotating conic-gradient shimmer border | [Demo](https://fancy-ui.rama.app/docs/components/shimmer-button) |
|
|
48
|
-
| GradientButton | Rotating conic-gradient rainbow border | [Demo](https://fancy-ui.rama.app/docs/components/gradient-button) |
|
|
49
|
-
| InteractiveHoverButton | Hover effect revealing alternate content | [Demo](https://fancy-ui.rama.app/docs/components/interactive-hover-button) |
|
|
50
|
-
|
|
51
|
-
### Cards
|
|
52
|
-
|
|
53
|
-
| Component | Description | Demo |
|
|
54
|
-
| ------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
55
|
-
| AppleCardCarousel | Horizontal card carousel with spring-animated full-screen expansion | [Demo](https://fancy-ui.rama.app/docs/components/apple-card-carousel) |
|
|
56
|
-
| Card3D | 3D tilt card with mouse tracking | [Demo](https://fancy-ui.rama.app/docs/components/card-3d) |
|
|
57
|
-
| CardSpotlight | Spotlight effect following mouse | [Demo](https://fancy-ui.rama.app/docs/components/card-spotlight) |
|
|
58
|
-
| DirectionAwareHover | Overlay slides in from mouse entry direction | [Demo](https://fancy-ui.rama.app/docs/components/direction-aware-hover) |
|
|
59
|
-
| FlipCard | Two-sided card with flip animation | [Demo](https://fancy-ui.rama.app/docs/components/flip-card) |
|
|
60
|
-
| GlareCard | Glare reflection effect on hover | [Demo](https://fancy-ui.rama.app/docs/components/glare-card) |
|
|
61
|
-
| TextRevealCard | Text reveal on hover | [Demo](https://fancy-ui.rama.app/docs/components/text-reveal-card) |
|
|
62
|
-
|
|
63
|
-
### Text & Typography
|
|
64
|
-
|
|
65
|
-
| Component | Description | Demo |
|
|
66
|
-
| ------------------ | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
|
|
67
|
-
| BlurReveal | Scroll-triggered blur-to-clear reveal | [Demo](https://fancy-ui.rama.app/docs/components/blur-reveal) |
|
|
68
|
-
| BoxReveal | Sliding colored box reveal animation | [Demo](https://fancy-ui.rama.app/docs/components/box-reveal) |
|
|
69
|
-
| ColourfulText | Per-character color animation | [Demo](https://fancy-ui.rama.app/docs/components/colourful-text) |
|
|
70
|
-
| ContainerTextFlip | Text flipping inside a container | [Demo](https://fancy-ui.rama.app/docs/components/container-text-flip) |
|
|
71
|
-
| DisplacementText | 3D text with WebGL displacement that follows the cursor using Three.js shaders | [Demo](https://fancy-ui.rama.app/docs/components/displacement-text) |
|
|
72
|
-
| EditorialEngine | Live magazine layout with multi-column text flowing around draggable orbs | [Demo](https://fancy-ui.rama.app/docs/components/editorial-engine) |
|
|
73
|
-
| FlipWords | Cycling word animation with per-letter effects | [Demo](https://fancy-ui.rama.app/docs/components/flip-words) |
|
|
74
|
-
| HyperText | Character scramble on hover | [Demo](https://fancy-ui.rama.app/docs/components/hyper-text) |
|
|
75
|
-
| LetterPullup | Staggered letter pull-up animation | [Demo](https://fancy-ui.rama.app/docs/components/letter-pullup) |
|
|
76
|
-
| LineReveal | Staggered line-by-line text reveal | [Demo](https://fancy-ui.rama.app/docs/components/line-reveal) |
|
|
77
|
-
| LineShadowText | Text with animated line shadow | [Demo](https://fancy-ui.rama.app/docs/components/line-shadow-text) |
|
|
78
|
-
| LiquidText | Big text that liquefies along the cursor's path via a WebGL fluid solver | [Demo](https://fancy-ui.rama.app/docs/components/liquid-text) |
|
|
79
|
-
| NumberTicker | Animated number counter with easing | [Demo](https://fancy-ui.rama.app/docs/components/number-ticker) |
|
|
80
|
-
| SparklesText | Animated SVG sparkle stars overlay | [Demo](https://fancy-ui.rama.app/docs/components/sparkles-text) |
|
|
81
|
-
| TerminalText | Terminal-style text streamer with blinking cursor and glitch effect | [Demo](https://fancy-ui.rama.app/docs/components/terminal-text) |
|
|
82
|
-
| TextGenerateEffect | Word-by-word text generation effect | [Demo](https://fancy-ui.rama.app/docs/components/text-generate-effect) |
|
|
83
|
-
|
|
84
|
-
### Backgrounds
|
|
85
|
-
|
|
86
|
-
| Component | Description | Demo |
|
|
87
|
-
| ---------------------- | --------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
|
|
88
|
-
| FallingStarsBg | Canvas 3D starfield with motion trails | [Demo](https://fancy-ui.rama.app/docs/components/bg-falling-stars) |
|
|
89
|
-
| FlickeringGrid | Canvas grid with flickering opacity | [Demo](https://fancy-ui.rama.app/docs/components/flickering-grid) |
|
|
90
|
-
| InteractiveGridPattern | SVG grid with hover highlights | [Demo](https://fancy-ui.rama.app/docs/components/interactive-grid-pattern) |
|
|
91
|
-
| MatrixRain | Canvas-based falling glyph rain with configurable color, speed, and density | [Demo](https://fancy-ui.rama.app/docs/components/matrix-rain) |
|
|
92
|
-
| StarsBackground | Starfield with parallax mouse tracking | [Demo](https://fancy-ui.rama.app/docs/components/bg-stars) |
|
|
93
|
-
|
|
94
|
-
### Effects & Animations
|
|
95
|
-
|
|
96
|
-
| Component | Description | Demo |
|
|
97
|
-
| ---------------- | -------------------------------------------------------------- | -------------------------------------------------------------------- |
|
|
98
|
-
| AnimatedBeam | SVG beams connecting elements | [Demo](https://fancy-ui.rama.app/docs/components/animated-beam) |
|
|
99
|
-
| BorderBeam | Beam effect traveling around borders | [Demo](https://fancy-ui.rama.app/docs/components/border-beam) |
|
|
100
|
-
| Confetti | Configurable confetti burst | [Demo](https://fancy-ui.rama.app/docs/components/confetti) |
|
|
101
|
-
| FluidCursor | WebGL fluid simulation following cursor | [Demo](https://fancy-ui.rama.app/docs/components/fluid-cursor) |
|
|
102
|
-
| FrostedGlass | Frosted glass surface with organic turbulence-noise refraction | [Demo](https://fancy-ui.rama.app/docs/components/frosted-glass) |
|
|
103
|
-
| GlowBorder | Animated glowing border with gradients | [Demo](https://fancy-ui.rama.app/docs/components/glow-border) |
|
|
104
|
-
| GlowingEffect | Glowing highlight on hover | [Demo](https://fancy-ui.rama.app/docs/components/glowing-effect) |
|
|
105
|
-
| ImageTrailCursor | Cursor-following image trail (8 variants) | [Demo](https://fancy-ui.rama.app/docs/components/image-trail-cursor) |
|
|
106
|
-
| LiquidGlass | Liquid glass morphism effect | [Demo](https://fancy-ui.rama.app/docs/components/liquid-glass) |
|
|
107
|
-
| Meteors | Animated meteor shower effect | [Demo](https://fancy-ui.rama.app/docs/components/meteors) |
|
|
108
|
-
| NeonBorder | Dual-color neon glow border | [Demo](https://fancy-ui.rama.app/docs/components/neon-border) |
|
|
109
|
-
| Ripple | Expanding ripple rings | [Demo](https://fancy-ui.rama.app/docs/components/ripple) |
|
|
110
|
-
| SmoothCursor | Smooth lagging cursor follower | [Demo](https://fancy-ui.rama.app/docs/components/smooth-cursor) |
|
|
111
|
-
| Sparkles | Particle sparkle canvas | [Demo](https://fancy-ui.rama.app/docs/components/sparkles) |
|
|
112
|
-
| TracingBeam | Scroll-driven tracing beam | [Demo](https://fancy-ui.rama.app/docs/components/tracing-beam) |
|
|
113
|
-
|
|
114
|
-
### Layout
|
|
115
|
-
|
|
116
|
-
| Component | Description | Demo |
|
|
117
|
-
| --------------- | --------------------------------------------- | ------------------------------------------------------------------ |
|
|
118
|
-
| BentoGrid | Bento-style responsive grid layout | [Demo](https://fancy-ui.rama.app/docs/components/bento-grid) |
|
|
119
|
-
| Book | 3D book flip animation | [Demo](https://fancy-ui.rama.app/docs/components/book) |
|
|
120
|
-
| ContainerScroll | 3D scroll perspective container | [Demo](https://fancy-ui.rama.app/docs/components/container-scroll) |
|
|
121
|
-
| Focus | Focus-expand card layout | [Demo](https://fancy-ui.rama.app/docs/components/focus) |
|
|
122
|
-
| Marquee | Infinite scrolling for text, images, or cards | [Demo](https://fancy-ui.rama.app/docs/components/marquee) |
|
|
123
|
-
|
|
124
|
-
### Navigation & Display
|
|
125
|
-
|
|
126
|
-
| Component | Description | Demo |
|
|
127
|
-
| -------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
128
|
-
| AnimatedTestimonials | Testimonial carousel with smooth slide animations and optional autoplay | [Demo](https://fancy-ui.rama.app/docs/components/animated-testimonials) |
|
|
129
|
-
| AnimatedTooltip | Avatar row with mouse-following tooltips | [Demo](https://fancy-ui.rama.app/docs/components/animated-tooltip) |
|
|
130
|
-
| Compare | Before/after image comparison slider | [Demo](https://fancy-ui.rama.app/docs/components/compare) |
|
|
131
|
-
| Dock | Icon dock where items magnify as the cursor approaches | [Demo](https://fancy-ui.rama.app/docs/components/dock) |
|
|
132
|
-
| LineHoverLink | Link with 11 animated underline hover effects, pure CSS | [Demo](https://fancy-ui.rama.app/docs/components/line-hover-link) |
|
|
133
|
-
| LogoCloud | Marquee, grid, and icon logo layouts | [Demo](https://fancy-ui.rama.app/docs/components/logo-cloud) |
|
|
134
|
-
| NoiseReveal | WebGL image reveal with a Perlin-noise dissolve mask | [Demo](https://fancy-ui.rama.app/docs/components/noise-reveal) |
|
|
135
|
-
| Timeline | Vertical timeline with scroll-driven progress | [Demo](https://fancy-ui.rama.app/docs/components/timeline) |
|
|
41
|
+
- **Tested** — 2,900+ unit tests with Vitest and Testing Library
|
|
136
42
|
|
|
137
43
|
## Quick Start
|
|
138
44
|
|
|
@@ -245,7 +151,7 @@ Component tests are colocated with their component (see `RainbowButton.test.ts`
|
|
|
245
151
|
|
|
246
152
|
## Contributing
|
|
247
153
|
|
|
248
|
-
Contributions are welcome!
|
|
154
|
+
Contributions are welcome! 132 components and counting — PRs for new components, bug fixes, and improvements are appreciated.
|
|
249
155
|
|
|
250
156
|
### Adding a new component
|
|
251
157
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Test-only rig: a stand-in for "any control in this wave". It calls
|
|
3
|
+
getField() the same way a real one would and dumps the result onto its own
|
|
4
|
+
attributes so a test can read it back — proving `undefined` outside a
|
|
5
|
+
provider, and the exact object a provider published inside one. Not
|
|
6
|
+
exported from index.ts, and not collected by Vitest (the run includes
|
|
7
|
+
`*.test.ts` only).
|
|
8
|
+
-->
|
|
9
|
+
<script lang="ts">
|
|
10
|
+
import { getField } from "./field.svelte.js";
|
|
11
|
+
|
|
12
|
+
const field = getField();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<div
|
|
16
|
+
data-testid="consumer"
|
|
17
|
+
data-has-field={field !== undefined}
|
|
18
|
+
data-control-id={field?.controlId}
|
|
19
|
+
data-label-id={field?.labelId}
|
|
20
|
+
data-described-by={field?.describedBy}
|
|
21
|
+
data-invalid={field?.invalid}
|
|
22
|
+
data-valid={field?.valid}
|
|
23
|
+
data-required={field?.required}
|
|
24
|
+
data-disabled={field?.disabled}
|
|
25
|
+
></div>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const FieldConsumer: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}, {}, string>;
|
|
17
|
+
type FieldConsumer = InstanceType<typeof FieldConsumer>;
|
|
18
|
+
export default FieldConsumer;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Test-only rig: publishes `field` under FIELD_KEY when given, then renders a
|
|
3
|
+
FieldConsumer beneath it. `setContext`/`getContext` only resolve through a
|
|
4
|
+
real component tree, so proving getField() sees a provider's value — and
|
|
5
|
+
sees nothing at all with no `field` prop — needs two real component
|
|
6
|
+
instances rather than a raw snippet. Not exported from index.ts, and not
|
|
7
|
+
collected by Vitest (the run includes `*.test.ts` only).
|
|
8
|
+
-->
|
|
9
|
+
<script lang="ts">
|
|
10
|
+
import { setContext, untrack } from "svelte";
|
|
11
|
+
import { FIELD_KEY, type FieldContext } from "./field.svelte.js";
|
|
12
|
+
import FieldConsumer from "./FieldConsumer.test.svelte";
|
|
13
|
+
|
|
14
|
+
interface Props {
|
|
15
|
+
/** Omit to render the consumer with no provider above it at all. */
|
|
16
|
+
field?: FieldContext;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
let { field }: Props = $props();
|
|
20
|
+
|
|
21
|
+
// setContext must run synchronously during this component's own
|
|
22
|
+
// initialization, never inside an effect — so this deliberately reads
|
|
23
|
+
// `field` exactly once, capturing whatever the harness was mounted with.
|
|
24
|
+
// Publishing `undefined` explicitly is indistinguishable from publishing
|
|
25
|
+
// nothing at all: getField() reads back `undefined` from the context map
|
|
26
|
+
// either way, which is exactly the "no provider" case this harness needs
|
|
27
|
+
// to produce. Wrapped in `untrack` so the compiler's
|
|
28
|
+
// `state_referenced_locally` warning — which exists to catch a *reactive*
|
|
29
|
+
// read that silently only fires once — doesn't fire on a read that is
|
|
30
|
+
// deliberately one-shot.
|
|
31
|
+
setContext(
|
|
32
|
+
FIELD_KEY,
|
|
33
|
+
untrack(() => field)
|
|
34
|
+
);
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<FieldConsumer />
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type FieldContext } from "./field.svelte.js";
|
|
2
|
+
interface Props {
|
|
3
|
+
/** Omit to render the consumer with no provider above it at all. */
|
|
4
|
+
field?: FieldContext;
|
|
5
|
+
}
|
|
6
|
+
declare const FieldHarness: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type FieldHarness = ReturnType<typeof FieldHarness>;
|
|
8
|
+
export default FieldHarness;
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
import type { BlockToken } from "./markdown.js";
|
|
4
|
+
|
|
5
|
+
export interface MarkdownProps {
|
|
6
|
+
/** Markdown source. Safe to update on every streamed chunk. */
|
|
7
|
+
text?: string;
|
|
8
|
+
class?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Already-parsed blocks, used when the component renders itself for a
|
|
11
|
+
* blockquote. Consumers pass `text`.
|
|
12
|
+
*/
|
|
13
|
+
blocks?: BlockToken[];
|
|
14
|
+
/**
|
|
15
|
+
* Rendered inline at the very end of the document — a streaming caret, say.
|
|
16
|
+
* Every block here is block-level, so a caret placed after the component
|
|
17
|
+
* would sit on its own line instead of trailing the last character; this
|
|
18
|
+
* puts it inside the last paragraph, heading or list item instead. A
|
|
19
|
+
* document ending in code, a table, a rule, or nothing at all has no inline
|
|
20
|
+
* tail to hold it, and drops it.
|
|
21
|
+
*/
|
|
22
|
+
trailingCursor?: Snippet;
|
|
23
|
+
}
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<script lang="ts">
|
|
27
|
+
import { cn } from "../../utils.js";
|
|
28
|
+
import { parseMarkdown } from "./markdown.js";
|
|
29
|
+
import MarkdownInline from "./MarkdownInline.svelte";
|
|
30
|
+
import Self from "./Markdown.svelte";
|
|
31
|
+
|
|
32
|
+
let { text = "", class: className, blocks, trailingCursor }: MarkdownProps = $props();
|
|
33
|
+
|
|
34
|
+
let nodes = $derived(blocks ?? parseMarkdown(text));
|
|
35
|
+
let lastIndex = $derived(nodes.length - 1);
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
<div class={cn("ft-md", className)}>
|
|
39
|
+
{#each nodes as block, index}
|
|
40
|
+
{@const cursor = index === lastIndex ? trailingCursor : undefined}
|
|
41
|
+
{#if block.type === "paragraph"}
|
|
42
|
+
<p class="ft-md-p">
|
|
43
|
+
<MarkdownInline tokens={block.children} />{#if cursor}{@render cursor()}{/if}
|
|
44
|
+
</p>
|
|
45
|
+
{:else if block.type === "heading"}
|
|
46
|
+
<svelte:element this={`h${block.depth}`} class="ft-md-h" data-depth={block.depth}
|
|
47
|
+
><MarkdownInline
|
|
48
|
+
tokens={block.children}
|
|
49
|
+
/>{#if cursor}{@render cursor()}{/if}</svelte:element
|
|
50
|
+
>
|
|
51
|
+
{:else if block.type === "code"}
|
|
52
|
+
<pre class="ft-md-pre" data-lang={block.lang || null}><code>{block.text}</code></pre>
|
|
53
|
+
{:else if block.type === "list"}
|
|
54
|
+
{#if block.ordered}
|
|
55
|
+
<ol class="ft-md-ol" start={block.start}>
|
|
56
|
+
{#each block.items as item, itemIndex}
|
|
57
|
+
<li>
|
|
58
|
+
<MarkdownInline
|
|
59
|
+
tokens={item}
|
|
60
|
+
/>{#if cursor && itemIndex === block.items.length - 1}{@render cursor()}{/if}
|
|
61
|
+
</li>
|
|
62
|
+
{/each}
|
|
63
|
+
</ol>
|
|
64
|
+
{:else}
|
|
65
|
+
<ul class="ft-md-ul">
|
|
66
|
+
{#each block.items as item, itemIndex}
|
|
67
|
+
<li>
|
|
68
|
+
<MarkdownInline
|
|
69
|
+
tokens={item}
|
|
70
|
+
/>{#if cursor && itemIndex === block.items.length - 1}{@render cursor()}{/if}
|
|
71
|
+
</li>
|
|
72
|
+
{/each}
|
|
73
|
+
</ul>
|
|
74
|
+
{/if}
|
|
75
|
+
{:else if block.type === "blockquote"}
|
|
76
|
+
<blockquote class="ft-md-quote">
|
|
77
|
+
<Self blocks={block.children} trailingCursor={cursor} />
|
|
78
|
+
</blockquote>
|
|
79
|
+
{:else if block.type === "table"}
|
|
80
|
+
<div class="ft-md-table-scroll">
|
|
81
|
+
<table class="ft-md-table">
|
|
82
|
+
<thead>
|
|
83
|
+
<tr>
|
|
84
|
+
{#each block.header as cell, i}
|
|
85
|
+
<th style:text-align={block.align[i] ?? undefined}>
|
|
86
|
+
<MarkdownInline tokens={cell} />
|
|
87
|
+
</th>
|
|
88
|
+
{/each}
|
|
89
|
+
</tr>
|
|
90
|
+
</thead>
|
|
91
|
+
<tbody>
|
|
92
|
+
{#each block.rows as row}
|
|
93
|
+
<tr>
|
|
94
|
+
{#each row as cell, i}
|
|
95
|
+
<td style:text-align={block.align[i] ?? undefined}>
|
|
96
|
+
<MarkdownInline tokens={cell} />
|
|
97
|
+
</td>
|
|
98
|
+
{/each}
|
|
99
|
+
</tr>
|
|
100
|
+
{/each}
|
|
101
|
+
</tbody>
|
|
102
|
+
</table>
|
|
103
|
+
</div>
|
|
104
|
+
{:else if block.type === "hr"}
|
|
105
|
+
<hr class="ft-md-hr" />
|
|
106
|
+
{/if}
|
|
107
|
+
{/each}
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<style>
|
|
111
|
+
/*
|
|
112
|
+
* Typographic normalization, not a theme. Rendered markdown has to stay
|
|
113
|
+
* legible in a host app whose reset has stripped list markers and heading
|
|
114
|
+
* scale, so these defaults restore structure and nothing else — no palette,
|
|
115
|
+
* no font stack, no spacing opinions beyond the flow rhythm. Every value the
|
|
116
|
+
* host is likely to disagree with reads from a custom property first, and
|
|
117
|
+
* colours are mixed from `currentColor` so a dark surface needs no override.
|
|
118
|
+
*
|
|
119
|
+
* Styles are scoped. The blockquote branch renders this same component
|
|
120
|
+
* recursively, and a recursive instance is still this component class, so it
|
|
121
|
+
* carries the same scoping class and inherits every rule below — no :global
|
|
122
|
+
* escape needed. Inline marks (code spans, links, emphasis) belong to
|
|
123
|
+
* MarkdownInline and are styled there.
|
|
124
|
+
*/
|
|
125
|
+
|
|
126
|
+
.ft-md {
|
|
127
|
+
line-height: 1.6;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* One rhythm for every block, whatever margins the UA or reset supplies. */
|
|
131
|
+
.ft-md > * {
|
|
132
|
+
margin: 0;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.ft-md > * + * {
|
|
136
|
+
margin-block-start: 0.75em;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.ft-md > * + .ft-md-h {
|
|
140
|
+
margin-block-start: 1.25em;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.ft-md > * + .ft-md-hr,
|
|
144
|
+
.ft-md > .ft-md-hr + * {
|
|
145
|
+
margin-block-start: 1em;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.ft-md-h {
|
|
149
|
+
font-weight: 600;
|
|
150
|
+
line-height: 1.25;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.ft-md-h[data-depth="1"] {
|
|
154
|
+
font-size: 1.5em;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.ft-md-h[data-depth="2"] {
|
|
158
|
+
font-size: 1.3em;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.ft-md-h[data-depth="3"] {
|
|
162
|
+
font-size: 1.15em;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.ft-md-h[data-depth="4"] {
|
|
166
|
+
font-size: 1.05em;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.ft-md-h[data-depth="5"] {
|
|
170
|
+
font-size: 1em;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.ft-md-h[data-depth="6"] {
|
|
174
|
+
font-size: 0.95em;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.ft-md-ul {
|
|
178
|
+
list-style: disc;
|
|
179
|
+
padding-inline-start: 1.5em;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.ft-md-ol {
|
|
183
|
+
list-style: decimal;
|
|
184
|
+
padding-inline-start: 1.5em;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.ft-md-quote {
|
|
188
|
+
border-inline-start: 3px solid
|
|
189
|
+
var(--ft-md-quote-border, color-mix(in oklab, currentColor 25%, transparent));
|
|
190
|
+
padding-inline-start: 0.75em;
|
|
191
|
+
color: var(--ft-md-quote-color, color-mix(in oklab, currentColor 75%, transparent));
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.ft-md-pre {
|
|
195
|
+
background: var(--ft-md-code-bg, color-mix(in oklab, currentColor 8%, transparent));
|
|
196
|
+
border-radius: 6px;
|
|
197
|
+
padding: 0.75em 1em;
|
|
198
|
+
overflow-x: auto;
|
|
199
|
+
font-size: 0.9em;
|
|
200
|
+
line-height: 1.5;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/* The wrapper scrolls so a wide table never widens the whole message. */
|
|
204
|
+
.ft-md-table-scroll {
|
|
205
|
+
overflow-x: auto;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.ft-md-table {
|
|
209
|
+
border-collapse: collapse;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.ft-md-table th,
|
|
213
|
+
.ft-md-table td {
|
|
214
|
+
border: 1px solid var(--ft-md-border, color-mix(in oklab, currentColor 15%, transparent));
|
|
215
|
+
padding: 0.35em 0.6em;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.ft-md-table th {
|
|
219
|
+
font-weight: 600;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.ft-md-hr {
|
|
223
|
+
border: 0;
|
|
224
|
+
border-block-start: 1px solid
|
|
225
|
+
var(--ft-md-border, color-mix(in oklab, currentColor 15%, transparent));
|
|
226
|
+
}
|
|
227
|
+
</style>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
import type { BlockToken } from "./markdown.js";
|
|
3
|
+
export interface MarkdownProps {
|
|
4
|
+
/** Markdown source. Safe to update on every streamed chunk. */
|
|
5
|
+
text?: string;
|
|
6
|
+
class?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Already-parsed blocks, used when the component renders itself for a
|
|
9
|
+
* blockquote. Consumers pass `text`.
|
|
10
|
+
*/
|
|
11
|
+
blocks?: BlockToken[];
|
|
12
|
+
/**
|
|
13
|
+
* Rendered inline at the very end of the document — a streaming caret, say.
|
|
14
|
+
* Every block here is block-level, so a caret placed after the component
|
|
15
|
+
* would sit on its own line instead of trailing the last character; this
|
|
16
|
+
* puts it inside the last paragraph, heading or list item instead. A
|
|
17
|
+
* document ending in code, a table, a rule, or nothing at all has no inline
|
|
18
|
+
* tail to hold it, and drops it.
|
|
19
|
+
*/
|
|
20
|
+
trailingCursor?: Snippet;
|
|
21
|
+
}
|
|
22
|
+
declare const Markdown: import("svelte").Component<MarkdownProps, {}, "">;
|
|
23
|
+
type Markdown = ReturnType<typeof Markdown>;
|
|
24
|
+
export default Markdown;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { InlineToken } from "./markdown.js";
|
|
3
|
+
|
|
4
|
+
export interface MarkdownInlineProps {
|
|
5
|
+
tokens: InlineToken[];
|
|
6
|
+
}
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<script lang="ts">
|
|
10
|
+
import Self from "./MarkdownInline.svelte";
|
|
11
|
+
|
|
12
|
+
let { tokens }: MarkdownInlineProps = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<!--
|
|
16
|
+
Whitespace between the branches below would show up in the rendered text, so
|
|
17
|
+
the markup stays tightly packed.
|
|
18
|
+
-->
|
|
19
|
+
{#each tokens as token}{#if token.type === "text"}{token.text}{:else if token.type === "code"}<code
|
|
20
|
+
class="ft-md-code">{token.text}</code
|
|
21
|
+
>{:else if token.type === "strong"}<strong><Self tokens={token.children} /></strong
|
|
22
|
+
>{:else if token.type === "em"}<em><Self tokens={token.children} /></em
|
|
23
|
+
>{:else if token.type === "del"}<del><Self tokens={token.children} /></del
|
|
24
|
+
>{:else if token.type === "link" && token.href !== null}<a
|
|
25
|
+
class="ft-md-link"
|
|
26
|
+
href={token.href}
|
|
27
|
+
rel="noopener noreferrer nofollow ugc"
|
|
28
|
+
target="_blank"><Self tokens={token.children} /></a
|
|
29
|
+
>{:else}<Self tokens={token.children} />{/if}{/each}
|
|
30
|
+
|
|
31
|
+
<style>
|
|
32
|
+
/*
|
|
33
|
+
* The inline half of the markdown defaults; block elements are styled in
|
|
34
|
+
* Markdown.svelte. Both marks below go invisible under a reset that strips
|
|
35
|
+
* link underlines and code backgrounds, which is what makes them worth
|
|
36
|
+
* shipping. Colours mix from `currentColor` so they follow the surface, and
|
|
37
|
+
* both read from a custom property first so a host can restyle them.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
.ft-md-code {
|
|
41
|
+
background: var(--ft-md-code-bg, color-mix(in oklab, currentColor 8%, transparent));
|
|
42
|
+
border-radius: 4px;
|
|
43
|
+
padding: 0.1em 0.35em;
|
|
44
|
+
font-size: 0.9em;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.ft-md-link {
|
|
48
|
+
color: var(--ft-md-link, inherit);
|
|
49
|
+
text-decoration: underline;
|
|
50
|
+
text-underline-offset: 2px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.ft-md-link:hover {
|
|
54
|
+
opacity: 0.8;
|
|
55
|
+
}
|
|
56
|
+
</style>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { InlineToken } from "./markdown.js";
|
|
2
|
+
export interface MarkdownInlineProps {
|
|
3
|
+
tokens: InlineToken[];
|
|
4
|
+
}
|
|
5
|
+
declare const MarkdownInline: import("svelte").Component<MarkdownInlineProps, {}, "">;
|
|
6
|
+
type MarkdownInline = ReturnType<typeof MarkdownInline>;
|
|
7
|
+
export default MarkdownInline;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
/**
|
|
3
|
+
* Props for StreamText
|
|
4
|
+
*/
|
|
5
|
+
export interface StreamTextProps {
|
|
6
|
+
/** The whole text so far. Hand over a longer string to stream more in. */
|
|
7
|
+
text: string;
|
|
8
|
+
/** How long a newly arrived chunk stays tinted, in ms. */
|
|
9
|
+
settleMs?: number;
|
|
10
|
+
/** Additional CSS classes */
|
|
11
|
+
class?: string;
|
|
12
|
+
}
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<script lang="ts">
|
|
16
|
+
import { onDestroy, untrack } from "svelte";
|
|
17
|
+
import { cn } from "../../utils.js";
|
|
18
|
+
import { createTextStream } from "./stream-text.svelte.js";
|
|
19
|
+
|
|
20
|
+
let { text, settleMs = 350, class: className }: StreamTextProps = $props();
|
|
21
|
+
|
|
22
|
+
// Built once, with the initial text already settled: the server renders the
|
|
23
|
+
// whole string as a single plain span and only later growth animates. Reading
|
|
24
|
+
// the text here is meant to capture its first value, hence the untrack —
|
|
25
|
+
// `settleMs` goes in as a getter so a later duration reaches later chunks
|
|
26
|
+
// instead of leaving them on the mount-time timeout the CSS no longer matches.
|
|
27
|
+
const stream = untrack(() => createTextStream(text, { settleMs: () => settleMs }));
|
|
28
|
+
|
|
29
|
+
// The first run pushes the text the stream was built from, which is a no-op.
|
|
30
|
+
$effect(() => {
|
|
31
|
+
stream.push(text);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
onDestroy(() => stream.destroy());
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<span class={cn("ft-stream", className)} style="white-space: pre-wrap; --ft-settle: {settleMs}ms"
|
|
38
|
+
>{#each stream.segments as segment (segment.id)}<span class:ft-fresh={segment.fresh}
|
|
39
|
+
>{segment.text}</span
|
|
40
|
+
>{/each}</span
|
|
41
|
+
>
|
|
42
|
+
|
|
43
|
+
<style>
|
|
44
|
+
/*
|
|
45
|
+
* Reduced motion gets plain text at its final colour: with the whole rule
|
|
46
|
+
* behind the query there is no animation to shorten or fall back from.
|
|
47
|
+
*/
|
|
48
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
49
|
+
.ft-fresh {
|
|
50
|
+
animation: ft-tint var(--ft-settle, 350ms) ease-out;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@keyframes ft-tint {
|
|
54
|
+
from {
|
|
55
|
+
color: var(--ft-tint-color, oklch(0.65 0.15 250));
|
|
56
|
+
opacity: 0.6;
|
|
57
|
+
}
|
|
58
|
+
to {
|
|
59
|
+
color: inherit;
|
|
60
|
+
opacity: 1;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
</style>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props for StreamText
|
|
3
|
+
*/
|
|
4
|
+
export interface StreamTextProps {
|
|
5
|
+
/** The whole text so far. Hand over a longer string to stream more in. */
|
|
6
|
+
text: string;
|
|
7
|
+
/** How long a newly arrived chunk stays tinted, in ms. */
|
|
8
|
+
settleMs?: number;
|
|
9
|
+
/** Additional CSS classes */
|
|
10
|
+
class?: string;
|
|
11
|
+
}
|
|
12
|
+
declare const StreamText: import("svelte").Component<StreamTextProps, {}, "">;
|
|
13
|
+
type StreamText = ReturnType<typeof StreamText>;
|
|
14
|
+
export default StreamText;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|