@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.
Files changed (96) hide show
  1. package/AGENTS.md +39 -24
  2. package/README.md +58 -124
  3. package/dist/agent-orb.d.ts +1 -1
  4. package/dist/agent-orb.d.ts.map +1 -1
  5. package/dist/assets/brand/index.json +1 -1
  6. package/dist/components/action-menu.js +1 -1
  7. package/dist/components/agent-card.d.ts.map +1 -1
  8. package/dist/components/agent-card.js +2 -4
  9. package/dist/components/agent-orb.d.ts +11 -5
  10. package/dist/components/agent-orb.d.ts.map +1 -1
  11. package/dist/components/agent-orb.js +8 -6
  12. package/dist/components/alert.js +3 -3
  13. package/dist/components/badge.js +6 -6
  14. package/dist/components/brand-field.d.ts +2 -0
  15. package/dist/components/brand-field.d.ts.map +1 -1
  16. package/dist/components/brand-field.js +3 -1
  17. package/dist/components/button.d.ts +1 -1
  18. package/dist/components/button.d.ts.map +1 -1
  19. package/dist/components/button.js +4 -5
  20. package/dist/components/carousel.js +2 -2
  21. package/dist/components/chart-bar-horizontal.js +1 -1
  22. package/dist/components/chart.js +1 -1
  23. package/dist/components/command.js +1 -1
  24. package/dist/components/context-menu.js +1 -1
  25. package/dist/components/diff-count.js +1 -1
  26. package/dist/components/dropdown-menu.js +3 -3
  27. package/dist/components/footer.d.ts +15 -9
  28. package/dist/components/footer.d.ts.map +1 -1
  29. package/dist/components/footer.js +6 -27
  30. package/dist/components/item.js +1 -1
  31. package/dist/components/kpi-card.js +2 -2
  32. package/dist/components/label-system.d.ts +1 -5
  33. package/dist/components/label-system.d.ts.map +1 -1
  34. package/dist/components/label-system.js +2 -6
  35. package/dist/components/menu-choice-row.js +1 -1
  36. package/dist/components/menubar.js +1 -1
  37. package/dist/components/object-workspace.js +1 -1
  38. package/dist/components/progress.js +1 -1
  39. package/dist/components/scope-switcher.d.ts +24 -0
  40. package/dist/components/scope-switcher.d.ts.map +1 -0
  41. package/dist/components/scope-switcher.js +34 -0
  42. package/dist/components/settings-section.d.ts +2 -1
  43. package/dist/components/settings-section.d.ts.map +1 -1
  44. package/dist/components/settings-section.js +2 -2
  45. package/dist/components/status-dot.js +1 -1
  46. package/dist/components/status-row.js +1 -1
  47. package/dist/components/table.d.ts.map +1 -1
  48. package/dist/components/table.js +1 -1
  49. package/dist/components/tabs.d.ts +11 -5
  50. package/dist/components/tabs.d.ts.map +1 -1
  51. package/dist/components/tabs.js +37 -5
  52. package/dist/components/tooltip.js +1 -1
  53. package/dist/components/trend-badge.d.ts.map +1 -1
  54. package/dist/components/trend-badge.js +1 -2
  55. package/dist/eslint/index.js +4 -0
  56. package/dist/eslint/rules/jsx-class-utility.js +1 -1
  57. package/dist/eslint/rules/no-shadcn-appearance-override.js +3 -3
  58. package/dist/eslint/rules/one-control-height.js +94 -0
  59. package/dist/eslint/rules/settings-section-description.js +45 -0
  60. package/dist/index.d.ts +1 -1
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +1 -1
  63. package/dist/internal/agent-orb-motion.d.ts +1 -0
  64. package/dist/internal/agent-orb-motion.d.ts.map +1 -1
  65. package/dist/internal/agent-orb-motion.js +6 -3
  66. package/dist/internal/agent-orb.d.ts +10 -2
  67. package/dist/internal/agent-orb.d.ts.map +1 -1
  68. package/dist/internal/agent-orb.js +19 -9
  69. package/dist/internal/assistant-ui/attachment.js +4 -4
  70. package/dist/internal/assistant-ui/follow-up-suggestions.js +1 -1
  71. package/dist/internal/assistant-ui/markdown-text.js +4 -4
  72. package/dist/internal/assistant-ui/reasoning.js +2 -2
  73. package/dist/internal/assistant-ui/thread.d.ts.map +1 -1
  74. package/dist/internal/assistant-ui/thread.js +11 -9
  75. package/dist/internal/assistant-ui/tool-group.js +2 -2
  76. package/dist/styles/components.css +9 -5
  77. package/dist/styles/globals.css +43 -0
  78. package/package.json +3 -4
  79. package/dist/components/handoff-banner.d.ts +0 -9
  80. package/dist/components/handoff-banner.d.ts.map +0 -1
  81. package/dist/components/handoff-banner.js +0 -6
  82. package/docs/activity.md +0 -113
  83. package/docs/agent-orb.md +0 -168
  84. package/docs/component-classification.md +0 -45
  85. package/docs/consuming-cross-repo.md +0 -116
  86. package/docs/contract.md +0 -388
  87. package/docs/icon-assets.md +0 -106
  88. package/docs/migration/1.0.0.md +0 -75
  89. package/docs/migration/10.0.0.md +0 -144
  90. package/docs/migration/2.0.0.md +0 -69
  91. package/docs/migration/6.0.0.md +0 -30
  92. package/docs/migration/9.0.0.md +0 -35
  93. package/docs/migration/base-ui-migration.md +0 -62
  94. package/docs/model-identity.md +0 -18
  95. package/docs/product-compositions.md +0 -96
  96. package/docs/product-sections.md +0 -200
@@ -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.