@hozu/devtools 0.17.2 → 0.18.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.
@@ -0,0 +1,425 @@
1
+ export const en = {
2
+ 'common.close': 'Close',
3
+ 'common.resize': 'Drag to resize',
4
+ 'dock.grip': 'Hozu DevTools · click to fold · drag to move · Alt+Shift+S toggles Select',
5
+ 'dock.open': 'Open Hozu DevTools',
6
+ 'dock.fold': 'Fold Hozu DevTools',
7
+ 'dock.browse': 'Browse',
8
+ 'dock.select': 'Select',
9
+ 'dock.agent': 'Agent ',
10
+ 'dock.agent.title': 'Notes from your agent on this page (hozu show)',
11
+ 'dock.changes': 'Changes',
12
+ 'dock.page': 'Page',
13
+ 'dock.page.title': 'Select this page: its title, description and other head fields',
14
+ 'dock.layers': 'Layers',
15
+ 'dock.layers.title': 'The parts of this page, and its states that are not on screen',
16
+ 'dock.assets': 'Assets',
17
+ 'dock.assets.title': 'Every component of the app, its variants, previews and uses; and the design tokens',
18
+ 'dock.api': 'API',
19
+ 'dock.api.title': 'The data this page reads and the changes it can make: run them with your own input',
20
+ 'dock.frame': 'Frame',
21
+ 'dock.frame.title': 'The page at an exact size, with its parts on the left and the inspector on the right',
22
+ 'dock.settings': 'Settings',
23
+ 'dock.screen': 'Screen: {name}',
24
+ 'dock.screen.exit': 'Exit the preview from previews.ts',
25
+ 'dock.preview': 'Preview',
26
+ 'dock.preview.named': 'Preview: {name}',
27
+ 'dock.preview.exit': 'Exit the preview',
28
+ 'dock.exit': 'Exit',
29
+ 'tip.click': '{key} a part to select it',
30
+ 'tip.shift': '{key}+click adds another',
31
+ 'tip.parent': '{key} picks its parent',
32
+ 'tip.measure': '{key} measures',
33
+ 'tip.stop': '{key} stops',
34
+ 'hover.shared': 'shared · {count} places',
35
+ 'screens.title': 'Previews (previews.ts)',
36
+ 'screens.preview': 'Preview',
37
+ 'screens.exit': 'Exit',
38
+ 'panel.aria': 'Hozu DevTools inspector',
39
+ 'inspector.kicker.page': 'Page {path}',
40
+ 'inspector.kicker.on': 'On {path}',
41
+ 'inspector.kicker.route': 'Page · route {path}',
42
+ 'inspector.kicker.view': '{kind} · view {view}',
43
+ 'inspector.empty.title': 'Nothing selected. ',
44
+ 'inspector.empty.text': 'Choose Select and click a part of the page, or pick one in Layers.',
45
+ 'inspector.gone.title': 'This part is gone.',
46
+ 'inspector.gone.text': ' The code changed since you selected it: select it again.',
47
+ 'inspector.about': 'About it',
48
+ 'inspector.around': '↑ Select the area around it',
49
+ 'inspector.inside': '↓ Inside',
50
+ 'inspector.parent': '↑ Parent',
51
+ 'inspector.child': '↓ Child',
52
+ 'inspector.remove': 'Remove',
53
+ 'inspector.copy': 'Copy',
54
+ 'inspector.copyLocation': 'Copy the location',
55
+ 'inspector.where': 'Where',
56
+ 'inspector.where.page': 'page',
57
+ 'inspector.where.view': 'view',
58
+ 'inspector.where.route': 'route',
59
+ 'inspector.where.component': 'component',
60
+ 'inspector.where.machine': 'machine',
61
+ 'inspector.component': 'Component',
62
+ 'inspector.usedIn.one': 'used in {count} place',
63
+ 'inspector.usedIn.other': 'used in {count} places',
64
+ 'inspector.head': 'Head',
65
+ 'inspector.text': 'Text',
66
+ 'inspector.sharedBy': 'shared by {count} places',
67
+ 'inspector.shownWhen': 'Shown when',
68
+ 'inspector.behaviour': 'Behaviour',
69
+ 'inspector.insideIt': 'Inside',
70
+ 'kind.element': 'Element',
71
+ 'kind.component': 'Component use',
72
+ 'kind.text': 'Text',
73
+ 'kind.dataText': 'Data text',
74
+ 'kind.query': 'Query',
75
+ 'kind.when': 'State branch',
76
+ 'kind.if': 'Branch',
77
+ 'kind.list': 'List',
78
+ 'kind.html': 'Raw HTML',
79
+ 'kind.embed': 'Embed',
80
+ 'kind.other': 'Node',
81
+ 'scope.component.one': 'Main component · every {name} ({count} place)',
82
+ 'scope.component.other': 'Main component · every {name} ({count} places)',
83
+ 'scope.items': 'Every item in the list',
84
+ 'scope.thisItem': 'Only this item',
85
+ 'scope.instance': 'This instance only',
86
+ 'scope.thisOne': 'Only this one',
87
+ 'change.label': 'Change',
88
+ 'change.aria': 'What should change?',
89
+ 'change.placeholder': 'What should change? For example: “Make it bigger and use the brand red”',
90
+ 'change.others.one': 'This request also has {count} other change. ',
91
+ 'change.others.other': 'This request also has {count} other changes. ',
92
+ 'change.review': 'Review all',
93
+ 'change.hint': 'Described parts stay in this request when you select the next one.',
94
+ 'export.draft': 'The request, as the agent will read it',
95
+ 'export.edit': 'Edit before sending',
96
+ 'export.discard': 'Discard edits',
97
+ 'export.copy': 'Copy for AI',
98
+ 'export.copy.many': 'Copy for AI ({count})',
99
+ 'export.copied.one': 'Copied the change. Paste it to your agent.',
100
+ 'export.copied.other': 'Copied all {count} changes. Paste it to your agent.',
101
+ 'export.save': 'Save request',
102
+ 'export.save.many': 'Save request ({count})',
103
+ 'export.saved': 'Saved {file}. Copied “{ask}”: paste it to your agent.',
104
+ 'export.notSaved': 'Not saved: {error}',
105
+ 'export.download': 'Download .md',
106
+ 'export.downloaded': 'Downloaded {file}',
107
+ 'changes.title': 'Changes',
108
+ 'changes.notSent': 'Not sent yet',
109
+ 'changes.tab.draft': 'This request · {count}',
110
+ 'changes.tab.saved': 'Saved · {count}',
111
+ 'changes.resolve': 'Resolve',
112
+ 'changes.resolve.title': 'Resolved or not needed: remove it',
113
+ 'changes.resolve.confirm': 'Remove?',
114
+ 'changes.noRequests': 'No open requests. Resolved ones are removed.',
115
+ 'changes.copyAll': 'Copy all {count} for AI',
116
+ 'changes.copiedAll': 'Copied all {count} as one prompt. Paste it to your agent.',
117
+ 'changes.copyAll.why': 'One prompt with every open request: the fewest tokens and no file reads. Works in any chat.',
118
+ 'changes.copyPaths': 'Copy file paths only',
119
+ 'changes.copiedPaths': 'Copied the file paths.',
120
+ 'changes.copyPaths.why': 'For an agent in this project that should read the files itself (or run hozu requests --full).',
121
+ 'changes.styles.one': '{count} style change',
122
+ 'changes.styles.other': '{count} style changes',
123
+ 'changes.edit': 'Edit',
124
+ 'changes.remove': 'Remove',
125
+ 'changes.empty.title': 'Nothing yet. ',
126
+ 'changes.empty.text': 'Choose Select, click a part and describe the change. Every described part is added here.',
127
+ 'request.back': '← Saved',
128
+ 'request.copyAsk': 'Copy “do this request”',
129
+ 'request.copiedAsk': 'Copied “{ask}”.',
130
+ 'request.copy': 'Copy request',
131
+ 'request.copied': 'Copied the whole request.',
132
+ 'request.remove': 'Resolve · remove',
133
+ 'request.remove.confirm': 'Click again to remove',
134
+ 'settings.title': 'Settings',
135
+ 'settings.appearance': 'Appearance',
136
+ 'settings.system': 'System',
137
+ 'settings.light': 'Light',
138
+ 'settings.dark': 'Dark',
139
+ 'settings.show': 'Show',
140
+ 'settings.builder': 'Builder',
141
+ 'settings.builder.detail': 'Plain words: what it is, what a change reaches. No code names.',
142
+ 'settings.developer': 'Developer',
143
+ 'settings.developer.detail': 'Files, the code excerpt, components, conditions, transitions and node ids.',
144
+ 'settings.requests': 'Requests',
145
+ 'settings.excerpt': 'Add the code excerpt',
146
+ 'settings.excerpt.detail': 'Seven lines around each place. The agent reads the file anyway, so it is off by default.',
147
+ 'settings.keys': 'Keys',
148
+ 'keys.toggle': 'Select on or off',
149
+ 'keys.click': 'Select',
150
+ 'keys.add': 'Add to the request',
151
+ 'keys.around': 'Select the area around it',
152
+ 'keys.inside': 'Select inside it',
153
+ 'keys.beside': 'Next / previous part beside it',
154
+ 'keys.measure': 'Measure: W × H and the distance to the part under the pointer',
155
+ 'keys.text': 'Select a text',
156
+ 'keys.arrows': 'Around it / inside it',
157
+ 'keys.escape': 'Back to Browse',
158
+ 'bench.device': 'Device',
159
+ 'bench.option': '{name} {width}',
160
+ 'bench.phone': 'Phone',
161
+ 'bench.tablet': 'Tablet',
162
+ 'bench.laptop': 'Laptop',
163
+ 'bench.desktop': 'Desktop',
164
+ 'bench.custom': 'Custom',
165
+ 'bench.rotate': 'Rotate',
166
+ 'bench.api.title': 'The data this page reads and the changes it can make',
167
+ 'bench.exit': 'Exit frame',
168
+ 'bench.frame': 'The page in Frame',
169
+ 'layers.title': 'Layers',
170
+ 'layers.find': 'Find a part or a state',
171
+ 'layers.find.placeholder': 'Find a part or a state…',
172
+ 'layers.data': 'Data: {name}',
173
+ 'layers.while': 'While {states}',
174
+ 'layers.if': 'Only sometimes',
175
+ 'layers.fold.show': 'Show inside',
176
+ 'layers.fold.hide': 'Hide inside',
177
+ 'layers.off': 'not on screen',
178
+ 'layers.off.title': 'Not on screen now: preview its state below',
179
+ 'layers.shared': 'shared',
180
+ 'layers.states': 'Not on screen',
181
+ 'layers.states.plain': 'Other states of this page',
182
+ 'layers.preview': 'Preview',
183
+ 'layers.exitPreview': 'Exit preview',
184
+ 'layers.noStates': 'This page has no other states.',
185
+ 'layers.jump': 'States ({count}) ↓',
186
+ 'layers.jump.plain': 'Other states ({count}) ↓',
187
+ 'layers.noTree': 'No page structure: is this a Hozu page under hozu dev?',
188
+ 'design.label': 'Design',
189
+ 'design.label.preview': 'Style (preview)',
190
+ 'design.frame': 'Frame',
191
+ 'design.autoLayout': 'Auto layout',
192
+ 'design.layer': 'Layer',
193
+ 'design.fill': 'Fill',
194
+ 'design.stroke': 'Stroke',
195
+ 'design.effects': 'Effects',
196
+ 'design.text': 'Text',
197
+ 'design.prop.width': 'W',
198
+ 'design.prop.height': 'H',
199
+ 'design.prop.borderRadius': 'Corner radius',
200
+ 'design.prop.gap': 'Gap',
201
+ 'design.prop.paddingInline': 'Horizontal padding',
202
+ 'design.prop.paddingBlock': 'Vertical padding',
203
+ 'design.prop.opacity': 'Opacity',
204
+ 'design.prop.backgroundColor': 'Fill',
205
+ 'design.prop.borderWidth': 'Stroke weight',
206
+ 'design.prop.borderColor': 'Stroke',
207
+ 'design.prop.boxShadow': 'Drop shadow',
208
+ 'design.prop.fontSize': 'Font size',
209
+ 'design.prop.fontWeight': 'Weight',
210
+ 'design.prop.color': 'Text colour',
211
+ 'design.now': '{value} (now)',
212
+ 'design.hint': 'Preview only: the agent makes the real change.',
213
+ 'design.reset': 'Reset',
214
+ 'text.label': 'Text',
215
+ 'text.label.preview': 'Text (preview)',
216
+ 'text.input': 'Text on the page',
217
+ 'text.longer': 'Longer',
218
+ 'text.reset': 'Reset',
219
+ 'text.hint': 'Try other words to see how the layout copes. Kept in the request.',
220
+ 'assets.title': 'Assets',
221
+ 'assets.components': 'Components',
222
+ 'assets.styles': 'Styles',
223
+ 'assets.find': 'Find a component',
224
+ 'assets.find.placeholder': 'Find a component…',
225
+ 'assets.loading': 'Loading the components…',
226
+ 'assets.noMatch': 'No components match',
227
+ 'assets.default': 'Default',
228
+ 'assets.renderFailed': 'Could not render this use',
229
+ 'assets.unused': 'Not used on a page yet',
230
+ 'assets.places.one': '{count} place',
231
+ 'assets.places.other': '{count} places',
232
+ 'assets.pages.one': '{count} page',
233
+ 'assets.pages.other': '{count} pages',
234
+ 'assets.client': 'runs in the browser (shown as its server render)',
235
+ 'assets.back': '← All assets',
236
+ 'assets.owner.kit': 'Kit {id}',
237
+ 'assets.owner.feature': 'Feature {id}',
238
+ 'assets.variants': 'Variants',
239
+ 'assets.properties': 'Properties',
240
+ 'assets.none': 'None',
241
+ 'assets.slots': 'Slots',
242
+ 'assets.whereUsed': 'Where used',
243
+ 'assets.show': 'Show the instances',
244
+ 'assets.change': 'Change the main component',
245
+ 'assets.change.aria': 'Change the main component {name}',
246
+ 'assets.change.placeholder': 'What should change in every {name}?',
247
+ 'assets.add': 'Add to the request',
248
+ 'assets.noTheme': 'No theme found',
249
+ 'assets.colours': 'Colours',
250
+ 'assets.textSizes': 'Text sizes',
251
+ 'assets.radius': 'Corner radius',
252
+ 'assets.shadows': 'Shadows',
253
+ 'assets.spacing': 'Spacing unit {unit}px: p-4 is {p4}px.',
254
+ 'assets.screens': 'Screens',
255
+ 'assets.screen.hint': 'open the page, then Layers → Previews',
256
+ 'assets.open': 'Open',
257
+ 'api.title': 'API',
258
+ 'api.close': 'Close the API drawer',
259
+ 'api.queries': 'Queries',
260
+ 'api.mutations': 'Mutations',
261
+ 'api.reads': 'Reads',
262
+ 'api.changes': 'Changes',
263
+ 'api.endpoints': 'Endpoints',
264
+ 'api.history': 'History',
265
+ 'api.notHozu': 'This page is not a Hozu page.',
266
+ 'api.noneHere': 'None on this page.',
267
+ 'api.read': 'read',
268
+ 'api.write': 'write',
269
+ 'api.runs.server': 'server',
270
+ 'api.runs.either': 'server, then browser',
271
+ 'api.runs.browser': 'browser',
272
+ 'api.implemented': 'Where it is implemented',
273
+ 'api.switch.title': 'JSON sends any value, also one the schema rejects',
274
+ 'api.form': 'Form',
275
+ 'api.json': 'JSON',
276
+ 'api.table': 'Table',
277
+ 'api.view': 'View',
278
+ 'api.input.aria': '{ref} input (JSON)',
279
+ 'api.noInput': 'no input',
280
+ 'api.confirm': 'Writes your development data.',
281
+ 'api.cancel': 'Cancel',
282
+ 'api.run': 'Run',
283
+ 'api.run.go': 'Run ▶',
284
+ 'api.running': 'Running…',
285
+ 'api.runAgain': 'Run again',
286
+ 'api.header': 'Header',
287
+ 'api.header.name': 'Header name',
288
+ 'api.header.value': 'Header value',
289
+ 'api.header.value.placeholder': 'Value',
290
+ 'api.header.add': '+ Header',
291
+ 'api.headers': 'Headers',
292
+ 'api.path.aria': 'Path :{name}',
293
+ 'api.query': 'Query (JSON)',
294
+ 'api.body': 'Body',
295
+ 'api.body.json': 'Body (JSON)',
296
+ 'api.body.aria': '{ref} body',
297
+ 'api.send': 'Send ▶',
298
+ 'api.sending': 'Sending…',
299
+ 'api.copied': 'Copied',
300
+ 'api.sent': 'Requests it sent',
301
+ 'api.failed': 'failed',
302
+ 'api.fromServer': 'from the server',
303
+ 'api.fromBrowser': 'from this browser',
304
+ 'api.requestHeaders': 'Request headers',
305
+ 'api.requestBody': 'Request body',
306
+ 'api.responseHeaders': 'Response headers',
307
+ 'api.responseBody': 'Response body',
308
+ 'api.none': '(none)',
309
+ 'api.copyCurl': 'Copy as curl',
310
+ 'api.copyCall': 'Copy as hozu call',
311
+ 'api.copyCall.browser': 'hozu call runs server and either effects; this one needs the browser',
312
+ 'api.empty': 'Run something to see its answer here.',
313
+ 'api.noCalls': 'No calls yet.',
314
+ 'api.ok': 'OK',
315
+ 'api.unexpected': 'Unexpected error',
316
+ 'api.declared': 'Declared error: {error}',
317
+ 'api.redirect': 'Redirect',
318
+ 'api.redirect.value': 'A redirect (the browser does not show where to; open the endpoint URL to follow it)',
319
+ 'api.noAnswer': 'No answer',
320
+ 'api.noClient': 'This page has no client: browser-run effects need one',
321
+ 'api.throughServer': 'through the server',
322
+ 'api.inBrowser': 'in this browser',
323
+ 'api.invalidated': 'Invalidated {tags}',
324
+ 'api.reread': 'the page re-read it',
325
+ 'api.reload': 'reload the page to see it',
326
+ 'api.actAs': 'Act as',
327
+ 'api.actAs.hint': 'development only: sets this browser’s session cookie',
328
+ 'api.session': 'Session (JSON)',
329
+ 'api.session.title': 'The session this browser sends; act as someone else',
330
+ 'api.session.invalid': 'The session is not valid JSON',
331
+ 'api.signOut': 'Sign out',
332
+ 'api.signedOut': 'Signed out',
333
+ 'api.as': 'As {who}',
334
+ 'api.broken': 'The API drawer could not draw: {error}. ',
335
+ 'api.broken.clear': 'Clear its saved state',
336
+ 'notes.kicker': 'From your agent',
337
+ 'notes.title': 'Note {n} of {count}',
338
+ 'notes.none': 'No notes',
339
+ 'notes.empty.title': 'Nothing to show. ',
340
+ 'notes.empty.text': 'Your agent points at parts of the page with hozu show, and they appear here.',
341
+ 'notes.on': 'On ',
342
+ 'notes.source': 'Source ',
343
+ 'notes.elsewhere': 'Not on this page. ',
344
+ 'notes.open': 'Open {path}',
345
+ 'notes.back': '← Back',
346
+ 'notes.next': 'Next →',
347
+ 'notes.reply': 'Reply',
348
+ 'notes.reply.aria': 'Reply to your agent',
349
+ 'notes.reply.placeholder': 'Reply to your agent. For example: “Good, but make it red”',
350
+ 'notes.send': 'Send reply',
351
+ 'notes.sent': 'Sent as request {number}. Your agent reads it with hozu requests.',
352
+ 'notes.notSent': 'Not sent: {error}',
353
+ 'notes.resolve': 'Resolve',
354
+ 'notes.resolve.title': 'Remove this note from the page',
355
+ 'notes.all': 'All notes',
356
+ 'plain.tag.area': 'Area',
357
+ 'plain.tag.button': 'Button',
358
+ 'plain.tag.dropdown': 'Dropdown',
359
+ 'plain.tag.form': 'Form',
360
+ 'plain.tag.heading': 'Heading',
361
+ 'plain.tag.image': 'Image',
362
+ 'plain.tag.input': 'Input',
363
+ 'plain.tag.label': 'Label',
364
+ 'plain.tag.link': 'Link',
365
+ 'plain.tag.list': 'List',
366
+ 'plain.tag.listItem': 'List item',
367
+ 'plain.tag.menu': 'Menu',
368
+ 'plain.tag.paragraph': 'Paragraph',
369
+ 'plain.tag.table': 'Table',
370
+ 'plain.tag.text': 'Text',
371
+ 'plain.tag.textBox': 'Text box',
372
+ 'plain.name.page': 'This page',
373
+ 'plain.name.dataText': 'Text from your data',
374
+ 'plain.name.component': 'Component',
375
+ 'plain.or': ' or ',
376
+ 'plain.shown.while': 'Shown only while {states}.',
377
+ 'plain.shown.if': 'Shown only when a condition holds.',
378
+ 'plain.shown.ready': 'Shown once its data has loaded.',
379
+ 'plain.shown.pending': 'Shown while its data is loading.',
380
+ 'plain.shown.failed': 'Shown when loading its data fails ({error}).',
381
+ 'plain.about.shared': 'A shared {name}: the same design is used in {count} places.',
382
+ 'plain.about.sharedText.one': 'Its text is shared with {count} other place.',
383
+ 'plain.about.sharedText.other': 'Its text is shared with {count} other places.',
384
+ 'plain.about.dataText': 'Its text comes from your data, not from the page design.',
385
+ 'plain.about.listItem': 'One item of a list: changes apply to every item unless you say which.',
386
+ 'plain.about.submit': 'When submitted, it does “{action}”.',
387
+ 'plain.about.event': 'When {dom}ed, it does “{action}”.',
388
+ 'plain.about.page': 'Its title and description are what search engines and shared links show.',
389
+ 'plain.scope.component': 'Main component · every {name} ({count} places)',
390
+ 'plain.scope.instance': 'This instance only',
391
+ 'plain.scope.thisOne': 'Only this one',
392
+ 'plain.scope.items': 'Every item',
393
+ 'plain.ask.listComponent': 'Change every item, this instance only, or the main component (every {name})?',
394
+ 'plain.ask.list': 'Change every item in the list, or only this one?',
395
+ 'plain.ask.component': 'Change this instance only, or the main component (every {name})?',
396
+ };
397
+ let current = {};
398
+ export const setMessages = (messages) => {
399
+ current = messages;
400
+ };
401
+ /** One DevTools string in the person's language (ADR 0060 D): their file's text, else English. */
402
+ export function t(key, vars) {
403
+ const text = current[key] ?? en[key] ?? key;
404
+ return vars
405
+ ? text.replace(/\{(\w+)\}/g, (all, name) => (name in vars ? String(vars[name]) : all))
406
+ : text;
407
+ }
408
+ const placeholders = (text) => [...text.matchAll(/\{(\w+)\}/g)].map((m) => m[1]).sort();
409
+ /** What a translation lacks (shown in English), what it names that DevTools no longer has, and wrong placeholders. */
410
+ export function checkMessages(messages) {
411
+ const base = en;
412
+ return {
413
+ missing: Object.keys(base).filter((k) => !(k in messages)),
414
+ unknown: Object.keys(messages).filter((k) => !(k in base)),
415
+ placeholders: Object.keys(messages).filter((k) => k in base && placeholders(messages[k]).join() !== placeholders(base[k]).join()),
416
+ };
417
+ }
418
+ /** The messages of a file in the `hozu devtools messages` shape, or of a plain key → text object. */
419
+ export function messagesOf(json) {
420
+ const inner = json && typeof json === 'object' && 'messages' in json ? json.messages : json;
421
+ if (!inner || typeof inner !== 'object' || Array.isArray(inner))
422
+ return {};
423
+ return Object.fromEntries(Object.entries(inner).filter((e) => typeof e[1] === 'string'));
424
+ }
425
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}