@noodleseed/one 0.22.0 → 0.23.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 (197) hide show
  1. package/dist/commands/author-loop.d.ts.map +1 -1
  2. package/dist/commands/author-loop.js +2 -2
  3. package/dist/commands/author-loop.js.map +1 -1
  4. package/dist/commands/catalog-dispatch.d.ts.map +1 -1
  5. package/dist/commands/catalog-dispatch.js +21 -2
  6. package/dist/commands/catalog-dispatch.js.map +1 -1
  7. package/dist/commands/deploy-ops.d.ts.map +1 -1
  8. package/dist/commands/deploy-ops.js +28 -11
  9. package/dist/commands/deploy-ops.js.map +1 -1
  10. package/dist/first-run.d.ts +11 -0
  11. package/dist/first-run.d.ts.map +1 -1
  12. package/dist/first-run.js +19 -4
  13. package/dist/first-run.js.map +1 -1
  14. package/dist/project-scaffold-templates.d.ts +11 -0
  15. package/dist/project-scaffold-templates.d.ts.map +1 -0
  16. package/dist/project-scaffold-templates.js +359 -0
  17. package/dist/project-scaffold-templates.js.map +1 -0
  18. package/dist/project.d.ts.map +1 -1
  19. package/dist/project.js +1 -323
  20. package/dist/project.js.map +1 -1
  21. package/dist/react.d.ts +2 -2
  22. package/dist/react.d.ts.map +1 -1
  23. package/dist/react.js +1 -1
  24. package/dist/react.js.map +1 -1
  25. package/dist/validate.d.ts +12 -0
  26. package/dist/validate.d.ts.map +1 -1
  27. package/dist/validate.js +11 -0
  28. package/dist/validate.js.map +1 -1
  29. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
  30. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +6 -9
  31. package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
  32. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  33. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +3 -3
  34. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  35. package/node_modules/@noodle-borg/authoring/dist/index.js +1 -1
  36. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  37. package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +302 -7
  38. package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts.map +1 -1
  39. package/node_modules/@noodle-borg/authoring/dist/react/components.js +39 -7
  40. package/node_modules/@noodle-borg/authoring/dist/react/components.js.map +1 -1
  41. package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts +4 -2
  42. package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts.map +1 -1
  43. package/node_modules/@noodle-borg/authoring/dist/react/index.js +2 -1
  44. package/node_modules/@noodle-borg/authoring/dist/react/index.js.map +1 -1
  45. package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.d.ts +2618 -0
  46. package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.d.ts.map +1 -0
  47. package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.js +110 -0
  48. package/node_modules/@noodle-borg/authoring/dist/react/semantic-components.js.map +1 -0
  49. package/node_modules/@noodle-borg/authoring/dist/react.d.ts +2 -2
  50. package/node_modules/@noodle-borg/authoring/dist/react.d.ts.map +1 -1
  51. package/node_modules/@noodle-borg/authoring/dist/react.js +1 -1
  52. package/node_modules/@noodle-borg/authoring/dist/react.js.map +1 -1
  53. package/node_modules/@noodle-borg/authoring/dist/recording.d.ts +1 -1
  54. package/node_modules/@noodle-borg/authoring/dist/recording.d.ts.map +1 -1
  55. package/node_modules/@noodle-borg/authoring/dist/recording.js +14 -1
  56. package/node_modules/@noodle-borg/authoring/dist/recording.js.map +1 -1
  57. package/node_modules/@noodle-borg/authoring/dist/server.d.ts +25 -2
  58. package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
  59. package/node_modules/@noodle-borg/authoring/dist/server.js +7 -3
  60. package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
  61. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  62. package/node_modules/@noodle-borg/compiler/dist/compile.js +20 -8
  63. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  64. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +2 -0
  65. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  66. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +6 -0
  67. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  68. package/node_modules/@noodle-borg/connector-http/package.json +1 -1
  69. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
  70. package/node_modules/@noodle-borg/protocol/dist/mapping.js +8 -0
  71. package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
  72. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +15 -21
  73. package/node_modules/hono/dist/adapter/bun/websocket.js +3 -1
  74. package/node_modules/hono/dist/adapter/lambda-edge/handler.js +8 -2
  75. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +15 -21
  76. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +3 -1
  77. package/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +8 -2
  78. package/node_modules/hono/dist/cjs/helper/css/common.js +3 -1
  79. package/node_modules/hono/dist/cjs/helper/css/index.js +9 -1
  80. package/node_modules/hono/dist/cjs/jsx/base.js +8 -14
  81. package/node_modules/hono/dist/cjs/jsx/components.js +41 -21
  82. package/node_modules/hono/dist/cjs/jsx/context.js +131 -5
  83. package/node_modules/hono/dist/cjs/jsx/streaming.js +9 -7
  84. package/node_modules/hono/dist/cjs/middleware/cors/index.js +2 -5
  85. package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +2 -2
  86. package/node_modules/hono/dist/cjs/utils/body.js +12 -4
  87. package/node_modules/hono/dist/cjs/utils/buffer.js +2 -1
  88. package/node_modules/hono/dist/cjs/validator/validator.js +3 -3
  89. package/node_modules/hono/dist/helper/css/common.js +3 -1
  90. package/node_modules/hono/dist/helper/css/index.js +9 -1
  91. package/node_modules/hono/dist/jsx/base.js +15 -15
  92. package/node_modules/hono/dist/jsx/components.js +42 -22
  93. package/node_modules/hono/dist/jsx/context.js +129 -5
  94. package/node_modules/hono/dist/jsx/streaming.js +10 -8
  95. package/node_modules/hono/dist/middleware/cors/index.js +2 -5
  96. package/node_modules/hono/dist/middleware/serve-static/index.js +2 -2
  97. package/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +1 -1
  98. package/node_modules/hono/dist/types/jsx/base.d.ts +1 -3
  99. package/node_modules/hono/dist/types/jsx/context.d.ts +39 -0
  100. package/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +2 -2
  101. package/node_modules/hono/dist/types/utils/body.d.ts +1 -1
  102. package/node_modules/hono/dist/utils/body.js +12 -4
  103. package/node_modules/hono/dist/utils/buffer.js +2 -1
  104. package/node_modules/hono/dist/validator/validator.js +3 -3
  105. package/node_modules/hono/package.json +9 -10
  106. package/node_modules/tailwindcss/dist/chunk-HMCCH6MG.mjs +1 -0
  107. package/node_modules/tailwindcss/dist/default-theme.mjs +1 -1
  108. package/node_modules/tailwindcss/dist/lib.js +13 -13
  109. package/node_modules/tailwindcss/dist/lib.mjs +18 -18
  110. package/node_modules/tailwindcss/package.json +2 -2
  111. package/node_modules/undici/README.md +3 -2
  112. package/node_modules/undici/docs/docs/api/Agent.md +248 -44
  113. package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
  114. package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
  115. package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
  116. package/node_modules/undici/docs/docs/api/Client.md +365 -178
  117. package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
  118. package/node_modules/undici/docs/docs/api/Connector.md +118 -36
  119. package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
  120. package/node_modules/undici/docs/docs/api/Cookies.md +125 -47
  121. package/node_modules/undici/docs/docs/api/Debug.md +34 -18
  122. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
  123. package/node_modules/undici/docs/docs/api/Dispatcher.md +479 -1093
  124. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +101 -87
  125. package/node_modules/undici/docs/docs/api/Errors.md +503 -40
  126. package/node_modules/undici/docs/docs/api/EventSource.md +294 -32
  127. package/node_modules/undici/docs/docs/api/Fetch.md +680 -31
  128. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -98
  129. package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
  130. package/node_modules/undici/docs/docs/api/Interceptors.md +355 -0
  131. package/node_modules/undici/docs/docs/api/MockAgent.md +314 -322
  132. package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
  133. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
  134. package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
  135. package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
  136. package/node_modules/undici/docs/docs/api/MockPool.md +299 -263
  137. package/node_modules/undici/docs/docs/api/Pool.md +235 -43
  138. package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
  139. package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
  140. package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -63
  141. package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -26
  142. package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -77
  143. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
  144. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +264 -542
  145. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +162 -186
  146. package/node_modules/undici/docs/docs/api/Util.md +68 -11
  147. package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
  148. package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
  149. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
  150. package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
  151. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +6 -4
  152. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
  153. package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
  154. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
  155. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
  156. package/node_modules/undici/docs/docs/{GettingStarted.md → getting-started.md} +22 -19
  157. package/node_modules/undici/docs/docs/index.md +779 -0
  158. package/node_modules/undici/docs/docs/site.json +125 -0
  159. package/node_modules/undici/docs/docs/type-map.json +79 -0
  160. package/node_modules/undici/lib/api/api-request.js +7 -1
  161. package/node_modules/undici/lib/api/readable.js +47 -2
  162. package/node_modules/undici/lib/core/errors.js +20 -0
  163. package/node_modules/undici/lib/core/request.js +1 -1
  164. package/node_modules/undici/lib/core/util.js +24 -1
  165. package/node_modules/undici/lib/dispatcher/client-h1.js +92 -1
  166. package/node_modules/undici/lib/dispatcher/client-h2.js +322 -118
  167. package/node_modules/undici/lib/dispatcher/client.js +6 -2
  168. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +1 -0
  169. package/node_modules/undici/lib/dispatcher/proxy-agent.js +42 -7
  170. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +4 -2
  171. package/node_modules/undici/lib/handler/redirect-handler.js +1 -0
  172. package/node_modules/undici/lib/handler/retry-handler.js +57 -19
  173. package/node_modules/undici/lib/util/cache.js +8 -2
  174. package/node_modules/undici/lib/web/cookies/parse.js +20 -27
  175. package/node_modules/undici/lib/web/cookies/util.js +1 -1
  176. package/node_modules/undici/lib/web/eventsource/eventsource.js +7 -18
  177. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  178. package/node_modules/undici/lib/web/fetch/body.js +43 -0
  179. package/node_modules/undici/lib/web/fetch/constants.js +1 -1
  180. package/node_modules/undici/lib/web/fetch/index.js +11 -2
  181. package/node_modules/undici/lib/web/fetch/request.js +1 -0
  182. package/node_modules/undici/lib/web/fetch/util.js +4 -1
  183. package/node_modules/undici/lib/web/websocket/receiver.js +20 -3
  184. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -1
  185. package/node_modules/undici/lib/web/websocket/websocket.js +3 -1
  186. package/node_modules/undici/package.json +1 -1
  187. package/node_modules/undici/types/client.d.ts +6 -1
  188. package/node_modules/undici/types/cookies.d.ts +1 -1
  189. package/node_modules/undici/types/errors.d.ts +10 -0
  190. package/node_modules/undici/types/fetch.d.ts +1 -0
  191. package/node_modules/undici/types/handlers.d.ts +2 -0
  192. package/node_modules/undici/types/proxy-agent.d.ts +7 -0
  193. package/package.json +4 -4
  194. package/react/styles.css +510 -5
  195. package/react/styles.source.css +850 -0
  196. package/node_modules/hono/dist/tsconfig.build.tsbuildinfo +0 -1
  197. package/node_modules/tailwindcss/dist/chunk-XVOTX5KS.mjs +0 -1
@@ -0,0 +1,850 @@
1
+ /* Tailwind/shadcn substrate: public app code uses semantic Noodle primitives, not utility classes. */
2
+ @layer noodle-react-reset, noodle-react-components;
3
+
4
+ @layer noodle-react-reset {
5
+ :where(.nsr-shell, .nsr-frame, .nsr-fullscreen-shell, .nsr-inline-card) {
6
+ box-sizing: border-box;
7
+ color: var(--text-primary, var(--foreground, #171717));
8
+ font-family: var(
9
+ --font-sans,
10
+ ui-sans-serif,
11
+ system-ui,
12
+ -apple-system,
13
+ BlinkMacSystemFont,
14
+ "Segoe UI",
15
+ sans-serif
16
+ );
17
+ line-height: 1.45;
18
+ }
19
+
20
+ :where(.nsr-shell *, .nsr-frame *, .nsr-fullscreen-shell *, .nsr-inline-card *) {
21
+ box-sizing: border-box;
22
+ }
23
+
24
+ :where(
25
+ .nsr-shell button,
26
+ .nsr-frame button,
27
+ .nsr-fullscreen-shell button,
28
+ .nsr-inline-card button
29
+ ) {
30
+ font: inherit;
31
+ }
32
+ }
33
+
34
+ @layer noodle-react-components {
35
+ .nsr-shell {
36
+ display: grid;
37
+ gap: 12px;
38
+ width: 100%;
39
+ min-width: 0;
40
+ }
41
+
42
+ .nsr-frame {
43
+ display: grid;
44
+ width: 100%;
45
+ min-width: 0;
46
+ color: var(--text-primary, var(--foreground, #171717));
47
+ background: transparent;
48
+ }
49
+
50
+ .nsr-frame-inline,
51
+ .nsr-frame-pip {
52
+ max-width: 800px;
53
+ }
54
+
55
+ .nsr-frame-fullscreen {
56
+ min-height: 100dvh;
57
+ }
58
+
59
+ .nsr-frame-surface {
60
+ display: grid;
61
+ gap: 14px;
62
+ width: 100%;
63
+ min-width: 0;
64
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 13%, transparent));
65
+ border-radius: 8px;
66
+ background: var(--surface-primary, var(--background, #ffffff));
67
+ box-shadow: 0 1px 2px color-mix(in srgb, #000000 6%, transparent);
68
+ padding: 14px;
69
+ }
70
+
71
+ .nsr-frame-fullscreen .nsr-frame-surface {
72
+ min-height: 100dvh;
73
+ border: 0;
74
+ border-radius: 0;
75
+ box-shadow: none;
76
+ }
77
+
78
+ .nsr-frame-header,
79
+ .nsr-region-header {
80
+ display: flex;
81
+ align-items: flex-start;
82
+ justify-content: space-between;
83
+ gap: 12px;
84
+ min-width: 0;
85
+ }
86
+
87
+ .nsr-frame-icon {
88
+ display: inline-grid;
89
+ width: 32px;
90
+ height: 32px;
91
+ flex: 0 0 auto;
92
+ place-items: center;
93
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
94
+ border-radius: 8px;
95
+ background: var(--surface-secondary, #f5f5f5);
96
+ color: var(--text-secondary, #5f6368);
97
+ }
98
+
99
+ .nsr-frame-meta,
100
+ .nsr-region-meta {
101
+ display: inline-flex;
102
+ flex: 0 0 auto;
103
+ flex-wrap: wrap;
104
+ gap: 8px;
105
+ align-items: center;
106
+ justify-content: flex-end;
107
+ }
108
+
109
+ .nsr-frame-body,
110
+ .nsr-region-body,
111
+ .nsr-overlay-body {
112
+ display: grid;
113
+ gap: 12px;
114
+ min-width: 0;
115
+ }
116
+
117
+ .nsr-frame-footer {
118
+ color: var(--text-secondary, #5f6368);
119
+ font-size: 0.8125rem;
120
+ }
121
+
122
+ .nsr-region {
123
+ display: grid;
124
+ gap: 12px;
125
+ min-width: 0;
126
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
127
+ border-radius: 8px;
128
+ background: var(--surface-primary, var(--background, #ffffff));
129
+ padding: 12px;
130
+ }
131
+
132
+ .nsr-region-title {
133
+ margin: 0;
134
+ overflow-wrap: anywhere;
135
+ color: var(--text-primary, #171717);
136
+ font-size: 0.9375rem;
137
+ font-weight: 650;
138
+ letter-spacing: 0;
139
+ line-height: 1.25;
140
+ }
141
+
142
+ .nsr-region-description {
143
+ margin: 0;
144
+ color: var(--text-secondary, #5f6368);
145
+ font-size: 0.8125rem;
146
+ }
147
+
148
+ .nsr-flow {
149
+ display: grid;
150
+ min-width: 0;
151
+ }
152
+
153
+ .nsr-flow-comfortable {
154
+ gap: 12px;
155
+ }
156
+
157
+ .nsr-flow-compact {
158
+ gap: 8px;
159
+ }
160
+
161
+ .nsr-flow-cluster {
162
+ display: flex;
163
+ flex-wrap: wrap;
164
+ align-items: center;
165
+ }
166
+
167
+ .nsr-flow-split {
168
+ grid-template-columns: repeat(2, minmax(0, 1fr));
169
+ }
170
+
171
+ .nsr-flow-grid {
172
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
173
+ }
174
+
175
+ .nsr-flow-sidebar {
176
+ grid-template-columns: minmax(176px, 0.8fr) minmax(0, 1.6fr);
177
+ }
178
+
179
+ .nsr-collection {
180
+ display: grid;
181
+ gap: 8px;
182
+ min-width: 0;
183
+ }
184
+
185
+ .nsr-collection-grid {
186
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
187
+ }
188
+
189
+ .nsr-collection-table {
190
+ gap: 0;
191
+ overflow: hidden;
192
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
193
+ border-radius: 8px;
194
+ }
195
+
196
+ .nsr-collection-item {
197
+ display: grid;
198
+ grid-template-columns: minmax(0, 1fr) auto auto;
199
+ gap: 10px;
200
+ align-items: center;
201
+ min-width: 0;
202
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 11%, transparent));
203
+ border-radius: 8px;
204
+ background: var(--surface-primary, var(--background, #ffffff));
205
+ color: inherit;
206
+ padding: 10px;
207
+ text-align: left;
208
+ }
209
+
210
+ .nsr-collection-table .nsr-collection-item {
211
+ border-width: 1px 0 0;
212
+ border-radius: 0;
213
+ }
214
+
215
+ .nsr-collection-table .nsr-collection-item:first-child {
216
+ border-top: 0;
217
+ }
218
+
219
+ button.nsr-collection-item {
220
+ cursor: pointer;
221
+ }
222
+
223
+ .nsr-collection-item-selected,
224
+ .nsr-collection-item[aria-selected="true"] {
225
+ border-color: var(--accent, #2454d6);
226
+ background: color-mix(in srgb, var(--accent, #2454d6) 9%, var(--surface-primary, #ffffff));
227
+ box-shadow: inset 3px 0 0 var(--accent, #2454d6);
228
+ }
229
+
230
+ .nsr-collection-copy {
231
+ display: grid;
232
+ gap: 2px;
233
+ min-width: 0;
234
+ }
235
+
236
+ .nsr-collection-title {
237
+ overflow-wrap: anywhere;
238
+ color: var(--text-primary, #171717);
239
+ font-size: 0.875rem;
240
+ font-weight: 650;
241
+ line-height: 1.25;
242
+ }
243
+
244
+ .nsr-collection-description,
245
+ .nsr-collection-body,
246
+ .nsr-collection-meta {
247
+ color: var(--text-secondary, #5f6368);
248
+ font-size: 0.8125rem;
249
+ line-height: 1.35;
250
+ }
251
+
252
+ .nsr-collection-badge {
253
+ display: inline-flex;
254
+ align-items: center;
255
+ }
256
+
257
+ .nsr-fact {
258
+ display: grid;
259
+ gap: 3px;
260
+ min-width: 0;
261
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 10%, transparent));
262
+ border-radius: 8px;
263
+ background: var(--surface-secondary, #f5f5f5);
264
+ padding: 10px;
265
+ }
266
+
267
+ .nsr-fact-label {
268
+ color: var(--text-secondary, #5f6368);
269
+ font-size: 0.75rem;
270
+ font-weight: 600;
271
+ }
272
+
273
+ .nsr-fact-value {
274
+ margin: 0;
275
+ overflow-wrap: anywhere;
276
+ color: var(--text-primary, #171717);
277
+ font-size: 1.15rem;
278
+ font-weight: 700;
279
+ line-height: 1.15;
280
+ }
281
+
282
+ .nsr-fact-detail,
283
+ .nsr-fact-trend {
284
+ margin: 0;
285
+ color: var(--text-secondary, #5f6368);
286
+ font-size: 0.75rem;
287
+ }
288
+
289
+ .nsr-fact-success .nsr-fact-value {
290
+ color: var(--success, #126b30);
291
+ }
292
+
293
+ .nsr-fact-warning .nsr-fact-value {
294
+ color: var(--warning, #8a5200);
295
+ }
296
+
297
+ .nsr-fact-danger .nsr-fact-value {
298
+ color: var(--danger, #b4232c);
299
+ }
300
+
301
+ .nsr-feedback {
302
+ display: grid;
303
+ grid-template-columns: minmax(0, 1fr) auto;
304
+ gap: 12px;
305
+ align-items: start;
306
+ min-width: 0;
307
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
308
+ border-radius: 8px;
309
+ background: var(--surface-secondary, #f5f5f5);
310
+ padding: 12px;
311
+ }
312
+
313
+ .nsr-feedback-copy {
314
+ display: grid;
315
+ gap: 3px;
316
+ min-width: 0;
317
+ }
318
+
319
+ .nsr-feedback-title {
320
+ color: var(--text-primary, #171717);
321
+ font-size: 0.875rem;
322
+ font-weight: 650;
323
+ line-height: 1.25;
324
+ }
325
+
326
+ .nsr-feedback-description,
327
+ .nsr-feedback-body {
328
+ margin: 0;
329
+ color: var(--text-secondary, #5f6368);
330
+ font-size: 0.8125rem;
331
+ line-height: 1.4;
332
+ }
333
+
334
+ .nsr-feedback-error,
335
+ .nsr-feedback-permission-denied {
336
+ border-color: color-mix(in srgb, var(--danger, #b4232c) 28%, transparent);
337
+ background: color-mix(in srgb, var(--danger, #b4232c) 8%, var(--surface-primary, #ffffff));
338
+ }
339
+
340
+ .nsr-feedback-success {
341
+ border-color: color-mix(in srgb, var(--success, #126b30) 26%, transparent);
342
+ background: color-mix(in srgb, var(--success, #126b30) 8%, var(--surface-primary, #ffffff));
343
+ }
344
+
345
+ .nsr-feedback-partial,
346
+ .nsr-feedback-unsupported {
347
+ border-color: color-mix(in srgb, var(--warning, #8a5200) 28%, transparent);
348
+ background: color-mix(in srgb, var(--warning, #8a5200) 8%, var(--surface-primary, #ffffff));
349
+ }
350
+
351
+ .nsr-action {
352
+ display: inline-flex;
353
+ align-items: center;
354
+ justify-content: center;
355
+ min-height: 34px;
356
+ gap: 7px;
357
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
358
+ border-radius: 8px;
359
+ padding: 7px 11px;
360
+ color: var(--text-primary, #171717);
361
+ cursor: pointer;
362
+ font: inherit;
363
+ font-size: 0.875rem;
364
+ font-weight: 600;
365
+ line-height: 1.1;
366
+ text-decoration: none;
367
+ }
368
+
369
+ .nsr-action-primary {
370
+ border-color: var(--accent, #2454d6);
371
+ background: var(--accent, #2454d6);
372
+ color: var(--accent-foreground, #ffffff);
373
+ }
374
+
375
+ .nsr-action-secondary {
376
+ background: var(--surface-primary, #ffffff);
377
+ }
378
+
379
+ .nsr-action-quiet {
380
+ border-color: transparent;
381
+ background: transparent;
382
+ color: var(--text-secondary, #5f6368);
383
+ }
384
+
385
+ .nsr-action-danger {
386
+ border-color: color-mix(in srgb, var(--danger, #b4232c) 38%, transparent);
387
+ background: color-mix(in srgb, var(--danger, #b4232c) 10%, transparent);
388
+ color: var(--danger, #b4232c);
389
+ }
390
+
391
+ .nsr-action:disabled,
392
+ .nsr-action[aria-busy="true"] {
393
+ cursor: not-allowed;
394
+ opacity: 0.62;
395
+ }
396
+
397
+ .nsr-view-nav {
398
+ display: flex;
399
+ flex-wrap: wrap;
400
+ gap: 6px;
401
+ align-items: center;
402
+ min-width: 0;
403
+ }
404
+
405
+ .nsr-view-nav-item {
406
+ min-height: 34px;
407
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
408
+ border-radius: 8px;
409
+ background: transparent;
410
+ color: var(--text-secondary, #5f6368);
411
+ cursor: pointer;
412
+ font: inherit;
413
+ font-size: 0.875rem;
414
+ font-weight: 600;
415
+ padding: 7px 11px;
416
+ }
417
+
418
+ .nsr-view-nav-item[aria-current="page"] {
419
+ border-color: var(--accent, #2454d6);
420
+ background: color-mix(in srgb, var(--accent, #2454d6) 10%, transparent);
421
+ color: var(--text-primary, #171717);
422
+ }
423
+
424
+ .nsr-view-nav-segmented {
425
+ width: max-content;
426
+ max-width: 100%;
427
+ gap: 0;
428
+ overflow: hidden;
429
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
430
+ border-radius: 8px;
431
+ background: var(--surface-secondary, #f5f5f5);
432
+ padding: 2px;
433
+ }
434
+
435
+ .nsr-view-nav-segmented .nsr-view-nav-item {
436
+ border-color: transparent;
437
+ }
438
+
439
+ .nsr-view-nav-steps {
440
+ counter-reset: nsr-step;
441
+ }
442
+
443
+ .nsr-view-nav-steps .nsr-view-nav-item::before {
444
+ display: inline-grid;
445
+ width: 18px;
446
+ height: 18px;
447
+ place-items: center;
448
+ margin-right: 6px;
449
+ border-radius: 999px;
450
+ background: var(--surface-secondary, #f5f5f5);
451
+ color: var(--text-secondary, #5f6368);
452
+ content: attr(data-step);
453
+ font-size: 0.6875rem;
454
+ }
455
+
456
+ .nsr-overlay {
457
+ display: grid;
458
+ gap: 12px;
459
+ min-width: 0;
460
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
461
+ border-radius: 8px;
462
+ background: var(--surface-primary, var(--background, #ffffff));
463
+ box-shadow: 0 18px 45px color-mix(in srgb, #000000 16%, transparent);
464
+ padding: 14px;
465
+ }
466
+
467
+ .nsr-overlay-sheet {
468
+ border-radius: 8px 8px 0 0;
469
+ }
470
+
471
+ .nsr-overlay-header {
472
+ display: flex;
473
+ align-items: flex-start;
474
+ justify-content: space-between;
475
+ gap: 12px;
476
+ }
477
+
478
+ .nsr-overlay-title {
479
+ margin: 0;
480
+ color: var(--text-primary, #171717);
481
+ font-size: 0.9375rem;
482
+ font-weight: 650;
483
+ line-height: 1.25;
484
+ }
485
+
486
+ .nsr-overlay-description {
487
+ margin: 0;
488
+ color: var(--text-secondary, #5f6368);
489
+ font-size: 0.8125rem;
490
+ }
491
+
492
+ .nsr-shell-inline,
493
+ .nsr-shell-pip {
494
+ max-width: 760px;
495
+ }
496
+
497
+ .nsr-shell-fullscreen,
498
+ .nsr-fullscreen-shell {
499
+ min-height: 100dvh;
500
+ background: var(--canvas, var(--background, transparent));
501
+ }
502
+
503
+ .nsr-shell-surface,
504
+ .nsr-card,
505
+ .nsr-inline-card {
506
+ width: 100%;
507
+ min-width: 0;
508
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
509
+ border-radius: 8px;
510
+ background: var(--surface-primary, var(--background, #ffffff));
511
+ }
512
+
513
+ .nsr-card,
514
+ .nsr-shell-surface,
515
+ .nsr-inline-card {
516
+ padding: 14px;
517
+ }
518
+
519
+ .nsr-card-wide {
520
+ display: grid;
521
+ gap: 14px;
522
+ }
523
+
524
+ .nsr-shell-fullscreen .nsr-shell-surface,
525
+ .nsr-fullscreen-shell {
526
+ border: 0;
527
+ border-radius: 0;
528
+ padding: 0;
529
+ }
530
+
531
+ .nsr-header,
532
+ .nsr-fullscreen-header,
533
+ .nsr-inline-header {
534
+ display: flex;
535
+ align-items: flex-start;
536
+ gap: 10px;
537
+ min-width: 0;
538
+ }
539
+
540
+ .nsr-fullscreen-header {
541
+ justify-content: space-between;
542
+ padding: 14px 16px;
543
+ border-bottom: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
544
+ }
545
+
546
+ .nsr-title-block,
547
+ .nsr-inline-list-copy {
548
+ display: grid;
549
+ gap: 2px;
550
+ min-width: 0;
551
+ }
552
+
553
+ .nsr-title,
554
+ .nsr-inline-title {
555
+ margin: 0;
556
+ overflow-wrap: anywhere;
557
+ color: var(--text-primary, #171717);
558
+ font-size: 1rem;
559
+ font-weight: 650;
560
+ letter-spacing: 0;
561
+ line-height: 1.25;
562
+ }
563
+
564
+ .nsr-subtitle,
565
+ .nsr-inline-description,
566
+ .nsr-inline-list-copy small,
567
+ .nsr-field-detail {
568
+ margin: 0;
569
+ color: var(--text-secondary, #5f6368);
570
+ font-size: 0.875rem;
571
+ }
572
+
573
+ .nsr-icon,
574
+ .nsr-chip,
575
+ .nsr-badge {
576
+ display: inline-flex;
577
+ align-items: center;
578
+ min-height: 24px;
579
+ border-radius: 999px;
580
+ white-space: nowrap;
581
+ }
582
+
583
+ .nsr-chip,
584
+ .nsr-badge {
585
+ padding: 2px 8px;
586
+ background: var(--surface-secondary, #f5f5f5);
587
+ color: var(--text-secondary, #5f6368);
588
+ font-size: 0.8125rem;
589
+ font-weight: 550;
590
+ }
591
+
592
+ .nsr-badge-success {
593
+ background: color-mix(in srgb, #16833a 12%, transparent);
594
+ color: var(--success, #126b30);
595
+ }
596
+
597
+ .nsr-badge-warning {
598
+ background: color-mix(in srgb, #b76e00 14%, transparent);
599
+ color: var(--warning, #8a5200);
600
+ }
601
+
602
+ .nsr-badge-danger {
603
+ background: color-mix(in srgb, #d1242f 12%, transparent);
604
+ color: var(--danger, #b4232c);
605
+ }
606
+
607
+ .nsr-badge-info {
608
+ background: color-mix(in srgb, #2563eb 10%, transparent);
609
+ color: var(--accent, #2454d6);
610
+ }
611
+
612
+ .nsr-tabs,
613
+ .nsr-actions,
614
+ .nsr-toolbar {
615
+ display: flex;
616
+ flex-wrap: wrap;
617
+ gap: 8px;
618
+ align-items: center;
619
+ }
620
+
621
+ .nsr-tab,
622
+ .nsr-actions button,
623
+ .nsr-toolbar button,
624
+ .nsr-stepper button,
625
+ .nsr-inline-action button {
626
+ min-height: 32px;
627
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
628
+ border-radius: 8px;
629
+ background: var(--surface-primary, #ffffff);
630
+ color: inherit;
631
+ cursor: pointer;
632
+ }
633
+
634
+ .nsr-tab,
635
+ .nsr-actions button,
636
+ .nsr-toolbar button {
637
+ padding: 6px 10px;
638
+ }
639
+
640
+ .nsr-tab[aria-current="step"],
641
+ .nsr-actions button:first-child,
642
+ .nsr-toolbar button:first-child {
643
+ border-color: var(--accent, #2454d6);
644
+ background: color-mix(in srgb, var(--accent, #2454d6) 10%, transparent);
645
+ }
646
+
647
+ .nsr-view-stack,
648
+ .nsr-view,
649
+ .nsr-async,
650
+ .nsr-inline-body,
651
+ .nsr-data-list {
652
+ display: grid;
653
+ gap: 10px;
654
+ min-width: 0;
655
+ }
656
+
657
+ .nsr-inline-card {
658
+ display: grid;
659
+ gap: 12px;
660
+ max-width: 760px;
661
+ }
662
+
663
+ .nsr-inline-media {
664
+ overflow: hidden;
665
+ border-radius: 6px;
666
+ }
667
+
668
+ .nsr-inline-list {
669
+ display: grid;
670
+ gap: 0;
671
+ padding: 0;
672
+ margin: 0;
673
+ list-style: none;
674
+ }
675
+
676
+ .nsr-inline-list-item {
677
+ display: grid;
678
+ grid-template-columns: minmax(0, 1fr) auto auto;
679
+ gap: 10px;
680
+ align-items: center;
681
+ padding: 9px 0;
682
+ border-top: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 10%, transparent));
683
+ }
684
+
685
+ .nsr-inline-list-item:first-child {
686
+ border-top: 0;
687
+ }
688
+
689
+ .nsr-inline-meta {
690
+ color: var(--text-secondary, #5f6368);
691
+ font-size: 0.875rem;
692
+ }
693
+
694
+ .nsr-inline-carousel {
695
+ display: grid;
696
+ grid-auto-columns: minmax(136px, 180px);
697
+ grid-auto-flow: column;
698
+ gap: 10px;
699
+ max-width: 100%;
700
+ overflow-x: auto;
701
+ padding-bottom: 2px;
702
+ scrollbar-width: thin;
703
+ }
704
+
705
+ .nsr-data-card {
706
+ min-width: 0;
707
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
708
+ border-radius: 8px;
709
+ background: var(--surface-primary, #ffffff);
710
+ padding: 10px;
711
+ }
712
+
713
+ .nsr-fullscreen-body {
714
+ display: grid;
715
+ gap: 12px;
716
+ min-width: 0;
717
+ padding: 16px;
718
+ }
719
+
720
+ .nsr-footer {
721
+ color: var(--text-secondary, #5f6368);
722
+ font-size: 0.875rem;
723
+ }
724
+
725
+ .nsr-field {
726
+ display: grid;
727
+ gap: 5px;
728
+ }
729
+
730
+ .nsr-field-label {
731
+ font-size: 0.875rem;
732
+ font-weight: 600;
733
+ }
734
+
735
+ .nsr-field-required,
736
+ .nsr-field-error {
737
+ color: var(--danger, #b4232c);
738
+ }
739
+
740
+ .nsr-field-error {
741
+ font-size: 0.8125rem;
742
+ }
743
+
744
+ .nsr-field :where(input, select, textarea) {
745
+ min-height: 34px;
746
+ width: 100%;
747
+ min-width: 0;
748
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
749
+ border-radius: 8px;
750
+ background: var(--surface-primary, #ffffff);
751
+ color: var(--text-primary, #171717);
752
+ font: inherit;
753
+ padding: 7px 10px;
754
+ }
755
+
756
+ .nsr-field[aria-invalid="true"] :where(input, select, textarea) {
757
+ border-color: color-mix(in srgb, var(--danger, #b4232c) 48%, transparent);
758
+ }
759
+
760
+ .nsr-stepper {
761
+ display: inline-grid;
762
+ grid-template-columns: 32px minmax(32px, auto) 32px;
763
+ align-items: center;
764
+ width: max-content;
765
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
766
+ border-radius: 8px;
767
+ overflow: hidden;
768
+ }
769
+
770
+ .nsr-stepper button {
771
+ border: 0;
772
+ border-radius: 0;
773
+ }
774
+
775
+ .nsr-stepper-value {
776
+ min-width: 32px;
777
+ text-align: center;
778
+ }
779
+
780
+ .nsr-choice-group {
781
+ display: flex;
782
+ flex-wrap: wrap;
783
+ gap: 8px;
784
+ }
785
+
786
+ .nsr-choice {
787
+ display: inline-flex;
788
+ gap: 6px;
789
+ align-items: center;
790
+ }
791
+
792
+ .nsr-loading,
793
+ .nsr-empty,
794
+ .nsr-error {
795
+ border-radius: 8px;
796
+ padding: 10px;
797
+ background: var(--surface-secondary, #f5f5f5);
798
+ color: var(--text-secondary, #5f6368);
799
+ }
800
+
801
+ .nsr-error {
802
+ color: var(--danger, #b4232c);
803
+ }
804
+
805
+ .dark :where(.nsr-shell, .nsr-frame, .nsr-fullscreen-shell, .nsr-inline-card),
806
+ :where(.nsr-shell, .nsr-frame, .nsr-fullscreen-shell, .nsr-inline-card).dark {
807
+ --background: #171717;
808
+ --surface-primary: #212121;
809
+ --surface-secondary: #2f2f2f;
810
+ --text-primary: #f4f4f4;
811
+ --text-secondary: #b4b4b4;
812
+ --border-subtle: #3a3a3a;
813
+ --accent: #8aa4ff;
814
+ --accent-foreground: #111827;
815
+ }
816
+
817
+ @media (max-width: 520px) {
818
+ .nsr-frame-surface,
819
+ .nsr-card,
820
+ .nsr-shell-surface,
821
+ .nsr-inline-card {
822
+ padding: 12px;
823
+ }
824
+
825
+ .nsr-frame-header,
826
+ .nsr-region-header,
827
+ .nsr-flow-split,
828
+ .nsr-flow-sidebar {
829
+ grid-template-columns: 1fr;
830
+ }
831
+
832
+ .nsr-frame-header,
833
+ .nsr-region-header {
834
+ display: grid;
835
+ }
836
+
837
+ .nsr-frame-meta,
838
+ .nsr-region-meta {
839
+ justify-content: flex-start;
840
+ }
841
+
842
+ .nsr-inline-list-item {
843
+ grid-template-columns: minmax(0, 1fr);
844
+ }
845
+
846
+ .nsr-collection-item {
847
+ grid-template-columns: minmax(0, 1fr);
848
+ }
849
+ }
850
+ }