@kensio/colophon 2.11.1 → 2.12.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 (145) hide show
  1. package/dist/astro/index.d.ts.map +1 -1
  2. package/dist/astro/index.js +0 -1
  3. package/dist/astro/index.js.map +1 -1
  4. package/dist/config/defaults.d.ts.map +1 -1
  5. package/dist/config/defaults.js +5 -0
  6. package/dist/config/defaults.js.map +1 -1
  7. package/dist/measure/faces.d.ts.map +1 -1
  8. package/dist/measure/faces.js.map +1 -1
  9. package/dist/templates/banner/index.js +2 -2
  10. package/dist/templates/banner/index.js.map +1 -1
  11. package/dist/templates/card/index.js +2 -2
  12. package/dist/templates/card/index.js.map +1 -1
  13. package/dist/templates/code/bar.d.ts +24 -0
  14. package/dist/templates/code/bar.d.ts.map +1 -0
  15. package/dist/templates/code/bar.js +31 -0
  16. package/dist/templates/code/bar.js.map +1 -0
  17. package/dist/templates/code/gutter.d.ts +30 -0
  18. package/dist/templates/code/gutter.d.ts.map +1 -0
  19. package/dist/templates/code/gutter.js +64 -0
  20. package/dist/templates/code/gutter.js.map +1 -0
  21. package/dist/templates/code/index.d.ts.map +1 -1
  22. package/dist/templates/code/index.js +34 -15
  23. package/dist/templates/code/index.js.map +1 -1
  24. package/dist/templates/code/layout.d.ts +6 -1
  25. package/dist/templates/code/layout.d.ts.map +1 -1
  26. package/dist/templates/code/layout.js +8 -3
  27. package/dist/templates/code/layout.js.map +1 -1
  28. package/dist/templates/code/mark/draw.d.ts +26 -0
  29. package/dist/templates/code/mark/draw.d.ts.map +1 -0
  30. package/dist/templates/code/mark/draw.js +41 -0
  31. package/dist/templates/code/mark/draw.js.map +1 -0
  32. package/dist/templates/code/mark/index.d.ts +16 -0
  33. package/dist/templates/code/mark/index.d.ts.map +1 -0
  34. package/dist/templates/code/mark/index.js +34 -0
  35. package/dist/templates/code/mark/index.js.map +1 -0
  36. package/dist/templates/code/mark/locate.d.ts +20 -0
  37. package/dist/templates/code/mark/locate.d.ts.map +1 -0
  38. package/dist/templates/code/mark/locate.js +56 -0
  39. package/dist/templates/code/mark/locate.js.map +1 -0
  40. package/dist/templates/code/mark/read.d.ts +30 -0
  41. package/dist/templates/code/mark/read.d.ts.map +1 -0
  42. package/dist/templates/code/mark/read.js +61 -0
  43. package/dist/templates/code/mark/read.js.map +1 -0
  44. package/dist/templates/code/plate.d.ts +7 -1
  45. package/dist/templates/code/plate.d.ts.map +1 -1
  46. package/dist/templates/code/plate.js +14 -4
  47. package/dist/templates/code/plate.js.map +1 -1
  48. package/dist/templates/footer.d.ts +9 -1
  49. package/dist/templates/footer.d.ts.map +1 -1
  50. package/dist/templates/footer.js +24 -0
  51. package/dist/templates/footer.js.map +1 -1
  52. package/dist/templates/frame.d.ts.map +1 -1
  53. package/dist/templates/frame.js +5 -7
  54. package/dist/templates/frame.js.map +1 -1
  55. package/dist/templates/terminal/index.js +4 -4
  56. package/dist/templates/terminal/index.js.map +1 -1
  57. package/dist/templates/window/dots.d.ts +11 -0
  58. package/dist/templates/window/dots.d.ts.map +1 -0
  59. package/dist/templates/window/dots.js +32 -0
  60. package/dist/templates/window/dots.js.map +1 -0
  61. package/dist/templates/{terminal/window.d.ts → window/index.d.ts} +4 -2
  62. package/dist/templates/window/index.d.ts.map +1 -0
  63. package/dist/templates/window/index.js +48 -0
  64. package/dist/templates/window/index.js.map +1 -0
  65. package/dist/templates/window/title.d.ts +9 -0
  66. package/dist/templates/window/title.d.ts.map +1 -0
  67. package/dist/templates/window/title.js +24 -0
  68. package/dist/templates/window/title.js.map +1 -0
  69. package/dist/texture/chevrons.d.ts +13 -0
  70. package/dist/texture/chevrons.d.ts.map +1 -0
  71. package/dist/texture/chevrons.js +22 -0
  72. package/dist/texture/chevrons.js.map +1 -0
  73. package/dist/texture/grid.d.ts +14 -0
  74. package/dist/texture/grid.d.ts.map +1 -0
  75. package/dist/texture/grid.js +38 -0
  76. package/dist/texture/grid.js.map +1 -0
  77. package/dist/texture/halftone.d.ts +14 -0
  78. package/dist/texture/halftone.d.ts.map +1 -0
  79. package/dist/texture/halftone.js +55 -0
  80. package/dist/texture/halftone.js.map +1 -0
  81. package/dist/texture/honeycomb.d.ts +14 -0
  82. package/dist/texture/honeycomb.d.ts.map +1 -0
  83. package/dist/texture/honeycomb.js +43 -0
  84. package/dist/texture/honeycomb.js.map +1 -0
  85. package/dist/texture/index.d.ts +1 -2
  86. package/dist/texture/index.d.ts.map +1 -1
  87. package/dist/texture/index.js +44 -13
  88. package/dist/texture/index.js.map +1 -1
  89. package/dist/texture/moire.d.ts +18 -0
  90. package/dist/texture/moire.d.ts.map +1 -0
  91. package/dist/texture/moire.js +44 -0
  92. package/dist/texture/moire.js.map +1 -0
  93. package/dist/texture/pattern.d.ts +10 -0
  94. package/dist/texture/pattern.d.ts.map +1 -1
  95. package/dist/texture/pattern.js +36 -13
  96. package/dist/texture/pattern.js.map +1 -1
  97. package/dist/texture/rays.d.ts +13 -0
  98. package/dist/texture/rays.d.ts.map +1 -0
  99. package/dist/texture/rays.js +36 -0
  100. package/dist/texture/rays.js.map +1 -0
  101. package/dist/texture/scallops.d.ts +14 -0
  102. package/dist/texture/scallops.d.ts.map +1 -0
  103. package/dist/texture/scallops.js +29 -0
  104. package/dist/texture/scallops.js.map +1 -0
  105. package/dist/texture/tile.d.ts +14 -0
  106. package/dist/texture/tile.d.ts.map +1 -0
  107. package/dist/texture/tile.js +23 -0
  108. package/dist/texture/tile.js.map +1 -0
  109. package/dist/texture/topographic/contours.d.ts +13 -0
  110. package/dist/texture/topographic/contours.d.ts.map +1 -0
  111. package/dist/texture/topographic/contours.js +72 -0
  112. package/dist/texture/topographic/contours.js.map +1 -0
  113. package/dist/texture/topographic/field.d.ts +8 -0
  114. package/dist/texture/topographic/field.d.ts.map +1 -0
  115. package/dist/texture/topographic/field.js +29 -0
  116. package/dist/texture/topographic/field.js.map +1 -0
  117. package/dist/texture/topographic/index.d.ts +17 -0
  118. package/dist/texture/topographic/index.d.ts.map +1 -0
  119. package/dist/texture/topographic/index.js +48 -0
  120. package/dist/texture/topographic/index.js.map +1 -0
  121. package/dist/theme/presets.d.ts +13 -5
  122. package/dist/theme/presets.d.ts.map +1 -1
  123. package/dist/theme/presets.js +16 -5
  124. package/dist/theme/presets.js.map +1 -1
  125. package/dist/types.d.ts +231 -3
  126. package/dist/types.d.ts.map +1 -1
  127. package/dist/validate/collect.d.ts.map +1 -1
  128. package/dist/validate/collect.js +2 -1
  129. package/dist/validate/collect.js.map +1 -1
  130. package/dist/validate/keys.d.ts +37 -0
  131. package/dist/validate/keys.d.ts.map +1 -1
  132. package/dist/validate/keys.js +130 -2
  133. package/dist/validate/keys.js.map +1 -1
  134. package/dist/validate/texture.d.ts +4 -5
  135. package/dist/validate/texture.d.ts.map +1 -1
  136. package/dist/validate/texture.js +11 -20
  137. package/dist/validate/texture.js.map +1 -1
  138. package/dist/validate/values.d.ts +6 -0
  139. package/dist/validate/values.d.ts.map +1 -1
  140. package/dist/validate/values.js +16 -1
  141. package/dist/validate/values.js.map +1 -1
  142. package/package.json +3 -10
  143. package/dist/templates/terminal/window.d.ts.map +0 -1
  144. package/dist/templates/terminal/window.js +0 -84
  145. package/dist/templates/terminal/window.js.map +0 -1
@@ -1,34 +1,25 @@
1
1
  import { checkKeys, isRecord } from "./check.js";
2
- import { dotsTextureKeys, grainTextureKeys, rulesTextureKeys, textureTypes, wavesTextureKeys, } from "./keys.js";
2
+ import { textureKeysByType, textureTypes } from "./keys.js";
3
3
  import { describeUnknownValue } from "./values.js";
4
+ /** Whether a declared type is one of the treatments there are. */
5
+ function isTextureType(type) {
6
+ return typeof type === "string" && type in textureKeysByType;
7
+ }
4
8
  /**
5
9
  * Check a texture against the keys of whichever treatment it declares.
6
10
  *
7
- * The same reasoning as a background's: `textureSvg` draws anything it does
8
- * not recognise as the last variant it checks for, so an unknown `type` would
9
- * come out as a set of ruled lines nobody asked for. A texture with no `type`
10
- * is left to the type checker, since without one there is no telling which
11
- * keys were meant.
11
+ * The same reasoning as a background's: a mistyped `type` has to be reported
12
+ * as itself rather than as a list of keys that do not apply. A texture with no
13
+ * `type` is left to the type checker, since without one there is no telling
14
+ * which keys were meant.
12
15
  */
13
16
  export function checkTexture(texture, path, problems) {
14
17
  if (!isRecord(texture)) {
15
18
  return;
16
19
  }
17
20
  const { type } = texture;
18
- if (type === "grain") {
19
- checkKeys(texture, path, grainTextureKeys, problems);
20
- return;
21
- }
22
- if (type === "dots") {
23
- checkKeys(texture, path, dotsTextureKeys, problems);
24
- return;
25
- }
26
- if (type === "rules") {
27
- checkKeys(texture, path, rulesTextureKeys, problems);
28
- return;
29
- }
30
- if (type === "waves") {
31
- checkKeys(texture, path, wavesTextureKeys, problems);
21
+ if (isTextureType(type)) {
22
+ checkKeys(texture, path, textureKeysByType[type], problems);
32
23
  return;
33
24
  }
34
25
  if (typeof type === "string") {
@@ -1 +1 @@
1
- {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../src/validate/texture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,IAAY,EACZ,QAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../src/validate/texture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,kEAAkE;AAClE,SAAS,aAAa,CAAC,IAAa;IAClC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,iBAAiB,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAgB,EAChB,IAAY,EACZ,QAAkB;IAElB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEzB,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -8,6 +8,12 @@ export declare function describeUnknownValue(noun: string, plural: string, value
8
8
  * anything else is a shape the type checker already covers, as elsewhere here.
9
9
  */
10
10
  export declare function checkSlugStrategy(content: unknown, problems: string[]): void;
11
+ /**
12
+ * Check the window chrome names one of the three there are. A name the
13
+ * template does not know draws the neutral bar, so `macOS` would silently be
14
+ * the wrong window rather than a build that says so.
15
+ */
16
+ export declare function checkCodeChrome(code: unknown, problems: string[]): void;
11
17
  /**
12
18
  * Check the output format names one the encoder has. `jpg` is the spelling
13
19
  * people reach for, and the suggestion is what turns it into `jpeg` rather than
@@ -1 +1 @@
1
- {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/validate/values.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,CAMR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAmB5E;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAQrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAUnE"}
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/validate/values.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,MAAM,CAMR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAmB5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAcvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAQrE;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAUnE"}
@@ -1,6 +1,6 @@
1
1
  import { themeNames } from "../theme/index.js";
2
2
  import { isRecord } from "./check.js";
3
- import { outputFormats, slugStrategies } from "./keys.js";
3
+ import { codeChromeStyles, outputFormats, slugStrategies } from "./keys.js";
4
4
  import { nearestName } from "./suggest.js";
5
5
  /**
6
6
  * Report a value that is not one of the names a field accepts. `noun` names
@@ -26,6 +26,21 @@ export function checkSlugStrategy(content, problems) {
26
26
  }
27
27
  problems.push(describeUnknownValue("slug strategy", "strategies", strategy, slugStrategies));
28
28
  }
29
+ /**
30
+ * Check the window chrome names one of the three there are. A name the
31
+ * template does not know draws the neutral bar, so `macOS` would silently be
32
+ * the wrong window rather than a build that says so.
33
+ */
34
+ export function checkCodeChrome(code, problems) {
35
+ if (!isRecord(code)) {
36
+ return;
37
+ }
38
+ const chrome = code["chrome"];
39
+ if (typeof chrome !== "string" || codeChromeStyles.includes(chrome)) {
40
+ return;
41
+ }
42
+ problems.push(describeUnknownValue("window chrome", "styles", chrome, codeChromeStyles));
43
+ }
29
44
  /**
30
45
  * Check the output format names one the encoder has. `jpg` is the spelling
31
46
  * people reach for, and the suggestion is what turns it into `jpeg` rather than
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/validate/values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,MAAc,EACd,KAAa,EACb,KAAwB;IAExB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE7C,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,WAAW,IAAI,KAAK,KAAK,YAAY,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrE,CAAC,CAAC,WAAW,IAAI,KAAK,KAAK,oBAAoB,UAAU,IAAI,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,QAAkB;IACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAClB,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,cAAc,CACf,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe,EAAE,QAAkB;IAC7D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CACxE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,QAAkB;IAC3D,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,KAAK,GAAsB,UAAU,CAAC;IAE5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/validate/values.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,MAAc,EACd,KAAa,EACb,KAAwB;IAExB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE7C,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,WAAW,IAAI,KAAK,KAAK,YAAY,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrE,CAAC,CAAC,WAAW,IAAI,KAAK,KAAK,oBAAoB,UAAU,IAAI,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,QAAkB;IACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtE,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAClB,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,cAAc,CACf,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,QAAkB;IAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpE,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAe,EAAE,QAAkB;IAC7D,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CACX,oBAAoB,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CACxE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,QAAkB;IAC3D,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,KAAK,GAAsB,UAAU,CAAC;IAE5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACvE,CAAC"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "repository": "https://github.com/KensioSoftware/colophon",
6
6
  "homepage": "https://github.com/KensioSoftware/colophon#readme",
7
7
  "license": "Apache-2.0",
8
- "version": "2.11.1",
8
+ "version": "2.12.0",
9
9
  "type": "module",
10
10
  "main": "./dist/index.js",
11
11
  "types": "./dist/index.d.ts",
@@ -60,8 +60,8 @@
60
60
  "build": "tsc -p tsconfig.build.json",
61
61
  "prepack": "pnpm build",
62
62
  "build:check": "tsc -p tsconfig.json --noEmit",
63
- "fmt": "oxlint --fix && eslint --fix . && oxfmt",
64
- "lint": "./scripts/sh/lint.sh",
63
+ "fmt": "oxlint --fix && oxfmt",
64
+ "lint": "oxlint && oxfmt --check",
65
65
  "test": "vitest run",
66
66
  "test:coverage": "vitest run --coverage",
67
67
  "samples": "pnpm build && node scripts/gen-samples.ts",
@@ -86,25 +86,18 @@
86
86
  "devDependencies": {
87
87
  "@kensio/smartass": "^1.33.0",
88
88
  "@semantic-release/exec": "7.1.0",
89
- "@types/eslint-plugin-security": "^3.0.1",
90
89
  "@types/fontkit": "^2.0.9",
91
90
  "@types/node": "^26.0.0",
92
91
  "@typescript/native": "npm:typescript@^7.0.2",
93
92
  "@vitest/coverage-v8": "^4.1.10",
94
93
  "conventional-changelog-conventionalcommits": "9.3.1",
95
94
  "dejavu-fonts-ttf": "^2.37.3",
96
- "eslint": "^10.6.0",
97
- "eslint-plugin-jsdoc": "^63.0.13",
98
- "eslint-plugin-no-secrets": "^2.3.3",
99
- "eslint-plugin-security": "^4.0.1",
100
95
  "fta-cli": "^3.0.0",
101
- "jiti": "^2.7.0",
102
96
  "oxfmt": "^0.62.0",
103
97
  "oxlint": "^1.77.0",
104
98
  "oxlint-tsgolint": "^7.0.2001",
105
99
  "semantic-release": "25.0.9",
106
100
  "typescript": "npm:@typescript/typescript6@^6.0.2",
107
- "typescript-eslint": "^8.63.0",
108
101
  "vitest": "^4.1.10"
109
102
  },
110
103
  "dependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/templates/terminal/window.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAiB9C,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErD;AAwBD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,WAAW,GACnB,MAAM,CA6BR"}
@@ -1,84 +0,0 @@
1
- import { baselineFor, box, clampLine, measureIn, textElement, } from "../../layout/index.js";
2
- /** The title bar's height, as a fraction of the window's width. */
3
- const barScale = 0.055;
4
- /** The buttons' diameter, as a fraction of the bar's height. */
5
- const buttonScale = 0.26;
6
- /**
7
- * The three buttons, in the colours every reader has seen on a window.
8
- *
9
- * They are not the site's colours and are not meant to be. The point of the
10
- * chrome is that the image is recognised as a terminal before a word of it is
11
- * read, and these are what does the recognising.
12
- */
13
- const buttons = ["#ff5f57", "#febc2e", "#28c840"];
14
- /** How tall the title bar is on a window of this width. */
15
- export function barHeight(windowWidth) {
16
- return Math.round(windowWidth * barScale);
17
- }
18
- /**
19
- * A rectangle with its top corners rounded and its bottom ones square, which
20
- * is the shape of a title bar sitting in the top of a rounded window.
21
- *
22
- * It has to be one shape rather than a rounded rectangle with a square one
23
- * over its bottom half, which is the obvious way to do it and the wrong one:
24
- * the band is drawn at low opacity, so anywhere the two overlapped would be
25
- * painted twice and come out as a lighter block with a curve through it.
26
- */
27
- function roundedTop(rect, radius) {
28
- const { x, y, width, height } = rect;
29
- const r = Math.min(radius, Math.round(width / 2), height);
30
- return (`M${String(x)} ${String(y + r)}` +
31
- `a${String(r)} ${String(r)} 0 0 1 ${String(r)} ${String(-r)}` +
32
- `h${String(width - r * 2)}` +
33
- `a${String(r)} ${String(r)} 0 0 1 ${String(r)} ${String(r)}` +
34
- `v${String(height - r)}h${String(-width)}z`);
35
- }
36
- /**
37
- * The bar across the top of the window: a lighter band, the buttons, and the
38
- * title in the middle of what is left.
39
- *
40
- * The band is white at low opacity rather than a colour of its own, so it
41
- * lifts whatever the code theme's background happens to be instead of having
42
- * to be chosen against it.
43
- */
44
- export function titleBar(window, height, title, config, measure) {
45
- const { radius } = window;
46
- const diameter = Math.round(height * buttonScale);
47
- const gap = Math.round(diameter * 1.7);
48
- const left = window.x + Math.round(height * 0.6);
49
- const middle = window.y + Math.round(height / 2);
50
- const band = `<path d="${roundedTop({ x: window.x, y: window.y, width: window.width, height }, radius)}"` +
51
- ` fill="#ffffff" fill-opacity="0.07"/>${box({ x: window.x, y: window.y + height, width: window.width, height: 1 }, { fill: "#ffffff", fillOpacity: 0.1 })}`;
52
- const lights = buttons
53
- .map((fill, index) => box({
54
- x: left + index * gap,
55
- y: middle - Math.round(diameter / 2),
56
- width: diameter,
57
- height: diameter,
58
- }, { radius: Math.round(diameter / 2), fill }))
59
- .join("");
60
- return band + lights + windowTitle(title, window, height, config, measure);
61
- }
62
- /**
63
- * The window's title, centred in the bar. It is cut to the room between the
64
- * buttons and the far edge, taking the buttons' width off both sides so that
65
- * it stays centred in the bar rather than in what the buttons left.
66
- */
67
- function windowTitle(title, window, height, config, measure) {
68
- if (title === "") {
69
- return "";
70
- }
71
- const fontSize = Math.round(height * 0.42);
72
- const reserved = Math.round(height * 2.4);
73
- return textElement(clampLine(title, window.width - reserved * 2, measureIn(measure, config.fontFamily, 600), fontSize), {
74
- x: Math.round(window.x + window.width / 2),
75
- y: baselineFor(window.y + (height - fontSize) / 2, fontSize),
76
- fontFamily: config.fontFamily,
77
- fontSize,
78
- fontWeight: 600,
79
- fill: "#ffffff",
80
- fillOpacity: 0.6,
81
- anchor: "middle",
82
- });
83
- }
84
- //# sourceMappingURL=window.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/templates/terminal/window.ts"],"names":[],"mappings":"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"}