cursedbelt 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/react/emoji/EmojiPicker.d.ts.map +1 -1
  2. package/dist/react/emoji/EmojiPicker.js +49 -8
  3. package/dist/react/emoji/EmojiPicker.js.map +1 -1
  4. package/dist/react/lib/form.d.ts +2 -2
  5. package/dist/react/lib/form.d.ts.map +1 -1
  6. package/dist/react/lib/form.js +4 -41
  7. package/dist/react/lib/form.js.map +1 -1
  8. package/dist/react/lib/zodResolver.d.ts +9 -0
  9. package/dist/react/lib/zodResolver.d.ts.map +1 -0
  10. package/dist/react/lib/zodResolver.js +105 -0
  11. package/dist/react/lib/zodResolver.js.map +1 -0
  12. package/dist/react/media/FocusViewer.d.ts.map +1 -1
  13. package/dist/react/media/FocusViewer.js.map +1 -1
  14. package/dist/react/media/MediaThumb.d.ts.map +1 -1
  15. package/dist/react/media/MediaThumb.js.map +1 -1
  16. package/dist/react/media/VideoTurner.d.ts.map +1 -1
  17. package/dist/react/media/VideoTurner.js.map +1 -1
  18. package/dist/react/media-gallery/GalleryTable.js.map +1 -1
  19. package/dist/react/media-gallery/MediaGallery.d.ts.map +1 -1
  20. package/dist/react/media-gallery/MediaGallery.js.map +1 -1
  21. package/dist/styles-areas/activity-bar.css +8 -11
  22. package/dist/styles-areas/analytics.css +30 -653
  23. package/dist/styles-areas/auth.css +10 -135
  24. package/dist/styles-areas/calendar.css +22 -397
  25. package/dist/styles-areas/chart-table.css +8 -20
  26. package/dist/styles-areas/charts.css +9 -70
  27. package/dist/styles-areas/chat.css +17 -345
  28. package/dist/styles-areas/clipboard.css +7 -7
  29. package/dist/styles-areas/code-editor.css +8 -111
  30. package/dist/styles-areas/companion-link.css +8 -51
  31. package/dist/styles-areas/core.css +131 -2488
  32. package/dist/styles-areas/dashboard-grid.css +10 -65
  33. package/dist/styles-areas/data-table.css +30 -638
  34. package/dist/styles-areas/deep-link.css +7 -7
  35. package/dist/styles-areas/diff-viewer.css +8 -11
  36. package/dist/styles-areas/disk-usage.css +13 -243
  37. package/dist/styles-areas/emoji.css +9 -135
  38. package/dist/styles-areas/fields.css +32 -563
  39. package/dist/styles-areas/file-tree.css +8 -14
  40. package/dist/styles-areas/filter-rail.css +14 -216
  41. package/dist/styles-areas/folder-tree.css +12 -200
  42. package/dist/styles-areas/keep-awake.css +7 -7
  43. package/dist/styles-areas/layout-engine.css +12 -220
  44. package/dist/styles-areas/markdown.css +9 -68
  45. package/dist/styles-areas/master-detail.css +14 -220
  46. package/dist/styles-areas/master-lock.css +9 -113
  47. package/dist/styles-areas/media-gallery.css +15 -332
  48. package/dist/styles-areas/media.css +20 -623
  49. package/dist/styles-areas/nav.css +24 -469
  50. package/dist/styles-areas/notifications.css +12 -226
  51. package/dist/styles-areas/overlays.css +14 -114
  52. package/dist/styles-areas/palette.css +15 -121
  53. package/dist/styles-areas/pdf-viewer.css +8 -28
  54. package/dist/styles-areas/problem-detail.css +9 -78
  55. package/dist/styles-areas/rich-text.css +9 -148
  56. package/dist/styles-areas/sharing.css +13 -134
  57. package/dist/styles-areas/spreadsheet.css +8 -18
  58. package/dist/styles-areas/stats.css +19 -262
  59. package/dist/styles-areas/test-report.css +13 -114
  60. package/dist/styles-areas/virtual.css +8 -11
  61. package/dist/styles-areas/wizard.css +21 -362
  62. package/dist/styles-areas/workbench.css +27 -524
  63. package/dist/styles-areas/workbook-viewer.css +8 -25
  64. package/dist/styles-static.css +1 -0
  65. package/dist/styles.css +1 -0
  66. package/package.json +23 -6
  67. package/scripts/checkAreaStyles.spec.ts +135 -1
  68. package/scripts/checkAreaStyles.ts +207 -6
  69. package/scripts/cssRules.ts +8 -1
  70. package/scripts/gate.ts +1 -1
  71. package/scripts/generateAreaStyles.ts +130 -10
  72. package/scripts/paths.ts +1 -1
  73. package/src/react/components/ActionBar.spec.tsx +1 -0
  74. package/src/react/emoji/EmojiPicker.tsx +70 -19
  75. package/src/react/file-tree/FileTree.tsx +3 -3
  76. package/src/react/lib/form.ts +5 -48
  77. package/src/react/lib/zodResolver.spec.ts +82 -0
  78. package/src/react/lib/zodResolver.ts +136 -0
  79. package/src/react/media/FocusViewer.tsx +1 -0
  80. package/src/react/media/MediaThumb.tsx +0 -1
  81. package/src/react/media/VideoTurner.tsx +0 -1
  82. package/src/react/media-gallery/GalleryTable.tsx +0 -1
  83. package/src/react/media-gallery/MediaGallery.tsx +0 -1
  84. package/src/styles-areas/activity-bar.css +8 -11
  85. package/src/styles-areas/analytics.css +30 -653
  86. package/src/styles-areas/auth.css +10 -135
  87. package/src/styles-areas/calendar.css +22 -397
  88. package/src/styles-areas/chart-table.css +8 -20
  89. package/src/styles-areas/charts.css +9 -70
  90. package/src/styles-areas/chat.css +17 -345
  91. package/src/styles-areas/clipboard.css +7 -7
  92. package/src/styles-areas/code-editor.css +8 -111
  93. package/src/styles-areas/companion-link.css +8 -51
  94. package/src/styles-areas/core.css +131 -2488
  95. package/src/styles-areas/dashboard-grid.css +10 -65
  96. package/src/styles-areas/data-table.css +30 -638
  97. package/src/styles-areas/deep-link.css +7 -7
  98. package/src/styles-areas/diff-viewer.css +8 -11
  99. package/src/styles-areas/disk-usage.css +13 -243
  100. package/src/styles-areas/emoji.css +9 -135
  101. package/src/styles-areas/fields.css +32 -563
  102. package/src/styles-areas/file-tree.css +8 -14
  103. package/src/styles-areas/filter-rail.css +14 -216
  104. package/src/styles-areas/folder-tree.css +12 -200
  105. package/src/styles-areas/keep-awake.css +7 -7
  106. package/src/styles-areas/layout-engine.css +12 -220
  107. package/src/styles-areas/markdown.css +9 -68
  108. package/src/styles-areas/master-detail.css +14 -220
  109. package/src/styles-areas/master-lock.css +9 -113
  110. package/src/styles-areas/media-gallery.css +15 -332
  111. package/src/styles-areas/media.css +20 -623
  112. package/src/styles-areas/nav.css +24 -469
  113. package/src/styles-areas/notifications.css +12 -226
  114. package/src/styles-areas/overlays.css +14 -114
  115. package/src/styles-areas/palette.css +15 -121
  116. package/src/styles-areas/pdf-viewer.css +8 -28
  117. package/src/styles-areas/problem-detail.css +9 -78
  118. package/src/styles-areas/rich-text.css +9 -148
  119. package/src/styles-areas/sharing.css +13 -134
  120. package/src/styles-areas/spreadsheet.css +8 -18
  121. package/src/styles-areas/stats.css +19 -262
  122. package/src/styles-areas/test-report.css +13 -114
  123. package/src/styles-areas/virtual.css +8 -11
  124. package/src/styles-areas/wizard.css +21 -362
  125. package/src/styles-areas/workbench.css +27 -524
  126. package/src/styles-areas/workbook-viewer.css +8 -25
  127. package/src/styles-static.css +1 -0
  128. package/src/styles.css +1 -0
  129. package/src/stylesAreas.spec.ts +12 -7
  130. package/src/unpeeredStaysOffTheBarrel.spec.ts +99 -0
@@ -1,5 +1,5 @@
1
1
  /*
2
- * cursedbelt — the `charts` area. GENERATED BUILD ARTIFACT. Never hand-edit.
2
+ * cursedbelt — the `charts` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
3
3
  *
4
4
  * the recharts wrappers — an app with no dashboard renders none of them.
5
5
  *
@@ -13,77 +13,16 @@
13
13
  * @import "cursedbelt/styles-areas/charts.css";
14
14
  * @import "cursedbelt/theme.css";
15
15
  *
16
- * An app that imports every area gets exactly what `cursedbelt/styles-utilities.css`
17
- * emits — proved rule by rule in src/stylesAreas.spec.ts, which is also what fails
18
- * when this file is stale. 462 candidate(s) scanned.
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
+ * 19 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
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
25
- @layer theme, base, components, utilities;
26
- @layer theme {
27
- :root, :host {
28
- --spacing: 0.25rem;
29
- }
30
- }
31
- @layer utilities {
32
- .collapse {
33
- visibility: collapse;
34
- }
35
- .top-0\.5 {
36
- top: calc(var(--spacing) * 0.5);
37
- }
38
- .right-1 {
39
- right: var(--spacing);
40
- }
41
- .ml-2 {
42
- margin-left: calc(var(--spacing) * 2);
43
- }
44
- .w-2 {
45
- width: calc(var(--spacing) * 2);
46
- }
47
- .w-3 {
48
- width: calc(var(--spacing) * 3);
49
- }
50
- .list-none {
51
- list-style-type: none;
52
- }
53
- .gap-\[2px\] {
54
- gap: 2px;
55
- }
56
- .gap-x-4 {
57
- column-gap: calc(var(--spacing) * 4);
58
- }
59
- .rounded-\[2px\] {
60
- border-radius: 2px;
61
- }
62
- .rounded-\[3px\] {
63
- border-radius: 3px;
64
- }
65
- .border-dashed {
66
- --tw-border-style: dashed;
67
- border-style: dashed;
68
- }
69
- .pr-2 {
70
- padding-right: calc(var(--spacing) * 2);
71
- }
72
- .pl-3 {
73
- padding-left: calc(var(--spacing) * 3);
74
- }
75
- .text-right {
76
- text-align: right;
77
- }
78
- .text-warning {
79
- color: var(--warning);
80
- }
81
- .opacity-25 {
82
- opacity: 25%;
83
- }
84
- @media (hover: hover) {
85
- .hover\:opacity-80:hover {
86
- opacity: 80%;
87
- }
88
- }
89
- }
27
+ @source inline("border-dashed collapse gap-[2px] gap-x-4 hover:opacity-80 list-none ml-2 opacity-25 pl-3 pr-2");
28
+ @source inline("right-1 rounded-[2px] rounded-[3px] text-right text-warning top-0.5 w w-2 w-3");
@@ -1,5 +1,5 @@
1
1
  /*
2
- * cursedbelt — the `chat` area. GENERATED BUILD ARTIFACT. Never hand-edit.
2
+ * cursedbelt — the `chat` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
3
3
  *
4
4
  * the chat transcript, composer and message list.
5
5
  *
@@ -13,352 +13,24 @@
13
13
  * @import "cursedbelt/styles-areas/chat.css";
14
14
  * @import "cursedbelt/theme.css";
15
15
  *
16
- * An app that imports every area gets exactly what `cursedbelt/styles-utilities.css`
17
- * emits — proved rule by rule in src/stylesAreas.spec.ts, which is also what fails
18
- * when this file is stale. 388 candidate(s) scanned.
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
+ * 71 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
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
25
- @layer properties;
26
- @layer theme, base, components, utilities;
27
- @layer theme {
28
- :root, :host {
29
- --color-black: #000;
30
- --color-white: #fff;
31
- --spacing: 0.25rem;
32
- --text-xl: 1.25rem;
33
- --text-xl--line-height: calc(1.75 / 1.25);
34
- --leading-tight: 1.25;
35
- --radius-2xl: 1rem;
36
- --animate-bounce: bounce 1s infinite;
37
- }
38
- }
39
- @layer utilities {
40
- .collapse {
41
- visibility: collapse;
42
- }
43
- .top-1 {
44
- top: var(--spacing);
45
- }
46
- .-right-0\.5 {
47
- right: calc(var(--spacing) * -0.5);
48
- }
49
- .right-1 {
50
- right: var(--spacing);
51
- }
52
- .-bottom-0\.5 {
53
- bottom: calc(var(--spacing) * -0.5);
54
- }
55
- .bottom-3 {
56
- bottom: calc(var(--spacing) * 3);
57
- }
58
- .z-\[9\] {
59
- z-index: 9;
60
- }
61
- .-mx-0\.5 {
62
- margin-inline: calc(var(--spacing) * -0.5);
63
- }
64
- .ml-0\.5 {
65
- margin-left: calc(var(--spacing) * 0.5);
66
- }
67
- .ml-1\.5 {
68
- margin-left: calc(var(--spacing) * 1.5);
69
- }
70
- .h-3\.5 {
71
- height: calc(var(--spacing) * 3.5);
72
- }
73
- .h-\[420px\] {
74
- height: 420px;
75
- }
76
- .min-h-20 {
77
- min-height: calc(var(--spacing) * 20);
78
- }
79
- .min-h-\[44px\] {
80
- min-height: 44px;
81
- }
82
- .w-1\.5 {
83
- width: calc(var(--spacing) * 1.5);
84
- }
85
- .w-3 {
86
- width: calc(var(--spacing) * 3);
87
- }
88
- .w-3\.5 {
89
- width: calc(var(--spacing) * 3.5);
90
- }
91
- .w-40 {
92
- width: calc(var(--spacing) * 40);
93
- }
94
- .w-48 {
95
- width: calc(var(--spacing) * 48);
96
- }
97
- .w-56 {
98
- width: calc(var(--spacing) * 56);
99
- }
100
- .w-\[352px\] {
101
- width: 352px;
102
- }
103
- .max-w-\[80\%\] {
104
- max-width: 80%;
105
- }
106
- .min-w-16 {
107
- min-width: calc(var(--spacing) * 16);
108
- }
109
- .flex-shrink {
110
- flex-shrink: 1;
111
- }
112
- .animate-bounce {
113
- animation: var(--animate-bounce);
114
- }
115
- .resize-none {
116
- resize: none;
117
- }
118
- .list-decimal {
119
- list-style-type: decimal;
120
- }
121
- .list-disc {
122
- list-style-type: disc;
123
- }
124
- .flex-row {
125
- flex-direction: row;
126
- }
127
- .flex-row-reverse {
128
- flex-direction: row-reverse;
129
- }
130
- :where(.-space-x-2 > :not(:last-child)) {
131
- --tw-space-x-reverse: 0;
132
- margin-inline-start: calc(calc(var(--spacing) * -2) * var(--tw-space-x-reverse));
133
- margin-inline-end: calc(calc(var(--spacing) * -2) * calc(1 - var(--tw-space-x-reverse)));
134
- }
135
- .rounded-2xl {
136
- border-radius: var(--radius-2xl);
137
- }
138
- .rounded-br-md {
139
- border-bottom-right-radius: 0.5rem;
140
- }
141
- .rounded-br-sm {
142
- border-bottom-right-radius: 0.375rem;
143
- }
144
- .rounded-bl-md {
145
- border-bottom-left-radius: 0.5rem;
146
- }
147
- .rounded-bl-sm {
148
- border-bottom-left-radius: 0.375rem;
149
- }
150
- .border-accent {
151
- border-color: var(--accent);
152
- }
153
- .border-border\/40 {
154
- border-color: var(--border);
155
- @supports (color: color-mix(in lab, red, red)) {
156
- border-color: color-mix(in oklab, var(--border) 40%, transparent);
157
- }
158
- }
159
- .bg-background\/30 {
160
- background-color: var(--background);
161
- @supports (color: color-mix(in lab, red, red)) {
162
- background-color: color-mix(in oklab, var(--background) 30%, transparent);
163
- }
164
- }
165
- .bg-black\/10 {
166
- background-color: color-mix(in srgb, #000 10%, transparent);
167
- @supports (color: color-mix(in lab, red, red)) {
168
- background-color: color-mix(in oklab, var(--color-black) 10%, transparent);
169
- }
170
- }
171
- .bg-gradient-to-t {
172
- --tw-gradient-position: to top in oklab;
173
- background-image: linear-gradient(var(--tw-gradient-stops));
174
- }
175
- .from-surface {
176
- --tw-gradient-from: var(--surface);
177
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
178
- }
179
- .to-transparent {
180
- --tw-gradient-to: transparent;
181
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
182
- }
183
- .px-0\.5 {
184
- padding-inline: calc(var(--spacing) * 0.5);
185
- }
186
- .px-3\.5 {
187
- padding-inline: calc(var(--spacing) * 3.5);
188
- }
189
- .pt-0\.5 {
190
- padding-top: calc(var(--spacing) * 0.5);
191
- }
192
- .pr-9 {
193
- padding-right: calc(var(--spacing) * 9);
194
- }
195
- .pl-5 {
196
- padding-left: calc(var(--spacing) * 5);
197
- }
198
- .text-right {
199
- text-align: right;
200
- }
201
- .text-xl {
202
- font-size: var(--text-xl);
203
- line-height: var(--tw-leading, var(--text-xl--line-height));
204
- }
205
- .text-\[0\.9em\] {
206
- font-size: 0.9em;
207
- }
208
- .text-\[0\.85em\] {
209
- font-size: 0.85em;
210
- }
211
- .leading-tight {
212
- --tw-leading: var(--leading-tight);
213
- line-height: var(--leading-tight);
214
- }
215
- .break-words {
216
- overflow-wrap: break-word;
217
- }
218
- .italic {
219
- font-style: italic;
220
- }
221
- .underline-offset-2 {
222
- text-underline-offset: 2px;
223
- }
224
- .outline-2 {
225
- outline-style: var(--tw-outline-style);
226
- outline-width: 2px;
227
- }
228
- .-outline-offset-2 {
229
- outline-offset: calc(2px * -1);
230
- }
231
- .outline-accent {
232
- outline-color: var(--accent);
233
- }
234
- .outline-dashed {
235
- --tw-outline-style: dashed;
236
- outline-style: dashed;
237
- }
238
- .first\:mt-0:first-child {
239
- margin-top: 0px;
240
- }
241
- @media (hover: hover) {
242
- .hover\:border-border-strong:hover {
243
- border-color: var(--border-strong);
244
- }
245
- .hover\:border-field-ring:hover {
246
- border-color: var(--field-ring);
247
- }
248
- .hover\:bg-background\/50:hover {
249
- background-color: var(--background);
250
- }
251
- @supports (color: color-mix(in lab, red, red)) {
252
- .hover\:bg-background\/50:hover {
253
- background-color: color-mix(in oklab, var(--background) 50%, transparent);
254
- }
255
- }
256
- .hover\:opacity-80:hover {
257
- opacity: 80%;
258
- }
259
- }
260
- .focus-visible\:outline-2:focus-visible {
261
- outline-style: var(--tw-outline-style);
262
- outline-width: 2px;
263
- }
264
- .focus-visible\:outline-offset-2:focus-visible {
265
- outline-offset: 2px;
266
- }
267
- .focus-visible\:outline-ring:focus-visible {
268
- outline-color: var(--ring);
269
- }
270
- .dark\:bg-white\/10:where(.dark, .dark *) {
271
- background-color: color-mix(in srgb, #fff 10%, transparent);
272
- @supports (color: color-mix(in lab, red, red)) {
273
- background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
274
- }
275
- }
276
- .\[\&_svg\]\:size-3 svg {
277
- width: calc(var(--spacing) * 3);
278
- height: calc(var(--spacing) * 3);
279
- }
280
- }
281
- @property --tw-space-x-reverse {
282
- syntax: "*";
283
- inherits: false;
284
- initial-value: 0;
285
- }
286
- @property --tw-gradient-position {
287
- syntax: "*";
288
- inherits: false;
289
- }
290
- @property --tw-gradient-from {
291
- syntax: "<color>";
292
- inherits: false;
293
- initial-value: #0000;
294
- }
295
- @property --tw-gradient-via {
296
- syntax: "<color>";
297
- inherits: false;
298
- initial-value: #0000;
299
- }
300
- @property --tw-gradient-to {
301
- syntax: "<color>";
302
- inherits: false;
303
- initial-value: #0000;
304
- }
305
- @property --tw-gradient-stops {
306
- syntax: "*";
307
- inherits: false;
308
- }
309
- @property --tw-gradient-via-stops {
310
- syntax: "*";
311
- inherits: false;
312
- }
313
- @property --tw-gradient-from-position {
314
- syntax: "<length-percentage>";
315
- inherits: false;
316
- initial-value: 0%;
317
- }
318
- @property --tw-gradient-via-position {
319
- syntax: "<length-percentage>";
320
- inherits: false;
321
- initial-value: 50%;
322
- }
323
- @property --tw-gradient-to-position {
324
- syntax: "<length-percentage>";
325
- inherits: false;
326
- initial-value: 100%;
327
- }
328
- @property --tw-leading {
329
- syntax: "*";
330
- inherits: false;
331
- }
332
- @property --tw-outline-style {
333
- syntax: "*";
334
- inherits: false;
335
- initial-value: solid;
336
- }
337
- @keyframes bounce {
338
- 0%, 100% {
339
- transform: translateY(-25%);
340
- animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
341
- }
342
- 50% {
343
- transform: none;
344
- animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
345
- }
346
- }
347
- @layer properties {
348
- @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
349
- *, ::before, ::after, ::backdrop {
350
- --tw-space-x-reverse: 0;
351
- --tw-gradient-position: initial;
352
- --tw-gradient-from: #0000;
353
- --tw-gradient-via: #0000;
354
- --tw-gradient-to: #0000;
355
- --tw-gradient-stops: initial;
356
- --tw-gradient-via-stops: initial;
357
- --tw-gradient-from-position: 0%;
358
- --tw-gradient-via-position: 50%;
359
- --tw-gradient-to-position: 100%;
360
- --tw-leading: initial;
361
- --tw-outline-style: solid;
362
- }
363
- }
364
- }
27
+ @source inline("-bottom-0.5 -mx-0.5 -outline-offset-2 -right-0.5 -space-x-2 [&_svg]:size-3 animate-bounce");
28
+ @source inline("bg-background/30 bg-black/10 bg-gradient-to-t border-accent border-border/40 bottom-3");
29
+ @source inline("break-words col collapse dark:bg-white/10 first:mt-0 flex-row flex-row-reverse flex-shrink");
30
+ @source inline("focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring from-surface");
31
+ @source inline("h-3.5 h-[420px] hover:bg-background/50 hover:border-border-strong hover:border-field-ring");
32
+ @source inline("hover:opacity-80 italic leading-tight list-decimal list-disc max-w-[80%] min-h-20 min-h-[44px]");
33
+ @source inline("min-w-16 ml-0.5 ml-1.5 outline-2 outline-accent outline-dashed pl-5 pr-9 pt-0.5 px-0.5 px-3.5");
34
+ @source inline("resize-none right-1 rounded-2xl rounded-bl-md rounded-bl-sm rounded-br-md rounded-br-sm");
35
+ @source inline("text-[0.85em] text-[0.9em] text-right text-xl to-transparent top-1 underline-offset-2 w-1.5 w-3");
36
+ @source inline("w-3.5 w-40 w-48 w-56 w-[352px] z-[9]");
@@ -1,5 +1,5 @@
1
1
  /*
2
- * cursedbelt — the `clipboard` area. GENERATED BUILD ARTIFACT. Never hand-edit.
2
+ * cursedbelt — the `clipboard` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
3
3
  *
4
4
  * the clipboard-paste surfaces.
5
5
  *
@@ -13,14 +13,14 @@
13
13
  * @import "cursedbelt/styles-areas/clipboard.css";
14
14
  * @import "cursedbelt/theme.css";
15
15
  *
16
- * An app that imports every area gets exactly what `cursedbelt/styles-utilities.css`
17
- * emits — proved rule by rule in src/stylesAreas.spec.ts, which is also what fails
18
- * when this file is stale. 110 candidate(s) scanned.
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
+ * 0 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
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
25
- @layer theme, base, components, utilities;
26
- @layer utilities;
@@ -1,5 +1,5 @@
1
1
  /*
2
- * cursedbelt — the `code-editor` area. GENERATED BUILD ARTIFACT. Never hand-edit.
2
+ * cursedbelt — the `code-editor` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
3
3
  *
4
4
  * the CodeMirror host and its chrome (an optional peer already).
5
5
  *
@@ -13,118 +13,15 @@
13
13
  * @import "cursedbelt/styles-areas/code-editor.css";
14
14
  * @import "cursedbelt/theme.css";
15
15
  *
16
- * An app that imports every area gets exactly what `cursedbelt/styles-utilities.css`
17
- * emits — proved rule by rule in src/stylesAreas.spec.ts, which is also what fails
18
- * when this file is stale. 262 candidate(s) scanned.
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
+ * 6 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
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
25
- @layer properties;
26
- @layer theme, base, components, utilities;
27
- @layer utilities {
28
- .italic {
29
- font-style: italic;
30
- }
31
- .line-through {
32
- text-decoration-line: line-through;
33
- }
34
- .focus-within\:ring-2:focus-within {
35
- --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
36
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
37
- }
38
- .focus-within\:ring-ring:focus-within {
39
- --tw-ring-color: var(--ring);
40
- }
41
- .focus-within\:ring-offset-0:focus-within {
42
- --tw-ring-offset-width: 0px;
43
- --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
44
- }
45
- }
46
- @property --tw-shadow {
47
- syntax: "*";
48
- inherits: false;
49
- initial-value: 0 0 #0000;
50
- }
51
- @property --tw-shadow-color {
52
- syntax: "*";
53
- inherits: false;
54
- }
55
- @property --tw-shadow-alpha {
56
- syntax: "<percentage>";
57
- inherits: false;
58
- initial-value: 100%;
59
- }
60
- @property --tw-inset-shadow {
61
- syntax: "*";
62
- inherits: false;
63
- initial-value: 0 0 #0000;
64
- }
65
- @property --tw-inset-shadow-color {
66
- syntax: "*";
67
- inherits: false;
68
- }
69
- @property --tw-inset-shadow-alpha {
70
- syntax: "<percentage>";
71
- inherits: false;
72
- initial-value: 100%;
73
- }
74
- @property --tw-ring-color {
75
- syntax: "*";
76
- inherits: false;
77
- }
78
- @property --tw-ring-shadow {
79
- syntax: "*";
80
- inherits: false;
81
- initial-value: 0 0 #0000;
82
- }
83
- @property --tw-inset-ring-color {
84
- syntax: "*";
85
- inherits: false;
86
- }
87
- @property --tw-inset-ring-shadow {
88
- syntax: "*";
89
- inherits: false;
90
- initial-value: 0 0 #0000;
91
- }
92
- @property --tw-ring-inset {
93
- syntax: "*";
94
- inherits: false;
95
- }
96
- @property --tw-ring-offset-width {
97
- syntax: "<length>";
98
- inherits: false;
99
- initial-value: 0px;
100
- }
101
- @property --tw-ring-offset-color {
102
- syntax: "*";
103
- inherits: false;
104
- initial-value: #fff;
105
- }
106
- @property --tw-ring-offset-shadow {
107
- syntax: "*";
108
- inherits: false;
109
- initial-value: 0 0 #0000;
110
- }
111
- @layer properties {
112
- @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
113
- *, ::before, ::after, ::backdrop {
114
- --tw-shadow: 0 0 #0000;
115
- --tw-shadow-color: initial;
116
- --tw-shadow-alpha: 100%;
117
- --tw-inset-shadow: 0 0 #0000;
118
- --tw-inset-shadow-color: initial;
119
- --tw-inset-shadow-alpha: 100%;
120
- --tw-ring-color: initial;
121
- --tw-ring-shadow: 0 0 #0000;
122
- --tw-inset-ring-color: initial;
123
- --tw-inset-ring-shadow: 0 0 #0000;
124
- --tw-ring-inset: initial;
125
- --tw-ring-offset-width: 0px;
126
- --tw-ring-offset-color: #fff;
127
- --tw-ring-offset-shadow: 0 0 #0000;
128
- }
129
- }
130
- }
27
+ @source inline("focus-within:ring-2 focus-within:ring-offset-0 focus-within:ring-ring italic li line-through");
@@ -1,5 +1,5 @@
1
1
  /*
2
- * cursedbelt — the `companion-link` area. GENERATED BUILD ARTIFACT. Never hand-edit.
2
+ * cursedbelt — the `companion-link` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
3
3
  *
4
4
  * the companion-device pairing flow.
5
5
  *
@@ -13,58 +13,15 @@
13
13
  * @import "cursedbelt/styles-areas/companion-link.css";
14
14
  * @import "cursedbelt/theme.css";
15
15
  *
16
- * An app that imports every area gets exactly what `cursedbelt/styles-utilities.css`
17
- * emits — proved rule by rule in src/stylesAreas.spec.ts, which is also what fails
18
- * when this file is stale. 149 candidate(s) scanned.
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
+ * 5 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
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
25
- @layer properties;
26
- @layer theme, base, components, utilities;
27
- @layer theme {
28
- :root, :host {
29
- --spacing: 0.25rem;
30
- }
31
- }
32
- @layer utilities {
33
- .h-5 {
34
- height: calc(var(--spacing) * 5);
35
- }
36
- .list-none {
37
- list-style-type: none;
38
- }
39
- .gap-x-4 {
40
- column-gap: calc(var(--spacing) * 4);
41
- }
42
- :where(.divide-y-0 > :not(:last-child)) {
43
- --tw-divide-y-reverse: 0;
44
- border-bottom-style: var(--tw-border-style);
45
- border-top-style: var(--tw-border-style);
46
- border-top-width: calc(0px * var(--tw-divide-y-reverse));
47
- border-bottom-width: calc(0px * calc(1 - var(--tw-divide-y-reverse)));
48
- }
49
- .text-right {
50
- text-align: right;
51
- }
52
- }
53
- @property --tw-divide-y-reverse {
54
- syntax: "*";
55
- inherits: false;
56
- initial-value: 0;
57
- }
58
- @property --tw-border-style {
59
- syntax: "*";
60
- inherits: false;
61
- initial-value: solid;
62
- }
63
- @layer properties {
64
- @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
65
- *, ::before, ::after, ::backdrop {
66
- --tw-divide-y-reverse: 0;
67
- --tw-border-style: solid;
68
- }
69
- }
70
- }
27
+ @source inline("divide-y-0 gap-x-4 h-5 list-none text-right");