@noodleseed/one 0.21.0 → 0.22.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 (41) hide show
  1. package/dist/react.d.ts +2 -2
  2. package/dist/react.d.ts.map +1 -1
  3. package/dist/react.js +1 -1
  4. package/dist/react.js.map +1 -1
  5. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.d.ts.map +1 -1
  6. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js +2 -1
  7. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js.map +1 -1
  8. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  9. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  10. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  11. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  12. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -2
  13. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  14. package/node_modules/@noodle-borg/authoring/dist/index.js +1 -1
  15. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  16. package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts +9 -1
  17. package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts.map +1 -1
  18. package/node_modules/@noodle-borg/authoring/dist/react/bridge.js +11 -1
  19. package/node_modules/@noodle-borg/authoring/dist/react/bridge.js.map +1 -1
  20. package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +4 -2
  21. package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts.map +1 -1
  22. package/node_modules/@noodle-borg/authoring/dist/react/components.js +24 -4
  23. package/node_modules/@noodle-borg/authoring/dist/react/components.js.map +1 -1
  24. package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts +2 -0
  25. package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts.map +1 -1
  26. package/node_modules/@noodle-borg/authoring/dist/react/hooks.js +11 -0
  27. package/node_modules/@noodle-borg/authoring/dist/react/hooks.js.map +1 -1
  28. package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts +3 -1
  29. package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts.map +1 -1
  30. package/node_modules/@noodle-borg/authoring/dist/react/index.js +2 -1
  31. package/node_modules/@noodle-borg/authoring/dist/react/index.js.map +1 -1
  32. package/node_modules/@noodle-borg/authoring/dist/react/native-components.d.ts +1159 -0
  33. package/node_modules/@noodle-borg/authoring/dist/react/native-components.d.ts.map +1 -0
  34. package/node_modules/@noodle-borg/authoring/dist/react/native-components.js +66 -0
  35. package/node_modules/@noodle-borg/authoring/dist/react/native-components.js.map +1 -0
  36. package/node_modules/@noodle-borg/authoring/dist/react.d.ts +2 -2
  37. package/node_modules/@noodle-borg/authoring/dist/react.d.ts.map +1 -1
  38. package/node_modules/@noodle-borg/authoring/dist/react.js +1 -1
  39. package/node_modules/@noodle-borg/authoring/dist/react.js.map +1 -1
  40. package/package.json +6 -4
  41. package/react/styles.css +346 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-components.d.ts","sourceRoot":"","sources":["../../src/react/native-components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { createElement, } from 'react';
2
+ import { ActionBar, SubmitButton } from './components.js';
3
+ import { useRequestDisplayMode } from './hooks.js';
4
+ export function InlineCard({ title, description, media, primaryAction, secondaryAction, children, className, ...props }) {
5
+ return createElement('article', { ...props, className: join('nsr-inline-card', className) }, media === undefined ? null : createElement('div', { className: 'nsr-inline-media' }, media), title === undefined && description === undefined
6
+ ? null
7
+ : createElement('header', { className: 'nsr-inline-header' }, title === undefined
8
+ ? null
9
+ : createElement('h2', { className: 'nsr-inline-title' }, title), description === undefined
10
+ ? null
11
+ : createElement('p', { className: 'nsr-inline-description' }, description)), children === undefined
12
+ ? null
13
+ : createElement('div', { className: 'nsr-inline-body' }, children), primaryAction === undefined && secondaryAction === undefined
14
+ ? null
15
+ : createElement(ActionBar, null, primaryAction, secondaryAction));
16
+ }
17
+ export function InlineList({ items, className, ...props }) {
18
+ return createElement('ul', { ...props, className: join('nsr-inline-list', className) }, items.map((item) => createElement('li', { key: item.id, className: 'nsr-inline-list-item' }, createElement('span', { className: 'nsr-inline-list-copy' }, createElement('strong', null, item.title), item.description === undefined ? null : createElement('small', null, item.description)), item.meta === undefined
19
+ ? null
20
+ : createElement('span', { className: 'nsr-inline-meta' }, item.meta), item.action === undefined
21
+ ? null
22
+ : createElement('span', { className: 'nsr-inline-action' }, item.action))));
23
+ }
24
+ export function InlineCarousel({ items, maxItems = 8, children, className, ...props }) {
25
+ return createElement('div', { ...props, className: join('nsr-inline-carousel', className) }, items
26
+ .slice(0, maxItems)
27
+ .map((item, index) => createElement('div', { key: itemKey(item, index), className: 'nsr-inline-carousel-item' }, children(item, index))));
28
+ }
29
+ export function FullscreenShell({ title, subtitle, toolbar, footer, children, className, ...props }) {
30
+ return createElement('main', {
31
+ ...props,
32
+ className: join('nsr-fullscreen-shell', className),
33
+ 'data-display-mode': 'fullscreen',
34
+ }, title === undefined && subtitle === undefined && toolbar === undefined
35
+ ? null
36
+ : createElement('header', { className: 'nsr-fullscreen-header' }, createElement('div', { className: 'nsr-title-block' }, title === undefined ? null : createElement('h1', { className: 'nsr-title' }, title), subtitle === undefined
37
+ ? null
38
+ : createElement('p', { className: 'nsr-subtitle' }, subtitle)), toolbar === undefined
39
+ ? null
40
+ : createElement('div', { className: 'nsr-toolbar' }, toolbar)), createElement('section', { className: 'nsr-fullscreen-body' }, children), footer === undefined ? null : createElement('footer', { className: 'nsr-footer' }, footer));
41
+ }
42
+ export function ExpandButton({ mode = 'fullscreen', pendingLabel, children, disabled, ...props }) {
43
+ const requestDisplayMode = useRequestDisplayMode();
44
+ return createElement(SubmitButton, {
45
+ ...props,
46
+ disabled,
47
+ pendingLabel,
48
+ onClick: (event) => {
49
+ props.onClick?.(event);
50
+ void requestDisplayMode(mode).catch(() => undefined);
51
+ },
52
+ }, children ?? (mode === 'fullscreen' ? 'Expand' : 'Change view'));
53
+ }
54
+ function join(...parts) {
55
+ const value = parts.filter(Boolean).join(' ');
56
+ return value.length === 0 ? undefined : value;
57
+ }
58
+ function itemKey(item, index) {
59
+ if (item !== null && typeof item === 'object' && 'id' in item) {
60
+ const id = item.id;
61
+ if (typeof id === 'string' || typeof id === 'number')
62
+ return String(id);
63
+ }
64
+ return String(index);
65
+ }
66
+ //# sourceMappingURL=native-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-components.js","sourceRoot":"","sources":["../../src/react/native-components.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export type { AppFlow, AppFlowConfig, AppFlowOverlay, AppFlowSnapshot, AppFlowViewParams, CallToolState, GeneratedReactHelpers, HandoffController, HandoffState, LayoutState, StoreHookResult, ToolResult, ToolStatus, } from './react/index.js';
2
- export { ActionBar, AppShell, AsyncBoundary, ChoiceGroup, createViewStore, DataCard, DataList, EmptyState, ErrorState, Field, generateHelpers, HandoffButton, LoadingState, Overlay, QuantityStepper, ShellHeader, ShellNav, StatusBadge, SubmitButton, useAppFlow, useCallTool, useHandoff, useLayout, useOpenExternal, useSendFollowUpMessage, useToolInfo, useViewState, View, ViewStack, } from './react/index.js';
1
+ export type { AppFlow, AppFlowConfig, AppFlowOverlay, AppFlowSnapshot, AppFlowViewParams, CallToolState, ExpandButtonProps, FullscreenShellProps, GeneratedReactHelpers, HandoffController, HandoffState, InlineCardProps, InlineCarouselProps, InlineListItem, InlineListProps, LayoutState, StoreHookResult, ToolResult, ToolStatus, } from './react/index.js';
2
+ export { ActionBar, AppShell, AsyncBoundary, ChoiceGroup, createViewStore, DataCard, DataList, EmptyState, ErrorState, ExpandButton, Field, FullscreenShell, generateHelpers, HandoffButton, InlineCard, InlineCarousel, InlineList, LoadingState, Overlay, QuantityStepper, ShellHeader, ShellNav, StatusBadge, SubmitButton, useAppFlow, useCallTool, useHandoff, useLayout, useOpenExternal, useRequestDisplayMode, useSendFollowUpMessage, useToolInfo, useViewState, View, ViewStack, } from './react/index.js';
3
3
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,aAAa,EACb,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,KAAK,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,OAAO,EACP,eAAe,EACf,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,aAAa,EACb,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,KAAK,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,MAAM,kBAAkB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { ActionBar, AppShell, AsyncBoundary, ChoiceGroup, createViewStore, DataCard, DataList, EmptyState, ErrorState, Field, generateHelpers, HandoffButton, LoadingState, Overlay, QuantityStepper, ShellHeader, ShellNav, StatusBadge, SubmitButton, useAppFlow, useCallTool, useHandoff, useLayout, useOpenExternal, useSendFollowUpMessage, useToolInfo, useViewState, View, ViewStack, } from './react/index.js';
1
+ export { ActionBar, AppShell, AsyncBoundary, ChoiceGroup, createViewStore, DataCard, DataList, EmptyState, ErrorState, ExpandButton, Field, FullscreenShell, generateHelpers, HandoffButton, InlineCard, InlineCarousel, InlineList, LoadingState, Overlay, QuantityStepper, ShellHeader, ShellNav, StatusBadge, SubmitButton, useAppFlow, useCallTool, useHandoff, useLayout, useOpenExternal, useRequestDisplayMode, useSendFollowUpMessage, useToolInfo, useViewState, View, ViewStack, } from './react/index.js';
2
2
  //# sourceMappingURL=react.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,KAAK,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,OAAO,EACP,eAAe,EACf,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAqBA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,YAAY,EACZ,KAAK,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,MAAM,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodleseed/one",
3
- "version": "0.21.0",
3
+ "version": "0.22.0",
4
4
  "private": false,
5
5
  "description": "Noodle CLI by Noodle Seed — author, run, and deploy declarative MCP servers.",
6
6
  "license": "Apache-2.0",
@@ -19,7 +19,8 @@
19
19
  "./react": {
20
20
  "types": "./dist/react.d.ts",
21
21
  "import": "./dist/react.js"
22
- }
22
+ },
23
+ "./react/styles.css": "./react/styles.css"
23
24
  },
24
25
  "bin": {
25
26
  "noodle": "dist/bin.js"
@@ -32,7 +33,8 @@
32
33
  "access": "public"
33
34
  },
34
35
  "files": [
35
- "dist"
36
+ "dist",
37
+ "react"
36
38
  ],
37
39
  "bundleDependencies": [
38
40
  "@hono/node-server",
@@ -156,5 +158,5 @@
156
158
  "@types/node": "24.13.1"
157
159
  },
158
160
  "optionalDependencies": {},
159
- "gitHead": "8a0f2990ea7015b447864e4239e0758f4cf0ca1d"
161
+ "gitHead": "d6a7d530b6c6ef4205f34d617840fce83b9e815b"
160
162
  }
@@ -0,0 +1,346 @@
1
+ @layer noodle-react-reset, noodle-react-components;
2
+
3
+ @layer noodle-react-reset {
4
+ :where(.nsr-shell, .nsr-fullscreen-shell, .nsr-inline-card) {
5
+ box-sizing: border-box;
6
+ color: var(--text-primary, var(--foreground, #171717));
7
+ font-family: var(
8
+ --font-sans,
9
+ ui-sans-serif,
10
+ system-ui,
11
+ -apple-system,
12
+ BlinkMacSystemFont,
13
+ "Segoe UI",
14
+ sans-serif
15
+ );
16
+ line-height: 1.45;
17
+ }
18
+
19
+ :where(.nsr-shell *, .nsr-fullscreen-shell *, .nsr-inline-card *) {
20
+ box-sizing: border-box;
21
+ }
22
+
23
+ :where(.nsr-shell button, .nsr-fullscreen-shell button, .nsr-inline-card button) {
24
+ font: inherit;
25
+ }
26
+ }
27
+
28
+ @layer noodle-react-components {
29
+ .nsr-shell {
30
+ display: grid;
31
+ gap: 12px;
32
+ width: 100%;
33
+ min-width: 0;
34
+ }
35
+
36
+ .nsr-shell-inline,
37
+ .nsr-shell-pip {
38
+ max-width: 760px;
39
+ }
40
+
41
+ .nsr-shell-fullscreen,
42
+ .nsr-fullscreen-shell {
43
+ min-height: 100dvh;
44
+ background: var(--canvas, var(--background, transparent));
45
+ }
46
+
47
+ .nsr-shell-surface,
48
+ .nsr-card,
49
+ .nsr-inline-card {
50
+ width: 100%;
51
+ min-width: 0;
52
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
53
+ border-radius: 8px;
54
+ background: var(--surface-primary, var(--background, #ffffff));
55
+ }
56
+
57
+ .nsr-card,
58
+ .nsr-shell-surface,
59
+ .nsr-inline-card {
60
+ padding: 14px;
61
+ }
62
+
63
+ .nsr-card-wide {
64
+ display: grid;
65
+ gap: 14px;
66
+ }
67
+
68
+ .nsr-shell-fullscreen .nsr-shell-surface,
69
+ .nsr-fullscreen-shell {
70
+ border: 0;
71
+ border-radius: 0;
72
+ padding: 0;
73
+ }
74
+
75
+ .nsr-header,
76
+ .nsr-fullscreen-header,
77
+ .nsr-inline-header {
78
+ display: flex;
79
+ align-items: flex-start;
80
+ gap: 10px;
81
+ min-width: 0;
82
+ }
83
+
84
+ .nsr-fullscreen-header {
85
+ justify-content: space-between;
86
+ padding: 14px 16px;
87
+ border-bottom: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
88
+ }
89
+
90
+ .nsr-title-block,
91
+ .nsr-inline-list-copy {
92
+ display: grid;
93
+ gap: 2px;
94
+ min-width: 0;
95
+ }
96
+
97
+ .nsr-title,
98
+ .nsr-inline-title {
99
+ margin: 0;
100
+ overflow-wrap: anywhere;
101
+ color: var(--text-primary, #171717);
102
+ font-size: 1rem;
103
+ font-weight: 650;
104
+ letter-spacing: 0;
105
+ line-height: 1.25;
106
+ }
107
+
108
+ .nsr-subtitle,
109
+ .nsr-inline-description,
110
+ .nsr-inline-list-copy small,
111
+ .nsr-field-detail {
112
+ margin: 0;
113
+ color: var(--text-secondary, #5f6368);
114
+ font-size: 0.875rem;
115
+ }
116
+
117
+ .nsr-icon,
118
+ .nsr-chip,
119
+ .nsr-badge {
120
+ display: inline-flex;
121
+ align-items: center;
122
+ min-height: 24px;
123
+ border-radius: 999px;
124
+ white-space: nowrap;
125
+ }
126
+
127
+ .nsr-chip,
128
+ .nsr-badge {
129
+ padding: 2px 8px;
130
+ background: var(--surface-secondary, #f5f5f5);
131
+ color: var(--text-secondary, #5f6368);
132
+ font-size: 0.8125rem;
133
+ font-weight: 550;
134
+ }
135
+
136
+ .nsr-badge-success {
137
+ background: color-mix(in srgb, #16833a 12%, transparent);
138
+ color: var(--success, #126b30);
139
+ }
140
+
141
+ .nsr-badge-warning {
142
+ background: color-mix(in srgb, #b76e00 14%, transparent);
143
+ color: var(--warning, #8a5200);
144
+ }
145
+
146
+ .nsr-badge-danger {
147
+ background: color-mix(in srgb, #d1242f 12%, transparent);
148
+ color: var(--danger, #b4232c);
149
+ }
150
+
151
+ .nsr-badge-info {
152
+ background: color-mix(in srgb, #2563eb 10%, transparent);
153
+ color: var(--accent, #2454d6);
154
+ }
155
+
156
+ .nsr-tabs,
157
+ .nsr-actions,
158
+ .nsr-toolbar {
159
+ display: flex;
160
+ flex-wrap: wrap;
161
+ gap: 8px;
162
+ align-items: center;
163
+ }
164
+
165
+ .nsr-tab,
166
+ .nsr-actions button,
167
+ .nsr-toolbar button,
168
+ .nsr-stepper button,
169
+ .nsr-inline-action button {
170
+ min-height: 32px;
171
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
172
+ border-radius: 8px;
173
+ background: var(--surface-primary, #ffffff);
174
+ color: inherit;
175
+ cursor: pointer;
176
+ }
177
+
178
+ .nsr-tab,
179
+ .nsr-actions button,
180
+ .nsr-toolbar button {
181
+ padding: 6px 10px;
182
+ }
183
+
184
+ .nsr-tab[aria-current="step"],
185
+ .nsr-actions button:first-child,
186
+ .nsr-toolbar button:first-child {
187
+ border-color: var(--accent, #2454d6);
188
+ background: color-mix(in srgb, var(--accent, #2454d6) 10%, transparent);
189
+ }
190
+
191
+ .nsr-view-stack,
192
+ .nsr-view,
193
+ .nsr-async,
194
+ .nsr-inline-body,
195
+ .nsr-data-list {
196
+ display: grid;
197
+ gap: 10px;
198
+ min-width: 0;
199
+ }
200
+
201
+ .nsr-inline-card {
202
+ display: grid;
203
+ gap: 12px;
204
+ max-width: 760px;
205
+ }
206
+
207
+ .nsr-inline-media {
208
+ overflow: hidden;
209
+ border-radius: 6px;
210
+ }
211
+
212
+ .nsr-inline-list {
213
+ display: grid;
214
+ gap: 0;
215
+ padding: 0;
216
+ margin: 0;
217
+ list-style: none;
218
+ }
219
+
220
+ .nsr-inline-list-item {
221
+ display: grid;
222
+ grid-template-columns: minmax(0, 1fr) auto auto;
223
+ gap: 10px;
224
+ align-items: center;
225
+ padding: 9px 0;
226
+ border-top: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 10%, transparent));
227
+ }
228
+
229
+ .nsr-inline-list-item:first-child {
230
+ border-top: 0;
231
+ }
232
+
233
+ .nsr-inline-meta {
234
+ color: var(--text-secondary, #5f6368);
235
+ font-size: 0.875rem;
236
+ }
237
+
238
+ .nsr-inline-carousel {
239
+ display: grid;
240
+ grid-auto-columns: minmax(136px, 180px);
241
+ grid-auto-flow: column;
242
+ gap: 10px;
243
+ max-width: 100%;
244
+ overflow-x: auto;
245
+ padding-bottom: 2px;
246
+ scrollbar-width: thin;
247
+ }
248
+
249
+ .nsr-data-card {
250
+ min-width: 0;
251
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
252
+ border-radius: 8px;
253
+ background: var(--surface-primary, #ffffff);
254
+ padding: 10px;
255
+ }
256
+
257
+ .nsr-fullscreen-body {
258
+ display: grid;
259
+ gap: 12px;
260
+ min-width: 0;
261
+ padding: 16px;
262
+ }
263
+
264
+ .nsr-footer {
265
+ color: var(--text-secondary, #5f6368);
266
+ font-size: 0.875rem;
267
+ }
268
+
269
+ .nsr-field {
270
+ display: grid;
271
+ gap: 5px;
272
+ }
273
+
274
+ .nsr-field-label {
275
+ font-size: 0.875rem;
276
+ font-weight: 600;
277
+ }
278
+
279
+ .nsr-stepper {
280
+ display: inline-grid;
281
+ grid-template-columns: 32px minmax(32px, auto) 32px;
282
+ align-items: center;
283
+ width: max-content;
284
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
285
+ border-radius: 8px;
286
+ overflow: hidden;
287
+ }
288
+
289
+ .nsr-stepper button {
290
+ border: 0;
291
+ border-radius: 0;
292
+ }
293
+
294
+ .nsr-stepper-value {
295
+ min-width: 32px;
296
+ text-align: center;
297
+ }
298
+
299
+ .nsr-choice-group {
300
+ display: flex;
301
+ flex-wrap: wrap;
302
+ gap: 8px;
303
+ }
304
+
305
+ .nsr-choice {
306
+ display: inline-flex;
307
+ gap: 6px;
308
+ align-items: center;
309
+ }
310
+
311
+ .nsr-loading,
312
+ .nsr-empty,
313
+ .nsr-error {
314
+ border-radius: 8px;
315
+ padding: 10px;
316
+ background: var(--surface-secondary, #f5f5f5);
317
+ color: var(--text-secondary, #5f6368);
318
+ }
319
+
320
+ .nsr-error {
321
+ color: var(--danger, #b4232c);
322
+ }
323
+
324
+ .dark :where(.nsr-shell, .nsr-fullscreen-shell, .nsr-inline-card),
325
+ :where(.nsr-shell, .nsr-fullscreen-shell, .nsr-inline-card).dark {
326
+ --background: #171717;
327
+ --surface-primary: #212121;
328
+ --surface-secondary: #2f2f2f;
329
+ --text-primary: #f4f4f4;
330
+ --text-secondary: #b4b4b4;
331
+ --border-subtle: #3a3a3a;
332
+ --accent: #8aa4ff;
333
+ }
334
+
335
+ @media (max-width: 520px) {
336
+ .nsr-card,
337
+ .nsr-shell-surface,
338
+ .nsr-inline-card {
339
+ padding: 12px;
340
+ }
341
+
342
+ .nsr-inline-list-item {
343
+ grid-template-columns: minmax(0, 1fr);
344
+ }
345
+ }
346
+ }