@nadicodeai/ui 0.1.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/AGENTS.md +114 -0
- package/README.md +211 -0
- package/dist/ai-elements.d.ts +49 -0
- package/dist/ai-elements.d.ts.map +1 -0
- package/dist/ai-elements.js +48 -0
- package/dist/components/accordion.d.ts +8 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +18 -0
- package/dist/components/action-band.d.ts +10 -0
- package/dist/components/action-band.d.ts.map +1 -0
- package/dist/components/action-band.js +33 -0
- package/dist/components/agent-chat.d.ts +20 -0
- package/dist/components/agent-chat.d.ts.map +1 -0
- package/dist/components/agent-chat.js +10 -0
- package/dist/components/agent-composer.d.ts +56 -0
- package/dist/components/agent-composer.d.ts.map +1 -0
- package/dist/components/agent-composer.js +60 -0
- package/dist/components/agent-message.d.ts +116 -0
- package/dist/components/agent-message.d.ts.map +1 -0
- package/dist/components/agent-message.js +110 -0
- package/dist/components/agent-thread.d.ts +26 -0
- package/dist/components/agent-thread.d.ts.map +1 -0
- package/dist/components/agent-thread.js +72 -0
- package/dist/components/agent-tool-approval.d.ts +32 -0
- package/dist/components/agent-tool-approval.d.ts.map +1 -0
- package/dist/components/agent-tool-approval.js +61 -0
- package/dist/components/ai-elements/agent.d.ts +27 -0
- package/dist/components/ai-elements/agent.d.ts.map +1 -0
- package/dist/components/ai-elements/agent.js +27 -0
- package/dist/components/ai-elements/artifact.d.ts +24 -0
- package/dist/components/ai-elements/artifact.d.ts.map +1 -0
- package/dist/components/ai-elements/artifact.js +20 -0
- package/dist/components/ai-elements/attachments.d.ts +55 -0
- package/dist/components/ai-elements/attachments.d.ts.map +1 -0
- package/dist/components/ai-elements/attachments.js +125 -0
- package/dist/components/ai-elements/audio-player.d.ts +30 -0
- package/dist/components/ai-elements/audio-player.d.ts.map +1 -0
- package/dist/components/ai-elements/audio-player.js +43 -0
- package/dist/components/ai-elements/canvas.d.ts +8 -0
- package/dist/components/ai-elements/canvas.d.ts.map +1 -0
- package/dist/components/ai-elements/canvas.js +5 -0
- package/dist/components/ai-elements/chain-of-thought.d.ts +30 -0
- package/dist/components/ai-elements/chain-of-thought.d.ts.map +1 -0
- package/dist/components/ai-elements/chain-of-thought.js +49 -0
- package/dist/components/ai-elements/checkpoint.d.ts +12 -0
- package/dist/components/ai-elements/checkpoint.d.ts.map +1 -0
- package/dist/components/ai-elements/checkpoint.js +10 -0
- package/dist/components/ai-elements/code-block.d.ts +46 -0
- package/dist/components/ai-elements/code-block.d.ts.map +1 -0
- package/dist/components/ai-elements/code-block.js +207 -0
- package/dist/components/ai-elements/commit.d.ts +65 -0
- package/dist/components/ai-elements/commit.d.ts.map +1 -0
- package/dist/components/ai-elements/commit.js +95 -0
- package/dist/components/ai-elements/confirmation.d.ts +50 -0
- package/dist/components/ai-elements/confirmation.d.ts.map +1 -0
- package/dist/components/ai-elements/confirmation.js +61 -0
- package/dist/components/ai-elements/connection.d.ts +6 -0
- package/dist/components/ai-elements/connection.d.ts.map +1 -0
- package/dist/components/ai-elements/connection.js +10 -0
- package/dist/components/ai-elements/context.d.ts +33 -0
- package/dist/components/ai-elements/context.d.ts.map +1 -0
- package/dist/components/ai-elements/context.js +164 -0
- package/dist/components/ai-elements/controls.d.ts +5 -0
- package/dist/components/ai-elements/controls.d.ts.map +1 -0
- package/dist/components/ai-elements/controls.js +5 -0
- package/dist/components/ai-elements/conversation.d.ts +24 -0
- package/dist/components/ai-elements/conversation.d.ts.map +1 -0
- package/dist/components/ai-elements/conversation.js +41 -0
- package/dist/components/ai-elements/edge.d.ts +6 -0
- package/dist/components/ai-elements/edge.d.ts.map +1 -0
- package/dist/components/ai-elements/edge.js +88 -0
- package/dist/components/ai-elements/environment-variables.d.ts +39 -0
- package/dist/components/ai-elements/environment-variables.d.ts.map +1 -0
- package/dist/components/ai-elements/environment-variables.js +87 -0
- package/dist/components/ai-elements/file-tree.d.ts +27 -0
- package/dist/components/ai-elements/file-tree.d.ts.map +1 -0
- package/dist/components/ai-elements/file-tree.js +71 -0
- package/dist/components/ai-elements/image.d.ts +7 -0
- package/dist/components/ai-elements/image.d.ts.map +1 -0
- package/dist/components/ai-elements/image.js +3 -0
- package/dist/components/ai-elements/inline-citation.d.ts +39 -0
- package/dist/components/ai-elements/inline-citation.d.ts.map +1 -0
- package/dist/components/ai-elements/inline-citation.js +86 -0
- package/dist/components/ai-elements/jsx-preview.d.ts +30 -0
- package/dist/components/ai-elements/jsx-preview.d.ts.map +1 -0
- package/dist/components/ai-elements/jsx-preview.js +168 -0
- package/dist/components/ai-elements/message.d.ts +38 -0
- package/dist/components/ai-elements/message.d.ts.map +1 -0
- package/dist/components/ai-elements/message.js +92 -0
- package/dist/components/ai-elements/mic-selector.d.ts +46 -0
- package/dist/components/ai-elements/mic-selector.d.ts.map +1 -0
- package/dist/components/ai-elements/mic-selector.js +184 -0
- package/dist/components/ai-elements/model-selector.d.ts +36 -0
- package/dist/components/ai-elements/model-selector.d.ts.map +1 -0
- package/dist/components/ai-elements/model-selector.js +18 -0
- package/dist/components/ai-elements/node.d.ts +22 -0
- package/dist/components/ai-elements/node.d.ts.map +1 -0
- package/dist/components/ai-elements/node.js +12 -0
- package/dist/components/ai-elements/open-in-chat.d.ts +29 -0
- package/dist/components/ai-elements/open-in-chat.d.ts.map +1 -0
- package/dist/components/ai-elements/open-in-chat.js +100 -0
- package/dist/components/ai-elements/package-info.d.ts +30 -0
- package/dist/components/ai-elements/package-info.d.ts.map +1 -0
- package/dist/components/ai-elements/package-info.js +50 -0
- package/dist/components/ai-elements/panel.d.ts +6 -0
- package/dist/components/ai-elements/panel.d.ts.map +1 -0
- package/dist/components/ai-elements/panel.js +5 -0
- package/dist/components/ai-elements/persona.d.ts +49 -0
- package/dist/components/ai-elements/persona.d.ts.map +1 -0
- package/dist/components/ai-elements/persona.js +176 -0
- package/dist/components/ai-elements/plan.d.ts +26 -0
- package/dist/components/ai-elements/plan.d.ts.map +1 -0
- package/dist/components/ai-elements/plan.js +34 -0
- package/dist/components/ai-elements/prompt-input.d.ts +149 -0
- package/dist/components/ai-elements/prompt-input.d.ts.map +1 -0
- package/dist/components/ai-elements/prompt-input.js +715 -0
- package/dist/components/ai-elements/queue.d.ts +62 -0
- package/dist/components/ai-elements/queue.d.ts.map +1 -0
- package/dist/components/ai-elements/queue.js +28 -0
- package/dist/components/ai-elements/reasoning.d.ts +27 -0
- package/dist/components/ai-elements/reasoning.d.ts.map +1 -0
- package/dist/components/ai-elements/reasoning.js +95 -0
- package/dist/components/ai-elements/sandbox.d.ts +25 -0
- package/dist/components/ai-elements/sandbox.d.ts.map +1 -0
- package/dist/components/ai-elements/sandbox.js +15 -0
- package/dist/components/ai-elements/schema-display.d.ts +56 -0
- package/dist/components/ai-elements/schema-display.d.ts.map +1 -0
- package/dist/components/ai-elements/schema-display.js +90 -0
- package/dist/components/ai-elements/shimmer.d.ts +10 -0
- package/dist/components/ai-elements/shimmer.d.ts.map +1 -0
- package/dist/components/ai-elements/shimmer.js +28 -0
- package/dist/components/ai-elements/snippet.d.ts +19 -0
- package/dist/components/ai-elements/snippet.d.ts.map +1 -0
- package/dist/components/ai-elements/snippet.js +46 -0
- package/dist/components/ai-elements/sources.d.ts +13 -0
- package/dist/components/ai-elements/sources.d.ts.map +1 -0
- package/dist/components/ai-elements/sources.js +9 -0
- package/dist/components/ai-elements/speech-input.d.ts +55 -0
- package/dist/components/ai-elements/speech-input.d.ts.map +1 -0
- package/dist/components/ai-elements/speech-input.js +187 -0
- package/dist/components/ai-elements/stack-trace.d.ts +38 -0
- package/dist/components/ai-elements/stack-trace.d.ts.map +1 -0
- package/dist/components/ai-elements/stack-trace.js +194 -0
- package/dist/components/ai-elements/suggestion.d.ts +11 -0
- package/dist/components/ai-elements/suggestion.d.ts.map +1 -0
- package/dist/components/ai-elements/suggestion.js +13 -0
- package/dist/components/ai-elements/task.d.ts +15 -0
- package/dist/components/ai-elements/task.d.ts.map +1 -0
- package/dist/components/ai-elements/task.js +10 -0
- package/dist/components/ai-elements/terminal.d.ts +28 -0
- package/dist/components/ai-elements/terminal.d.ts.map +1 -0
- package/dist/components/ai-elements/terminal.js +68 -0
- package/dist/components/ai-elements/test-results.d.ts +59 -0
- package/dist/components/ai-elements/test-results.d.ts.map +1 -0
- package/dist/components/ai-elements/test-results.js +98 -0
- package/dist/components/ai-elements/tool.d.ts +32 -0
- package/dist/components/ai-elements/tool.d.ts.map +1 -0
- package/dist/components/ai-elements/tool.js +49 -0
- package/dist/components/ai-elements/toolbar.d.ts +6 -0
- package/dist/components/ai-elements/toolbar.d.ts.map +1 -0
- package/dist/components/ai-elements/toolbar.js +5 -0
- package/dist/components/ai-elements/transcription.d.ts +17 -0
- package/dist/components/ai-elements/transcription.d.ts.map +1 -0
- package/dist/components/ai-elements/transcription.js +36 -0
- package/dist/components/ai-elements/voice-selector.d.ts +64 -0
- package/dist/components/ai-elements/voice-selector.d.ts.map +1 -0
- package/dist/components/ai-elements/voice-selector.js +224 -0
- package/dist/components/ai-elements/web-preview.d.ts +35 -0
- package/dist/components/ai-elements/web-preview.d.ts.map +1 -0
- package/dist/components/ai-elements/web-preview.js +66 -0
- package/dist/components/alert-dialog.d.ts +19 -0
- package/dist/components/alert-dialog.d.ts.map +1 -0
- package/dist/components/alert-dialog.js +42 -0
- package/dist/components/alert.d.ts +10 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js +24 -0
- package/dist/components/artifact-panel.d.ts +131 -0
- package/dist/components/artifact-panel.d.ts.map +1 -0
- package/dist/components/artifact-panel.js +189 -0
- package/dist/components/aspect-ratio.d.ts +4 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +7 -0
- package/dist/components/automation-section.d.ts +76 -0
- package/dist/components/automation-section.d.ts.map +1 -0
- package/dist/components/automation-section.js +80 -0
- package/dist/components/avatar.d.ts +12 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +23 -0
- package/dist/components/badge.d.ts +10 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +25 -0
- package/dist/components/benefits-bento.d.ts +15 -0
- package/dist/components/benefits-bento.d.ts.map +1 -0
- package/dist/components/benefits-bento.js +6 -0
- package/dist/components/bento.d.ts +28 -0
- package/dist/components/bento.d.ts.map +1 -0
- package/dist/components/bento.js +48 -0
- package/dist/components/brand.d.ts +9 -0
- package/dist/components/brand.d.ts.map +1 -0
- package/dist/components/brand.js +16 -0
- package/dist/components/breadcrumb.d.ts +12 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +28 -0
- package/dist/components/button-group.d.ts +12 -0
- package/dist/components/button-group.d.ts.map +1 -0
- package/dist/components/button-group.js +28 -0
- package/dist/components/button.d.ts +11 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +36 -0
- package/dist/components/calendar.d.ts +9 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +76 -0
- package/dist/components/card-marketing.d.ts +30 -0
- package/dist/components/card-marketing.d.ts.map +1 -0
- package/dist/components/card-marketing.js +48 -0
- package/dist/components/card.d.ts +10 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +24 -0
- package/dist/components/carousel.d.ts +20 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +91 -0
- package/dist/components/chart.d.ts +44 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +132 -0
- package/dist/components/checkbox.d.ts +5 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +9 -0
- package/dist/components/code-editor-mockup.d.ts +25 -0
- package/dist/components/code-editor-mockup.d.ts.map +1 -0
- package/dist/components/code-editor-mockup.js +47 -0
- package/dist/components/collapsible.d.ts +6 -0
- package/dist/components/collapsible.d.ts.map +1 -0
- package/dist/components/collapsible.js +13 -0
- package/dist/components/combobox.d.ts +25 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +58 -0
- package/dist/components/command.d.ts +19 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/command.js +34 -0
- package/dist/components/contact.d.ts +20 -0
- package/dist/components/contact.d.ts.map +1 -0
- package/dist/components/contact.js +24 -0
- package/dist/components/context-menu.d.ts +26 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +51 -0
- package/dist/components/dashboard-shell.d.ts +24 -0
- package/dist/components/dashboard-shell.d.ts.map +1 -0
- package/dist/components/dashboard-shell.js +8 -0
- package/dist/components/demo-surface.d.ts +26 -0
- package/dist/components/demo-surface.d.ts.map +1 -0
- package/dist/components/demo-surface.js +14 -0
- package/dist/components/desktop-shell.d.ts +28 -0
- package/dist/components/desktop-shell.d.ts.map +1 -0
- package/dist/components/desktop-shell.js +8 -0
- package/dist/components/dialog.d.ts +18 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +37 -0
- package/dist/components/direction.d.ts +8 -0
- package/dist/components/direction.d.ts.map +1 -0
- package/dist/components/direction.js +8 -0
- package/dist/components/drawer.d.ts +14 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +34 -0
- package/dist/components/dropdown-menu.d.ts +26 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +51 -0
- package/dist/components/empty.d.ts +12 -0
- package/dist/components/empty.d.ts.map +1 -0
- package/dist/components/empty.js +33 -0
- package/dist/components/fact-cell.d.ts +21 -0
- package/dist/components/fact-cell.d.ts.map +1 -0
- package/dist/components/fact-cell.js +29 -0
- package/dist/components/faq-item.d.ts +25 -0
- package/dist/components/faq-item.d.ts.map +1 -0
- package/dist/components/faq-item.js +25 -0
- package/dist/components/faq.d.ts +16 -0
- package/dist/components/faq.d.ts.map +1 -0
- package/dist/components/faq.js +18 -0
- package/dist/components/feedback-state.d.ts +14 -0
- package/dist/components/feedback-state.d.ts.map +1 -0
- package/dist/components/feedback-state.js +70 -0
- package/dist/components/field.d.ts +25 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.js +76 -0
- package/dist/components/files-preview.d.ts +36 -0
- package/dist/components/files-preview.d.ts.map +1 -0
- package/dist/components/files-preview.js +96 -0
- package/dist/components/footer.d.ts +32 -0
- package/dist/components/footer.d.ts.map +1 -0
- package/dist/components/footer.js +53 -0
- package/dist/components/form.d.ts +25 -0
- package/dist/components/form.d.ts.map +1 -0
- package/dist/components/form.js +59 -0
- package/dist/components/hero-split.d.ts +23 -0
- package/dist/components/hero-split.d.ts.map +1 -0
- package/dist/components/hero-split.js +34 -0
- package/dist/components/hover-card.d.ts +7 -0
- package/dist/components/hover-card.d.ts.map +1 -0
- package/dist/components/hover-card.js +14 -0
- package/dist/components/input-group.d.ts +17 -0
- package/dist/components/input-group.d.ts.map +1 -0
- package/dist/components/input-group.js +63 -0
- package/dist/components/input-otp.d.ts +12 -0
- package/dist/components/input-otp.d.ts.map +1 -0
- package/dist/components/input-otp.js +21 -0
- package/dist/components/input.d.ts +4 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +6 -0
- package/dist/components/installer-shell.d.ts +25 -0
- package/dist/components/installer-shell.d.ts.map +1 -0
- package/dist/components/installer-shell.js +36 -0
- package/dist/components/item.d.ts +24 -0
- package/dist/components/item.d.ts.map +1 -0
- package/dist/components/item.js +67 -0
- package/dist/components/kbd.d.ts +4 -0
- package/dist/components/kbd.d.ts.map +1 -0
- package/dist/components/kbd.js +9 -0
- package/dist/components/label.d.ts +5 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +8 -0
- package/dist/components/logo-band.d.ts +23 -0
- package/dist/components/logo-band.d.ts.map +1 -0
- package/dist/components/logo-band.js +35 -0
- package/dist/components/logo-tile.d.ts +21 -0
- package/dist/components/logo-tile.d.ts.map +1 -0
- package/dist/components/logo-tile.js +27 -0
- package/dist/components/media-mount.d.ts +13 -0
- package/dist/components/media-mount.d.ts.map +1 -0
- package/dist/components/media-mount.js +17 -0
- package/dist/components/menubar.d.ts +27 -0
- package/dist/components/menubar.d.ts.map +1 -0
- package/dist/components/menubar.js +54 -0
- package/dist/components/native-select.d.ts +8 -0
- package/dist/components/native-select.d.ts.map +1 -0
- package/dist/components/native-select.js +13 -0
- package/dist/components/nav-bar.d.ts +20 -0
- package/dist/components/nav-bar.d.ts.map +1 -0
- package/dist/components/nav-bar.js +30 -0
- package/dist/components/navigation-menu.d.ts +15 -0
- package/dist/components/navigation-menu.d.ts.map +1 -0
- package/dist/components/navigation-menu.js +32 -0
- package/dist/components/newsletter.d.ts +24 -0
- package/dist/components/newsletter.d.ts.map +1 -0
- package/dist/components/newsletter.js +31 -0
- package/dist/components/page-frame.d.ts +30 -0
- package/dist/components/page-frame.d.ts.map +1 -0
- package/dist/components/page-frame.js +30 -0
- package/dist/components/pagination.d.ts +14 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +29 -0
- package/dist/components/plugin-slot-boundary.d.ts +27 -0
- package/dist/components/plugin-slot-boundary.d.ts.map +1 -0
- package/dist/components/plugin-slot-boundary.js +24 -0
- package/dist/components/popover.d.ts +11 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +26 -0
- package/dist/components/pricing-card.d.ts +35 -0
- package/dist/components/pricing-card.d.ts.map +1 -0
- package/dist/components/pricing-card.js +55 -0
- package/dist/components/pricing.d.ts +28 -0
- package/dist/components/pricing.d.ts.map +1 -0
- package/dist/components/pricing.js +22 -0
- package/dist/components/progress.d.ts +5 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +8 -0
- package/dist/components/proof-slot.d.ts +8 -0
- package/dist/components/proof-slot.d.ts.map +1 -0
- package/dist/components/proof-slot.js +8 -0
- package/dist/components/quote-card.d.ts +23 -0
- package/dist/components/quote-card.d.ts.map +1 -0
- package/dist/components/quote-card.js +36 -0
- package/dist/components/radio-group.d.ts +6 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +12 -0
- package/dist/components/resizable.d.ts +8 -0
- package/dist/components/resizable.d.ts.map +1 -0
- package/dist/components/resizable.js +14 -0
- package/dist/components/scroll-area.d.ts +6 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +13 -0
- package/dist/components/section-intro.d.ts +18 -0
- package/dist/components/section-intro.d.ts.map +1 -0
- package/dist/components/section-intro.js +22 -0
- package/dist/components/select.d.ts +16 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +38 -0
- package/dist/components/separator.d.ts +5 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +8 -0
- package/dist/components/settings-section.d.ts +31 -0
- package/dist/components/settings-section.d.ts.map +1 -0
- package/dist/components/settings-section.js +37 -0
- package/dist/components/sheet.d.ts +15 -0
- package/dist/components/sheet.d.ts.map +1 -0
- package/dist/components/sheet.js +40 -0
- package/dist/components/shift-band.d.ts +14 -0
- package/dist/components/shift-band.d.ts.map +1 -0
- package/dist/components/shift-band.js +10 -0
- package/dist/components/sidebar.d.ts +70 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +212 -0
- package/dist/components/skeleton.d.ts +3 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +6 -0
- package/dist/components/slider.d.ts +5 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +14 -0
- package/dist/components/sonner.d.ts +4 -0
- package/dist/components/sonner.d.ts.map +1 -0
- package/dist/components/sonner.js +19 -0
- package/dist/components/spinner.d.ts +3 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +7 -0
- package/dist/components/stat-block.d.ts +20 -0
- package/dist/components/stat-block.d.ts.map +1 -0
- package/dist/components/stat-block.js +20 -0
- package/dist/components/stats-band.d.ts +18 -0
- package/dist/components/stats-band.d.ts.map +1 -0
- package/dist/components/stats-band.js +28 -0
- package/dist/components/switch.d.ts +7 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +8 -0
- package/dist/components/table.d.ts +11 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +28 -0
- package/dist/components/tabs.d.ts +12 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +29 -0
- package/dist/components/testimonials.d.ts +21 -0
- package/dist/components/testimonials.d.ts.map +1 -0
- package/dist/components/testimonials.js +28 -0
- package/dist/components/textarea.d.ts +4 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +6 -0
- package/dist/components/toggle-group.d.ts +10 -0
- package/dist/components/toggle-group.d.ts.map +1 -0
- package/dist/components/toggle-group.js +22 -0
- package/dist/components/toggle.d.ts +10 -0
- package/dist/components/toggle.d.ts.map +1 -0
- package/dist/components/toggle.js +26 -0
- package/dist/components/tooltip.d.ts +8 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +17 -0
- package/dist/components/use-case-bento.d.ts +13 -0
- package/dist/components/use-case-bento.d.ts.map +1 -0
- package/dist/components/use-case-bento.js +9 -0
- package/dist/components/watch-it-work-band.d.ts +11 -0
- package/dist/components/watch-it-work-band.d.ts.map +1 -0
- package/dist/components/watch-it-work-band.js +8 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +100 -0
- package/dist/lib/agent-attachment.d.ts +11 -0
- package/dist/lib/agent-attachment.d.ts.map +1 -0
- package/dist/lib/agent-attachment.js +19 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +5 -0
- package/dist/styles/globals.css +362 -0
- package/docs/agent-work-surfaces.md +98 -0
- package/docs/agents/nadicodeai-ui.md +229 -0
- package/docs/component-classification.md +44 -0
- package/docs/migration/nadia-consumer-readiness.md +85 -0
- package/docs/product-compositions.md +77 -0
- package/docs/product-sections.md +200 -0
- package/docs/terminal-tui-semantics.md +211 -0
- package/llms.txt +75 -0
- package/package.json +95 -0
- package/skills/nadicodeai-ui/SKILL.md +80 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @nadicodeai/ui — Tailwind v4 + shadcn entry stylesheet.
|
|
3
|
+
*
|
|
4
|
+
* Import order is load-bearing: Tailwind first, then the design-system token
|
|
5
|
+
* bridge (the brand @theme + the :root shadcn role map, generated from
|
|
6
|
+
* DESIGN.md by Style Dictionary — ADR 0006). The @theme inline block below
|
|
7
|
+
* lifts semantic role vars into Tailwind's --color-* utility namespace so
|
|
8
|
+
* shadcn utilities (bg-background, text-foreground, border-border, …) resolve
|
|
9
|
+
* to brand tokens.
|
|
10
|
+
*
|
|
11
|
+
* Dark readiness is selector remapping only: :root and .dark assign shadcn
|
|
12
|
+
* roles and package-local product aliases from generated --nc-* tokens or from
|
|
13
|
+
* semantic roles. Product aliases intentionally live here, not in DESIGN.md:
|
|
14
|
+
* their --nc-* names are package-local declarations, while source tokens remain
|
|
15
|
+
* the generated --nc-* declarations imported above. Components consume those
|
|
16
|
+
* roles/aliases and do not carry raw palette utilities or dark: utility classes.
|
|
17
|
+
* DESIGN.md remains the only source of literal values.
|
|
18
|
+
*/
|
|
19
|
+
@import "tailwindcss";
|
|
20
|
+
@import "@nadicodeai/design-system/tailwind/theme.css";
|
|
21
|
+
@import "@nadicodeai/design-system/css/tokens.generated.css";
|
|
22
|
+
@import "@xyflow/react/dist/style.css";
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
* Tailwind v4's dark: variant defaults to an OS media query. Keep it class
|
|
26
|
+
* gated so a consuming app must opt in with a .dark ancestor. Shared components
|
|
27
|
+
* still do not ship dark: utilities; the semantic remap below carries dark mode.
|
|
28
|
+
*/
|
|
29
|
+
@custom-variant dark (&:where(.dark, .dark *));
|
|
30
|
+
|
|
31
|
+
@theme inline {
|
|
32
|
+
--color-background: var(--background);
|
|
33
|
+
--color-foreground: var(--foreground);
|
|
34
|
+
|
|
35
|
+
--color-card: var(--card);
|
|
36
|
+
--color-card-foreground: var(--card-foreground);
|
|
37
|
+
|
|
38
|
+
--color-popover: var(--popover);
|
|
39
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
40
|
+
|
|
41
|
+
--color-primary: var(--primary);
|
|
42
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
43
|
+
|
|
44
|
+
--color-secondary: var(--secondary);
|
|
45
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
46
|
+
|
|
47
|
+
--color-muted: var(--muted);
|
|
48
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
49
|
+
|
|
50
|
+
--color-accent: var(--accent);
|
|
51
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
52
|
+
|
|
53
|
+
--color-destructive: var(--destructive);
|
|
54
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
55
|
+
|
|
56
|
+
--color-border: var(--border);
|
|
57
|
+
--color-input: var(--input);
|
|
58
|
+
--color-ring: var(--ring);
|
|
59
|
+
|
|
60
|
+
--color-chart-1: var(--chart-1);
|
|
61
|
+
--color-chart-2: var(--chart-2);
|
|
62
|
+
--color-chart-3: var(--chart-3);
|
|
63
|
+
--color-chart-4: var(--chart-4);
|
|
64
|
+
--color-chart-5: var(--chart-5);
|
|
65
|
+
|
|
66
|
+
--color-sidebar: var(--sidebar);
|
|
67
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
68
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
69
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
70
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
71
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
72
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
73
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:root {
|
|
77
|
+
--radius: var(--nc-rounded-md);
|
|
78
|
+
--background: var(--nc-canvas);
|
|
79
|
+
--foreground: var(--nc-ink);
|
|
80
|
+
--card: var(--nc-canvas);
|
|
81
|
+
--card-foreground: var(--nc-ink);
|
|
82
|
+
--popover: var(--nc-canvas);
|
|
83
|
+
--popover-foreground: var(--nc-ink);
|
|
84
|
+
--primary: var(--nc-primary);
|
|
85
|
+
--primary-foreground: var(--nc-on-primary);
|
|
86
|
+
--secondary: var(--nc-canvas-soft);
|
|
87
|
+
--secondary-foreground: var(--nc-ink);
|
|
88
|
+
--muted: var(--nc-canvas-soft);
|
|
89
|
+
--muted-foreground: var(--nc-muted);
|
|
90
|
+
--accent: var(--nc-canvas-soft-2);
|
|
91
|
+
--accent-foreground: var(--nc-ink);
|
|
92
|
+
--destructive: var(--nc-error);
|
|
93
|
+
--destructive-foreground: var(--nc-on-primary);
|
|
94
|
+
--border: var(--nc-line);
|
|
95
|
+
--input: var(--nc-line);
|
|
96
|
+
--ring: var(--nc-link);
|
|
97
|
+
--chart-1: var(--nc-link);
|
|
98
|
+
--chart-2: var(--nc-cyan);
|
|
99
|
+
--chart-3: var(--nc-flag-red);
|
|
100
|
+
--chart-4: var(--nc-gradient-ship-end);
|
|
101
|
+
--chart-5: var(--nc-error);
|
|
102
|
+
--sidebar: var(--nc-canvas-soft);
|
|
103
|
+
--sidebar-foreground: var(--nc-ink);
|
|
104
|
+
--sidebar-primary: var(--nc-primary);
|
|
105
|
+
--sidebar-primary-foreground: var(--nc-on-primary);
|
|
106
|
+
--sidebar-accent: var(--nc-canvas-soft-2);
|
|
107
|
+
--sidebar-accent-foreground: var(--nc-ink);
|
|
108
|
+
--sidebar-border: var(--nc-line);
|
|
109
|
+
--sidebar-ring: var(--nc-link);
|
|
110
|
+
|
|
111
|
+
--nc-app-surface: var(--background);
|
|
112
|
+
--nc-app-surface-chrome: var(--sidebar);
|
|
113
|
+
--nc-app-surface-sidebar: var(--sidebar);
|
|
114
|
+
--nc-app-surface-panel: var(--card);
|
|
115
|
+
--nc-app-surface-panel-hover: var(--accent);
|
|
116
|
+
--nc-app-surface-panel-active: var(--primary);
|
|
117
|
+
--nc-app-surface-elevated: var(--popover);
|
|
118
|
+
--nc-app-surface-overlay: var(--popover);
|
|
119
|
+
--nc-app-border: var(--border);
|
|
120
|
+
--nc-app-border-subtle: var(--nc-seam);
|
|
121
|
+
--nc-app-ring: var(--ring);
|
|
122
|
+
--nc-app-text-primary: var(--foreground);
|
|
123
|
+
--nc-app-text-secondary: var(--nc-body);
|
|
124
|
+
--nc-app-text-tertiary: var(--muted-foreground);
|
|
125
|
+
--nc-app-text-inverse: var(--primary-foreground);
|
|
126
|
+
--nc-app-text-link: var(--nc-link-deep);
|
|
127
|
+
--nc-app-text-code: var(--nc-ink);
|
|
128
|
+
--nc-app-text-placeholder: var(--nc-muted);
|
|
129
|
+
--nc-app-text-disabled: var(--nc-cross);
|
|
130
|
+
|
|
131
|
+
--nc-chat-surface: var(--background);
|
|
132
|
+
--nc-chat-user-surface: var(--primary);
|
|
133
|
+
--nc-chat-assistant-surface: var(--card);
|
|
134
|
+
--nc-chat-system-surface: var(--muted);
|
|
135
|
+
--nc-chat-tool-surface: var(--secondary);
|
|
136
|
+
--nc-chat-reasoning-surface: var(--accent);
|
|
137
|
+
--nc-chat-artifact-surface: var(--popover);
|
|
138
|
+
--nc-chat-inline-ref-surface: var(--nc-link-bg-soft);
|
|
139
|
+
--nc-chat-directive-command: var(--nc-link);
|
|
140
|
+
--nc-chat-directive-skill: var(--nc-cyan-deep);
|
|
141
|
+
--nc-chat-directive-theme: var(--nc-flag-red);
|
|
142
|
+
--nc-composer-surface: var(--popover);
|
|
143
|
+
--nc-composer-foreground: var(--popover-foreground);
|
|
144
|
+
--nc-composer-border: var(--input);
|
|
145
|
+
--nc-composer-ring: var(--ring);
|
|
146
|
+
|
|
147
|
+
--nc-tool-pending: var(--nc-warning-deep);
|
|
148
|
+
--nc-tool-running: var(--nc-state-running);
|
|
149
|
+
--nc-tool-success: var(--nc-success);
|
|
150
|
+
--nc-tool-warning: var(--nc-warning-deep);
|
|
151
|
+
--nc-tool-error: var(--nc-error);
|
|
152
|
+
--nc-tool-muted: var(--nc-muted);
|
|
153
|
+
--nc-tool-approval-run: var(--nc-state-running);
|
|
154
|
+
--nc-tool-approval-deny: var(--nc-error);
|
|
155
|
+
--nc-tool-approval-session: var(--nc-link);
|
|
156
|
+
--nc-tool-approval-always: var(--nc-success);
|
|
157
|
+
|
|
158
|
+
--nc-status-info: var(--nc-link);
|
|
159
|
+
--nc-status-success: var(--nc-success);
|
|
160
|
+
--nc-status-warning: var(--nc-warning-deep);
|
|
161
|
+
--nc-status-error: var(--nc-error);
|
|
162
|
+
--nc-status-paused: var(--nc-muted);
|
|
163
|
+
--nc-status-running: var(--nc-state-running);
|
|
164
|
+
--nc-status-blocked: var(--nc-state-blocked);
|
|
165
|
+
--nc-status-complete: var(--nc-state-complete);
|
|
166
|
+
--nc-status-offline: var(--nc-muted);
|
|
167
|
+
--nc-status-online: var(--nc-success);
|
|
168
|
+
|
|
169
|
+
--nc-diff-added-line: var(--nc-link-bg-soft);
|
|
170
|
+
--nc-diff-added-word: var(--nc-link);
|
|
171
|
+
--nc-diff-removed-line: var(--nc-error-soft);
|
|
172
|
+
--nc-diff-removed-word: var(--nc-error);
|
|
173
|
+
--nc-diff-hunk: var(--accent);
|
|
174
|
+
--nc-diff-file-header: var(--muted-foreground);
|
|
175
|
+
--nc-code-surface: var(--nc-ink);
|
|
176
|
+
--nc-code-border: var(--nc-body);
|
|
177
|
+
--nc-code-token-keyword: var(--nc-cyan);
|
|
178
|
+
--nc-code-token-string: var(--nc-success);
|
|
179
|
+
--nc-code-token-comment: var(--nc-cross);
|
|
180
|
+
--nc-code-token-function: var(--nc-cyan-deep);
|
|
181
|
+
|
|
182
|
+
--nc-terminal-bg: var(--nc-ink);
|
|
183
|
+
--nc-terminal-fg: var(--nc-on-primary);
|
|
184
|
+
--nc-terminal-muted: var(--nc-cross);
|
|
185
|
+
--nc-terminal-cursor: var(--nc-cyan);
|
|
186
|
+
--nc-terminal-selection-bg: var(--nc-link-deep);
|
|
187
|
+
--nc-terminal-ansi-black: var(--nc-ink);
|
|
188
|
+
--nc-terminal-ansi-red: var(--nc-error);
|
|
189
|
+
--nc-terminal-ansi-green: var(--nc-success);
|
|
190
|
+
--nc-terminal-ansi-yellow: var(--nc-warning);
|
|
191
|
+
--nc-terminal-ansi-blue: var(--nc-link);
|
|
192
|
+
--nc-terminal-ansi-magenta: var(--nc-flag-red);
|
|
193
|
+
--nc-terminal-ansi-cyan: var(--nc-cyan);
|
|
194
|
+
--nc-terminal-ansi-white: var(--nc-on-primary);
|
|
195
|
+
--nc-terminal-ansi-bright-black: var(--nc-body);
|
|
196
|
+
--nc-terminal-ansi-bright-red: var(--nc-error-soft);
|
|
197
|
+
--nc-terminal-ansi-bright-green: var(--nc-cyan-soft);
|
|
198
|
+
--nc-terminal-ansi-bright-yellow: var(--nc-warning-soft);
|
|
199
|
+
--nc-terminal-ansi-bright-blue: var(--nc-cyan);
|
|
200
|
+
--nc-terminal-ansi-bright-magenta: var(--nc-flag-red);
|
|
201
|
+
--nc-terminal-ansi-bright-cyan: var(--nc-cyan-soft);
|
|
202
|
+
--nc-terminal-ansi-bright-white: var(--nc-on-primary);
|
|
203
|
+
|
|
204
|
+
--nc-model-provider-surface: var(--muted);
|
|
205
|
+
--nc-model-capability-surface: var(--accent);
|
|
206
|
+
--nc-model-capability-border: var(--nc-link);
|
|
207
|
+
--nc-model-context-meter: var(--nc-warning);
|
|
208
|
+
--nc-model-cost-warning: var(--nc-warning-deep);
|
|
209
|
+
--nc-model-rate-limit: var(--nc-error);
|
|
210
|
+
|
|
211
|
+
--nc-plugin-permission-safe: var(--nc-success);
|
|
212
|
+
--nc-plugin-permission-review: var(--nc-warning-deep);
|
|
213
|
+
--nc-plugin-permission-risk: var(--nc-flag-red);
|
|
214
|
+
--nc-plugin-permission-denied: var(--nc-error);
|
|
215
|
+
--nc-plugin-permission-surface: var(--muted);
|
|
216
|
+
--nc-plugin-permission-foreground: var(--foreground);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.dark {
|
|
220
|
+
--radius: var(--nc-rounded-md);
|
|
221
|
+
--background: var(--nc-ink);
|
|
222
|
+
--foreground: var(--nc-on-primary);
|
|
223
|
+
--card: var(--nc-primary);
|
|
224
|
+
--card-foreground: var(--nc-on-primary);
|
|
225
|
+
--popover: var(--nc-primary);
|
|
226
|
+
--popover-foreground: var(--nc-on-primary);
|
|
227
|
+
--primary: var(--nc-on-primary);
|
|
228
|
+
--primary-foreground: var(--nc-ink);
|
|
229
|
+
--secondary: var(--nc-body);
|
|
230
|
+
--secondary-foreground: var(--nc-on-primary);
|
|
231
|
+
--muted: var(--nc-body);
|
|
232
|
+
--muted-foreground: var(--nc-cross);
|
|
233
|
+
--accent: var(--nc-body);
|
|
234
|
+
--accent-foreground: var(--nc-on-primary);
|
|
235
|
+
--destructive: var(--nc-error);
|
|
236
|
+
--destructive-foreground: var(--nc-on-primary);
|
|
237
|
+
--border: var(--nc-body);
|
|
238
|
+
--input: var(--nc-body);
|
|
239
|
+
--ring: var(--nc-cyan);
|
|
240
|
+
--chart-1: var(--nc-cyan);
|
|
241
|
+
--chart-2: var(--nc-link-bg-soft);
|
|
242
|
+
--chart-3: var(--nc-warning);
|
|
243
|
+
--chart-4: var(--nc-flag-red);
|
|
244
|
+
--chart-5: var(--nc-link);
|
|
245
|
+
--sidebar: var(--nc-primary);
|
|
246
|
+
--sidebar-foreground: var(--nc-on-primary);
|
|
247
|
+
--sidebar-primary: var(--nc-cyan);
|
|
248
|
+
--sidebar-primary-foreground: var(--nc-ink);
|
|
249
|
+
--sidebar-accent: var(--nc-body);
|
|
250
|
+
--sidebar-accent-foreground: var(--nc-on-primary);
|
|
251
|
+
--sidebar-border: var(--nc-body);
|
|
252
|
+
--sidebar-ring: var(--nc-cyan);
|
|
253
|
+
|
|
254
|
+
--nc-app-surface: var(--background);
|
|
255
|
+
--nc-app-surface-chrome: var(--sidebar);
|
|
256
|
+
--nc-app-surface-sidebar: var(--sidebar);
|
|
257
|
+
--nc-app-surface-panel: var(--card);
|
|
258
|
+
--nc-app-surface-panel-hover: var(--accent);
|
|
259
|
+
--nc-app-surface-panel-active: var(--primary);
|
|
260
|
+
--nc-app-surface-elevated: var(--popover);
|
|
261
|
+
--nc-app-surface-overlay: var(--popover);
|
|
262
|
+
--nc-app-border: var(--border);
|
|
263
|
+
--nc-app-border-subtle: var(--nc-body);
|
|
264
|
+
--nc-app-ring: var(--ring);
|
|
265
|
+
--nc-app-text-primary: var(--foreground);
|
|
266
|
+
--nc-app-text-secondary: var(--nc-cross);
|
|
267
|
+
--nc-app-text-tertiary: var(--muted-foreground);
|
|
268
|
+
--nc-app-text-inverse: var(--primary-foreground);
|
|
269
|
+
--nc-app-text-link: var(--nc-cyan-soft);
|
|
270
|
+
--nc-app-text-code: var(--nc-on-primary);
|
|
271
|
+
--nc-app-text-placeholder: var(--nc-cross);
|
|
272
|
+
--nc-app-text-disabled: var(--nc-body);
|
|
273
|
+
|
|
274
|
+
--nc-chat-surface: var(--background);
|
|
275
|
+
--nc-chat-user-surface: var(--primary);
|
|
276
|
+
--nc-chat-assistant-surface: var(--card);
|
|
277
|
+
--nc-chat-system-surface: var(--muted);
|
|
278
|
+
--nc-chat-tool-surface: var(--secondary);
|
|
279
|
+
--nc-chat-reasoning-surface: var(--accent);
|
|
280
|
+
--nc-chat-artifact-surface: var(--popover);
|
|
281
|
+
--nc-chat-inline-ref-surface: var(--nc-link-deep);
|
|
282
|
+
--nc-chat-directive-command: var(--nc-cyan);
|
|
283
|
+
--nc-chat-directive-skill: var(--nc-cyan-soft);
|
|
284
|
+
--nc-chat-directive-theme: var(--nc-warning);
|
|
285
|
+
--nc-composer-surface: var(--popover);
|
|
286
|
+
--nc-composer-foreground: var(--popover-foreground);
|
|
287
|
+
--nc-composer-border: var(--input);
|
|
288
|
+
--nc-composer-ring: var(--ring);
|
|
289
|
+
|
|
290
|
+
--nc-tool-pending: var(--nc-warning);
|
|
291
|
+
--nc-tool-running: var(--nc-cyan);
|
|
292
|
+
--nc-tool-success: var(--nc-cyan-soft);
|
|
293
|
+
--nc-tool-warning: var(--nc-warning);
|
|
294
|
+
--nc-tool-error: var(--nc-error-soft);
|
|
295
|
+
--nc-tool-muted: var(--nc-cross);
|
|
296
|
+
--nc-tool-approval-run: var(--nc-cyan-deep);
|
|
297
|
+
--nc-tool-approval-deny: var(--nc-error-soft);
|
|
298
|
+
--nc-tool-approval-session: var(--nc-cyan);
|
|
299
|
+
--nc-tool-approval-always: var(--nc-cyan-soft);
|
|
300
|
+
|
|
301
|
+
--nc-status-info: var(--nc-cyan);
|
|
302
|
+
--nc-status-success: var(--nc-cyan-soft);
|
|
303
|
+
--nc-status-warning: var(--nc-warning);
|
|
304
|
+
--nc-status-error: var(--nc-error-soft);
|
|
305
|
+
--nc-status-paused: var(--nc-cross);
|
|
306
|
+
--nc-status-running: var(--nc-cyan);
|
|
307
|
+
--nc-status-blocked: var(--nc-error-soft);
|
|
308
|
+
--nc-status-complete: var(--nc-cyan-soft);
|
|
309
|
+
--nc-status-offline: var(--nc-cross);
|
|
310
|
+
--nc-status-online: var(--nc-cyan-soft);
|
|
311
|
+
|
|
312
|
+
--nc-diff-added-line: var(--nc-link-deep);
|
|
313
|
+
--nc-diff-added-word: var(--nc-cyan-soft);
|
|
314
|
+
--nc-diff-removed-line: var(--nc-error-deep);
|
|
315
|
+
--nc-diff-removed-word: var(--nc-error-soft);
|
|
316
|
+
--nc-diff-hunk: var(--muted);
|
|
317
|
+
--nc-diff-file-header: var(--muted-foreground);
|
|
318
|
+
--nc-code-surface: var(--nc-primary);
|
|
319
|
+
--nc-code-border: var(--nc-body);
|
|
320
|
+
--nc-code-token-keyword: var(--nc-cyan);
|
|
321
|
+
--nc-code-token-string: var(--nc-cyan-soft);
|
|
322
|
+
--nc-code-token-comment: var(--nc-cross);
|
|
323
|
+
--nc-code-token-function: var(--nc-cyan-soft);
|
|
324
|
+
|
|
325
|
+
--nc-terminal-bg: var(--nc-primary);
|
|
326
|
+
--nc-terminal-fg: var(--nc-on-primary);
|
|
327
|
+
--nc-terminal-muted: var(--nc-cross);
|
|
328
|
+
--nc-terminal-cursor: var(--nc-cyan);
|
|
329
|
+
--nc-terminal-selection-bg: var(--nc-link-deep);
|
|
330
|
+
--nc-terminal-ansi-black: var(--nc-body);
|
|
331
|
+
--nc-terminal-ansi-red: var(--nc-error-soft);
|
|
332
|
+
--nc-terminal-ansi-green: var(--nc-cyan-soft);
|
|
333
|
+
--nc-terminal-ansi-yellow: var(--nc-warning);
|
|
334
|
+
--nc-terminal-ansi-blue: var(--nc-cyan);
|
|
335
|
+
--nc-terminal-ansi-magenta: var(--nc-flag-red);
|
|
336
|
+
--nc-terminal-ansi-cyan: var(--nc-cyan-soft);
|
|
337
|
+
--nc-terminal-ansi-white: var(--nc-on-primary);
|
|
338
|
+
--nc-terminal-ansi-bright-black: var(--nc-cross);
|
|
339
|
+
--nc-terminal-ansi-bright-red: var(--nc-error-soft);
|
|
340
|
+
--nc-terminal-ansi-bright-green: var(--nc-cyan-soft);
|
|
341
|
+
--nc-terminal-ansi-bright-yellow: var(--nc-warning-soft);
|
|
342
|
+
--nc-terminal-ansi-bright-blue: var(--nc-cyan);
|
|
343
|
+
--nc-terminal-ansi-bright-magenta: var(--nc-flag-red);
|
|
344
|
+
--nc-terminal-ansi-bright-cyan: var(--nc-cyan-soft);
|
|
345
|
+
--nc-terminal-ansi-bright-white: var(--nc-on-primary);
|
|
346
|
+
|
|
347
|
+
--nc-model-provider-surface: var(--muted);
|
|
348
|
+
--nc-model-capability-surface: var(--accent);
|
|
349
|
+
--nc-model-capability-border: var(--nc-cyan);
|
|
350
|
+
--nc-model-context-meter: var(--nc-warning);
|
|
351
|
+
--nc-model-cost-warning: var(--nc-warning);
|
|
352
|
+
--nc-model-rate-limit: var(--nc-error-soft);
|
|
353
|
+
|
|
354
|
+
--nc-plugin-permission-safe: var(--nc-cyan-soft);
|
|
355
|
+
--nc-plugin-permission-review: var(--nc-warning);
|
|
356
|
+
--nc-plugin-permission-risk: var(--nc-flag-red);
|
|
357
|
+
--nc-plugin-permission-denied: var(--nc-error-soft);
|
|
358
|
+
--nc-plugin-permission-surface: var(--muted);
|
|
359
|
+
--nc-plugin-permission-foreground: var(--foreground);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
@source "../components";
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Agent Work Surfaces
|
|
2
|
+
|
|
3
|
+
U6 adds presentational agent surfaces for Nadia-flavored chat, composer, approval,
|
|
4
|
+
artifact, file, preview, diff, and terminal summary UI. These components render
|
|
5
|
+
serializable state models and leave runtime behavior to the consuming app.
|
|
6
|
+
|
|
7
|
+
## Components
|
|
8
|
+
|
|
9
|
+
- `AgentChat` combines an `AgentThread` with an optional `AgentComposer`.
|
|
10
|
+
- `AgentThread` renders message lists plus empty, queued, streaming, interrupted,
|
|
11
|
+
retryable, permission-denied, and fatal state banners.
|
|
12
|
+
- `AgentMessage` renders user, assistant, and system messages with text,
|
|
13
|
+
reasoning summaries, tool calls, source references, artifacts, attachments,
|
|
14
|
+
and state notices.
|
|
15
|
+
- `AgentComposer` renders a controlled or uncontrolled input surface with
|
|
16
|
+
attachments, queue panel, submit or stop control, and slash or mention slots.
|
|
17
|
+
- `AgentToolApproval` renders the approval choices `run`, `deny`, `session`,
|
|
18
|
+
and `always` with stable semantic aliases.
|
|
19
|
+
- `ArtifactPanel` renders text, code, diff, terminal summary, preview,
|
|
20
|
+
stack-trace, and test-result artifacts.
|
|
21
|
+
- `FilesPreview` and `ProjectFileTree` render a serializable project tree and
|
|
22
|
+
file preview without desktop IPC.
|
|
23
|
+
|
|
24
|
+
## State Models
|
|
25
|
+
|
|
26
|
+
The public models are plain JSON-shaped data. React nodes are accepted only as
|
|
27
|
+
explicit slots such as `composer`, `slashMenu`, `mentionMenu`, `toolActions`,
|
|
28
|
+
`retryAction`, `previewActions`, or `actions`.
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
import { AgentChat } from "@nadicodeai/ui/components/agent-chat"
|
|
32
|
+
|
|
33
|
+
const messages = [
|
|
34
|
+
{
|
|
35
|
+
id: "assistant-1",
|
|
36
|
+
role: "assistant",
|
|
37
|
+
metadata: {
|
|
38
|
+
kind: "agent",
|
|
39
|
+
label: "Nadia",
|
|
40
|
+
model: "synthetic-model",
|
|
41
|
+
},
|
|
42
|
+
parts: [
|
|
43
|
+
{
|
|
44
|
+
type: "text",
|
|
45
|
+
text: "I reviewed the synthetic fixture.",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
type: "reasoning",
|
|
49
|
+
reasoning: {
|
|
50
|
+
id: "reasoning-1",
|
|
51
|
+
status: "available",
|
|
52
|
+
summary: "Package primitives cover the requested surface.",
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
] as const
|
|
58
|
+
|
|
59
|
+
export function FixtureChat() {
|
|
60
|
+
return <AgentChat messages={[...messages]} state="idle" />
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Redaction
|
|
65
|
+
|
|
66
|
+
Use `AgentRedactionRule` whenever a payload cannot be shown. Redaction labels
|
|
67
|
+
exist for secrets, environment values, terminal transcripts, user memory, and
|
|
68
|
+
private reasoning. The component should receive the redaction object instead of
|
|
69
|
+
the protected value.
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
const redactedTool = {
|
|
73
|
+
id: "tool-1",
|
|
74
|
+
name: "fixture_check",
|
|
75
|
+
status: "error",
|
|
76
|
+
redaction: {
|
|
77
|
+
redacted: true,
|
|
78
|
+
category: "secret",
|
|
79
|
+
},
|
|
80
|
+
} as const
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Approval Aliases
|
|
84
|
+
|
|
85
|
+
`AgentToolApproval` emits both the user-facing choice and a semantic alias:
|
|
86
|
+
|
|
87
|
+
- `run` -> `approve-once`
|
|
88
|
+
- `deny` -> `reject`
|
|
89
|
+
- `session` -> `approve-session`
|
|
90
|
+
- `always` -> `approve-always`
|
|
91
|
+
|
|
92
|
+
Consumers own the approval action handler and persistence.
|
|
93
|
+
|
|
94
|
+
## Runtime Boundary
|
|
95
|
+
|
|
96
|
+
These components do not open files, execute commands, persist messages, call
|
|
97
|
+
models, stream tokens, retry tools, or talk to a desktop process. Pass callbacks
|
|
98
|
+
or slots for those behaviors from the consuming app.
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# NadicodeAI UI Agent Guide
|
|
2
|
+
|
|
3
|
+
This file is shipped with `@nadicodeai/ui` so coding agents can use the package correctly after installation.
|
|
4
|
+
|
|
5
|
+
## What This Package Provides
|
|
6
|
+
|
|
7
|
+
`@nadicodeai/ui` is the shared NadicodeAI React UI surface:
|
|
8
|
+
|
|
9
|
+
- shadcn source components compiled into package exports
|
|
10
|
+
- Vercel AI Elements source components compiled into package exports
|
|
11
|
+
- React adapters over the design-system grammar and assets
|
|
12
|
+
- reusable NadicodeAI marketing/section compositions
|
|
13
|
+
- presentational Nadia product components for settings, dashboard shells,
|
|
14
|
+
installer states, plugin boundaries, agent chat, artifacts,
|
|
15
|
+
files, diffs, and redacted terminal summaries
|
|
16
|
+
- Tailwind v4 global CSS that bridges shadcn roles to NadicodeAI design tokens
|
|
17
|
+
- package-local agent instructions in `AGENTS.md`, `llms.txt`,
|
|
18
|
+
`docs/migration/nadia-consumer-readiness.md`, and
|
|
19
|
+
`skills/nadicodeai-ui/SKILL.md`
|
|
20
|
+
|
|
21
|
+
The package surface is source-backed. `src/components/` is flat shadcn-style
|
|
22
|
+
source; do not infer or create folders or package namespaces that do not exist.
|
|
23
|
+
Do not add top-level exports for recipes, blocks, agent, or terminal groupings
|
|
24
|
+
until a concrete package API decision adds source, built files, docs, and tests
|
|
25
|
+
together. Product components ship only when the source, public subpath export,
|
|
26
|
+
tests, and docs exist together.
|
|
27
|
+
|
|
28
|
+
Consuming apps own routes, persistence, auth behavior, server state, runtime
|
|
29
|
+
adapters, app-specific copy, and app-owned product features/use cases. Names
|
|
30
|
+
such as `operator-login`, portal activation, and customer credential control are
|
|
31
|
+
consumer-owned product flows, not package component names. Reusable UI structure
|
|
32
|
+
belongs in this package only after a second concrete consumer, a plan-approved
|
|
33
|
+
shared component, or a named validation slice proves the package boundary.
|
|
34
|
+
|
|
35
|
+
## Required App Setup
|
|
36
|
+
|
|
37
|
+
Import the package CSS once at the app root:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import "@nadicodeai/ui/globals.css";
|
|
41
|
+
import "@nadicodeai/design-system/css";
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
For Next.js App Router apps, put those imports in the root layout.
|
|
45
|
+
|
|
46
|
+
The consuming app still owns Tailwind/PostCSS configuration. This package does not install a PostCSS config.
|
|
47
|
+
|
|
48
|
+
## Imports
|
|
49
|
+
|
|
50
|
+
Prefer explicit component subpaths in app code:
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
import { Button } from "@nadicodeai/ui/components/button";
|
|
54
|
+
import { PageFrame } from "@nadicodeai/ui/components/page-frame";
|
|
55
|
+
import { Message } from "@nadicodeai/ui/components/ai-elements/message";
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Use barrels when they are more ergonomic:
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
import { Button, PageFrame } from "@nadicodeai/ui";
|
|
62
|
+
import { Message, PromptInput } from "@nadicodeai/ui/ai-elements";
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Product UI uses the same public component subpaths:
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
import { SettingsSection } from "@nadicodeai/ui/components/settings-section";
|
|
69
|
+
import { DashboardShell } from "@nadicodeai/ui/components/dashboard-shell";
|
|
70
|
+
import { AgentChat } from "@nadicodeai/ui/components/agent-chat";
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Current shipped product subpaths:
|
|
74
|
+
|
|
75
|
+
- `@nadicodeai/ui/components/agent-chat`
|
|
76
|
+
- `@nadicodeai/ui/components/agent-composer`
|
|
77
|
+
- `@nadicodeai/ui/components/agent-message`
|
|
78
|
+
- `@nadicodeai/ui/components/agent-thread`
|
|
79
|
+
- `@nadicodeai/ui/components/agent-tool-approval`
|
|
80
|
+
- `@nadicodeai/ui/components/artifact-panel`
|
|
81
|
+
- `@nadicodeai/ui/components/automation-section`
|
|
82
|
+
- `@nadicodeai/ui/components/dashboard-shell`
|
|
83
|
+
- `@nadicodeai/ui/components/desktop-shell`
|
|
84
|
+
- `@nadicodeai/ui/components/feedback-state`
|
|
85
|
+
- `@nadicodeai/ui/components/files-preview`
|
|
86
|
+
- `@nadicodeai/ui/components/installer-shell`
|
|
87
|
+
- `@nadicodeai/ui/components/plugin-slot-boundary`
|
|
88
|
+
- `@nadicodeai/ui/components/settings-section`
|
|
89
|
+
|
|
90
|
+
## Product Components And Migration
|
|
91
|
+
|
|
92
|
+
Product components are presentational. Use them for shared settings, shell,
|
|
93
|
+
installer, plugin-boundary, agent chat, artifact, file, diff, and redacted
|
|
94
|
+
terminal summary UI. Keep route state, server state, auth,
|
|
95
|
+
persistence, runtime adapters, permission decisions, analytics, and
|
|
96
|
+
product-specific copy in the consuming app.
|
|
97
|
+
|
|
98
|
+
Generic data tables, command palettes, and chart cards are app-owned shadcn
|
|
99
|
+
registry adaptations. Start from `@shadcn/data-table-demo`,
|
|
100
|
+
`@shadcn/command-dialog`, `@shadcn/chart`, or the relevant `@shadcn/chart-*`
|
|
101
|
+
block/example instead of importing a NadicodeAI product abstraction.
|
|
102
|
+
|
|
103
|
+
Recommended migration order:
|
|
104
|
+
|
|
105
|
+
1. Web admin or portal validation slice.
|
|
106
|
+
2. Installer and bootstrap flows.
|
|
107
|
+
3. Desktop shell and plugin boundary surfaces.
|
|
108
|
+
4. Desktop chat and runtime work surfaces.
|
|
109
|
+
5. TUI consumers through `docs/terminal-tui-semantics.md`.
|
|
110
|
+
|
|
111
|
+
Read `docs/migration/nadia-consumer-readiness.md` before migrating a consumer.
|
|
112
|
+
It lists the CSS imports, public subpaths, fixture redaction rules, and readiness
|
|
113
|
+
gates.
|
|
114
|
+
|
|
115
|
+
## Forms
|
|
116
|
+
|
|
117
|
+
Use the package's shadcn form stack as one model:
|
|
118
|
+
|
|
119
|
+
- Controls: `Input`, `Textarea`, `Select`, `Checkbox`, and similar primitives.
|
|
120
|
+
- Layout and accessible field structure: `FieldGroup`, `Field`, `FieldLabel`,
|
|
121
|
+
`FieldDescription`, and `FieldError`.
|
|
122
|
+
- React Hook Form integration: `Form`, `FormField`, `FormItem`, `FormControl`,
|
|
123
|
+
`FormLabel`, `FormDescription`, and `FormMessage`.
|
|
124
|
+
|
|
125
|
+
Do not introduce `FormInput`, `FormTextarea`, or other parallel form-control
|
|
126
|
+
families. Extend the canonical control or field primitive when a new size or
|
|
127
|
+
behavior is truly needed.
|
|
128
|
+
|
|
129
|
+
## Styling Rules
|
|
130
|
+
|
|
131
|
+
This package is token-only and dark-ready through semantic globals. The package
|
|
132
|
+
CSS owns `:root` and `.dark` remaps for shadcn roles plus UI-local product
|
|
133
|
+
aliases such as `--nc-app-surface`, `--nc-chat-tool-surface`, and
|
|
134
|
+
`--nc-terminal-bg`. Components consume those roles/aliases; they do not add
|
|
135
|
+
one-off dark styling locally.
|
|
136
|
+
|
|
137
|
+
Use semantic utilities:
|
|
138
|
+
|
|
139
|
+
```tsx
|
|
140
|
+
className="border border-border bg-background text-foreground"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Use UI-local aliases when a product role is needed:
|
|
144
|
+
|
|
145
|
+
```tsx
|
|
146
|
+
className="bg-[var(--nc-app-surface)] text-[var(--nc-app-text-primary)]"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Use brand tokens through Tailwind arbitrary values only when a semantic role or
|
|
150
|
+
UI alias is not precise enough:
|
|
151
|
+
|
|
152
|
+
```tsx
|
|
153
|
+
className="text-[var(--nc-link-deep)]"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Do not add:
|
|
157
|
+
|
|
158
|
+
- Tailwind `dark:` utilities
|
|
159
|
+
- `.dark` blocks outside package globals/theme files
|
|
160
|
+
- OS dark-mode branching
|
|
161
|
+
- raw `#hex`, `rgb()`, or `hsl()` values
|
|
162
|
+
- raw palette utilities like `text-blue-600`, `bg-zinc-950`, `text-white`, or `bg-black/50`
|
|
163
|
+
|
|
164
|
+
## shadcn And AI Elements
|
|
165
|
+
|
|
166
|
+
The package consumes shadcn and AI Elements as source components in this
|
|
167
|
+
repository, then publishes built JavaScript/declarations. Consumers should
|
|
168
|
+
normally install `@nadicodeai/ui` and import package exports.
|
|
169
|
+
|
|
170
|
+
Use shadcn MCP or the CLI for live discovery and install guidance during
|
|
171
|
+
maintenance. Do not maintain committed upstream registry inventories, generated
|
|
172
|
+
registry snapshots, or inventory update scripts in this package. The committed
|
|
173
|
+
truth is the source that has been reviewed, exported, documented, and tested.
|
|
174
|
+
|
|
175
|
+
For Codex-capable local runtimes, initialize shadcn MCP from `@nadicodeai/ui`
|
|
176
|
+
when MCP is available:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
npx shadcn@latest mcp init --client codex
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Use CLI fallbacks when MCP is unavailable or when you need copyable command
|
|
183
|
+
output:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npx shadcn@latest info --json
|
|
187
|
+
npx shadcn@latest search @shadcn -q "select" --json
|
|
188
|
+
npx shadcn@latest search @ai-elements -q "message" --json
|
|
189
|
+
npx shadcn@latest docs button select dialog --json
|
|
190
|
+
npx shadcn@latest view @shadcn/button
|
|
191
|
+
npx shadcn@latest add @shadcn/button --dry-run
|
|
192
|
+
npx shadcn@latest add @shadcn/button --diff src/components/button.tsx
|
|
193
|
+
npx shadcn@latest add @ai-elements/message --dry-run
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
`info --json` is the project-aware source for `tailwindVersion`, `base`,
|
|
197
|
+
`iconLibrary`, aliases, `resolvedPaths`, and configured registries. Current
|
|
198
|
+
package context should report Tailwind v4, radix base primitives, lucide icons,
|
|
199
|
+
source paths under `src/*`, and configured `@shadcn`/`@ai-elements` registry
|
|
200
|
+
access. Use `search` to find current registry items, `docs` to fetch component
|
|
201
|
+
documentation and example/API links, `view` to inspect item contents, and
|
|
202
|
+
`add --dry-run` or `add --diff` to preview source changes before editing.
|
|
203
|
+
|
|
204
|
+
When maintaining installed source:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
npx shadcn@latest info --json
|
|
208
|
+
npx shadcn@latest add <component> --dry-run
|
|
209
|
+
npx shadcn@latest add @ai-elements/all --dry-run
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
The package `components.json` must resolve aliases to `src/*`, not `dist/*`. Build output rewrites `@/` aliases to relative package imports.
|
|
213
|
+
|
|
214
|
+
Do not run shadcn `--overwrite` unless the maintainer explicitly asks for an upstream primitive refresh and the diff is reviewed.
|
|
215
|
+
|
|
216
|
+
## Verification
|
|
217
|
+
|
|
218
|
+
Before considering package work complete:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
npm run build -w @nadicodeai/ui
|
|
222
|
+
npm run test -w @nadicodeai/ui
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
For repo completion, run the root gate:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
npm run lint:design && npm run build && npm run test
|
|
229
|
+
```
|