@domandigital/craft 0.13.0 → 0.15.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 (37) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/CHARACTER.md +272 -39
  3. package/COPY.md +5 -0
  4. package/README.md +19 -1
  5. package/art-direction.schema.json +428 -25
  6. package/dist/{audit-5TYDYRXV.js → audit-MTUC24XU.js} +3 -2
  7. package/dist/audit.cjs +674 -92
  8. package/dist/audit.d.cts +15 -1
  9. package/dist/audit.d.ts +15 -1
  10. package/dist/audit.js +674 -92
  11. package/dist/{chunk-IMB4V34S.js → chunk-2IQ5OXFR.js} +7 -7
  12. package/dist/{chunk-GMVXADJ6.js → chunk-LFNSB6W7.js} +711 -92
  13. package/dist/{chunk-3VTPI7BU.js → chunk-MUVFECFC.js} +74 -96
  14. package/dist/chunk-OQXTQQAU.js +27 -0
  15. package/dist/{chunk-ZLDA2SYB.js → chunk-OUQ25LY2.js} +47 -6
  16. package/dist/{chunk-K2BZN4GA.js → chunk-QU6Q2QZZ.js} +49 -14
  17. package/dist/chunk-QYBAVU3P.js +6 -0
  18. package/dist/{chunk-ESCVTKPN.js → chunk-RXXRXV3V.js} +9 -26
  19. package/dist/{chunk-CZDOMIVS.js → chunk-WUACK2HX.js} +2 -1
  20. package/dist/chunk-YDURAOYR.js +711 -0
  21. package/dist/cli-22TSWAX6.js +21 -0
  22. package/dist/cli-5ACKICBO.js +22 -0
  23. package/dist/{cli-DRKAMFAH.js → cli-7OZCYOQY.js} +89 -22
  24. package/dist/{cli-J5ECRCD4.js → cli-FCKHYAVZ.js} +40 -16
  25. package/dist/{cli-ILH7OO5G.js → cli-FLG3ZCAF.js} +6 -4
  26. package/dist/cli.js +3 -2
  27. package/dist/generate.js +6 -0
  28. package/dist/index.cjs +1618 -328
  29. package/dist/index.d.cts +619 -58
  30. package/dist/index.d.ts +619 -58
  31. package/dist/index.js +1555 -328
  32. package/dist/migrate-VIFAYIBM.js +9 -0
  33. package/package.json +1 -1
  34. package/word-lists.json +1 -1
  35. package/dist/chunk-ZZ5CKOJP.js +0 -295
  36. package/dist/cli-BKJMLD3H.js +0 -18
  37. package/dist/cli-N2IDXH7W.js +0 -20
@@ -2,40 +2,257 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "https://unpkg.com/@domandigital/craft/art-direction.schema.json",
4
4
  "title": "art-direction.json",
5
- "description": "What a site decided about how it looks, and why. Every choice carries a reason from the client's real world and cites a source that shows it. The reason rule itself is enforced by `craft direction validate`; this schema only checks the shape.",
5
+ "description": "What a site decided, and why: the visitor's job, the structure decided from it, and how it looks. Every decision carries a reason: tokens from the client's real world, the job from the customer's own words, structure from the job. The reason rules are enforced by `craft direction validate`; this schema only checks the shape. Version 1 files (tokens only) still validate.",
6
6
  "type": "object",
7
- "required": ["version", "client", "brief", "sources", "choices"],
7
+ "required": [
8
+ "version",
9
+ "client",
10
+ "brief",
11
+ "sources",
12
+ "choices"
13
+ ],
8
14
  "properties": {
9
- "$schema": { "type": "string" },
10
- "version": { "const": 1 },
11
- "client": { "type": "string", "minLength": 1 },
12
- "brief": { "type": "string", "description": "Who, where, and what they do, in a sentence or two." },
15
+ "$schema": {
16
+ "type": "string"
17
+ },
18
+ "version": {
19
+ "enum": [
20
+ 1,
21
+ 2
22
+ ]
23
+ },
24
+ "client": {
25
+ "type": "string",
26
+ "minLength": 1
27
+ },
28
+ "brief": {
29
+ "type": "string",
30
+ "description": "Who, where, and what they do, in a sentence or two."
31
+ },
32
+ "job": {
33
+ "type": "object",
34
+ "description": "Version 2. What the visitor is trying to get done, in their words.",
35
+ "properties": {
36
+ "statement": {
37
+ "type": "object",
38
+ "required": [
39
+ "verb",
40
+ "object",
41
+ "context"
42
+ ],
43
+ "properties": {
44
+ "verb": {
45
+ "type": "string"
46
+ },
47
+ "object": {
48
+ "type": "string"
49
+ },
50
+ "context": {
51
+ "type": "string"
52
+ }
53
+ },
54
+ "additionalProperties": false
55
+ },
56
+ "functional": {
57
+ "$ref": "#/$defs/jobPart"
58
+ },
59
+ "emotional": {
60
+ "$ref": "#/$defs/jobPart"
61
+ },
62
+ "social": {
63
+ "$ref": "#/$defs/jobPart"
64
+ },
65
+ "consideration": {
66
+ "type": "object",
67
+ "required": [
68
+ "value",
69
+ "because",
70
+ "evidence"
71
+ ],
72
+ "properties": {
73
+ "value": {
74
+ "enum": [
75
+ "low",
76
+ "considered",
77
+ "high"
78
+ ]
79
+ },
80
+ "because": {
81
+ "type": "string"
82
+ },
83
+ "evidence": {
84
+ "type": "array",
85
+ "items": {
86
+ "type": "string"
87
+ }
88
+ }
89
+ },
90
+ "additionalProperties": false
91
+ },
92
+ "objections": {
93
+ "type": "array",
94
+ "items": {
95
+ "type": "string"
96
+ }
97
+ },
98
+ "language": {
99
+ "type": "array",
100
+ "items": {
101
+ "type": "string"
102
+ }
103
+ },
104
+ "evidence": {
105
+ "type": "array",
106
+ "items": {
107
+ "type": "string"
108
+ }
109
+ }
110
+ },
111
+ "additionalProperties": false,
112
+ "required": [
113
+ "statement",
114
+ "functional",
115
+ "emotional",
116
+ "social",
117
+ "consideration",
118
+ "objections",
119
+ "language",
120
+ "evidence"
121
+ ]
122
+ },
123
+ "hierarchy": {
124
+ "type": "object",
125
+ "description": "Version 2. Keyed by page type.",
126
+ "propertyNames": {
127
+ "enum": [
128
+ "home",
129
+ "service",
130
+ "about",
131
+ "pricing",
132
+ "booking",
133
+ "contact",
134
+ "article",
135
+ "landing"
136
+ ]
137
+ },
138
+ "additionalProperties": {
139
+ "$ref": "#/$defs/page"
140
+ },
141
+ "required": [
142
+ "home"
143
+ ]
144
+ },
13
145
  "sources": {
14
146
  "type": "array",
15
147
  "items": {
16
148
  "type": "object",
17
- "required": ["id", "kind", "note"],
149
+ "required": [
150
+ "id",
151
+ "kind",
152
+ "note"
153
+ ],
18
154
  "properties": {
19
- "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
20
- "kind": { "enum": ["livery", "shopfront", "signage", "packaging", "product", "uniform", "interior", "place", "material", "trade", "print", "photo", "founder"] },
21
- "note": { "type": "string" },
22
- "path": { "type": "string" },
23
- "colours": { "type": "array", "items": { "type": "string" } },
24
- "lettering": { "type": "string" }
155
+ "id": {
156
+ "type": "string",
157
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
158
+ },
159
+ "kind": {
160
+ "enum": [
161
+ "livery",
162
+ "shopfront",
163
+ "signage",
164
+ "packaging",
165
+ "product",
166
+ "uniform",
167
+ "interior",
168
+ "place",
169
+ "material",
170
+ "trade",
171
+ "print",
172
+ "photo",
173
+ "founder",
174
+ "review",
175
+ "enquiry",
176
+ "conversation",
177
+ "search",
178
+ "reference"
179
+ ]
180
+ },
181
+ "note": {
182
+ "type": "string"
183
+ },
184
+ "path": {
185
+ "type": "string"
186
+ },
187
+ "colours": {
188
+ "type": "array",
189
+ "items": {
190
+ "type": "string"
191
+ }
192
+ },
193
+ "lettering": {
194
+ "type": "string"
195
+ },
196
+ "category": {
197
+ "type": "string",
198
+ "description": "For a reference: where it comes from. Never the client's own category."
199
+ }
25
200
  },
26
- "additionalProperties": false
201
+ "additionalProperties": false,
202
+ "allOf": [
203
+ {
204
+ "if": {
205
+ "properties": {
206
+ "kind": {
207
+ "const": "reference"
208
+ }
209
+ },
210
+ "required": [
211
+ "kind"
212
+ ]
213
+ },
214
+ "then": {
215
+ "required": [
216
+ "category"
217
+ ]
218
+ }
219
+ }
220
+ ]
27
221
  }
28
222
  },
29
223
  "choices": {
30
224
  "type": "object",
31
- "propertyNames": { "enum": ["accent", "ground", "display", "body", "shape", "motif", "signature"] },
225
+ "propertyNames": {
226
+ "enum": [
227
+ "accent",
228
+ "ground",
229
+ "display",
230
+ "body",
231
+ "shape",
232
+ "motif",
233
+ "signature"
234
+ ]
235
+ },
32
236
  "additionalProperties": {
33
237
  "type": "object",
34
- "required": ["value", "because", "evidence"],
238
+ "required": [
239
+ "value",
240
+ "because",
241
+ "evidence"
242
+ ],
35
243
  "properties": {
36
- "value": { "type": "string" },
37
- "because": { "type": "string" },
38
- "evidence": { "type": "array", "items": { "type": "string" } }
244
+ "value": {
245
+ "type": "string"
246
+ },
247
+ "because": {
248
+ "type": "string"
249
+ },
250
+ "evidence": {
251
+ "type": "array",
252
+ "items": {
253
+ "type": "string"
254
+ }
255
+ }
39
256
  },
40
257
  "additionalProperties": false
41
258
  }
@@ -44,16 +261,202 @@
44
261
  "type": "array",
45
262
  "items": {
46
263
  "type": "object",
47
- "required": ["tell", "because"],
264
+ "required": [
265
+ "tell",
266
+ "because"
267
+ ],
48
268
  "properties": {
49
- "tell": { "type": "string" },
50
- "because": { "type": "string" },
51
- "evidence": { "type": "string" },
52
- "path": { "type": "string" }
269
+ "tell": {
270
+ "type": "string"
271
+ },
272
+ "because": {
273
+ "type": "string"
274
+ },
275
+ "evidence": {
276
+ "type": "string"
277
+ },
278
+ "path": {
279
+ "type": "string"
280
+ }
53
281
  },
54
282
  "additionalProperties": false
55
283
  }
56
284
  }
57
285
  },
58
- "additionalProperties": false
286
+ "additionalProperties": false,
287
+ "$defs": {
288
+ "jobPart": {
289
+ "type": "object",
290
+ "required": [
291
+ "value",
292
+ "evidence"
293
+ ],
294
+ "properties": {
295
+ "value": {
296
+ "type": "string"
297
+ },
298
+ "evidence": {
299
+ "type": "array",
300
+ "items": {
301
+ "type": "string"
302
+ }
303
+ }
304
+ },
305
+ "additionalProperties": false
306
+ },
307
+ "role": {
308
+ "enum": [
309
+ "hero",
310
+ "logos",
311
+ "stats",
312
+ "cards",
313
+ "marquee",
314
+ "text",
315
+ "other",
316
+ "cta-band",
317
+ "footer-cta",
318
+ "pricing",
319
+ "testimonials",
320
+ "faq",
321
+ "process",
322
+ "features",
323
+ "team",
324
+ "contact"
325
+ ]
326
+ },
327
+ "page": {
328
+ "type": "object",
329
+ "required": [
330
+ "primaryAction",
331
+ "order",
332
+ "lead",
333
+ "journey"
334
+ ],
335
+ "properties": {
336
+ "primaryAction": {
337
+ "type": "object",
338
+ "required": [
339
+ "value",
340
+ "positions",
341
+ "because"
342
+ ],
343
+ "properties": {
344
+ "value": {
345
+ "type": "string"
346
+ },
347
+ "positions": {
348
+ "type": "array",
349
+ "minItems": 1,
350
+ "items": {
351
+ "anyOf": [
352
+ {
353
+ "$ref": "#/$defs/role"
354
+ },
355
+ {
356
+ "enum": [
357
+ "header",
358
+ "sticky"
359
+ ]
360
+ }
361
+ ]
362
+ }
363
+ },
364
+ "because": {
365
+ "type": "string"
366
+ },
367
+ "evidence": {
368
+ "type": "array",
369
+ "items": {
370
+ "type": "string"
371
+ }
372
+ }
373
+ },
374
+ "additionalProperties": false
375
+ },
376
+ "order": {
377
+ "type": "array",
378
+ "items": {
379
+ "type": "object",
380
+ "required": [
381
+ "role",
382
+ "because"
383
+ ],
384
+ "properties": {
385
+ "role": {
386
+ "$ref": "#/$defs/role"
387
+ },
388
+ "because": {
389
+ "type": "string"
390
+ }
391
+ },
392
+ "additionalProperties": false
393
+ },
394
+ "minItems": 2
395
+ },
396
+ "lead": {
397
+ "type": "object",
398
+ "required": [
399
+ "value",
400
+ "because"
401
+ ],
402
+ "properties": {
403
+ "value": {
404
+ "type": "string"
405
+ },
406
+ "subordinate": {
407
+ "type": "array",
408
+ "items": {
409
+ "type": "string"
410
+ }
411
+ },
412
+ "because": {
413
+ "type": "string"
414
+ }
415
+ },
416
+ "additionalProperties": false
417
+ },
418
+ "journey": {
419
+ "type": "array",
420
+ "items": {
421
+ "type": "object",
422
+ "required": [
423
+ "stage",
424
+ "because"
425
+ ],
426
+ "properties": {
427
+ "stage": {
428
+ "type": "string"
429
+ },
430
+ "because": {
431
+ "type": "string"
432
+ }
433
+ },
434
+ "additionalProperties": false
435
+ },
436
+ "minItems": 2
437
+ }
438
+ },
439
+ "additionalProperties": false
440
+ }
441
+ },
442
+ "oneOf": [
443
+ {
444
+ "properties": {
445
+ "version": {
446
+ "const": 1
447
+ }
448
+ }
449
+ },
450
+ {
451
+ "properties": {
452
+ "version": {
453
+ "const": 2
454
+ }
455
+ },
456
+ "required": [
457
+ "job",
458
+ "hierarchy"
459
+ ]
460
+ }
461
+ ]
59
462
  }
@@ -9,9 +9,10 @@ import {
9
9
  snapshotPage,
10
10
  snapshotUrl,
11
11
  snapshotUrls
12
- } from "./chunk-ZLDA2SYB.js";
12
+ } from "./chunk-OUQ25LY2.js";
13
13
  import "./chunk-JYNXGCYZ.js";
14
- import "./chunk-GMVXADJ6.js";
14
+ import "./chunk-LFNSB6W7.js";
15
+ import "./chunk-QYBAVU3P.js";
15
16
  export {
16
17
  PROVENANCE_BUDGET_MS,
17
18
  PROVENANCE_MAX_IMAGES,