@blotch/dolan 22.2.3 → 22.2.5
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 +38 -3
- package/dist/commands/add.test.js.map +1 -1
- package/dist/commands/doctor.js +258 -21
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.js +425 -11
- 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 +105 -2
- 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 +7 -0
- package/dist/commands/update.js +194 -50
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/update.test.js +570 -3
- package/dist/commands/update.test.js.map +1 -1
- package/dist/lockfile.d.ts +17 -0
- package/dist/lockfile.js +56 -1
- package/dist/lockfile.js.map +1 -1
- package/dist/lockfile.test.d.ts +1 -0
- package/dist/lockfile.test.js +65 -0
- package/dist/lockfile.test.js.map +1 -0
- package/dist/registry.d.ts +6 -0
- package/dist/registry.js +119 -11
- package/dist/registry.js.map +1 -1
- package/dist/registry.test.js +61 -6
- package/dist/registry.test.js.map +1 -1
- package/dist/test-utils.d.ts +27 -0
- package/dist/test-utils.js +45 -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/boolean-inputs.test.ts +76 -0
- 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 +637 -183
- package/dist/ui/components/action-sheet/action-sheet.ts +339 -55
- package/dist/ui/components/action-sheet/index.ts +1 -0
- 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 +740 -129
- package/dist/ui/components/alert-dialog/alert-dialog.ts +672 -58
- package/dist/ui/components/alert-dialog/index.ts +5 -0
- package/dist/ui/components/area-chart/area-chart.test.ts +81 -1
- package/dist/ui/components/area-chart/area-chart.ts +3 -2
- 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 +14 -15
- package/dist/ui/components/bar-chart/bar-chart.test.ts +82 -1
- package/dist/ui/components/bottom-sheet/bottom-sheet.test.ts +1314 -273
- package/dist/ui/components/bottom-sheet/bottom-sheet.ts +1046 -119
- package/dist/ui/components/bottom-sheet/index.ts +7 -1
- package/dist/ui/components/button/button.test.ts +646 -2
- package/dist/ui/components/button/button.ts +443 -64
- package/dist/ui/components/button/index.ts +2 -0
- package/dist/ui/components/button-group/button-group.test.ts +528 -2
- package/dist/ui/components/button-group/button-group.ts +428 -70
- 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 +97 -61
- package/dist/ui/components/card/card.ts +2 -1
- package/dist/ui/components/chart/chart-presets.test.ts +197 -1
- package/dist/ui/components/chart/chart-presets.ts +14 -7
- package/dist/ui/components/chart/chart-theme.ts +12 -0
- package/dist/ui/components/chart/chart.test.ts +1031 -0
- package/dist/ui/components/chart/chart.ts +66 -46
- package/dist/ui/components/checkbox/checkbox.test.ts +124 -42
- package/dist/ui/components/checkbox/checkbox.ts +25 -24
- package/dist/ui/components/collapsible/collapsible.test.ts +158 -81
- package/dist/ui/components/collapsible/collapsible.ts +21 -15
- 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 +35 -29
- package/dist/ui/components/dock/dock-scroll.test.ts +130 -0
- package/dist/ui/components/dock/dock-scroll.ts +142 -0
- package/dist/ui/components/dock/dock-search.test.ts +594 -0
- package/dist/ui/components/dock/dock.test.ts +752 -0
- package/dist/ui/components/dock/dock.ts +1438 -0
- package/dist/ui/components/dock/index.ts +2 -0
- 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/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 +376 -0
- package/dist/ui/components/glass/glass.ts +430 -0
- package/dist/ui/components/glass/index.ts +19 -0
- package/dist/ui/components/icon/icon-theme.test.ts +64 -0
- package/dist/ui/components/icon/icon-theme.ts +70 -16
- 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 +17 -13
- package/dist/ui/components/label/label.test.ts +11 -24
- package/dist/ui/components/label/label.ts +8 -2
- package/dist/ui/components/line-chart/line-chart.test.ts +76 -1
- package/dist/ui/components/line-chart/line-chart.ts +3 -2
- package/dist/ui/components/list/list.test.ts +80 -49
- package/dist/ui/components/list/list.ts +5 -4
- 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 +636 -0
- package/dist/ui/components/menu/menu-popup.ts +565 -0
- package/dist/ui/components/menu/menu.test.ts +523 -0
- package/dist/ui/components/menu/menu.ts +455 -0
- package/dist/ui/components/nav-drawer/nav-drawer.test.ts +425 -260
- package/dist/ui/components/nav-drawer/nav-drawer.ts +75 -58
- 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/pagination/pagination.test.ts +136 -86
- 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.test.ts +102 -46
- package/dist/ui/components/progress/progress.ts +54 -55
- package/dist/ui/components/radio-group/radio-group.test.ts +128 -83
- package/dist/ui/components/radio-group/radio-group.ts +26 -25
- 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/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.test.ts +138 -78
- package/dist/ui/components/select/select.ts +19 -12
- package/dist/ui/components/separator/separator.test.ts +18 -17
- package/dist/ui/components/sheet/sheet.test.ts +151 -11
- package/dist/ui/components/sheet/sheet.ts +68 -5
- package/dist/ui/components/skeleton/skeleton.test.ts +24 -7
- package/dist/ui/components/skeleton/skeleton.ts +10 -16
- 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/spinner/spinner.test.ts +64 -46
- package/dist/ui/components/spinner/spinner.ts +16 -19
- package/dist/ui/components/switch/index.ts +1 -1
- package/dist/ui/components/switch/switch.test.ts +534 -48
- package/dist/ui/components/switch/switch.ts +613 -48
- 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/index.ts +7 -1
- package/dist/ui/components/tabs/tabs.test.ts +484 -150
- package/dist/ui/components/tabs/tabs.ts +344 -149
- package/dist/ui/components/textarea/textarea.test.ts +206 -100
- package/dist/ui/components/textarea/textarea.ts +16 -13
- package/dist/ui/components/toast/toast.test.ts +434 -350
- package/dist/ui/components/toast/toast.ts +42 -51
- package/dist/ui/components/toggle/index.ts +1 -0
- package/dist/ui/components/toggle/toggle.test.ts +559 -146
- 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/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 +19 -0
- package/dist/utils/analyze.js +16 -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 +25 -1
- package/dist/utils/installed.js +33 -0
- package/dist/utils/installed.js.map +1 -1
- package/dist/utils/installed.test.js +55 -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 +45 -0
- package/dist/utils/tailwind.js +90 -0
- package/dist/utils/tailwind.js.map +1 -0
- package/dist/utils/tailwind.test.d.ts +1 -0
- package/dist/utils/tailwind.test.js +134 -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
package/dist/registry.js
CHANGED
|
@@ -8,51 +8,159 @@ const CHART_PACKAGES = ['@tanstack/charts@^1.1.0', 'd3-shape@^3.2.0'];
|
|
|
8
8
|
* inputs. Kept in step with packages/ui/package.json by the same test.
|
|
9
9
|
*/
|
|
10
10
|
const CVA_PACKAGES = ['class-variance-authority@^0.7.1'];
|
|
11
|
+
/**
|
|
12
|
+
* The Liquid Glass colors, which the theme gained with the glass component.
|
|
13
|
+
*/
|
|
14
|
+
const GLASS_COLORS = [
|
|
15
|
+
'glass-tint',
|
|
16
|
+
'glass-tint-foreground',
|
|
17
|
+
'glass-foreground',
|
|
18
|
+
'glass-muted-foreground',
|
|
19
|
+
'glass-clear-foreground',
|
|
20
|
+
'glass-dim',
|
|
21
|
+
];
|
|
11
22
|
export const registry = [
|
|
12
|
-
|
|
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
|
+
},
|
|
13
30
|
{ name: 'accordion', dependencies: [] },
|
|
14
31
|
{ name: 'alert', dependencies: [], packages: CVA_PACKAGES },
|
|
15
|
-
|
|
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
|
+
},
|
|
16
44
|
// The chart presets are TanStack Charts definitions drawn by <ui-chart>.
|
|
17
45
|
{ name: 'area-chart', dependencies: ['chart'] },
|
|
18
46
|
{ name: 'aspect-ratio', dependencies: [] },
|
|
19
47
|
{ name: 'avatar', dependencies: ['skeleton'] },
|
|
20
48
|
{ name: 'badge', dependencies: [], packages: CVA_PACKAGES },
|
|
21
49
|
{ name: 'bar-chart', dependencies: ['chart'] },
|
|
22
|
-
|
|
23
|
-
{ name: '
|
|
24
|
-
|
|
50
|
+
// The glass variant draws its sheet on `glass`, in the platform's design.
|
|
51
|
+
{ name: 'bottom-sheet', dependencies: ['glass'] },
|
|
52
|
+
// The glass variants draw on `glass`, and projected icons take the label's
|
|
53
|
+
// color through icon's UI_ICON_COLOR.
|
|
54
|
+
{
|
|
55
|
+
name: 'button',
|
|
56
|
+
dependencies: ['spinner', 'glass', 'icon'],
|
|
57
|
+
packages: CVA_PACKAGES,
|
|
58
|
+
themeColors: GLASS_COLORS,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'button-group',
|
|
62
|
+
dependencies: ['glass', 'icon'],
|
|
63
|
+
packages: CVA_PACKAGES,
|
|
64
|
+
themeColors: GLASS_COLORS,
|
|
65
|
+
},
|
|
25
66
|
{ name: 'candlestick-chart', dependencies: ['chart'] },
|
|
26
67
|
{ name: 'card', dependencies: [] },
|
|
27
68
|
// Renders any TanStack Charts definition with Lynx elements; the presets
|
|
28
|
-
// below build on it.
|
|
29
|
-
|
|
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 },
|
|
30
72
|
{ name: 'checkbox', dependencies: [] },
|
|
31
73
|
{ name: 'collapsible', dependencies: [] },
|
|
74
|
+
// The context menu is a menu that opens on a long press: it shares the
|
|
75
|
+
// menu's items and its overlay.
|
|
76
|
+
{ name: 'context-menu', dependencies: ['menu'] },
|
|
32
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'] },
|
|
81
|
+
// The dock's bar, button and accessory are glass, and its items draw their
|
|
82
|
+
// icons from icon's set. Its selection capsule and the items on glass take
|
|
83
|
+
// the glass foreground. It holds a search field in its glass, and rises
|
|
84
|
+
// above the keyboard with search-field's keyboard.ts.
|
|
85
|
+
{
|
|
86
|
+
name: 'dock',
|
|
87
|
+
dependencies: ['glass', 'icon', 'search-field'],
|
|
88
|
+
themeColors: ['glass-foreground'],
|
|
89
|
+
},
|
|
33
90
|
{ name: 'empty-state', dependencies: ['icon'] },
|
|
91
|
+
// Glass resolves its tint with the icons' copy of the theme, and hands
|
|
92
|
+
// projected icons its foreground.
|
|
93
|
+
{ name: 'glass', dependencies: ['icon'], themeColors: GLASS_COLORS },
|
|
34
94
|
{ name: 'input', dependencies: [] },
|
|
35
95
|
{ name: 'label', dependencies: [] },
|
|
36
96
|
{ name: 'line-chart', dependencies: ['chart'] },
|
|
37
97
|
{ name: 'list', dependencies: [] },
|
|
98
|
+
// The menu is glass, and its items draw their icons from icon's set.
|
|
99
|
+
{
|
|
100
|
+
name: 'menu',
|
|
101
|
+
dependencies: ['glass', 'icon'],
|
|
102
|
+
themeColors: ['glass-foreground', 'glass-muted-foreground', 'glass-dim'],
|
|
103
|
+
},
|
|
38
104
|
// nav-drawer renders a hamburger trigger via <ui-icon>, so it pulls in `icon`.
|
|
39
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'] },
|
|
40
109
|
// Pagination and the spinner draw SVGs in theme colors with icon-theme.ts.
|
|
41
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
|
+
},
|
|
42
118
|
{ name: 'progress', dependencies: [] },
|
|
43
119
|
{ name: 'radio-group', dependencies: [] },
|
|
44
120
|
{ name: 'scatter-chart', dependencies: ['chart'] },
|
|
45
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'] },
|
|
46
133
|
{ name: 'select', dependencies: ['bottom-sheet'] },
|
|
47
134
|
{ name: 'separator', dependencies: [] },
|
|
48
|
-
|
|
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'] },
|
|
49
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'] },
|
|
50
142
|
{ name: 'spinner', dependencies: ['icon'] },
|
|
51
|
-
|
|
52
|
-
{ name: '
|
|
143
|
+
// As the slider.
|
|
144
|
+
{ name: 'switch', dependencies: ['glass', 'icon'] },
|
|
145
|
+
// The tab bar draws its items' icons from icon's set, in theme colors
|
|
146
|
+
// resolved by icon-theme.ts.
|
|
147
|
+
{ name: 'tab-bar', dependencies: ['icon'] },
|
|
148
|
+
{ name: 'tabs', dependencies: ['segmented-control'] },
|
|
53
149
|
{ name: 'textarea', dependencies: [] },
|
|
54
150
|
{ name: 'toast', dependencies: [] },
|
|
55
|
-
|
|
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
|
+
},
|
|
56
164
|
{ name: 'typography', dependencies: [], packages: CVA_PACKAGES },
|
|
57
165
|
{ name: 'icon', dependencies: [] },
|
|
58
166
|
];
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.test.js
CHANGED
|
@@ -15,8 +15,16 @@ describe('getEntry', () => {
|
|
|
15
15
|
const entry = getEntry('button');
|
|
16
16
|
expect(entry).toEqual({
|
|
17
17
|
name: 'button',
|
|
18
|
-
dependencies: ['spinner'],
|
|
18
|
+
dependencies: ['spinner', 'glass', 'icon'],
|
|
19
19
|
packages: ['class-variance-authority@^0.7.1'],
|
|
20
|
+
themeColors: [
|
|
21
|
+
'glass-tint',
|
|
22
|
+
'glass-tint-foreground',
|
|
23
|
+
'glass-foreground',
|
|
24
|
+
'glass-muted-foreground',
|
|
25
|
+
'glass-clear-foreground',
|
|
26
|
+
'glass-dim',
|
|
27
|
+
],
|
|
20
28
|
});
|
|
21
29
|
});
|
|
22
30
|
it('returns undefined for non-existent component', () => {
|
|
@@ -29,11 +37,11 @@ describe('resolveDependencies', () => {
|
|
|
29
37
|
});
|
|
30
38
|
it('resolves transitive dependencies in dependency-first order', () => {
|
|
31
39
|
const resolved = resolveDependencies(['button']);
|
|
32
|
-
expect(resolved).toEqual(['icon', 'spinner', 'button']);
|
|
40
|
+
expect(resolved).toEqual(['icon', 'spinner', 'glass', 'button']);
|
|
33
41
|
});
|
|
34
42
|
it('deduplicates when dependency is also explicitly listed', () => {
|
|
35
43
|
const resolved = resolveDependencies(['button', 'spinner']);
|
|
36
|
-
expect(resolved).toEqual(['icon', 'spinner', 'button']);
|
|
44
|
+
expect(resolved).toEqual(['icon', 'spinner', 'glass', 'button']);
|
|
37
45
|
});
|
|
38
46
|
it('handles empty input', () => {
|
|
39
47
|
expect(resolveDependencies([])).toEqual([]);
|
|
@@ -43,10 +51,20 @@ describe('resolveDependencies', () => {
|
|
|
43
51
|
expect(resolved).toEqual(['icon', 'empty-state']);
|
|
44
52
|
});
|
|
45
53
|
it('resolves select with its bottom-sheet dependency', () => {
|
|
46
|
-
expect(resolveDependencies(['select'])).toEqual([
|
|
54
|
+
expect(resolveDependencies(['select'])).toEqual([
|
|
55
|
+
'icon',
|
|
56
|
+
'glass',
|
|
57
|
+
'bottom-sheet',
|
|
58
|
+
'select',
|
|
59
|
+
]);
|
|
47
60
|
});
|
|
48
61
|
it('resolves sheet with its bottom-sheet dependency', () => {
|
|
49
|
-
expect(resolveDependencies(['sheet'])).toEqual([
|
|
62
|
+
expect(resolveDependencies(['sheet'])).toEqual([
|
|
63
|
+
'icon',
|
|
64
|
+
'glass',
|
|
65
|
+
'bottom-sheet',
|
|
66
|
+
'sheet',
|
|
67
|
+
]);
|
|
50
68
|
});
|
|
51
69
|
it.each([
|
|
52
70
|
'line-chart',
|
|
@@ -55,10 +73,13 @@ describe('resolveDependencies', () => {
|
|
|
55
73
|
'scatter-chart',
|
|
56
74
|
'candlestick-chart',
|
|
57
75
|
])('resolves %s with the chart it builds on first', (preset) => {
|
|
58
|
-
|
|
76
|
+
// The chart reads colors set at runtime through icon's icon-theme.ts.
|
|
77
|
+
expect(resolveDependencies([preset])).toEqual(['icon', 'chart', preset]);
|
|
59
78
|
});
|
|
60
79
|
it('deduplicates bottom-sheet when both select and sheet are selected', () => {
|
|
61
80
|
expect(resolveDependencies(['select', 'sheet'])).toEqual([
|
|
81
|
+
'icon',
|
|
82
|
+
'glass',
|
|
62
83
|
'bottom-sheet',
|
|
63
84
|
'select',
|
|
64
85
|
'sheet',
|
|
@@ -131,4 +152,38 @@ describe('resolvePackages', () => {
|
|
|
131
152
|
}
|
|
132
153
|
});
|
|
133
154
|
});
|
|
155
|
+
describe('themeColors', () => {
|
|
156
|
+
it("names colors dolan's theme sets in both schemes and maps for both Tailwinds", () => {
|
|
157
|
+
// doctor checks an app's theme for these, and quotes dolan's lines.
|
|
158
|
+
const theme = new URL('../../ui/src/lib/theme/', import.meta.url);
|
|
159
|
+
const read = (file) => readFileSync(new URL(file, theme), 'utf-8');
|
|
160
|
+
const [light, dark, plugin, css] = [
|
|
161
|
+
'default.css',
|
|
162
|
+
'dark.css',
|
|
163
|
+
'tailwind-plugin.ts',
|
|
164
|
+
'tailwind.css',
|
|
165
|
+
].map(read);
|
|
166
|
+
const colors = registry.flatMap((entry) => entry.themeColors ?? []);
|
|
167
|
+
expect(colors).toContain('glass-foreground');
|
|
168
|
+
for (const color of colors) {
|
|
169
|
+
expect(light, color).toContain(`--${color}:`);
|
|
170
|
+
expect(dark, color).toContain(`--${color}:`);
|
|
171
|
+
expect(plugin, color).toMatch(new RegExp(`'${color}'|'var\\(--${color}\\)'`));
|
|
172
|
+
expect(css, color).toContain(`var(--${color})`);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
it("lists every glass color the glass component's code names", () => {
|
|
176
|
+
const folder = new URL('../../ui/src/lib/components/glass/', import.meta.url);
|
|
177
|
+
const named = new Set();
|
|
178
|
+
for (const file of readdirSync(folder)) {
|
|
179
|
+
if (file.endsWith('.test.ts'))
|
|
180
|
+
continue;
|
|
181
|
+
const source = readFileSync(new URL(file, folder), 'utf-8');
|
|
182
|
+
for (const [color] of source.matchAll(/glass-(?:[a-z]+-)*foreground|glass-tint|glass-dim/g)) {
|
|
183
|
+
named.add(color);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
expect(getEntry('glass').themeColors).toEqual(expect.arrayContaining([...named]));
|
|
187
|
+
});
|
|
188
|
+
});
|
|
134
189
|
//# sourceMappingURL=registry.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../src/registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpB,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,CAAC,SAAS,CAAC;
|
|
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,4 +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;
|
|
37
|
+
/**
|
|
38
|
+
* A theme file exactly as 22.2.2's `init` copied it (from the v22.2.2 tag),
|
|
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.
|
|
42
|
+
*/
|
|
43
|
+
export declare const shippedTheme: (file: "default.css" | "dark.css" | "tailwind-plugin.ts") => string;
|
package/dist/test-utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync, rmSync } from 'node:fs';
|
|
1
|
+
import { mkdirSync, readFileSync, writeFileSync, rmSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { tmpdir } from 'node:os';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
@@ -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,4 +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
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* A theme file exactly as 22.2.2's `init` copied it (from the v22.2.2 tag),
|
|
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.
|
|
107
|
+
*/
|
|
108
|
+
export const shippedTheme = (file) => readFileSync(new URL(`./fixtures/theme-22.2.2/${file.endsWith('.ts') ? `${file}.txt` : file}`, import.meta.url), 'utf-8');
|
|
65
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":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fires a Lynx event on an element the way Lynx dispatches it, for the events
|
|
3
|
+
* the testing library's `fireEvent` has no shortcut for: `mouseleave`, an
|
|
4
|
+
* image's `load` and `error`, an accessibility action, and so on. `fields` go
|
|
5
|
+
* on the event, where Lynx puts its `detail`. `eventType` picks the kind of
|
|
6
|
+
* listener: `bindEvent` for `(bindtap)`, `catchEvent` for `(catchtap)`.
|
|
7
|
+
*
|
|
8
|
+
* fireLynxEvent(view, 'mouseleave');
|
|
9
|
+
* fireLynxEvent(image, 'error', { detail: { errMsg: 'Not found' } });
|
|
10
|
+
*
|
|
11
|
+
* dolan copies component tests into apps with an import of
|
|
12
|
+
* `@blotch/dolan/testing/fire-lynx-event`, a copy of this file.
|
|
13
|
+
*/
|
|
14
|
+
export declare const fireLynxEvent: (element: EventTarget, name: string, fields?: Record<string, unknown>, eventType?: string) => boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fires a Lynx event on an element the way Lynx dispatches it, for the events
|
|
3
|
+
* the testing library's `fireEvent` has no shortcut for: `mouseleave`, an
|
|
4
|
+
* image's `load` and `error`, an accessibility action, and so on. `fields` go
|
|
5
|
+
* on the event, where Lynx puts its `detail`. `eventType` picks the kind of
|
|
6
|
+
* listener: `bindEvent` for `(bindtap)`, `catchEvent` for `(catchtap)`.
|
|
7
|
+
*
|
|
8
|
+
* fireLynxEvent(view, 'mouseleave');
|
|
9
|
+
* fireLynxEvent(image, 'error', { detail: { errMsg: 'Not found' } });
|
|
10
|
+
*
|
|
11
|
+
* dolan copies component tests into apps with an import of
|
|
12
|
+
* `@blotch/dolan/testing/fire-lynx-event`, a copy of this file.
|
|
13
|
+
*/
|
|
14
|
+
export const fireLynxEvent = (element, name, fields = {}, eventType = 'bindEvent') => element.dispatchEvent(Object.assign(new Event(`${eventType}:${name}`), {
|
|
15
|
+
eventType,
|
|
16
|
+
eventName: name,
|
|
17
|
+
...fields,
|
|
18
|
+
}));
|
|
19
|
+
//# sourceMappingURL=fire-lynx-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fire-lynx-event.js","sourceRoot":"","sources":["../../src/testing/fire-lynx-event.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,OAAoB,EACpB,IAAY,EACZ,SAAkC,EAAE,EACpC,SAAS,GAAG,WAAW,EACd,EAAE,CACX,OAAO,CAAC,aAAa,CACnB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,EAAE;IAC/C,SAAS;IACT,SAAS,EAAE,IAAI;IACf,GAAG,MAAM;CACV,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { fireLynxEvent } from './fire-lynx-event';
|
|
4
|
+
/**
|
|
5
|
+
* An element stand-in that records the events dispatched on it.
|
|
6
|
+
*/
|
|
7
|
+
const target = () => {
|
|
8
|
+
const element = new EventTarget();
|
|
9
|
+
const events = [];
|
|
10
|
+
for (const type of ['bindEvent:mouseleave', 'catchEvent:tap']) {
|
|
11
|
+
element.addEventListener(type, (event) => events.push(event));
|
|
12
|
+
}
|
|
13
|
+
return { element, events };
|
|
14
|
+
};
|
|
15
|
+
describe('fireLynxEvent', () => {
|
|
16
|
+
it('dispatches a bindEvent with its name, as Lynx does', () => {
|
|
17
|
+
const { element, events } = target();
|
|
18
|
+
expect(fireLynxEvent(element, 'mouseleave')).toBe(true);
|
|
19
|
+
expect(events).toHaveLength(1);
|
|
20
|
+
expect(events[0]).toMatchObject({
|
|
21
|
+
type: 'bindEvent:mouseleave',
|
|
22
|
+
eventType: 'bindEvent',
|
|
23
|
+
eventName: 'mouseleave',
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
it("puts the fields on the event, for the listener's kind", () => {
|
|
27
|
+
const { element, events } = target();
|
|
28
|
+
fireLynxEvent(element, 'tap', { detail: { x: 1 } }, 'catchEvent');
|
|
29
|
+
expect(events[0]).toMatchObject({
|
|
30
|
+
type: 'catchEvent:tap',
|
|
31
|
+
eventType: 'catchEvent',
|
|
32
|
+
detail: { x: 1 },
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
it('is the helper the component tests import from packages/ui', () => {
|
|
36
|
+
// Copied tests import `../../../test-utils/fire-lynx-event`, which dolan
|
|
37
|
+
// rewrites to this file. A copy that drifted would test differently in an
|
|
38
|
+
// app than in the library.
|
|
39
|
+
const shipped = readFileSync(new URL('./fire-lynx-event.ts', import.meta.url), 'utf-8');
|
|
40
|
+
const library = readFileSync(new URL('../../../ui/src/test-utils/fire-lynx-event.ts', import.meta.url), 'utf-8');
|
|
41
|
+
expect(shipped).toBe(library);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=fire-lynx-event.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fire-lynx-event.test.js","sourceRoot":"","sources":["../../src/testing/fire-lynx-event.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,EAAE;IAClB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,CAAC,sBAAsB,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC9D,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC,CAAC;AAEF,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACrC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,YAAY;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACrC,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,gBAAgB;YACtB,SAAS,EAAE,YAAY;YACvB,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,yEAAyE;QACzE,0EAA0E;QAC1E,2BAA2B;QAC3B,MAAM,OAAO,GAAG,YAAY,CAC1B,IAAI,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAChD,OAAO,CACR,CAAC;QACF,MAAM,OAAO,GAAG,YAAY,CAC1B,IAAI,GAAG,CAAC,+CAA+C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EACzE,OAAO,CACR,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Lynx element functions a test watches with `vi.spyOn()`, as the testing
|
|
3
|
+
* library's main thread runs them.
|
|
4
|
+
*/
|
|
5
|
+
export type LynxMainThread = {
|
|
6
|
+
/** Starts, plays, pauses or cancels an element's animation. */
|
|
7
|
+
__ElementAnimate: (element: Element, args: unknown[]) => void;
|
|
8
|
+
/** Sets an attribute, such as a boolean jsdom doesn't keep as Lynx does. */
|
|
9
|
+
__SetAttribute: (element: Element, name: string, value: unknown) => void;
|
|
10
|
+
/** Sets one inline style, including those jsdom drops. */
|
|
11
|
+
__AddInlineStyle: (element: Element, name: string | number, value: unknown) => void;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* The testing library's Lynx main thread, to watch what reaches Lynx where
|
|
15
|
+
* the rendered element can't show it: an animation, or a value jsdom drops.
|
|
16
|
+
*
|
|
17
|
+
* const animate = vi.spyOn(lynxMainThread(), '__ElementAnimate');
|
|
18
|
+
*
|
|
19
|
+
* dolan copies component tests into apps with an import of
|
|
20
|
+
* `@blotch/dolan/testing/lynx-main-thread`, a copy of this file.
|
|
21
|
+
*/
|
|
22
|
+
export declare const lynxMainThread: () => LynxMainThread;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The testing library's Lynx main thread, to watch what reaches Lynx where
|
|
3
|
+
* the rendered element can't show it: an animation, or a value jsdom drops.
|
|
4
|
+
*
|
|
5
|
+
* const animate = vi.spyOn(lynxMainThread(), '__ElementAnimate');
|
|
6
|
+
*
|
|
7
|
+
* dolan copies component tests into apps with an import of
|
|
8
|
+
* `@blotch/dolan/testing/lynx-main-thread`, a copy of this file.
|
|
9
|
+
*/
|
|
10
|
+
export const lynxMainThread = () => globalThis.lynxTestingEnv.mainThread.globalThis;
|
|
11
|
+
//# sourceMappingURL=lynx-main-thread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lynx-main-thread.js","sourceRoot":"","sources":["../../src/testing/lynx-main-thread.ts"],"names":[],"mappings":"AAiBA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAmB,EAAE,CAE/C,UAGD,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { afterEach, describe, expect, it } from 'vitest';
|
|
3
|
+
import { lynxMainThread } from './lynx-main-thread';
|
|
4
|
+
describe('lynxMainThread', () => {
|
|
5
|
+
afterEach(() => {
|
|
6
|
+
delete globalThis.lynxTestingEnv;
|
|
7
|
+
});
|
|
8
|
+
it("is the testing library's main thread globals", () => {
|
|
9
|
+
const globals = { __ElementAnimate: () => { } };
|
|
10
|
+
globalThis.lynxTestingEnv = {
|
|
11
|
+
mainThread: { globalThis: globals },
|
|
12
|
+
};
|
|
13
|
+
expect(lynxMainThread()).toBe(globals);
|
|
14
|
+
});
|
|
15
|
+
it('is the helper the component tests import from packages/ui', () => {
|
|
16
|
+
// Copied tests import `../../../test-utils/lynx-main-thread`, which dolan
|
|
17
|
+
// rewrites to this file. A copy that drifted would test differently in an
|
|
18
|
+
// app than in the library.
|
|
19
|
+
const shipped = readFileSync(new URL('./lynx-main-thread.ts', import.meta.url), 'utf-8');
|
|
20
|
+
const library = readFileSync(new URL('../../../ui/src/test-utils/lynx-main-thread.ts', import.meta.url), 'utf-8');
|
|
21
|
+
expect(shipped).toBe(library);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=lynx-main-thread.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lynx-main-thread.test.js","sourceRoot":"","sources":["../../src/testing/lynx-main-thread.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,SAAS,CAAC,GAAG,EAAE;QACb,OAAQ,UAA2C,CAAC,cAAc,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,OAAO,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;QAC9C,UAA2C,CAAC,cAAc,GAAG;YAC5D,UAAU,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;SACpC,CAAC;QACF,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,0EAA0E;QAC1E,0EAA0E;QAC1E,2BAA2B;QAC3B,MAAM,OAAO,GAAG,YAAY,CAC1B,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EACjD,OAAO,CACR,CAAC;QACF,MAAM,OAAO,GAAG,YAAY,CAC1B,IAAI,GAAG,CACL,gDAAgD,EAChD,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,EACD,OAAO,CACR,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|