@react-x11/components 0.12.0 → 0.14.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 (150) hide show
  1. package/dist/html/controls.d.ts +41 -5
  2. package/dist/html/controls.d.ts.map +1 -1
  3. package/dist/html/controls.js +85 -57
  4. package/dist/html/controls.js.map +1 -1
  5. package/dist/html/css/cascade.d.ts +134 -20
  6. package/dist/html/css/cascade.d.ts.map +1 -1
  7. package/dist/html/css/cascade.js +545 -126
  8. package/dist/html/css/cascade.js.map +1 -1
  9. package/dist/html/css/color.d.ts +18 -0
  10. package/dist/html/css/color.d.ts.map +1 -1
  11. package/dist/html/css/color.js +27 -0
  12. package/dist/html/css/color.js.map +1 -1
  13. package/dist/html/css/parse.d.ts +47 -6
  14. package/dist/html/css/parse.d.ts.map +1 -1
  15. package/dist/html/css/parse.js +336 -30
  16. package/dist/html/css/parse.js.map +1 -1
  17. package/dist/html/css/style.d.ts +142 -15
  18. package/dist/html/css/style.d.ts.map +1 -1
  19. package/dist/html/css/style.js +563 -147
  20. package/dist/html/css/style.js.map +1 -1
  21. package/dist/html/css/transform.d.ts +85 -0
  22. package/dist/html/css/transform.d.ts.map +1 -0
  23. package/dist/html/css/transform.js +425 -0
  24. package/dist/html/css/transform.js.map +1 -0
  25. package/dist/html/css/ua.d.ts +11 -1
  26. package/dist/html/css/ua.d.ts.map +1 -1
  27. package/dist/html/css/ua.js +73 -9
  28. package/dist/html/css/ua.js.map +1 -1
  29. package/dist/html/css/values.d.ts +4 -0
  30. package/dist/html/css/values.d.ts.map +1 -1
  31. package/dist/html/css/values.js.map +1 -1
  32. package/dist/html/dom.d.ts.map +1 -1
  33. package/dist/html/dom.js +3 -1
  34. package/dist/html/dom.js.map +1 -1
  35. package/dist/html/fonts.d.ts +78 -4
  36. package/dist/html/fonts.d.ts.map +1 -1
  37. package/dist/html/fonts.js +373 -19
  38. package/dist/html/fonts.js.map +1 -1
  39. package/dist/html/form.d.ts +200 -0
  40. package/dist/html/form.d.ts.map +1 -0
  41. package/dist/html/form.js +801 -0
  42. package/dist/html/form.js.map +1 -0
  43. package/dist/html/index.d.ts +12 -0
  44. package/dist/html/index.d.ts.map +1 -1
  45. package/dist/html/index.js +30 -301
  46. package/dist/html/index.js.map +1 -1
  47. package/dist/html/layout/axes.d.ts +14 -0
  48. package/dist/html/layout/axes.d.ts.map +1 -0
  49. package/dist/html/layout/axes.js +28 -0
  50. package/dist/html/layout/axes.js.map +1 -0
  51. package/dist/html/layout/block.d.ts +93 -12
  52. package/dist/html/layout/block.d.ts.map +1 -1
  53. package/dist/html/layout/block.js +393 -39
  54. package/dist/html/layout/block.js.map +1 -1
  55. package/dist/html/layout/boxes.d.ts +90 -2
  56. package/dist/html/layout/boxes.d.ts.map +1 -1
  57. package/dist/html/layout/boxes.js +74 -10
  58. package/dist/html/layout/boxes.js.map +1 -1
  59. package/dist/html/layout/cache.d.ts +1 -1
  60. package/dist/html/layout/cache.d.ts.map +1 -1
  61. package/dist/html/layout/cache.js +6 -0
  62. package/dist/html/layout/cache.js.map +1 -1
  63. package/dist/html/layout/css-grid.d.ts.map +1 -1
  64. package/dist/html/layout/css-grid.js +90 -18
  65. package/dist/html/layout/css-grid.js.map +1 -1
  66. package/dist/html/layout/flex.d.ts.map +1 -1
  67. package/dist/html/layout/flex.js +574 -84
  68. package/dist/html/layout/flex.js.map +1 -1
  69. package/dist/html/layout/inline.d.ts +3 -0
  70. package/dist/html/layout/inline.d.ts.map +1 -1
  71. package/dist/html/layout/inline.js +154 -54
  72. package/dist/html/layout/inline.js.map +1 -1
  73. package/dist/html/layout/multicol.d.ts +42 -0
  74. package/dist/html/layout/multicol.d.ts.map +1 -0
  75. package/dist/html/layout/multicol.js +897 -0
  76. package/dist/html/layout/multicol.js.map +1 -0
  77. package/dist/html/layout/shaping.d.ts +7 -0
  78. package/dist/html/layout/shaping.d.ts.map +1 -1
  79. package/dist/html/layout/shaping.js +25 -20
  80. package/dist/html/layout/shaping.js.map +1 -1
  81. package/dist/html/layout/table.d.ts.map +1 -1
  82. package/dist/html/layout/table.js +62 -18
  83. package/dist/html/layout/table.js.map +1 -1
  84. package/dist/html/node.d.ts +90 -15
  85. package/dist/html/node.d.ts.map +1 -1
  86. package/dist/html/node.js +771 -186
  87. package/dist/html/node.js.map +1 -1
  88. package/dist/html/paint.d.ts +101 -5
  89. package/dist/html/paint.d.ts.map +1 -1
  90. package/dist/html/paint.js +1502 -160
  91. package/dist/html/paint.js.map +1 -1
  92. package/dist/html/svg.d.ts +15 -2
  93. package/dist/html/svg.d.ts.map +1 -1
  94. package/dist/html/svg.js +249 -17
  95. package/dist/html/svg.js.map +1 -1
  96. package/dist/html/widgets.d.ts +29 -0
  97. package/dist/html/widgets.d.ts.map +1 -0
  98. package/dist/html/widgets.js +700 -0
  99. package/dist/html/widgets.js.map +1 -0
  100. package/dist/html/woff2.d.ts +14 -0
  101. package/dist/html/woff2.d.ts.map +1 -0
  102. package/dist/html/woff2.js +608 -0
  103. package/dist/html/woff2.js.map +1 -0
  104. package/dist/index.d.ts +1 -1
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js.map +1 -1
  107. package/dist/maps/controller.d.ts +17 -1
  108. package/dist/maps/controller.d.ts.map +1 -1
  109. package/dist/maps/controller.js +27 -7
  110. package/dist/maps/controller.js.map +1 -1
  111. package/dist/richtext/node.d.ts +8 -1
  112. package/dist/richtext/node.d.ts.map +1 -1
  113. package/dist/richtext/node.js +5 -1
  114. package/dist/richtext/node.js.map +1 -1
  115. package/dist/richtext/runs.d.ts +25 -6
  116. package/dist/richtext/runs.d.ts.map +1 -1
  117. package/dist/richtext/runs.js +240 -24
  118. package/dist/richtext/runs.js.map +1 -1
  119. package/package.json +2 -2
  120. package/src/html/controls.ts +114 -51
  121. package/src/html/css/cascade.ts +614 -140
  122. package/src/html/css/color.ts +29 -0
  123. package/src/html/css/parse.ts +388 -33
  124. package/src/html/css/style.ts +688 -150
  125. package/src/html/css/transform.ts +459 -0
  126. package/src/html/css/ua.ts +77 -10
  127. package/src/html/css/values.ts +4 -0
  128. package/src/html/dom.ts +3 -1
  129. package/src/html/fonts.ts +417 -24
  130. package/src/html/form.ts +962 -0
  131. package/src/html/index.ts +49 -338
  132. package/src/html/layout/axes.ts +62 -0
  133. package/src/html/layout/block.ts +447 -37
  134. package/src/html/layout/boxes.ts +143 -14
  135. package/src/html/layout/cache.ts +6 -0
  136. package/src/html/layout/css-grid.ts +95 -22
  137. package/src/html/layout/flex.ts +675 -78
  138. package/src/html/layout/inline.ts +159 -55
  139. package/src/html/layout/multicol.ts +977 -0
  140. package/src/html/layout/shaping.ts +27 -18
  141. package/src/html/layout/table.ts +62 -19
  142. package/src/html/node.ts +798 -172
  143. package/src/html/paint.ts +1742 -241
  144. package/src/html/svg.ts +277 -19
  145. package/src/html/widgets.ts +821 -0
  146. package/src/html/woff2.ts +612 -0
  147. package/src/index.ts +1 -0
  148. package/src/maps/controller.ts +28 -7
  149. package/src/richtext/node.ts +13 -2
  150. package/src/richtext/runs.ts +313 -35
@@ -35,18 +35,69 @@
35
35
  // keyed by a family list, the text layouts', the metrics', ntk's, that the
36
36
  // text has to be set again.
37
37
  //
38
+ // **A face the text engine cannot set is not registered.** A face is drawn by
39
+ // the engine, and an engine can read a file it cannot draw every weight of:
40
+ // ntk cuts an instance out of a variable face for the weight and the size a
41
+ // style asks for, and fontkit, which does the cutting, could not cut one out
42
+ // of a WOFF2 — the container nearly every variable web font is served in.
43
+ // The throw came out of the first text layout in the family, and the
44
+ // document it took down was nextjs.org's blog, for Geist. So a face is asked
45
+ // for an instance once, before it is registered (`refusal`), and one the
46
+ // engine refuses is a source that did not load: the next is tried, and with
47
+ // none left the family stays out of the list and the text is set in the
48
+ // next one, as a browser sets it when it cannot use a font.
49
+ //
50
+ // **A WOFF2 an engine does not take is handed over as the font inside it.**
51
+ // The web serves a font as WOFF2 and as little else, and not every engine
52
+ // reads one: CoreText reads an sfnt and nothing more, so react-x11's
53
+ // `loadFont` throws for a WOFF2 on macOS, and the fontkit ntk cuts a
54
+ // variable face with cut nothing out of one. Either way the page was set in
55
+ // its fallback — nextjs.org in Arial, the family its `local()` names, where
56
+ // a browser sets it in Geist. So a file is offered as it was served, and
57
+ // where that is refused the sfnt it wraps is rebuilt (`woff2.ts`) and
58
+ // offered in its place (`_register`); only a font refused both ways is a
59
+ // source that did not load. Nothing asks which engine it is.
60
+ //
61
+ // **A variable face is set at the weight its rule has for a style's.** The
62
+ // weight a style asks for is a place on the face's `wght` axis, clamped to
63
+ // the range its `@font-face` declares (CSS Fonts 4, 7.2), and the rule is
64
+ // the document's: the value is said here (`wght`) and handed to the engine
65
+ // with the run (`layout/axes.ts`). Left alone, ntk moves the axis to the
66
+ // style's weight whatever the rule declared, and CoreText, for a face
67
+ // react-x11 registered, does not move it — every weight of Geist was its
68
+ // regular on macOS.
69
+ //
38
70
  // A family split by `unicode-range` is registered a name per range, since the
39
71
  // font manager picks among one name's faces by weight and slant alone, and
40
72
  // the range that holds the most of the document's characters goes first: the
41
73
  // first family is the one a run is set in, and the others are reached through
42
74
  // the fallback for the characters it lacks.
43
75
  //
76
+ // **A family the document declares is never the system's by that name.**
77
+ // CSS Fonts 4 (5.2) has a family defined by `@font-face` with no face
78
+ // present treated as missing, and forbids matching a platform font of the
79
+ // same name. That holds for a family whose sources are all `local()`s too,
80
+ // which is the one that used to get past: next/font declares
81
+ // `"GeistSans Fallback"` as `src: local("Arial")`, the rule was dropped for
82
+ // having no `url()`, and the name went to the text engine as written —
83
+ // where fontconfig's nearest guess for a family nobody has was Hiragino Sans
84
+ // at 400 and Gill Sans Ultra Bold at 450.
85
+ //
86
+ // A `local()` is a source like a `url()`, tried in the order `src` lists
87
+ // them, and what it comes to is **an alias**: a face the system has goes
88
+ // into the list as its family's name (`localFamily`), in the place of the
89
+ // document's, and nothing is registered. A font manager has no lookup by a
90
+ // face's name — it answers any family with its best guess — so the question
91
+ // is put as a match, and the answer is believed only when the face that
92
+ // comes back says it is the one named.
93
+ //
44
94
  // What stays the application's: registering a face adds it to ntk's
45
95
  // fallback chain, where it can supply a glyph no other face has to text
46
96
  // anywhere in the app (react-x11's `loadFont` says so), and nothing is ever
47
97
  // unregistered — the font manager has no way to. A session that visits many
48
98
  // sites keeps their faces, one registration per distinct declaration.
49
- import { loadFont } from 'react-x11';
99
+ import { loadFont, openFont } from 'react-x11';
100
+ import { isWoff2, sfntFromWoff2 } from './woff2.js';
50
101
  /** The formats a font manager reads. A source hinted as anything else — an
51
102
  * `embedded-opentype` for old Internet Explorer, an `svg` font — is not
52
103
  * asked for; one with no hint is. */
@@ -71,7 +122,10 @@ function registryOf(app) {
71
122
  next: 0,
72
123
  names: new Map(),
73
124
  ready: new Set(),
125
+ locals: new Map(),
126
+ axes: new Map(),
74
127
  pending: new Map(),
128
+ warned: false,
75
129
  };
76
130
  REGISTRIES.set(app, registry);
77
131
  }
@@ -104,6 +158,14 @@ export class WebFonts {
104
158
  * lists that come to one string share an entry, which can ask for a face
105
159
  * a little early; never for one nothing wants. */
106
160
  _sources = new Map();
161
+ /** The groups by the names they are registered under, which is how a
162
+ * list the engine is handed names one (`wght`). */
163
+ _groups = new Map();
164
+ /** Lists → weight and slant → the axis value text in them is set at. */
165
+ _axes = new Map();
166
+ /** Whether any loaded face has a weight axis to set; null for not yet
167
+ * asked since the faces changed. */
168
+ _variable = null;
107
169
  /** The document's characters, as the last `request` saw them. */
108
170
  _text = null;
109
171
  _seen = new Set();
@@ -183,14 +245,17 @@ export class WebFonts {
183
245
  order: order++,
184
246
  };
185
247
  for (const m of members) {
186
- const ready = registry?.ready.has(faceKey(name, m.rule)) ?? false;
187
248
  const face = {
188
249
  rule: m.rule,
189
250
  element: m.element,
190
251
  group,
191
252
  family,
192
- state: ready ? 'ready' : 'idle',
253
+ state: 'idle',
254
+ local: null,
255
+ wght: null,
193
256
  };
257
+ if (registry?.ready.has(faceKey(name, m.rule)))
258
+ arrive(face, registry);
194
259
  group.faces.push(face);
195
260
  made.set(m, face);
196
261
  }
@@ -199,6 +264,11 @@ export class WebFonts {
199
264
  families.set(key, family);
200
265
  }
201
266
  this._families = families;
267
+ this._groups.clear();
268
+ for (const family of families.values()) {
269
+ for (const group of family.groups)
270
+ this._groups.set(group.name, group);
271
+ }
202
272
  this._faces = declared.map((d) => made.get(d));
203
273
  // the ranges are new, and so is what they cover
204
274
  if (this._text !== null)
@@ -224,8 +294,16 @@ export class WebFonts {
224
294
  }
225
295
  used.push(family);
226
296
  for (const group of orderedGroups(family)) {
227
- if (group.faces.some((f) => f.state === 'ready'))
297
+ // the name its files are registered under, then the families its
298
+ // `local()`s came to
299
+ const ready = group.faces.filter((f) => f.state === 'ready');
300
+ if (ready.some((f) => f.local === null))
228
301
  out.push(group.name);
302
+ for (const face of ready) {
303
+ if (face.local !== null && !out.includes(face.local)) {
304
+ out.push(face.local);
305
+ }
306
+ }
229
307
  }
230
308
  }
231
309
  let mapped = out.length ? out.join(', ') : this._fallback;
@@ -259,6 +337,62 @@ export class WebFonts {
259
337
  for (const family of families)
260
338
  family.wants.add(want);
261
339
  }
340
+ /** Whether any face the document has loaded is a variable font whose rule
341
+ * declares a range of weights: whether `wght` has anything to say. */
342
+ get variable() {
343
+ if (this._variable === null) {
344
+ this._variable = false;
345
+ for (const group of this._groups.values()) {
346
+ if (group.faces.some((f) => ranged(f) !== null))
347
+ this._variable = true;
348
+ }
349
+ }
350
+ return this._variable;
351
+ }
352
+ /**
353
+ * Where on its weight axis text in a family list — one `map` made — is
354
+ * set at a weight and slant, or null where no axis is this document's to
355
+ * set.
356
+ *
357
+ * CSS has the weight a style asks for applied to a variable face's `wght`
358
+ * axis, clamped to the range its `@font-face` rule declares (CSS Fonts 4,
359
+ * 7.2): `font-weight: 100 900` is every weight the file has, and
360
+ * under `font-weight: 400 700` text at 900 is set at 700. The rule is the
361
+ * document's, so the value is said here and handed to the engine with the
362
+ * run (`layout/axes.ts`). An engine left to itself either moves the axis
363
+ * to the style's weight, past what the rule declared — ntk — or not at
364
+ * all: a face react-x11 registers with CoreText is drawn at its file's
365
+ * default, and every weight of Geist on macOS was the regular.
366
+ *
367
+ * Only the list's first family is asked, the one text is set in, and only
368
+ * a face whose rule declares a range: one declared at a single weight is
369
+ * left as the engine sets it.
370
+ */
371
+ wght(list, weight, italic) {
372
+ if (!this.variable)
373
+ return null;
374
+ let byFace = this._axes.get(list);
375
+ if (!byFace)
376
+ this._axes.set(list, (byFace = new Map()));
377
+ const key = italic ? -weight : weight;
378
+ let axis = byFace.get(key);
379
+ if (axis === undefined) {
380
+ axis = null;
381
+ const comma = list.indexOf(',');
382
+ const first = (comma < 0 ? list : list.slice(0, comma)).trim();
383
+ const face = bestFace(
384
+ // the faces registered under the name, which the engine picks among
385
+ this._groups
386
+ .get(first)
387
+ ?.faces.filter((f) => f.state === 'ready' && f.local === null) ?? [], weight, italic);
388
+ const range = face && ranged(face);
389
+ if (range) {
390
+ axis = weightAxis(Math.max(range[0], Math.min(weight, range[1])));
391
+ }
392
+ byFace.set(key, axis);
393
+ }
394
+ return axis;
395
+ }
262
396
  /**
263
397
  * Ask for the faces the styles noted since the last call want, for the
264
398
  * characters `text` holds — the document's own. True when the lists the
@@ -292,6 +426,7 @@ export class WebFonts {
292
426
  destroy() {
293
427
  this._destroyed = true;
294
428
  this._families.clear();
429
+ this._groups.clear();
295
430
  this._forget();
296
431
  }
297
432
  /** Every list mapped before this is stale: a face arrived, or the faces
@@ -299,6 +434,8 @@ export class WebFonts {
299
434
  _forget() {
300
435
  this._memo.clear();
301
436
  this._sources.clear();
437
+ this._axes.clear();
438
+ this._variable = null;
302
439
  }
303
440
  /**
304
441
  * Load the face in a group that best matches a weight and slant, passing
@@ -387,7 +524,7 @@ export class WebFonts {
387
524
  const registry = registryOf(app);
388
525
  const key = faceKey(face.group.name, face.rule);
389
526
  if (registry.ready.has(key)) {
390
- face.state = 'ready';
527
+ arrive(face, registry);
391
528
  return 'ready';
392
529
  }
393
530
  face.state = 'loading';
@@ -404,7 +541,7 @@ export class WebFonts {
404
541
  registry.ready.add(key);
405
542
  settle(ok);
406
543
  };
407
- const sources = face.rule.sources.filter((s) => s.format === null || READABLE.has(s.format));
544
+ const sources = face.rule.sources.filter((s) => 'local' in s || s.format === null || READABLE.has(s.format));
408
545
  let i = 0;
409
546
  let sync = true;
410
547
  /** Ask for the next source. `'ready'` registered it, `'waiting'` is
@@ -412,6 +549,21 @@ export class WebFonts {
412
549
  const next = () => {
413
550
  while (i < sources.length) {
414
551
  const source = sources[i++];
552
+ if ('local' in source) {
553
+ // nothing to ask the host for, and nothing to wait on
554
+ const family = this._destroyed
555
+ ? null
556
+ : localFamily(app, source.local, face.rule);
557
+ if (family === null)
558
+ continue;
559
+ registry.locals.set(key, family);
560
+ finish(true);
561
+ if (sync)
562
+ arrive(face, registry);
563
+ else
564
+ this._settled(face, true);
565
+ return 'ready';
566
+ }
415
567
  let answer;
416
568
  try {
417
569
  answer = this._ask({
@@ -424,13 +576,21 @@ export class WebFonts {
424
576
  continue;
425
577
  }
426
578
  if (isPromise(answer)) {
427
- answer.then((result) => after(this._register(face, result)), () => after(false));
579
+ answer
580
+ .then((result) => this._register(face, result, source.url))
581
+ .then(after, () => after(false));
428
582
  return 'waiting';
429
583
  }
430
- if (this._register(face, answer)) {
584
+ const registered = this._register(face, answer, source.url);
585
+ if (isPromise(registered)) {
586
+ // a WOFF2 being handed over as the font inside it
587
+ registered.then(after, () => after(false));
588
+ return 'waiting';
589
+ }
590
+ if (registered) {
431
591
  finish(true);
432
592
  if (sync)
433
- face.state = 'ready';
593
+ arrive(face, registry);
434
594
  else
435
595
  this._settled(face, true);
436
596
  return 'ready';
@@ -457,16 +617,47 @@ export class WebFonts {
457
617
  }
458
618
  return outcome === 'ready' ? 'ready' : 'loading';
459
619
  }
460
- /** Register a face's bytes under its group's name. False when the host
461
- * declined, or the font manager could not read them — a `.woff2` on
462
- * macOS, whose CoreText reads no such container, or a file that is not a
463
- * font — and the next source is tried. */
464
- _register(face, result) {
620
+ /**
621
+ * Register a face's bytes under its group's name. False when the host
622
+ * declined, or the font manager could not read them — a file that is not
623
+ * a font — or read them and cannot set text in them (`refusal`), and the
624
+ * next source is tried.
625
+ *
626
+ * A WOFF2 the engine does not take as served is handed over again as the
627
+ * font inside it (`woff2.ts`), and the answer is then a promise: CoreText
628
+ * reads no such container, so react-x11's `loadFont` refuses every one on
629
+ * macOS, and an ntk whose fontkit cuts no instance out of one cuts it out
630
+ * of the sfnt. Nothing here asks which engine it is: the file is offered
631
+ * as the web served it, and rebuilt only for an engine that said no.
632
+ */
633
+ _register(face, result, url) {
465
634
  if (this._destroyed || !this._app || result?.kind !== 'font')
466
635
  return false;
636
+ const refused = this._set(face, result.bytes);
637
+ if (refused === null)
638
+ return true;
639
+ if (!isWoff2(result.bytes))
640
+ return this._declined(url, refused);
641
+ return sfntFromWoff2(result.bytes).then((sfnt) => {
642
+ if (this._destroyed || !this._app)
643
+ return false;
644
+ const still = sfnt ? this._set(face, sfnt) : refused;
645
+ return still === null || this._declined(url, still);
646
+ });
647
+ }
648
+ /** Hand a font file to the font manager, under a face's group's name.
649
+ * Null when it registered; otherwise why the engine cannot set text in
650
+ * it (`refusal`), or `''` for bytes it could not read at all. */
651
+ _set(face, bytes) {
467
652
  const { weight, style } = face.rule;
653
+ const app = this._app;
468
654
  try {
469
- loadFont(this._app, result.bytes, {
655
+ // `loadFont` opens the file first too, and finds this one opened
656
+ const opened = openFont(app, bytes);
657
+ const refused = refusal(app, opened, this._fallback);
658
+ if (refused !== null)
659
+ return refused;
660
+ loadFont(app, bytes, {
470
661
  family: face.group.name,
471
662
  // a range is registered at the weight nearest regular in it: the
472
663
  // font manager picks among a group's faces by distance from one
@@ -474,32 +665,195 @@ export class WebFonts {
474
665
  weight: Math.max(weight[0], Math.min(400, weight[1])),
475
666
  style,
476
667
  });
477
- return true;
668
+ const axis = opened.variationAxes?.wght;
669
+ if (axis && axis.min < axis.max) {
670
+ const key = faceKey(face.group.name, face.rule);
671
+ registryOf(this._app).axes.set(key, [axis.min, axis.max]);
672
+ }
673
+ return null;
478
674
  }
479
675
  catch {
480
- return false;
676
+ return '';
481
677
  }
482
678
  }
679
+ /** A source did not register, and the one the engine refused is said. */
680
+ _declined(url, why) {
681
+ if (why && this._app)
682
+ warnRefused(registryOf(this._app), url, why);
683
+ return false;
684
+ }
483
685
  /** A face arrived, or will not. Either way the boxes are built again: an
484
686
  * arrival changes the lists, and a failure has the next face asked for,
485
687
  * by a family that has to be asked again to ask it. */
486
688
  _settled(face, ok) {
487
689
  if (this._destroyed)
488
690
  return;
489
- face.state = ok ? 'ready' : 'failed';
691
+ if (ok && this._app)
692
+ arrive(face, registryOf(this._app));
693
+ else
694
+ face.state = ok ? 'ready' : 'failed';
490
695
  if (!ok)
491
696
  face.family.asked.clear();
492
697
  this._forget();
493
698
  this._changed();
494
699
  }
495
700
  }
701
+ /** A registered face is the document's to use: what the connection knows
702
+ * of it — the family a `local()` came to, the axis its file has — is the
703
+ * face's. */
704
+ function arrive(face, registry) {
705
+ const key = faceKey(face.group.name, face.rule);
706
+ face.state = 'ready';
707
+ face.local = registry.locals.get(key) ?? null;
708
+ face.wght = registry.axes.get(key) ?? null;
709
+ }
710
+ /** One object a value: ntk tells two runs' variations apart by identity,
711
+ * and would set two runs at one weight as two. */
712
+ const WEIGHTS = new Map();
713
+ function weightAxis(wght) {
714
+ let axis = WEIGHTS.get(wght);
715
+ if (!axis)
716
+ WEIGHTS.set(wght, (axis = { wght }));
717
+ return axis;
718
+ }
719
+ /** The weights a loaded face's axis is set within: the range its rule
720
+ * declares, inside the one its file has. Null for a face with no axis, or
721
+ * declared at a single weight. */
722
+ function ranged(face) {
723
+ if (face.state !== 'ready' || !face.wght)
724
+ return null;
725
+ const lo = Math.max(face.rule.weight[0], face.wght[0]);
726
+ const hi = Math.min(face.rule.weight[1], face.wght[1]);
727
+ return face.rule.weight[0] < face.rule.weight[1] && lo <= hi
728
+ ? [lo, hi]
729
+ : null;
730
+ }
731
+ /** The axes a style moves without naming one: ntk sets `wght` from the
732
+ * weight and `opsz` from the size (its `docs/fonts.md`), and nothing here
733
+ * hands it a `font-variation-settings`. A face with neither is set as its
734
+ * file has it, whatever else varies in it. */
735
+ const DRIVEN_AXES = ['wght', 'opsz'];
736
+ /**
737
+ * Why the text engine cannot set text in an opened face, or null when it
738
+ * can: the face is asked for the instance a layout will ask it for, at the
739
+ * far end of each axis a style moves, and the answer is the engine's own.
740
+ * What it cost unasked was the document: ntk instantiates inside `match`,
741
+ * so the throw came out of the first layout in the family, at whatever
742
+ * weight was not the file's default.
743
+ *
744
+ * Only an engine that draws through the face is asked. CoreText and
745
+ * DirectWrite move an axis themselves, and the face react-x11 opens there
746
+ * is fontkit's, for an application to read: what it cannot do says nothing
747
+ * about what they draw.
748
+ */
749
+ export function refusal(app, font, family) {
750
+ const axes = font.variationAxes;
751
+ if (!axes || typeof font.variation !== 'function')
752
+ return null;
753
+ const settings = {};
754
+ for (const tag of DRIVEN_AXES) {
755
+ const axis = axes[tag];
756
+ if (!axis)
757
+ continue;
758
+ const far = axis.max !== axis.default ? axis.max : axis.min;
759
+ if (far !== axis.default)
760
+ settings[tag] = far;
761
+ }
762
+ if (!Object.keys(settings).length)
763
+ return null;
764
+ try {
765
+ font.variation(settings);
766
+ return null;
767
+ }
768
+ catch (error) {
769
+ return instantiates(app, family)
770
+ ? String(error?.message ?? error)
771
+ : null;
772
+ }
773
+ }
774
+ /** Whether the engine's faces are cut into instances as an opened one is:
775
+ * the face it matches a family with has `variation`, as ntk's has and a
776
+ * CoreText or DirectWrite one has not. An engine that cannot say — no
777
+ * family to match — is taken to, since what is at stake is the document. */
778
+ function instantiates(app, family) {
779
+ try {
780
+ const fonts = app
781
+ .fonts;
782
+ const face = fonts?.match?.(family);
783
+ return !face || typeof face.variation === 'function';
784
+ }
785
+ catch {
786
+ return true;
787
+ }
788
+ }
789
+ /** Said once a connection, in development: a page set in its fallback
790
+ * family looks like a font that never loaded, and this says it did. */
791
+ function warnRefused(registry, url, why) {
792
+ if (registry.warned)
793
+ return;
794
+ registry.warned = true;
795
+ const g = globalThis;
796
+ if (g.process?.env?.NODE_ENV === 'production')
797
+ return;
798
+ g.console?.warn(`@react-x11/components: <Html> loaded the font at ${url} and the text ` +
799
+ 'engine cannot set text in it, so its family is left out and the text ' +
800
+ 'is set in the next one — as it is for every face the engine refuses. ' +
801
+ `A variable font served as WOFF2 is the usual cause.\n${why}`);
802
+ }
496
803
  /** A face's identity within a registered name. */
497
804
  function faceKey(name, rule) {
498
805
  return `${name}\u0000${faceSignature(rule)}`;
499
806
  }
500
807
  function faceSignature(rule) {
501
808
  const range = rangeKey(rule.unicodeRange);
502
- return `${rule.sources.map((s) => s.url).join(' ')}@${rule.weight.join('-')}${rule.style}#${range}`;
809
+ const sources = rule.sources.map((s) => 'local' in s ? `local(${s.local})` : s.url);
810
+ return `${sources.join(' ')}@${rule.weight.join('-')}${rule.style}#${range}`;
811
+ }
812
+ /**
813
+ * The family of the face a `local()` names, or null when the system has no
814
+ * such face and the next source is tried.
815
+ *
816
+ * CSS Fonts 4 (4.3.1) has the name be one face's — its full name or its
817
+ * PostScript name, never a family's, and never a platform's substitute for
818
+ * it. A font manager has no lookup by either: it takes a family and answers
819
+ * with its best guess, which for a name nobody has is some other font. So
820
+ * the name is matched as a family, at the weight and slant the rule declares
821
+ * its face to have, and the answer counts only when the face that comes back
822
+ * says it is the one asked for: by its family, which is the full name of a
823
+ * family's regular face and how `local()` is nearly always spelled
824
+ * (`local(Arial)`), or by its PostScript name, where an engine finds a face
825
+ * by one. A full name with a style in it (`local(Arial Bold)`) is no family,
826
+ * and is not found.
827
+ *
828
+ * What comes back is the family and not the face: the list names it, and
829
+ * the engine picks among its faces by the weight and slant of the text, as
830
+ * it does for any family. Bold text in a family declared as the one face
831
+ * `local(Arial)` is set in Arial's bold, where a browser emboldens the
832
+ * regular.
833
+ */
834
+ function localFamily(app, name, rule) {
835
+ const fonts = app.fonts;
836
+ if (typeof fonts?.match !== 'function')
837
+ return null;
838
+ const [lo, hi] = rule.weight;
839
+ try {
840
+ const face = fonts.match(name, {
841
+ weight: Math.max(lo, Math.min(400, hi)),
842
+ style: rule.style,
843
+ });
844
+ const family = face?.familyName;
845
+ if (!family)
846
+ return null;
847
+ const want = name.toLowerCase();
848
+ return family.toLowerCase() === want ||
849
+ face.postscriptName?.toLowerCase() === want
850
+ ? family
851
+ : null;
852
+ }
853
+ catch {
854
+ // no fontconfig, or a name it could not read: not found
855
+ return null;
856
+ }
503
857
  }
504
858
  function rangeKey(ranges) {
505
859
  return ranges ? ranges.map(([a, b]) => `${a}-${b}`).join(',') : '*';
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/html/fonts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/html/fonts.ts"],"names":[],"mappings":"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"}