@noodleseed/one 0.90.0 → 0.91.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 (101) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +3 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/auth-live-doctor.js +1 -1
  5. package/dist/commands/auth-live-doctor.js.map +1 -1
  6. package/dist/commands/catalog-data-local-authoring.d.ts.map +1 -1
  7. package/dist/commands/catalog-data-local-authoring.js +27 -0
  8. package/dist/commands/catalog-data-local-authoring.js.map +1 -1
  9. package/dist/commands/design.d.ts +7 -0
  10. package/dist/commands/design.d.ts.map +1 -0
  11. package/dist/commands/design.js +95 -0
  12. package/dist/commands/design.js.map +1 -0
  13. package/dist/commands/devtools.d.ts.map +1 -1
  14. package/dist/commands/devtools.js +5 -1
  15. package/dist/commands/devtools.js.map +1 -1
  16. package/dist/devtools-design-brief.d.ts +10 -0
  17. package/dist/devtools-design-brief.d.ts.map +1 -0
  18. package/dist/devtools-design-brief.js +121 -0
  19. package/dist/devtools-design-brief.js.map +1 -0
  20. package/dist/devtools-design-contract.d.ts +74 -0
  21. package/dist/devtools-design-contract.d.ts.map +1 -0
  22. package/dist/devtools-design-contract.js +306 -0
  23. package/dist/devtools-design-contract.js.map +1 -0
  24. package/dist/devtools-design-element.d.ts +6 -0
  25. package/dist/devtools-design-element.d.ts.map +1 -0
  26. package/dist/devtools-design-element.js +233 -0
  27. package/dist/devtools-design-element.js.map +1 -0
  28. package/dist/devtools-design-preview.d.ts +6 -0
  29. package/dist/devtools-design-preview.d.ts.map +1 -0
  30. package/dist/devtools-design-preview.js +438 -0
  31. package/dist/devtools-design-preview.js.map +1 -0
  32. package/dist/devtools-design-routes.d.ts +14 -0
  33. package/dist/devtools-design-routes.d.ts.map +1 -0
  34. package/dist/devtools-design-routes.js +197 -0
  35. package/dist/devtools-design-routes.js.map +1 -0
  36. package/dist/devtools-design-store.d.ts +16 -0
  37. package/dist/devtools-design-store.d.ts.map +1 -0
  38. package/dist/devtools-design-store.js +209 -0
  39. package/dist/devtools-design-store.js.map +1 -0
  40. package/dist/devtools-design-styles.d.ts +3 -0
  41. package/dist/devtools-design-styles.d.ts.map +1 -0
  42. package/dist/devtools-design-styles.js +509 -0
  43. package/dist/devtools-design-styles.js.map +1 -0
  44. package/dist/devtools-design.d.ts +1 -3
  45. package/dist/devtools-design.d.ts.map +1 -1
  46. package/dist/devtools-design.js +449 -56
  47. package/dist/devtools-design.js.map +1 -1
  48. package/dist/devtools-harness.d.ts.map +1 -1
  49. package/dist/devtools-harness.js +13 -10
  50. package/dist/devtools-harness.js.map +1 -1
  51. package/dist/devtools-preview.d.ts +3 -0
  52. package/dist/devtools-preview.d.ts.map +1 -1
  53. package/dist/devtools-preview.js +3 -0
  54. package/dist/devtools-preview.js.map +1 -1
  55. package/dist/devtools-responsive-styles.d.ts.map +1 -1
  56. package/dist/devtools-responsive-styles.js +15 -0
  57. package/dist/devtools-responsive-styles.js.map +1 -1
  58. package/dist/devtools-styles.js +1 -1
  59. package/dist/devtools-styles.js.map +1 -1
  60. package/dist/preview-session.d.ts +5 -0
  61. package/dist/preview-session.d.ts.map +1 -1
  62. package/dist/preview-session.js +1 -0
  63. package/dist/preview-session.js.map +1 -1
  64. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  65. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  66. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  67. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js +1 -1
  68. package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js.map +1 -1
  69. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +4 -4
  70. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  71. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  72. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  73. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  74. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.d.ts.map +1 -1
  75. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.js +12 -0
  76. package/node_modules/@noodle-borg/agent-kit/dist/skill-design-refs.js.map +1 -1
  77. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  78. package/node_modules/@noodle-borg/auth/dist/verify.d.ts +3 -1
  79. package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
  80. package/node_modules/@noodle-borg/auth/dist/verify.js +16 -4
  81. package/node_modules/@noodle-borg/auth/dist/verify.js.map +1 -1
  82. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.d.ts +0 -2
  83. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.d.ts.map +1 -1
  84. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.js +0 -76
  85. package/node_modules/@noodle-borg/compiler/dist/widget-ui-style.js.map +1 -1
  86. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +2 -8
  87. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  88. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +8 -237
  89. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  90. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts +26 -0
  91. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts.map +1 -0
  92. package/node_modules/@noodle-borg/connector-http/dist/http-response.js +249 -0
  93. package/node_modules/@noodle-borg/connector-http/dist/http-response.js.map +1 -0
  94. package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts.map +1 -1
  95. package/node_modules/@noodle-borg/service/dist/customer-verifier.js +8 -5
  96. package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
  97. package/package.json +1 -1
  98. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.d.ts +0 -2
  99. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.d.ts.map +0 -1
  100. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.js +0 -22
  101. package/node_modules/@noodle-borg/compiler/dist/widget-tailwind-tokens.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import { type DesignSessionV1 } from './devtools-design-contract.js';
2
+ export interface DesignStore {
3
+ readDraft(): DesignSessionV1 | undefined;
4
+ writeDraft(session: DesignSessionV1, expectedUpdatedAt?: string): void;
5
+ finalize(session: DesignSessionV1): DesignSessionV1;
6
+ readLatest(): DesignSessionV1 | undefined;
7
+ }
8
+ export declare class DesignStoreConflictError extends Error {
9
+ readonly current: DesignSessionV1;
10
+ constructor(current: DesignSessionV1);
11
+ }
12
+ export declare class DesignStoreCorruptError extends Error {
13
+ constructor(message: string, options?: ErrorOptions);
14
+ }
15
+ export declare function createDesignStore(projectRoot: string): DesignStore;
16
+ //# sourceMappingURL=devtools-design-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-design-store.d.ts","sourceRoot":"","sources":["../src/devtools-design-store.ts"],"names":[],"mappings":"AAgBA,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,+BAA+B,CAAC;AAQvC,MAAM,WAAW,WAAW;IAC1B,SAAS,IAAI,eAAe,GAAG,SAAS,CAAC;IACzC,UAAU,CAAC,OAAO,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAAC;IACpD,UAAU,IAAI,eAAe,GAAG,SAAS,CAAC;CAC3C;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;gBAEtB,OAAO,EAAE,eAAe;CAKrC;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AA8HD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CA0ElE"}
@@ -0,0 +1,209 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { chmodSync, closeSync, existsSync, fsyncSync, linkSync, mkdirSync, openSync, readFileSync, renameSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
4
+ import { DESIGN_MAX_BODY_BYTES, validateDesignSession, } from './devtools-design-contract.js';
5
+ export class DesignStoreConflictError extends Error {
6
+ current;
7
+ constructor(current) {
8
+ super('The design draft changed since it was loaded.');
9
+ this.name = 'DesignStoreConflictError';
10
+ this.current = current;
11
+ }
12
+ }
13
+ export class DesignStoreCorruptError extends Error {
14
+ constructor(message, options) {
15
+ super(message, options);
16
+ this.name = 'DesignStoreCorruptError';
17
+ }
18
+ }
19
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
20
+ function fsyncPath(path) {
21
+ const descriptor = openSync(path, 'r');
22
+ try {
23
+ fsyncSync(descriptor);
24
+ }
25
+ finally {
26
+ closeSync(descriptor);
27
+ }
28
+ }
29
+ function ensurePrivateDirectory(path) {
30
+ mkdirSync(path, { recursive: true, mode: 0o700 });
31
+ chmodSync(path, 0o700);
32
+ }
33
+ function serialized(value) {
34
+ const body = `${JSON.stringify(value, null, 2)}\n`;
35
+ if (Buffer.byteLength(body, 'utf8') > DESIGN_MAX_BODY_BYTES) {
36
+ throw new Error(`Design Session exceeds ${DESIGN_MAX_BODY_BYTES} bytes`);
37
+ }
38
+ return body;
39
+ }
40
+ function atomicWrite(path, value) {
41
+ const directory = dirname(path);
42
+ ensurePrivateDirectory(directory);
43
+ const temporaryPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
44
+ try {
45
+ writeFileSync(temporaryPath, serialized(value), {
46
+ encoding: 'utf8',
47
+ flag: 'wx',
48
+ mode: 0o600,
49
+ });
50
+ fsyncPath(temporaryPath);
51
+ renameSync(temporaryPath, path);
52
+ chmodSync(path, 0o600);
53
+ fsyncPath(directory);
54
+ }
55
+ finally {
56
+ if (existsSync(temporaryPath))
57
+ unlinkSync(temporaryPath);
58
+ }
59
+ }
60
+ function atomicWriteImmutable(path, value) {
61
+ const directory = dirname(path);
62
+ ensurePrivateDirectory(directory);
63
+ const temporaryPath = `${path}.${process.pid}.${randomUUID()}.tmp`;
64
+ try {
65
+ writeFileSync(temporaryPath, serialized(value), {
66
+ encoding: 'utf8',
67
+ flag: 'wx',
68
+ mode: 0o600,
69
+ });
70
+ fsyncPath(temporaryPath);
71
+ linkSync(temporaryPath, path);
72
+ chmodSync(path, 0o600);
73
+ fsyncPath(directory);
74
+ }
75
+ finally {
76
+ if (existsSync(temporaryPath))
77
+ unlinkSync(temporaryPath);
78
+ }
79
+ }
80
+ function readJson(path) {
81
+ if (!existsSync(path))
82
+ return undefined;
83
+ try {
84
+ if (statSync(path).size > DESIGN_MAX_BODY_BYTES) {
85
+ throw new Error(`file exceeds ${DESIGN_MAX_BODY_BYTES} bytes`);
86
+ }
87
+ return JSON.parse(readFileSync(path, 'utf8'));
88
+ }
89
+ catch (error) {
90
+ throw new DesignStoreCorruptError(`Invalid design state at ${path}`, {
91
+ cause: error,
92
+ });
93
+ }
94
+ }
95
+ function readSession(path) {
96
+ const value = readJson(path);
97
+ if (value === undefined)
98
+ return undefined;
99
+ try {
100
+ return validateDesignSession(value);
101
+ }
102
+ catch (error) {
103
+ throw new DesignStoreCorruptError(`Invalid Design Session at ${path}`, {
104
+ cause: error,
105
+ });
106
+ }
107
+ }
108
+ function readLatestPointer(path) {
109
+ const value = readJson(path);
110
+ if (value === undefined)
111
+ return undefined;
112
+ try {
113
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
114
+ throw new Error('latest pointer must be an object');
115
+ }
116
+ const input = value;
117
+ const keys = Object.keys(input);
118
+ if (keys.length !== 3 ||
119
+ !keys.includes('version') ||
120
+ !keys.includes('id') ||
121
+ !keys.includes('updatedAt')) {
122
+ throw new Error('latest pointer has unknown or missing fields');
123
+ }
124
+ if (input.version !== 1)
125
+ throw new Error('unsupported latest pointer version');
126
+ if (typeof input.id !== 'string' || !UUID.test(input.id)) {
127
+ throw new Error('latest pointer id must be a UUID');
128
+ }
129
+ if (typeof input.updatedAt !== 'string') {
130
+ throw new Error('latest pointer updatedAt must be a string');
131
+ }
132
+ const updatedAt = new Date(input.updatedAt);
133
+ if (Number.isNaN(updatedAt.valueOf()) || updatedAt.toISOString() !== input.updatedAt) {
134
+ throw new Error('latest pointer updatedAt must be an ISO timestamp');
135
+ }
136
+ return { version: 1, id: input.id, updatedAt: input.updatedAt };
137
+ }
138
+ catch (error) {
139
+ throw new DesignStoreCorruptError(`Invalid latest design pointer at ${path}`, {
140
+ cause: error,
141
+ });
142
+ }
143
+ }
144
+ export function createDesignStore(projectRoot) {
145
+ const designDirectory = join(projectRoot, '.noodle', 'design');
146
+ const sessionsDirectory = join(designDirectory, 'sessions');
147
+ const draftPath = join(designDirectory, 'draft.json');
148
+ const latestPath = join(designDirectory, 'latest.json');
149
+ return {
150
+ readDraft() {
151
+ return readSession(draftPath);
152
+ },
153
+ writeDraft(session, expectedUpdatedAt) {
154
+ const validated = validateDesignSession(session);
155
+ if (validated.status !== 'draft') {
156
+ throw new Error('Only draft Design Sessions can be written as the current draft.');
157
+ }
158
+ const current = readSession(draftPath);
159
+ if (current !== undefined) {
160
+ if (expectedUpdatedAt === undefined || current.updatedAt !== expectedUpdatedAt) {
161
+ throw new DesignStoreConflictError(current);
162
+ }
163
+ }
164
+ atomicWrite(draftPath, validated);
165
+ },
166
+ finalize(session) {
167
+ const validated = validateDesignSession(session);
168
+ if (validated.status !== 'draft') {
169
+ throw new Error('Only a draft Design Session can be finalized.');
170
+ }
171
+ const meaningful = validated.annotations.some((annotation) => annotation.intent.trim().length > 0 || annotation.changes.length > 0);
172
+ if (!meaningful) {
173
+ throw new Error('A Design Session needs at least one meaningful annotation.');
174
+ }
175
+ const updatedAt = new Date().toISOString();
176
+ const ready = validateDesignSession({
177
+ ...validated,
178
+ id: randomUUID(),
179
+ status: 'ready',
180
+ updatedAt,
181
+ });
182
+ ensurePrivateDirectory(sessionsDirectory);
183
+ atomicWriteImmutable(join(sessionsDirectory, `${ready.id}.json`), ready);
184
+ atomicWrite(latestPath, {
185
+ version: 1,
186
+ id: ready.id,
187
+ updatedAt: ready.updatedAt,
188
+ });
189
+ return ready;
190
+ },
191
+ readLatest() {
192
+ const pointer = readLatestPointer(latestPath);
193
+ if (pointer === undefined)
194
+ return undefined;
195
+ const sessionPath = join(sessionsDirectory, `${pointer.id}.json`);
196
+ const session = readSession(sessionPath);
197
+ if (session === undefined) {
198
+ throw new DesignStoreCorruptError(`Latest design snapshot ${pointer.id} does not exist.`);
199
+ }
200
+ if (session.id !== pointer.id ||
201
+ session.updatedAt !== pointer.updatedAt ||
202
+ session.status !== 'ready') {
203
+ throw new DesignStoreCorruptError(`Latest design snapshot ${pointer.id} does not match its pointer.`);
204
+ }
205
+ return session;
206
+ },
207
+ };
208
+ }
209
+ //# sourceMappingURL=devtools-design-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-design-store.js","sourceRoot":"","sources":["../src/devtools-design-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Premium, flat Design workspace styling kept separate from the core devtools stylesheet. */
2
+ export declare const DEVTOOLS_DESIGN_STYLES = "\n.mode--design{display:inline-flex;align-items:center;justify-content:center}\n#design-view{\n display:flex;\n min-height:0;\n flex:1;\n padding:0!important;\n overflow:hidden;\n}\n.design-empty{\n display:flex;\n align-items:center;\n justify-content:center;\n flex:1;\n flex-direction:column;\n gap:12px;\n padding:32px;\n text-align:center;\n}\n.design-empty[hidden],.design-workspace[hidden]{display:none}\n.design-empty__mark{\n display:grid;\n width:48px;\n height:48px;\n place-items:center;\n border-radius:16px;\n background:linear-gradient(145deg,rgba(249,115,22,.16),rgba(244,63,94,.08));\n color:#fdba74;\n box-shadow:0 18px 48px rgba(0,0,0,.3);\n}\n.design-empty__mark svg{width:22px;height:22px}\n.design-empty h3{margin:5px 0 0;font-size:22px;font-weight:590;letter-spacing:-.035em}\n.design-empty p{max-width:390px;margin:0;color:var(--nd-muted);font-size:12px;line-height:1.65}\n.design-workspace{\n display:grid;\n width:100%;\n min-height:0;\n grid-template-columns:minmax(0,1fr);\n gap:12px;\n padding:12px;\n}\nbody.design-mode .design-workspace{grid-template-columns:minmax(0,1fr)}\nbody.design-mode .pane--log>.rail-heading--activity,\nbody.design-mode .pane--log>#log-list{display:none}\nbody.design-mode .rail-toggle--activity{display:none!important}\nbody.design-mode .pane--log>.design-inspector{\n width:100%;\n height:100%;\n max-height:none;\n flex:1;\n border-radius:inherit;\n transform:none;\n}\n.design-canvas{\n position:relative;\n display:flex;\n min-width:0;\n min-height:0;\n align-items:center;\n flex-direction:column;\n overflow:auto;\n border-radius:20px;\n background:\n radial-gradient(70% 60% at 50% 55%,rgba(249,115,22,.055),transparent 70%),\n rgba(0,0,0,.25);\n}\n.design-canvas__bar{\n position:sticky;\n top:0;\n z-index:4;\n display:flex;\n width:100%;\n align-items:center;\n justify-content:space-between;\n gap:12px;\n padding:13px 15px;\n background:linear-gradient(180deg,rgba(6,6,7,.94),rgba(6,6,7,.72),transparent);\n}\n.design-select-toggle{\n display:inline-flex;\n align-items:center;\n gap:8px;\n min-height:34px;\n padding:7px 10px;\n border:0;\n border-radius:10px;\n background:rgba(255,255,255,.045);\n color:#d4d4d8;\n font-size:10.5px;\n font-weight:600;\n cursor:pointer;\n transition:background 140ms ease,color 140ms ease,transform 140ms cubic-bezier(.23,1,.32,1);\n}\n.design-select-toggle svg{width:15px;height:15px;flex:none;color:#a1a1aa}\n.design-select-toggle[aria-pressed=true]{\n background:rgba(249,115,22,.14);\n color:#fff7ed;\n}\n.design-select-toggle[aria-pressed=true] svg{color:#f97316}\n.design-select-toggle:active{transform:scale(.98)}\n.design-canvas__meta{\n display:flex;\n align-items:center;\n gap:7px;\n}\n.design-count{\n display:inline-flex;\n align-items:center;\n gap:5px;\n flex:none;\n min-height:30px;\n padding:5px 9px;\n border:0;\n border-radius:999px;\n background:rgba(255,255,255,.055);\n color:#b8b8bf;\n font-family:Inter,ui-sans-serif,system-ui,-apple-system,\"Segoe UI\",sans-serif;\n font-size:9.5px;\n font-weight:650;\n cursor:pointer;\n}\n.design-count svg{width:12px;height:12px;transition:transform 140ms ease}\n.design-count[aria-expanded=true] svg{transform:rotate(180deg)}\n.design-count:disabled{opacity:.5;cursor:default}\n.design-unsaved{\n padding:4px 7px;\n border-radius:999px;\n background:rgba(249,115,22,.12);\n color:#fdba74;\n font-size:8px;\n font-weight:700;\n letter-spacing:.05em;\n text-transform:uppercase;\n}\n#design-frame-slot{\n display:flex;\n width:100%;\n min-height:0;\n flex:1;\n align-items:flex-start;\n justify-content:center;\n padding:30px 24px 80px;\n}\n#design-frame-slot #frame{\n margin:0 auto;\n box-shadow:0 28px 90px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.045);\n}\n.design-inspector{\n display:flex;\n min-width:0;\n min-height:0;\n flex-direction:column;\n overflow:hidden;\n border-radius:20px;\n background:rgba(36,36,38,.985);\n color:#f4f4f5;\n font-family:Inter,ui-sans-serif,system-ui,-apple-system,\"Segoe UI\",sans-serif;\n box-shadow:0 24px 70px rgba(0,0,0,.42);\n}\n.design-inspector__head{\n display:flex;\n align-items:flex-start;\n justify-content:space-between;\n gap:12px;\n padding:16px 16px 13px;\n}\n.design-inspector__eyebrow{\n display:block;\n margin-bottom:5px;\n color:#fdba74;\n font-family:var(--nd-mono);\n font-size:8px;\n font-weight:700;\n letter-spacing:.11em;\n text-transform:uppercase;\n}\n.design-target{\n min-width:0;\n margin:0;\n overflow:hidden;\n color:#f4f4f5;\n font-family:var(--nd-mono);\n font-size:12px;\n font-weight:630;\n text-overflow:ellipsis;\n white-space:nowrap;\n}\n.design-target-path{\n display:block;\n max-width:230px;\n margin-top:4px;\n overflow:hidden;\n color:var(--nd-faint);\n font-family:var(--nd-mono);\n font-size:9px;\n text-overflow:ellipsis;\n white-space:nowrap;\n}\n.design-icon-button{\n display:inline-grid;\n width:31px;\n height:31px;\n flex:none;\n place-items:center;\n border:0;\n border-radius:10px;\n background:rgba(255,255,255,.045);\n color:var(--nd-muted);\n cursor:pointer;\n transition:transform 140ms cubic-bezier(.23,1,.32,1),background 140ms ease,color 140ms ease;\n}\n.design-icon-button svg{width:15px;height:15px}\n.design-icon-button:disabled{opacity:.3;cursor:default}\n@media (hover:hover) and (pointer:fine){\n .design-icon-button:not(:disabled):hover{background:rgba(255,255,255,.09);color:#fff}\n}\n.design-icon-button:not(:disabled):active,.design-action:active{transform:scale(.97)}\n.design-scroll{min-height:0;flex:1;overflow:auto;padding:0 12px 16px}\n.design-section{\n padding:13px 4px;\n border-top:1px solid rgba(255,255,255,.055);\n}\n.design-section:first-child{border-top:0}\n.design-section__label{\n display:block;\n margin-bottom:8px;\n color:var(--nd-faint);\n font-size:8px;\n font-weight:700;\n letter-spacing:.11em;\n text-transform:uppercase;\n}\n#design-intent{\n width:100%;\n min-height:76px;\n resize:vertical;\n padding:11px 12px;\n border:0;\n border-radius:13px;\n background:rgba(0,0,0,.34);\n color:#f4f4f5;\n font-size:11.5px;\n line-height:1.55;\n outline:0;\n}\n#design-intent::placeholder{color:#5d5d66}\n#design-intent:focus-visible,.design-input:focus-visible{\n outline:2px solid rgba(249,115,22,.82);\n outline-offset:2px;\n box-shadow:0 0 0 4px rgba(249,115,22,.14);\n}\n.design-control-group{display:grid;gap:8px}\n.design-control-row{\n display:grid;\n grid-template-columns:minmax(0,1fr) minmax(102px,126px);\n align-items:center;\n gap:9px;\n}\n.design-control-row>label{color:#b8b8bf;font-size:10.5px}\n.design-input{\n width:100%;\n min-width:0;\n height:32px;\n padding:0 9px;\n border:0;\n border-radius:9px;\n background:rgba(0,0,0,.36);\n color:#e4e4e7;\n font-family:var(--nd-mono);\n font-size:10px;\n outline:0;\n}\n.design-color-input{display:grid;grid-template-columns:22px minmax(0,1fr);gap:5px}\n.design-color-input input[type=color]{\n width:22px;\n height:32px;\n padding:0;\n border:0;\n border-radius:8px;\n background:transparent;\n overflow:hidden;\n cursor:pointer;\n}\n.design-color-input input[type=color]::-webkit-color-swatch-wrapper{padding:0}\n.design-color-input input[type=color]::-webkit-color-swatch{border:0;border-radius:7px}\n.design-segment{\n display:grid;\n grid-template-columns:repeat(3,1fr);\n gap:3px;\n padding:3px;\n border-radius:10px;\n background:rgba(0,0,0,.3);\n}\n.design-segment button{\n min-height:27px;\n padding:4px;\n border:0;\n border-radius:7px;\n background:transparent;\n color:var(--nd-faint);\n font-size:9px;\n cursor:pointer;\n}\n.design-segment button[aria-pressed=true]{background:rgba(255,255,255,.1);color:#fff}\n.design-tweaks-popover{\n position:absolute;\n top:58px;\n right:15px;\n z-index:20;\n display:flex;\n width:min(360px,calc(100% - 30px));\n max-height:min(560px,calc(100% - 78px));\n flex-direction:column;\n gap:10px;\n padding:12px;\n overflow:hidden;\n border:0;\n border-radius:18px;\n background:rgba(38,38,41,.78);\n color:#f4f4f5;\n font-family:Inter,ui-sans-serif,system-ui,-apple-system,\"Segoe UI\",sans-serif;\n box-shadow:0 26px 80px rgba(0,0,0,.62),0 1px 0 rgba(255,255,255,.045) inset;\n -webkit-backdrop-filter:blur(22px) saturate(1.15);\n backdrop-filter:blur(22px) saturate(1.15);\n opacity:0;\n visibility:hidden;\n pointer-events:none;\n transform:translateY(-6px) scale(.985);\n transform-origin:top right;\n transition:\n opacity 160ms ease,\n transform 160ms cubic-bezier(.23,1,.32,1),\n visibility 160ms step-end;\n}\n.design-tweaks-popover[hidden]{display:none}\n.design-tweaks-popover.is-open{\n opacity:1;\n visibility:visible;\n pointer-events:auto;\n transform:translateY(0) scale(1);\n transition:\n opacity 160ms ease,\n transform 160ms cubic-bezier(.23,1,.32,1),\n visibility 0ms step-start;\n}\n.design-tweaks-popover__head{\n display:flex;\n align-items:center;\n justify-content:space-between;\n gap:12px;\n flex:none;\n padding:1px 2px 3px;\n}\n.design-tweaks-popover__head>span:first-child{\n color:#f4f4f5;\n font-size:11px;\n font-weight:680;\n letter-spacing:-.01em;\n}\n.design-tweaks-popover__hint{\n color:#85858e;\n font-family:var(--nd-mono);\n font-size:7.5px;\n font-weight:700;\n letter-spacing:.1em;\n text-transform:uppercase;\n}\n.design-tweaks-popover .design-changes{\n min-height:0;\n overflow:auto;\n overscroll-behavior:contain;\n scrollbar-width:thin;\n scrollbar-color:rgba(255,255,255,.15) transparent;\n}\n.design-changes{display:grid;gap:8px}\n.design-change{\n display:grid;\n gap:10px;\n padding:11px;\n border-radius:13px;\n background:rgba(0,0,0,.2);\n}\n.design-change__heading{display:grid;gap:3px}\n.design-change__number{\n color:#fdba74;\n font-size:7.5px;\n font-weight:750;\n letter-spacing:.09em;\n text-transform:uppercase;\n}\n.design-change__heading strong{\n display:block;\n overflow:hidden;\n color:#f4f4f5;\n font-size:11px;\n font-weight:650;\n text-overflow:ellipsis;\n white-space:nowrap;\n}\n.design-change__details{display:grid;gap:8px;margin:0}\n.design-change__details>div{display:grid;gap:2px}\n.design-change__details dt{\n color:#8d8d96;\n font-size:8px;\n font-weight:700;\n letter-spacing:.07em;\n text-transform:uppercase;\n}\n.design-change__details dd{\n margin:0;\n color:#d4d4d8;\n font-family:var(--nd-mono);\n font-size:9px;\n line-height:1.5;\n white-space:pre-wrap;\n word-break:break-word;\n}\n.design-change__actions{display:flex;gap:5px}\n.design-change__actions button{\n min-height:28px;\n padding:5px 8px;\n border:0;\n border-radius:8px;\n background:rgba(255,255,255,.055);\n color:#c4c4cc;\n font-size:9px;\n cursor:pointer;\n}\n.design-change__actions button.is-danger{margin-left:auto;background:transparent;color:#fb7185}\n.design-changes-empty{padding:8px 1px;color:var(--nd-faint);font-size:10px;line-height:1.55}\n.design-inspector__footer{\n display:grid;\n gap:8px;\n padding:12px;\n background:rgba(0,0,0,.2);\n box-shadow:0 -12px 32px rgba(0,0,0,.12);\n}\n.design-history{display:flex;gap:6px}\n.design-history .design-icon-button{width:auto;min-width:65px;padding:0 9px;grid-auto-flow:column;gap:6px}\n.design-history .design-icon-button span{font-size:9.5px}\n.design-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}\n.design-action{\n min-height:38px;\n padding:8px 12px;\n border:0;\n border-radius:12px;\n background:rgba(255,255,255,.065);\n color:#f4f4f5;\n font-size:11px;\n font-weight:640;\n cursor:pointer;\n transition:transform 140ms cubic-bezier(.23,1,.32,1),filter 140ms ease,opacity 140ms ease;\n}\n.design-action:disabled{opacity:.35;cursor:default}\n.design-action--send{\n min-width:116px;\n background:linear-gradient(110deg,#f97316,#f59e0b 48%,#f43f5e);\n color:#100907;\n box-shadow:0 10px 28px rgba(249,115,22,.18);\n}\n.design-status{min-height:16px;color:var(--nd-faint);font-size:9.5px;line-height:1.45}\n.design-status.is-error{color:#fb7185}\n.design-copy-fallback{display:none;gap:7px}\n.design-copy-fallback.is-visible{display:grid;grid-template-columns:minmax(0,1fr) auto}\n.design-copy-fallback input{user-select:all}\n@media (max-width:960px){\n .design-workspace{grid-template-columns:minmax(0,1fr)}\n}\n@media (max-width:760px){\n #design-view{overflow:hidden}\n .design-workspace{display:flex;position:relative;padding:8px}\n .design-canvas{width:100%;border-radius:18px}\n .design-tweaks-popover{\n top:56px;\n right:10px;\n left:10px;\n width:auto;\n max-height:min(55dvh,460px);\n transform-origin:top center;\n }\n #design-frame-slot{padding:22px 10px 250px}\n .design-inspector{\n position:absolute;\n right:8px;\n bottom:8px;\n left:8px;\n z-index:8;\n max-height:min(58dvh,510px);\n border-radius:20px;\n box-shadow:0 -22px 70px rgba(0,0,0,.68);\n transform-origin:bottom center;\n }\n .design-control-row{grid-template-columns:minmax(0,1fr) minmax(112px,138px)}\n}\n@media (max-width:420px){\n .design-canvas__bar{padding:11px 12px}\n .design-select-toggle span{display:none}\n .design-unsaved{display:none}\n .design-actions{grid-template-columns:1fr}\n .design-action--send{min-width:0}\n}\n@media (prefers-reduced-motion:reduce){\n .design-icon-button,.design-action{transition:opacity 120ms ease,background 120ms ease,color 120ms ease}\n .design-tweaks-popover,.design-tweaks-popover.is-open{transition:none}\n #noodle-design-overlay{transition:none!important}\n}\n";
3
+ //# sourceMappingURL=devtools-design-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-design-styles.d.ts","sourceRoot":"","sources":["../src/devtools-design-styles.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,eAAO,MAAM,sBAAsB,w1aA0flC,CAAC"}