@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
package/react/styles.css CHANGED
@@ -1,7 +1,9 @@
1
+ /* Generated from packages/cli/react/styles.source.css by scripts/build-react-styles.mjs. */
2
+ /* Tailwind/shadcn substrate: public app code uses semantic Noodle primitives, not utility classes. */
1
3
  @layer noodle-react-reset, noodle-react-components;
2
4
 
3
5
  @layer noodle-react-reset {
4
- :where(.nsr-shell, .nsr-fullscreen-shell, .nsr-inline-card) {
6
+ :where(.nsr-shell, .nsr-frame, .nsr-fullscreen-shell, .nsr-inline-card) {
5
7
  box-sizing: border-box;
6
8
  color: var(--text-primary, var(--foreground, #171717));
7
9
  font-family: var(
@@ -16,11 +18,16 @@
16
18
  line-height: 1.45;
17
19
  }
18
20
 
19
- :where(.nsr-shell *, .nsr-fullscreen-shell *, .nsr-inline-card *) {
21
+ :where(.nsr-shell *, .nsr-frame *, .nsr-fullscreen-shell *, .nsr-inline-card *) {
20
22
  box-sizing: border-box;
21
23
  }
22
24
 
23
- :where(.nsr-shell button, .nsr-fullscreen-shell button, .nsr-inline-card button) {
25
+ :where(
26
+ .nsr-shell button,
27
+ .nsr-frame button,
28
+ .nsr-fullscreen-shell button,
29
+ .nsr-inline-card button
30
+ ) {
24
31
  font: inherit;
25
32
  }
26
33
  }
@@ -33,6 +40,456 @@
33
40
  min-width: 0;
34
41
  }
35
42
 
43
+ .nsr-frame {
44
+ display: grid;
45
+ width: 100%;
46
+ min-width: 0;
47
+ color: var(--text-primary, var(--foreground, #171717));
48
+ background: transparent;
49
+ }
50
+
51
+ .nsr-frame-inline,
52
+ .nsr-frame-pip {
53
+ max-width: 800px;
54
+ }
55
+
56
+ .nsr-frame-fullscreen {
57
+ min-height: 100dvh;
58
+ }
59
+
60
+ .nsr-frame-surface {
61
+ display: grid;
62
+ gap: 14px;
63
+ width: 100%;
64
+ min-width: 0;
65
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 13%, transparent));
66
+ border-radius: 8px;
67
+ background: var(--surface-primary, var(--background, #ffffff));
68
+ box-shadow: 0 1px 2px color-mix(in srgb, #000000 6%, transparent);
69
+ padding: 14px;
70
+ }
71
+
72
+ .nsr-frame-fullscreen .nsr-frame-surface {
73
+ min-height: 100dvh;
74
+ border: 0;
75
+ border-radius: 0;
76
+ box-shadow: none;
77
+ }
78
+
79
+ .nsr-frame-header,
80
+ .nsr-region-header {
81
+ display: flex;
82
+ align-items: flex-start;
83
+ justify-content: space-between;
84
+ gap: 12px;
85
+ min-width: 0;
86
+ }
87
+
88
+ .nsr-frame-icon {
89
+ display: inline-grid;
90
+ width: 32px;
91
+ height: 32px;
92
+ flex: 0 0 auto;
93
+ place-items: center;
94
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
95
+ border-radius: 8px;
96
+ background: var(--surface-secondary, #f5f5f5);
97
+ color: var(--text-secondary, #5f6368);
98
+ }
99
+
100
+ .nsr-frame-meta,
101
+ .nsr-region-meta {
102
+ display: inline-flex;
103
+ flex: 0 0 auto;
104
+ flex-wrap: wrap;
105
+ gap: 8px;
106
+ align-items: center;
107
+ justify-content: flex-end;
108
+ }
109
+
110
+ .nsr-frame-body,
111
+ .nsr-region-body,
112
+ .nsr-overlay-body {
113
+ display: grid;
114
+ gap: 12px;
115
+ min-width: 0;
116
+ }
117
+
118
+ .nsr-frame-footer {
119
+ color: var(--text-secondary, #5f6368);
120
+ font-size: 0.8125rem;
121
+ }
122
+
123
+ .nsr-region {
124
+ display: grid;
125
+ gap: 12px;
126
+ min-width: 0;
127
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
128
+ border-radius: 8px;
129
+ background: var(--surface-primary, var(--background, #ffffff));
130
+ padding: 12px;
131
+ }
132
+
133
+ .nsr-region-title {
134
+ margin: 0;
135
+ overflow-wrap: anywhere;
136
+ color: var(--text-primary, #171717);
137
+ font-size: 0.9375rem;
138
+ font-weight: 650;
139
+ letter-spacing: 0;
140
+ line-height: 1.25;
141
+ }
142
+
143
+ .nsr-region-description {
144
+ margin: 0;
145
+ color: var(--text-secondary, #5f6368);
146
+ font-size: 0.8125rem;
147
+ }
148
+
149
+ .nsr-flow {
150
+ display: grid;
151
+ min-width: 0;
152
+ }
153
+
154
+ .nsr-flow-comfortable {
155
+ gap: 12px;
156
+ }
157
+
158
+ .nsr-flow-compact {
159
+ gap: 8px;
160
+ }
161
+
162
+ .nsr-flow-cluster {
163
+ display: flex;
164
+ flex-wrap: wrap;
165
+ align-items: center;
166
+ }
167
+
168
+ .nsr-flow-split {
169
+ grid-template-columns: repeat(2, minmax(0, 1fr));
170
+ }
171
+
172
+ .nsr-flow-grid {
173
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
174
+ }
175
+
176
+ .nsr-flow-sidebar {
177
+ grid-template-columns: minmax(176px, 0.8fr) minmax(0, 1.6fr);
178
+ }
179
+
180
+ .nsr-collection {
181
+ display: grid;
182
+ gap: 8px;
183
+ min-width: 0;
184
+ }
185
+
186
+ .nsr-collection-grid {
187
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
188
+ }
189
+
190
+ .nsr-collection-table {
191
+ gap: 0;
192
+ overflow: hidden;
193
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
194
+ border-radius: 8px;
195
+ }
196
+
197
+ .nsr-collection-item {
198
+ display: grid;
199
+ grid-template-columns: minmax(0, 1fr) auto auto;
200
+ gap: 10px;
201
+ align-items: center;
202
+ min-width: 0;
203
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 11%, transparent));
204
+ border-radius: 8px;
205
+ background: var(--surface-primary, var(--background, #ffffff));
206
+ color: inherit;
207
+ padding: 10px;
208
+ text-align: left;
209
+ }
210
+
211
+ .nsr-collection-table .nsr-collection-item {
212
+ border-width: 1px 0 0;
213
+ border-radius: 0;
214
+ }
215
+
216
+ .nsr-collection-table .nsr-collection-item:first-child {
217
+ border-top: 0;
218
+ }
219
+
220
+ button.nsr-collection-item {
221
+ cursor: pointer;
222
+ }
223
+
224
+ .nsr-collection-item-selected,
225
+ .nsr-collection-item[aria-selected="true"] {
226
+ border-color: var(--accent, #2454d6);
227
+ background: color-mix(in srgb, var(--accent, #2454d6) 9%, var(--surface-primary, #ffffff));
228
+ box-shadow: inset 3px 0 0 var(--accent, #2454d6);
229
+ }
230
+
231
+ .nsr-collection-copy {
232
+ display: grid;
233
+ gap: 2px;
234
+ min-width: 0;
235
+ }
236
+
237
+ .nsr-collection-title {
238
+ overflow-wrap: anywhere;
239
+ color: var(--text-primary, #171717);
240
+ font-size: 0.875rem;
241
+ font-weight: 650;
242
+ line-height: 1.25;
243
+ }
244
+
245
+ .nsr-collection-description,
246
+ .nsr-collection-body,
247
+ .nsr-collection-meta {
248
+ color: var(--text-secondary, #5f6368);
249
+ font-size: 0.8125rem;
250
+ line-height: 1.35;
251
+ }
252
+
253
+ .nsr-collection-badge {
254
+ display: inline-flex;
255
+ align-items: center;
256
+ }
257
+
258
+ .nsr-fact {
259
+ display: grid;
260
+ gap: 3px;
261
+ min-width: 0;
262
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 10%, transparent));
263
+ border-radius: 8px;
264
+ background: var(--surface-secondary, #f5f5f5);
265
+ padding: 10px;
266
+ }
267
+
268
+ .nsr-fact-label {
269
+ color: var(--text-secondary, #5f6368);
270
+ font-size: 0.75rem;
271
+ font-weight: 600;
272
+ }
273
+
274
+ .nsr-fact-value {
275
+ margin: 0;
276
+ overflow-wrap: anywhere;
277
+ color: var(--text-primary, #171717);
278
+ font-size: 1.15rem;
279
+ font-weight: 700;
280
+ line-height: 1.15;
281
+ }
282
+
283
+ .nsr-fact-detail,
284
+ .nsr-fact-trend {
285
+ margin: 0;
286
+ color: var(--text-secondary, #5f6368);
287
+ font-size: 0.75rem;
288
+ }
289
+
290
+ .nsr-fact-success .nsr-fact-value {
291
+ color: var(--success, #126b30);
292
+ }
293
+
294
+ .nsr-fact-warning .nsr-fact-value {
295
+ color: var(--warning, #8a5200);
296
+ }
297
+
298
+ .nsr-fact-danger .nsr-fact-value {
299
+ color: var(--danger, #b4232c);
300
+ }
301
+
302
+ .nsr-feedback {
303
+ display: grid;
304
+ grid-template-columns: minmax(0, 1fr) auto;
305
+ gap: 12px;
306
+ align-items: start;
307
+ min-width: 0;
308
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
309
+ border-radius: 8px;
310
+ background: var(--surface-secondary, #f5f5f5);
311
+ padding: 12px;
312
+ }
313
+
314
+ .nsr-feedback-copy {
315
+ display: grid;
316
+ gap: 3px;
317
+ min-width: 0;
318
+ }
319
+
320
+ .nsr-feedback-title {
321
+ color: var(--text-primary, #171717);
322
+ font-size: 0.875rem;
323
+ font-weight: 650;
324
+ line-height: 1.25;
325
+ }
326
+
327
+ .nsr-feedback-description,
328
+ .nsr-feedback-body {
329
+ margin: 0;
330
+ color: var(--text-secondary, #5f6368);
331
+ font-size: 0.8125rem;
332
+ line-height: 1.4;
333
+ }
334
+
335
+ .nsr-feedback-error,
336
+ .nsr-feedback-permission-denied {
337
+ border-color: color-mix(in srgb, var(--danger, #b4232c) 28%, transparent);
338
+ background: color-mix(in srgb, var(--danger, #b4232c) 8%, var(--surface-primary, #ffffff));
339
+ }
340
+
341
+ .nsr-feedback-success {
342
+ border-color: color-mix(in srgb, var(--success, #126b30) 26%, transparent);
343
+ background: color-mix(in srgb, var(--success, #126b30) 8%, var(--surface-primary, #ffffff));
344
+ }
345
+
346
+ .nsr-feedback-partial,
347
+ .nsr-feedback-unsupported {
348
+ border-color: color-mix(in srgb, var(--warning, #8a5200) 28%, transparent);
349
+ background: color-mix(in srgb, var(--warning, #8a5200) 8%, var(--surface-primary, #ffffff));
350
+ }
351
+
352
+ .nsr-action {
353
+ display: inline-flex;
354
+ align-items: center;
355
+ justify-content: center;
356
+ min-height: 34px;
357
+ gap: 7px;
358
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
359
+ border-radius: 8px;
360
+ padding: 7px 11px;
361
+ color: var(--text-primary, #171717);
362
+ cursor: pointer;
363
+ font: inherit;
364
+ font-size: 0.875rem;
365
+ font-weight: 600;
366
+ line-height: 1.1;
367
+ text-decoration: none;
368
+ }
369
+
370
+ .nsr-action-primary {
371
+ border-color: var(--accent, #2454d6);
372
+ background: var(--accent, #2454d6);
373
+ color: var(--accent-foreground, #ffffff);
374
+ }
375
+
376
+ .nsr-action-secondary {
377
+ background: var(--surface-primary, #ffffff);
378
+ }
379
+
380
+ .nsr-action-quiet {
381
+ border-color: transparent;
382
+ background: transparent;
383
+ color: var(--text-secondary, #5f6368);
384
+ }
385
+
386
+ .nsr-action-danger {
387
+ border-color: color-mix(in srgb, var(--danger, #b4232c) 38%, transparent);
388
+ background: color-mix(in srgb, var(--danger, #b4232c) 10%, transparent);
389
+ color: var(--danger, #b4232c);
390
+ }
391
+
392
+ .nsr-action:disabled,
393
+ .nsr-action[aria-busy="true"] {
394
+ cursor: not-allowed;
395
+ opacity: 0.62;
396
+ }
397
+
398
+ .nsr-view-nav {
399
+ display: flex;
400
+ flex-wrap: wrap;
401
+ gap: 6px;
402
+ align-items: center;
403
+ min-width: 0;
404
+ }
405
+
406
+ .nsr-view-nav-item {
407
+ min-height: 34px;
408
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
409
+ border-radius: 8px;
410
+ background: transparent;
411
+ color: var(--text-secondary, #5f6368);
412
+ cursor: pointer;
413
+ font: inherit;
414
+ font-size: 0.875rem;
415
+ font-weight: 600;
416
+ padding: 7px 11px;
417
+ }
418
+
419
+ .nsr-view-nav-item[aria-current="page"] {
420
+ border-color: var(--accent, #2454d6);
421
+ background: color-mix(in srgb, var(--accent, #2454d6) 10%, transparent);
422
+ color: var(--text-primary, #171717);
423
+ }
424
+
425
+ .nsr-view-nav-segmented {
426
+ width: max-content;
427
+ max-width: 100%;
428
+ gap: 0;
429
+ overflow: hidden;
430
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 12%, transparent));
431
+ border-radius: 8px;
432
+ background: var(--surface-secondary, #f5f5f5);
433
+ padding: 2px;
434
+ }
435
+
436
+ .nsr-view-nav-segmented .nsr-view-nav-item {
437
+ border-color: transparent;
438
+ }
439
+
440
+ .nsr-view-nav-steps {
441
+ counter-reset: nsr-step;
442
+ }
443
+
444
+ .nsr-view-nav-steps .nsr-view-nav-item::before {
445
+ display: inline-grid;
446
+ width: 18px;
447
+ height: 18px;
448
+ place-items: center;
449
+ margin-right: 6px;
450
+ border-radius: 999px;
451
+ background: var(--surface-secondary, #f5f5f5);
452
+ color: var(--text-secondary, #5f6368);
453
+ content: attr(data-step);
454
+ font-size: 0.6875rem;
455
+ }
456
+
457
+ .nsr-overlay {
458
+ display: grid;
459
+ gap: 12px;
460
+ min-width: 0;
461
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
462
+ border-radius: 8px;
463
+ background: var(--surface-primary, var(--background, #ffffff));
464
+ box-shadow: 0 18px 45px color-mix(in srgb, #000000 16%, transparent);
465
+ padding: 14px;
466
+ }
467
+
468
+ .nsr-overlay-sheet {
469
+ border-radius: 8px 8px 0 0;
470
+ }
471
+
472
+ .nsr-overlay-header {
473
+ display: flex;
474
+ align-items: flex-start;
475
+ justify-content: space-between;
476
+ gap: 12px;
477
+ }
478
+
479
+ .nsr-overlay-title {
480
+ margin: 0;
481
+ color: var(--text-primary, #171717);
482
+ font-size: 0.9375rem;
483
+ font-weight: 650;
484
+ line-height: 1.25;
485
+ }
486
+
487
+ .nsr-overlay-description {
488
+ margin: 0;
489
+ color: var(--text-secondary, #5f6368);
490
+ font-size: 0.8125rem;
491
+ }
492
+
36
493
  .nsr-shell-inline,
37
494
  .nsr-shell-pip {
38
495
  max-width: 760px;
@@ -276,6 +733,31 @@
276
733
  font-weight: 600;
277
734
  }
278
735
 
736
+ .nsr-field-required,
737
+ .nsr-field-error {
738
+ color: var(--danger, #b4232c);
739
+ }
740
+
741
+ .nsr-field-error {
742
+ font-size: 0.8125rem;
743
+ }
744
+
745
+ .nsr-field :where(input, select, textarea) {
746
+ min-height: 34px;
747
+ width: 100%;
748
+ min-width: 0;
749
+ border: 1px solid var(--border-subtle, color-mix(in srgb, currentColor 14%, transparent));
750
+ border-radius: 8px;
751
+ background: var(--surface-primary, #ffffff);
752
+ color: var(--text-primary, #171717);
753
+ font: inherit;
754
+ padding: 7px 10px;
755
+ }
756
+
757
+ .nsr-field[aria-invalid="true"] :where(input, select, textarea) {
758
+ border-color: color-mix(in srgb, var(--danger, #b4232c) 48%, transparent);
759
+ }
760
+
279
761
  .nsr-stepper {
280
762
  display: inline-grid;
281
763
  grid-template-columns: 32px minmax(32px, auto) 32px;
@@ -321,8 +803,8 @@
321
803
  color: var(--danger, #b4232c);
322
804
  }
323
805
 
324
- .dark :where(.nsr-shell, .nsr-fullscreen-shell, .nsr-inline-card),
325
- :where(.nsr-shell, .nsr-fullscreen-shell, .nsr-inline-card).dark {
806
+ .dark :where(.nsr-shell, .nsr-frame, .nsr-fullscreen-shell, .nsr-inline-card),
807
+ :where(.nsr-shell, .nsr-frame, .nsr-fullscreen-shell, .nsr-inline-card).dark {
326
808
  --background: #171717;
327
809
  --surface-primary: #212121;
328
810
  --surface-secondary: #2f2f2f;
@@ -330,17 +812,40 @@
330
812
  --text-secondary: #b4b4b4;
331
813
  --border-subtle: #3a3a3a;
332
814
  --accent: #8aa4ff;
815
+ --accent-foreground: #111827;
333
816
  }
334
817
 
335
818
  @media (max-width: 520px) {
819
+ .nsr-frame-surface,
336
820
  .nsr-card,
337
821
  .nsr-shell-surface,
338
822
  .nsr-inline-card {
339
823
  padding: 12px;
340
824
  }
341
825
 
826
+ .nsr-frame-header,
827
+ .nsr-region-header,
828
+ .nsr-flow-split,
829
+ .nsr-flow-sidebar {
830
+ grid-template-columns: 1fr;
831
+ }
832
+
833
+ .nsr-frame-header,
834
+ .nsr-region-header {
835
+ display: grid;
836
+ }
837
+
838
+ .nsr-frame-meta,
839
+ .nsr-region-meta {
840
+ justify-content: flex-start;
841
+ }
842
+
342
843
  .nsr-inline-list-item {
343
844
  grid-template-columns: minmax(0, 1fr);
344
845
  }
846
+
847
+ .nsr-collection-item {
848
+ grid-template-columns: minmax(0, 1fr);
849
+ }
345
850
  }
346
851
  }