@exegia/corpora-ui 1.0.0 → 3.0.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 +1 -1
- package/dist-lib/components/atoms/avatar/base.d.ts +2 -0
- package/dist-lib/components/atoms/avatar/index.d.ts +3 -0
- package/dist-lib/components/atoms/avatar/types.d.ts +20 -0
- package/dist-lib/components/atoms/avatar/utils.d.ts +13 -0
- package/dist-lib/components/atoms/background/texture.d.ts +2 -0
- package/dist-lib/components/atoms/background/type.d.ts +7 -0
- package/dist-lib/components/atoms/background/utils.d.ts +4 -0
- package/dist-lib/components/atoms/bubble/actions.d.ts +7 -0
- package/dist-lib/components/atoms/bubble/context.d.ts +4 -0
- package/dist-lib/components/atoms/bubble/default.d.ts +3 -0
- package/dist-lib/components/atoms/bubble/header.d.ts +8 -0
- package/dist-lib/components/atoms/bubble/index.d.ts +16 -0
- package/dist-lib/components/atoms/bubble/message.d.ts +3 -0
- package/dist-lib/components/atoms/bubble/reactions.d.ts +14 -0
- package/dist-lib/components/atoms/bubble/types.d.ts +62 -0
- package/dist-lib/components/atoms/bubble/utils.d.ts +13 -0
- package/dist-lib/components/atoms/field.d.ts +2 -0
- package/dist-lib/components/atoms/index.d.ts +10 -0
- package/dist-lib/components/atoms/loader.d.ts +2 -0
- package/dist-lib/components/atoms/reference.d.ts +7 -0
- package/dist-lib/components/atoms/text/default.d.ts +1144 -0
- package/dist-lib/components/atoms/text/heading.d.ts +2 -0
- package/dist-lib/components/atoms/text/index.d.ts +18 -0
- package/dist-lib/components/atoms/text/label.d.ts +2 -0
- package/dist-lib/components/atoms/text/paragraph.d.ts +2 -0
- package/dist-lib/components/atoms/text/span.d.ts +2 -0
- package/dist-lib/components/atoms/text/types.d.ts +27 -0
- package/dist-lib/components/atoms/text/utils.d.ts +4 -0
- package/dist-lib/components/atoms/text-selection/click-popover.d.ts +3 -0
- package/dist-lib/components/atoms/text-selection/index.d.ts +6 -0
- package/dist-lib/components/atoms/text-selection/popover.d.ts +3 -0
- package/dist-lib/components/atoms/text-selection/selection-atom.d.ts +30 -0
- package/dist-lib/components/atoms/text-selection/selection.d.ts +3 -0
- package/dist-lib/components/atoms/text-selection/types.d.ts +90 -0
- package/dist-lib/components/atoms/text-selection/use-selection.d.ts +7 -0
- package/dist-lib/components/atoms/types.d.ts +39 -0
- package/dist-lib/components/blocks/auth/auth-flow-atom.d.ts +76 -0
- package/dist-lib/components/blocks/auth/auth-flow-block.d.ts +41 -0
- package/dist-lib/components/blocks/auth/auth-session-atom.d.ts +28 -0
- package/dist-lib/components/blocks/auth/auth-shell.d.ts +55 -0
- package/dist-lib/components/blocks/auth/auth-state.d.ts +8 -0
- package/dist-lib/components/blocks/auth/code-auth-block.d.ts +3 -0
- package/dist-lib/components/blocks/auth/forgot-password-block.d.ts +3 -0
- package/dist-lib/components/blocks/auth/linked-accounts-block.d.ts +9 -0
- package/dist-lib/components/blocks/auth/login-block.d.ts +3 -0
- package/dist-lib/components/blocks/auth/onboarding/profile-step.d.ts +8 -0
- package/dist-lib/components/blocks/auth/onboarding-block.d.ts +15 -0
- package/dist-lib/components/blocks/auth/passkey-manager-block.d.ts +10 -0
- package/dist-lib/components/blocks/auth/passkey-sign-in-block.d.ts +8 -0
- package/dist-lib/components/blocks/auth/signup-block.d.ts +3 -0
- package/dist-lib/components/blocks/auth/type.d.ts +398 -0
- package/dist-lib/components/blocks/auth/update-password-block.d.ts +9 -0
- package/dist-lib/components/blocks/auth/use-auth-state.d.ts +52 -0
- package/dist-lib/components/blocks/chat/banners.d.ts +5 -0
- package/dist-lib/components/blocks/chat/base.d.ts +10 -0
- package/dist-lib/components/blocks/chat/header.d.ts +4 -0
- package/dist-lib/components/blocks/chat/index.d.ts +11 -0
- package/dist-lib/components/blocks/chat/recommendation-stack.d.ts +11 -0
- package/dist-lib/components/blocks/chat/suggested-prompts.d.ts +3 -0
- package/dist-lib/components/blocks/chat/type.d.ts +75 -0
- package/dist-lib/components/blocks/chat/version-history-record.d.ts +3 -0
- package/dist-lib/components/blocks/layout.d.ts +8 -0
- package/dist-lib/components/blocks/profile/index.d.ts +7 -0
- package/dist-lib/components/blocks/profile/profile-card-atom.d.ts +68 -0
- package/dist-lib/components/blocks/profile/profile-card-block.d.ts +66 -0
- package/dist-lib/components/blocks/profile/type.d.ts +80 -0
- package/dist-lib/components/blocks/profile/use-profile-card-state.d.ts +24 -0
- package/dist-lib/components/blocks/profile/use-profile-card.d.ts +34 -0
- package/dist-lib/components/blocks/scaffold/index.d.ts +29 -0
- package/dist-lib/components/blocks/scaffold/panel-close-button.d.ts +4 -0
- package/dist-lib/components/blocks/scaffold/panel-menu-button.d.ts +8 -0
- package/dist-lib/components/blocks/scaffold/scaffold-actions.d.ts +10 -0
- package/dist-lib/components/blocks/scaffold/scaffold-atom.d.ts +112 -0
- package/dist-lib/components/blocks/scaffold/scaffold-canvas.d.ts +9 -0
- package/dist-lib/components/blocks/scaffold/scaffold-context.d.ts +7 -0
- package/dist-lib/components/blocks/scaffold/scaffold-inspector.d.ts +9 -0
- package/dist-lib/components/blocks/scaffold/scaffold-main.d.ts +8 -0
- package/dist-lib/components/blocks/scaffold/scaffold-panel.d.ts +16 -0
- package/dist-lib/components/blocks/scaffold/scaffold-root.d.ts +17 -0
- package/dist-lib/components/blocks/scaffold/scaffold-sidebar.d.ts +7 -0
- package/dist-lib/components/blocks/scaffold/scaffold-sub-panel.d.ts +6 -0
- package/dist-lib/components/blocks/scaffold/scaffold-tab.d.ts +14 -0
- package/dist-lib/components/blocks/scaffold/type.d.ts +216 -0
- package/dist-lib/components/blocks/scaffold/use-scaffold-state.d.ts +26 -0
- package/dist-lib/components/blocks/scaffold/use-scaffold.d.ts +14 -0
- package/dist-lib/components/blocks/scaffold/utils.d.ts +38 -0
- package/dist-lib/components/blocks/shell/animated-panel-inset.d.ts +2 -0
- package/dist-lib/components/blocks/shell/animated-panel-provider.d.ts +2 -0
- package/dist-lib/components/blocks/shell/animated-panel-trigger.d.ts +2 -0
- package/dist-lib/components/blocks/shell/animated-panel.d.ts +2 -0
- package/dist-lib/components/blocks/shell/shell-fit-atom.d.ts +68 -0
- package/dist-lib/components/blocks/shell/shell-layout.d.ts +3 -0
- package/dist-lib/components/blocks/shell/shell-metrics.d.ts +72 -0
- package/dist-lib/components/blocks/shell/shell-panel-atom.d.ts +40 -0
- package/dist-lib/components/blocks/shell/type.d.ts +301 -0
- package/dist-lib/components/blocks/shell/use-shell-fit-state.d.ts +25 -0
- package/dist-lib/components/blocks/shell/use-shell-fit.d.ts +13 -0
- package/dist-lib/components/blocks/shell/use-shell-panels.d.ts +20 -0
- package/dist-lib/components/blocks/shell/utils.d.ts +72 -0
- package/dist-lib/components/blocks/sidebar/ai-sidebar-atom.d.ts +217 -0
- package/dist-lib/components/blocks/sidebar/ai-sidebar.d.ts +11 -0
- package/dist-lib/components/blocks/sidebar/index.d.ts +15 -0
- package/dist-lib/components/blocks/sidebar/sidebar-context.d.ts +3 -0
- package/dist-lib/components/blocks/sidebar/sidebar-icon.d.ts +2 -0
- package/dist-lib/components/blocks/sidebar/sidebar-row.d.ts +4 -0
- package/dist-lib/components/blocks/sidebar/type.d.ts +245 -0
- package/dist-lib/components/blocks/sidebar/use-ai-sidebar-state.d.ts +29 -0
- package/dist-lib/components/blocks/sidebar/use-ai-sidebar.d.ts +27 -0
- package/dist-lib/components/blocks/sidebar/utils.d.ts +21 -0
- package/dist-lib/components/blocks/types.d.ts +6 -0
- package/dist-lib/components/composed/action-bar/action.d.ts +18 -0
- package/dist-lib/components/composed/action-bar/emojis.d.ts +10 -0
- package/dist-lib/components/composed/action-bar/index.d.ts +12 -0
- package/dist-lib/components/composed/action-bar/toolbar.d.ts +2 -0
- package/dist-lib/components/composed/action-bar/types.d.ts +55 -0
- package/dist-lib/components/composed/action-bar/utils.d.ts +56 -0
- package/dist-lib/components/composed/ai/index.d.ts +17 -0
- package/dist-lib/components/composed/ai/message.d.ts +7 -0
- package/dist-lib/components/composed/ai/research-answer.d.ts +30 -0
- package/dist-lib/components/composed/ai/streaming-text.d.ts +26 -0
- package/dist-lib/components/composed/ai/suggested-prompt.d.ts +35 -0
- package/dist-lib/components/composed/ai/types.d.ts +68 -0
- package/dist-lib/components/composed/chat/attachment-file.d.ts +17 -0
- package/dist-lib/components/composed/chat/attachment.d.ts +60 -0
- package/dist-lib/components/composed/chat/chart/chart-atom.d.ts +30 -0
- package/dist-lib/components/composed/chat/chart/chart-context.d.ts +2 -0
- package/dist-lib/components/composed/chat/chart/chart-legend.d.ts +4 -0
- package/dist-lib/components/composed/chat/chart/chart-plot.d.ts +3 -0
- package/dist-lib/components/composed/chat/chart/chart-root.d.ts +3 -0
- package/dist-lib/components/composed/chat/chart/chart-tooltip.d.ts +4 -0
- package/dist-lib/components/composed/chat/chart/constants.d.ts +3 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-area-chart.d.ts +93 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-bar-chart.d.ts +86 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-brush.d.ts +65 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-chart.d.ts +44 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-dot.d.ts +16 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-legend.d.ts +24 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-line-chart.d.ts +90 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-pie-chart.d.ts +73 -0
- package/dist-lib/components/composed/chat/chart/evilcharts/echarts-tooltip.d.ts +29 -0
- package/dist-lib/components/composed/chat/chart/index.d.ts +6 -0
- package/dist-lib/components/composed/chat/chart/type.d.ts +80 -0
- package/dist-lib/components/composed/chat/chart/use-chart-state.d.ts +3 -0
- package/dist-lib/components/composed/chat/chart/use-chart.d.ts +6 -0
- package/dist-lib/components/composed/chat/chart/utils.d.ts +5 -0
- package/dist-lib/components/composed/chat/chart.d.ts +1 -0
- package/dist-lib/components/composed/chat/code-block.d.ts +26 -0
- package/dist-lib/components/composed/chat/composer/add-button.d.ts +5 -0
- package/dist-lib/components/composed/chat/composer/base.d.ts +5 -0
- package/dist-lib/components/composed/chat/composer/command-menu.d.ts +3 -0
- package/dist-lib/components/composed/chat/composer/hooks.d.ts +9 -0
- package/dist-lib/components/composed/chat/composer/send-button.d.ts +3 -0
- package/dist-lib/components/composed/chat/composer/suggestions.d.ts +7 -0
- package/dist-lib/components/composed/chat/composer/use-dictation.d.ts +8 -0
- package/dist-lib/components/composed/chat/composer/utils.d.ts +19 -0
- package/dist-lib/components/composed/chat/context-cards.d.ts +27 -0
- package/dist-lib/components/composed/chat/filter-table.d.ts +40 -0
- package/dist-lib/components/composed/chat/flowchart/chart-node.d.ts +2 -0
- package/dist-lib/components/composed/chat/flowchart/connector.d.ts +2 -0
- package/dist-lib/components/composed/chat/flowchart/default.d.ts +7 -0
- package/dist-lib/components/composed/chat/flowchart/edge-toolbar.d.ts +9 -0
- package/dist-lib/components/composed/chat/flowchart/hooks.d.ts +290 -0
- package/dist-lib/components/composed/chat/flowchart/step-body.d.ts +6 -0
- package/dist-lib/components/composed/chat/flowchart/types.d.ts +91 -0
- package/dist-lib/components/composed/chat/flowchart/utils.d.ts +64 -0
- package/dist-lib/components/composed/chat/index.d.ts +15 -0
- package/dist-lib/components/composed/chat/insight-cards.d.ts +54 -0
- package/dist-lib/components/composed/chat/markdown-atom.d.ts +7 -0
- package/dist-lib/components/composed/chat/markdown.d.ts +22 -0
- package/dist-lib/components/composed/chat/recommendation/checkbox.d.ts +9 -0
- package/dist-lib/components/composed/chat/recommendation/constant.d.ts +52 -0
- package/dist-lib/components/composed/chat/recommendation/default.d.ts +7 -0
- package/dist-lib/components/composed/chat/recommendation/group.d.ts +7 -0
- package/dist-lib/components/composed/chat/recommendation/index.d.ts +13 -0
- package/dist-lib/components/composed/chat/recommendation/item.d.ts +12 -0
- package/dist-lib/components/composed/chat/recommendation/types.d.ts +62 -0
- package/dist-lib/components/composed/chat/records-table.d.ts +40 -0
- package/dist-lib/components/composed/chat/type.d.ts +117 -0
- package/dist-lib/components/composed/logo.d.ts +34 -0
- package/dist-lib/components/composed/password-input.d.ts +30 -0
- package/dist-lib/components/composed/reader/applied-mark.d.ts +3 -0
- package/dist-lib/components/composed/reader/apply-toast.d.ts +3 -0
- package/dist-lib/components/composed/reader/selection-highlight.d.ts +3 -0
- package/dist-lib/components/composed/reader/selection-popover.d.ts +9 -0
- package/dist-lib/components/composed/reader/type.d.ts +40 -0
- package/dist-lib/components/composed/social-providers.d.ts +39 -0
- package/dist-lib/components/composed/tree/index.d.ts +6 -0
- package/dist-lib/components/composed/tree/tree-atom.d.ts +160 -0
- package/dist-lib/components/composed/tree/tree-context.d.ts +4 -0
- package/dist-lib/components/composed/tree/tree-node.d.ts +12 -0
- package/dist-lib/components/composed/tree/tree.d.ts +19 -0
- package/dist-lib/components/composed/tree/type.d.ts +290 -0
- package/dist-lib/components/composed/tree/use-tree-dnd.d.ts +18 -0
- package/dist-lib/components/composed/tree/use-tree-state.d.ts +25 -0
- package/dist-lib/components/composed/tree/use-tree.d.ts +24 -0
- package/dist-lib/components/composed/tree/utils.d.ts +28 -0
- package/dist-lib/components/composed/types.d.ts +7 -0
- package/dist-lib/components/composed/user/index.d.ts +11 -0
- package/dist-lib/components/composed/user/info.d.ts +12 -0
- package/dist-lib/components/composed/user/message.d.ts +2 -0
- package/dist-lib/components/composed/user/pill.d.ts +10 -0
- package/dist-lib/components/composed/user/types.d.ts +27 -0
- package/dist-lib/components/composed/verse/index.d.ts +2 -0
- package/dist-lib/components/composed/verse/types.d.ts +18 -0
- package/dist-lib/components/composed/verse/verse.d.ts +5 -0
- package/dist-lib/components/docs/atoms-gallery.d.ts +12 -0
- package/dist-lib/components/docs/block-demo-stage.d.ts +7 -0
- package/dist-lib/components/docs/blocks-gallery.d.ts +2 -0
- package/dist-lib/components/docs/browser.d.ts +10 -0
- package/dist-lib/components/docs/components-gallery.d.ts +2 -0
- package/dist-lib/components/docs/demo-controls.d.ts +21 -0
- package/dist-lib/components/icons/__tests__/icons.test.d.ts +1 -0
- package/dist-lib/components/icons/file-badge-cfm.d.ts +7 -0
- package/dist-lib/components/icons/file-badge-corpus.d.ts +7 -0
- package/dist-lib/components/icons/file-badge-pdf.d.ts +7 -0
- package/dist-lib/components/icons/file-badge-tei.d.ts +7 -0
- package/dist-lib/components/icons/file-badge-tf.d.ts +7 -0
- package/dist-lib/components/icons/file-badge-txt.d.ts +7 -0
- package/dist-lib/components/icons/file-badge-xml.d.ts +7 -0
- package/dist-lib/components/icons/file-wordmark-cfm.d.ts +7 -0
- package/dist-lib/components/icons/file-wordmark-corpus.d.ts +7 -0
- package/dist-lib/components/icons/file-wordmark-pdf.d.ts +7 -0
- package/dist-lib/components/icons/file-wordmark-tei.d.ts +7 -0
- package/dist-lib/components/icons/file-wordmark-tf.d.ts +7 -0
- package/dist-lib/components/icons/file-wordmark-txt.d.ts +7 -0
- package/dist-lib/components/icons/file-wordmark-xml.d.ts +7 -0
- package/dist-lib/components/icons/index.d.ts +15 -0
- package/dist-lib/components/icons/types.d.ts +7 -0
- package/dist-lib/components/motion/index.d.ts +1 -0
- package/dist-lib/components/motion/overflow-actions.d.ts +35 -0
- package/dist-lib/components/motion/popover-morph.d.ts +35 -0
- package/dist-lib/components/motion/popover-position.d.ts +15 -0
- package/dist-lib/components/motion/shared-layout-bg.d.ts +13 -0
- package/dist-lib/components/stories/attachment.story.d.ts +11 -0
- package/dist-lib/components/stories/auth-flow-block.story.d.ts +2 -0
- package/dist-lib/components/stories/avatar.story.d.ts +6 -0
- package/dist-lib/components/stories/base.story.d.ts +6 -0
- package/dist-lib/components/stories/bubble.story.d.ts +6 -0
- package/dist-lib/components/stories/button.story.d.ts +9 -0
- package/dist-lib/components/stories/card.story.d.ts +8 -0
- package/dist-lib/components/stories/chart.story.d.ts +71 -0
- package/dist-lib/components/stories/checkbox.story.d.ts +6 -0
- package/dist-lib/components/stories/code-auth-block.story.d.ts +2 -0
- package/dist-lib/components/stories/code-block.story.d.ts +12 -0
- package/dist-lib/components/stories/composed-password-input.story.d.ts +6 -0
- package/dist-lib/components/stories/context-cards.story.d.ts +3 -0
- package/dist-lib/components/stories/emoji-action-bar.story.d.ts +3 -0
- package/dist-lib/components/stories/field.story.d.ts +6 -0
- package/dist-lib/components/stories/file-icons.story.d.ts +5 -0
- package/dist-lib/components/stories/filter-table.story.d.ts +21 -0
- package/dist-lib/components/stories/flowchart.story.d.ts +3 -0
- package/dist-lib/components/stories/forgot-password-block.story.d.ts +2 -0
- package/dist-lib/components/stories/frame.story.d.ts +8 -0
- package/dist-lib/components/stories/index.d.ts +54 -0
- package/dist-lib/components/stories/input-group.story.d.ts +6 -0
- package/dist-lib/components/stories/input.story.d.ts +8 -0
- package/dist-lib/components/stories/insight-cards.story.d.ts +74 -0
- package/dist-lib/components/stories/label.story.d.ts +8 -0
- package/dist-lib/components/stories/linked-accounts-block.story.d.ts +2 -0
- package/dist-lib/components/stories/login-block.story.d.ts +2 -0
- package/dist-lib/components/stories/logo.story.d.ts +3 -0
- package/dist-lib/components/stories/markdown.story.d.ts +7 -0
- package/dist-lib/components/stories/menu-command.story.d.ts +13 -0
- package/dist-lib/components/stories/onboarding-block.story.d.ts +2 -0
- package/dist-lib/components/stories/otp-field.story.d.ts +8 -0
- package/dist-lib/components/stories/passkey-manager-block.story.d.ts +2 -0
- package/dist-lib/components/stories/passkey-sign-in-block.story.d.ts +2 -0
- package/dist-lib/components/stories/password-input.story.d.ts +9 -0
- package/dist-lib/components/stories/profile-card-block.story.d.ts +6 -0
- package/dist-lib/components/stories/recommendation-card.story.d.ts +3 -0
- package/dist-lib/components/stories/records-table.story.d.ts +23 -0
- package/dist-lib/components/stories/reference.story.d.ts +9 -0
- package/dist-lib/components/stories/research-answer.story.d.ts +10 -0
- package/dist-lib/components/stories/scaffold-root.story.d.ts +6 -0
- package/dist-lib/components/stories/separator.story.d.ts +6 -0
- package/dist-lib/components/stories/shell-layout.story.d.ts +2 -0
- package/dist-lib/components/stories/signup-block.story.d.ts +2 -0
- package/dist-lib/components/stories/social-providers.story.d.ts +3 -0
- package/dist-lib/components/stories/streaming-text.story.d.ts +3 -0
- package/dist-lib/components/stories/text.story.d.ts +8 -0
- package/dist-lib/components/stories/textarea.story.d.ts +6 -0
- package/dist-lib/components/stories/tree.story.d.ts +4 -0
- package/dist-lib/components/stories/update-password-block.story.d.ts +2 -0
- package/dist-lib/components/stories/user.story.d.ts +8 -0
- package/dist-lib/components/stories/verse.story.d.ts +6 -0
- package/dist-lib/components/theme-provider.d.ts +15 -0
- package/dist-lib/components/types.d.ts +11 -0
- package/dist-lib/components/ui/badge.d.ts +14 -0
- package/dist-lib/components/ui/button.d.ts +28 -0
- package/dist-lib/components/ui/chat/__tests__/segmented-toggle.test.d.ts +1 -0
- package/dist-lib/components/ui/chat/avatar-handle.d.ts +13 -0
- package/dist-lib/components/ui/chat/badges.d.ts +29 -0
- package/dist-lib/components/ui/chat/buttons.d.ts +29 -0
- package/dist-lib/components/ui/chat/chips.d.ts +48 -0
- package/dist-lib/components/ui/chat/dot.d.ts +30 -0
- package/dist-lib/components/ui/chat/icon-button.d.ts +18 -0
- package/dist-lib/components/ui/chat/icon-tile.d.ts +20 -0
- package/dist-lib/components/ui/chat/index.d.ts +12 -0
- package/dist-lib/components/ui/chat/inline-source.d.ts +20 -0
- package/dist-lib/components/ui/chat/segmented-toggle.d.ts +20 -0
- package/dist-lib/components/ui/chat/tag.d.ts +21 -0
- package/dist-lib/components/ui/chat/thumbnail.d.ts +13 -0
- package/dist-lib/components/ui/chat/waveform.d.ts +13 -0
- package/dist-lib/components/ui/glasscn/glass-button-group.d.ts +7 -0
- package/dist-lib/components/ui/glasscn/glass-button.d.ts +6 -0
- package/dist-lib/components/ui/glasscn/glass-container.d.ts +8 -0
- package/dist-lib/components/ui/glasscn/glass-separator.d.ts +5 -0
- package/dist-lib/components/ui/glasscn/liquid-glass.d.ts +29 -0
- package/dist-lib/components/ui/input-group.d.ts +13 -0
- package/dist-lib/components/ui/input.d.ts +9 -0
- package/dist-lib/components/ui/menu-command.d.ts +36 -0
- package/dist-lib/components/ui/popover-glass.d.ts +32 -0
- package/dist-lib/components/ui/select.d.ts +30 -0
- package/dist-lib/components/ui/tabs.d.ts +15 -0
- package/dist-lib/components/ui/textarea.d.ts +8 -0
- package/dist-lib/components/ui/toast.d.ts +15 -0
- package/dist-lib/index.d.ts +65 -0
- package/dist-lib/index.js +11893 -6443
- package/dist-lib/index.js.map +1 -1
- package/dist-lib/lib/attachment-content.d.ts +4 -0
- package/dist-lib/lib/auth-accent.d.ts +33 -0
- package/dist-lib/lib/glass-variants.d.ts +9 -0
- package/dist-lib/lib/keyed-atom.d.ts +14 -0
- package/dist-lib/lib/segmented-control.d.ts +8 -0
- package/dist-lib/lib/specular.d.ts +12 -0
- package/dist-lib/lib/state/__tests__/sound.test.d.ts +1 -0
- package/dist-lib/lib/state/exegia-provider.d.ts +51 -0
- package/dist-lib/lib/state/index.d.ts +4 -0
- package/dist-lib/lib/state/store.d.ts +17 -0
- package/dist-lib/lib/use-motion-panel.d.ts +9 -0
- package/dist-lib/lib/utils.test.d.ts +1 -0
- package/package.json +6 -1
- package/src/components/atoms/avatar/base.tsx +3 -3
- package/src/components/atoms/avatar/index.ts +8 -1
- package/src/components/atoms/avatar/types.ts +9 -9
- package/src/components/atoms/avatar/utils.ts +6 -6
- package/src/components/atoms/background/texture.tsx +2 -2
- package/src/components/atoms/background/type.ts +3 -3
- package/src/components/atoms/background/utils.ts +2 -2
- package/src/components/atoms/bubble/__tests__/bubble.test.tsx +59 -4
- package/src/components/atoms/bubble/actions.tsx +2 -2
- package/src/components/atoms/bubble/context.ts +3 -3
- package/src/components/atoms/bubble/default.tsx +2 -2
- package/src/components/atoms/bubble/header.tsx +6 -4
- package/src/components/atoms/bubble/index.ts +9 -9
- package/src/components/atoms/bubble/message.tsx +12 -5
- package/src/components/atoms/bubble/reactions.tsx +11 -14
- package/src/components/atoms/bubble/types.ts +21 -18
- package/src/components/atoms/bubble/utils.ts +10 -10
- package/src/components/atoms/field.tsx +43 -0
- package/src/components/atoms/index.ts +0 -26
- package/src/components/atoms/loader.tsx +2 -11
- package/src/components/atoms/reference.tsx +2 -2
- package/src/components/atoms/text/default.tsx +5 -5
- package/src/components/atoms/text/heading.tsx +2 -5
- package/src/components/atoms/text/index.ts +8 -4
- package/src/components/atoms/text/label.tsx +2 -2
- package/src/components/atoms/text/paragraph.tsx +2 -5
- package/src/components/atoms/text/span.tsx +2 -3
- package/src/components/atoms/text/types.ts +18 -8
- package/src/components/atoms/text/utils.ts +2 -2
- package/src/components/atoms/text-selection/click-popover.tsx +3 -3
- package/src/components/atoms/text-selection/index.ts +12 -12
- package/src/components/atoms/text-selection/popover.tsx +7 -4
- package/src/components/atoms/text-selection/selection-atom.ts +7 -7
- package/src/components/atoms/text-selection/selection.tsx +2 -2
- package/src/components/atoms/text-selection/types.ts +24 -24
- package/src/components/atoms/text-selection/use-selection.ts +3 -3
- package/src/components/atoms/types.ts +30 -2
- package/src/components/blocks/auth/__tests__/auth-flow-block.test.tsx +4 -4
- package/src/components/blocks/auth/__tests__/auth-state-atom.test.tsx +2 -2
- package/src/components/blocks/auth/__tests__/linked-accounts-block.test.tsx +2 -2
- package/src/components/blocks/auth/__tests__/onboarding-block.test.tsx +39 -12
- package/src/components/blocks/auth/__tests__/passkey-manager-block.test.tsx +4 -4
- package/src/components/blocks/auth/auth-flow-atom.ts +27 -27
- package/src/components/blocks/auth/auth-flow-block.tsx +8 -93
- package/src/components/blocks/auth/auth-session-atom.ts +9 -9
- package/src/components/blocks/auth/auth-shell.tsx +2 -3
- package/src/components/blocks/auth/auth-state.ts +0 -12
- package/src/components/blocks/auth/code-auth-block.tsx +16 -30
- package/src/components/blocks/auth/forgot-password-block.tsx +4 -15
- package/src/components/blocks/auth/linked-accounts-block.tsx +10 -36
- package/src/components/blocks/auth/login-block.tsx +7 -29
- package/src/components/blocks/auth/onboarding/profile-step.tsx +14 -25
- package/src/components/blocks/auth/onboarding-block.tsx +39 -96
- package/src/components/blocks/auth/passkey-manager-block.tsx +8 -33
- package/src/components/blocks/auth/passkey-sign-in-block.tsx +6 -20
- package/src/components/blocks/auth/signup-block.tsx +7 -44
- package/src/components/blocks/auth/type.ts +436 -0
- package/src/components/blocks/auth/update-password-block.tsx +4 -22
- package/src/components/blocks/auth/use-auth-state.ts +12 -12
- package/src/components/blocks/chat/__tests__/ai-panel.test.tsx +2 -2
- package/src/components/blocks/chat/banners.tsx +5 -13
- package/src/components/blocks/chat/base.tsx +2 -2
- package/src/components/blocks/chat/header.tsx +2 -2
- package/src/components/blocks/chat/index.ts +17 -19
- package/src/components/blocks/chat/recommendation-stack.tsx +4 -6
- package/src/components/blocks/chat/suggested-prompts.tsx +2 -2
- package/src/components/blocks/chat/type.ts +96 -0
- package/src/components/blocks/chat/version-history-record.tsx +2 -2
- package/src/components/blocks/profile/__tests__/profile-card-block.test.tsx +6 -6
- package/src/components/blocks/profile/index.ts +2 -2
- package/src/components/blocks/profile/profile-card-atom.ts +29 -29
- package/src/components/blocks/profile/profile-card-block.tsx +30 -30
- package/src/components/blocks/profile/type.ts +17 -17
- package/src/components/blocks/profile/use-profile-card-state.ts +7 -7
- package/src/components/blocks/profile/use-profile-card.ts +18 -18
- package/src/components/blocks/scaffold/__tests__/scaffold-atom.test.tsx +28 -2
- package/src/components/blocks/scaffold/__tests__/scaffold.test.tsx +90 -11
- package/src/components/blocks/scaffold/index.ts +4 -0
- package/src/components/blocks/scaffold/panel-close-button.tsx +2 -2
- package/src/components/blocks/scaffold/panel-menu-button.tsx +2 -2
- package/src/components/blocks/scaffold/scaffold-actions.tsx +2 -2
- package/src/components/blocks/scaffold/scaffold-atom.ts +76 -32
- package/src/components/blocks/scaffold/scaffold-canvas.tsx +89 -10
- package/src/components/blocks/scaffold/scaffold-context.ts +3 -3
- package/src/components/blocks/scaffold/scaffold-inspector.tsx +56 -7
- package/src/components/blocks/scaffold/scaffold-main.tsx +2 -2
- package/src/components/blocks/scaffold/scaffold-panel.tsx +119 -71
- package/src/components/blocks/scaffold/scaffold-root.tsx +14 -12
- package/src/components/blocks/scaffold/scaffold-sidebar.tsx +2 -2
- package/src/components/blocks/scaffold/scaffold-sub-panel.tsx +82 -13
- package/src/components/blocks/scaffold/scaffold-tab.tsx +2 -2
- package/src/components/blocks/scaffold/type.ts +46 -28
- package/src/components/blocks/scaffold/use-scaffold-state.ts +35 -8
- package/src/components/blocks/scaffold/use-scaffold.ts +3 -3
- package/src/components/blocks/scaffold/utils.ts +9 -6
- package/src/components/blocks/shell/__tests__/shell-fit-atom.test.tsx +7 -5
- package/src/components/blocks/shell/__tests__/shell-layout.test.tsx +154 -9
- package/src/components/blocks/shell/__tests__/shell-metrics.test.ts +56 -10
- package/src/components/blocks/shell/animated-panel-inset.tsx +9 -9
- package/src/components/blocks/shell/animated-panel-provider.tsx +76 -30
- package/src/components/blocks/shell/animated-panel-trigger.tsx +10 -5
- package/src/components/blocks/shell/animated-panel.tsx +76 -128
- package/src/components/blocks/shell/shell-fit-atom.ts +29 -26
- package/src/components/blocks/shell/shell-layout.tsx +29 -13
- package/src/components/blocks/shell/shell-metrics.ts +69 -15
- package/src/components/blocks/shell/shell-panel-atom.ts +74 -0
- package/src/components/blocks/shell/type.ts +78 -69
- package/src/components/blocks/shell/use-shell-fit-state.ts +4 -4
- package/src/components/blocks/shell/use-shell-fit.ts +52 -34
- package/src/components/blocks/shell/use-shell-panels.ts +32 -66
- package/src/components/blocks/shell/utils.ts +8 -4
- package/src/components/blocks/sidebar/__tests__/ai-sidebar-atom.test.tsx +325 -0
- package/src/components/blocks/sidebar/__tests__/ai-sidebar.test.tsx +93 -0
- package/src/components/blocks/sidebar/__tests__/use-ai-sidebar.test.tsx +310 -0
- package/src/components/blocks/sidebar/ai-sidebar-atom.ts +698 -0
- package/src/components/blocks/sidebar/ai-sidebar.tsx +150 -0
- package/src/components/blocks/sidebar/index.ts +67 -0
- package/src/components/blocks/sidebar/sidebar-context.ts +15 -0
- package/src/components/blocks/sidebar/sidebar-icon.tsx +14 -0
- package/src/components/blocks/sidebar/sidebar-row.tsx +378 -0
- package/src/components/blocks/sidebar/type.ts +294 -0
- package/src/components/blocks/sidebar/use-ai-sidebar-state.ts +123 -0
- package/src/components/blocks/sidebar/use-ai-sidebar.ts +619 -0
- package/src/components/blocks/sidebar/utils.ts +170 -0
- package/src/components/blocks/types.ts +6 -0
- package/src/components/composed/action-bar/__tests__/action-bar.test.tsx +43 -14
- package/src/components/composed/action-bar/action.tsx +9 -12
- package/src/components/composed/action-bar/emojis.tsx +4 -4
- package/src/components/composed/action-bar/index.ts +8 -8
- package/src/components/composed/action-bar/toolbar.tsx +36 -30
- package/src/components/composed/action-bar/types.ts +14 -14
- package/src/components/composed/action-bar/utils.ts +17 -18
- package/src/components/composed/ai/__tests__/ai.test.tsx +3 -4
- package/src/components/composed/ai/avatar.tsx +4 -5
- package/src/components/composed/ai/index.ts +7 -7
- package/src/components/composed/ai/message.tsx +7 -7
- package/src/components/composed/ai/research-answer.tsx +7 -7
- package/src/components/composed/ai/streaming-text.tsx +5 -5
- package/src/components/composed/ai/suggested-prompt.tsx +4 -4
- package/src/components/composed/ai/types.ts +30 -30
- package/src/components/composed/chat/__tests__/attachment.test.tsx +182 -9
- package/src/components/composed/chat/__tests__/chart.test.tsx +295 -8
- package/src/components/composed/chat/__tests__/composer-attachments.test.tsx +51 -3
- package/src/components/composed/chat/__tests__/composer.test.tsx +173 -6
- package/src/components/composed/chat/__tests__/flowchart.test.tsx +15 -2
- package/src/components/composed/chat/__tests__/glass-material.test.tsx +54 -0
- package/src/components/composed/chat/__tests__/menu-command.test.tsx +35 -0
- package/src/components/composed/chat/__tests__/recommendation.test.tsx +43 -0
- package/src/components/composed/chat/attachment-file.ts +82 -0
- package/src/components/composed/chat/attachment.tsx +387 -117
- package/src/components/composed/chat/chart/chart-atom.ts +55 -0
- package/src/components/composed/chat/chart/chart-context.ts +9 -0
- package/src/components/composed/chat/chart/chart-legend.tsx +75 -0
- package/src/components/composed/chat/chart/chart-plot.tsx +233 -0
- package/src/components/composed/chat/chart/chart-root.tsx +229 -0
- package/src/components/composed/chat/chart/chart-tooltip.tsx +74 -0
- package/src/components/composed/chat/chart/constants.ts +8 -0
- package/src/components/composed/chat/chart/evilcharts/LICENSE +21 -0
- package/src/components/composed/chat/chart/evilcharts/README.md +8 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-area-chart.tsx +2358 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-bar-chart.tsx +2261 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-brush.tsx +233 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-chart.tsx +214 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-dot.tsx +111 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-legend.tsx +131 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-line-chart.tsx +2112 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-pie-chart.tsx +1235 -0
- package/src/components/composed/chat/chart/evilcharts/echarts-tooltip.tsx +125 -0
- package/src/components/composed/chat/chart/index.ts +13 -0
- package/src/components/composed/chat/chart/type.ts +88 -0
- package/src/components/composed/chat/chart/use-chart-state.ts +22 -0
- package/src/components/composed/chat/chart/use-chart.ts +70 -0
- package/src/components/composed/chat/chart/utils.ts +47 -0
- package/src/components/composed/chat/chart.tsx +2 -192
- package/src/components/composed/chat/code-block.tsx +5 -5
- package/src/components/composed/chat/composer/BEAUTIFUL-UI-LICENSE.txt +23 -0
- package/src/components/composed/chat/composer/add-button.tsx +24 -17
- package/src/components/composed/chat/composer/base.tsx +503 -178
- package/src/components/composed/chat/composer/command-menu.tsx +31 -26
- package/src/components/composed/chat/composer/hooks.ts +3 -3
- package/src/components/composed/chat/composer/send-button.tsx +20 -28
- package/src/components/composed/chat/composer/suggestions.tsx +2 -2
- package/src/components/composed/chat/composer/use-dictation.ts +123 -0
- package/src/components/composed/chat/composer/utils.ts +4 -4
- package/src/components/composed/chat/context-cards.tsx +5 -5
- package/src/components/composed/chat/filter-table.tsx +8 -8
- package/src/components/composed/chat/flowchart/chart-node.tsx +2 -2
- package/src/components/composed/chat/flowchart/connector.tsx +2 -2
- package/src/components/composed/chat/flowchart/default.tsx +3 -3
- package/src/components/composed/chat/flowchart/edge-toolbar.tsx +5 -5
- package/src/components/composed/chat/flowchart/hooks.tsx +28 -26
- package/src/components/composed/chat/flowchart/step-body.tsx +2 -2
- package/src/components/composed/chat/flowchart/types.ts +14 -14
- package/src/components/composed/chat/flowchart/utils.ts +15 -15
- package/src/components/composed/chat/index.ts +35 -39
- package/src/components/composed/chat/insight-cards.tsx +17 -17
- package/src/components/composed/chat/markdown-atom.ts +2 -2
- package/src/components/composed/chat/markdown.tsx +10 -10
- package/src/components/composed/chat/recommendation/checkbox.tsx +3 -14
- package/src/components/composed/chat/recommendation/constant.ts +35 -6
- package/src/components/composed/chat/recommendation/default.tsx +2 -2
- package/src/components/composed/chat/recommendation/group.tsx +4 -11
- package/src/components/composed/chat/recommendation/index.ts +0 -2
- package/src/components/composed/chat/recommendation/item.tsx +35 -64
- package/src/components/composed/chat/recommendation/types.ts +26 -15
- package/src/components/composed/chat/records-table.tsx +20 -18
- package/src/components/composed/chat/type.ts +56 -25
- package/src/components/composed/logo.tsx +4 -4
- package/src/components/composed/password-input.tsx +2 -2
- package/src/components/composed/reader/applied-mark.tsx +2 -2
- package/src/components/composed/reader/apply-toast.tsx +2 -2
- package/src/components/composed/reader/selection-highlight.tsx +2 -2
- package/src/components/composed/reader/selection-popover.tsx +2 -2
- package/src/components/composed/reader/type.ts +8 -8
- package/src/components/composed/social-providers.tsx +26 -18
- package/src/components/composed/tree/CLAUDE.md +3 -3
- package/src/components/composed/tree/__tests__/tree-atom.test.tsx +8 -8
- package/src/components/composed/tree/__tests__/tree.test.tsx +10 -10
- package/src/components/composed/tree/__tests__/use-tree.test.tsx +10 -10
- package/src/components/composed/tree/index.ts +12 -12
- package/src/components/composed/tree/tree-atom.ts +46 -46
- package/src/components/composed/tree/tree-context.ts +3 -3
- package/src/components/composed/tree/tree-node.tsx +7 -7
- package/src/components/composed/tree/tree.tsx +13 -13
- package/src/components/composed/tree/type.ts +56 -56
- package/src/components/composed/tree/use-tree-dnd.ts +10 -10
- package/src/components/composed/tree/use-tree-state.ts +3 -3
- package/src/components/composed/tree/use-tree.ts +10 -10
- package/src/components/composed/tree/utils.ts +21 -21
- package/src/components/composed/types.ts +9 -0
- package/src/components/composed/user/__tests__/message.test.tsx +79 -0
- package/src/components/composed/user/index.ts +2 -2
- package/src/components/composed/user/info.tsx +15 -7
- package/src/components/composed/user/message.tsx +33 -7
- package/src/components/composed/user/pill.tsx +3 -3
- package/src/components/composed/user/types.ts +34 -14
- package/src/components/composed/verse/index.ts +1 -1
- package/src/components/composed/verse/types.ts +8 -8
- package/src/components/composed/verse/verse.tsx +6 -6
- package/src/components/docs/atoms-gallery.tsx +45 -45
- package/src/components/docs/block-demo-stage.tsx +38 -0
- package/src/components/docs/blocks-gallery.tsx +224 -0
- package/src/components/docs/browser.tsx +87 -0
- package/src/components/docs/components-gallery.tsx +182 -0
- package/src/components/docs/demo-controls.tsx +6 -7
- package/src/components/docs/hero.tsx +2 -3
- package/src/components/icons/file-badge-cfm.tsx +2 -2
- package/src/components/icons/file-badge-corpus.tsx +2 -2
- package/src/components/icons/file-badge-pdf.tsx +2 -2
- package/src/components/icons/file-badge-tei.tsx +2 -2
- package/src/components/icons/file-badge-tf.tsx +2 -2
- package/src/components/icons/file-badge-txt.tsx +2 -2
- package/src/components/icons/file-badge-xml.tsx +2 -2
- package/src/components/icons/file-wordmark-cfm.tsx +2 -2
- package/src/components/icons/file-wordmark-corpus.tsx +2 -2
- package/src/components/icons/file-wordmark-pdf.tsx +2 -2
- package/src/components/icons/file-wordmark-tei.tsx +2 -2
- package/src/components/icons/file-wordmark-tf.tsx +2 -2
- package/src/components/icons/file-wordmark-txt.tsx +2 -2
- package/src/components/icons/file-wordmark-xml.tsx +2 -2
- package/src/components/icons/index.ts +1 -1
- package/src/components/icons/types.ts +1 -1
- package/src/components/motion/overflow-actions.tsx +19 -19
- package/src/components/motion/popover-morph.tsx +15 -15
- package/src/components/motion/popover-position.ts +4 -4
- package/src/components/motion/shared-layout-bg.tsx +2 -2
- package/src/components/stories/attachment.story.tsx +40 -0
- package/src/components/stories/auth-flow-block.story.tsx +17 -0
- package/src/components/stories/avatar.story.tsx +33 -0
- package/src/components/stories/base.story.tsx +70 -0
- package/src/components/stories/bubble.story.tsx +61 -0
- package/src/components/stories/button.story.tsx +32 -0
- package/src/components/stories/card.story.tsx +36 -0
- package/src/components/stories/chart.story.tsx +69 -0
- package/src/components/stories/checkbox.story.tsx +30 -0
- package/src/components/stories/code-auth-block.story.tsx +20 -0
- package/src/components/stories/code-block.story.tsx +35 -0
- package/src/components/stories/composed-password-input.story.tsx +41 -0
- package/src/components/stories/context-cards.story.tsx +30 -0
- package/src/components/stories/emoji-action-bar.story.tsx +20 -0
- package/src/components/stories/field.story.tsx +32 -0
- package/src/components/stories/file-icons.story.tsx +20 -0
- package/src/components/stories/filter-table.story.tsx +63 -0
- package/src/components/stories/flowchart.story.tsx +25 -0
- package/src/components/stories/forgot-password-block.story.tsx +14 -0
- package/src/components/stories/frame.story.tsx +32 -0
- package/src/components/stories/index.ts +57 -0
- package/src/components/stories/input-group.story.tsx +27 -0
- package/src/components/stories/input.story.tsx +42 -0
- package/src/components/stories/insight-cards.story.tsx +67 -0
- package/src/components/stories/label.story.tsx +32 -0
- package/src/components/stories/linked-accounts-block.story.tsx +23 -0
- package/src/components/stories/login-block.story.tsx +18 -0
- package/src/components/stories/logo.story.tsx +21 -0
- package/src/components/stories/markdown.story.tsx +31 -0
- package/src/components/stories/menu-command.story.tsx +43 -0
- package/src/components/stories/onboarding-block.story.tsx +14 -0
- package/src/components/stories/otp-field.story.tsx +35 -0
- package/src/components/stories/passkey-manager-block.story.tsx +18 -0
- package/src/components/stories/passkey-sign-in-block.story.tsx +15 -0
- package/src/components/stories/password-input.story.tsx +35 -0
- package/src/components/stories/profile-card-block.story.tsx +29 -0
- package/src/components/stories/recommendation-card.story.tsx +37 -0
- package/src/components/stories/records-table.story.tsx +52 -0
- package/src/components/stories/reference.story.tsx +33 -0
- package/src/components/stories/research-answer.story.tsx +32 -0
- package/src/components/stories/scaffold-root.story.tsx +47 -0
- package/src/components/stories/separator.story.tsx +37 -0
- package/src/components/stories/shell-layout.story.tsx +19 -0
- package/src/components/stories/signup-block.story.tsx +18 -0
- package/src/components/stories/social-providers.story.tsx +26 -0
- package/src/components/stories/streaming-text.story.tsx +25 -0
- package/src/components/stories/text.story.tsx +31 -0
- package/src/components/stories/textarea.story.tsx +34 -0
- package/src/components/stories/tree.story.tsx +31 -0
- package/src/components/stories/update-password-block.story.tsx +14 -0
- package/src/components/stories/user.story.tsx +32 -0
- package/src/components/stories/verse.story.tsx +42 -0
- package/src/components/theme-provider.tsx +16 -16
- package/src/components/types.ts +106 -0
- package/src/components/ui/badge.tsx +3 -3
- package/src/components/ui/button.tsx +15 -22
- package/src/components/ui/chat/avatar-handle.tsx +2 -2
- package/src/components/ui/chat/badges.tsx +2 -2
- package/src/components/ui/chat/buttons.tsx +7 -7
- package/src/components/ui/chat/chips.tsx +11 -11
- package/src/components/ui/chat/dot.tsx +8 -8
- package/src/components/ui/chat/icon-button.tsx +3 -3
- package/src/components/ui/chat/icon-tile.tsx +2 -2
- package/src/components/ui/chat/index.ts +12 -12
- package/src/components/ui/chat/inline-source.tsx +2 -2
- package/src/components/ui/chat/segmented-toggle.tsx +4 -4
- package/src/components/ui/chat/tag.tsx +10 -10
- package/src/components/ui/chat/thumbnail.tsx +2 -2
- package/src/components/ui/chat/waveform.tsx +2 -2
- package/src/components/ui/field.tsx +3 -3
- package/src/components/ui/glasscn/glass-button-group.tsx +7 -21
- package/src/components/ui/glasscn/glass-button.tsx +5 -5
- package/src/components/ui/glasscn/glass-container.tsx +10 -47
- package/src/components/ui/glasscn/glass-separator.tsx +6 -6
- package/src/components/ui/glasscn/liquid-glass.tsx +43 -300
- package/src/components/ui/input-group.tsx +4 -4
- package/src/components/ui/input.tsx +2 -2
- package/src/components/ui/menu-command.tsx +103 -75
- package/src/components/ui/popover-glass.tsx +11 -14
- package/src/components/ui/select.tsx +2 -2
- package/src/components/ui/tabs.tsx +12 -12
- package/src/components/ui/textarea.tsx +2 -2
- package/src/components/ui/toast.tsx +13 -13
- package/src/index.css +3 -1
- package/src/index.ts +3 -1
- package/src/lib/attachment-content.ts +28 -0
- package/src/lib/auth-accent.ts +2 -2
- package/src/lib/glass-variants.ts +19 -54
- package/src/lib/keyed-atom.ts +3 -3
- package/src/lib/segmented-control.ts +2 -2
- package/src/lib/specular.ts +10 -0
- package/src/lib/state/__tests__/sound.test.tsx +53 -0
- package/src/lib/state/exegia-provider.tsx +6 -6
- package/src/lib/state/index.ts +2 -2
- package/src/lib/state/store.ts +2 -2
- package/src/lib/use-motion-panel.ts +78 -0
- package/src/lib/utils.ts +7 -5
- package/src/specular.js +4 -0
- package/dist-lib/src/components/atoms/avatar/base.d.ts +0 -2
- package/dist-lib/src/components/atoms/avatar/index.d.ts +0 -2
- package/dist-lib/src/components/atoms/avatar/types.d.ts +0 -20
- package/dist-lib/src/components/atoms/avatar/utils.d.ts +0 -13
- package/dist-lib/src/components/atoms/background/texture.d.ts +0 -2
- package/dist-lib/src/components/atoms/background/type.d.ts +0 -7
- package/dist-lib/src/components/atoms/background/utils.d.ts +0 -4
- package/dist-lib/src/components/atoms/bubble/actions.d.ts +0 -7
- package/dist-lib/src/components/atoms/bubble/context.d.ts +0 -4
- package/dist-lib/src/components/atoms/bubble/default.d.ts +0 -3
- package/dist-lib/src/components/atoms/bubble/header.d.ts +0 -8
- package/dist-lib/src/components/atoms/bubble/index.d.ts +0 -16
- package/dist-lib/src/components/atoms/bubble/message.d.ts +0 -3
- package/dist-lib/src/components/atoms/bubble/reactions.d.ts +0 -14
- package/dist-lib/src/components/atoms/bubble/types.d.ts +0 -59
- package/dist-lib/src/components/atoms/bubble/utils.d.ts +0 -13
- package/dist-lib/src/components/atoms/index.d.ts +0 -15
- package/dist-lib/src/components/atoms/loader.d.ts +0 -8
- package/dist-lib/src/components/atoms/reference.d.ts +0 -7
- package/dist-lib/src/components/atoms/text/default.d.ts +0 -1144
- package/dist-lib/src/components/atoms/text/heading.d.ts +0 -4
- package/dist-lib/src/components/atoms/text/index.d.ts +0 -21
- package/dist-lib/src/components/atoms/text/label.d.ts +0 -2
- package/dist-lib/src/components/atoms/text/paragraph.d.ts +0 -4
- package/dist-lib/src/components/atoms/text/span.d.ts +0 -3
- package/dist-lib/src/components/atoms/text/types.d.ts +0 -23
- package/dist-lib/src/components/atoms/text/utils.d.ts +0 -4
- package/dist-lib/src/components/atoms/text-selection/click-popover.d.ts +0 -3
- package/dist-lib/src/components/atoms/text-selection/index.d.ts +0 -6
- package/dist-lib/src/components/atoms/text-selection/popover.d.ts +0 -3
- package/dist-lib/src/components/atoms/text-selection/selection-atom.d.ts +0 -30
- package/dist-lib/src/components/atoms/text-selection/selection.d.ts +0 -3
- package/dist-lib/src/components/atoms/text-selection/types.d.ts +0 -90
- package/dist-lib/src/components/atoms/text-selection/use-selection.d.ts +0 -7
- package/dist-lib/src/components/atoms/types.d.ts +0 -17
- package/dist-lib/src/components/blocks/auth/auth-flow-atom.d.ts +0 -77
- package/dist-lib/src/components/blocks/auth/auth-flow-block.d.ts +0 -123
- package/dist-lib/src/components/blocks/auth/auth-flow-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/auth-session-atom.d.ts +0 -28
- package/dist-lib/src/components/blocks/auth/auth-shell.d.ts +0 -56
- package/dist-lib/src/components/blocks/auth/auth-state-type.d.ts +0 -71
- package/dist-lib/src/components/blocks/auth/auth-state.d.ts +0 -9
- package/dist-lib/src/components/blocks/auth/code-auth-block.d.ts +0 -22
- package/dist-lib/src/components/blocks/auth/code-auth-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/forgot-password-block.d.ts +0 -15
- package/dist-lib/src/components/blocks/auth/forgot-password-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/linked-accounts-block.d.ts +0 -36
- package/dist-lib/src/components/blocks/auth/linked-accounts-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/login-block.d.ts +0 -25
- package/dist-lib/src/components/blocks/auth/login-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/onboarding/profile-step.d.ts +0 -19
- package/dist-lib/src/components/blocks/auth/onboarding-block.d.ts +0 -69
- package/dist-lib/src/components/blocks/auth/onboarding-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/passkey-manager-block.d.ts +0 -38
- package/dist-lib/src/components/blocks/auth/passkey-manager-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/passkey-sign-in-block.d.ts +0 -27
- package/dist-lib/src/components/blocks/auth/passkey-sign-in-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/signup-block.d.ts +0 -41
- package/dist-lib/src/components/blocks/auth/signup-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/update-password-block.d.ts +0 -28
- package/dist-lib/src/components/blocks/auth/update-password-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/auth/use-auth-state.d.ts +0 -52
- package/dist-lib/src/components/blocks/chat/banners.d.ts +0 -13
- package/dist-lib/src/components/blocks/chat/base.d.ts +0 -10
- package/dist-lib/src/components/blocks/chat/base.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/chat/header.d.ts +0 -4
- package/dist-lib/src/components/blocks/chat/index.d.ts +0 -13
- package/dist-lib/src/components/blocks/chat/recommendation-stack.d.ts +0 -13
- package/dist-lib/src/components/blocks/chat/suggested-prompts.d.ts +0 -3
- package/dist-lib/src/components/blocks/chat/types.d.ts +0 -64
- package/dist-lib/src/components/blocks/chat/version-history-record.d.ts +0 -3
- package/dist-lib/src/components/blocks/layout.d.ts +0 -8
- package/dist-lib/src/components/blocks/nav/sidebar/ai-sidebar-atom.d.ts +0 -217
- package/dist-lib/src/components/blocks/nav/sidebar/ai-sidebar.d.ts +0 -11
- package/dist-lib/src/components/blocks/nav/sidebar/index.d.ts +0 -15
- package/dist-lib/src/components/blocks/nav/sidebar/sidebar-context.d.ts +0 -3
- package/dist-lib/src/components/blocks/nav/sidebar/sidebar-icon.d.ts +0 -2
- package/dist-lib/src/components/blocks/nav/sidebar/sidebar-row.d.ts +0 -4
- package/dist-lib/src/components/blocks/nav/sidebar/type.d.ts +0 -245
- package/dist-lib/src/components/blocks/nav/sidebar/use-ai-sidebar-state.d.ts +0 -29
- package/dist-lib/src/components/blocks/nav/sidebar/use-ai-sidebar.d.ts +0 -27
- package/dist-lib/src/components/blocks/nav/sidebar/utils.d.ts +0 -21
- package/dist-lib/src/components/blocks/profile/index.d.ts +0 -7
- package/dist-lib/src/components/blocks/profile/profile-card-atom.d.ts +0 -68
- package/dist-lib/src/components/blocks/profile/profile-card-block.d.ts +0 -66
- package/dist-lib/src/components/blocks/profile/profile-card-block.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/profile/type.d.ts +0 -80
- package/dist-lib/src/components/blocks/profile/use-profile-card-state.d.ts +0 -24
- package/dist-lib/src/components/blocks/profile/use-profile-card.d.ts +0 -34
- package/dist-lib/src/components/blocks/scaffold/index.d.ts +0 -29
- package/dist-lib/src/components/blocks/scaffold/panel-close-button.d.ts +0 -4
- package/dist-lib/src/components/blocks/scaffold/panel-menu-button.d.ts +0 -8
- package/dist-lib/src/components/blocks/scaffold/scaffold-actions.d.ts +0 -10
- package/dist-lib/src/components/blocks/scaffold/scaffold-atom.d.ts +0 -97
- package/dist-lib/src/components/blocks/scaffold/scaffold-canvas.d.ts +0 -9
- package/dist-lib/src/components/blocks/scaffold/scaffold-context.d.ts +0 -7
- package/dist-lib/src/components/blocks/scaffold/scaffold-inspector.d.ts +0 -9
- package/dist-lib/src/components/blocks/scaffold/scaffold-main.d.ts +0 -8
- package/dist-lib/src/components/blocks/scaffold/scaffold-panel.d.ts +0 -10
- package/dist-lib/src/components/blocks/scaffold/scaffold-root.d.ts +0 -17
- package/dist-lib/src/components/blocks/scaffold/scaffold-root.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/scaffold/scaffold-sidebar.d.ts +0 -7
- package/dist-lib/src/components/blocks/scaffold/scaffold-sub-panel.d.ts +0 -3
- package/dist-lib/src/components/blocks/scaffold/scaffold-tab.d.ts +0 -14
- package/dist-lib/src/components/blocks/scaffold/type.d.ts +0 -203
- package/dist-lib/src/components/blocks/scaffold/use-scaffold-state.d.ts +0 -26
- package/dist-lib/src/components/blocks/scaffold/use-scaffold.d.ts +0 -14
- package/dist-lib/src/components/blocks/scaffold/utils.d.ts +0 -37
- package/dist-lib/src/components/blocks/shell/animated-panel-inset.d.ts +0 -2
- package/dist-lib/src/components/blocks/shell/animated-panel-provider.d.ts +0 -2
- package/dist-lib/src/components/blocks/shell/animated-panel-trigger.d.ts +0 -2
- package/dist-lib/src/components/blocks/shell/animated-panel.d.ts +0 -2
- package/dist-lib/src/components/blocks/shell/shell-fit-atom.d.ts +0 -68
- package/dist-lib/src/components/blocks/shell/shell-layout.d.ts +0 -3
- package/dist-lib/src/components/blocks/shell/shell-layout.story.d.ts +0 -3
- package/dist-lib/src/components/blocks/shell/shell-metrics.d.ts +0 -54
- package/dist-lib/src/components/blocks/shell/type.d.ts +0 -292
- package/dist-lib/src/components/blocks/shell/use-shell-fit-state.d.ts +0 -25
- package/dist-lib/src/components/blocks/shell/use-shell-fit.d.ts +0 -14
- package/dist-lib/src/components/blocks/shell/use-shell-panels.d.ts +0 -20
- package/dist-lib/src/components/blocks/shell/utils.d.ts +0 -70
- package/dist-lib/src/components/composed/action-bar/action.d.ts +0 -18
- package/dist-lib/src/components/composed/action-bar/emojis.d.ts +0 -10
- package/dist-lib/src/components/composed/action-bar/index.d.ts +0 -12
- package/dist-lib/src/components/composed/action-bar/toolbar.d.ts +0 -2
- package/dist-lib/src/components/composed/action-bar/types.d.ts +0 -55
- package/dist-lib/src/components/composed/action-bar/utils.d.ts +0 -57
- package/dist-lib/src/components/composed/ai/index.d.ts +0 -17
- package/dist-lib/src/components/composed/ai/message.d.ts +0 -7
- package/dist-lib/src/components/composed/ai/research-answer.d.ts +0 -30
- package/dist-lib/src/components/composed/ai/streaming-text.d.ts +0 -26
- package/dist-lib/src/components/composed/ai/suggested-prompt.d.ts +0 -35
- package/dist-lib/src/components/composed/ai/types.d.ts +0 -66
- package/dist-lib/src/components/composed/attachment.story.d.ts +0 -3
- package/dist-lib/src/components/composed/chart.story.d.ts +0 -3
- package/dist-lib/src/components/composed/chat/attachment.d.ts +0 -62
- package/dist-lib/src/components/composed/chat/chart.d.ts +0 -41
- package/dist-lib/src/components/composed/chat/code-block.d.ts +0 -26
- package/dist-lib/src/components/composed/chat/composer/add-button.d.ts +0 -5
- package/dist-lib/src/components/composed/chat/composer/base.d.ts +0 -8
- package/dist-lib/src/components/composed/chat/composer/command-menu.d.ts +0 -2
- package/dist-lib/src/components/composed/chat/composer/hooks.d.ts +0 -9
- package/dist-lib/src/components/composed/chat/composer/send-button.d.ts +0 -3
- package/dist-lib/src/components/composed/chat/composer/suggestions.d.ts +0 -7
- package/dist-lib/src/components/composed/chat/composer/utils.d.ts +0 -19
- package/dist-lib/src/components/composed/chat/context-cards.d.ts +0 -27
- package/dist-lib/src/components/composed/chat/filter-table.d.ts +0 -40
- package/dist-lib/src/components/composed/chat/flowchart/chart-node.d.ts +0 -2
- package/dist-lib/src/components/composed/chat/flowchart/connector.d.ts +0 -2
- package/dist-lib/src/components/composed/chat/flowchart/default.d.ts +0 -7
- package/dist-lib/src/components/composed/chat/flowchart/edge-toolbar.d.ts +0 -9
- package/dist-lib/src/components/composed/chat/flowchart/hooks.d.ts +0 -290
- package/dist-lib/src/components/composed/chat/flowchart/step-body.d.ts +0 -6
- package/dist-lib/src/components/composed/chat/flowchart/types.d.ts +0 -91
- package/dist-lib/src/components/composed/chat/flowchart/utils.d.ts +0 -64
- package/dist-lib/src/components/composed/chat/index.d.ts +0 -15
- package/dist-lib/src/components/composed/chat/insight-cards.d.ts +0 -54
- package/dist-lib/src/components/composed/chat/markdown-atom.d.ts +0 -7
- package/dist-lib/src/components/composed/chat/markdown.d.ts +0 -22
- package/dist-lib/src/components/composed/chat/recommendation/checkbox.d.ts +0 -15
- package/dist-lib/src/components/composed/chat/recommendation/constant.d.ts +0 -6
- package/dist-lib/src/components/composed/chat/recommendation/default.d.ts +0 -7
- package/dist-lib/src/components/composed/chat/recommendation/group.d.ts +0 -8
- package/dist-lib/src/components/composed/chat/recommendation/index.d.ts +0 -15
- package/dist-lib/src/components/composed/chat/recommendation/item.d.ts +0 -12
- package/dist-lib/src/components/composed/chat/recommendation/types.d.ts +0 -53
- package/dist-lib/src/components/composed/chat/records-table.d.ts +0 -38
- package/dist-lib/src/components/composed/chat/type.d.ts +0 -86
- package/dist-lib/src/components/composed/code-block.story.d.ts +0 -3
- package/dist-lib/src/components/composed/context-cards.story.d.ts +0 -3
- package/dist-lib/src/components/composed/emoji-action-bar.story.d.ts +0 -3
- package/dist-lib/src/components/composed/filter-table.story.d.ts +0 -7
- package/dist-lib/src/components/composed/flowchart.story.d.ts +0 -3
- package/dist-lib/src/components/composed/insight-cards.story.d.ts +0 -3
- package/dist-lib/src/components/composed/logo.d.ts +0 -34
- package/dist-lib/src/components/composed/logo.story.d.ts +0 -3
- package/dist-lib/src/components/composed/markdown.story.d.ts +0 -3
- package/dist-lib/src/components/composed/password-input.d.ts +0 -30
- package/dist-lib/src/components/composed/password-input.story.d.ts +0 -7
- package/dist-lib/src/components/composed/reader/applied-mark.d.ts +0 -3
- package/dist-lib/src/components/composed/reader/apply-toast.d.ts +0 -3
- package/dist-lib/src/components/composed/reader/selection-highlight.d.ts +0 -3
- package/dist-lib/src/components/composed/reader/selection-popover.d.ts +0 -9
- package/dist-lib/src/components/composed/reader/type.d.ts +0 -40
- package/dist-lib/src/components/composed/recommendation-card.story.d.ts +0 -3
- package/dist-lib/src/components/composed/records-table.story.d.ts +0 -3
- package/dist-lib/src/components/composed/research-answer.story.d.ts +0 -3
- package/dist-lib/src/components/composed/social-providers.d.ts +0 -37
- package/dist-lib/src/components/composed/social-providers.story.d.ts +0 -3
- package/dist-lib/src/components/composed/streaming-text.story.d.ts +0 -3
- package/dist-lib/src/components/composed/tree/index.d.ts +0 -6
- package/dist-lib/src/components/composed/tree/tree-atom.d.ts +0 -160
- package/dist-lib/src/components/composed/tree/tree-context.d.ts +0 -4
- package/dist-lib/src/components/composed/tree/tree-node.d.ts +0 -12
- package/dist-lib/src/components/composed/tree/tree.d.ts +0 -19
- package/dist-lib/src/components/composed/tree/type.d.ts +0 -290
- package/dist-lib/src/components/composed/tree/use-tree-dnd.d.ts +0 -18
- package/dist-lib/src/components/composed/tree/use-tree-state.d.ts +0 -25
- package/dist-lib/src/components/composed/tree/use-tree.d.ts +0 -24
- package/dist-lib/src/components/composed/tree/utils.d.ts +0 -28
- package/dist-lib/src/components/composed/tree.story.d.ts +0 -6
- package/dist-lib/src/components/composed/user/index.d.ts +0 -11
- package/dist-lib/src/components/composed/user/info.d.ts +0 -12
- package/dist-lib/src/components/composed/user/message.d.ts +0 -3
- package/dist-lib/src/components/composed/user/pill.d.ts +0 -10
- package/dist-lib/src/components/composed/user/types.d.ts +0 -20
- package/dist-lib/src/components/composed/user.story.d.ts +0 -8
- package/dist-lib/src/components/composed/verse/index.d.ts +0 -2
- package/dist-lib/src/components/composed/verse/types.d.ts +0 -18
- package/dist-lib/src/components/composed/verse/verse.d.ts +0 -5
- package/dist-lib/src/components/composed/verse.story.d.ts +0 -3
- package/dist-lib/src/components/docs/atoms-gallery.d.ts +0 -3
- package/dist-lib/src/components/docs/demo-controls.d.ts +0 -21
- package/dist-lib/src/components/icons/file-badge-cfm.d.ts +0 -7
- package/dist-lib/src/components/icons/file-badge-corpus.d.ts +0 -7
- package/dist-lib/src/components/icons/file-badge-pdf.d.ts +0 -7
- package/dist-lib/src/components/icons/file-badge-tei.d.ts +0 -7
- package/dist-lib/src/components/icons/file-badge-tf.d.ts +0 -7
- package/dist-lib/src/components/icons/file-badge-txt.d.ts +0 -7
- package/dist-lib/src/components/icons/file-badge-xml.d.ts +0 -7
- package/dist-lib/src/components/icons/file-wordmark-cfm.d.ts +0 -7
- package/dist-lib/src/components/icons/file-wordmark-corpus.d.ts +0 -7
- package/dist-lib/src/components/icons/file-wordmark-pdf.d.ts +0 -7
- package/dist-lib/src/components/icons/file-wordmark-tei.d.ts +0 -7
- package/dist-lib/src/components/icons/file-wordmark-tf.d.ts +0 -7
- package/dist-lib/src/components/icons/file-wordmark-txt.d.ts +0 -7
- package/dist-lib/src/components/icons/file-wordmark-xml.d.ts +0 -7
- package/dist-lib/src/components/icons/index.d.ts +0 -15
- package/dist-lib/src/components/icons/types.d.ts +0 -7
- package/dist-lib/src/components/motion/overflow-actions.d.ts +0 -35
- package/dist-lib/src/components/motion/popover-morph.d.ts +0 -35
- package/dist-lib/src/components/motion/popover-position.d.ts +0 -15
- package/dist-lib/src/components/motion/shared-layout-bg.d.ts +0 -13
- package/dist-lib/src/components/theme-provider.d.ts +0 -15
- package/dist-lib/src/components/ui/avatar.story.d.ts +0 -7
- package/dist-lib/src/components/ui/badge.d.ts +0 -14
- package/dist-lib/src/components/ui/bubble.story.d.ts +0 -7
- package/dist-lib/src/components/ui/button.d.ts +0 -28
- package/dist-lib/src/components/ui/button.story.d.ts +0 -8
- package/dist-lib/src/components/ui/card.story.d.ts +0 -9
- package/dist-lib/src/components/ui/chat/avatar-handle.d.ts +0 -13
- package/dist-lib/src/components/ui/chat/badges.d.ts +0 -29
- package/dist-lib/src/components/ui/chat/buttons.d.ts +0 -29
- package/dist-lib/src/components/ui/chat/chips.d.ts +0 -48
- package/dist-lib/src/components/ui/chat/dot.d.ts +0 -30
- package/dist-lib/src/components/ui/chat/icon-button.d.ts +0 -18
- package/dist-lib/src/components/ui/chat/icon-tile.d.ts +0 -20
- package/dist-lib/src/components/ui/chat/index.d.ts +0 -12
- package/dist-lib/src/components/ui/chat/inline-source.d.ts +0 -20
- package/dist-lib/src/components/ui/chat/segmented-toggle.d.ts +0 -20
- package/dist-lib/src/components/ui/chat/tag.d.ts +0 -21
- package/dist-lib/src/components/ui/chat/thumbnail.d.ts +0 -13
- package/dist-lib/src/components/ui/chat/waveform.d.ts +0 -13
- package/dist-lib/src/components/ui/chat-atoms.story.d.ts +0 -22
- package/dist-lib/src/components/ui/checkbox.story.d.ts +0 -7
- package/dist-lib/src/components/ui/field.story.d.ts +0 -7
- package/dist-lib/src/components/ui/file-icons.story.d.ts +0 -7
- package/dist-lib/src/components/ui/frame.story.d.ts +0 -9
- package/dist-lib/src/components/ui/glasscn/glass-button-group.d.ts +0 -5
- package/dist-lib/src/components/ui/glasscn/glass-button.d.ts +0 -6
- package/dist-lib/src/components/ui/glasscn/glass-container.d.ts +0 -12
- package/dist-lib/src/components/ui/glasscn/glass-separator.d.ts +0 -5
- package/dist-lib/src/components/ui/glasscn/liquid-glass.d.ts +0 -31
- package/dist-lib/src/components/ui/input-group.d.ts +0 -13
- package/dist-lib/src/components/ui/input-group.story.d.ts +0 -7
- package/dist-lib/src/components/ui/input.d.ts +0 -9
- package/dist-lib/src/components/ui/input.story.d.ts +0 -9
- package/dist-lib/src/components/ui/label.story.d.ts +0 -9
- package/dist-lib/src/components/ui/menu-command.d.ts +0 -37
- package/dist-lib/src/components/ui/menu-command.story.d.ts +0 -7
- package/dist-lib/src/components/ui/otp-field.story.d.ts +0 -9
- package/dist-lib/src/components/ui/password-input.story.d.ts +0 -3
- package/dist-lib/src/components/ui/popover-glass.d.ts +0 -32
- package/dist-lib/src/components/ui/reference.story.d.ts +0 -10
- package/dist-lib/src/components/ui/select.d.ts +0 -30
- package/dist-lib/src/components/ui/separator.story.d.ts +0 -7
- package/dist-lib/src/components/ui/tabs.d.ts +0 -15
- package/dist-lib/src/components/ui/text.story.d.ts +0 -9
- package/dist-lib/src/components/ui/textarea.d.ts +0 -8
- package/dist-lib/src/components/ui/textarea.story.d.ts +0 -7
- package/dist-lib/src/components/ui/toast.d.ts +0 -15
- package/dist-lib/src/index.d.ts +0 -63
- package/dist-lib/src/lib/auth-accent.d.ts +0 -33
- package/dist-lib/src/lib/glass-variants.d.ts +0 -6
- package/dist-lib/src/lib/keyed-atom.d.ts +0 -14
- package/dist-lib/src/lib/segmented-control.d.ts +0 -8
- package/dist-lib/src/lib/state/exegia-provider.d.ts +0 -51
- package/dist-lib/src/lib/state/index.d.ts +0 -4
- package/dist-lib/src/lib/state/store.d.ts +0 -17
- package/src/components/blocks/auth/auth-flow-block.story.tsx +0 -17
- package/src/components/blocks/auth/auth-state-type.ts +0 -97
- package/src/components/blocks/auth/code-auth-block.story.tsx +0 -20
- package/src/components/blocks/auth/forgot-password-block.story.tsx +0 -14
- package/src/components/blocks/auth/linked-accounts-block.story.tsx +0 -23
- package/src/components/blocks/auth/login-block.story.tsx +0 -18
- package/src/components/blocks/auth/onboarding-block.story.tsx +0 -14
- package/src/components/blocks/auth/passkey-manager-block.story.tsx +0 -18
- package/src/components/blocks/auth/passkey-sign-in-block.story.tsx +0 -14
- package/src/components/blocks/auth/signup-block.story.tsx +0 -18
- package/src/components/blocks/auth/update-password-block.story.tsx +0 -14
- package/src/components/blocks/chat/base.story.tsx +0 -19
- package/src/components/blocks/chat/types.ts +0 -81
- package/src/components/blocks/nav/sidebar/__tests__/ai-sidebar-atom.test.tsx +0 -325
- package/src/components/blocks/nav/sidebar/__tests__/ai-sidebar.test.tsx +0 -93
- package/src/components/blocks/nav/sidebar/__tests__/use-ai-sidebar.test.tsx +0 -310
- package/src/components/blocks/nav/sidebar/ai-sidebar-atom.ts +0 -698
- package/src/components/blocks/nav/sidebar/ai-sidebar.tsx +0 -150
- package/src/components/blocks/nav/sidebar/index.ts +0 -67
- package/src/components/blocks/nav/sidebar/sidebar-context.ts +0 -15
- package/src/components/blocks/nav/sidebar/sidebar-icon.tsx +0 -14
- package/src/components/blocks/nav/sidebar/sidebar-row.tsx +0 -378
- package/src/components/blocks/nav/sidebar/type.ts +0 -294
- package/src/components/blocks/nav/sidebar/use-ai-sidebar-state.ts +0 -123
- package/src/components/blocks/nav/sidebar/use-ai-sidebar.ts +0 -619
- package/src/components/blocks/nav/sidebar/utils.ts +0 -170
- package/src/components/blocks/profile/profile-card-block.story.tsx +0 -18
- package/src/components/blocks/scaffold/scaffold-root.story.tsx +0 -36
- package/src/components/blocks/shell/shell-layout.story.tsx +0 -19
- package/src/components/composed/attachment.story.tsx +0 -52
- package/src/components/composed/chart.story.tsx +0 -46
- package/src/components/composed/code-block.story.tsx +0 -29
- package/src/components/composed/context-cards.story.tsx +0 -30
- package/src/components/composed/emoji-action-bar.story.tsx +0 -20
- package/src/components/composed/filter-table.story.tsx +0 -58
- package/src/components/composed/flowchart.story.tsx +0 -24
- package/src/components/composed/insight-cards.story.tsx +0 -51
- package/src/components/composed/logo.story.tsx +0 -21
- package/src/components/composed/markdown.story.tsx +0 -21
- package/src/components/composed/password-input.story.tsx +0 -38
- package/src/components/composed/recommendation-card.story.tsx +0 -32
- package/src/components/composed/records-table.story.tsx +0 -46
- package/src/components/composed/research-answer.story.tsx +0 -32
- package/src/components/composed/social-providers.story.tsx +0 -24
- package/src/components/composed/streaming-text.story.tsx +0 -24
- package/src/components/composed/tree.story.tsx +0 -31
- package/src/components/composed/user.story.tsx +0 -29
- package/src/components/composed/verse.story.tsx +0 -21
- package/src/components/ui/avatar.story.tsx +0 -33
- package/src/components/ui/bubble.story.tsx +0 -45
- package/src/components/ui/button.story.tsx +0 -62
- package/src/components/ui/card.story.tsx +0 -36
- package/src/components/ui/chat-atoms.story.tsx +0 -94
- package/src/components/ui/checkbox.story.tsx +0 -30
- package/src/components/ui/field.story.tsx +0 -32
- package/src/components/ui/file-icons.story.tsx +0 -24
- package/src/components/ui/frame.story.tsx +0 -32
- package/src/components/ui/input-group.story.tsx +0 -27
- package/src/components/ui/input.story.tsx +0 -42
- package/src/components/ui/label.story.tsx +0 -32
- package/src/components/ui/menu-command.story.tsx +0 -37
- package/src/components/ui/otp-field.story.tsx +0 -35
- package/src/components/ui/password-input.story.tsx +0 -19
- package/src/components/ui/reference.story.tsx +0 -33
- package/src/components/ui/separator.story.tsx +0 -34
- package/src/components/ui/text.story.tsx +0 -31
- package/src/components/ui/textarea.story.tsx +0 -34
- /package/dist-lib/{src/components → components}/atoms/_layout.d.ts +0 -0
- /package/dist-lib/{src/components → components}/atoms/avatar/verified.d.ts +0 -0
- /package/dist-lib/{src/components → components}/atoms/background/index.d.ts +0 -0
- /package/dist-lib/{src/components → components}/atoms/bubble/__tests__/bubble.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/atoms/bubble/__tests__/reference.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/atoms/chip.d.ts +0 -0
- /package/dist-lib/{src/components → components}/atoms/text/__tests__/text.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/atoms/text-selection/__tests__/click-popover.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/atoms/text-selection/__tests__/text-selection.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/auth/__tests__/auth-flow-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/auth/__tests__/auth-state-atom.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/auth/__tests__/linked-accounts-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/auth/__tests__/onboarding-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/auth/__tests__/passkey-manager-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/auth/__tests__/passkey-sign-in-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/auth/__tests__/signup-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/auth/__tests__/update-password-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/chat/__tests__/ai-panel.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/chat/shared.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/profile/__tests__/profile-card-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/scaffold/__tests__/scaffold-atom.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/scaffold/__tests__/scaffold.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/scaffold/constants.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/shell/__tests__/shell-fit-atom.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/shell/__tests__/shell-layout.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/shell/__tests__/shell-metrics.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/blocks/shell/index.d.ts +0 -0
- /package/dist-lib/{src/components/blocks/nav → components/blocks}/sidebar/__tests__/ai-sidebar-atom.test.d.ts +0 -0
- /package/dist-lib/{src/components/blocks/nav → components/blocks}/sidebar/__tests__/ai-sidebar.test.d.ts +0 -0
- /package/dist-lib/{src/components/blocks/nav → components/blocks}/sidebar/__tests__/use-ai-sidebar.test.d.ts +0 -0
- /package/dist-lib/{src/components/blocks/nav → components/blocks}/sidebar/marquee-label.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/__tests__/logo.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/action-bar/__tests__/action-bar.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/ai/__tests__/ai.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/ai/avatar.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/ai/shared.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/__tests__/attachment.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/__tests__/beautiful-ui.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/__tests__/chart.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/__tests__/code-block.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/__tests__/composer-attachments.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/__tests__/composer.test.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/__tests__/flowchart.test.d.ts +0 -0
- /package/dist-lib/{src/components/composed/chat/__tests__/markdown.test.d.ts → components/composed/chat/__tests__/glass-material.test.d.ts} +0 -0
- /package/dist-lib/{src/components/composed/tree/__tests__/tree-atom.test.d.ts → components/composed/chat/__tests__/markdown.test.d.ts} +0 -0
- /package/dist-lib/{src/components/composed/tree/__tests__/tree.test.d.ts → components/composed/chat/__tests__/menu-command.test.d.ts} +0 -0
- /package/dist-lib/{src/components/composed/tree/__tests__/use-tree.test.d.ts → components/composed/chat/__tests__/recommendation.test.d.ts} +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/actions.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/composer/index.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/flowchart/constant.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/flowchart/index.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/chat/hint.d.ts +0 -0
- /package/dist-lib/{src/components → components}/composed/reader/index.d.ts +0 -0
- /package/dist-lib/{src/components/composed/user/utils.d.ts → components/composed/tree/__tests__/tree-atom.test.d.ts} +0 -0
- /package/dist-lib/{src/components/composed/verse/__tests__/verse.test.d.ts → components/composed/tree/__tests__/tree.test.d.ts} +0 -0
- /package/dist-lib/{src/components/icons/__tests__/icons.test.d.ts → components/composed/tree/__tests__/use-tree.test.d.ts} +0 -0
- /package/dist-lib/{src/components → components}/composed/tree/constants.d.ts +0 -0
- /package/dist-lib/{src/components/motion/index.d.ts → components/composed/user/__tests__/message.test.d.ts} +0 -0
- /package/dist-lib/{src/components/ui/chat/__tests__/segmented-toggle.test.d.ts → components/composed/user/utils.d.ts} +0 -0
- /package/dist-lib/{src/lib/utils.test.d.ts → components/composed/verse/__tests__/verse.test.d.ts} +0 -0
- /package/dist-lib/{src/components → components}/docs/code-block.d.ts +0 -0
- /package/dist-lib/{src/components → components}/docs/hero.d.ts +0 -0
- /package/dist-lib/{src/components → components}/docs/mermaid.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/accordion.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/alert-dialog.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/alert.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/autocomplete.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/avatar.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/button-group.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/card.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/checkbox.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/collapsible.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/command.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/context-menu.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/emoji-picker.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/field.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/frame.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/group.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/kbd.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/label.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/menu.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/otp-field.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/popover.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/preview-card.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/scroll-area.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/separator.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/sheet.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/skeleton.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/spinner.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/switch.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/toolbar.d.ts +0 -0
- /package/dist-lib/{src/components → components}/ui/tooltip.d.ts +0 -0
- /package/dist-lib/{src/lib → lib}/ease.d.ts +0 -0
- /package/dist-lib/{src/lib → lib}/hooks/use-hover-capable.d.ts +0 -0
- /package/dist-lib/{src/lib → lib}/hooks/use-mobile.d.ts +0 -0
- /package/dist-lib/{src/lib → lib}/sound.d.ts +0 -0
- /package/dist-lib/{src/lib → lib}/utils.d.ts +0 -0
- /package/src/components/blocks/{nav/sidebar → sidebar}/marquee-label.tsx +0 -0
|
@@ -1,41 +1,46 @@
|
|
|
1
|
+
import { useState } from "react"
|
|
1
2
|
import type { IComposerMenuProps } from "../type"
|
|
2
3
|
import { Popover, PopoverPopup, PopoverTrigger } from "@/components/ui/popover"
|
|
3
|
-
import {
|
|
4
|
-
CommandItem,
|
|
5
|
-
CommandPanel,
|
|
6
|
-
CommandShortcut,
|
|
7
|
-
} from "@/components/ui/command"
|
|
4
|
+
import { MenuCommandList } from "@/components/ui/menu-command"
|
|
8
5
|
import { AddButton } from "./add-button"
|
|
9
6
|
|
|
7
|
+
/** Compatibility slot for apps that provide their own attachment commands. */
|
|
10
8
|
export function CommandMenu({
|
|
11
9
|
items = [],
|
|
12
10
|
onCommand,
|
|
11
|
+
onAttach,
|
|
12
|
+
disabled,
|
|
13
13
|
}: IComposerMenuProps): React.ReactElement {
|
|
14
|
+
const [open, setOpen] = useState(false)
|
|
14
15
|
return (
|
|
15
|
-
<Popover>
|
|
16
|
+
<Popover open={open && !disabled} onOpenChange={setOpen}>
|
|
16
17
|
<PopoverTrigger
|
|
18
|
+
disabled={disabled}
|
|
17
19
|
render={(props, state) => <AddButton {...props} state={state} />}
|
|
18
20
|
/>
|
|
19
|
-
<PopoverPopup
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
21
|
+
<PopoverPopup
|
|
22
|
+
side="top"
|
|
23
|
+
align="start"
|
|
24
|
+
className="w-80 [&_[data-slot=popover-viewport]]:p-0"
|
|
25
|
+
>
|
|
26
|
+
<MenuCommandList
|
|
27
|
+
items={
|
|
28
|
+
onAttach
|
|
29
|
+
? [
|
|
30
|
+
{
|
|
31
|
+
id: "attach",
|
|
32
|
+
label: "Add photos & files",
|
|
33
|
+
onSelect: onAttach,
|
|
34
|
+
},
|
|
35
|
+
...items,
|
|
36
|
+
]
|
|
37
|
+
: items
|
|
38
|
+
}
|
|
39
|
+
onSelect={(item) => {
|
|
40
|
+
onCommand?.(item)
|
|
41
|
+
setOpen(false)
|
|
42
|
+
}}
|
|
43
|
+
/>
|
|
39
44
|
</PopoverPopup>
|
|
40
45
|
</Popover>
|
|
41
46
|
)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useAtomValue, useSetAtom } from "jotai"
|
|
2
2
|
import { useCallback } from "react"
|
|
3
3
|
|
|
4
|
-
import type {
|
|
4
|
+
import type { TComposerAttachment } from "../type"
|
|
5
5
|
import {
|
|
6
6
|
addComposerAttachmentAtom,
|
|
7
7
|
clearComposerAttachmentsAtom,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
/** Read the tray of one composer. */
|
|
13
13
|
export function useComposerAttachments(
|
|
14
14
|
composerId: string
|
|
15
|
-
):
|
|
15
|
+
): TComposerAttachment[] {
|
|
16
16
|
return useAtomValue(composerAttachmentsAtom(composerId))
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -22,7 +22,7 @@ export function useComposerAttachmentActions(composerId: string) {
|
|
|
22
22
|
const remove = useSetAtom(removeComposerAttachmentAtom(composerId))
|
|
23
23
|
const clear = useSetAtom(clearComposerAttachmentsAtom(composerId))
|
|
24
24
|
return {
|
|
25
|
-
add: useCallback((item:
|
|
25
|
+
add: useCallback((item: TComposerAttachment) => add(item), [add]),
|
|
26
26
|
remove: useCallback((itemId: string) => remove(itemId), [remove]),
|
|
27
27
|
clear: useCallback(() => clear(), [clear]),
|
|
28
28
|
}
|
|
@@ -1,44 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { ButtonProps } from "@/components/ui/button"
|
|
3
|
-
import type { IComposerSubmitButtonProps } from "../type"
|
|
4
|
-
import { ArrowUp, Squircle } from "lucide"
|
|
1
|
+
import { ArrowUp, Square } from "lucide-react"
|
|
5
2
|
import { cn } from "@/lib/utils"
|
|
6
|
-
import {
|
|
3
|
+
import type { IComposerSubmitButtonProps } from "../type"
|
|
4
|
+
import type * as React from "react"
|
|
7
5
|
|
|
8
6
|
export function SendButton({
|
|
9
7
|
isStreaming,
|
|
10
|
-
isExpanded,
|
|
8
|
+
isExpanded: _isExpanded,
|
|
11
9
|
disabled,
|
|
12
10
|
onStop,
|
|
11
|
+
className,
|
|
13
12
|
...props
|
|
14
|
-
}: IComposerSubmitButtonProps &
|
|
13
|
+
}: IComposerSubmitButtonProps &
|
|
14
|
+
React.ButtonHTMLAttributes<HTMLButtonElement>): React.ReactElement {
|
|
15
15
|
return (
|
|
16
|
-
<
|
|
16
|
+
<button
|
|
17
17
|
{...props}
|
|
18
|
-
|
|
18
|
+
type={isStreaming ? "button" : "submit"}
|
|
19
19
|
aria-label={isStreaming ? "Stop" : "Send message"}
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
data-cuelume-press=""
|
|
21
|
+
data-cuelume-release=""
|
|
22
|
+
disabled={disabled}
|
|
22
23
|
onClick={isStreaming ? onStop : undefined}
|
|
23
24
|
className={cn(
|
|
24
|
-
"shrink-0 justify-
|
|
25
|
-
|
|
25
|
+
"size-7 flex shrink-0 items-center justify-center rounded-lg bg-foreground text-background transition-colors hover:opacity-90 focus-visible:outline-2 focus-visible:outline-ring disabled:bg-foreground/10 disabled:text-muted-foreground disabled:opacity-60",
|
|
26
|
+
className
|
|
26
27
|
)}
|
|
27
|
-
// Empty-draft must NOT disable: the disabled:opacity-50! rule would
|
|
28
|
-
// pin Motion's inline opacity at 0.5 and break the fade. send() guards
|
|
29
|
-
// empty drafts, and the collapsed button is pointer-events-none.
|
|
30
|
-
disabled={disabled && !isStreaming}
|
|
31
|
-
size="icon-lg"
|
|
32
|
-
tabIndex={isExpanded ? 0 : -1}
|
|
33
|
-
type={isStreaming ? "button" : "submit"}
|
|
34
28
|
>
|
|
35
|
-
|
|
36
|
-
className=
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/>
|
|
42
|
-
</Button>
|
|
29
|
+
{isStreaming ? (
|
|
30
|
+
<Square aria-hidden className="size-3 fill-current" />
|
|
31
|
+
) : (
|
|
32
|
+
<ArrowUp aria-hidden className="size-4 stroke-[2.4]" />
|
|
33
|
+
)}
|
|
34
|
+
</button>
|
|
43
35
|
)
|
|
44
36
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isValidElement, useId, useState } from "react"
|
|
2
|
-
import type {
|
|
2
|
+
import type { ISuggestedPromptsProps } from "../type"
|
|
3
3
|
import { useReducedMotion, motion, AnimatePresence } from "motion/react"
|
|
4
4
|
import { flattenChildren, ITEM_VARIANTS, LIST_VARIANTS } from "./utils"
|
|
5
5
|
import { cn } from "@/lib/utils"
|
|
@@ -20,7 +20,7 @@ export function SuggestedPrompts({
|
|
|
20
20
|
onOpenChange,
|
|
21
21
|
className,
|
|
22
22
|
...props
|
|
23
|
-
}:
|
|
23
|
+
}: ISuggestedPromptsProps): React.ReactElement | null {
|
|
24
24
|
const panelId = useId()
|
|
25
25
|
const reduceMotion = useReducedMotion()
|
|
26
26
|
const [internalOpen, setInternalOpen] = useState(defaultOpen)
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef, useState, useSyncExternalStore } from "react"
|
|
4
|
+
|
|
5
|
+
type RecognitionResult = { isFinal: boolean; 0: { transcript: string } }
|
|
6
|
+
interface Recognition {
|
|
7
|
+
continuous: boolean
|
|
8
|
+
interimResults: boolean
|
|
9
|
+
lang: string
|
|
10
|
+
onresult:
|
|
11
|
+
| ((event: {
|
|
12
|
+
resultIndex: number
|
|
13
|
+
results: ArrayLike<RecognitionResult>
|
|
14
|
+
}) => void)
|
|
15
|
+
| null
|
|
16
|
+
onerror: ((event: { error: string }) => void) | null
|
|
17
|
+
onend: (() => void) | null
|
|
18
|
+
start(): void
|
|
19
|
+
stop(): void
|
|
20
|
+
abort(): void
|
|
21
|
+
}
|
|
22
|
+
function recognitionConstructor() {
|
|
23
|
+
if (typeof window === "undefined") return undefined
|
|
24
|
+
const browser = window as unknown as {
|
|
25
|
+
SpeechRecognition?: new () => Recognition
|
|
26
|
+
webkitSpeechRecognition?: new () => Recognition
|
|
27
|
+
}
|
|
28
|
+
return browser.SpeechRecognition ?? browser.webkitSpeechRecognition
|
|
29
|
+
}
|
|
30
|
+
const subscribe = () => () => {}
|
|
31
|
+
const getSupported = () => Boolean(recognitionConstructor())
|
|
32
|
+
const getServerSupported = () => false
|
|
33
|
+
|
|
34
|
+
/** Uses the browser's recognizer only after an explicit microphone click. */
|
|
35
|
+
export function useDictation(
|
|
36
|
+
onTranscript: (text: string) => void,
|
|
37
|
+
disabled: boolean
|
|
38
|
+
) {
|
|
39
|
+
const supported = useSyncExternalStore(
|
|
40
|
+
subscribe,
|
|
41
|
+
getSupported,
|
|
42
|
+
getServerSupported
|
|
43
|
+
)
|
|
44
|
+
const [listening, setListening] = useState(false)
|
|
45
|
+
const [error, setError] = useState<string | null>(null)
|
|
46
|
+
const recognition = useRef<Recognition | null>(null)
|
|
47
|
+
const receive = useRef(onTranscript)
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
receive.current = onTranscript
|
|
50
|
+
})
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
return () => {
|
|
53
|
+
const current = recognition.current
|
|
54
|
+
if (current) {
|
|
55
|
+
current.onresult = null
|
|
56
|
+
current.onerror = null
|
|
57
|
+
current.onend = null
|
|
58
|
+
current.abort()
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}, [])
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
const current = recognition.current
|
|
64
|
+
if (disabled && current) {
|
|
65
|
+
current.onresult = null
|
|
66
|
+
current.abort()
|
|
67
|
+
}
|
|
68
|
+
}, [disabled])
|
|
69
|
+
const cancel = () => {
|
|
70
|
+
const current = recognition.current
|
|
71
|
+
if (!current) return
|
|
72
|
+
current.onresult = null
|
|
73
|
+
current.onerror = null
|
|
74
|
+
current.onend = null
|
|
75
|
+
recognition.current = null
|
|
76
|
+
current.abort()
|
|
77
|
+
setListening(false)
|
|
78
|
+
}
|
|
79
|
+
const toggle = () => {
|
|
80
|
+
if (disabled) return
|
|
81
|
+
if (recognition.current) {
|
|
82
|
+
recognition.current.stop()
|
|
83
|
+
return
|
|
84
|
+
}
|
|
85
|
+
const Constructor = recognitionConstructor()
|
|
86
|
+
if (!Constructor) return
|
|
87
|
+
const current = new Constructor()
|
|
88
|
+
current.continuous = true
|
|
89
|
+
current.interimResults = false
|
|
90
|
+
current.lang = document.documentElement.lang || navigator.language
|
|
91
|
+
current.onresult = (event) => {
|
|
92
|
+
const text = Array.from(event.results)
|
|
93
|
+
.slice(event.resultIndex)
|
|
94
|
+
.filter((result) => result.isFinal)
|
|
95
|
+
.map((result) => result[0].transcript)
|
|
96
|
+
.join(" ")
|
|
97
|
+
if (text) receive.current(text)
|
|
98
|
+
}
|
|
99
|
+
current.onerror = (event) => {
|
|
100
|
+
if (event.error !== "aborted")
|
|
101
|
+
setError(
|
|
102
|
+
event.error === "not-allowed"
|
|
103
|
+
? "Microphone access was denied."
|
|
104
|
+
: "Dictation stopped. Please try again."
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
current.onend = () => {
|
|
108
|
+
recognition.current = null
|
|
109
|
+
setListening(false)
|
|
110
|
+
}
|
|
111
|
+
recognition.current = current
|
|
112
|
+
setError(null)
|
|
113
|
+
try {
|
|
114
|
+
current.start()
|
|
115
|
+
setListening(true)
|
|
116
|
+
} catch {
|
|
117
|
+
recognition.current = null
|
|
118
|
+
setListening(false)
|
|
119
|
+
setError("Dictation is unavailable. Please try again.")
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return { supported, listening, error, toggle, cancel }
|
|
123
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* so an app can add or remove chips without holding the component.
|
|
4
4
|
*/
|
|
5
5
|
import { createKeyedFamilies } from "@/lib/keyed-atom"
|
|
6
|
-
import type {
|
|
6
|
+
import type { TComposerAttachment } from "../type"
|
|
7
7
|
import { Children, Fragment, isValidElement } from "react";
|
|
8
8
|
import type { Variants } from "motion";
|
|
9
9
|
import { EASE_IN_OUT, SPRING_PANEL } from "@/lib/ease";
|
|
@@ -11,16 +11,16 @@ import { EASE_IN_OUT, SPRING_PANEL } from "@/lib/ease";
|
|
|
11
11
|
const { stateFamily, actionFamily, removeInstance } =
|
|
12
12
|
createKeyedFamilies("composer")
|
|
13
13
|
|
|
14
|
-
const NO_ITEMS:
|
|
14
|
+
const NO_ITEMS: TComposerAttachment[] = []
|
|
15
15
|
|
|
16
|
-
export const composerAttachmentsAtom = stateFamily<
|
|
16
|
+
export const composerAttachmentsAtom = stateFamily<TComposerAttachment[]>(
|
|
17
17
|
"attachments",
|
|
18
18
|
NO_ITEMS
|
|
19
19
|
)
|
|
20
20
|
|
|
21
21
|
export const addComposerAttachmentAtom = actionFamily(
|
|
22
22
|
"add",
|
|
23
|
-
(get, set, id, item:
|
|
23
|
+
(get, set, id, item: TComposerAttachment) => {
|
|
24
24
|
const items = get(composerAttachmentsAtom(id))
|
|
25
25
|
if (items.some((i) => i.id === item.id)) return
|
|
26
26
|
set(composerAttachmentsAtom(id), [...items, item])
|
|
@@ -6,7 +6,7 @@ import { cn } from "@/lib/utils"
|
|
|
6
6
|
import { Card, CardPanel } from "@/components/ui/card"
|
|
7
7
|
import { FileTypeBadge, Pill } from "@/components/ui/chat"
|
|
8
8
|
|
|
9
|
-
export interface
|
|
9
|
+
export interface IContextCard {
|
|
10
10
|
id?: string
|
|
11
11
|
title: React.ReactNode
|
|
12
12
|
/** "290 characters" */
|
|
@@ -16,12 +16,12 @@ export interface ContextCard {
|
|
|
16
16
|
icon?: React.ReactNode
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
export interface
|
|
19
|
+
export interface IContextCardsProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
20
20
|
header?: React.ReactNode
|
|
21
|
-
cards:
|
|
21
|
+
cards: IContextCard[]
|
|
22
22
|
/** Count pill; defaults to `cards.length`. */
|
|
23
23
|
count?: React.ReactNode
|
|
24
|
-
onOpen?: (card:
|
|
24
|
+
onOpen?: (card: IContextCard, index: number) => void
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
/**
|
|
@@ -30,7 +30,7 @@ export interface ContextCardsProps extends React.ComponentPropsWithoutRef<"div">
|
|
|
30
30
|
*
|
|
31
31
|
* @sketch "Component / Context Cards"
|
|
32
32
|
*/
|
|
33
|
-
export function ContextCards({ header = "All chunks", cards, count, onOpen, className, ...props }:
|
|
33
|
+
export function ContextCards({ header = "All chunks", cards, count, onOpen, className, ...props }: IContextCardsProps): React.ReactElement {
|
|
34
34
|
return (
|
|
35
35
|
<div data-slot="context-cards" className={cn("flex w-[380px] max-w-full flex-col gap-2", className)} {...props}>
|
|
36
36
|
<div className="flex items-center gap-2.5 px-0.5">
|
|
@@ -5,7 +5,7 @@ import * as React from "react"
|
|
|
5
5
|
import { cn } from "@/lib/utils"
|
|
6
6
|
import { Card } from "@/components/ui/card"
|
|
7
7
|
import { createKeyedFamilies } from "@/lib/keyed-atom"
|
|
8
|
-
import { Dot, type
|
|
8
|
+
import { Dot, type TDotTone } from "@/components/ui/chat"
|
|
9
9
|
|
|
10
10
|
const { stateFamily, removeInstance } = createKeyedFamilies("filterTable")
|
|
11
11
|
|
|
@@ -13,22 +13,22 @@ const { stateFamily, removeInstance } = createKeyedFamilies("filterTable")
|
|
|
13
13
|
export const filterTableFilterAtom = stateFamily<string | null>("filter", null)
|
|
14
14
|
export const removeFilterTableInstance = removeInstance
|
|
15
15
|
|
|
16
|
-
export interface
|
|
16
|
+
export interface IFilterTableStatus {
|
|
17
17
|
id: string
|
|
18
18
|
label: React.ReactNode
|
|
19
|
-
tone:
|
|
19
|
+
tone: TDotTone
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export interface
|
|
22
|
+
export interface IFilterTableColumn<Row> {
|
|
23
23
|
key: keyof Row & string
|
|
24
24
|
header: React.ReactNode
|
|
25
25
|
className?: string
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
export interface
|
|
28
|
+
export interface IFilterTableProps<Row extends { id: string; status: string }> extends React.ComponentPropsWithoutRef<"div"> {
|
|
29
29
|
tableId?: string
|
|
30
|
-
statuses:
|
|
31
|
-
columns:
|
|
30
|
+
statuses: IFilterTableStatus[]
|
|
31
|
+
columns: IFilterTableColumn<Row>[]
|
|
32
32
|
/** Column key rendered with the status dot (defaults to "status"). */
|
|
33
33
|
statusKey?: keyof Row & string
|
|
34
34
|
rows: Row[]
|
|
@@ -44,7 +44,7 @@ export interface FilterTableProps<Row extends { id: string; status: string }> ex
|
|
|
44
44
|
*/
|
|
45
45
|
export function FilterTable<Row extends { id: string; status: string }>({
|
|
46
46
|
tableId, statuses, columns, statusKey = "status" as keyof Row & string, rows, allLabel = "All", filter, onFilterChange, className, ...props
|
|
47
|
-
}:
|
|
47
|
+
}: IFilterTableProps<Row>): React.ReactElement {
|
|
48
48
|
const generatedId = React.useId()
|
|
49
49
|
const id = tableId ?? generatedId
|
|
50
50
|
const [stored, setStored] = useAtom(filterTableFilterAtom(id))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
2
|
import { Copy, Link2, Plus, Sparkles, Trash2 } from "lucide-react";
|
|
3
|
-
import type {
|
|
3
|
+
import type { IChartNodeProps } from "./types";
|
|
4
4
|
import { ConditionBody, StepBody } from "./step-body";
|
|
5
5
|
import { nodeLabel, useFlowchartContext } from "./hooks";
|
|
6
6
|
import { mix } from "./utils";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "@/components/ui/context-menu";
|
|
17
17
|
import { cn } from "@/lib/utils";
|
|
18
18
|
|
|
19
|
-
export function ChartNode({ node, index = 0, onRef, children }:
|
|
19
|
+
export function ChartNode({ node, index = 0, onRef, children }: IChartNodeProps) {
|
|
20
20
|
const {
|
|
21
21
|
steps, selected, updateSelected, onPointerDown, onPointerMove, onPointerUp, handlePlace, wasDragged, drag, readOnly, onAdd, removeNode,
|
|
22
22
|
snapTarget, previewNode, setPreviewNode, connectTo, renameNode, duplicateNode, canRename, canDuplicate, canConnect,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IConnectorProps } from "./types"
|
|
2
2
|
|
|
3
|
-
export function Connector({ edge, isLit, selected, onPick, strokeWidth, ...props }:
|
|
3
|
+
export function Connector({ edge, isLit, selected, onPick, strokeWidth, ...props }: IConnectorProps) {
|
|
4
4
|
const width = strokeWidth ?? edge.strokeWidth ?? 1.25
|
|
5
5
|
const stroke = isLit ? "var(--accent-default)" : (edge.color ?? "var(--line-strong)")
|
|
6
6
|
return (
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useEffect, useLayoutEffect, useRef, useState } from "react"
|
|
4
4
|
import { Minus, Plus } from "lucide-react"
|
|
5
|
-
import type {
|
|
5
|
+
import type { IFlowchartProps, TStepNode } from "./types"
|
|
6
6
|
import { FlowchartContext, useFlowchart } from "./hooks"
|
|
7
7
|
import { AMBER, PURPLE } from "./constant"
|
|
8
8
|
import { Connector } from "./connector"
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from "@/components/ui/alert-dialog"
|
|
23
23
|
import { cn } from "@/lib/utils"
|
|
24
24
|
|
|
25
|
-
const NODES:
|
|
25
|
+
const NODES: TStepNode[] = [
|
|
26
26
|
{
|
|
27
27
|
id: "trigger",
|
|
28
28
|
row: 0,
|
|
@@ -50,7 +50,7 @@ const NODES: StepNode[] = [
|
|
|
50
50
|
*
|
|
51
51
|
* @sketch "Component / Flowchart"
|
|
52
52
|
*/
|
|
53
|
-
export default function Flowchart({ steps = NODES, edges, readOnly, zoomable, height, onDrag, onAdd, onRemove, onEdgeRemove, onEdgeConnect, onEdgeChange, onRename, onDuplicate, className, children }:
|
|
53
|
+
export default function Flowchart({ steps = NODES, edges, readOnly, zoomable, height, onDrag, onAdd, onRemove, onEdgeRemove, onEdgeConnect, onEdgeChange, onRename, onDuplicate, className, children }: IFlowchartProps) {
|
|
54
54
|
const canvasRef = useRef<HTMLDivElement>(null)
|
|
55
55
|
const nodeRefs = useRef(new Map<string, HTMLElement>())
|
|
56
56
|
const chart = useFlowchart({ steps, edges, readOnly, zoomable, onDrag, onAdd, onRemove, onEdgeRemove, onEdgeConnect, onEdgeChange, onRename, onDuplicate, canvasRef })
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Unlink } from "lucide-react"
|
|
2
2
|
import { IconButton } from "@/components/ui/chat"
|
|
3
3
|
import { cn } from "@/lib/utils"
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
4
|
+
import type { TEdge } from "./types"
|
|
5
|
+
import type { TPoint } from "./utils"
|
|
6
6
|
|
|
7
7
|
const WIDTHS = [1.25, 2, 3]
|
|
8
8
|
const COLORS = ["var(--line-strong)", "var(--tag-purple-text)", "var(--tag-amber-text)", "var(--tag-blue-text)", "var(--tag-green-text)"]
|
|
@@ -14,9 +14,9 @@ export function EdgeToolbar({
|
|
|
14
14
|
onChange,
|
|
15
15
|
onRemove,
|
|
16
16
|
}: {
|
|
17
|
-
edge:
|
|
18
|
-
at:
|
|
19
|
-
onChange?: (id: string, patch: Pick<
|
|
17
|
+
edge: TEdge
|
|
18
|
+
at: TPoint
|
|
19
|
+
onChange?: (id: string, patch: Pick<TEdge, "strokeWidth" | "color">) => void
|
|
20
20
|
onRemove?: (id: string) => void
|
|
21
21
|
}) {
|
|
22
22
|
const width = edge.strokeWidth ?? 1.25
|
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
import React, { createContext, useCallback, useContext, useMemo, useRef, useState } from "react";
|
|
2
|
-
import type {
|
|
3
|
-
import { anchors, bezier, canvasH, curve, cw, edgePoints, place, rowH, rows, rowYs, type
|
|
2
|
+
import type { TEdge, TEdgeEnd, IFlowchartProps, TStepNode } from "./types";
|
|
3
|
+
import { anchors, bezier, canvasH, curve, cw, edgePoints, place, rowH, rows, rowYs, type THeights, type TLayout, type TOffsets, type TPoint } from "./utils";
|
|
4
4
|
import { EST_H, SNAP_RADIUS } from "./constant";
|
|
5
5
|
import { toastManager } from "@/components/ui/toast";
|
|
6
6
|
|
|
7
7
|
export const ZOOM_MIN = 0.25;
|
|
8
8
|
export const ZOOM_MAX = 2;
|
|
9
9
|
|
|
10
|
-
type
|
|
11
|
-
steps:
|
|
10
|
+
type TOptions = Pick<IFlowchartProps, "edges" | "readOnly" | "zoomable" | "onDrag" | "onAdd" | "onRemove" | "onEdgeRemove" | "onEdgeConnect" | "onEdgeChange" | "onRename" | "onDuplicate"> & {
|
|
11
|
+
steps: TStepNode[];
|
|
12
12
|
canvasRef: React.RefObject<HTMLDivElement | null>;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
/** A connector end being dragged towards a new card; `snap` is the card whose anchor is in range. */
|
|
16
|
-
export type
|
|
16
|
+
export type TEdgeDrag = { id: string; end: TEdgeEnd; point: TPoint; snap?: string };
|
|
17
17
|
|
|
18
18
|
/** Pill text: explicit name, else the kind label, else "Node n" (conditions always count). */
|
|
19
|
-
export const nodeLabel = (node:
|
|
19
|
+
export const nodeLabel = (node: TStepNode, index: number) =>
|
|
20
20
|
node.name ?? (node.condition || !node.kind ? `Node ${index + 1}` : node.kind.label);
|
|
21
21
|
|
|
22
22
|
/** Default connectors: a chain through the steps in order. */
|
|
23
|
-
export const chainEdges = (steps:
|
|
23
|
+
export const chainEdges = (steps: TStepNode[]): TEdge[] =>
|
|
24
24
|
steps.slice(1).map((n, i) => ({ id: `${steps[i].id}->${n.id}`, source: steps[i].id, target: n.id }));
|
|
25
25
|
|
|
26
|
-
export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomable = false, onDrag, onAdd, onRemove, onEdgeRemove, onEdgeConnect, onEdgeChange, onRename, onDuplicate, canvasRef }:
|
|
26
|
+
export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomable = false, onDrag, onAdd, onRemove, onEdgeRemove, onEdgeConnect, onEdgeChange, onRename, onDuplicate, canvasRef }: TOptions) => {
|
|
27
27
|
/** Visible canvas box; the world behind it is twice this size. */
|
|
28
28
|
const [frame, setFrame] = useState({ w: 0, h: 0 });
|
|
29
|
-
const [heights, setHeights] = useState<
|
|
29
|
+
const [heights, setHeights] = useState<THeights>(EST_H);
|
|
30
30
|
const [selected, setSelected] = useState<string | null>(null);
|
|
31
|
-
const [offsets, setOffsets] = useState<
|
|
31
|
+
const [offsets, setOffsets] = useState<TOffsets>({});
|
|
32
32
|
/** Zoom and pan of the world inside the frame (pan in frame px). */
|
|
33
33
|
const [view, setView] = useState({ scale: 1, x: 0, y: 0 });
|
|
34
34
|
const scale = view.scale;
|
|
35
35
|
const pan = useRef<{ startX: number; startY: number; baseX: number; baseY: number; moved: boolean } | null>(null);
|
|
36
36
|
const [pendingRemove, setPendingRemove] = useState<{ id: string; orphans: string[] } | null>(null);
|
|
37
37
|
const [selectedEdge, setSelectedEdge] = useState<string | null>(null);
|
|
38
|
-
const [edgeDrag, setEdgeDrag] = useState<
|
|
38
|
+
const [edgeDrag, setEdgeDrag] = useState<TEdgeDrag | null>(null);
|
|
39
39
|
/** Card highlighted while the user browses "Connect to…" in the context menu. */
|
|
40
40
|
const [previewNode, setPreviewNode] = useState<string | null>(null);
|
|
41
41
|
const drag = useRef<{
|
|
@@ -51,7 +51,7 @@ export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomab
|
|
|
51
51
|
const rowHeight = useMemo(() => rowH(steps, heights), [heights, steps]);
|
|
52
52
|
// The world is twice the frame so there is always hidden canvas to drag into view.
|
|
53
53
|
const width = frame.w * 2;
|
|
54
|
-
const layout = useMemo<
|
|
54
|
+
const layout = useMemo<TLayout>(() => {
|
|
55
55
|
const _rows = rows(steps);
|
|
56
56
|
return { width, offsets, rows: _rows, rowY: rowYs(rowHeight), heights };
|
|
57
57
|
}, [steps, width, offsets, rowHeight, heights]);
|
|
@@ -69,7 +69,7 @@ export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomab
|
|
|
69
69
|
[frame, connectorWidth, worldHeight],
|
|
70
70
|
);
|
|
71
71
|
|
|
72
|
-
const updateHeights = useCallback((callback: (prev:
|
|
72
|
+
const updateHeights = useCallback((callback: (prev: THeights) => THeights) => setHeights(callback), []);
|
|
73
73
|
const updateFrame = useCallback((w: number, h: number) => {
|
|
74
74
|
setFrame((prev) => (prev.w === w && prev.h === h ? prev : { w, h }));
|
|
75
75
|
// First measurement centres the world horizontally, top-aligned; later
|
|
@@ -132,7 +132,7 @@ export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomab
|
|
|
132
132
|
};
|
|
133
133
|
const isPanning = () => pan.current?.moved === true;
|
|
134
134
|
|
|
135
|
-
const onPointerDown = (node:
|
|
135
|
+
const onPointerDown = (node: TStepNode) => (event: React.PointerEvent<HTMLDivElement>) => {
|
|
136
136
|
// Left button only: a right-press belongs to the context menu.
|
|
137
137
|
if (readOnly || event.button !== 0) return;
|
|
138
138
|
if ((event.target as Element).closest("[data-ui]")) return;
|
|
@@ -145,15 +145,17 @@ export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomab
|
|
|
145
145
|
baseDy: off?.dy ?? 0,
|
|
146
146
|
moved: false,
|
|
147
147
|
};
|
|
148
|
-
|
|
148
|
+
// Capture only once a drag starts; capturing a still press retargets
|
|
149
|
+
// its click to the wrapper instead of the node selection button.
|
|
149
150
|
};
|
|
150
151
|
|
|
151
|
-
const onPointerMove = (node:
|
|
152
|
+
const onPointerMove = (node: TStepNode) => (event: React.PointerEvent<HTMLDivElement>) => {
|
|
152
153
|
const d = drag.current;
|
|
153
154
|
if (!d || d.id !== node.id) return;
|
|
154
155
|
const dx = d.baseDx + (event.clientX - d.startX) / scale;
|
|
155
156
|
const dy = d.baseDy + (event.clientY - d.startY) / scale;
|
|
156
157
|
if (!d.moved && Math.hypot(dx - d.baseDx, dy - d.baseDy) < 3) return;
|
|
158
|
+
if (!d.moved) event.currentTarget.setPointerCapture(event.pointerId);
|
|
157
159
|
d.moved = true;
|
|
158
160
|
|
|
159
161
|
// keep the card inside the canvas
|
|
@@ -166,7 +168,7 @@ export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomab
|
|
|
166
168
|
setOffsets((current) => ({ ...current, [node.id]: { dx: cx - baseCx, dy: top - baseTop } }));
|
|
167
169
|
};
|
|
168
170
|
|
|
169
|
-
const onPointerUp = (node:
|
|
171
|
+
const onPointerUp = (node: TStepNode) => () => {
|
|
170
172
|
const d = drag.current;
|
|
171
173
|
if (d?.id !== node.id) return;
|
|
172
174
|
if (d.moved) {
|
|
@@ -177,23 +179,23 @@ export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomab
|
|
|
177
179
|
};
|
|
178
180
|
|
|
179
181
|
const wasDragged = () => drag.current?.moved === true;
|
|
180
|
-
const isLit = (edge:
|
|
182
|
+
const isLit = (edge: TEdge) => selected === edge.source || selected === edge.target || selectedEdge === edge.id;
|
|
181
183
|
|
|
182
184
|
/** Client → unscaled canvas coordinates. */
|
|
183
|
-
const toCanvas = (clientX: number, clientY: number):
|
|
185
|
+
const toCanvas = (clientX: number, clientY: number): TPoint => {
|
|
184
186
|
const rect = canvasRef.current?.getBoundingClientRect();
|
|
185
187
|
return { x: (clientX - (rect?.left ?? 0) - view.x) / scale, y: (clientY - (rect?.top ?? 0) - view.y) / scale };
|
|
186
188
|
};
|
|
187
|
-
const edgeEnds = (edge:
|
|
189
|
+
const edgeEnds = (edge: TEdge) => edgePoints({ from: edge.source, to: edge.target }, steps, layout);
|
|
188
190
|
|
|
189
|
-
const onEdgeHandleDown = (edge:
|
|
191
|
+
const onEdgeHandleDown = (edge: TEdge, end: TEdgeEnd) => (event: React.PointerEvent<SVGElement>) => {
|
|
190
192
|
if (!onEdgeConnect) return;
|
|
191
193
|
event.stopPropagation();
|
|
192
194
|
(event.currentTarget as Element).setPointerCapture(event.pointerId);
|
|
193
195
|
setEdgeDrag({ id: edge.id, end, point: toCanvas(event.clientX, event.clientY) });
|
|
194
196
|
};
|
|
195
197
|
/** Nearest anchor of another card within SNAP_RADIUS: top anchors for a target end, bottom for a source end. */
|
|
196
|
-
const snapCandidate = (edge:
|
|
198
|
+
const snapCandidate = (edge: TEdge, end: TEdgeEnd, point: TPoint) => {
|
|
197
199
|
const other = end === "source" ? edge.target : edge.source;
|
|
198
200
|
let best: { id: string; d: number } | null = null;
|
|
199
201
|
for (const node of steps) {
|
|
@@ -248,8 +250,8 @@ export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomab
|
|
|
248
250
|
setSelectedEdge(null);
|
|
249
251
|
onEdgeRemove?.(id);
|
|
250
252
|
};
|
|
251
|
-
const bezierCurve = (edge:
|
|
252
|
-
const handlePlace = (node:
|
|
253
|
+
const bezierCurve = (edge: TEdge) => bezier({ from: edge.source, to: edge.target }, steps, layout);
|
|
254
|
+
const handlePlace = (node: TStepNode) => place(node, layout);
|
|
253
255
|
|
|
254
256
|
/** Children that would lose their only parent if `id` were removed. */
|
|
255
257
|
const orphansOf = (id: string) =>
|
|
@@ -333,10 +335,10 @@ export const useFlowchart = ({ steps, edges: edgesProp, readOnly = false, zoomab
|
|
|
333
335
|
};
|
|
334
336
|
};
|
|
335
337
|
|
|
336
|
-
export type
|
|
338
|
+
export type TFlowchartController = ReturnType<typeof useFlowchart>;
|
|
337
339
|
|
|
338
340
|
/** Root owns the one `useFlowchart` instance; nodes read it from here. */
|
|
339
|
-
export const FlowchartContext = createContext<
|
|
341
|
+
export const FlowchartContext = createContext<TFlowchartController | null>(null);
|
|
340
342
|
|
|
341
343
|
export const useFlowchartContext = () => {
|
|
342
344
|
const ctx = useContext(FlowchartContext);
|