@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
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { indicatorBackground, type ResolvedColors } from "./echarts-chart";
|
|
2
|
+
import type { TooltipComponentOption } from "echarts/components";
|
|
3
|
+
|
|
4
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
5
|
+
// Tooltip — the shared HTML shell/row primitives and the chart-agnostic option
|
|
6
|
+
// fields. The tooltip DOM lives inside `[data-chart={id}]`, so the injected
|
|
7
|
+
// `--color-*` vars and Tailwind classes resolve directly (no color read). Each
|
|
8
|
+
// chart composes its own rows but shares the shell/styling and base option.
|
|
9
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
10
|
+
|
|
11
|
+
export type TooltipVariant = "default" | "frosted-glass";
|
|
12
|
+
export type TooltipRoundness = "sm" | "md" | "lg" | "xl";
|
|
13
|
+
// Tooltip anchoring: "variable" follows both axes (ECharts default, current
|
|
14
|
+
// behavior); "fixed" tracks the pointer's X (centered) but stays pinned near
|
|
15
|
+
// the top (fixed Y).
|
|
16
|
+
export type TooltipPosition = "fixed" | "variable";
|
|
17
|
+
|
|
18
|
+
export const roundnessClass: Record<TooltipRoundness, string> = {
|
|
19
|
+
sm: "rounded-sm",
|
|
20
|
+
md: "rounded-md",
|
|
21
|
+
lg: "rounded-lg",
|
|
22
|
+
xl: "rounded-xl",
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const tooltipVariantClass: Record<TooltipVariant, string> = {
|
|
26
|
+
default: "bg-background",
|
|
27
|
+
"frosted-glass": "bg-background/50 backdrop-blur-md",
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
// The standard series indicator swatch — a rounded square filled with the
|
|
31
|
+
// series' solid var or multi-stop gradient (indicatorBackground). A chart drops
|
|
32
|
+
// this into a tooltipRow's `indicatorHtml`.
|
|
33
|
+
export function tooltipIndicatorHtml(key: string, colorsCount: number): string {
|
|
34
|
+
return `<div class="h-2.5 w-2.5 shrink-0 rounded-[2px]" style="background:${indicatorBackground(key, colorsCount)}"></div>`;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// One tooltip row: indicator swatch + label/value pair. `dimmed` is a class
|
|
38
|
+
// fragment (e.g. " opacity-30") appended to the row so the selection/hover dim
|
|
39
|
+
// stays byte-identical to the inlined markup.
|
|
40
|
+
export function tooltipRow({
|
|
41
|
+
indicatorHtml,
|
|
42
|
+
labelText,
|
|
43
|
+
valueText,
|
|
44
|
+
dimmed,
|
|
45
|
+
}: {
|
|
46
|
+
indicatorHtml: string;
|
|
47
|
+
labelText: string;
|
|
48
|
+
valueText: string;
|
|
49
|
+
dimmed: string;
|
|
50
|
+
}): string {
|
|
51
|
+
return `<div class="flex w-full flex-wrap items-center gap-2${dimmed}">
|
|
52
|
+
${indicatorHtml}
|
|
53
|
+
<div class="flex flex-1 items-center justify-between gap-4 leading-none">
|
|
54
|
+
<span class="text-muted-foreground">${labelText}</span>
|
|
55
|
+
<span class="text-foreground font-mono font-medium tabular-nums">${valueText}</span>
|
|
56
|
+
</div>
|
|
57
|
+
</div>`;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// The outer tooltip surface — border, padding, shadow, roundness + variant
|
|
61
|
+
// classes — wrapping the axis label and the composed rows.
|
|
62
|
+
export function tooltipShell({
|
|
63
|
+
label,
|
|
64
|
+
body,
|
|
65
|
+
roundness,
|
|
66
|
+
variant,
|
|
67
|
+
}: {
|
|
68
|
+
label: string;
|
|
69
|
+
body: string;
|
|
70
|
+
roundness: TooltipRoundness;
|
|
71
|
+
variant: TooltipVariant;
|
|
72
|
+
}): string {
|
|
73
|
+
return `<div class="grid min-w-32 items-start gap-1.5 border border-border/50 px-2.5 py-1.5 text-xs shadow-xl ${roundnessClass[roundness]} ${tooltipVariantClass[variant]}">
|
|
74
|
+
<div class="font-medium text-primary">${label}</div>
|
|
75
|
+
<div class="grid gap-1.5">${body}</div>
|
|
76
|
+
</div>`;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Maps the TooltipPosition prop onto the ECharts tooltip `position` field.
|
|
80
|
+
// "variable" → undefined (default follow-both-axes, current behavior); "fixed" →
|
|
81
|
+
// a callback that centers the tooltip on the pointer's X but pins it near the
|
|
82
|
+
// top (fixed Y).
|
|
83
|
+
export function resolveTooltipPosition(
|
|
84
|
+
position: TooltipPosition,
|
|
85
|
+
): TooltipComponentOption["position"] {
|
|
86
|
+
if (position === "variable") return undefined;
|
|
87
|
+
return (point, _params, _dom, _rect, size) => [point[0] - size.contentSize[0] / 2, 8];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// The chart-agnostic tooltip option fields (show, trigger, confine,
|
|
91
|
+
// background/border/padding/extraCssText, axisPointer, position). The chart
|
|
92
|
+
// supplies only `formatter` and spreads this in. `axisPointerColor` is the
|
|
93
|
+
// pre-resolved cursor-line color, so this helper needs no live token read.
|
|
94
|
+
export function tooltipBaseOption(params: {
|
|
95
|
+
present: boolean;
|
|
96
|
+
cursor: boolean;
|
|
97
|
+
tokens: ResolvedColors["tokens"];
|
|
98
|
+
position: TooltipPosition;
|
|
99
|
+
axisPointerColor: string;
|
|
100
|
+
strokeWidth: number;
|
|
101
|
+
}): TooltipComponentOption {
|
|
102
|
+
const { present, cursor, position, axisPointerColor, strokeWidth } = params;
|
|
103
|
+
|
|
104
|
+
return {
|
|
105
|
+
show: present,
|
|
106
|
+
trigger: "axis",
|
|
107
|
+
confine: true,
|
|
108
|
+
displayTransition: false,
|
|
109
|
+
backgroundColor: "transparent",
|
|
110
|
+
borderWidth: 0,
|
|
111
|
+
padding: 0,
|
|
112
|
+
extraCssText: "box-shadow:none;",
|
|
113
|
+
axisPointer: cursor
|
|
114
|
+
? {
|
|
115
|
+
type: "line",
|
|
116
|
+
lineStyle: {
|
|
117
|
+
color: axisPointerColor,
|
|
118
|
+
width: strokeWidth,
|
|
119
|
+
type: [3, 3] as [number, number],
|
|
120
|
+
},
|
|
121
|
+
}
|
|
122
|
+
: { type: "none" },
|
|
123
|
+
position: resolveTooltipPosition(position),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { ChartRoot as Chart, ChartRoot } from "./chart-root"
|
|
2
|
+
export { useChartContext } from "./chart-context"
|
|
3
|
+
export { useChartActions, useChartState } from "./use-chart-state"
|
|
4
|
+
export {
|
|
5
|
+
chartSelectedKeyAtom,
|
|
6
|
+
chartStateAtom,
|
|
7
|
+
selectChartKeyAtom,
|
|
8
|
+
toggleChartKeyAtom,
|
|
9
|
+
resetChartAtom,
|
|
10
|
+
removeChartInstance,
|
|
11
|
+
} from "./chart-atom"
|
|
12
|
+
export { CHART_TYPE_LABEL, CHART_DEFAULT_HEIGHT } from "./constants"
|
|
13
|
+
export type * from "./type"
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { useRender } from "@base-ui/react/use-render"
|
|
2
|
+
import type * as React from "react"
|
|
3
|
+
import type { Reference } from "@/components/atoms/reference"
|
|
4
|
+
import type {
|
|
5
|
+
AreaProps,
|
|
6
|
+
CurveType,
|
|
7
|
+
TooltipProps,
|
|
8
|
+
XAxisProps,
|
|
9
|
+
YAxisProps,
|
|
10
|
+
} from "./evilcharts/echarts-area-chart"
|
|
11
|
+
import type { BarProps } from "./evilcharts/echarts-bar-chart"
|
|
12
|
+
import type { LineProps } from "./evilcharts/echarts-line-chart"
|
|
13
|
+
import type { PieProps } from "./evilcharts/echarts-pie-chart"
|
|
14
|
+
import type { BrushProps } from "./evilcharts/echarts-brush"
|
|
15
|
+
import type { EChartsRenderer } from "./evilcharts/echarts-chart"
|
|
16
|
+
|
|
17
|
+
export type TChartType = "pie" | "area" | "line" | "bar"
|
|
18
|
+
export type TChartVariant =
|
|
19
|
+
"default" | "stacked" | "percent" | "donut" | "horizontal"
|
|
20
|
+
export type TChartInstanceId = string
|
|
21
|
+
export type TChartDatum = {
|
|
22
|
+
label: string
|
|
23
|
+
[key: string]: string | number | null
|
|
24
|
+
}
|
|
25
|
+
export interface IChartSeries {
|
|
26
|
+
key: string
|
|
27
|
+
label: React.ReactNode
|
|
28
|
+
color?: string
|
|
29
|
+
format?: (value: number) => React.ReactNode
|
|
30
|
+
area?: Omit<AreaProps, "dataKey" | "children">
|
|
31
|
+
line?: Omit<LineProps, "dataKey" | "children">
|
|
32
|
+
bar?: Omit<BarProps, "dataKey">
|
|
33
|
+
}
|
|
34
|
+
export interface IChartState {
|
|
35
|
+
selectedKey: string | null
|
|
36
|
+
}
|
|
37
|
+
export interface IChartStateActions {
|
|
38
|
+
select: (key: string | null) => void
|
|
39
|
+
toggle: (key: string) => void
|
|
40
|
+
clearSelection: () => void
|
|
41
|
+
reset: () => void
|
|
42
|
+
}
|
|
43
|
+
export interface IChartProps extends Omit<
|
|
44
|
+
React.ComponentPropsWithoutRef<"div">,
|
|
45
|
+
"title"
|
|
46
|
+
> {
|
|
47
|
+
type: TChartType
|
|
48
|
+
/** Unique within the current Jotai store. Omit for an isolated generated id. */
|
|
49
|
+
chartId?: TChartInstanceId
|
|
50
|
+
title?: React.ReactNode
|
|
51
|
+
subtitle?: React.ReactNode
|
|
52
|
+
badge?: React.ReactNode
|
|
53
|
+
reference?: React.ComponentProps<typeof Reference>
|
|
54
|
+
data: TChartDatum[]
|
|
55
|
+
series: IChartSeries[]
|
|
56
|
+
center?: { value: React.ReactNode; label?: React.ReactNode }
|
|
57
|
+
headerless?: boolean
|
|
58
|
+
/** Outer component width. Numbers are pixels; CSS lengths such as "100%" work. */
|
|
59
|
+
width?: React.CSSProperties["width"]
|
|
60
|
+
/** Outer component height, including header and legend. Plot fills remaining space. */
|
|
61
|
+
height?: React.CSSProperties["height"]
|
|
62
|
+
/** Explicit plot height takes precedence over filling the outer height. */
|
|
63
|
+
plotHeight?: React.CSSProperties["height"]
|
|
64
|
+
/** Replace the outer element using the coss/Base UI render API. */
|
|
65
|
+
render?: useRender.ComponentProps<"div">["render"]
|
|
66
|
+
/** stacked/percent: area or bar; horizontal: bar; donut: pie. */
|
|
67
|
+
variant?: TChartVariant
|
|
68
|
+
renderer?: EChartsRenderer
|
|
69
|
+
animation?: boolean
|
|
70
|
+
loading?: boolean
|
|
71
|
+
emptyContent?: React.ReactNode
|
|
72
|
+
showLegend?: boolean
|
|
73
|
+
interactive?: boolean
|
|
74
|
+
selectedKey?: string | null
|
|
75
|
+
defaultSelectedKey?: string | null
|
|
76
|
+
onSelectionChange?: (key: string | null) => void
|
|
77
|
+
curveType?: CurveType
|
|
78
|
+
grid?: boolean
|
|
79
|
+
xAxis?: boolean | XAxisProps
|
|
80
|
+
yAxis?: boolean | YAxisProps
|
|
81
|
+
tooltip?: boolean | TooltipProps
|
|
82
|
+
brush?: boolean | BrushProps
|
|
83
|
+
pie?: Omit<PieProps, "children">
|
|
84
|
+
/** ECharts options override generated options at the top level. */
|
|
85
|
+
chartOptions?: Record<string, unknown>
|
|
86
|
+
/** Selection methods; also available via useChartActions(chartId). */
|
|
87
|
+
ref?: React.Ref<IChartStateActions>
|
|
88
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import { useMemo } from "react"
|
|
3
|
+
import { useAtomValue, useSetAtom } from "jotai"
|
|
4
|
+
import {
|
|
5
|
+
chartStateAtom,
|
|
6
|
+
selectChartKeyAtom,
|
|
7
|
+
toggleChartKeyAtom,
|
|
8
|
+
resetChartAtom,
|
|
9
|
+
} from "./chart-atom"
|
|
10
|
+
import type { IChartStateActions, TChartInstanceId } from "./type"
|
|
11
|
+
export function useChartState(id: TChartInstanceId) {
|
|
12
|
+
return useAtomValue(chartStateAtom(id))
|
|
13
|
+
}
|
|
14
|
+
export function useChartActions(id: TChartInstanceId): IChartStateActions {
|
|
15
|
+
const select = useSetAtom(selectChartKeyAtom(id))
|
|
16
|
+
const toggle = useSetAtom(toggleChartKeyAtom(id))
|
|
17
|
+
const reset = useSetAtom(resetChartAtom(id))
|
|
18
|
+
return useMemo(
|
|
19
|
+
() => ({ select, toggle, reset, clearSelection: () => select(null) }),
|
|
20
|
+
[select, toggle, reset]
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
import {
|
|
3
|
+
useEffect,
|
|
4
|
+
useId,
|
|
5
|
+
useLayoutEffect,
|
|
6
|
+
useMemo,
|
|
7
|
+
useRef,
|
|
8
|
+
useState,
|
|
9
|
+
} from "react"
|
|
10
|
+
import { useStore } from "jotai"
|
|
11
|
+
import {
|
|
12
|
+
chartConfigAtom,
|
|
13
|
+
chartSelectedKeyAtom,
|
|
14
|
+
removeChartInstance,
|
|
15
|
+
} from "./chart-atom"
|
|
16
|
+
import { useChartActions, useChartState } from "./use-chart-state"
|
|
17
|
+
import type { IChartProps } from "./type"
|
|
18
|
+
const useClientLayoutEffect =
|
|
19
|
+
typeof window === "undefined" ? useEffect : useLayoutEffect
|
|
20
|
+
export function useChart(props: IChartProps) {
|
|
21
|
+
const generatedId = useId()
|
|
22
|
+
const id = props.chartId ?? generatedId
|
|
23
|
+
const store = useStore()
|
|
24
|
+
const [initial] = useState(props.defaultSelectedKey ?? null)
|
|
25
|
+
const lifecycle = useRef(0)
|
|
26
|
+
const keys = useMemo(
|
|
27
|
+
() =>
|
|
28
|
+
props.type === "pie"
|
|
29
|
+
? props.data.map((row) => row.label)
|
|
30
|
+
: props.series.map((s) => s.key),
|
|
31
|
+
[props.type, props.data, props.series]
|
|
32
|
+
)
|
|
33
|
+
const state = useChartState(id)
|
|
34
|
+
const actions = useChartActions(id)
|
|
35
|
+
useClientLayoutEffect(() => {
|
|
36
|
+
const generation = ++lifecycle.current
|
|
37
|
+
store.set(chartSelectedKeyAtom(id), initial)
|
|
38
|
+
// Named instances persist until removeChartInstance; generated ids have no external consumers.
|
|
39
|
+
return () => {
|
|
40
|
+
queueMicrotask(() => {
|
|
41
|
+
if (!props.chartId && lifecycle.current === generation)
|
|
42
|
+
removeChartInstance(id)
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
}, [id, store, initial, props.chartId])
|
|
46
|
+
useClientLayoutEffect(() => {
|
|
47
|
+
store.set(chartConfigAtom(id), {
|
|
48
|
+
controlled: props.selectedKey !== undefined,
|
|
49
|
+
initial,
|
|
50
|
+
keys,
|
|
51
|
+
onChange: props.onSelectionChange,
|
|
52
|
+
})
|
|
53
|
+
const current =
|
|
54
|
+
props.selectedKey !== undefined
|
|
55
|
+
? props.selectedKey
|
|
56
|
+
: store.get(chartSelectedKeyAtom(id))
|
|
57
|
+
store.set(
|
|
58
|
+
chartSelectedKeyAtom(id),
|
|
59
|
+
current !== null && keys.includes(current) ? current : null
|
|
60
|
+
)
|
|
61
|
+
}, [id, store, initial, keys, props.selectedKey, props.onSelectionChange])
|
|
62
|
+
const candidate =
|
|
63
|
+
props.selectedKey !== undefined ? props.selectedKey : state.selectedKey
|
|
64
|
+
return {
|
|
65
|
+
id,
|
|
66
|
+
selectedKey:
|
|
67
|
+
candidate !== null && keys.includes(candidate) ? candidate : null,
|
|
68
|
+
actions,
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ChartConfig } from "./evilcharts/echarts-chart"
|
|
2
|
+
import type { IChartSeries, TChartDatum, TChartType } from "./type"
|
|
3
|
+
export function chartSeriesColor(series: IChartSeries, index: number) {
|
|
4
|
+
return series.color ?? `var(--chart-series-${(index % 5) + 1})`
|
|
5
|
+
}
|
|
6
|
+
export function formatChartValue(
|
|
7
|
+
series: IChartSeries | undefined,
|
|
8
|
+
value: unknown
|
|
9
|
+
) {
|
|
10
|
+
return typeof value === "number" && series?.format
|
|
11
|
+
? series.format(value)
|
|
12
|
+
: String(value ?? "—")
|
|
13
|
+
}
|
|
14
|
+
export function buildChartConfig(
|
|
15
|
+
type: TChartType,
|
|
16
|
+
data: TChartDatum[],
|
|
17
|
+
series: IChartSeries[]
|
|
18
|
+
): ChartConfig {
|
|
19
|
+
const entries =
|
|
20
|
+
type === "pie"
|
|
21
|
+
? data.map(
|
|
22
|
+
(row, index) =>
|
|
23
|
+
[
|
|
24
|
+
row.label,
|
|
25
|
+
{
|
|
26
|
+
label: row.label,
|
|
27
|
+
colors: { light: [`var(--chart-series-${(index % 5) + 1})`] },
|
|
28
|
+
},
|
|
29
|
+
] as const
|
|
30
|
+
)
|
|
31
|
+
: series.map(
|
|
32
|
+
(item, index) =>
|
|
33
|
+
[
|
|
34
|
+
item.key,
|
|
35
|
+
{
|
|
36
|
+
label: item.label,
|
|
37
|
+
colors: { light: [chartSeriesColor(item, index)] },
|
|
38
|
+
},
|
|
39
|
+
] as const
|
|
40
|
+
)
|
|
41
|
+
return Object.fromEntries(
|
|
42
|
+
entries.map(([key, value]) => [
|
|
43
|
+
key,
|
|
44
|
+
{ ...value, colors: { light: [...value.colors.light] } },
|
|
45
|
+
])
|
|
46
|
+
)
|
|
47
|
+
}
|
|
@@ -1,193 +1,3 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import type * as React from "react"
|
|
5
|
-
import {
|
|
6
|
-
Area, AreaChart, Bar, BarChart, CartesianGrid, Cell, Line, LineChart, Pie, PieChart, ResponsiveContainer, Tooltip, XAxis,
|
|
7
|
-
} from "recharts"
|
|
8
|
-
import { cn } from "@/lib/utils"
|
|
9
|
-
import { Card, CardFrame, CardFrameHeader, CardPanel } from "@/components/ui/card"
|
|
10
|
-
import { Dot, LegendItem, Pill, type DotTone } from "@/components/ui/chat"
|
|
11
|
-
|
|
12
|
-
export type ChartType = "pie" | "area" | "line" | "bar"
|
|
13
|
-
|
|
14
|
-
export interface ChartSeries {
|
|
15
|
-
/** Key into each data row. */
|
|
16
|
-
key: string
|
|
17
|
-
label: React.ReactNode
|
|
18
|
-
/** Defaults to `var(--chart-series-N)` by position. */
|
|
19
|
-
color?: string
|
|
20
|
-
/** Renders a value in the legend and tooltip (`v => \`${v}%\``). */
|
|
21
|
-
format?: (value: number) => React.ReactNode
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export type ChartDatum = { label: string; [key: string]: string | number }
|
|
25
|
-
|
|
26
|
-
export interface ChartProps extends Omit<React.ComponentPropsWithoutRef<"div">, "title"> {
|
|
27
|
-
type: ChartType
|
|
28
|
-
title?: React.ReactNode
|
|
29
|
-
subtitle?: React.ReactNode
|
|
30
|
-
/** Pill text; defaults to the capitalised type. */
|
|
31
|
-
badge?: React.ReactNode
|
|
32
|
-
data: ChartDatum[]
|
|
33
|
-
/** Series to plot; pie uses the first one. */
|
|
34
|
-
series: ChartSeries[]
|
|
35
|
-
/** Pie only: big number and caption in the donut's centre. */
|
|
36
|
-
center?: { value: React.ReactNode; label?: React.ReactNode }
|
|
37
|
-
/** Drop the title row (InsightCards embeds a bare plot). */
|
|
38
|
-
headerless?: boolean
|
|
39
|
-
/** Plot height in px; the card is 244 tall with the header. */
|
|
40
|
-
plotHeight?: number
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const TYPE_LABEL: Record<ChartType, string> = { pie: "Pie", area: "Area", line: "Line", bar: "Bar" }
|
|
44
|
-
|
|
45
|
-
const seriesColor = (s: ChartSeries, i: number) => s.color ?? `var(--chart-series-${(i % 5) + 1})`
|
|
46
|
-
const seriesTone = (i: number) => `series-${(i % 5) + 1}` as DotTone
|
|
47
|
-
|
|
48
|
-
const fmt = (s: ChartSeries | undefined, v: unknown): React.ReactNode =>
|
|
49
|
-
typeof v === "number" && s?.format ? s.format(v) : String(v)
|
|
50
|
-
|
|
51
|
-
interface TooltipRow { name?: unknown; value?: unknown; color?: string; payload?: ChartDatum }
|
|
52
|
-
|
|
53
|
-
/** Hover card: category label, then one dot · series · value row per series. */
|
|
54
|
-
function ChartTooltip({ active, payload, label, series }: { active?: boolean; payload?: TooltipRow[]; label?: unknown; series: ChartSeries[] }): React.ReactElement | null {
|
|
55
|
-
if (!active || !payload?.length) return null
|
|
56
|
-
// Pie rows already carry the category as their name, so no heading there.
|
|
57
|
-
const heading = series.length > 1 || label !== undefined ? (label ?? payload[0].payload?.label) : undefined
|
|
58
|
-
return (
|
|
59
|
-
<div data-slot="chart-tooltip" className="min-w-28 rounded-md border border-border-default bg-surface-card px-2.5 py-2 shadow-md">
|
|
60
|
-
{heading !== undefined ? <div className="mb-1.5 text-[11px] font-medium leading-3 text-text-secondary">{String(heading)}</div> : null}
|
|
61
|
-
<ul className="flex flex-col gap-1">
|
|
62
|
-
{payload.map((row, i) => {
|
|
63
|
-
const si = Math.max(0, series.findIndex((s) => s.key === row.name))
|
|
64
|
-
const s = series[si]
|
|
65
|
-
return (
|
|
66
|
-
<li key={i} className="flex items-center gap-2 text-[11px] leading-3">
|
|
67
|
-
<Dot tone={seriesTone(series.length > 1 ? si : i)} />
|
|
68
|
-
<span className="truncate text-text-secondary">{series.length > 1 ? s?.label : (row.payload?.label ?? s?.label)}</span>
|
|
69
|
-
<span className="ml-auto pl-3 font-medium text-text-primary">{fmt(s, row.value)}</span>
|
|
70
|
-
</li>
|
|
71
|
-
)
|
|
72
|
-
})}
|
|
73
|
-
</ul>
|
|
74
|
-
</div>
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const AXIS = { tick: { fontSize: 11, fill: "var(--text-secondary)" }, axisLine: false, tickLine: false, dataKey: "label", interval: 0 as const }
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* 320×244 chart card: title, subtitle, type pill, plot, x labels, legend.
|
|
82
|
-
* Series colours are the `--chart-series-*` tokens, grid is `--chart-grid`.
|
|
83
|
-
*
|
|
84
|
-
* @sketch "Component / Chart / {Pie, Area, Line, Bar}"
|
|
85
|
-
*/
|
|
86
|
-
export function Chart({
|
|
87
|
-
type, title, subtitle, badge, data, series, center, headerless = false, plotHeight, className, ...props
|
|
88
|
-
}: ChartProps): React.ReactElement {
|
|
89
|
-
const height = plotHeight ?? (type === "pie" ? 140 : 150)
|
|
90
|
-
const empty = data.length === 0 || series.length === 0
|
|
91
|
-
const reduceMotion = useReducedMotion()
|
|
92
|
-
const anim = { isAnimationActive: !reduceMotion, animationDuration: 700, animationEasing: "ease-out" as const }
|
|
93
|
-
const tooltip = <Tooltip content={<ChartTooltip series={series} />} cursor={{ stroke: "var(--chart-grid)", fill: "var(--chart-grid)", fillOpacity: 0.4 }} isAnimationActive={!reduceMotion} animationDuration={150} />
|
|
94
|
-
|
|
95
|
-
const plot = (
|
|
96
|
-
<>
|
|
97
|
-
{type === "pie" ? (
|
|
98
|
-
<div className="flex items-center gap-6">
|
|
99
|
-
<div className="relative shrink-0" style={{ width: height, height }}>
|
|
100
|
-
{empty ? null : (
|
|
101
|
-
<ResponsiveContainer width="100%" height="100%">
|
|
102
|
-
<PieChart>
|
|
103
|
-
{tooltip}
|
|
104
|
-
<Pie data={data} dataKey={series[0].key} nameKey="label" innerRadius="66%" outerRadius="100%" paddingAngle={2} stroke="none" {...anim}>
|
|
105
|
-
{data.map((_, i) => <Cell key={i} fill={`var(--chart-series-${(i % 5) + 1})`} className="transition-opacity duration-200 hover:opacity-80" />)}
|
|
106
|
-
</Pie>
|
|
107
|
-
</PieChart>
|
|
108
|
-
</ResponsiveContainer>
|
|
109
|
-
)}
|
|
110
|
-
{center ? (
|
|
111
|
-
<div className="pointer-events-none absolute inset-0 flex flex-col items-center justify-center">
|
|
112
|
-
<span className="text-[17px] font-semibold leading-5 text-text-primary">{center.value}</span>
|
|
113
|
-
{center.label ? <span className="text-[11px] leading-3 text-text-secondary">{center.label}</span> : null}
|
|
114
|
-
</div>
|
|
115
|
-
) : null}
|
|
116
|
-
</div>
|
|
117
|
-
{empty ? null : (
|
|
118
|
-
<ul className="flex min-w-0 flex-1 flex-col gap-3.5">
|
|
119
|
-
{data.map((d, i) => (
|
|
120
|
-
<li key={d.label} className="flex">
|
|
121
|
-
<LegendItem tone={seriesTone(i)} value={fmt(series[0], d[series[0].key])} className="w-full">{d.label}</LegendItem>
|
|
122
|
-
</li>
|
|
123
|
-
))}
|
|
124
|
-
</ul>
|
|
125
|
-
)}
|
|
126
|
-
</div>
|
|
127
|
-
) : (
|
|
128
|
-
<>
|
|
129
|
-
<div style={{ height }} className="w-full">
|
|
130
|
-
{empty ? null : (
|
|
131
|
-
<ResponsiveContainer width="100%" height="100%">
|
|
132
|
-
{type === "bar" ? (
|
|
133
|
-
<BarChart data={data} margin={{ top: 4, right: 4, bottom: 0, left: 4 }} barCategoryGap="30%">
|
|
134
|
-
<CartesianGrid vertical={false} stroke="var(--chart-grid)" />
|
|
135
|
-
<XAxis {...AXIS} />
|
|
136
|
-
{tooltip}
|
|
137
|
-
{series.map((s, i) => <Bar key={s.key} dataKey={s.key} fill={seriesColor(s, i)} radius={[4, 4, 0, 0]} {...anim} />)}
|
|
138
|
-
</BarChart>
|
|
139
|
-
) : type === "line" ? (
|
|
140
|
-
<LineChart data={data} margin={{ top: 4, right: 8, bottom: 0, left: 8 }}>
|
|
141
|
-
<CartesianGrid vertical={false} stroke="var(--chart-grid)" />
|
|
142
|
-
<XAxis {...AXIS} />
|
|
143
|
-
{tooltip}
|
|
144
|
-
{series.map((s, i) => (
|
|
145
|
-
<Line key={s.key} type="monotone" dataKey={s.key} stroke={seriesColor(s, i)} strokeWidth={2} dot={{ r: 3, strokeWidth: 2, fill: "var(--surface-card)" }} activeDot={{ r: 5, strokeWidth: 0 }} {...anim} />
|
|
146
|
-
))}
|
|
147
|
-
</LineChart>
|
|
148
|
-
) : (
|
|
149
|
-
<AreaChart data={data} margin={{ top: 4, right: 8, bottom: 0, left: 8 }}>
|
|
150
|
-
<CartesianGrid vertical={false} stroke="var(--chart-grid)" />
|
|
151
|
-
<XAxis {...AXIS} />
|
|
152
|
-
{tooltip}
|
|
153
|
-
{series.map((s, i) => (
|
|
154
|
-
<Area key={s.key} type="monotone" dataKey={s.key} stroke={seriesColor(s, i)} strokeWidth={2} fill={i === 0 ? "var(--chart-area-fill)" : seriesColor(s, i)} fillOpacity={1} activeDot={{ r: 5, strokeWidth: 0 }} {...anim} />
|
|
155
|
-
))}
|
|
156
|
-
</AreaChart>
|
|
157
|
-
)}
|
|
158
|
-
</ResponsiveContainer>
|
|
159
|
-
)}
|
|
160
|
-
</div>
|
|
161
|
-
{empty ? null : (
|
|
162
|
-
<div className="flex flex-wrap gap-4">
|
|
163
|
-
{series.map((s, i) => <LegendItem key={s.key} tone={seriesTone(i)}>{s.label}</LegendItem>)}
|
|
164
|
-
</div>
|
|
165
|
-
)}
|
|
166
|
-
</>
|
|
167
|
-
)}
|
|
168
|
-
</>
|
|
169
|
-
)
|
|
170
|
-
|
|
171
|
-
// Embedded (InsightCards) plots stay bare; a titled chart is a framed card.
|
|
172
|
-
if (headerless) {
|
|
173
|
-
return (
|
|
174
|
-
<div data-slot="chart" data-type={type} className={cn("flex w-80 max-w-full flex-col gap-2", className)} {...props}>
|
|
175
|
-
{plot}
|
|
176
|
-
</div>
|
|
177
|
-
)
|
|
178
|
-
}
|
|
179
|
-
return (
|
|
180
|
-
<CardFrame data-slot="chart" data-type={type} className={cn("w-80 max-w-full [--frame-radius:var(--radius-md)]", className)} {...props}>
|
|
181
|
-
<CardFrameHeader className="flex flex-row items-start justify-between gap-3 px-3.5 py-3">
|
|
182
|
-
<div className="flex min-w-0 flex-col gap-0.5">
|
|
183
|
-
<span className="truncate text-[13px] font-semibold leading-4 text-text-primary">{title}</span>
|
|
184
|
-
{subtitle ? <span className="truncate text-[11px] leading-3 text-text-secondary">{subtitle}</span> : null}
|
|
185
|
-
</div>
|
|
186
|
-
<Pill>{badge ?? TYPE_LABEL[type]}</Pill>
|
|
187
|
-
</CardFrameHeader>
|
|
188
|
-
<Card>
|
|
189
|
-
<CardPanel className="flex flex-col gap-3 p-3.5">{plot}</CardPanel>
|
|
190
|
-
</Card>
|
|
191
|
-
</CardFrame>
|
|
192
|
-
)
|
|
193
|
-
}
|
|
2
|
+
// Compatibility entry point; implementation follows the scaffold module layout.
|
|
3
|
+
export * from "./chart/index"
|
|
@@ -7,16 +7,16 @@ import { Card, CardFrame, CardFrameHeader } from "@/components/ui/card"
|
|
|
7
7
|
import { Button } from "@/components/ui/button"
|
|
8
8
|
import { SegmentedToggle } from "@/components/ui/chat"
|
|
9
9
|
|
|
10
|
-
export interface
|
|
10
|
+
export interface ICodeDiffLine {
|
|
11
11
|
type?: "add" | "remove" | "context"
|
|
12
12
|
text: string
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export interface
|
|
15
|
+
export interface ICodeBlockProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onCopy"> {
|
|
16
16
|
filename?: React.ReactNode
|
|
17
17
|
code: string
|
|
18
18
|
/** Optional diff view; when absent the toggle is hidden. */
|
|
19
|
-
diff?:
|
|
19
|
+
diff?: ICodeDiffLine[]
|
|
20
20
|
view?: "code" | "diff"
|
|
21
21
|
defaultView?: "code" | "diff"
|
|
22
22
|
onViewChange?: (view: "code" | "diff") => void
|
|
@@ -79,11 +79,11 @@ const VIEWS = [{ value: "code", label: "Code" }, { value: "diff", label: "Diff"
|
|
|
79
79
|
*
|
|
80
80
|
* @sketch "Component / Code Block"
|
|
81
81
|
*/
|
|
82
|
-
export function CodeBlock({ filename, code, diff, view, defaultView = "code", onViewChange, onCopy, keywords, className, ...props }:
|
|
82
|
+
export function CodeBlock({ filename, code, diff, view, defaultView = "code", onViewChange, onCopy, keywords, className, ...props }: ICodeBlockProps): React.ReactElement {
|
|
83
83
|
const [internal, setInternal] = React.useState<"code" | "diff">(defaultView)
|
|
84
84
|
const current = view ?? internal
|
|
85
85
|
const kw = React.useMemo(() => (keywords ? new Set([...KEYWORDS, ...keywords]) : KEYWORDS), [keywords])
|
|
86
|
-
const lines:
|
|
86
|
+
const lines: ICodeDiffLine[] = current === "diff" && diff ? diff : code.split("\n").map((text) => ({ text }))
|
|
87
87
|
|
|
88
88
|
return (
|
|
89
89
|
<CardFrame data-slot="code-block" data-view={current} className={cn("w-[420px] max-w-full", className)} {...props}>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Prompt Bar layout adapted from https://www.beautifului.dev/#prompt-bar
|
|
2
|
+
|
|
3
|
+
MIT License
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2026 Shane Levine
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
|
@@ -1,22 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import type
|
|
4
|
-
import { cn } from "@/lib/utils"
|
|
1
|
+
import { Plus } from "lucide-react"
|
|
2
|
+
import type { PopoverTriggerState } from "@base-ui/react"
|
|
3
|
+
import type * as React from "react"
|
|
4
|
+
import { cn } from "@/lib/utils"
|
|
5
5
|
|
|
6
|
-
export function AddButton({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export function AddButton({
|
|
7
|
+
state,
|
|
8
|
+
className,
|
|
9
|
+
...props
|
|
10
|
+
}: React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
11
|
+
state?: PopoverTriggerState
|
|
12
|
+
}) {
|
|
10
13
|
return (
|
|
11
|
-
<
|
|
14
|
+
<button
|
|
12
15
|
{...props}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
type="button"
|
|
17
|
+
aria-label="Add attachment"
|
|
18
|
+
data-cuelume-press=""
|
|
19
|
+
data-cuelume-release=""
|
|
20
|
+
className={cn(
|
|
21
|
+
"size-7 flex items-center justify-center rounded-lg text-muted-foreground hover:bg-foreground/5 hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring disabled:opacity-40",
|
|
22
|
+
state?.open && "bg-foreground/5",
|
|
23
|
+
className
|
|
24
|
+
)}
|
|
18
25
|
>
|
|
19
|
-
<Plus className="size-4
|
|
20
|
-
</
|
|
26
|
+
<Plus aria-hidden className="size-4" />
|
|
27
|
+
</button>
|
|
21
28
|
)
|
|
22
|
-
}
|
|
29
|
+
}
|