dowel-ui 0.31.0 → 0.33.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 (43) hide show
  1. package/README.md +2 -2
  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 +2 -0
  6. package/dist/eslint/index.d.ts.map +1 -1
  7. package/dist/eslint/index.js +24 -4
  8. package/dist/eslint/index.js.map +1 -1
  9. package/dist/eslint/no-arbitrary-scale.d.ts +20 -0
  10. package/dist/eslint/no-arbitrary-scale.d.ts.map +1 -0
  11. package/dist/eslint/no-arbitrary-scale.js +261 -0
  12. package/dist/eslint/no-arbitrary-scale.js.map +1 -0
  13. package/dist/eslint/no-raw-button.d.ts +3 -0
  14. package/dist/eslint/no-raw-button.d.ts.map +1 -0
  15. package/dist/eslint/no-raw-button.js +51 -0
  16. package/dist/eslint/no-raw-button.js.map +1 -0
  17. package/dist/index.d.ts +6 -5
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -2
  20. package/dist/index.js.map +1 -1
  21. package/dist/palettes/atlas.json +1 -1
  22. package/dist/palettes/austeris.json +1 -1
  23. package/dist/palettes/dowel.json +1 -1
  24. package/dist/palettes/efema.json +1 -1
  25. package/dist/palettes/furca.json +1 -1
  26. package/dist/palettes/hilvan.json +1 -1
  27. package/dist/palettes/kasl-server.json +1 -1
  28. package/dist/palettes/kasl.json +1 -1
  29. package/dist/palettes/kilna.json +1 -1
  30. package/dist/palettes/lyrid.json +1 -1
  31. package/dist/palettes/lyrn.json +1 -1
  32. package/dist/palettes/midda.json +1 -1
  33. package/dist/palettes/nitid.json +1 -1
  34. package/dist/palettes/nooma.json +1 -1
  35. package/dist/palettes/rhapsod.json +1 -1
  36. package/dist/palettes/rigger.json +1 -1
  37. package/dist/palettes/scheda.json +1 -1
  38. package/dist/palettes/sefy.json +1 -1
  39. package/dist/palettes/turnout.json +1 -1
  40. package/dist/registry.json +262 -144
  41. package/dist/theme.css +68 -0
  42. package/dist/tokens.json +7 -0
  43. package/package.json +1 -1
package/README.md CHANGED
@@ -60,7 +60,7 @@ 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
- A hundred and five primitives so far - controls and forms, overlays on
63
+ A hundred and ten primitives so far - controls and forms, overlays on
64
64
  [Base UI](https://base-ui.com), menus, the command palette, tables and long
65
65
  lists, charts, loading and empty screens, markdown, code and diffs, a screen's
66
66
  frame and how it divides, a desktop window's own chrome, and the line's marks.
@@ -152,7 +152,7 @@ where it measured 3.49:1. Derived, it is white there, at 6.01:1.
152
152
 
153
153
  ## Status
154
154
 
155
- The theme, the scales, an accent per product, and a hundred and five primitives are
155
+ The theme, the scales, an accent per product, and a hundred and ten primitives are
156
156
  in daily use across two products of the line. Every component installs from a
157
157
  versioned registry and passes its own gate - axe, the keyboard, a dependency
158
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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"}
@@ -11,4 +11,6 @@ export default dowel;
11
11
  export { noRawColor, findRawColor } from './no-raw-color.js';
12
12
  export { noImplicitLocale } from './no-implicit-locale.js';
13
13
  export { noNativeSelect } from './no-native-select.js';
14
+ export { noArbitraryScale, findArbitraryScale, TYPE_STEPS, RADIUS_STEPS } from './no-arbitrary-scale.js';
15
+ export { noRawButton } from './no-raw-button.js';
14
16
  //# 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;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
+ {"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;AAmE5C;;+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;AACtD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACxG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1,14 +1,17 @@
1
+ import { noArbitraryScale } from './no-arbitrary-scale.js';
1
2
  import { noImplicitLocale } from './no-implicit-locale.js';
2
3
  import { noNativeSelect } from './no-native-select.js';
4
+ import { noRawButton } from './no-raw-button.js';
3
5
  import { noRawColor } from './no-raw-color.js';
4
6
  /*
5
7
  * The dowel ESLint plugin.
6
8
  *
7
- * Three rules, and each enforces a convention the system rests on: a
9
+ * Five rules, and each enforces a convention the system rests on: a
8
10
  * component names colours from the vocabulary and never writes one down, no
9
11
  * 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.
12
+ * no date or number is formatted in the browser's language rather than the
13
+ * application's, sizes come from the scale rather than from the eye, and a
14
+ * screen presses Buttons rather than `<button>`s.
12
15
  *
13
16
  * It ships from the package rather than the registry because it is not a
14
17
  * component - it is not copied into a product and edited there, it is a check
@@ -27,10 +30,16 @@ const plugin = {
27
30
  'no-raw-color': noRawColor,
28
31
  'no-native-select': noNativeSelect,
29
32
  'no-implicit-locale': noImplicitLocale,
33
+ 'no-arbitrary-scale': noArbitraryScale,
34
+ 'no-raw-button': noRawButton,
30
35
  },
31
36
  };
32
37
  /** The rules, applied where components live. Scoped to TypeScript sources:
33
- * the theme is CSS and the build tools are Node, and neither is a component. */
38
+ * the theme is CSS and the build tools are Node, and neither is a component.
39
+ *
40
+ * `no-raw-button` is kept out of `ui/`, the directory a product keeps its
41
+ * primitives in (shadcn's `components/ui`): a primitive is where the one
42
+ * `<button>` a screen should not write gets written, once. */
34
43
  const recommended = [
35
44
  {
36
45
  files: ['**/*.{ts,tsx}'],
@@ -39,6 +48,15 @@ const recommended = [
39
48
  'dowel/no-raw-color': 'error',
40
49
  'dowel/no-native-select': 'error',
41
50
  'dowel/no-implicit-locale': 'error',
51
+ 'dowel/no-arbitrary-scale': 'error',
52
+ },
53
+ },
54
+ {
55
+ files: ['**/*.tsx'],
56
+ ignores: ['**/ui/**'],
57
+ plugins: { dowel: plugin },
58
+ rules: {
59
+ 'dowel/no-raw-button': 'error',
42
60
  },
43
61
  },
44
62
  ];
@@ -52,4 +70,6 @@ export default dowel;
52
70
  export { noRawColor, findRawColor } from './no-raw-color.js';
53
71
  export { noImplicitLocale } from './no-implicit-locale.js';
54
72
  export { noNativeSelect } from './no-native-select.js';
73
+ export { noArbitraryScale, findArbitraryScale, TYPE_STEPS, RADIUS_STEPS } from './no-arbitrary-scale.js';
74
+ export { noRawButton } from './no-raw-button.js';
55
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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"}
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,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;;;;;;;;;;;;;;;;;;GAoBG;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;QACtC,oBAAoB,EAAE,gBAAgB;QACtC,eAAe,EAAE,WAAW;KAC7B;CACsB,CAAA;AAEzB;;;;;8DAK8D;AAC9D,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;YACnC,0BAA0B,EAAE,OAAO;SACpC;KACF;IACD;QACE,KAAK,EAAE,CAAC,UAAU,CAAC;QACnB,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;QAC1B,KAAK,EAAE;YACL,qBAAqB,EAAE,OAAO;SAC/B;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;AACtD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACxG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { Rule } from 'eslint';
2
+ /** The type scale, in pixels, by the step that names it. Mirrors the theme;
3
+ * `scale.test.ts` holds the two to each other. */
4
+ export declare const TYPE_STEPS: Record<number, string>;
5
+ /** The radii, in pixels, by the step that names them. */
6
+ export declare const RADIUS_STEPS: Record<number, string>;
7
+ export interface ScaleFinding {
8
+ /** Where the class starts in the string. */
9
+ index: number;
10
+ /** The class as written, `hover:` and all. */
11
+ text: string;
12
+ message: string;
13
+ /** The class to write instead, when there is exactly one. */
14
+ fix?: string;
15
+ }
16
+ /** What is off the scale in this string. Exported for the gate that holds the
17
+ * set itself to the same rule, and for the test: the matching is the rule. */
18
+ export declare function findArbitraryScale(text: string): ScaleFinding[];
19
+ export declare const noArbitraryScale: Rule.RuleModule;
20
+ //# sourceMappingURL=no-arbitrary-scale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-arbitrary-scale.d.ts","sourceRoot":"","sources":["../../src/eslint/no-arbitrary-scale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAgGlC;kDACkD;AAClD,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQ7C,CAAA;AAED,yDAAyD;AACzD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAO/C,CAAA;AAQD,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AA4CD;8EAC8E;AAC9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAkE/D;AAED,eAAO,MAAM,gBAAgB,EAAE,IAAI,CAAC,UA6CnC,CAAA"}
@@ -0,0 +1,261 @@
1
+ /*
2
+ * `no-arbitrary-scale` - sizes come from the scale, or they are argued for.
3
+ *
4
+ * The colour vocabulary holds because a raw colour does not compile. Size has
5
+ * no such wall: `text-[13px]` compiles perfectly, looks deliberate, and is how
6
+ * a product drifts into nine sizes inside four pixels. kilna had 160 of them
7
+ * in its screens, and half were literally a step of the scale written the
8
+ * long way - `text-[12px]` for `text-sm` - which no reader of the code could
9
+ * tell from the other half, the ones that really were off the scale.
10
+ *
11
+ * So the rule reads every class string, finds the fixed lengths chosen by eye,
12
+ * and says which step they are:
13
+ *
14
+ * - **the same length as a named step** is fixed automatically - `text-[12px]`
15
+ * becomes `text-sm`, `rounded-[9px]` becomes `rounded-md`, `h-[22px]`
16
+ * becomes `h-5.5` - because nothing is decided by writing it the long way;
17
+ * - **a length off the scale** is reported with the steps either side of it,
18
+ * and the fix is a decision: take a step, or disable the line with the
19
+ * reason no step can carry it.
20
+ *
21
+ * What it leaves alone is anything computed or proportional - `calc()`,
22
+ * `min()`, `var()`, percentages, viewport units, `ch` and `fr` - because those
23
+ * are relationships, not measurements: `w-[min(22rem,100%)]` says "as wide as
24
+ * it wants but never off the screen", which no step can say.
25
+ */
26
+ /** Utilities that measure on the spacing scale: a step is a quarter of a rem,
27
+ * so 4px is `1` and 22px is `5.5`. */
28
+ const SPACING = [
29
+ 'size',
30
+ 'w',
31
+ 'h',
32
+ 'min-w',
33
+ 'min-h',
34
+ 'max-w',
35
+ 'max-h',
36
+ 'p',
37
+ 'px',
38
+ 'py',
39
+ 'pt',
40
+ 'pb',
41
+ 'pl',
42
+ 'pr',
43
+ 'ps',
44
+ 'pe',
45
+ 'm',
46
+ 'mx',
47
+ 'my',
48
+ 'mt',
49
+ 'mb',
50
+ 'ml',
51
+ 'mr',
52
+ 'ms',
53
+ 'me',
54
+ 'gap',
55
+ 'gap-x',
56
+ 'gap-y',
57
+ 'space-x',
58
+ 'space-y',
59
+ 'top',
60
+ 'bottom',
61
+ 'left',
62
+ 'right',
63
+ 'inset',
64
+ 'inset-x',
65
+ 'inset-y',
66
+ 'start',
67
+ 'end',
68
+ 'translate-x',
69
+ 'translate-y',
70
+ 'basis',
71
+ 'leading',
72
+ 'scroll-m',
73
+ 'scroll-p',
74
+ ];
75
+ const RADIUS = [
76
+ 'rounded',
77
+ 'rounded-t',
78
+ 'rounded-b',
79
+ 'rounded-l',
80
+ 'rounded-r',
81
+ 'rounded-s',
82
+ 'rounded-e',
83
+ 'rounded-tl',
84
+ 'rounded-tr',
85
+ 'rounded-bl',
86
+ 'rounded-br',
87
+ 'rounded-ss',
88
+ 'rounded-se',
89
+ 'rounded-es',
90
+ 'rounded-ee',
91
+ ];
92
+ /** The type scale, in pixels, by the step that names it. Mirrors the theme;
93
+ * `scale.test.ts` holds the two to each other. */
94
+ export const TYPE_STEPS = {
95
+ 10: '2xs',
96
+ 11: 'xs',
97
+ 12: 'sm',
98
+ 14: 'base',
99
+ 16: 'lg',
100
+ 18: 'xl',
101
+ 21: '2xl',
102
+ };
103
+ /** The radii, in pixels, by the step that names them. */
104
+ export const RADIUS_STEPS = {
105
+ 4: 'xs',
106
+ 6: 'sm',
107
+ 9: 'md',
108
+ 12: 'lg',
109
+ 16: 'xl',
110
+ 20: '2xl',
111
+ };
112
+ /** The tracking steps, in em. */
113
+ const TRACKING_STEPS = {
114
+ '0.085': 'caption',
115
+ '-0.01': 'tight',
116
+ };
117
+ const escape = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
118
+ /*
119
+ * One class: optional variants (`hover:`, `data-[open]:`, `[&_svg]:`), an
120
+ * optional minus, a utility, and a bracketed value. The utility names are
121
+ * tried longest first, so `min-w` is not read as `w` and `rounded-tl` is not
122
+ * read as `rounded`.
123
+ */
124
+ const UTILITIES = [...SPACING, ...RADIUS, 'text', 'tracking'].sort((a, b) => b.length - a.length);
125
+ const VARIANT = String.raw `(?:[\w-]+(?:\[[^\]]*\])?|\[[^\]]*\]):`;
126
+ const CLASS = new RegExp(String.raw `(?<=^|[\s"'\x60])((?:${VARIANT})*)(-?)(${UTILITIES.map(escape).join('|')})-\[([^\]\s]+)\](?=$|[\s"'\x60])`, 'g');
127
+ /** A plain length in pixels, or `undefined` for anything else. */
128
+ function pixels(value) {
129
+ const match = /^(-?\d*\.?\d+)(px|rem)$/.exec(value);
130
+ if (!match)
131
+ return undefined;
132
+ const amount = Number(match[1]);
133
+ return match[2] === 'rem' ? amount * 16 : amount;
134
+ }
135
+ /** The two named steps either side of a length, for the message. */
136
+ function neighbours(px, steps, prefix) {
137
+ const sizes = Object.keys(steps).map(Number).sort((a, b) => a - b);
138
+ const below = [...sizes].reverse().find((size) => size < px);
139
+ const above = sizes.find((size) => size > px);
140
+ return [below, above]
141
+ .filter((size) => size !== undefined)
142
+ .map((size) => `\`${prefix}-${steps[size]}\` (${size}px)`)
143
+ .join(' or ');
144
+ }
145
+ /** The spacing step for a length: exact at half a step (2px) or finer as a
146
+ * named step; `hair` for the one named in-between. */
147
+ function spacingStep(px) {
148
+ if (Math.abs(px) === 3)
149
+ return 'hair';
150
+ if (px % 2 !== 0)
151
+ return undefined;
152
+ return String(Math.abs(px) / 4);
153
+ }
154
+ /** What is off the scale in this string. Exported for the gate that holds the
155
+ * set itself to the same rule, and for the test: the matching is the rule. */
156
+ export function findArbitraryScale(text) {
157
+ const findings = [];
158
+ for (const match of text.matchAll(CLASS)) {
159
+ const [whole, variants = '', minus, utility, value] = match;
160
+ const at = match.index ?? 0;
161
+ if (utility === 'tracking') {
162
+ if (/var\(|calc\(/.test(value))
163
+ continue;
164
+ const step = TRACKING_STEPS[value.replace(/em$/, '')];
165
+ findings.push({
166
+ index: at,
167
+ text: whole,
168
+ message: step
169
+ ? `\`${whole}\` is \`tracking-${step}\` written the long way.`
170
+ : `\`${whole}\` is tracking chosen by eye. The scale has \`tracking-caption\` for uppercase captions and \`tracking-tight\` for large type; use one, or say on this line why neither fits.`,
171
+ fix: step ? `${variants}tracking-${step}` : undefined,
172
+ });
173
+ continue;
174
+ }
175
+ const px = pixels(value);
176
+ // Computed, relative or proportional: a relationship, not a length.
177
+ if (px === undefined)
178
+ continue;
179
+ if (utility === 'text') {
180
+ const step = TYPE_STEPS[px];
181
+ findings.push({
182
+ index: at,
183
+ text: whole,
184
+ message: step
185
+ ? `\`${whole}\` is \`text-${step}\` written the long way.`
186
+ : `\`${whole}\` is off the type scale. The nearest steps are ${neighbours(px, TYPE_STEPS, 'text')}; take one, or say on this line why neither can carry it.`,
187
+ fix: step ? `${variants}text-${step}` : undefined,
188
+ });
189
+ continue;
190
+ }
191
+ if (RADIUS.includes(utility)) {
192
+ const step = RADIUS_STEPS[px];
193
+ findings.push({
194
+ index: at,
195
+ text: whole,
196
+ message: step
197
+ ? `\`${whole}\` is \`${utility}-${step}\` written the long way.`
198
+ : `\`${whole}\` is off the radius scale. The nearest steps are ${neighbours(px, RADIUS_STEPS, utility)}; take one, or say on this line why neither fits.`,
199
+ fix: step ? `${variants}${utility}-${step}` : undefined,
200
+ });
201
+ continue;
202
+ }
203
+ const step = spacingStep(px);
204
+ // `-mt-[2px]` and `mt-[-2px]` are both a pull of two pixels; both minus
205
+ // signs together are a push. The step is written with one sign, outside.
206
+ const sign = (minus === '-') !== px < 0 ? '-' : '';
207
+ findings.push({
208
+ index: at,
209
+ text: whole,
210
+ message: step
211
+ ? `\`${whole}\` is \`${sign}${utility}-${step}\` written the long way.`
212
+ : `\`${whole}\` is a length chosen by eye, between two steps of the scale. Take a step, or say on this line why none can carry it.`,
213
+ fix: step ? `${variants}${sign}${utility}-${step}` : undefined,
214
+ });
215
+ }
216
+ return findings;
217
+ }
218
+ export const noArbitraryScale = {
219
+ meta: {
220
+ type: 'suggestion',
221
+ fixable: 'code',
222
+ docs: {
223
+ description: 'Forbid fixed lengths chosen by eye in class names; sizes come from the type, radius and spacing scales.',
224
+ url: 'https://lacodda.github.io/dowel/guides/linting/',
225
+ },
226
+ schema: [],
227
+ },
228
+ create(context) {
229
+ const source = context.sourceCode;
230
+ return {
231
+ Literal(node) {
232
+ if (typeof node.value !== 'string')
233
+ return;
234
+ const raw = source.getText(node);
235
+ // A fix is written into the source, so it is offered only where the
236
+ // source is the value between two quotes - an escape inside the
237
+ // literal would shift every offset after it.
238
+ const fixable = raw.slice(1, -1) === node.value;
239
+ const start = node.range[0] + 1;
240
+ for (const finding of findArbitraryScale(node.value)) {
241
+ context.report({
242
+ node,
243
+ message: finding.message,
244
+ fix: fixable && finding.fix !== undefined
245
+ ? (fixer) => fixer.replaceTextRange([start + finding.index, start + finding.index + finding.text.length], finding.fix)
246
+ : null,
247
+ });
248
+ }
249
+ },
250
+ TemplateElement(node) {
251
+ // Reported, not fixed: a template element's range includes the
252
+ // delimiters around it, which differ by position in the template.
253
+ const text = node.value.cooked ?? node.value.raw;
254
+ for (const finding of findArbitraryScale(text)) {
255
+ context.report({ node: node, message: finding.message });
256
+ }
257
+ },
258
+ };
259
+ },
260
+ };
261
+ //# sourceMappingURL=no-arbitrary-scale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-arbitrary-scale.js","sourceRoot":"","sources":["../../src/eslint/no-arbitrary-scale.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from 'eslint';
2
+ export declare const noRawButton: Rule.RuleModule;
3
+ //# sourceMappingURL=no-raw-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-raw-button.d.ts","sourceRoot":"","sources":["../../src/eslint/no-raw-button.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AA6BlC,eAAO,MAAM,WAAW,EAAE,IAAI,CAAC,UAwB9B,CAAA"}