cursedbelt 5.0.1 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react/engagement/beacon.d.ts +38 -0
- package/dist/react/engagement/beacon.d.ts.map +1 -0
- package/dist/react/engagement/beacon.js +62 -0
- package/dist/react/engagement/beacon.js.map +1 -0
- package/dist/react/engagement/beaconClient.d.ts +119 -0
- package/dist/react/engagement/beaconClient.d.ts.map +1 -0
- package/dist/react/engagement/beaconClient.js +203 -0
- package/dist/react/engagement/beaconClient.js.map +1 -0
- package/dist/react/engagement/index.d.ts +3 -0
- package/dist/react/engagement/index.d.ts.map +1 -0
- package/dist/react/engagement/index.js +5 -0
- package/dist/react/engagement/index.js.map +1 -0
- package/dist/react/lib/directUpload.d.ts +130 -0
- package/dist/react/lib/directUpload.d.ts.map +1 -0
- package/dist/react/lib/directUpload.js +228 -0
- package/dist/react/lib/directUpload.js.map +1 -0
- package/dist/react/media/FocusViewer.d.ts.map +1 -1
- package/dist/react/media/FocusViewer.js.map +1 -1
- package/dist/react/media/MediaThumb.d.ts.map +1 -1
- package/dist/react/media/MediaThumb.js.map +1 -1
- package/dist/react/media/VideoTurner.d.ts.map +1 -1
- package/dist/react/media/VideoTurner.js.map +1 -1
- package/dist/react/media-gallery/GalleryTable.js.map +1 -1
- package/dist/react/media-gallery/MediaGallery.d.ts.map +1 -1
- package/dist/react/media-gallery/MediaGallery.js.map +1 -1
- package/dist/styles-areas/activity-bar.css +8 -11
- package/dist/styles-areas/analytics.css +30 -653
- package/dist/styles-areas/auth.css +10 -135
- package/dist/styles-areas/calendar.css +22 -397
- package/dist/styles-areas/chart-table.css +8 -20
- package/dist/styles-areas/charts.css +9 -70
- package/dist/styles-areas/chat.css +17 -345
- package/dist/styles-areas/clipboard.css +7 -7
- package/dist/styles-areas/code-editor.css +8 -111
- package/dist/styles-areas/companion-link.css +8 -51
- package/dist/styles-areas/core.css +131 -2488
- package/dist/styles-areas/dashboard-grid.css +10 -65
- package/dist/styles-areas/data-table.css +30 -638
- package/dist/styles-areas/deep-link.css +7 -7
- package/dist/styles-areas/diff-viewer.css +8 -11
- package/dist/styles-areas/disk-usage.css +13 -243
- package/dist/styles-areas/emoji.css +9 -135
- package/dist/styles-areas/fields.css +32 -563
- package/dist/styles-areas/file-tree.css +8 -14
- package/dist/styles-areas/filter-rail.css +14 -216
- package/dist/styles-areas/folder-tree.css +12 -200
- package/dist/styles-areas/keep-awake.css +7 -7
- package/dist/styles-areas/layout-engine.css +12 -220
- package/dist/styles-areas/markdown.css +9 -68
- package/dist/styles-areas/master-detail.css +14 -220
- package/dist/styles-areas/master-lock.css +9 -113
- package/dist/styles-areas/media-gallery.css +15 -332
- package/dist/styles-areas/media.css +20 -623
- package/dist/styles-areas/nav.css +24 -469
- package/dist/styles-areas/notifications.css +12 -226
- package/dist/styles-areas/overlays.css +14 -114
- package/dist/styles-areas/palette.css +15 -121
- package/dist/styles-areas/pdf-viewer.css +8 -28
- package/dist/styles-areas/problem-detail.css +9 -78
- package/dist/styles-areas/rich-text.css +9 -148
- package/dist/styles-areas/sharing.css +13 -134
- package/dist/styles-areas/spreadsheet.css +8 -18
- package/dist/styles-areas/stats.css +19 -262
- package/dist/styles-areas/test-report.css +13 -114
- package/dist/styles-areas/virtual.css +8 -11
- package/dist/styles-areas/wizard.css +21 -362
- package/dist/styles-areas/workbench.css +27 -524
- package/dist/styles-areas/workbook-viewer.css +8 -25
- package/dist/styles-static.css +1 -0
- package/dist/styles.css +1 -0
- package/package.json +20 -2
- package/scripts/checkAreaStyles.spec.ts +158 -1
- package/scripts/checkAreaStyles.ts +226 -6
- package/scripts/cssRules.ts +8 -1
- package/scripts/gate.ts +1 -1
- package/scripts/generateAreaStyles.ts +130 -10
- package/scripts/paths.ts +1 -1
- package/scripts/styleAreas.ts +2 -0
- package/src/react/components/ActionBar.spec.tsx +1 -0
- package/src/react/engagement/beacon.tsx +63 -0
- package/src/react/engagement/beaconClient.spec.ts +138 -0
- package/src/react/engagement/beaconClient.ts +228 -0
- package/src/react/engagement/index.ts +13 -0
- package/src/react/file-tree/FileTree.tsx +3 -3
- package/src/react/lib/directUpload.spec.ts +128 -0
- package/src/react/lib/directUpload.ts +334 -0
- package/src/react/media/FocusViewer.tsx +1 -0
- package/src/react/media/MediaThumb.tsx +0 -1
- package/src/react/media/VideoTurner.tsx +0 -1
- package/src/react/media-gallery/GalleryTable.tsx +0 -1
- package/src/react/media-gallery/MediaGallery.tsx +0 -1
- package/src/styles-areas/activity-bar.css +8 -11
- package/src/styles-areas/analytics.css +30 -653
- package/src/styles-areas/auth.css +10 -135
- package/src/styles-areas/calendar.css +22 -397
- package/src/styles-areas/chart-table.css +8 -20
- package/src/styles-areas/charts.css +9 -70
- package/src/styles-areas/chat.css +17 -345
- package/src/styles-areas/clipboard.css +7 -7
- package/src/styles-areas/code-editor.css +8 -111
- package/src/styles-areas/companion-link.css +8 -51
- package/src/styles-areas/core.css +131 -2488
- package/src/styles-areas/dashboard-grid.css +10 -65
- package/src/styles-areas/data-table.css +30 -638
- package/src/styles-areas/deep-link.css +7 -7
- package/src/styles-areas/diff-viewer.css +8 -11
- package/src/styles-areas/disk-usage.css +13 -243
- package/src/styles-areas/emoji.css +9 -135
- package/src/styles-areas/fields.css +32 -563
- package/src/styles-areas/file-tree.css +8 -14
- package/src/styles-areas/filter-rail.css +14 -216
- package/src/styles-areas/folder-tree.css +12 -200
- package/src/styles-areas/keep-awake.css +7 -7
- package/src/styles-areas/layout-engine.css +12 -220
- package/src/styles-areas/markdown.css +9 -68
- package/src/styles-areas/master-detail.css +14 -220
- package/src/styles-areas/master-lock.css +9 -113
- package/src/styles-areas/media-gallery.css +15 -332
- package/src/styles-areas/media.css +20 -623
- package/src/styles-areas/nav.css +24 -469
- package/src/styles-areas/notifications.css +12 -226
- package/src/styles-areas/overlays.css +14 -114
- package/src/styles-areas/palette.css +15 -121
- package/src/styles-areas/pdf-viewer.css +8 -28
- package/src/styles-areas/problem-detail.css +9 -78
- package/src/styles-areas/rich-text.css +9 -148
- package/src/styles-areas/sharing.css +13 -134
- package/src/styles-areas/spreadsheet.css +8 -18
- package/src/styles-areas/stats.css +19 -262
- package/src/styles-areas/test-report.css +13 -114
- package/src/styles-areas/virtual.css +8 -11
- package/src/styles-areas/wizard.css +21 -362
- package/src/styles-areas/workbench.css +27 -524
- package/src/styles-areas/workbook-viewer.css +8 -25
- package/src/styles-static.css +1 -0
- package/src/styles.css +1 -0
- package/src/stylesAreas.spec.ts +12 -7
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* cursedbelt — the `workbench` area. GENERATED BUILD ARTIFACT. Never hand-edit.
|
|
2
|
+
* cursedbelt — the `workbench` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
|
|
3
3
|
*
|
|
4
4
|
* the resizable/split/panelled work surfaces and the drag-and-drop affordances.
|
|
5
5
|
*
|
|
@@ -13,531 +13,34 @@
|
|
|
13
13
|
* @import "cursedbelt/styles-areas/workbench.css";
|
|
14
14
|
* @import "cursedbelt/theme.css";
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* These are CANDIDATES (`@source inline`), not CSS: the app's own Tailwind pass generates
|
|
17
|
+
* them, sorted together with the app's utilities, so an area can never put a base utility
|
|
18
|
+
* after an app's responsive variant (task 2124). An app that imports every area gets exactly
|
|
19
|
+
* what `cursedbelt/styles-utilities.css` emits — proved rule by rule in
|
|
20
|
+
* src/stylesAreas.spec.ts, which is also what fails when this file is stale.
|
|
21
|
+
* 106 candidate(s).
|
|
19
22
|
*
|
|
20
23
|
* Written by scripts/generateAreaStyles.ts (`bun run styles:areas`), which
|
|
21
24
|
* `bun run build` runs. The map of what is in which area, and why the areas are
|
|
22
25
|
* import closures rather than a hand-written list, is scripts/styleAreas.ts.
|
|
23
26
|
*/
|
|
24
|
-
|
|
25
|
-
@
|
|
26
|
-
@
|
|
27
|
-
@
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
@
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
left: 0px;
|
|
45
|
-
}
|
|
46
|
-
.-my-0\.5 {
|
|
47
|
-
margin-block: calc(var(--spacing) * -0.5);
|
|
48
|
-
}
|
|
49
|
-
.h-3\.5 {
|
|
50
|
-
height: calc(var(--spacing) * 3.5);
|
|
51
|
-
}
|
|
52
|
-
.h-40 {
|
|
53
|
-
height: calc(var(--spacing) * 40);
|
|
54
|
-
}
|
|
55
|
-
.h-\[420px\] {
|
|
56
|
-
height: 420px;
|
|
57
|
-
}
|
|
58
|
-
.max-h-\[40dvh\] {
|
|
59
|
-
max-height: 40dvh;
|
|
60
|
-
}
|
|
61
|
-
.max-h-\[65dvh\] {
|
|
62
|
-
max-height: 65dvh;
|
|
63
|
-
}
|
|
64
|
-
.max-h-\[85dvh\] {
|
|
65
|
-
max-height: 85dvh;
|
|
66
|
-
}
|
|
67
|
-
.max-h-full {
|
|
68
|
-
max-height: 100%;
|
|
69
|
-
}
|
|
70
|
-
.min-h-20 {
|
|
71
|
-
min-height: calc(var(--spacing) * 20);
|
|
72
|
-
}
|
|
73
|
-
.min-h-\[2\.25rem\] {
|
|
74
|
-
min-height: 2.25rem;
|
|
75
|
-
}
|
|
76
|
-
.min-h-\[44px\] {
|
|
77
|
-
min-height: 44px;
|
|
78
|
-
}
|
|
79
|
-
.min-h-dvh {
|
|
80
|
-
min-height: 100dvh;
|
|
81
|
-
}
|
|
82
|
-
.min-h-full {
|
|
83
|
-
min-height: 100%;
|
|
84
|
-
}
|
|
85
|
-
.w-1\/2 {
|
|
86
|
-
width: calc(1 / 2 * 100%);
|
|
87
|
-
}
|
|
88
|
-
.w-2\/3 {
|
|
89
|
-
width: calc(2 / 3 * 100%);
|
|
90
|
-
}
|
|
91
|
-
.w-3\.5 {
|
|
92
|
-
width: calc(var(--spacing) * 3.5);
|
|
93
|
-
}
|
|
94
|
-
.w-\[352px\] {
|
|
95
|
-
width: 352px;
|
|
96
|
-
}
|
|
97
|
-
.min-w-40 {
|
|
98
|
-
min-width: calc(var(--spacing) * 40);
|
|
99
|
-
}
|
|
100
|
-
.min-w-\[5rem\] {
|
|
101
|
-
min-width: 5rem;
|
|
102
|
-
}
|
|
103
|
-
.shrink-\[2\] {
|
|
104
|
-
flex-shrink: 2;
|
|
105
|
-
}
|
|
106
|
-
.translate-y-0 {
|
|
107
|
-
--tw-translate-y: 0px;
|
|
108
|
-
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
109
|
-
}
|
|
110
|
-
.translate-y-2 {
|
|
111
|
-
--tw-translate-y: calc(var(--spacing) * 2);
|
|
112
|
-
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
113
|
-
}
|
|
114
|
-
.scale-\[1\.01\] {
|
|
115
|
-
scale: 1.01;
|
|
116
|
-
}
|
|
117
|
-
.rotate-90 {
|
|
118
|
-
rotate: 90deg;
|
|
119
|
-
}
|
|
120
|
-
.cursor-not-allowed {
|
|
121
|
-
cursor: not-allowed;
|
|
122
|
-
}
|
|
123
|
-
.resize-none {
|
|
124
|
-
resize: none;
|
|
125
|
-
}
|
|
126
|
-
.\[scrollbar-width\:none\] {
|
|
127
|
-
scrollbar-width: none;
|
|
128
|
-
}
|
|
129
|
-
.flex-row {
|
|
130
|
-
flex-direction: row;
|
|
131
|
-
}
|
|
132
|
-
.self-center {
|
|
133
|
-
align-self: center;
|
|
134
|
-
}
|
|
135
|
-
.self-stretch {
|
|
136
|
-
align-self: stretch;
|
|
137
|
-
}
|
|
138
|
-
.rounded-\[2\.5rem\] {
|
|
139
|
-
border-radius: 2.5rem;
|
|
140
|
-
}
|
|
141
|
-
.rounded-t-xl {
|
|
142
|
-
border-top-left-radius: 1.5rem;
|
|
143
|
-
border-top-right-radius: 1.5rem;
|
|
144
|
-
}
|
|
145
|
-
.rounded-l-xl {
|
|
146
|
-
border-top-left-radius: 1.5rem;
|
|
147
|
-
border-bottom-left-radius: 1.5rem;
|
|
148
|
-
}
|
|
149
|
-
.rounded-r-xl {
|
|
150
|
-
border-top-right-radius: 1.5rem;
|
|
151
|
-
border-bottom-right-radius: 1.5rem;
|
|
152
|
-
}
|
|
153
|
-
.border-0 {
|
|
154
|
-
border-style: var(--tw-border-style);
|
|
155
|
-
border-width: 0px;
|
|
156
|
-
}
|
|
157
|
-
.border-2 {
|
|
158
|
-
border-style: var(--tw-border-style);
|
|
159
|
-
border-width: 2px;
|
|
160
|
-
}
|
|
161
|
-
.border-8 {
|
|
162
|
-
border-style: var(--tw-border-style);
|
|
163
|
-
border-width: 8px;
|
|
164
|
-
}
|
|
165
|
-
.border-r {
|
|
166
|
-
border-right-style: var(--tw-border-style);
|
|
167
|
-
border-right-width: 1px;
|
|
168
|
-
}
|
|
169
|
-
.border-l {
|
|
170
|
-
border-left-style: var(--tw-border-style);
|
|
171
|
-
border-left-width: 1px;
|
|
172
|
-
}
|
|
173
|
-
.border-dashed {
|
|
174
|
-
--tw-border-style: dashed;
|
|
175
|
-
border-style: dashed;
|
|
176
|
-
}
|
|
177
|
-
.border-solid {
|
|
178
|
-
--tw-border-style: solid;
|
|
179
|
-
border-style: solid;
|
|
180
|
-
}
|
|
181
|
-
.border-accent {
|
|
182
|
-
border-color: var(--accent);
|
|
183
|
-
}
|
|
184
|
-
.border-accent-solid {
|
|
185
|
-
border-color: var(--accent-solid);
|
|
186
|
-
}
|
|
187
|
-
.border-accent\/70 {
|
|
188
|
-
border-color: var(--accent);
|
|
189
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
190
|
-
border-color: color-mix(in oklab, var(--accent) 70%, transparent);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
.border-border-strong\/60 {
|
|
194
|
-
border-color: var(--border-strong);
|
|
195
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
196
|
-
border-color: color-mix(in oklab, var(--border-strong) 60%, transparent);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
.bg-accent\/8 {
|
|
200
|
-
background-color: var(--accent);
|
|
201
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
202
|
-
background-color: color-mix(in oklab, var(--accent) 8%, transparent);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
.bg-accent\/15 {
|
|
206
|
-
background-color: var(--accent);
|
|
207
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
208
|
-
background-color: color-mix(in oklab, var(--accent) 15%, transparent);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
.bg-accent\/40 {
|
|
212
|
-
background-color: var(--accent);
|
|
213
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
214
|
-
background-color: color-mix(in oklab, var(--accent) 40%, transparent);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
.bg-border-strong {
|
|
218
|
-
background-color: var(--border-strong);
|
|
219
|
-
}
|
|
220
|
-
.bg-card-overlay\/85 {
|
|
221
|
-
background-color: var(--card-overlay);
|
|
222
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
223
|
-
background-color: color-mix(in oklab, var(--card-overlay) 85%, transparent);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
.bg-muted\/40 {
|
|
227
|
-
background-color: var(--muted);
|
|
228
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
229
|
-
background-color: color-mix(in oklab, var(--muted) 40%, transparent);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
.bg-muted\/60 {
|
|
233
|
-
background-color: var(--muted);
|
|
234
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
235
|
-
background-color: color-mix(in oklab, var(--muted) 60%, transparent);
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
.bg-success\/8 {
|
|
239
|
-
background-color: var(--success);
|
|
240
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
241
|
-
background-color: color-mix(in oklab, var(--success) 8%, transparent);
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
.pb-0\.5 {
|
|
245
|
-
padding-bottom: calc(var(--spacing) * 0.5);
|
|
246
|
-
}
|
|
247
|
-
.pb-\[max\(env\(safe-area-inset-bottom\,0px\)\,0\.5rem\)\] {
|
|
248
|
-
padding-bottom: max(env(safe-area-inset-bottom,0px), 0.5rem);
|
|
249
|
-
}
|
|
250
|
-
.pl-1 {
|
|
251
|
-
padding-left: var(--spacing);
|
|
252
|
-
}
|
|
253
|
-
.pl-3 {
|
|
254
|
-
padding-left: calc(var(--spacing) * 3);
|
|
255
|
-
}
|
|
256
|
-
.text-xl {
|
|
257
|
-
font-size: var(--text-xl);
|
|
258
|
-
line-height: var(--tw-leading, var(--text-xl--line-height));
|
|
259
|
-
}
|
|
260
|
-
.break-words {
|
|
261
|
-
overflow-wrap: break-word;
|
|
262
|
-
}
|
|
263
|
-
.text-muted-foreground\/60 {
|
|
264
|
-
color: var(--muted-foreground);
|
|
265
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
266
|
-
color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
.text-tone-amber-ink {
|
|
270
|
-
color: var(--tone-amber-ink);
|
|
271
|
-
}
|
|
272
|
-
.text-tone-cyan-ink {
|
|
273
|
-
color: var(--tone-cyan-ink);
|
|
274
|
-
}
|
|
275
|
-
.text-tone-emerald-ink {
|
|
276
|
-
color: var(--tone-emerald-ink);
|
|
277
|
-
}
|
|
278
|
-
.text-tone-orange-ink {
|
|
279
|
-
color: var(--tone-orange-ink);
|
|
280
|
-
}
|
|
281
|
-
.text-tone-purple-ink {
|
|
282
|
-
color: var(--tone-purple-ink);
|
|
283
|
-
}
|
|
284
|
-
.text-tone-rose-ink {
|
|
285
|
-
color: var(--tone-rose-ink);
|
|
286
|
-
}
|
|
287
|
-
.text-tone-sky-ink {
|
|
288
|
-
color: var(--tone-sky-ink);
|
|
289
|
-
}
|
|
290
|
-
.text-tone-slate-ink {
|
|
291
|
-
color: var(--tone-slate-ink);
|
|
292
|
-
}
|
|
293
|
-
.italic {
|
|
294
|
-
font-style: italic;
|
|
295
|
-
}
|
|
296
|
-
.opacity-100 {
|
|
297
|
-
opacity: 100%;
|
|
298
|
-
}
|
|
299
|
-
.ring-1 {
|
|
300
|
-
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
301
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
302
|
-
}
|
|
303
|
-
.ring-4 {
|
|
304
|
-
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
305
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
306
|
-
}
|
|
307
|
-
.ring-accent\/20 {
|
|
308
|
-
--tw-ring-color: var(--accent);
|
|
309
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
310
|
-
--tw-ring-color: color-mix(in oklab, var(--accent) 20%, transparent);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
.ring-accent\/30 {
|
|
314
|
-
--tw-ring-color: var(--accent);
|
|
315
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
316
|
-
--tw-ring-color: color-mix(in oklab, var(--accent) 30%, transparent);
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
.ring-accent\/40 {
|
|
320
|
-
--tw-ring-color: var(--accent);
|
|
321
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
322
|
-
--tw-ring-color: color-mix(in oklab, var(--accent) 40%, transparent);
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
.ring-border {
|
|
326
|
-
--tw-ring-color: var(--border);
|
|
327
|
-
}
|
|
328
|
-
.ring-ring {
|
|
329
|
-
--tw-ring-color: var(--ring);
|
|
330
|
-
}
|
|
331
|
-
.transition-\[opacity\,transform\] {
|
|
332
|
-
transition-property: opacity,transform;
|
|
333
|
-
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
334
|
-
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
335
|
-
}
|
|
336
|
-
.duration-150 {
|
|
337
|
-
--tw-duration: 150ms;
|
|
338
|
-
transition-duration: 150ms;
|
|
339
|
-
}
|
|
340
|
-
.ring-inset {
|
|
341
|
-
--tw-ring-inset: inset;
|
|
342
|
-
}
|
|
343
|
-
.peer-focus\:rounded-lg:is(:where(.peer):focus ~ *) {
|
|
344
|
-
border-radius: 1rem;
|
|
345
|
-
}
|
|
346
|
-
.peer-focus\:ring-2:is(:where(.peer):focus ~ *) {
|
|
347
|
-
--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
|
|
348
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
349
|
-
}
|
|
350
|
-
.peer-focus\:ring-field-ring\/40:is(:where(.peer):focus ~ *) {
|
|
351
|
-
--tw-ring-color: var(--field-ring);
|
|
352
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
353
|
-
--tw-ring-color: color-mix(in oklab, var(--field-ring) 40%, transparent);
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
.peer-focus\:outline-none:is(:where(.peer):focus ~ *) {
|
|
357
|
-
--tw-outline-style: none;
|
|
358
|
-
outline-style: none;
|
|
359
|
-
}
|
|
360
|
-
@media (hover: hover) {
|
|
361
|
-
.hover\:border-border-strong:hover {
|
|
362
|
-
border-color: var(--border-strong);
|
|
363
|
-
}
|
|
364
|
-
.hover\:border-field-ring:hover {
|
|
365
|
-
border-color: var(--field-ring);
|
|
366
|
-
}
|
|
367
|
-
.hover\:bg-card-overlay:hover {
|
|
368
|
-
background-color: var(--card-overlay);
|
|
369
|
-
}
|
|
370
|
-
.hover\:bg-muted-foreground\/10:hover {
|
|
371
|
-
background-color: var(--muted-foreground);
|
|
372
|
-
}
|
|
373
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
374
|
-
.hover\:bg-muted-foreground\/10:hover {
|
|
375
|
-
background-color: color-mix(in oklab, var(--muted-foreground) 10%, transparent);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
.hover\:bg-muted\/80:hover {
|
|
379
|
-
background-color: var(--muted);
|
|
380
|
-
}
|
|
381
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
382
|
-
.hover\:bg-muted\/80:hover {
|
|
383
|
-
background-color: color-mix(in oklab, var(--muted) 80%, transparent);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
.hover\:shadow-popover:hover {
|
|
387
|
-
--tw-shadow: var(--shadow-popover);
|
|
388
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
.data-\[state\=closed\]\:slide-out-to-bottom[data-state="closed"] {
|
|
392
|
-
--tw-exit-translate-y: 100%;
|
|
393
|
-
}
|
|
394
|
-
.data-\[state\=closed\]\:slide-out-to-left[data-state="closed"] {
|
|
395
|
-
--tw-exit-translate-x: -100%;
|
|
396
|
-
}
|
|
397
|
-
.data-\[state\=closed\]\:slide-out-to-right[data-state="closed"] {
|
|
398
|
-
--tw-exit-translate-x: 100%;
|
|
399
|
-
}
|
|
400
|
-
.data-\[state\=open\]\:slide-in-from-bottom[data-state="open"] {
|
|
401
|
-
--tw-enter-translate-y: 100%;
|
|
402
|
-
}
|
|
403
|
-
.data-\[state\=open\]\:slide-in-from-left[data-state="open"] {
|
|
404
|
-
--tw-enter-translate-x: -100%;
|
|
405
|
-
}
|
|
406
|
-
.data-\[state\=open\]\:slide-in-from-right[data-state="open"] {
|
|
407
|
-
--tw-enter-translate-x: 100%;
|
|
408
|
-
}
|
|
409
|
-
@media (width >= 40rem) {
|
|
410
|
-
.sm\:w-56 {
|
|
411
|
-
width: calc(var(--spacing) * 56);
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
@media (pointer: coarse) {
|
|
415
|
-
.pointer-coarse\:h-12 {
|
|
416
|
-
height: calc(var(--spacing) * 12);
|
|
417
|
-
}
|
|
418
|
-
.pointer-coarse\:w-12 {
|
|
419
|
-
width: calc(var(--spacing) * 12);
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
.\[\&_svg\]\:size-3\.5 svg {
|
|
423
|
-
width: calc(var(--spacing) * 3.5);
|
|
424
|
-
height: calc(var(--spacing) * 3.5);
|
|
425
|
-
}
|
|
426
|
-
.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar {
|
|
427
|
-
display: none;
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
@property --tw-translate-x {
|
|
431
|
-
syntax: "*";
|
|
432
|
-
inherits: false;
|
|
433
|
-
initial-value: 0;
|
|
434
|
-
}
|
|
435
|
-
@property --tw-translate-y {
|
|
436
|
-
syntax: "*";
|
|
437
|
-
inherits: false;
|
|
438
|
-
initial-value: 0;
|
|
439
|
-
}
|
|
440
|
-
@property --tw-translate-z {
|
|
441
|
-
syntax: "*";
|
|
442
|
-
inherits: false;
|
|
443
|
-
initial-value: 0;
|
|
444
|
-
}
|
|
445
|
-
@property --tw-border-style {
|
|
446
|
-
syntax: "*";
|
|
447
|
-
inherits: false;
|
|
448
|
-
initial-value: solid;
|
|
449
|
-
}
|
|
450
|
-
@property --tw-shadow {
|
|
451
|
-
syntax: "*";
|
|
452
|
-
inherits: false;
|
|
453
|
-
initial-value: 0 0 #0000;
|
|
454
|
-
}
|
|
455
|
-
@property --tw-shadow-color {
|
|
456
|
-
syntax: "*";
|
|
457
|
-
inherits: false;
|
|
458
|
-
}
|
|
459
|
-
@property --tw-shadow-alpha {
|
|
460
|
-
syntax: "<percentage>";
|
|
461
|
-
inherits: false;
|
|
462
|
-
initial-value: 100%;
|
|
463
|
-
}
|
|
464
|
-
@property --tw-inset-shadow {
|
|
465
|
-
syntax: "*";
|
|
466
|
-
inherits: false;
|
|
467
|
-
initial-value: 0 0 #0000;
|
|
468
|
-
}
|
|
469
|
-
@property --tw-inset-shadow-color {
|
|
470
|
-
syntax: "*";
|
|
471
|
-
inherits: false;
|
|
472
|
-
}
|
|
473
|
-
@property --tw-inset-shadow-alpha {
|
|
474
|
-
syntax: "<percentage>";
|
|
475
|
-
inherits: false;
|
|
476
|
-
initial-value: 100%;
|
|
477
|
-
}
|
|
478
|
-
@property --tw-ring-color {
|
|
479
|
-
syntax: "*";
|
|
480
|
-
inherits: false;
|
|
481
|
-
}
|
|
482
|
-
@property --tw-ring-shadow {
|
|
483
|
-
syntax: "*";
|
|
484
|
-
inherits: false;
|
|
485
|
-
initial-value: 0 0 #0000;
|
|
486
|
-
}
|
|
487
|
-
@property --tw-inset-ring-color {
|
|
488
|
-
syntax: "*";
|
|
489
|
-
inherits: false;
|
|
490
|
-
}
|
|
491
|
-
@property --tw-inset-ring-shadow {
|
|
492
|
-
syntax: "*";
|
|
493
|
-
inherits: false;
|
|
494
|
-
initial-value: 0 0 #0000;
|
|
495
|
-
}
|
|
496
|
-
@property --tw-ring-inset {
|
|
497
|
-
syntax: "*";
|
|
498
|
-
inherits: false;
|
|
499
|
-
}
|
|
500
|
-
@property --tw-ring-offset-width {
|
|
501
|
-
syntax: "<length>";
|
|
502
|
-
inherits: false;
|
|
503
|
-
initial-value: 0px;
|
|
504
|
-
}
|
|
505
|
-
@property --tw-ring-offset-color {
|
|
506
|
-
syntax: "*";
|
|
507
|
-
inherits: false;
|
|
508
|
-
initial-value: #fff;
|
|
509
|
-
}
|
|
510
|
-
@property --tw-ring-offset-shadow {
|
|
511
|
-
syntax: "*";
|
|
512
|
-
inherits: false;
|
|
513
|
-
initial-value: 0 0 #0000;
|
|
514
|
-
}
|
|
515
|
-
@property --tw-duration {
|
|
516
|
-
syntax: "*";
|
|
517
|
-
inherits: false;
|
|
518
|
-
}
|
|
519
|
-
@layer properties {
|
|
520
|
-
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
|
|
521
|
-
*, ::before, ::after, ::backdrop {
|
|
522
|
-
--tw-translate-x: 0;
|
|
523
|
-
--tw-translate-y: 0;
|
|
524
|
-
--tw-translate-z: 0;
|
|
525
|
-
--tw-border-style: solid;
|
|
526
|
-
--tw-shadow: 0 0 #0000;
|
|
527
|
-
--tw-shadow-color: initial;
|
|
528
|
-
--tw-shadow-alpha: 100%;
|
|
529
|
-
--tw-inset-shadow: 0 0 #0000;
|
|
530
|
-
--tw-inset-shadow-color: initial;
|
|
531
|
-
--tw-inset-shadow-alpha: 100%;
|
|
532
|
-
--tw-ring-color: initial;
|
|
533
|
-
--tw-ring-shadow: 0 0 #0000;
|
|
534
|
-
--tw-inset-ring-color: initial;
|
|
535
|
-
--tw-inset-ring-shadow: 0 0 #0000;
|
|
536
|
-
--tw-ring-inset: initial;
|
|
537
|
-
--tw-ring-offset-width: 0px;
|
|
538
|
-
--tw-ring-offset-color: #fff;
|
|
539
|
-
--tw-ring-offset-shadow: 0 0 #0000;
|
|
540
|
-
--tw-duration: initial;
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
}
|
|
27
|
+
@source inline("-my-0.5 [&::-webkit-scrollbar]:hidden [&_svg]:size-3.5 [scrollbar-width:none] bg-accent/15");
|
|
28
|
+
@source inline("bg-accent/40 bg-accent/8 bg-border-strong bg-card-overlay/85 bg-muted/40 bg-muted/60");
|
|
29
|
+
@source inline("bg-success/8 border-0 border-2 border-8 border-accent border-accent-solid border-accent/70");
|
|
30
|
+
@source inline("border-border-strong/60 border-dashed border-l border-r border-solid bottom-6 break-words");
|
|
31
|
+
@source inline("cursor-not-allowed data-[state=closed]:slide-out-to-bottom data-[state=closed]:slide-out-to-left");
|
|
32
|
+
@source inline("data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-bottom");
|
|
33
|
+
@source inline("data-[state=open]:slide-in-from-left data-[state=open]:slide-in-from-right duration-150 flex-row");
|
|
34
|
+
@source inline("h-3.5 h-40 h-[420px] hover:bg-card-overlay hover:bg-muted-foreground/10 hover:bg-muted/80");
|
|
35
|
+
@source inline("hover:border-border-strong hover:border-field-ring hover:shadow-popover italic left-0");
|
|
36
|
+
@source inline("max-h-[40dvh] max-h-[65dvh] max-h-[85dvh] max-h-full min-h min-h-20 min-h-[2.25rem] min-h-[44px]");
|
|
37
|
+
@source inline("min-h-dvh min-h-full min-w-40 min-w-[5rem] opacity-100 pb-0.5");
|
|
38
|
+
@source inline("pb-[max(env(safe-area-inset-bottom,0px),0.5rem)] peer-focus peer-focus:outline-none");
|
|
39
|
+
@source inline("peer-focus:ring-2 peer-focus:ring-field-ring/40 peer-focus:rounded-lg pl-1 pl-3");
|
|
40
|
+
@source inline("pointer-coarse:h-12 pointer-coarse:w-12 resize-none right-4 ring-1 ring-4 ring-accent/20");
|
|
41
|
+
@source inline("ring-accent/30 ring-accent/40 ring-border ring-inset ring-ring rotate-90 rounded-[2.5rem]");
|
|
42
|
+
@source inline("rounded-l-xl rounded-r-xl rounded-t-xl scale-[1.01] self-center self-stretch shrink-[2] sm:w-56");
|
|
43
|
+
@source inline("text-muted-foreground/60 text-tone-amber-ink text-tone-cyan-ink text-tone-emerald-ink");
|
|
44
|
+
@source inline("text-tone-orange-ink text-tone-purple-ink text-tone-rose-ink text-tone-sky-ink");
|
|
45
|
+
@source inline("text-tone-slate-ink text-xl transition-[opacity,transform] translate-y-0 translate-y-2 w-1/2");
|
|
46
|
+
@source inline("w-2/3 w-3.5 w-[352px]");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* cursedbelt — the `workbook-viewer` area. GENERATED BUILD ARTIFACT. Never hand-edit.
|
|
2
|
+
* cursedbelt — the `workbook-viewer` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
|
|
3
3
|
*
|
|
4
4
|
* the lazy XLSX viewer (an optional peer already).
|
|
5
5
|
*
|
|
@@ -13,32 +13,15 @@
|
|
|
13
13
|
* @import "cursedbelt/styles-areas/workbook-viewer.css";
|
|
14
14
|
* @import "cursedbelt/theme.css";
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* These are CANDIDATES (`@source inline`), not CSS: the app's own Tailwind pass generates
|
|
17
|
+
* them, sorted together with the app's utilities, so an area can never put a base utility
|
|
18
|
+
* after an app's responsive variant (task 2124). An app that imports every area gets exactly
|
|
19
|
+
* what `cursedbelt/styles-utilities.css` emits — proved rule by rule in
|
|
20
|
+
* src/stylesAreas.spec.ts, which is also what fails when this file is stale.
|
|
21
|
+
* 7 candidate(s).
|
|
19
22
|
*
|
|
20
23
|
* Written by scripts/generateAreaStyles.ts (`bun run styles:areas`), which
|
|
21
24
|
* `bun run build` runs. The map of what is in which area, and why the areas are
|
|
22
25
|
* import closures rather than a hand-written list, is scripts/styleAreas.ts.
|
|
23
26
|
*/
|
|
24
|
-
|
|
25
|
-
@layer theme, base, components, utilities;
|
|
26
|
-
@layer theme {
|
|
27
|
-
:root, :host {
|
|
28
|
-
--font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', 'Noto Sans', Arial,
|
|
29
|
-
sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
30
|
-
--spacing: 0.25rem;
|
|
31
|
-
--text-sm: 0.875rem;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
@layer utilities {
|
|
35
|
-
.collapse {
|
|
36
|
-
visibility: collapse;
|
|
37
|
-
}
|
|
38
|
-
.w-48 {
|
|
39
|
-
width: calc(var(--spacing) * 48);
|
|
40
|
-
}
|
|
41
|
-
.min-w-16 {
|
|
42
|
-
min-width: calc(var(--spacing) * 16);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
27
|
+
@source inline("--font-sans --text-sm col collapse min-w-16 w w-48");
|
package/src/styles-static.css
CHANGED
|
@@ -186,6 +186,7 @@
|
|
|
186
186
|
DismissableLayer re-enables the tooltip layer with an INLINE `pointer-events:
|
|
187
187
|
auto` — exactly the case (tooltip inside an open modal) this rule exists for. */
|
|
188
188
|
[data-cb-tooltip] {
|
|
189
|
+
/* biome-ignore lint/complexity/noImportantStyles: it must beat Radix's INLINE style, see above */
|
|
189
190
|
pointer-events: none !important;
|
|
190
191
|
}
|
|
191
192
|
|
package/src/styles.css
CHANGED
|
@@ -188,6 +188,7 @@
|
|
|
188
188
|
DismissableLayer re-enables the tooltip layer with an INLINE `pointer-events:
|
|
189
189
|
auto` — exactly the case (tooltip inside an open modal) this rule exists for. */
|
|
190
190
|
[data-cb-tooltip] {
|
|
191
|
+
/* biome-ignore lint/complexity/noImportantStyles: it must beat Radix's INLINE style, see above */
|
|
191
192
|
pointer-events: none !important;
|
|
192
193
|
}
|
|
193
194
|
|
package/src/stylesAreas.spec.ts
CHANGED
|
@@ -41,7 +41,7 @@ import { REPO_ROOT } from '../scripts/generateStaticStyles.js';
|
|
|
41
41
|
import {
|
|
42
42
|
AREAS,
|
|
43
43
|
CORE,
|
|
44
|
-
|
|
44
|
+
MIN_CORE_UTILITIES,
|
|
45
45
|
areaFile,
|
|
46
46
|
areaSubpath,
|
|
47
47
|
readAreaStyles,
|
|
@@ -126,7 +126,9 @@ describe('the per-area stylesheets are generated and gated', () => {
|
|
|
126
126
|
|
|
127
127
|
it('was compiled from a scan that did not collapse', () => {
|
|
128
128
|
const core = areas.find((a) => a.name === CORE);
|
|
129
|
-
|
|
129
|
+
// `candidates` are the UTILITIES written into `@source inline` (5.1.0); the raw scan's own
|
|
130
|
+
// floor (`MIN_CORE_CANDIDATES`) is enforced by the generator before it filters.
|
|
131
|
+
expect(core?.candidates.length ?? 0).toBeGreaterThanOrEqual(MIN_CORE_UTILITIES);
|
|
130
132
|
});
|
|
131
133
|
|
|
132
134
|
it('covers every module under src/react', () => {
|
|
@@ -204,13 +206,16 @@ describe('the per-area stylesheets are generated and gated', () => {
|
|
|
204
206
|
// The negative control for the whole exercise. If `core` grew until it were the
|
|
205
207
|
// union again — one careless root away, since a root's closure is transitive —
|
|
206
208
|
// every assertion above would still pass and no consumer would save a byte.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
+
// Since 5.1.0 an area file is candidates, not CSS, so the comparison is between what an
|
|
210
|
+
// app COMPILES from core and from the union — not between two file sizes.
|
|
211
|
+
const coreOnly = (
|
|
212
|
+
await compileStylesheet(`@import "tailwindcss" source(none);\n@import "./styles-static.css";\n@import "./styles-areas/${CORE}.css";\n@import "./theme.css";\n`)
|
|
213
|
+
).build([]);
|
|
209
214
|
expect(
|
|
210
|
-
|
|
211
|
-
`core
|
|
215
|
+
coreOnly.length,
|
|
216
|
+
`core compiles to ${coreOnly.length} B against a ${union.length} B union — an area map where the\n` +
|
|
212
217
|
'primitives ARE the design system buys nothing. Move whatever grew it into an area.',
|
|
213
|
-
).toBeLessThan(
|
|
218
|
+
).toBeLessThan(union.length * 0.75);
|
|
214
219
|
});
|
|
215
220
|
|
|
216
221
|
it('exports every area as a subpath that resolves into a directory `files` ships', () => {
|