@blotch/dolan 22.2.4 → 22.2.6
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.test.js +2 -0
- package/dist/commands/add.test.js.map +1 -1
- package/dist/commands/doctor.js +78 -21
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +167 -26
- package/dist/commands/doctor.test.js.map +1 -1
- package/dist/commands/init.test.js +4 -7
- package/dist/commands/init.test.js.map +1 -1
- package/dist/commands/update.d.ts +3 -1
- package/dist/commands/update.js +78 -15
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/update.test.js +257 -2
- package/dist/commands/update.test.js.map +1 -1
- package/dist/lockfile.d.ts +10 -0
- package/dist/lockfile.js +20 -1
- package/dist/lockfile.js.map +1 -1
- package/dist/lockfile.test.js +43 -3
- package/dist/lockfile.test.js.map +1 -1
- package/dist/registry.js +73 -11
- package/dist/registry.js.map +1 -1
- package/dist/registry.test.js +16 -3
- package/dist/registry.test.js.map +1 -1
- package/dist/test-utils.d.ts +24 -2
- package/dist/test-utils.js +41 -2
- package/dist/test-utils.js.map +1 -1
- package/dist/ui/boolean-inputs.test.ts +76 -0
- package/dist/ui/components/action-sheet/action-sheet.test.ts +370 -1
- package/dist/ui/components/action-sheet/action-sheet.ts +306 -28
- package/dist/ui/components/action-sheet/index.ts +1 -0
- package/dist/ui/components/alert-dialog/alert-dialog.test.ts +552 -8
- package/dist/ui/components/alert-dialog/alert-dialog.ts +644 -36
- package/dist/ui/components/alert-dialog/index.ts +5 -0
- package/dist/ui/components/area-chart/area-chart.ts +3 -2
- package/dist/ui/components/badge/badge.ts +2 -1
- package/dist/ui/components/bottom-sheet/bottom-sheet.test.ts +968 -3
- package/dist/ui/components/bottom-sheet/bottom-sheet.ts +1021 -95
- package/dist/ui/components/bottom-sheet/index.ts +7 -1
- package/dist/ui/components/button/button.test.ts +36 -1
- package/dist/ui/components/button/button.ts +17 -7
- package/dist/ui/components/button-group/button-group.test.ts +53 -9
- package/dist/ui/components/button-group/button-group.ts +67 -21
- package/dist/ui/components/card/card.test.ts +16 -0
- package/dist/ui/components/card/card.ts +2 -1
- package/dist/ui/components/chart/chart-presets.ts +6 -6
- package/dist/ui/components/chart/chart.test.ts +14 -0
- package/dist/ui/components/chart/chart.ts +10 -3
- package/dist/ui/components/checkbox/checkbox.ts +2 -1
- package/dist/ui/components/collapsible/collapsible.ts +2 -1
- package/dist/ui/components/dialog/dialog.ts +6 -6
- package/dist/ui/components/dock/dock-scroll.ts +9 -0
- package/dist/ui/components/dock/dock-search.test.ts +594 -0
- package/dist/ui/components/dock/dock.test.ts +4 -1
- package/dist/ui/components/dock/dock.ts +529 -51
- package/dist/ui/components/dynamic-color/dynamic-color.test.ts +144 -0
- package/dist/ui/components/dynamic-color/dynamic-color.ts +146 -0
- package/dist/ui/components/dynamic-color/index.ts +5 -0
- package/dist/ui/components/glass/glass.test.ts +39 -1
- package/dist/ui/components/glass/glass.ts +87 -17
- package/dist/ui/components/glass/index.ts +1 -0
- package/dist/ui/components/icon/icon-theme.test.ts +28 -0
- package/dist/ui/components/icon/icon-theme.ts +38 -7
- package/dist/ui/components/input/input.ts +2 -1
- package/dist/ui/components/label/label.ts +8 -2
- package/dist/ui/components/line-chart/line-chart.ts +3 -2
- package/dist/ui/components/list/list.ts +5 -4
- package/dist/ui/components/menu/menu-popup.test.ts +18 -14
- package/dist/ui/components/menu/menu-popup.ts +24 -3
- package/dist/ui/components/menu/menu.test.ts +99 -5
- package/dist/ui/components/menu/menu.ts +74 -34
- package/dist/ui/components/nav-drawer/nav-drawer.ts +3 -2
- package/dist/ui/components/navigation-bar/index.ts +1 -0
- package/dist/ui/components/navigation-bar/navigation-bar.test.ts +425 -0
- package/dist/ui/components/navigation-bar/navigation-bar.ts +411 -0
- package/dist/ui/components/popover/index.ts +9 -0
- package/dist/ui/components/popover/popover-panel.test.ts +735 -0
- package/dist/ui/components/popover/popover-panel.ts +603 -0
- package/dist/ui/components/popover/popover.test.ts +286 -0
- package/dist/ui/components/popover/popover.ts +207 -0
- package/dist/ui/components/progress/progress.ts +2 -1
- package/dist/ui/components/radio-group/radio-group.ts +2 -1
- package/dist/ui/components/scroll-area/scroll-area.ts +4 -3
- package/dist/ui/components/search-field/index.ts +15 -0
- package/dist/ui/components/search-field/keyboard.test.ts +147 -0
- package/dist/ui/components/search-field/keyboard.ts +123 -0
- package/dist/ui/components/search-field/search-field.test.ts +549 -0
- package/dist/ui/components/search-field/search-field.ts +628 -0
- package/dist/ui/components/segmented-control/index.ts +8 -0
- package/dist/ui/components/segmented-control/segmented-control.test.ts +861 -0
- package/dist/ui/components/segmented-control/segmented-control.ts +884 -0
- package/dist/ui/components/select/select.ts +2 -1
- package/dist/ui/components/sheet/sheet.test.ts +90 -3
- package/dist/ui/components/sheet/sheet.ts +59 -4
- package/dist/ui/components/slider/index.ts +1 -0
- package/dist/ui/components/slider/slider.test.ts +695 -0
- package/dist/ui/components/slider/slider.ts +901 -0
- package/dist/ui/components/switch/index.ts +1 -1
- package/dist/ui/components/switch/switch.test.ts +464 -48
- package/dist/ui/components/switch/switch.ts +613 -43
- package/dist/ui/components/tabs/index.ts +7 -1
- package/dist/ui/components/tabs/tabs.test.ts +278 -2
- package/dist/ui/components/tabs/tabs.ts +233 -30
- package/dist/ui/components/textarea/textarea.ts +2 -1
- package/dist/ui/components/toggle/index.ts +1 -0
- package/dist/ui/components/toggle/toggle.test.ts +310 -4
- package/dist/ui/components/toggle/toggle.ts +241 -26
- package/dist/ui/components/toolbar/bar-scroll.test.ts +310 -0
- package/dist/ui/components/toolbar/bar-scroll.ts +372 -0
- package/dist/ui/components/toolbar/index.ts +12 -0
- package/dist/ui/components/toolbar/toolbar.test.ts +438 -0
- package/dist/ui/components/toolbar/toolbar.ts +535 -0
- package/dist/utils/analyze.d.ts +10 -5
- package/dist/utils/analyze.js +3 -2
- package/dist/utils/analyze.js.map +1 -1
- package/dist/utils/installed.d.ts +13 -1
- package/dist/utils/installed.js +17 -0
- package/dist/utils/installed.js.map +1 -1
- package/dist/utils/installed.test.js +39 -1
- package/dist/utils/installed.test.js.map +1 -1
- package/dist/utils/tailwind.d.ts +25 -5
- package/dist/utils/tailwind.js +53 -14
- package/dist/utils/tailwind.js.map +1 -1
- package/dist/utils/tailwind.test.js +85 -22
- package/dist/utils/tailwind.test.js.map +1 -1
- package/package.json +1 -1
package/dist/registry.js
CHANGED
|
@@ -20,17 +20,35 @@ const GLASS_COLORS = [
|
|
|
20
20
|
'glass-dim',
|
|
21
21
|
];
|
|
22
22
|
export const registry = [
|
|
23
|
-
|
|
23
|
+
// Opened from a control, the action sheet is a popover: glass on iOS 26
|
|
24
|
+
// and a Material menu on Android, whose actions take the glass colors.
|
|
25
|
+
{
|
|
26
|
+
name: 'action-sheet',
|
|
27
|
+
dependencies: ['glass', 'popover'],
|
|
28
|
+
themeColors: ['glass-foreground', 'glass-muted-foreground'],
|
|
29
|
+
},
|
|
24
30
|
{ name: 'accordion', dependencies: [] },
|
|
25
31
|
{ name: 'alert', dependencies: [], packages: CVA_PACKAGES },
|
|
26
|
-
|
|
32
|
+
// The glass variant's panel is glass, and its text and buttons take the
|
|
33
|
+
// glass foreground and tint.
|
|
34
|
+
{
|
|
35
|
+
name: 'alert-dialog',
|
|
36
|
+
dependencies: ['glass'],
|
|
37
|
+
themeColors: [
|
|
38
|
+
'glass-tint',
|
|
39
|
+
'glass-tint-foreground',
|
|
40
|
+
'glass-foreground',
|
|
41
|
+
'glass-muted-foreground',
|
|
42
|
+
],
|
|
43
|
+
},
|
|
27
44
|
// The chart presets are TanStack Charts definitions drawn by <ui-chart>.
|
|
28
45
|
{ name: 'area-chart', dependencies: ['chart'] },
|
|
29
46
|
{ name: 'aspect-ratio', dependencies: [] },
|
|
30
47
|
{ name: 'avatar', dependencies: ['skeleton'] },
|
|
31
48
|
{ name: 'badge', dependencies: [], packages: CVA_PACKAGES },
|
|
32
49
|
{ name: 'bar-chart', dependencies: ['chart'] },
|
|
33
|
-
|
|
50
|
+
// The glass variant draws its sheet on `glass`, in the platform's design.
|
|
51
|
+
{ name: 'bottom-sheet', dependencies: ['glass'] },
|
|
34
52
|
// The glass variants draw on `glass`, and projected icons take the label's
|
|
35
53
|
// color through icon's UI_ICON_COLOR.
|
|
36
54
|
{
|
|
@@ -48,20 +66,25 @@ export const registry = [
|
|
|
48
66
|
{ name: 'candlestick-chart', dependencies: ['chart'] },
|
|
49
67
|
{ name: 'card', dependencies: [] },
|
|
50
68
|
// Renders any TanStack Charts definition with Lynx elements; the presets
|
|
51
|
-
// below build on it.
|
|
52
|
-
|
|
69
|
+
// below build on it. Colors set at runtime above a chart, such as
|
|
70
|
+
// dynamic-color's, reach its marks through icon-theme.ts.
|
|
71
|
+
{ name: 'chart', dependencies: ['icon'], packages: CHART_PACKAGES },
|
|
53
72
|
{ name: 'checkbox', dependencies: [] },
|
|
54
73
|
{ name: 'collapsible', dependencies: [] },
|
|
55
74
|
// The context menu is a menu that opens on a long press: it shares the
|
|
56
75
|
// menu's items and its overlay.
|
|
57
76
|
{ name: 'context-menu', dependencies: ['menu'] },
|
|
58
77
|
{ name: 'dialog', dependencies: [] },
|
|
78
|
+
// Gives icons, glass tints and charts the wallpaper's colors through
|
|
79
|
+
// icon-theme.ts, and follows its color scheme.
|
|
80
|
+
{ name: 'dynamic-color', dependencies: ['icon'] },
|
|
59
81
|
// The dock's bar, button and accessory are glass, and its items draw their
|
|
60
82
|
// icons from icon's set. Its selection capsule and the items on glass take
|
|
61
|
-
// the glass foreground.
|
|
83
|
+
// the glass foreground. It holds a search field in its glass, and rises
|
|
84
|
+
// above the keyboard with search-field's keyboard.ts.
|
|
62
85
|
{
|
|
63
86
|
name: 'dock',
|
|
64
|
-
dependencies: ['glass', 'icon'],
|
|
87
|
+
dependencies: ['glass', 'icon', 'search-field'],
|
|
65
88
|
themeColors: ['glass-foreground'],
|
|
66
89
|
},
|
|
67
90
|
{ name: 'empty-state', dependencies: ['icon'] },
|
|
@@ -80,25 +103,64 @@ export const registry = [
|
|
|
80
103
|
},
|
|
81
104
|
// nav-drawer renders a hamburger trigger via <ui-icon>, so it pulls in `icon`.
|
|
82
105
|
{ name: 'nav-drawer', dependencies: ['icon'] },
|
|
106
|
+
// The navigation bar's Back button and items are toolbar items, it shares
|
|
107
|
+
// the toolbar's scroll view, and the frosted bar's material is glass.
|
|
108
|
+
{ name: 'navigation-bar', dependencies: ['glass', 'toolbar'] },
|
|
83
109
|
// Pagination and the spinner draw SVGs in theme colors with icon-theme.ts.
|
|
84
110
|
{ name: 'pagination', dependencies: ['icon'] },
|
|
111
|
+
// The popover is glass, placed by the menu's placement, and its content
|
|
112
|
+
// reads the glass colors.
|
|
113
|
+
{
|
|
114
|
+
name: 'popover',
|
|
115
|
+
dependencies: ['glass', 'menu'],
|
|
116
|
+
themeColors: ['glass-foreground', 'glass-muted-foreground'],
|
|
117
|
+
},
|
|
85
118
|
{ name: 'progress', dependencies: [] },
|
|
86
119
|
{ name: 'radio-group', dependencies: [] },
|
|
87
120
|
{ name: 'scatter-chart', dependencies: ['chart'] },
|
|
88
121
|
{ name: 'scroll-area', dependencies: [] },
|
|
122
|
+
// The search field is glass on iOS 26 and later, and draws its icons from
|
|
123
|
+
// icon's set in theme colors resolved by icon-theme.ts.
|
|
124
|
+
{
|
|
125
|
+
name: 'search-field',
|
|
126
|
+
dependencies: ['glass', 'icon'],
|
|
127
|
+
themeColors: ['glass-foreground', 'glass-muted-foreground'],
|
|
128
|
+
},
|
|
129
|
+
// The segmented control that tabs and toggle groups draw with
|
|
130
|
+
// `variant="segmented"`: its indicator lifts into glass on iOS 26, and it
|
|
131
|
+
// picks the thumb's color for the app's color scheme with icon-theme.ts.
|
|
132
|
+
{ name: 'segmented-control', dependencies: ['glass', 'icon'] },
|
|
89
133
|
{ name: 'select', dependencies: ['bottom-sheet'] },
|
|
90
134
|
{ name: 'separator', dependencies: [] },
|
|
91
|
-
|
|
135
|
+
// Its specs present a sheet from a glass button (`uiSheetSource`), which
|
|
136
|
+
// the sheet grows out of.
|
|
137
|
+
{ name: 'sheet', dependencies: ['bottom-sheet', 'glass'] },
|
|
92
138
|
{ name: 'skeleton', dependencies: [] },
|
|
139
|
+
// The glass variant's thumb turns into a glass lens while it's dragged,
|
|
140
|
+
// and its iOS colors follow the app's color scheme through icon-theme.ts.
|
|
141
|
+
{ name: 'slider', dependencies: ['glass', 'icon'] },
|
|
93
142
|
{ name: 'spinner', dependencies: ['icon'] },
|
|
94
|
-
|
|
143
|
+
// As the slider.
|
|
144
|
+
{ name: 'switch', dependencies: ['glass', 'icon'] },
|
|
95
145
|
// The tab bar draws its items' icons from icon's set, in theme colors
|
|
96
146
|
// resolved by icon-theme.ts.
|
|
97
147
|
{ name: 'tab-bar', dependencies: ['icon'] },
|
|
98
|
-
{ name: 'tabs', dependencies: [] },
|
|
148
|
+
{ name: 'tabs', dependencies: ['segmented-control'] },
|
|
99
149
|
{ name: 'textarea', dependencies: [] },
|
|
100
150
|
{ name: 'toast', dependencies: [] },
|
|
101
|
-
|
|
151
|
+
// A segmented toggle group's icons take the segment's content color.
|
|
152
|
+
{
|
|
153
|
+
name: 'toggle',
|
|
154
|
+
dependencies: ['icon', 'segmented-control'],
|
|
155
|
+
packages: CVA_PACKAGES,
|
|
156
|
+
},
|
|
157
|
+
// Toolbar items are glass on iOS 26 and later, a prominent one in the glass
|
|
158
|
+
// tint, and they draw their icons from icon's set.
|
|
159
|
+
{
|
|
160
|
+
name: 'toolbar',
|
|
161
|
+
dependencies: ['glass', 'icon'],
|
|
162
|
+
themeColors: ['glass-foreground', 'glass-tint', 'glass-tint-foreground'],
|
|
163
|
+
},
|
|
102
164
|
{ name: 'typography', dependencies: [], packages: CVA_PACKAGES },
|
|
103
165
|
{ name: 'icon', dependencies: [] },
|
|
104
166
|
];
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,MAAM,cAAc,GAAG,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;AAEtE;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,YAAY,GAAG;IACnB,YAAY;IACZ,uBAAuB;IACvB,kBAAkB;IAClB,wBAAwB;IACxB,wBAAwB;IACxB,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.test.js
CHANGED
|
@@ -51,10 +51,20 @@ describe('resolveDependencies', () => {
|
|
|
51
51
|
expect(resolved).toEqual(['icon', 'empty-state']);
|
|
52
52
|
});
|
|
53
53
|
it('resolves select with its bottom-sheet dependency', () => {
|
|
54
|
-
expect(resolveDependencies(['select'])).toEqual([
|
|
54
|
+
expect(resolveDependencies(['select'])).toEqual([
|
|
55
|
+
'icon',
|
|
56
|
+
'glass',
|
|
57
|
+
'bottom-sheet',
|
|
58
|
+
'select',
|
|
59
|
+
]);
|
|
55
60
|
});
|
|
56
61
|
it('resolves sheet with its bottom-sheet dependency', () => {
|
|
57
|
-
expect(resolveDependencies(['sheet'])).toEqual([
|
|
62
|
+
expect(resolveDependencies(['sheet'])).toEqual([
|
|
63
|
+
'icon',
|
|
64
|
+
'glass',
|
|
65
|
+
'bottom-sheet',
|
|
66
|
+
'sheet',
|
|
67
|
+
]);
|
|
58
68
|
});
|
|
59
69
|
it.each([
|
|
60
70
|
'line-chart',
|
|
@@ -63,10 +73,13 @@ describe('resolveDependencies', () => {
|
|
|
63
73
|
'scatter-chart',
|
|
64
74
|
'candlestick-chart',
|
|
65
75
|
])('resolves %s with the chart it builds on first', (preset) => {
|
|
66
|
-
|
|
76
|
+
// The chart reads colors set at runtime through icon's icon-theme.ts.
|
|
77
|
+
expect(resolveDependencies([preset])).toEqual(['icon', 'chart', preset]);
|
|
67
78
|
});
|
|
68
79
|
it('deduplicates bottom-sheet when both select and sheet are selected', () => {
|
|
69
80
|
expect(resolveDependencies(['select', 'sheet'])).toEqual([
|
|
81
|
+
'icon',
|
|
82
|
+
'glass',
|
|
70
83
|
'bottom-sheet',
|
|
71
84
|
'select',
|
|
72
85
|
'sheet',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../src/registry.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../src/registry.test.ts"],"names":[],"mappings":"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"}
|
package/dist/test-utils.d.ts
CHANGED
|
@@ -13,9 +13,31 @@ export type Fixture = {
|
|
|
13
13
|
cleanup: () => void;
|
|
14
14
|
};
|
|
15
15
|
export declare const createFixture: (options?: FixtureOptions) => Fixture;
|
|
16
|
+
/**
|
|
17
|
+
* Puts a package in `dir`'s node_modules, as installing it would: its
|
|
18
|
+
* package.json, with an entry point for `require.resolve` to find. Returns
|
|
19
|
+
* the package's folder, so a test can put a dependency in the package's own
|
|
20
|
+
* node_modules, out of the app's reach, as pnpm's layout leaves it (and npm's
|
|
21
|
+
* leaves a version that conflicts with the hoisted one).
|
|
22
|
+
*/
|
|
23
|
+
export declare const installPackage: (dir: string, name: string, version: string) => string;
|
|
16
24
|
export declare const DEFAULT_CONFIG: DolanConfig;
|
|
25
|
+
/**
|
|
26
|
+
* Sets the project in `dir` up for a Tailwind version as apps have it:
|
|
27
|
+
* Tailwind 4 as `ng add` installs it (`tailwindcss` and `@tailwindcss/postcss`,
|
|
28
|
+
* no Tailwind config), or Tailwind 3 with a `tailwind.config.ts`. Tailwind is
|
|
29
|
+
* listed and installed, as in an app: dolan reads the installed version (see
|
|
30
|
+
* installPackage). `testing` adds the testing library, so dolan copies tests,
|
|
31
|
+
* and `dependencies` are listed as well.
|
|
32
|
+
*/
|
|
33
|
+
export declare const onTailwind: (dir: string, version: 3 | 4, { testing, dependencies, }?: {
|
|
34
|
+
testing?: boolean;
|
|
35
|
+
dependencies?: Record<string, string>;
|
|
36
|
+
}) => void;
|
|
17
37
|
/**
|
|
18
38
|
* A theme file exactly as 22.2.2's `init` copied it (from the v22.2.2 tag),
|
|
19
|
-
* which left the lockfile without its hash. lockfile.ts knows its hash.
|
|
39
|
+
* which left the lockfile without its hash. lockfile.ts knows its hash. The
|
|
40
|
+
* plugin is stored as `.txt`, so the build, lint, format and coverage, which
|
|
41
|
+
* would each take it for dolan's own source, leave it alone.
|
|
20
42
|
*/
|
|
21
|
-
export declare const shippedTheme: (file: "default.css" | "dark.css") => string;
|
|
43
|
+
export declare const shippedTheme: (file: "default.css" | "dark.css" | "tailwind-plugin.ts") => string;
|
package/dist/test-utils.js
CHANGED
|
@@ -55,6 +55,20 @@ export const createFixture = (options = {}) => {
|
|
|
55
55
|
cleanup: () => rmSync(dir, { recursive: true, force: true }),
|
|
56
56
|
};
|
|
57
57
|
};
|
|
58
|
+
/**
|
|
59
|
+
* Puts a package in `dir`'s node_modules, as installing it would: its
|
|
60
|
+
* package.json, with an entry point for `require.resolve` to find. Returns
|
|
61
|
+
* the package's folder, so a test can put a dependency in the package's own
|
|
62
|
+
* node_modules, out of the app's reach, as pnpm's layout leaves it (and npm's
|
|
63
|
+
* leaves a version that conflicts with the hoisted one).
|
|
64
|
+
*/
|
|
65
|
+
export const installPackage = (dir, name, version) => {
|
|
66
|
+
const packageDir = join(dir, 'node_modules', name);
|
|
67
|
+
mkdirSync(packageDir, { recursive: true });
|
|
68
|
+
writeFileSync(join(packageDir, 'package.json'), JSON.stringify({ name, version, main: 'index.js' }));
|
|
69
|
+
writeFileSync(join(packageDir, 'index.js'), '');
|
|
70
|
+
return packageDir;
|
|
71
|
+
};
|
|
58
72
|
export const DEFAULT_CONFIG = {
|
|
59
73
|
aliases: {
|
|
60
74
|
components: 'src/components/ui',
|
|
@@ -62,9 +76,34 @@ export const DEFAULT_CONFIG = {
|
|
|
62
76
|
theme: 'src/styles',
|
|
63
77
|
},
|
|
64
78
|
};
|
|
79
|
+
/**
|
|
80
|
+
* Sets the project in `dir` up for a Tailwind version as apps have it:
|
|
81
|
+
* Tailwind 4 as `ng add` installs it (`tailwindcss` and `@tailwindcss/postcss`,
|
|
82
|
+
* no Tailwind config), or Tailwind 3 with a `tailwind.config.ts`. Tailwind is
|
|
83
|
+
* listed and installed, as in an app: dolan reads the installed version (see
|
|
84
|
+
* installPackage). `testing` adds the testing library, so dolan copies tests,
|
|
85
|
+
* and `dependencies` are listed as well.
|
|
86
|
+
*/
|
|
87
|
+
export const onTailwind = (dir, version, { testing = false, dependencies = {}, } = {}) => {
|
|
88
|
+
const installed = version === 4 ? '4.3.3' : '3.4.19';
|
|
89
|
+
writeFileSync(join(dir, 'package.json'), JSON.stringify({
|
|
90
|
+
dependencies,
|
|
91
|
+
devDependencies: {
|
|
92
|
+
tailwindcss: `^${installed}`,
|
|
93
|
+
...(version === 4 && { '@tailwindcss/postcss': `^${installed}` }),
|
|
94
|
+
...(testing && { '@blotch/angular-lynx-testing-library': '^22.2.4' }),
|
|
95
|
+
},
|
|
96
|
+
}));
|
|
97
|
+
installPackage(dir, 'tailwindcss', installed);
|
|
98
|
+
if (version === 3) {
|
|
99
|
+
writeFileSync(join(dir, 'tailwind.config.ts'), 'export default {};');
|
|
100
|
+
}
|
|
101
|
+
};
|
|
65
102
|
/**
|
|
66
103
|
* A theme file exactly as 22.2.2's `init` copied it (from the v22.2.2 tag),
|
|
67
|
-
* which left the lockfile without its hash. lockfile.ts knows its hash.
|
|
104
|
+
* which left the lockfile without its hash. lockfile.ts knows its hash. The
|
|
105
|
+
* plugin is stored as `.txt`, so the build, lint, format and coverage, which
|
|
106
|
+
* would each take it for dolan's own source, leave it alone.
|
|
68
107
|
*/
|
|
69
|
-
export const shippedTheme = (file) => readFileSync(new URL(`./fixtures/theme-22.2.2/${file}`, import.meta.url), 'utf-8');
|
|
108
|
+
export const shippedTheme = (file) => readFileSync(new URL(`./fixtures/theme-22.2.2/${file.endsWith('.ts') ? `${file}.txt` : file}`, import.meta.url), 'utf-8');
|
|
70
109
|
//# sourceMappingURL=test-utils.js.map
|
package/dist/test-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
// Not copied into apps (it reads the components' source with Node), like the
|
|
3
|
+
// theme checks. It sits outside `components/`, whose folders are each a
|
|
4
|
+
// component to the coverage script.
|
|
5
|
+
import { readdirSync, readFileSync } from 'node:fs';
|
|
6
|
+
import { describe, expect, it } from 'vitest';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Relative to the package, where `ng test` runs: the test runs from a build
|
|
10
|
+
* of it elsewhere, so `import.meta.url` doesn't point next to the source.
|
|
11
|
+
*/
|
|
12
|
+
const COMPONENTS = 'src/lib/components';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Where a bracket that opens at `start` closes: `<…>` or `(…)`. In a type
|
|
16
|
+
* argument, the `>` of a function type's `=>` doesn't close anything.
|
|
17
|
+
*/
|
|
18
|
+
const closingBracket = (source: string, start: number): number => {
|
|
19
|
+
const [open, close] = source[start] === '<' ? '<>' : '()';
|
|
20
|
+
let depth = 0;
|
|
21
|
+
for (let at = start; ; at++) {
|
|
22
|
+
if (source[at] === open) depth++;
|
|
23
|
+
else if (source[at] === close && source[at - 1] !== '=') depth--;
|
|
24
|
+
if (depth === 0) return at;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Each `input()` or `input.required()` field in a file, with its type
|
|
30
|
+
* argument and its arguments, as written.
|
|
31
|
+
*/
|
|
32
|
+
const inputs = (source: string) =>
|
|
33
|
+
[...source.matchAll(/(\w+) = input(?:\.required)?(?=[<(])/g)].map((match) => {
|
|
34
|
+
let at = match.index + match[0].length;
|
|
35
|
+
let type = '';
|
|
36
|
+
if (source[at] === '<') {
|
|
37
|
+
const end = closingBracket(source, at);
|
|
38
|
+
type = source.slice(at + 1, end);
|
|
39
|
+
at = end + 1;
|
|
40
|
+
}
|
|
41
|
+
const args = source.slice(at + 1, closingBracket(source, at));
|
|
42
|
+
return { name: match[1]!, type, args };
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe('boolean inputs', () => {
|
|
46
|
+
// An app shouldn't have to read a component's source to know whether it
|
|
47
|
+
// takes `<ui-card pressable>` or needs `[pressable]="true"`, so every one
|
|
48
|
+
// takes the bare attribute (#156). `model()`s can't: Angular's `model()`
|
|
49
|
+
// takes no transform.
|
|
50
|
+
it('take a bare attribute, through a transform such as booleanAttribute', () => {
|
|
51
|
+
const files = readdirSync(COMPONENTS, { recursive: true, encoding: 'utf8' })
|
|
52
|
+
.filter((file) => file.endsWith('.ts') && !file.endsWith('.test.ts'))
|
|
53
|
+
.sort();
|
|
54
|
+
const booleans = files.flatMap((file) =>
|
|
55
|
+
inputs(readFileSync(`${COMPONENTS}/${file}`, 'utf8'))
|
|
56
|
+
.filter(
|
|
57
|
+
({ type, args }) =>
|
|
58
|
+
/^boolean\b/.test(type) || /^(true|false)\b/.test(args.trim()),
|
|
59
|
+
)
|
|
60
|
+
.map((input) => ({ ...input, field: `${file}: ${input.name}` })),
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
// The parse finds them all, rather than none (which would pass).
|
|
64
|
+
expect(booleans.map(({ field }) => field)).toContain(
|
|
65
|
+
'card/card.ts: pressable',
|
|
66
|
+
);
|
|
67
|
+
expect(booleans.map(({ field }) => field)).toContain(
|
|
68
|
+
'menu/menu.ts: checked',
|
|
69
|
+
);
|
|
70
|
+
expect(
|
|
71
|
+
booleans
|
|
72
|
+
.filter(({ args }) => !/\btransform:/.test(args))
|
|
73
|
+
.map(({ field }) => field),
|
|
74
|
+
).toEqual([]);
|
|
75
|
+
});
|
|
76
|
+
});
|