@nadicodeai/ui 10.0.2 → 12.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 +39 -24
- package/README.md +58 -124
- package/dist/agent-orb.d.ts +1 -1
- package/dist/agent-orb.d.ts.map +1 -1
- package/dist/assets/brand/index.json +1 -1
- package/dist/components/action-menu.js +1 -1
- package/dist/components/agent-card.d.ts.map +1 -1
- package/dist/components/agent-card.js +2 -4
- package/dist/components/agent-orb.d.ts +11 -5
- package/dist/components/agent-orb.d.ts.map +1 -1
- package/dist/components/agent-orb.js +8 -6
- package/dist/components/alert.js +3 -3
- package/dist/components/badge.js +6 -6
- package/dist/components/brand-field.d.ts +2 -0
- package/dist/components/brand-field.d.ts.map +1 -1
- package/dist/components/brand-field.js +3 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +4 -5
- package/dist/components/carousel.js +2 -2
- package/dist/components/chart-bar-horizontal.js +1 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/context-menu.js +1 -1
- package/dist/components/diff-count.js +1 -1
- package/dist/components/dropdown-menu.js +3 -3
- package/dist/components/footer.d.ts +15 -9
- package/dist/components/footer.d.ts.map +1 -1
- package/dist/components/footer.js +6 -27
- package/dist/components/item.js +1 -1
- package/dist/components/kpi-card.js +2 -2
- package/dist/components/label-system.d.ts +1 -5
- package/dist/components/label-system.d.ts.map +1 -1
- package/dist/components/label-system.js +2 -6
- package/dist/components/menu-choice-row.js +1 -1
- package/dist/components/menubar.js +1 -1
- package/dist/components/object-workspace.js +1 -1
- package/dist/components/progress.js +1 -1
- package/dist/components/scope-switcher.d.ts +24 -0
- package/dist/components/scope-switcher.d.ts.map +1 -0
- package/dist/components/scope-switcher.js +34 -0
- package/dist/components/settings-section.d.ts +2 -1
- package/dist/components/settings-section.d.ts.map +1 -1
- package/dist/components/settings-section.js +2 -2
- package/dist/components/status-dot.js +1 -1
- package/dist/components/status-row.js +1 -1
- package/dist/components/table.d.ts.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.d.ts +11 -5
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +37 -5
- package/dist/components/tooltip.js +1 -1
- package/dist/components/trend-badge.d.ts.map +1 -1
- package/dist/components/trend-badge.js +1 -2
- package/dist/eslint/index.js +4 -0
- package/dist/eslint/rules/jsx-class-utility.js +1 -1
- package/dist/eslint/rules/no-shadcn-appearance-override.js +3 -3
- package/dist/eslint/rules/one-control-height.js +94 -0
- package/dist/eslint/rules/settings-section-description.js +45 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/agent-orb-motion.d.ts +1 -0
- package/dist/internal/agent-orb-motion.d.ts.map +1 -1
- package/dist/internal/agent-orb-motion.js +6 -3
- package/dist/internal/agent-orb.d.ts +10 -2
- package/dist/internal/agent-orb.d.ts.map +1 -1
- package/dist/internal/agent-orb.js +19 -9
- package/dist/internal/assistant-ui/attachment.js +4 -4
- package/dist/internal/assistant-ui/follow-up-suggestions.js +1 -1
- package/dist/internal/assistant-ui/markdown-text.js +4 -4
- package/dist/internal/assistant-ui/reasoning.js +2 -2
- package/dist/internal/assistant-ui/thread.d.ts.map +1 -1
- package/dist/internal/assistant-ui/thread.js +11 -9
- package/dist/internal/assistant-ui/tool-group.js +2 -2
- package/dist/styles/components.css +9 -5
- package/dist/styles/globals.css +43 -0
- package/package.json +3 -4
- package/dist/components/handoff-banner.d.ts +0 -9
- package/dist/components/handoff-banner.d.ts.map +0 -1
- package/dist/components/handoff-banner.js +0 -6
- package/docs/activity.md +0 -113
- package/docs/agent-orb.md +0 -168
- package/docs/component-classification.md +0 -45
- package/docs/consuming-cross-repo.md +0 -116
- package/docs/contract.md +0 -388
- package/docs/icon-assets.md +0 -106
- package/docs/migration/1.0.0.md +0 -75
- package/docs/migration/10.0.0.md +0 -144
- package/docs/migration/2.0.0.md +0 -69
- package/docs/migration/6.0.0.md +0 -30
- package/docs/migration/9.0.0.md +0 -35
- package/docs/migration/base-ui-migration.md +0 -62
- package/docs/model-identity.md +0 -18
- package/docs/product-compositions.md +0 -96
- package/docs/product-sections.md +0 -200
package/docs/product-sections.md
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
# Product Sections
|
|
2
|
-
|
|
3
|
-
U5 adds shared shell skeletons, plugin containment, installer states, and automation/settings sections. These components are presentational only. Consumers own routing, persistence, server actions, runtime adapters, permission decisions, retries, plugin trust, installer side effects, analytics, and product-specific page copy.
|
|
4
|
-
|
|
5
|
-
Import components through the existing component subpath after build:
|
|
6
|
-
|
|
7
|
-
```tsx
|
|
8
|
-
import { DashboardShell } from "@nadicodeai/ui/components/dashboard-shell"
|
|
9
|
-
import { PluginSlotBoundary } from "@nadicodeai/ui/components/plugin-slot-boundary"
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
Fixtures live in:
|
|
13
|
-
|
|
14
|
-
- [`../tests/guards/product-sections.test.ts`](../tests/guards/product-sections.test.ts)
|
|
15
|
-
- [`../tests/guards/product-sections-ssr.test.ts`](../tests/guards/product-sections-ssr.test.ts)
|
|
16
|
-
|
|
17
|
-
## Boundaries
|
|
18
|
-
|
|
19
|
-
| Component | Package owns | Consumer owns |
|
|
20
|
-
| --- | --- | --- |
|
|
21
|
-
| `DashboardShell` | Responsive slot layout, sidebar/header/content/inspector regions, mobile sidebar trigger, focusable shell structure, overflow containment. | Route state, nav definitions, page data, permission filtering, tenant/workspace context, page-specific copy. |
|
|
22
|
-
| `DesktopAppShell` | Titlebar/statusbar framing, activity rail, primary/secondary/inspector panes, resizable panel composition, overflow containment. | Desktop runtime, window controls, route selection, IPC, command execution, local persistence. |
|
|
23
|
-
| `InstallerShell` | Welcome/progress/success/failure presentation, progress display, step list, feedback-state composition. | Installer state machine, platform checks, downloads, retries, recovery behavior, logs. |
|
|
24
|
-
| `PluginSlotBoundary` | Visible plugin content boundary, permission badges, warning/error alerts, contained overflow, redaction guidance. | Plugin runtime, trust decisions, install/remove actions, grants, sandbox policy, secrets. |
|
|
25
|
-
| `AutomationSection` | Automation row layout, status badges, enable switch placement, empty state. | Automation definitions, scheduling, execution, persistence, permission rules. |
|
|
26
|
-
| `ProviderSettings` | Provider setting rows built on `SettingsSection` and `SettingsField`. | Provider list, validation, saving, rate limits, billing or policy behavior. |
|
|
27
|
-
| `McpServerSettings` | MCP server rows, status badges, enable switch placement, field semantics. | Server discovery, connection checks, grants, persistence, tool execution. |
|
|
28
|
-
| `EnvironmentVariablesSettings` | Variable name rows and redacted state display. | Secret storage, reveal controls, value validation, rotation, syncing. |
|
|
29
|
-
|
|
30
|
-
## DashboardShell
|
|
31
|
-
|
|
32
|
-
Use `DashboardShell` when a web/admin surface needs shared app chrome without the package owning navigation.
|
|
33
|
-
|
|
34
|
-
```tsx
|
|
35
|
-
<DashboardShell
|
|
36
|
-
sidebar={<WorkspaceNav />}
|
|
37
|
-
sidebarHeader={<WorkspaceSwitcher />}
|
|
38
|
-
sidebarFooter={<AccountMenu />}
|
|
39
|
-
header={<PageHeading />}
|
|
40
|
-
headerActions={<RunAction />}
|
|
41
|
-
inspector={<PermissionSummary />}
|
|
42
|
-
>
|
|
43
|
-
<AgentQueue />
|
|
44
|
-
</DashboardShell>
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
| Prop | Purpose |
|
|
48
|
-
| --- | --- |
|
|
49
|
-
| `sidebar` | Sidebar content slot. Consumers pass nav items or any compatible sidebar content. |
|
|
50
|
-
| `header` / `headerActions` | Top chrome slots. The package adds the mobile navigation trigger. |
|
|
51
|
-
| `children` | Main content region. |
|
|
52
|
-
| `inspector` | Optional right-side inspector that stacks below content on smaller screens. |
|
|
53
|
-
| `sidebarHeader` / `sidebarFooter` | Optional sidebar framing slots. |
|
|
54
|
-
| `sidebarSide` / `sidebarVariant` / `sidebarCollapsible` | Pass-through shell options over the existing sidebar primitive. |
|
|
55
|
-
|
|
56
|
-
Accessibility: the shell exposes labeled content and inspector regions. The mobile trigger has an accessible label and the underlying sidebar primitive preserves keyboard access and collapsed labels.
|
|
57
|
-
|
|
58
|
-
## DesktopAppShell
|
|
59
|
-
|
|
60
|
-
Use `DesktopAppShell` for desktop-shaped layouts where the consumer owns runtime behavior.
|
|
61
|
-
|
|
62
|
-
```tsx
|
|
63
|
-
<DesktopAppShell
|
|
64
|
-
title="Nadia desktop"
|
|
65
|
-
activityRail={<ActivityButtons />}
|
|
66
|
-
secondaryPane={<RunContext />}
|
|
67
|
-
inspectorRail={<Inspector />}
|
|
68
|
-
statusbar={<StatusLine />}
|
|
69
|
-
>
|
|
70
|
-
<Workspace />
|
|
71
|
-
</DesktopAppShell>
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
| Prop | Purpose |
|
|
75
|
-
| --- | --- |
|
|
76
|
-
| `title` / `titlebar` / `titlebarActions` | Titlebar slots. `titlebar` can replace the default title row. |
|
|
77
|
-
| `activityRail` | Left rail slot for mode buttons or app tools. |
|
|
78
|
-
| `children` | Primary pane. |
|
|
79
|
-
| `secondaryPane` | Optional resizable middle pane. |
|
|
80
|
-
| `inspectorRail` | Optional resizable inspector pane. |
|
|
81
|
-
| `statusbar` | Bottom status slot. |
|
|
82
|
-
| `primaryPaneSize` / `secondaryPaneSize` / `inspectorPaneSize` | Initial resizable panel sizes. |
|
|
83
|
-
|
|
84
|
-
The component does not assume browser routing, desktop IPC, or command execution.
|
|
85
|
-
|
|
86
|
-
## InstallerShell
|
|
87
|
-
|
|
88
|
-
Use `InstallerShell` for installer or setup flows with an app-owned state machine.
|
|
89
|
-
|
|
90
|
-
```tsx
|
|
91
|
-
<InstallerShell
|
|
92
|
-
state="progress"
|
|
93
|
-
title="Installing"
|
|
94
|
-
description="Preparing the local workspace."
|
|
95
|
-
progressValue={62}
|
|
96
|
-
steps={[
|
|
97
|
-
{ id: "package", label: "Prepare package", status: "complete" },
|
|
98
|
-
{ id: "settings", label: "Apply settings", status: "running" },
|
|
99
|
-
]}
|
|
100
|
-
actions={<CancelButton />}
|
|
101
|
-
/>
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
Supported states: `welcome`, `progress`, `success`, and `failure`.
|
|
105
|
-
|
|
106
|
-
Step statuses: `pending`, `running`, `complete`, and `error`.
|
|
107
|
-
|
|
108
|
-
The shell uses `FeedbackState` for the primary state message. Consumers provide the installer state, recovery actions, and side effects.
|
|
109
|
-
|
|
110
|
-
## PluginSlotBoundary
|
|
111
|
-
|
|
112
|
-
Use `PluginSlotBoundary` around extension or plugin-rendered content. It makes the plugin boundary visible and keeps overflow contained.
|
|
113
|
-
|
|
114
|
-
```tsx
|
|
115
|
-
<PluginSlotBoundary
|
|
116
|
-
title="Planner plugin"
|
|
117
|
-
status="warning"
|
|
118
|
-
permissions={[
|
|
119
|
-
{ id: "files", label: "Read files", level: "review" },
|
|
120
|
-
{ id: "network", label: "Network blocked", level: "denied" },
|
|
121
|
-
]}
|
|
122
|
-
warning="Review plugin scope before granting access."
|
|
123
|
-
>
|
|
124
|
-
<PluginPreview />
|
|
125
|
-
</PluginSlotBoundary>
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
Supported statuses: `ready`, `warning`, `error`, and `disabled`.
|
|
129
|
-
|
|
130
|
-
Permission levels: `safe`, `review`, `risk`, and `denied`.
|
|
131
|
-
|
|
132
|
-
Redaction rule: package fixtures and examples may show synthetic names, variable names, and redacted placeholders only. They must not include secret values, environment variable values, raw terminal output, user memory, or hidden reasoning.
|
|
133
|
-
|
|
134
|
-
## AutomationSection
|
|
135
|
-
|
|
136
|
-
Use `AutomationSection` for a list of app-owned automations.
|
|
137
|
-
|
|
138
|
-
```tsx
|
|
139
|
-
<AutomationSection
|
|
140
|
-
title="Automation runs"
|
|
141
|
-
automations={[
|
|
142
|
-
{
|
|
143
|
-
id: "briefing",
|
|
144
|
-
title: "Briefing preparation",
|
|
145
|
-
description: "Drafts a review packet.",
|
|
146
|
-
status: "running",
|
|
147
|
-
enabled: true,
|
|
148
|
-
toggleLabel: "Toggle briefing preparation",
|
|
149
|
-
},
|
|
150
|
-
]}
|
|
151
|
-
onAutomationEnabledChange={setAutomationEnabled}
|
|
152
|
-
/>
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
Supported statuses: `ready`, `running`, `paused`, `error`, and `disabled`.
|
|
156
|
-
|
|
157
|
-
The callback reports a requested toggle. It does not save, schedule, retry, or execute anything.
|
|
158
|
-
|
|
159
|
-
## Settings Patterns
|
|
160
|
-
|
|
161
|
-
`ProviderSettings`, `McpServerSettings`, and `EnvironmentVariablesSettings` compose `SettingsSection` and `SettingsField` so settings rows share label, description, error, invalid, disabled, and control alignment behavior.
|
|
162
|
-
|
|
163
|
-
```tsx
|
|
164
|
-
<ProviderSettings
|
|
165
|
-
fields={[
|
|
166
|
-
{
|
|
167
|
-
id: "provider",
|
|
168
|
-
label: "Provider",
|
|
169
|
-
description: "Displayed provider label.",
|
|
170
|
-
value: "Nadia synthetic provider",
|
|
171
|
-
},
|
|
172
|
-
]}
|
|
173
|
-
/>
|
|
174
|
-
|
|
175
|
-
<McpServerSettings
|
|
176
|
-
servers={[
|
|
177
|
-
{
|
|
178
|
-
id: "docs",
|
|
179
|
-
label: "Docs server",
|
|
180
|
-
description: "Read-only documentation context.",
|
|
181
|
-
status: "connected",
|
|
182
|
-
enabled: true,
|
|
183
|
-
},
|
|
184
|
-
]}
|
|
185
|
-
/>
|
|
186
|
-
|
|
187
|
-
<EnvironmentVariablesSettings
|
|
188
|
-
variables={[
|
|
189
|
-
{
|
|
190
|
-
id: "model-key",
|
|
191
|
-
name: "NADIA_MODEL_KEY",
|
|
192
|
-
description: "Configured by the consuming app.",
|
|
193
|
-
state: "configured",
|
|
194
|
-
required: true,
|
|
195
|
-
},
|
|
196
|
-
]}
|
|
197
|
-
/>
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
Environment variable rows intentionally render names and redacted state only. They do not accept or display actual values.
|