@blotch/dolan 22.2.3 → 22.2.4
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.
- package/dist/commands/add.js +9 -1
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/add.test.js +36 -3
- package/dist/commands/add.test.js.map +1 -1
- package/dist/commands/doctor.js +187 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +280 -7
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.js +38 -18
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.test.js +107 -1
- package/dist/commands/init.test.js.map +1 -1
- package/dist/commands/theme.js +1 -1
- package/dist/commands/theme.js.map +1 -1
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.js +126 -45
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/update.test.js +314 -2
- package/dist/commands/update.test.js.map +1 -1
- package/dist/lockfile.d.ts +7 -0
- package/dist/lockfile.js +36 -0
- package/dist/lockfile.js.map +1 -1
- package/dist/lockfile.test.d.ts +1 -0
- package/dist/lockfile.test.js +25 -0
- package/dist/lockfile.test.js.map +1 -0
- package/dist/registry.d.ts +6 -0
- package/dist/registry.js +48 -2
- package/dist/registry.js.map +1 -1
- package/dist/registry.test.js +45 -3
- package/dist/registry.test.js.map +1 -1
- package/dist/test-utils.d.ts +5 -0
- package/dist/test-utils.js +6 -1
- package/dist/test-utils.js.map +1 -1
- package/dist/testing/fire-lynx-event.d.ts +14 -0
- package/dist/testing/fire-lynx-event.js +19 -0
- package/dist/testing/fire-lynx-event.js.map +1 -0
- package/dist/testing/fire-lynx-event.test.d.ts +1 -0
- package/dist/testing/fire-lynx-event.test.js +44 -0
- package/dist/testing/fire-lynx-event.test.js.map +1 -0
- package/dist/testing/lynx-main-thread.d.ts +22 -0
- package/dist/testing/lynx-main-thread.js +11 -0
- package/dist/testing/lynx-main-thread.js.map +1 -0
- package/dist/testing/lynx-main-thread.test.d.ts +1 -0
- package/dist/testing/lynx-main-thread.test.js +24 -0
- package/dist/testing/lynx-main-thread.test.js.map +1 -0
- package/dist/testing/set-input-signal.d.ts +5 -4
- package/dist/testing/set-input-signal.js +5 -4
- package/dist/testing/set-input-signal.js.map +1 -1
- package/dist/ui/components/accordion/accordion.test.ts +158 -144
- package/dist/ui/components/accordion/accordion.ts +19 -14
- package/dist/ui/components/action-sheet/action-sheet.test.ts +272 -187
- package/dist/ui/components/action-sheet/action-sheet.ts +40 -34
- package/dist/ui/components/alert/alert.test.ts +67 -19
- package/dist/ui/components/alert/alert.ts +14 -16
- package/dist/ui/components/alert-dialog/alert-dialog.test.ts +206 -139
- package/dist/ui/components/alert-dialog/alert-dialog.ts +32 -26
- package/dist/ui/components/area-chart/area-chart.test.ts +81 -1
- package/dist/ui/components/avatar/avatar.test.ts +89 -45
- package/dist/ui/components/badge/badge.test.ts +57 -23
- package/dist/ui/components/badge/badge.ts +12 -14
- package/dist/ui/components/bar-chart/bar-chart.test.ts +82 -1
- package/dist/ui/components/bottom-sheet/bottom-sheet.test.ts +373 -297
- package/dist/ui/components/bottom-sheet/bottom-sheet.ts +34 -33
- package/dist/ui/components/button/button.test.ts +611 -2
- package/dist/ui/components/button/button.ts +431 -62
- package/dist/ui/components/button/index.ts +2 -0
- package/dist/ui/components/button-group/button-group.test.ts +484 -2
- package/dist/ui/components/button-group/button-group.ts +380 -68
- package/dist/ui/components/button-group/index.ts +3 -0
- package/dist/ui/components/candlestick-chart/candlestick-chart.test.ts +82 -1
- package/dist/ui/components/card/card.test.ts +82 -62
- package/dist/ui/components/chart/chart-presets.test.ts +197 -1
- package/dist/ui/components/chart/chart-presets.ts +8 -1
- package/dist/ui/components/chart/chart-theme.ts +12 -0
- package/dist/ui/components/chart/chart.test.ts +1017 -0
- package/dist/ui/components/chart/chart.ts +56 -43
- package/dist/ui/components/checkbox/checkbox.test.ts +124 -42
- package/dist/ui/components/checkbox/checkbox.ts +23 -23
- package/dist/ui/components/collapsible/collapsible.test.ts +158 -81
- package/dist/ui/components/collapsible/collapsible.ts +19 -14
- package/dist/ui/components/context-menu/context-menu.test.ts +224 -0
- package/dist/ui/components/context-menu/context-menu.ts +110 -0
- package/dist/ui/components/context-menu/index.ts +1 -0
- package/dist/ui/components/dialog/dialog.test.ts +210 -152
- package/dist/ui/components/dialog/dialog.ts +29 -23
- package/dist/ui/components/dock/dock-scroll.test.ts +130 -0
- package/dist/ui/components/dock/dock-scroll.ts +133 -0
- package/dist/ui/components/dock/dock.test.ts +749 -0
- package/dist/ui/components/dock/dock.ts +960 -0
- package/dist/ui/components/dock/index.ts +2 -0
- package/dist/ui/components/empty-state/empty-state.test.ts +28 -39
- package/dist/ui/components/glass/concentric-radius.test.ts +13 -0
- package/dist/ui/components/glass/concentric-radius.ts +17 -0
- package/dist/ui/components/glass/glass-design.test.ts +78 -0
- package/dist/ui/components/glass/glass-design.ts +119 -0
- package/dist/ui/components/glass/glass.test.ts +338 -0
- package/dist/ui/components/glass/glass.ts +360 -0
- package/dist/ui/components/glass/index.ts +18 -0
- package/dist/ui/components/icon/icon-theme.test.ts +36 -0
- package/dist/ui/components/icon/icon-theme.ts +36 -13
- package/dist/ui/components/icon/icon.test.ts +52 -41
- package/dist/ui/components/input/input.test.ts +178 -101
- package/dist/ui/components/input/input.ts +15 -12
- package/dist/ui/components/label/label.test.ts +11 -24
- package/dist/ui/components/line-chart/line-chart.test.ts +76 -1
- package/dist/ui/components/list/list.test.ts +80 -49
- package/dist/ui/components/menu/index.ts +25 -0
- package/dist/ui/components/menu/menu-placement.test.ts +153 -0
- package/dist/ui/components/menu/menu-placement.ts +159 -0
- package/dist/ui/components/menu/menu-popup.test.ts +632 -0
- package/dist/ui/components/menu/menu-popup.ts +544 -0
- package/dist/ui/components/menu/menu.test.ts +429 -0
- package/dist/ui/components/menu/menu.ts +415 -0
- package/dist/ui/components/nav-drawer/nav-drawer.test.ts +425 -260
- package/dist/ui/components/nav-drawer/nav-drawer.ts +72 -56
- package/dist/ui/components/pagination/pagination.test.ts +136 -86
- package/dist/ui/components/progress/progress.test.ts +102 -46
- package/dist/ui/components/progress/progress.ts +52 -54
- package/dist/ui/components/radio-group/radio-group.test.ts +128 -83
- package/dist/ui/components/radio-group/radio-group.ts +24 -24
- package/dist/ui/components/scatter-chart/scatter-chart.test.ts +74 -1
- package/dist/ui/components/scroll-area/scroll-area.test.ts +72 -36
- package/dist/ui/components/select/select.test.ts +138 -78
- package/dist/ui/components/select/select.ts +17 -11
- package/dist/ui/components/separator/separator.test.ts +18 -17
- package/dist/ui/components/sheet/sheet.test.ts +64 -11
- package/dist/ui/components/sheet/sheet.ts +9 -1
- package/dist/ui/components/skeleton/skeleton.test.ts +24 -7
- package/dist/ui/components/skeleton/skeleton.ts +10 -16
- package/dist/ui/components/spinner/spinner.test.ts +64 -46
- package/dist/ui/components/spinner/spinner.ts +16 -19
- package/dist/ui/components/switch/switch.test.ts +116 -46
- package/dist/ui/components/switch/switch.ts +8 -13
- package/dist/ui/components/tab-bar/index.ts +1 -0
- package/dist/ui/components/tab-bar/tab-bar.test.ts +280 -0
- package/dist/ui/components/tab-bar/tab-bar.ts +230 -0
- package/dist/ui/components/tabs/tabs.test.ts +215 -157
- package/dist/ui/components/tabs/tabs.ts +110 -118
- package/dist/ui/components/textarea/textarea.test.ts +206 -100
- package/dist/ui/components/textarea/textarea.ts +14 -12
- package/dist/ui/components/toast/toast.test.ts +434 -350
- package/dist/ui/components/toast/toast.ts +42 -51
- package/dist/ui/components/toggle/toggle.test.ts +247 -140
- package/dist/ui/theme/chart-colors.test.ts +8 -3
- package/dist/ui/theme/dark.css +38 -2
- package/dist/ui/theme/default.css +55 -7
- package/dist/ui/theme/icon-colors.test.ts +8 -3
- package/dist/ui/theme/rgb-channels.test.ts +84 -0
- package/dist/ui/theme/tailwind-build.test.ts +114 -0
- package/dist/ui/theme/tailwind-css.test.ts +83 -0
- package/dist/ui/theme/tailwind-plugin.test.ts +42 -2
- package/dist/ui/theme/tailwind-plugin.ts +93 -29
- package/dist/ui/theme/tailwind.css +113 -0
- package/dist/ui/utils/animate.test.ts +13 -1
- package/dist/utils/analyze.d.ts +14 -0
- package/dist/utils/analyze.js +15 -0
- package/dist/utils/analyze.js.map +1 -1
- package/dist/utils/analyze.test.js +14 -1
- package/dist/utils/analyze.test.js.map +1 -1
- package/dist/utils/installed.d.ts +12 -0
- package/dist/utils/installed.js +16 -0
- package/dist/utils/installed.js.map +1 -1
- package/dist/utils/installed.test.js +17 -1
- package/dist/utils/installed.test.js.map +1 -1
- package/dist/utils/resolve-paths.d.ts +4 -4
- package/dist/utils/resolve-paths.js +5 -7
- package/dist/utils/resolve-paths.js.map +1 -1
- package/dist/utils/resolve-paths.test.js +9 -5
- package/dist/utils/resolve-paths.test.js.map +1 -1
- package/dist/utils/tailwind.d.ts +25 -0
- package/dist/utils/tailwind.js +51 -0
- package/dist/utils/tailwind.js.map +1 -0
- package/dist/utils/tailwind.test.d.ts +1 -0
- package/dist/utils/tailwind.test.js +71 -0
- package/dist/utils/tailwind.test.js.map +1 -0
- package/package.json +9 -1
- package/dist/ui/components/area-chart/area-chart-render.test.ts +0 -63
- package/dist/ui/components/bar-chart/bar-chart-render.test.ts +0 -58
- package/dist/ui/components/button/button-render.test.ts +0 -132
- package/dist/ui/components/button-group/button-group-render.test.ts +0 -146
- package/dist/ui/components/candlestick-chart/candlestick-chart-render.test.ts +0 -59
- package/dist/ui/components/chart/chart-render.test.ts +0 -730
- package/dist/ui/components/line-chart/line-chart-render.test.ts +0 -83
- package/dist/ui/components/scatter-chart/scatter-chart-render.test.ts +0 -64
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
2
|
import { rmSync, writeFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
+
import { stripVTControlCharacters } from 'node:util';
|
|
4
5
|
import { createFixture, DEFAULT_CONFIG } from '../test-utils';
|
|
5
6
|
vi.mock('@clack/prompts', () => ({
|
|
6
7
|
intro: vi.fn(),
|
|
@@ -22,6 +23,8 @@ vi.mock('../utils/resolve-paths.js', () => ({
|
|
|
22
23
|
return ['card.ts', 'index.ts'];
|
|
23
24
|
return [`${name}.ts`];
|
|
24
25
|
},
|
|
26
|
+
// dolan's own theme, which the fixture's `themeFiles` write.
|
|
27
|
+
getUiSourceDir: () => fixture.uiDir,
|
|
25
28
|
}));
|
|
26
29
|
beforeEach(() => {
|
|
27
30
|
vi.clearAllMocks();
|
|
@@ -114,7 +117,9 @@ describe('doctorCommand', () => {
|
|
|
114
117
|
});
|
|
115
118
|
it('warns when tailwind-plugin.ts and theme CSS are both missing', async () => {
|
|
116
119
|
fixture = createFixture({ config: DEFAULT_CONFIG });
|
|
117
|
-
writePackageJson(fixture.dir, {
|
|
120
|
+
writePackageJson(fixture.dir, {
|
|
121
|
+
dependencies: { ...FULL_ANGULAR_DEPS, tailwindcss: '^3.4.19' },
|
|
122
|
+
});
|
|
118
123
|
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
119
124
|
const { doctorCommand } = await import('./doctor');
|
|
120
125
|
await expect(doctorCommand()).rejects.toThrow('process.exit(0)');
|
|
@@ -132,15 +137,43 @@ describe('doctorCommand', () => {
|
|
|
132
137
|
const p = await import('@clack/prompts');
|
|
133
138
|
expect(p.log.success).toHaveBeenCalledWith('Theme CSS found');
|
|
134
139
|
});
|
|
135
|
-
it('warns when no tailwind config is found', async () => {
|
|
140
|
+
it('warns when no tailwind config is found on Tailwind 3', async () => {
|
|
136
141
|
fixture = createFixture({ config: DEFAULT_CONFIG });
|
|
137
|
-
writePackageJson(fixture.dir, {
|
|
142
|
+
writePackageJson(fixture.dir, {
|
|
143
|
+
dependencies: { ...FULL_ANGULAR_DEPS, tailwindcss: '^3.4.19' },
|
|
144
|
+
});
|
|
138
145
|
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
139
146
|
const { doctorCommand } = await import('./doctor');
|
|
140
147
|
await expect(doctorCommand()).rejects.toThrow('process.exit(0)');
|
|
141
148
|
const p = await import('@clack/prompts');
|
|
142
149
|
expect(p.log.warn).toHaveBeenCalledWith(expect.stringContaining('No Tailwind config found'));
|
|
143
150
|
});
|
|
151
|
+
it("passes when a Tailwind 4 stylesheet imports the theme's tailwind.css", async () => {
|
|
152
|
+
fixture = createFixture({ config: DEFAULT_CONFIG });
|
|
153
|
+
writePackageJson(fixture.dir, { dependencies: FULL_ANGULAR_DEPS });
|
|
154
|
+
writeFileSync(join(fixture.dir, DEFAULT_CONFIG.aliases.theme, 'tailwind.css'), '');
|
|
155
|
+
writeFileSync(join(fixture.dir, 'src/styles.css'), "@import 'tailwindcss/utilities.css';\n@import './styles/tailwind.css';\n");
|
|
156
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
157
|
+
const { doctorCommand } = await import('./doctor');
|
|
158
|
+
await expect(doctorCommand()).rejects.toThrow('process.exit(0)');
|
|
159
|
+
const p = await import('@clack/prompts');
|
|
160
|
+
expect(p.log.success).toHaveBeenCalledWith(expect.stringContaining('imported in'));
|
|
161
|
+
expect(p.log.success).toHaveBeenCalledWith(expect.stringContaining('found in theme'));
|
|
162
|
+
});
|
|
163
|
+
it("warns when a Tailwind 4 stylesheet, or its absence, doesn't import tailwind.css", async () => {
|
|
164
|
+
fixture = createFixture({ config: DEFAULT_CONFIG });
|
|
165
|
+
writePackageJson(fixture.dir, { dependencies: FULL_ANGULAR_DEPS });
|
|
166
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
167
|
+
const { doctorCommand } = await import('./doctor');
|
|
168
|
+
await expect(doctorCommand()).rejects.toThrow('process.exit(0)');
|
|
169
|
+
// Tailwind's own imports don't count.
|
|
170
|
+
writeFileSync(join(fixture.dir, 'src/styles.css'), "@import 'tailwindcss/utilities.css';");
|
|
171
|
+
await expect(doctorCommand()).rejects.toThrow('process.exit(0)');
|
|
172
|
+
const p = await import('@clack/prompts');
|
|
173
|
+
expect(vi
|
|
174
|
+
.mocked(p.log.warn)
|
|
175
|
+
.mock.calls.filter(([message]) => message.includes('not imported in'))).toHaveLength(2);
|
|
176
|
+
});
|
|
144
177
|
it('warns when a tailwind config exists but does not reference blotchPlugin', async () => {
|
|
145
178
|
fixture = createFixture({ config: DEFAULT_CONFIG });
|
|
146
179
|
writePackageJson(fixture.dir, { dependencies: FULL_ANGULAR_DEPS });
|
|
@@ -267,15 +300,16 @@ describe('doctorCommand', () => {
|
|
|
267
300
|
expect(p.log.warn).toHaveBeenCalledWith(expect.stringContaining('dolan add spinner'));
|
|
268
301
|
});
|
|
269
302
|
it('does not warn about a dependency that is also installed', async () => {
|
|
270
|
-
// button depends on spinner, and spinner
|
|
271
|
-
// installing all
|
|
272
|
-
// checkComponentHealth is false for
|
|
273
|
-
// run dolan add" warning fires.
|
|
303
|
+
// button depends on spinner, glass and icon, and spinner and glass on
|
|
304
|
+
// icon (registry.ts) — installing all four means the
|
|
305
|
+
// `!installed.includes(dep)` check in checkComponentHealth is false for
|
|
306
|
+
// every dependency, so no "requires ... run dolan add" warning fires.
|
|
274
307
|
fixture = createFixture({
|
|
275
308
|
config: DEFAULT_CONFIG,
|
|
276
309
|
components: {
|
|
277
310
|
button: { 'button.ts': '' },
|
|
278
311
|
spinner: { 'spinner.ts': '' },
|
|
312
|
+
glass: { 'glass.ts': '' },
|
|
279
313
|
icon: { 'icon.ts': '' },
|
|
280
314
|
},
|
|
281
315
|
});
|
|
@@ -382,4 +416,243 @@ describe('doctorCommand', () => {
|
|
|
382
416
|
expect(p.log.warn).not.toHaveBeenCalledWith(expect.stringContaining('is missing files'));
|
|
383
417
|
});
|
|
384
418
|
});
|
|
419
|
+
describe('doctorCommand theme channels', () => {
|
|
420
|
+
/**
|
|
421
|
+
* A plugin that maps primary and border with themeColor(), as dolan's does.
|
|
422
|
+
*/
|
|
423
|
+
const PLUGIN = `colors: {
|
|
424
|
+
primary: { DEFAULT: themeColor('primary') },
|
|
425
|
+
border: themeColor("border"),
|
|
426
|
+
destructive: { subtle: 'var(--destructive-subtle)' },
|
|
427
|
+
}`;
|
|
428
|
+
/**
|
|
429
|
+
* Writes the theme's plugin and stylesheets, then runs doctor.
|
|
430
|
+
*/
|
|
431
|
+
const runDoctor = async (plugin, css) => {
|
|
432
|
+
fixture = createFixture({ config: DEFAULT_CONFIG });
|
|
433
|
+
writePackageJson(fixture.dir, { dependencies: FULL_ANGULAR_DEPS });
|
|
434
|
+
const themeDir = join(fixture.dir, DEFAULT_CONFIG.aliases.theme);
|
|
435
|
+
writeFileSync(join(themeDir, 'tailwind-plugin.ts'), plugin);
|
|
436
|
+
for (const [file, content] of Object.entries(css)) {
|
|
437
|
+
writeFileSync(join(themeDir, file), content);
|
|
438
|
+
}
|
|
439
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
440
|
+
const { doctorCommand } = await import('./doctor');
|
|
441
|
+
await expect(doctorCommand()).rejects.toThrow('process.exit(0)');
|
|
442
|
+
return import('@clack/prompts');
|
|
443
|
+
};
|
|
444
|
+
it('passes when every mapped color has matching channels', async () => {
|
|
445
|
+
const p = await runDoctor(PLUGIN, {
|
|
446
|
+
'default.css': `/* --primary: red; */
|
|
447
|
+
page {
|
|
448
|
+
--primary: rgba(24, 24, 27, 1);
|
|
449
|
+
--primary-rgb: 24, 24, 27;
|
|
450
|
+
--border: #e4e4e7;
|
|
451
|
+
--border-rgb: 228,228,231;
|
|
452
|
+
}`,
|
|
453
|
+
// A theme that sets only some colors is checked for those alone.
|
|
454
|
+
'ocean.css': 'page { --primary: rgb(37 99 235); --primary-rgb: 37,99, 235; }',
|
|
455
|
+
});
|
|
456
|
+
expect(p.log.success).toHaveBeenCalledWith('Theme colors have the channels opacity modifiers need');
|
|
457
|
+
expect(p.log.warn).not.toHaveBeenCalledWith(expect.stringContaining('channels'));
|
|
458
|
+
});
|
|
459
|
+
it('warns about colors without channels, with the line to add', async () => {
|
|
460
|
+
// A theme copied before the -rgb variables, kept by dolan update.
|
|
461
|
+
const p = await runDoctor(PLUGIN, {
|
|
462
|
+
'default.css': 'page { --primary: rgba(24, 24, 27, 1); --border: hsl(240, 6%, 90%); }',
|
|
463
|
+
});
|
|
464
|
+
expect(p.log.warn).toHaveBeenCalledWith(expect.stringMatching(/default\.css.*--primary.*--border.*bg-primary\/50.*--primary-rgb: 24, 24, 27;/));
|
|
465
|
+
});
|
|
466
|
+
it("suggests placeholder channels when it can't read the color", async () => {
|
|
467
|
+
const p = await runDoctor(PLUGIN, {
|
|
468
|
+
'dark.css': 'page.dark { --border: hsl(240, 4%, 16%); }',
|
|
469
|
+
});
|
|
470
|
+
expect(p.log.warn).toHaveBeenCalledWith(expect.stringContaining('--border-rgb: r, g, b;'));
|
|
471
|
+
});
|
|
472
|
+
it("warns about channels that don't match their color", async () => {
|
|
473
|
+
// The brand color changed, its channels didn't.
|
|
474
|
+
const p = await runDoctor(PLUGIN, {
|
|
475
|
+
'default.css': `page {
|
|
476
|
+
--primary: #2563eb;
|
|
477
|
+
--primary-rgb: 24, 24, 27;
|
|
478
|
+
--border: #fff;
|
|
479
|
+
--border-rgb: 0, 0, 0;
|
|
480
|
+
}`,
|
|
481
|
+
});
|
|
482
|
+
expect(p.log.warn).toHaveBeenCalledWith(expect.stringMatching(/default\.css.*--primary-rgb.*--border-rgb.*don't/));
|
|
483
|
+
});
|
|
484
|
+
it('warns about space-separated channels, which rgba() reads as one argument', async () => {
|
|
485
|
+
const p = await runDoctor(PLUGIN, {
|
|
486
|
+
'default.css': 'page { --primary: rgba(24, 24, 27, 1); --primary-rgb: 24 24 27; }',
|
|
487
|
+
});
|
|
488
|
+
expect(p.log.warn).toHaveBeenCalledWith(expect.stringMatching(/--primary-rgb.* doesn't hold .*comma-separated/));
|
|
489
|
+
expect(p.log.success).not.toHaveBeenCalledWith(expect.stringContaining('channels'));
|
|
490
|
+
});
|
|
491
|
+
it('says "doesn\'t" for one differing color, and skips colors it can\'t read', async () => {
|
|
492
|
+
const p = await runDoctor(PLUGIN, {
|
|
493
|
+
'default.css': `page {
|
|
494
|
+
--primary: rgba(37, 99, 235, 1);
|
|
495
|
+
--primary-rgb: 24, 24, 27;
|
|
496
|
+
--border: hsl(240, 6%, 90%);
|
|
497
|
+
--border-rgb: 1, 2, 3;
|
|
498
|
+
}`,
|
|
499
|
+
});
|
|
500
|
+
expect(p.log.warn).toHaveBeenCalledWith(expect.stringMatching(/--primary-rgb.* doesn't hold/));
|
|
501
|
+
expect(p.log.warn).not.toHaveBeenCalledWith(expect.stringContaining('--border-rgb'));
|
|
502
|
+
});
|
|
503
|
+
it("doesn't check a plugin that maps no themeColor()", async () => {
|
|
504
|
+
// An older plugin: its modifiers never worked, so nothing needs channels.
|
|
505
|
+
const p = await runDoctor("colors: { primary: 'var(--primary)' }", {
|
|
506
|
+
'default.css': 'page { --primary: rgba(24, 24, 27, 1); }',
|
|
507
|
+
});
|
|
508
|
+
expect(p.log.warn).not.toHaveBeenCalledWith(expect.stringContaining('channels'));
|
|
509
|
+
expect(p.log.success).not.toHaveBeenCalledWith(expect.stringContaining('channels'));
|
|
510
|
+
});
|
|
511
|
+
describe('on Tailwind 4', () => {
|
|
512
|
+
/**
|
|
513
|
+
* Writes the theme's tailwind.css and stylesheets, then runs doctor.
|
|
514
|
+
*/
|
|
515
|
+
const runDoctor4 = async (css) => {
|
|
516
|
+
fixture = createFixture({ config: DEFAULT_CONFIG });
|
|
517
|
+
writePackageJson(fixture.dir, { dependencies: FULL_ANGULAR_DEPS });
|
|
518
|
+
const themeDir = join(fixture.dir, DEFAULT_CONFIG.aliases.theme);
|
|
519
|
+
for (const [file, content] of Object.entries(css)) {
|
|
520
|
+
writeFileSync(join(themeDir, file), content);
|
|
521
|
+
}
|
|
522
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
523
|
+
const { doctorCommand } = await import('./doctor');
|
|
524
|
+
await expect(doctorCommand()).rejects.toThrow('process.exit(0)');
|
|
525
|
+
return import('@clack/prompts');
|
|
526
|
+
};
|
|
527
|
+
/**
|
|
528
|
+
* The colors tailwind.css maps, as the theme's does.
|
|
529
|
+
*/
|
|
530
|
+
const TAILWIND_CSS = `@theme inline {
|
|
531
|
+
--color-primary: var(--primary);
|
|
532
|
+
--color-destructive-subtle: var(--destructive-subtle);
|
|
533
|
+
}`;
|
|
534
|
+
it('checks the colors tailwind.css maps, skipping translucent ones', async () => {
|
|
535
|
+
const p = await runDoctor4({
|
|
536
|
+
'tailwind.css': TAILWIND_CSS,
|
|
537
|
+
'default.css': 'page { --primary: rgba(24, 24, 27, 1); --primary-rgb: 24, 24, 27; --destructive-subtle: rgba(239, 68, 68, 0.1); }',
|
|
538
|
+
});
|
|
539
|
+
expect(p.log.success).toHaveBeenCalledWith('Theme colors have the channels opacity modifiers need');
|
|
540
|
+
});
|
|
541
|
+
it('warns about a color tailwind.css maps without channels', async () => {
|
|
542
|
+
const p = await runDoctor4({
|
|
543
|
+
'tailwind.css': TAILWIND_CSS,
|
|
544
|
+
'default.css': 'page { --primary: rgba(24, 24, 27, 1); }',
|
|
545
|
+
});
|
|
546
|
+
expect(p.log.warn).toHaveBeenCalledWith(expect.stringMatching(/default\.css.*--primary-rgb: 24, 24, 27;/));
|
|
547
|
+
});
|
|
548
|
+
it("doesn't check a theme without tailwind.css or the plugin", async () => {
|
|
549
|
+
const p = await runDoctor4({
|
|
550
|
+
'default.css': 'page { --primary: rgba(24, 24, 27, 1); }',
|
|
551
|
+
});
|
|
552
|
+
expect(p.log.success).not.toHaveBeenCalledWith(expect.stringContaining('channels'));
|
|
553
|
+
});
|
|
554
|
+
});
|
|
555
|
+
});
|
|
556
|
+
describe('doctorCommand theme colors components read', () => {
|
|
557
|
+
/** Every glass color, as dolan's default.css sets them. */
|
|
558
|
+
const GLASS_CSS = `page {
|
|
559
|
+
--glass-tint: rgba(24, 24, 27, 1);
|
|
560
|
+
--glass-tint-rgb: 24, 24, 27;
|
|
561
|
+
--glass-tint-foreground: rgba(250, 250, 250, 1);
|
|
562
|
+
--glass-tint-foreground-rgb: 250, 250, 250;
|
|
563
|
+
--glass-foreground: rgba(9, 9, 11, 1);
|
|
564
|
+
--glass-foreground-rgb: 9, 9, 11;
|
|
565
|
+
--glass-muted-foreground: rgba(63, 63, 70, 1);
|
|
566
|
+
--glass-muted-foreground-rgb: 63, 63, 70;
|
|
567
|
+
--glass-clear-foreground: rgba(255, 255, 255, 1);
|
|
568
|
+
--glass-clear-foreground-rgb: 255, 255, 255;
|
|
569
|
+
--glass-dim: rgba(0, 0, 0, 0.35);
|
|
570
|
+
}`;
|
|
571
|
+
/** The glass colors mapped as dolan's tailwind.css maps them. */
|
|
572
|
+
const GLASS_TAILWIND_CSS = `@theme inline {
|
|
573
|
+
--color-glass-tint: var(--glass-tint);
|
|
574
|
+
--color-glass-tint-foreground: var(--glass-tint-foreground);
|
|
575
|
+
--color-glass-foreground: var(--glass-foreground);
|
|
576
|
+
--color-glass-muted-foreground: var(--glass-muted-foreground);
|
|
577
|
+
--color-glass-clear-foreground: var(--glass-clear-foreground);
|
|
578
|
+
--color-glass-dim: var(--glass-dim);
|
|
579
|
+
}`;
|
|
580
|
+
/**
|
|
581
|
+
* A Tailwind 4 project with glass installed and the given theme files,
|
|
582
|
+
* and dolan's own theme if `bundled` is given. Runs doctor.
|
|
583
|
+
*/
|
|
584
|
+
/**
|
|
585
|
+
* Every warning, without the colors picocolors adds in CI.
|
|
586
|
+
*/
|
|
587
|
+
const warnings = async () => {
|
|
588
|
+
const p = await import('@clack/prompts');
|
|
589
|
+
return vi
|
|
590
|
+
.mocked(p.log.warn)
|
|
591
|
+
.mock.calls.map(([message]) => stripVTControlCharacters(String(message)));
|
|
592
|
+
};
|
|
593
|
+
const runDoctor = async (theme, bundled, root = {}) => {
|
|
594
|
+
fixture = createFixture({
|
|
595
|
+
config: DEFAULT_CONFIG,
|
|
596
|
+
lockfile: tracking('glass', 'icon'),
|
|
597
|
+
components: {
|
|
598
|
+
glass: { 'glass.ts': '' },
|
|
599
|
+
icon: { 'icon.ts': '' },
|
|
600
|
+
},
|
|
601
|
+
themeFiles: bundled,
|
|
602
|
+
});
|
|
603
|
+
writePackageJson(fixture.dir, { dependencies: FULL_ANGULAR_DEPS });
|
|
604
|
+
const themeDir = join(fixture.dir, DEFAULT_CONFIG.aliases.theme);
|
|
605
|
+
for (const [file, content] of Object.entries(theme)) {
|
|
606
|
+
writeFileSync(join(themeDir, file), content);
|
|
607
|
+
}
|
|
608
|
+
for (const [file, content] of Object.entries(root)) {
|
|
609
|
+
writeFileSync(join(fixture.dir, file), content);
|
|
610
|
+
}
|
|
611
|
+
vi.spyOn(process, 'cwd').mockReturnValue(fixture.dir);
|
|
612
|
+
const { doctorCommand } = await import('./doctor');
|
|
613
|
+
await expect(doctorCommand()).rejects.toThrow('process.exit(0)');
|
|
614
|
+
return import('@clack/prompts');
|
|
615
|
+
};
|
|
616
|
+
it('passes when the theme has and maps every color the components read', async () => {
|
|
617
|
+
const p = await runDoctor({
|
|
618
|
+
'default.css': GLASS_CSS,
|
|
619
|
+
'tailwind.css': GLASS_TAILWIND_CSS,
|
|
620
|
+
});
|
|
621
|
+
expect(p.log.success).toHaveBeenCalledWith('Theme has the colors your components read');
|
|
622
|
+
});
|
|
623
|
+
it("lists the colors a theme lacks, with dolan's lines for them", async () => {
|
|
624
|
+
// A theme copied before glass, and edited, so dolan update kept it.
|
|
625
|
+
const p = await runDoctor({
|
|
626
|
+
'default.css': 'page { --primary: rgba(24, 24, 27, 1); }',
|
|
627
|
+
'dark.css': GLASS_CSS.replace('page', 'page.dark'),
|
|
628
|
+
}, { 'default.css': GLASS_CSS });
|
|
629
|
+
expect(await warnings()).toContainEqual(expect.stringMatching(/default\.css lacks theme colors that glass read: --glass-tint, .*--glass-dim\..*dolan update.*\n--glass-tint: rgba\(24, 24, 27, 1\);\n--glass-tint-rgb: 24, 24, 27;\n/s));
|
|
630
|
+
expect(await warnings()).not.toContainEqual(expect.stringContaining('dark.css lacks'));
|
|
631
|
+
expect(p.log.success).not.toHaveBeenCalledWith('Theme has the colors your components read');
|
|
632
|
+
});
|
|
633
|
+
it("points at dolan update alone without dolan's theme to quote", async () => {
|
|
634
|
+
await runDoctor({ 'default.css': 'page {}' });
|
|
635
|
+
expect(await warnings()).toContainEqual(expect.stringMatching(/default\.css lacks .*haven't edited\.$/));
|
|
636
|
+
});
|
|
637
|
+
it("lists the colors tailwind.css doesn't map", async () => {
|
|
638
|
+
await runDoctor({
|
|
639
|
+
'default.css': GLASS_CSS,
|
|
640
|
+
'tailwind.css': GLASS_TAILWIND_CSS.replace(' --color-glass-dim: var(--glass-dim);\n', ''),
|
|
641
|
+
});
|
|
642
|
+
expect(await warnings()).toContainEqual(expect.stringMatching(/tailwind\.css doesn't map theme colors that glass read to classes: glass-dim\./));
|
|
643
|
+
});
|
|
644
|
+
it("accepts the Tailwind 3 plugin's themeColor() and var() mappings", async () => {
|
|
645
|
+
const p = await runDoctor({
|
|
646
|
+
'default.css': GLASS_CSS,
|
|
647
|
+
'tailwind-plugin.ts': `glass: {
|
|
648
|
+
tint: { DEFAULT: themeColor('glass-tint'), foreground: themeColor("glass-tint-foreground") },
|
|
649
|
+
foreground: themeColor('glass-foreground'),
|
|
650
|
+
'muted-foreground': themeColor('glass-muted-foreground'),
|
|
651
|
+
'clear-foreground': themeColor('glass-clear-foreground'),
|
|
652
|
+
dim: 'var(--glass-dim)',
|
|
653
|
+
}`,
|
|
654
|
+
}, undefined, { 'tailwind.config.ts': 'export default { plugins: [blotchPlugin] };' });
|
|
655
|
+
expect(p.log.success).toHaveBeenCalledWith('Theme has the colors your components read');
|
|
656
|
+
});
|
|
657
|
+
});
|
|
385
658
|
//# sourceMappingURL=doctor.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.test.js","sourceRoot":"","sources":["../../src/commands/doctor.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.test.js","sourceRoot":"","sources":["../../src/commands/doctor.test.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -21,8 +21,8 @@ export type InitOptions = {
|
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
23
23
|
* Sets up a project for dolan: writes `dolan.config.json`, copies the theme
|
|
24
|
-
* files
|
|
25
|
-
* up by hand.
|
|
24
|
+
* files and records their hashes in `dolan.lock.json`, makes `@blotch/dolan`
|
|
25
|
+
* a dependency, and prints what's left to wire up by hand.
|
|
26
26
|
*
|
|
27
27
|
* `force` overwrites an existing config and theme files without asking.
|
|
28
28
|
* Without it, init asks first, as `add` does for components: theme files are
|
package/dist/commands/init.js
CHANGED
|
@@ -4,12 +4,13 @@ import { createRequire } from 'node:module';
|
|
|
4
4
|
import { dirname, join, relative, resolve, sep } from 'node:path';
|
|
5
5
|
import pc from 'picocolors';
|
|
6
6
|
import { configExists, writeConfig } from '../config.js';
|
|
7
|
+
import { getOrCreateLockfile, hashContent, writeLockfile, } from '../lockfile.js';
|
|
7
8
|
import { getUiSourceDir } from '../utils/resolve-paths.js';
|
|
9
|
+
import { themeFilesFor, usesTailwind4 } from '../utils/tailwind.js';
|
|
8
10
|
import { formatContent } from '../utils/format.js';
|
|
9
11
|
import { printBanner } from '../utils/banner.js';
|
|
10
12
|
import { isInteractive } from '../utils/interactive.js';
|
|
11
|
-
import { detectPackageManager, installCommand, installPackages, missingPackages, } from '../utils/packages.js';
|
|
12
|
-
const THEME_FILES = ['default.css', 'dark.css', 'tailwind-plugin.ts'];
|
|
13
|
+
import { copiesTests, detectPackageManager, installCommand, installPackages, missingPackages, } from '../utils/packages.js';
|
|
13
14
|
/**
|
|
14
15
|
* The global stylesheet the theme gets imported into: the first `styles`
|
|
15
16
|
* entry of the first project in angular.json, as `ng new` writes it, or
|
|
@@ -39,8 +40,8 @@ export const cssImportPath = (from, to) => {
|
|
|
39
40
|
};
|
|
40
41
|
/**
|
|
41
42
|
* Sets up a project for dolan: writes `dolan.config.json`, copies the theme
|
|
42
|
-
* files
|
|
43
|
-
* up by hand.
|
|
43
|
+
* files and records their hashes in `dolan.lock.json`, makes `@blotch/dolan`
|
|
44
|
+
* a dependency, and prints what's left to wire up by hand.
|
|
44
45
|
*
|
|
45
46
|
* `force` overwrites an existing config and theme files without asking.
|
|
46
47
|
* Without it, init asks first, as `add` does for components: theme files are
|
|
@@ -120,7 +121,7 @@ export const initCommand = async (options = {}) => {
|
|
|
120
121
|
* formatContent unchanged, and non-oxfmt projects get verbatim content, so
|
|
121
122
|
* this is a no-op copy everywhere except the case it fixes.
|
|
122
123
|
*/
|
|
123
|
-
const themeFiles =
|
|
124
|
+
const themeFiles = themeFilesFor(cwd, { tests: copiesTests(cwd) }).flatMap((file) => {
|
|
124
125
|
const src = join(uiSrc, 'theme', file);
|
|
125
126
|
if (!existsSync(src))
|
|
126
127
|
return [];
|
|
@@ -151,11 +152,20 @@ export const initCommand = async (options = {}) => {
|
|
|
151
152
|
}
|
|
152
153
|
s.start('Copying theme files...');
|
|
153
154
|
}
|
|
154
|
-
|
|
155
|
-
|
|
155
|
+
// Record each theme file init leaves as upstream's, as `add` does for
|
|
156
|
+
// components, so `update` has a base to merge against. Without one, it
|
|
157
|
+
// called any theme file that differed from the next release a conflict,
|
|
158
|
+
// though nobody had touched it. A kept file keeps whatever base the
|
|
159
|
+
// lockfile already has: it isn't upstream's.
|
|
160
|
+
const lockfile = getOrCreateLockfile(cwd);
|
|
161
|
+
for (const { file, destPath, content, current } of themeFiles) {
|
|
162
|
+
if (current !== null && current !== content && !overwrite)
|
|
156
163
|
continue;
|
|
157
|
-
|
|
164
|
+
if (current !== content)
|
|
165
|
+
writeFileSync(destPath, content);
|
|
166
|
+
lockfile.theme[file] = { hash: hashContent(content) };
|
|
158
167
|
}
|
|
168
|
+
writeLockfile(cwd, lockfile);
|
|
159
169
|
s.stop('Setup complete!');
|
|
160
170
|
const componentsDir = resolve(cwd, config.components);
|
|
161
171
|
mkdirSync(componentsDir, { recursive: true });
|
|
@@ -180,16 +190,26 @@ export const initCommand = async (options = {}) => {
|
|
|
180
190
|
installCommand(detectPackageManager(cwd), [dolanSpec]).join(' '),
|
|
181
191
|
],
|
|
182
192
|
]),
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
+
// Tailwind 4 takes the theme in the stylesheet, Tailwind 3 in its config.
|
|
194
|
+
...(usesTailwind4(cwd)
|
|
195
|
+
? [
|
|
196
|
+
[
|
|
197
|
+
`Import the theme in ${pc.cyan(stylesheet)}, after Tailwind. ${pc.cyan('dark.css')} holds the dark mode colors, under ${pc.cyan('page.dark')}, and ${pc.cyan('tailwind.css')} gives them their utilities:`,
|
|
198
|
+
...['default.css', 'dark.css', 'tailwind.css'].map((file) => `@import '${cssImportPath(stylesheet, join(config.theme, file))}';`),
|
|
199
|
+
],
|
|
200
|
+
]
|
|
201
|
+
: [
|
|
202
|
+
[
|
|
203
|
+
`Add the Tailwind plugin to your ${pc.cyan('tailwind.config.ts')}:`,
|
|
204
|
+
`import { blotchPlugin } from './${config.theme}/tailwind-plugin';`,
|
|
205
|
+
'plugins: [blotchPlugin]',
|
|
206
|
+
],
|
|
207
|
+
[
|
|
208
|
+
`Import the theme in ${pc.cyan(stylesheet)}. ${pc.cyan('dark.css')} holds the dark mode colors, under ${pc.cyan('page.dark')}:`,
|
|
209
|
+
`@import '${cssImportPath(stylesheet, join(config.theme, 'default.css'))}';`,
|
|
210
|
+
`@import '${cssImportPath(stylesheet, join(config.theme, 'dark.css'))}';`,
|
|
211
|
+
],
|
|
212
|
+
]),
|
|
193
213
|
[
|
|
194
214
|
'Add components:',
|
|
195
215
|
`npx ${dolanInstalled ? 'dolan' : '@blotch/dolan'} add button card`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|