dowel-ui 0.30.0 → 0.32.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 (107) hide show
  1. package/README.md +8 -9
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +55 -19
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/eslint/index.d.ts +1 -0
  6. package/dist/eslint/index.d.ts.map +1 -1
  7. package/dist/eslint/index.js +13 -4
  8. package/dist/eslint/index.js.map +1 -1
  9. package/dist/eslint/no-implicit-locale.d.ts +3 -0
  10. package/dist/eslint/no-implicit-locale.d.ts.map +1 -0
  11. package/dist/eslint/no-implicit-locale.js +83 -0
  12. package/dist/eslint/no-implicit-locale.js.map +1 -0
  13. package/dist/index.d.ts +6 -4
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +5 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/locale.d.ts +16 -0
  18. package/dist/locale.d.ts.map +1 -0
  19. package/dist/locale.js +55 -0
  20. package/dist/locale.js.map +1 -0
  21. package/dist/marks/atlas-L.svg +3 -0
  22. package/dist/marks/atlas-M.svg +1 -0
  23. package/dist/marks/atlas-S.svg +1 -0
  24. package/dist/marks/austeris-L.svg +6 -0
  25. package/dist/marks/austeris-M.svg +1 -0
  26. package/dist/marks/austeris-S.svg +1 -0
  27. package/dist/marks/dowel-L.svg +5 -0
  28. package/dist/marks/dowel-M.svg +1 -0
  29. package/dist/marks/dowel-S.svg +1 -0
  30. package/dist/marks/efema-L.svg +8 -0
  31. package/dist/marks/efema-M.svg +1 -0
  32. package/dist/marks/efema-S.svg +1 -0
  33. package/dist/marks/furca-L.svg +7 -0
  34. package/dist/marks/furca-M.svg +1 -0
  35. package/dist/marks/furca-S.svg +1 -0
  36. package/dist/marks/hilvan-L.svg +3 -0
  37. package/dist/marks/hilvan-M.svg +1 -0
  38. package/dist/marks/hilvan-S.svg +1 -0
  39. package/dist/marks/kasl-L.svg +4 -0
  40. package/dist/marks/kasl-M.svg +1 -0
  41. package/dist/marks/kasl-S.svg +1 -0
  42. package/dist/marks/kasl-server-L.svg +4 -0
  43. package/dist/marks/kasl-server-M.svg +1 -0
  44. package/dist/marks/kasl-server-S.svg +1 -0
  45. package/dist/marks/kilna-L.svg +3 -0
  46. package/dist/marks/kilna-M.svg +1 -0
  47. package/dist/marks/kilna-S.svg +1 -0
  48. package/dist/marks/lacodda-L.svg +1 -0
  49. package/dist/marks/lacodda-M.svg +1 -0
  50. package/dist/marks/lacodda-S.svg +1 -0
  51. package/dist/marks/lyrid-L.svg +8 -0
  52. package/dist/marks/lyrid-M.svg +1 -0
  53. package/dist/marks/lyrid-S.svg +1 -0
  54. package/dist/marks/lyrn-L.svg +3 -0
  55. package/dist/marks/lyrn-M.svg +1 -0
  56. package/dist/marks/lyrn-S.svg +1 -0
  57. package/dist/marks/midda-L.svg +4 -0
  58. package/dist/marks/midda-M.svg +1 -0
  59. package/dist/marks/midda-S.svg +1 -0
  60. package/dist/marks/nitid-L.svg +4 -0
  61. package/dist/marks/nitid-M.svg +1 -0
  62. package/dist/marks/nitid-S.svg +1 -0
  63. package/dist/marks/nooma-L.svg +12 -0
  64. package/dist/marks/nooma-M.svg +1 -0
  65. package/dist/marks/nooma-S.svg +1 -0
  66. package/dist/marks/rhapsod-L.svg +4 -0
  67. package/dist/marks/rhapsod-M.svg +1 -0
  68. package/dist/marks/rhapsod-S.svg +1 -0
  69. package/dist/marks/rigger-L.svg +8 -0
  70. package/dist/marks/rigger-M.svg +1 -0
  71. package/dist/marks/rigger-S.svg +1 -0
  72. package/dist/marks/scheda-L.svg +5 -0
  73. package/dist/marks/scheda-M.svg +1 -0
  74. package/dist/marks/scheda-S.svg +1 -0
  75. package/dist/marks/sefy-L.svg +4 -0
  76. package/dist/marks/sefy-M.svg +1 -0
  77. package/dist/marks/sefy-S.svg +1 -0
  78. package/dist/marks/turnout-L.svg +4 -0
  79. package/dist/marks/turnout-M.svg +1 -0
  80. package/dist/marks/turnout-S.svg +1 -0
  81. package/dist/marks.d.ts +12 -0
  82. package/dist/marks.d.ts.map +1 -0
  83. package/dist/marks.js +121 -0
  84. package/dist/marks.js.map +1 -0
  85. package/dist/palettes/atlas.json +1 -1
  86. package/dist/palettes/austeris.json +1 -1
  87. package/dist/palettes/dowel.json +1 -1
  88. package/dist/palettes/efema.json +1 -1
  89. package/dist/palettes/furca.json +1 -1
  90. package/dist/palettes/hilvan.json +1 -1
  91. package/dist/palettes/kasl-server.json +1 -1
  92. package/dist/palettes/kasl.json +1 -1
  93. package/dist/palettes/kilna.json +1 -1
  94. package/dist/palettes/lyrid.json +1 -1
  95. package/dist/palettes/lyrn.json +1 -1
  96. package/dist/palettes/midda.json +1 -1
  97. package/dist/palettes/nitid.json +1 -1
  98. package/dist/palettes/nooma.json +1 -1
  99. package/dist/palettes/rhapsod.json +1 -1
  100. package/dist/palettes/rigger.json +1 -1
  101. package/dist/palettes/scheda.json +1 -1
  102. package/dist/palettes/sefy.json +1 -1
  103. package/dist/palettes/turnout.json +1 -1
  104. package/dist/registry.json +378 -121
  105. package/dist/theme.css +39 -0
  106. package/dist/tokens.json +7 -0
  107. package/package.json +8 -3
package/README.md CHANGED
@@ -60,14 +60,13 @@ npx shadcn@latest add https://lacodda.github.io/dowel/r/button.json
60
60
  npx shadcn@latest add https://lacodda.github.io/dowel/r/app.json # or a whole set
61
61
  ```
62
62
 
63
- Ninety-four primitives so far - the everyday controls, forms, overlays built on
64
- [Base UI](https://base-ui.com), menus and selection, the command palette,
65
- tables and long lists, charts, the screens between asking for data and showing
66
- it, markdown, code and diffs, the frame a screen sits in, a desktop window's
67
- own chrome and the three abilities of a catalogue table. Each is
68
- written in the vocabulary - no raw
69
- colours, no `dark:` utilities - and runs its own gate before it ships: axe, the
70
- keyboard, a dependency budget and a picture in both themes.
63
+ A hundred and six primitives so far - controls and forms, overlays on
64
+ [Base UI](https://base-ui.com), menus, the command palette, tables and long
65
+ lists, charts, loading and empty screens, markdown, code and diffs, a screen's
66
+ frame and how it divides, a desktop window's own chrome, and the line's marks.
67
+ Each is written in the vocabulary - no raw colours, no `dark:` utilities, no
68
+ date in the browser's language - and runs its own gate: axe, the keyboard, a
69
+ dependency budget and a picture in both themes.
71
70
 
72
71
  The full catalogue, live: **[the stand](https://lacodda.github.io/dowel/stand/)**.
73
72
  One page per component: **[components](https://lacodda.github.io/dowel/components/button/)**.
@@ -153,7 +152,7 @@ where it measured 3.49:1. Derived, it is white there, at 6.01:1.
153
152
 
154
153
  ## Status
155
154
 
156
- The theme, the scales, an accent per product, and ninety-four primitives are
155
+ The theme, the scales, an accent per product, and a hundred and six primitives are
157
156
  in daily use across two products of the line. Every component installs from a
158
157
  versioned registry and passes its own gate - axe, the keyboard, a dependency
159
158
  budget, a scale that refuses a length nobody argued for, a floor under every
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AA2CA;;;mDAGmD;AACnD,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AA6WxB,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAqBpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AA2CA;;;mDAGmD;AACnD,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAgaxB,wBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAqBpD"}
package/dist/cli/index.js CHANGED
@@ -196,6 +196,43 @@ function commandCodemod(options) {
196
196
  }
197
197
  return 0;
198
198
  }
199
+ /** What has been copied in from the registry, and what sits among the copies
200
+ * looking like one without being one.
201
+ *
202
+ * A copy is recognised by its file name matching a catalogue item, and then by
203
+ * one of two things. Either it imports the package - the name alone would
204
+ * claim every `button.tsx` ever written - or it sits in a directory that holds
205
+ * a copy which does. The second half is what the first missed: `calendar-math`
206
+ * is pure functions and imports nothing from `dowel-ui`, and neither do ten
207
+ * other helpers the set ships, so a project's copy of one drifted from the
208
+ * registry and `diff` never said so. A helper is copied into the same
209
+ * directory as the component that imports it, which is how it is known.
210
+ *
211
+ * `local` is the other direction: a file named the way the registry names
212
+ * things - lower case, hyphenated - in a directory of copies, with no twin in
213
+ * the catalogue. kilna kept its popup layer that way, as `layer.tsx` beside
214
+ * the copies, and seven of them were patched to import it. Such a file is
215
+ * allowed; not being told it is there is how the copies it patched came to
216
+ * differ from the registry with no one able to say why. */
217
+ function findCopies(root, catalogue) {
218
+ const componentNames = new Set(catalogue.items.filter((item) => item.type === 'registry:ui').map((item) => item.name));
219
+ const files = collectFiles(root).filter((path) => path.endsWith('.tsx'));
220
+ const baseOf = (path) => path.slice(path.lastIndexOf(sep) + 1).replace(/\.tsx$/, '');
221
+ const dirOf = (path) => path.slice(0, path.lastIndexOf(sep));
222
+ const named = files
223
+ .filter((path) => componentNames.has(baseOf(path)))
224
+ .map((path) => ({ path, name: baseOf(path), source: readFileSync(path, 'utf8') }));
225
+ const copyDirs = new Set(named.filter((copy) => copy.source.includes('dowel-ui')).map((copy) => dirOf(copy.path)));
226
+ const installed = named
227
+ .filter((copy) => copy.source.includes('dowel-ui') || copyDirs.has(dirOf(copy.path)))
228
+ .map(({ name, source }) => ({ name, source }));
229
+ const local = files
230
+ .filter((path) => copyDirs.has(dirOf(path)))
231
+ .filter((path) => /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(baseOf(path)) && !componentNames.has(baseOf(path)))
232
+ .map((path) => relative(root, path).split(sep).join('/'))
233
+ .sort();
234
+ return { installed, local };
235
+ }
199
236
  /** Gather what `doctor` needs from a project on disk. */
200
237
  function readProject(root) {
201
238
  const readJson = (path) => {
@@ -218,24 +255,7 @@ function readProject(root) {
218
255
  source: readFileSync(path, 'utf8'),
219
256
  }));
220
257
  const catalogue = readCatalogue(root);
221
- /* What has been copied in. A registry component is recognised by the file
222
- * name matching a catalogue item and the file importing the package - the
223
- * name alone would claim every `button.tsx` ever written. */
224
- const installedComponents = [];
225
- if (catalogue) {
226
- const componentNames = new Set(catalogue.items.filter((item) => item.type === 'registry:ui').map((item) => item.name));
227
- for (const path of collectFiles(root)) {
228
- if (!path.endsWith('.tsx'))
229
- continue;
230
- const base = path.slice(path.lastIndexOf(sep) + 1).replace(/\.tsx$/, '');
231
- if (!componentNames.has(base))
232
- continue;
233
- const source = readFileSync(path, 'utf8');
234
- if (!source.includes('dowel-ui'))
235
- continue;
236
- installedComponents.push({ name: base, source });
237
- }
238
- }
258
+ const installedComponents = catalogue ? findCopies(root, catalogue).installed : [];
239
259
  return {
240
260
  root,
241
261
  manifest,
@@ -296,10 +316,24 @@ function commandDiff(options) {
296
316
  continue;
297
317
  changed.push({ name: component.name, hunks: hunks(diffLines(upstream, component.source)) });
298
318
  }
319
+ // Asked about one component, the answer is about that one; the files
320
+ // around it are a question about the whole directory.
321
+ const local = wanted ? [] : findCopies(root, catalogue).local;
299
322
  if (options.json) {
300
- process.stdout.write(`${JSON.stringify({ changed }, null, 2)}\n`);
323
+ process.stdout.write(`${JSON.stringify({ changed, local }, null, 2)}\n`);
301
324
  return 0;
302
325
  }
326
+ /* Printed whatever the diff says, including when every copy matches: a
327
+ * local file among the copies is exactly what makes "unchanged" true of the
328
+ * copies and misleading about the directory. */
329
+ const reportLocal = () => {
330
+ if (local.length === 0)
331
+ return;
332
+ process.stdout.write(`\n${yellow('Not from the registry')} - named like a copy, with no twin in the catalogue:\n`);
333
+ for (const path of local)
334
+ process.stdout.write(` ${bold(path)}\n`);
335
+ process.stdout.write(`${dim('Yours to keep. A copy that imports one of these differs from the registry because of it.')}\n`);
336
+ };
303
337
  /* Nothing to compare is not the same as nothing differing. "0 components
304
338
  * match the registry" reads as reassurance about work that never happened -
305
339
  * found by running the published command against a project with no
@@ -311,6 +345,7 @@ function commandDiff(options) {
311
345
  if (changed.length === 0) {
312
346
  const scope = wanted ? bold(wanted) : `${targets.length} component${targets.length === 1 ? '' : 's'}`;
313
347
  process.stdout.write(`${green('Unchanged')}: ${scope} ${targets.length === 1 ? 'matches' : 'match'} the registry.\n`);
348
+ reportLocal();
314
349
  return 0;
315
350
  }
316
351
  for (const component of changed) {
@@ -329,6 +364,7 @@ function commandDiff(options) {
329
364
  }
330
365
  process.stdout.write(`\n${bold(String(changed.length))} of ${targets.length} ${targets.length === 1 ? 'component differs' : 'components differ'} from the registry.\n` +
331
366
  `${dim('That is allowed - a copied component is yours. Nothing here merges anything.')}\n`);
367
+ reportLocal();
332
368
  return 0;
333
369
  }
334
370
  const USAGE = `dowel - migration tools for the lacodda design system
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,6 @@ declare const dowel: ESLint.Plugin & {
9
9
  };
10
10
  export default dowel;
11
11
  export { noRawColor, findRawColor } from './no-raw-color.js';
12
+ export { noImplicitLocale } from './no-implicit-locale.js';
12
13
  export { noNativeSelect } from './no-native-select.js';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAyC5C;;+EAE+E;AAC/E,QAAA,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;KAAE,CAAA;CAEtE,CAAA;AAEF,eAAe,KAAK,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAiD5C;;+EAE+E;AAC/E,QAAA,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG;IAAE,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;KAAE,CAAA;CAEtE,CAAA;AAEF,eAAe,KAAK,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,11 +1,14 @@
1
+ import { noImplicitLocale } from './no-implicit-locale.js';
1
2
  import { noNativeSelect } from './no-native-select.js';
2
3
  import { noRawColor } from './no-raw-color.js';
3
4
  /*
4
5
  * The dowel ESLint plugin.
5
6
  *
6
- * Two rules, and both enforce a convention the system rests on: a component
7
- * names colours from the vocabulary and never writes one down, and no screen
8
- * uses a native `<select>`, which the browser draws in its own chrome.
7
+ * Three rules, and each enforces a convention the system rests on: a
8
+ * component names colours from the vocabulary and never writes one down, no
9
+ * screen uses a native `<select>`, which the browser draws in its own chrome,
10
+ * and no date or number is formatted in the browser's language rather than
11
+ * the application's.
9
12
  *
10
13
  * It ships from the package rather than the registry because it is not a
11
14
  * component - it is not copied into a product and edited there, it is a check
@@ -20,7 +23,11 @@ import { noRawColor } from './no-raw-color.js';
20
23
  */
21
24
  const plugin = {
22
25
  meta: { name: 'dowel' },
23
- rules: { 'no-raw-color': noRawColor, 'no-native-select': noNativeSelect },
26
+ rules: {
27
+ 'no-raw-color': noRawColor,
28
+ 'no-native-select': noNativeSelect,
29
+ 'no-implicit-locale': noImplicitLocale,
30
+ },
24
31
  };
25
32
  /** The rules, applied where components live. Scoped to TypeScript sources:
26
33
  * the theme is CSS and the build tools are Node, and neither is a component. */
@@ -31,6 +38,7 @@ const recommended = [
31
38
  rules: {
32
39
  'dowel/no-raw-color': 'error',
33
40
  'dowel/no-native-select': 'error',
41
+ 'dowel/no-implicit-locale': 'error',
34
42
  },
35
43
  },
36
44
  ];
@@ -42,5 +50,6 @@ const dowel = Object.assign(plugin, {
42
50
  });
43
51
  export default dowel;
44
52
  export { noRawColor, findRawColor } from './no-raw-color.js';
53
+ export { noImplicitLocale } from './no-implicit-locale.js';
45
54
  export { noNativeSelect } from './no-native-select.js';
46
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;IACvB,KAAK,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE;CAClD,CAAA;AAEzB;gFACgF;AAChF,MAAM,WAAW,GAAoB;IACnC;QACE,KAAK,EAAE,CAAC,eAAe,CAAC;QACxB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QAC1B,KAAK,EAAE;YACL,oBAAoB,EAAE,OAAO;YAC7B,wBAAwB,EAAE,OAAO;SAClC;KACF;CACF,CAAA;AAED;;+EAE+E;AAC/E,MAAM,KAAK,GAAkE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACjG,OAAO,EAAE,EAAE,WAAW,EAAE;CACzB,CAAC,CAAA;AAEF,eAAe,KAAK,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eslint/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;IACvB,KAAK,EAAE;QACL,cAAc,EAAE,UAAU;QAC1B,kBAAkB,EAAE,cAAc;QAClC,oBAAoB,EAAE,gBAAgB;KACvC;CACsB,CAAA;AAEzB;gFACgF;AAChF,MAAM,WAAW,GAAoB;IACnC;QACE,KAAK,EAAE,CAAC,eAAe,CAAC;QACxB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QAC1B,KAAK,EAAE;YACL,oBAAoB,EAAE,OAAO;YAC7B,wBAAwB,EAAE,OAAO;YACjC,0BAA0B,EAAE,OAAO;SACpC;KACF;CACF,CAAA;AAED;;+EAE+E;AAC/E,MAAM,KAAK,GAAkE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACjG,OAAO,EAAE,EAAE,WAAW,EAAE;CACzB,CAAC,CAAA;AAEF,eAAe,KAAK,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const noImplicitLocale: Rule.RuleModule;
3
+ //# sourceMappingURL=no-implicit-locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-implicit-locale.d.ts","sourceRoot":"","sources":["../../src/eslint/no-implicit-locale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AA4DlC,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,UA+BnC,CAAA"}
@@ -0,0 +1,83 @@
1
+ /*
2
+ * `no-implicit-locale` - a date or a number formatted without saying in which
3
+ * language.
4
+ *
5
+ * `toLocaleDateString()` with no argument, or with `[]`, or `new
6
+ * Intl.DateTimeFormat(undefined)`, asks for the *browser's* language. The
7
+ * interface is written in the application's. When the two differ - an English
8
+ * product in a browser set to Russian - the screen shows English headings over
9
+ * Russian weekdays, and nothing anywhere is wrong enough to fail: that is how
10
+ * kasl-server shipped it.
11
+ *
12
+ * The fix is one place that answers: `useLocale()` from `dowel-ui`, which reads
13
+ * the nearest `LocaleProvider` or the page's `<html lang>`. This rule reports
14
+ * every call that skips it. A variable passed as the locale is not reported -
15
+ * the rule cannot know where it came from, and naming one is the decision the
16
+ * rule is asking for.
17
+ */
18
+ /** Methods whose first argument is the locale. */
19
+ const METHODS = new Set(['toLocaleString', 'toLocaleDateString', 'toLocaleTimeString']);
20
+ /** `Intl` constructors whose first argument is the locale. */
21
+ const FORMATTERS = new Set([
22
+ 'DateTimeFormat',
23
+ 'NumberFormat',
24
+ 'RelativeTimeFormat',
25
+ 'ListFormat',
26
+ 'PluralRules',
27
+ 'Collator',
28
+ 'DisplayNames',
29
+ 'Segmenter',
30
+ 'DurationFormat',
31
+ ]);
32
+ const MESSAGE = 'This formats in the browser\'s language, not the application\'s. Pass the locale from ' +
33
+ '`useLocale()` (dowel-ui), so a date or a number reads in the language the interface is written in.';
34
+ /** Whether an argument leaves the choice to the browser. */
35
+ function implicit(argument) {
36
+ if (argument === undefined)
37
+ return true;
38
+ if (argument.type === 'Identifier' && argument.name === 'undefined')
39
+ return true;
40
+ if (argument.type === 'ArrayExpression' && (argument.elements?.length ?? 0) === 0)
41
+ return true;
42
+ return false;
43
+ }
44
+ export const noImplicitLocale = {
45
+ meta: {
46
+ type: 'problem',
47
+ docs: {
48
+ description: 'Forbid formatting a date or a number without naming the locale.',
49
+ url: 'https://lacodda.github.io/dowel/guides/linting/',
50
+ },
51
+ schema: [],
52
+ messages: { implicit: MESSAGE },
53
+ },
54
+ create(context) {
55
+ return {
56
+ CallExpression(node) {
57
+ const call = node;
58
+ const callee = call.callee;
59
+ if (callee?.type !== 'MemberExpression' || callee.computed)
60
+ return;
61
+ if (!METHODS.has(callee.property?.name ?? ''))
62
+ return;
63
+ // `n.toLocaleString()` on a number or a date. A string has no
64
+ // `toLocaleString` that formats anything, so the name is enough.
65
+ if (implicit(call.arguments?.[0]))
66
+ context.report({ node, messageId: 'implicit' });
67
+ },
68
+ NewExpression(node) {
69
+ const call = node;
70
+ const callee = call.callee;
71
+ if (callee?.type !== 'MemberExpression' || callee.computed)
72
+ return;
73
+ if (callee.object?.type !== 'Identifier' || callee.object.name !== 'Intl')
74
+ return;
75
+ if (!FORMATTERS.has(callee.property?.name ?? ''))
76
+ return;
77
+ if (implicit(call.arguments?.[0]))
78
+ context.report({ node, messageId: 'implicit' });
79
+ },
80
+ };
81
+ },
82
+ };
83
+ //# sourceMappingURL=no-implicit-locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-implicit-locale.js","sourceRoot":"","sources":["../../src/eslint/no-implicit-locale.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,kDAAkD;AAClD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAA;AAEvF,8DAA8D;AAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,YAAY;IACZ,aAAa;IACb,UAAU;IACV,cAAc;IACd,WAAW;IACX,gBAAgB;CACjB,CAAC,CAAA;AAEF,MAAM,OAAO,GACX,wFAAwF;IACxF,oGAAoG,CAAA;AActG,4DAA4D;AAC5D,SAAS,QAAQ,CAAC,QAA0B;IAC1C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,IAAI,CAAA;IAChF,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9F,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,iEAAiE;YAC9E,GAAG,EAAE,iDAAiD;SACvD;QACD,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;KAChC;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,cAAc,CAAC,IAAe;gBAC5B,MAAM,IAAI,GAAG,IAAuB,CAAA;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;gBAC1B,IAAI,MAAM,EAAE,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAM;gBAClE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;oBAAE,OAAM;gBACrD,8DAA8D;gBAC9D,iEAAiE;gBACjE,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;YACpF,CAAC;YACD,aAAa,CAAC,IAAe;gBAC3B,MAAM,IAAI,GAAG,IAAuB,CAAA;gBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;gBAC1B,IAAI,MAAM,EAAE,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,QAAQ;oBAAE,OAAM;gBAClE,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;oBAAE,OAAM;gBACjF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC;oBAAE,OAAM;gBACxD,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAA;YACpF,CAAC;SACmB,CAAA;IACxB,CAAC;CACF,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { cn } from './cn.js';
2
2
  export { lineProducts, lineProduct, type LineProduct } from './line.js';
3
+ export { documentLocale, fallbackLocale, LocaleProvider, useLocale, type LocaleProviderProps, } from './locale.js';
3
4
  export { defaultStorageKey, initTheme, nextTheme, resolvedTheme, useTheme, useThemeSwitch, type Theme, } from './theme.js';
4
5
  /** Tokens that carry a colour. Ordered as they read on a screen: grounds,
5
6
  * then hairlines, then ink, then the accent, then status. */
@@ -40,9 +41,10 @@ export declare const elevationTokens: readonly ["shadow-lift", "shadow-raise", "
40
41
  /** Corner radius. `md` is the control radius - inputs, buttons, list rows;
41
42
  * `inner` is what a shape nested inside another one takes. */
42
43
  export declare const radiusTokens: readonly ["radius-xs", "radius-sm", "radius-md", "radius-lg", "radius-xl", "radius-2xl", "radius-inner"];
43
- /** Type: sizes with their line heights, weights, and the two tracking steps
44
- * the products actually need. */
45
- export declare const typeTokens: readonly ["font-sans", "font-mono", "text-2xs", "text-xs", "text-sm", "text-base", "text-lg", "text-xl", "text-2xl", "font-weight-normal", "font-weight-medium", "font-weight-semibold", "tracking-caption", "tracking-tight"];
44
+ /** Type: sizes with their line heights, weights, the two tracking steps the
45
+ * products actually need, and the weight of an icon's line - which is drawn
46
+ * beside the text and has to read at the same weight as it. */
47
+ export declare const typeTokens: readonly ["font-sans", "font-mono", "text-2xs", "text-xs", "text-sm", "text-base", "text-lg", "text-xl", "text-2xl", "font-weight-normal", "font-weight-medium", "font-weight-semibold", "tracking-caption", "tracking-tight", "icon-stroke"];
46
48
  /** Motion. The durations are read directly rather than through a utility -
47
49
  * Tailwind's `duration-*` takes a literal number - while the easings are a
48
50
  * namespace, so `ease-out` is a class. */
@@ -81,7 +83,7 @@ export declare const layerTokens: readonly ["z-popup", "z-sticky", "z-menu", "z-
81
83
  * vocabulary - a docs page, an inspector, the JSON export, the test that keeps
82
84
  * this file honest against the stylesheet - reads this, so a new category
83
85
  * cannot be added and quietly missed by half of them. */
84
- export declare const allTokens: readonly ["bg", "raise", "soft", "softer", "line", "line-2", "text", "dim", "faint", "accent", "accent-2", "accent-soft", "on-accent", "on-good", "on-warn", "on-bad", "on-info", "good", "good-soft", "warn", "warn-soft", "bad", "bad-soft", "info", "info-soft", "series-1", "series-2", "series-3", "series-4", "series-5", "series-6", "series-7", "series-8", "scale-100", "scale-200", "scale-300", "scale-400", "scale-500", "scale-600", "scale-700", "chart-grid", "chart-axis", "heat-1", "heat-2", "heat-3", "heat-4", "heat-5", "syntax-keyword", "syntax-string", "syntax-number", "syntax-comment", "syntax-name", "syntax-type", "syntax-punctuation", "syntax-meta", "accent-base", "neutral-base", "neutral-tint", "neutral-tint-strong", "ground", "ink", "shadow-lift", "shadow-raise", "shadow-float", "radius-xs", "radius-sm", "radius-md", "radius-lg", "radius-xl", "radius-2xl", "radius-inner", "font-sans", "font-mono", "text-2xs", "text-xs", "text-sm", "text-base", "text-lg", "text-xl", "text-2xl", "font-weight-normal", "font-weight-medium", "font-weight-semibold", "tracking-caption", "tracking-tight", "duration-quick", "duration-base", "duration-slow", "ease-out", "ease-in-out", "size-target", "spacing-hair", "row-control", "row-control-sm", "row-control-lg", "row-cell", "spacing-titlebar", "spacing-rail", "spacing-window-button", "spacing-resize-edge", "spacing-resize-corner", "z-popup", "z-sticky", "z-menu", "z-floating", "z-overlay", "z-modal", "z-palette", "z-toast"];
86
+ export declare const allTokens: readonly ["bg", "raise", "soft", "softer", "line", "line-2", "text", "dim", "faint", "accent", "accent-2", "accent-soft", "on-accent", "on-good", "on-warn", "on-bad", "on-info", "good", "good-soft", "warn", "warn-soft", "bad", "bad-soft", "info", "info-soft", "series-1", "series-2", "series-3", "series-4", "series-5", "series-6", "series-7", "series-8", "scale-100", "scale-200", "scale-300", "scale-400", "scale-500", "scale-600", "scale-700", "chart-grid", "chart-axis", "heat-1", "heat-2", "heat-3", "heat-4", "heat-5", "syntax-keyword", "syntax-string", "syntax-number", "syntax-comment", "syntax-name", "syntax-type", "syntax-punctuation", "syntax-meta", "accent-base", "neutral-base", "neutral-tint", "neutral-tint-strong", "ground", "ink", "shadow-lift", "shadow-raise", "shadow-float", "radius-xs", "radius-sm", "radius-md", "radius-lg", "radius-xl", "radius-2xl", "radius-inner", "font-sans", "font-mono", "text-2xs", "text-xs", "text-sm", "text-base", "text-lg", "text-xl", "text-2xl", "font-weight-normal", "font-weight-medium", "font-weight-semibold", "tracking-caption", "tracking-tight", "icon-stroke", "duration-quick", "duration-base", "duration-slow", "ease-out", "ease-in-out", "size-target", "spacing-hair", "row-control", "row-control-sm", "row-control-lg", "row-cell", "spacing-titlebar", "spacing-rail", "spacing-window-button", "spacing-resize-edge", "spacing-resize-corner", "z-popup", "z-sticky", "z-menu", "z-floating", "z-overlay", "z-modal", "z-palette", "z-toast"];
85
87
  export type ColorToken = (typeof colorTokens)[number];
86
88
  export type ThemeParameter = (typeof themeParameters)[number];
87
89
  export type ElevationToken = (typeof elevationTokens)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@
16
16
  */
17
17
  export { cn } from './cn.js';
18
18
  export { lineProducts, lineProduct } from './line.js';
19
+ export { documentLocale, fallbackLocale, LocaleProvider, useLocale, } from './locale.js';
19
20
  export { defaultStorageKey, initTheme, nextTheme, resolvedTheme, useTheme, useThemeSwitch, } from './theme.js';
20
21
  /** Tokens that carry a colour. Ordered as they read on a screen: grounds,
21
22
  * then hairlines, then ink, then the accent, then status. */
@@ -123,8 +124,9 @@ export const radiusTokens = [
123
124
  'radius-2xl',
124
125
  'radius-inner',
125
126
  ];
126
- /** Type: sizes with their line heights, weights, and the two tracking steps
127
- * the products actually need. */
127
+ /** Type: sizes with their line heights, weights, the two tracking steps the
128
+ * products actually need, and the weight of an icon's line - which is drawn
129
+ * beside the text and has to read at the same weight as it. */
128
130
  export const typeTokens = [
129
131
  'font-sans',
130
132
  'font-mono',
@@ -140,6 +142,7 @@ export const typeTokens = [
140
142
  'font-weight-semibold',
141
143
  'tracking-caption',
142
144
  'tracking-tight',
145
+ 'icon-stroke',
143
146
  ];
144
147
  /** Motion. The durations are read directly rather than through a utility -
145
148
  * Tailwind's `duration-*` takes a literal number - while the easings are a
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type ReactNode } from 'react';
2
+ /** The answer when nothing on the page names a language. */
3
+ export declare const fallbackLocale = "en";
4
+ /** The page's declared language, or the fallback. Safe outside a browser. */
5
+ export declare function documentLocale(): string;
6
+ export interface LocaleProviderProps {
7
+ /** A BCP 47 tag, as `<html lang>` takes it: `en`, `pt-BR`, `ru`. */
8
+ locale: string;
9
+ children?: ReactNode;
10
+ }
11
+ /** Sets the language for a part of the page that speaks another one. */
12
+ export declare function LocaleProvider({ locale, children }: LocaleProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<string | null>>;
13
+ /** The language to format in: an explicit one if given, else the nearest
14
+ * `LocaleProvider`, else `<html lang>`, else English. */
15
+ export declare function useLocale(explicit?: string): string;
16
+ //# sourceMappingURL=locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AA6BtG,4DAA4D;AAC5D,eAAO,MAAM,cAAc,OAAO,CAAA;AAElC,6EAA6E;AAC7E,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAWD,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,mBAAmB,0FAEvE;AAED;yDACyD;AACzD,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAInD"}
package/dist/locale.js ADDED
@@ -0,0 +1,55 @@
1
+ import { createContext, createElement, useContext, useSyncExternalStore } from 'react';
2
+ /*
3
+ * The language an application speaks, as the one place dates and numbers ask.
4
+ *
5
+ * kasl-server's interface was English and its week headings came out in
6
+ * Russian: `toLocaleDateString([])` asks for the *browser's* language, and the
7
+ * browser belonged to someone in Moscow. Nothing was wrong with the call, and
8
+ * nothing was wrong with the browser - the formatting simply asked a different
9
+ * question from the one the interface answers. Every product that formats a
10
+ * date without naming a locale carries the same defect, waiting for a reader
11
+ * whose browser speaks a language the product does not.
12
+ *
13
+ * So the question is asked of the application, and the application answers
14
+ * in one place it already has to fill in: `<html lang>`. That attribute is
15
+ * what a screen reader pronounces the page in and what axe insists on, so a
16
+ * product sets it anyway; from now on it also decides how a Tuesday is
17
+ * written. It is watched, so a product that switches language by setting the
18
+ * attribute re-renders every date without a provider.
19
+ *
20
+ * `LocaleProvider` is for a part of the page that speaks another language than
21
+ * the rest - a preview of a document in its own language, a settings screen
22
+ * showing the choice before it is applied. An explicit `locale` prop on a
23
+ * primitive beats both.
24
+ *
25
+ * When nothing is declared the answer is English, the line's default - never
26
+ * the browser's language, which is the defect this exists to close.
27
+ */
28
+ /** The answer when nothing on the page names a language. */
29
+ export const fallbackLocale = 'en';
30
+ /** The page's declared language, or the fallback. Safe outside a browser. */
31
+ export function documentLocale() {
32
+ if (typeof document === 'undefined')
33
+ return fallbackLocale;
34
+ return document.documentElement.lang.trim() || fallbackLocale;
35
+ }
36
+ function subscribe(onChange) {
37
+ if (typeof MutationObserver === 'undefined' || typeof document === 'undefined')
38
+ return () => undefined;
39
+ const observer = new MutationObserver(onChange);
40
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: ['lang'] });
41
+ return () => observer.disconnect();
42
+ }
43
+ const LocaleContext = createContext(null);
44
+ /** Sets the language for a part of the page that speaks another one. */
45
+ export function LocaleProvider({ locale, children }) {
46
+ return createElement(LocaleContext.Provider, { value: locale }, children);
47
+ }
48
+ /** The language to format in: an explicit one if given, else the nearest
49
+ * `LocaleProvider`, else `<html lang>`, else English. */
50
+ export function useLocale(explicit) {
51
+ const provided = useContext(LocaleContext);
52
+ const declared = useSyncExternalStore(subscribe, documentLocale, () => fallbackLocale);
53
+ return explicit ?? provided ?? declared;
54
+ }
55
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../src/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAkB,MAAM,OAAO,CAAA;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAA;AAElC,6EAA6E;AAC7E,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,cAAc,CAAA;IAC1D,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,cAAc,CAAA;AAC/D,CAAC;AAED,SAAS,SAAS,CAAC,QAAoB;IACrC,IAAI,OAAO,gBAAgB,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,GAAG,EAAE,CAAC,SAAS,CAAA;IACtG,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAC/C,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC3F,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;AACpC,CAAC;AAED,MAAM,aAAa,GAAG,aAAa,CAAgB,IAAI,CAAC,CAAA;AAQxD,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAuB;IACtE,OAAO,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;AAC3E,CAAC;AAED;yDACyD;AACzD,MAAM,UAAU,SAAS,CAAC,QAAiB;IACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAA;IACtF,OAAO,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAA;AACzC,CAAC"}
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 100 100"><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="#1B2126" stroke="#1B2126" stroke-width="9" stroke-linejoin="round"/><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="none" stroke="#8A7DF5" stroke-opacity="0.75" stroke-width="3.5" stroke-linejoin="round"/><text x="50" y="52" text-anchor="middle" font-family='"Cascadia Code","JetBrains Mono",Consolas,ui-monospace,monospace' font-weight="700" font-size="30" fill="#8A7DF5">at</text><g transform="translate(0 6)">
2
+ <path d="M50 51 L53 63 L65 66 L53 69 L50 81 L47 69 L35 66 L47 63 Z" fill="#8A7DF5" fill-opacity="0.55"/>
3
+ <circle cx="66" cy="53" r="1.8" fill="#8A7DF5" fill-opacity="0.385"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 100 100"><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="#1B2126" stroke="#1B2126" stroke-width="9" stroke-linejoin="round"/><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="none" stroke="#8A7DF5" stroke-opacity="0.75" stroke-width="3.5" stroke-linejoin="round"/><text x="50" y="64" text-anchor="middle" font-family='"Cascadia Code","JetBrains Mono",Consolas,ui-monospace,monospace' font-weight="700" font-size="40" fill="#8A7DF5">at</text></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 100 100"><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="#8A7DF5" stroke="#8A7DF5" stroke-width="9" stroke-linejoin="round"/><text x="50" y="66" text-anchor="middle" font-family='"Cascadia Code","JetBrains Mono",Consolas,ui-monospace,monospace' font-weight="800" font-size="46" fill="#F7F8F4">at</text></svg>
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 100 100"><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="#1B2126" stroke="#1B2126" stroke-width="9" stroke-linejoin="round"/><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="none" stroke="#C25BD9" stroke-opacity="0.75" stroke-width="3.5" stroke-linejoin="round"/><text x="50" y="52" text-anchor="middle" font-family='"Cascadia Code","JetBrains Mono",Consolas,ui-monospace,monospace' font-weight="700" font-size="30" fill="#C25BD9">au</text><g transform="translate(0 6)" stroke="#C25BD9" stroke-linecap="round">
2
+ <line x1="31" y1="66" x2="69" y2="66" stroke-opacity="0.2475" stroke-width="2.04"/>
3
+ <line x1="38" y1="66" x2="38" y2="56" stroke-opacity="0.55" stroke-width="3.4"/>
4
+ <line x1="47" y1="66" x2="47" y2="52" stroke-opacity="0.55" stroke-width="3.4"/>
5
+ <line x1="56" y1="66" x2="56" y2="74" stroke-opacity="0.3025" stroke-width="3.4"/>
6
+ <line x1="65" y1="66" x2="65" y2="71" stroke-opacity="0.3025" stroke-width="3.4"/></g></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 100 100"><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="#1B2126" stroke="#1B2126" stroke-width="9" stroke-linejoin="round"/><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="none" stroke="#C25BD9" stroke-opacity="0.75" stroke-width="3.5" stroke-linejoin="round"/><text x="50" y="64" text-anchor="middle" font-family='"Cascadia Code","JetBrains Mono",Consolas,ui-monospace,monospace' font-weight="700" font-size="40" fill="#C25BD9">au</text></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 100 100"><polygon points="50,5 89,27.5 89,72.5 50,95 11,72.5 11,27.5" fill="#C25BD9" stroke="#C25BD9" stroke-width="9" stroke-linejoin="round"/><text x="50" y="66" text-anchor="middle" font-family='"Cascadia Code","JetBrains Mono",Consolas,ui-monospace,monospace' font-weight="800" font-size="46" fill="#F7F8F4">au</text></svg>