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 `auth` area. GENERATED BUILD ARTIFACT. Never hand-edit.
2
+ * cursedbelt — the `auth` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
3
3
  *
4
4
  * the sign-in / register surfaces and the aurora front door — one screen, and never in the app shell.
5
5
  *
@@ -13,142 +13,17 @@
13
13
  * @import "cursedbelt/styles-areas/auth.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. 303 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
+ * 11 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-12 {
34
- height: calc(var(--spacing) * 12);
35
- }
36
- .min-h-dvh {
37
- min-height: 100dvh;
38
- }
39
- .self-start {
40
- align-self: flex-start;
41
- }
42
- .self-stretch {
43
- align-self: stretch;
44
- }
45
- .caret-transparent {
46
- caret-color: transparent;
47
- }
48
- .focus-within\:border-field-ring:focus-within {
49
- border-color: var(--field-ring);
50
- }
51
- .focus-within\:ring-2:focus-within {
52
- --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
53
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
54
- }
55
- .focus-within\:ring-field-ring\/30:focus-within {
56
- --tw-ring-color: var(--field-ring);
57
- @supports (color: color-mix(in lab, red, red)) {
58
- --tw-ring-color: color-mix(in oklab, var(--field-ring) 30%, transparent);
59
- }
60
- }
61
- .has-\[\[aria-invalid\=true\]\]\:border-field-error:has(:is([aria-invalid=true])) {
62
- border-color: var(--field-error);
63
- }
64
- @media (width >= 40rem) {
65
- .sm\:w-11 {
66
- width: calc(var(--spacing) * 11);
67
- }
68
- }
69
- }
70
- @property --tw-shadow {
71
- syntax: "*";
72
- inherits: false;
73
- initial-value: 0 0 #0000;
74
- }
75
- @property --tw-shadow-color {
76
- syntax: "*";
77
- inherits: false;
78
- }
79
- @property --tw-shadow-alpha {
80
- syntax: "<percentage>";
81
- inherits: false;
82
- initial-value: 100%;
83
- }
84
- @property --tw-inset-shadow {
85
- syntax: "*";
86
- inherits: false;
87
- initial-value: 0 0 #0000;
88
- }
89
- @property --tw-inset-shadow-color {
90
- syntax: "*";
91
- inherits: false;
92
- }
93
- @property --tw-inset-shadow-alpha {
94
- syntax: "<percentage>";
95
- inherits: false;
96
- initial-value: 100%;
97
- }
98
- @property --tw-ring-color {
99
- syntax: "*";
100
- inherits: false;
101
- }
102
- @property --tw-ring-shadow {
103
- syntax: "*";
104
- inherits: false;
105
- initial-value: 0 0 #0000;
106
- }
107
- @property --tw-inset-ring-color {
108
- syntax: "*";
109
- inherits: false;
110
- }
111
- @property --tw-inset-ring-shadow {
112
- syntax: "*";
113
- inherits: false;
114
- initial-value: 0 0 #0000;
115
- }
116
- @property --tw-ring-inset {
117
- syntax: "*";
118
- inherits: false;
119
- }
120
- @property --tw-ring-offset-width {
121
- syntax: "<length>";
122
- inherits: false;
123
- initial-value: 0px;
124
- }
125
- @property --tw-ring-offset-color {
126
- syntax: "*";
127
- inherits: false;
128
- initial-value: #fff;
129
- }
130
- @property --tw-ring-offset-shadow {
131
- syntax: "*";
132
- inherits: false;
133
- initial-value: 0 0 #0000;
134
- }
135
- @layer properties {
136
- @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
137
- *, ::before, ::after, ::backdrop {
138
- --tw-shadow: 0 0 #0000;
139
- --tw-shadow-color: initial;
140
- --tw-shadow-alpha: 100%;
141
- --tw-inset-shadow: 0 0 #0000;
142
- --tw-inset-shadow-color: initial;
143
- --tw-inset-shadow-alpha: 100%;
144
- --tw-ring-color: initial;
145
- --tw-ring-shadow: 0 0 #0000;
146
- --tw-inset-ring-color: initial;
147
- --tw-inset-ring-shadow: 0 0 #0000;
148
- --tw-ring-inset: initial;
149
- --tw-ring-offset-width: 0px;
150
- --tw-ring-offset-color: #fff;
151
- --tw-ring-offset-shadow: 0 0 #0000;
152
- }
153
- }
154
- }
27
+ @source inline("caret-transparent com focus-within:border-field-ring focus-within:ring-2");
28
+ @source inline("focus-within:ring-field-ring/30 h-12 has-[[aria-invalid=true]]:border-field-error min-h-dvh");
29
+ @source inline("self-start self-stretch sm:w-11");
@@ -1,5 +1,5 @@
1
1
  /*
2
- * cursedbelt — the `calendar` area. GENERATED BUILD ARTIFACT. Never hand-edit.
2
+ * cursedbelt — the `calendar` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
3
3
  *
4
4
  * the date-picker family: a calendar grid is a whole layout nothing else shares.
5
5
  *
@@ -13,404 +13,29 @@
13
13
  * @import "cursedbelt/styles-areas/calendar.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. 203 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
+ * 84 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-amber-100: oklch(96.2% 0.059 95.617);
30
- --color-amber-200: oklch(92.4% 0.12 95.746);
31
- --color-amber-500: oklch(76.9% 0.188 70.08);
32
- --color-amber-900: oklch(41.4% 0.112 45.904);
33
- --color-green-100: oklch(96.2% 0.044 156.743);
34
- --color-green-200: oklch(92.5% 0.084 155.995);
35
- --color-green-500: oklch(72.3% 0.219 149.579);
36
- --color-green-800: oklch(44.8% 0.119 151.328);
37
- --color-green-900: oklch(39.3% 0.095 152.535);
38
- --color-emerald-200: oklch(90.5% 0.093 164.15);
39
- --color-emerald-500: oklch(69.6% 0.17 162.48);
40
- --color-emerald-800: oklch(43.2% 0.095 166.913);
41
- --color-emerald-900: oklch(37.8% 0.077 168.94);
42
- --color-teal-100: oklch(95.3% 0.051 180.801);
43
- --color-teal-200: oklch(91% 0.096 180.426);
44
- --color-teal-500: oklch(70.4% 0.14 182.503);
45
- --color-teal-800: oklch(43.7% 0.078 188.216);
46
- --color-teal-900: oklch(38.6% 0.063 188.416);
47
- --color-sky-100: oklch(95.1% 0.026 236.824);
48
- --color-sky-200: oklch(90.1% 0.058 230.902);
49
- --color-sky-500: oklch(68.5% 0.169 237.323);
50
- --color-sky-800: oklch(44.3% 0.11 240.79);
51
- --color-sky-900: oklch(39.1% 0.09 240.876);
52
- --color-blue-100: oklch(93.2% 0.032 255.585);
53
- --color-blue-200: oklch(88.2% 0.059 254.128);
54
- --color-blue-500: oklch(62.3% 0.214 259.815);
55
- --color-blue-800: oklch(42.4% 0.199 265.638);
56
- --color-blue-900: oklch(37.9% 0.146 265.522);
57
- --color-violet-100: oklch(94.3% 0.029 294.588);
58
- --color-violet-200: oklch(89.4% 0.057 293.283);
59
- --color-violet-500: oklch(60.6% 0.25 292.717);
60
- --color-violet-800: oklch(43.2% 0.232 292.759);
61
- --color-violet-900: oklch(38% 0.189 293.745);
62
- --color-purple-100: oklch(94.6% 0.033 307.174);
63
- --color-purple-200: oklch(90.2% 0.063 306.703);
64
- --color-purple-500: oklch(62.7% 0.265 303.9);
65
- --color-purple-800: oklch(43.8% 0.218 303.724);
66
- --color-purple-900: oklch(38.1% 0.176 304.987);
67
- --color-rose-100: oklch(94.1% 0.03 12.58);
68
- --color-rose-200: oklch(89.2% 0.058 10.001);
69
- --color-rose-500: oklch(64.5% 0.246 16.439);
70
- --color-rose-800: oklch(45.5% 0.188 13.697);
71
- --color-rose-900: oklch(41% 0.159 10.272);
72
- --color-slate-200: oklch(92.9% 0.013 255.508);
73
- --color-slate-500: oklch(55.4% 0.046 257.417);
74
- --color-slate-800: oklch(27.9% 0.041 260.031);
75
- --spacing: 0.25rem;
76
- --text-xs: 0.75rem;
77
- --text-xs--line-height: calc(1 / 0.75);
78
- --leading-tight: 1.25;
79
- }
80
- }
81
- @layer utilities {
82
- .collapse {
83
- visibility: collapse;
84
- }
85
- .h-3\.5 {
86
- height: calc(var(--spacing) * 3.5);
87
- }
88
- .min-h-\[7rem\] {
89
- min-height: 7rem;
90
- }
91
- .min-h-\[10rem\] {
92
- min-height: 10rem;
93
- }
94
- .min-h-\[44px\] {
95
- min-height: 44px;
96
- }
97
- .w-3\.5 {
98
- width: calc(var(--spacing) * 3.5);
99
- }
100
- .min-w-\[44px\] {
101
- min-width: 44px;
102
- }
103
- .grid-cols-\[repeat\(7\,minmax\(0\,1fr\)\)\] {
104
- grid-template-columns: repeat(7,minmax(0,1fr));
105
- }
106
- .justify-start {
107
- justify-content: flex-start;
108
- }
109
- .border-0 {
110
- border-style: var(--tw-border-style);
111
- border-width: 0px;
112
- }
113
- .border-r {
114
- border-right-style: var(--tw-border-style);
115
- border-right-width: 1px;
116
- }
117
- .border-border\/40 {
118
- border-color: var(--border);
119
- @supports (color: color-mix(in lab, red, red)) {
120
- border-color: color-mix(in oklab, var(--border) 40%, transparent);
121
- }
122
- }
123
- .bg-amber-100 {
124
- background-color: var(--color-amber-100);
125
- }
126
- .bg-amber-500 {
127
- background-color: var(--color-amber-500);
128
- }
129
- .bg-blue-100 {
130
- background-color: var(--color-blue-100);
131
- }
132
- .bg-blue-500 {
133
- background-color: var(--color-blue-500);
134
- }
135
- .bg-emerald-500 {
136
- background-color: var(--color-emerald-500);
137
- }
138
- .bg-green-100 {
139
- background-color: var(--color-green-100);
140
- }
141
- .bg-green-500 {
142
- background-color: var(--color-green-500);
143
- }
144
- .bg-muted\/40 {
145
- background-color: var(--muted);
146
- @supports (color: color-mix(in lab, red, red)) {
147
- background-color: color-mix(in oklab, var(--muted) 40%, transparent);
148
- }
149
- }
150
- .bg-muted\/60 {
151
- background-color: var(--muted);
152
- @supports (color: color-mix(in lab, red, red)) {
153
- background-color: color-mix(in oklab, var(--muted) 60%, transparent);
154
- }
155
- }
156
- .bg-purple-100 {
157
- background-color: var(--color-purple-100);
158
- }
159
- .bg-purple-500 {
160
- background-color: var(--color-purple-500);
161
- }
162
- .bg-rose-100 {
163
- background-color: var(--color-rose-100);
164
- }
165
- .bg-rose-500 {
166
- background-color: var(--color-rose-500);
167
- }
168
- .bg-sky-100 {
169
- background-color: var(--color-sky-100);
170
- }
171
- .bg-sky-500 {
172
- background-color: var(--color-sky-500);
173
- }
174
- .bg-slate-200 {
175
- background-color: var(--color-slate-200);
176
- }
177
- .bg-slate-500 {
178
- background-color: var(--color-slate-500);
179
- }
180
- .bg-teal-100 {
181
- background-color: var(--color-teal-100);
182
- }
183
- .bg-teal-500 {
184
- background-color: var(--color-teal-500);
185
- }
186
- .bg-violet-100 {
187
- background-color: var(--color-violet-100);
188
- }
189
- .bg-violet-500 {
190
- background-color: var(--color-violet-500);
191
- }
192
- .p-1\.5 {
193
- padding: calc(var(--spacing) * 1.5);
194
- }
195
- .leading-tight {
196
- --tw-leading: var(--leading-tight);
197
- line-height: var(--leading-tight);
198
- }
199
- .text-amber-900 {
200
- color: var(--color-amber-900);
201
- }
202
- .text-blue-800 {
203
- color: var(--color-blue-800);
204
- }
205
- .text-emerald-800 {
206
- color: var(--color-emerald-800);
207
- }
208
- .text-green-800 {
209
- color: var(--color-green-800);
210
- }
211
- .text-purple-800 {
212
- color: var(--color-purple-800);
213
- }
214
- .text-rose-800 {
215
- color: var(--color-rose-800);
216
- }
217
- .text-sky-800 {
218
- color: var(--color-sky-800);
219
- }
220
- .text-slate-800 {
221
- color: var(--color-slate-800);
222
- }
223
- .text-teal-800 {
224
- color: var(--color-teal-800);
225
- }
226
- .text-tone-amber-ink {
227
- color: var(--tone-amber-ink);
228
- }
229
- .text-violet-800 {
230
- color: var(--color-violet-800);
231
- }
232
- .line-through {
233
- text-decoration-line: line-through;
234
- }
235
- .outline-1 {
236
- outline-style: var(--tw-outline-style);
237
- outline-width: 1px;
238
- }
239
- .outline-tone-amber-ink {
240
- outline-color: var(--tone-amber-ink);
241
- }
242
- .outline-dashed {
243
- --tw-outline-style: dashed;
244
- outline-style: dashed;
245
- }
246
- .group-focus-within\:opacity-100:is(:where(.group):focus-within *) {
247
- opacity: 100%;
248
- }
249
- .last\:border-r-0:last-child {
250
- border-right-style: var(--tw-border-style);
251
- border-right-width: 0px;
252
- }
253
- @media (hover: hover) {
254
- .hover\:border-border\/80:hover {
255
- border-color: var(--border);
256
- }
257
- @supports (color: color-mix(in lab, red, red)) {
258
- .hover\:border-border\/80:hover {
259
- border-color: color-mix(in oklab, var(--border) 80%, transparent);
260
- }
261
- }
262
- .hover\:bg-muted\/30:hover {
263
- background-color: var(--muted);
264
- }
265
- @supports (color: color-mix(in lab, red, red)) {
266
- .hover\:bg-muted\/30:hover {
267
- background-color: color-mix(in oklab, var(--muted) 30%, transparent);
268
- }
269
- }
270
- .hover\:bg-muted\/40:hover {
271
- background-color: var(--muted);
272
- }
273
- @supports (color: color-mix(in lab, red, red)) {
274
- .hover\:bg-muted\/40:hover {
275
- background-color: color-mix(in oklab, var(--muted) 40%, transparent);
276
- }
277
- }
278
- }
279
- .focus\:opacity-100:focus {
280
- opacity: 100%;
281
- }
282
- @media (width >= 40rem) {
283
- .sm\:min-h-0 {
284
- min-height: 0px;
285
- }
286
- .sm\:min-h-24 {
287
- min-height: calc(var(--spacing) * 24);
288
- }
289
- .sm\:flex-row {
290
- flex-direction: row;
291
- }
292
- .sm\:items-center {
293
- align-items: center;
294
- }
295
- .sm\:gap-1 {
296
- gap: var(--spacing);
297
- }
298
- .sm\:px-1\.5 {
299
- padding-inline: calc(var(--spacing) * 1.5);
300
- }
301
- .sm\:text-xs {
302
- font-size: var(--text-xs);
303
- line-height: var(--tw-leading, var(--text-xs--line-height));
304
- }
305
- }
306
- .dark\:bg-amber-900\/40:where(.dark, .dark *) {
307
- background-color: color-mix(in srgb, oklch(41.4% 0.112 45.904) 40%, transparent);
308
- @supports (color: color-mix(in lab, red, red)) {
309
- background-color: color-mix(in oklab, var(--color-amber-900) 40%, transparent);
310
- }
311
- }
312
- .dark\:bg-blue-900\/40:where(.dark, .dark *) {
313
- background-color: color-mix(in srgb, oklch(37.9% 0.146 265.522) 40%, transparent);
314
- @supports (color: color-mix(in lab, red, red)) {
315
- background-color: color-mix(in oklab, var(--color-blue-900) 40%, transparent);
316
- }
317
- }
318
- .dark\:bg-emerald-900\/40:where(.dark, .dark *) {
319
- background-color: color-mix(in srgb, oklch(37.8% 0.077 168.94) 40%, transparent);
320
- @supports (color: color-mix(in lab, red, red)) {
321
- background-color: color-mix(in oklab, var(--color-emerald-900) 40%, transparent);
322
- }
323
- }
324
- .dark\:bg-green-900\/40:where(.dark, .dark *) {
325
- background-color: color-mix(in srgb, oklch(39.3% 0.095 152.535) 40%, transparent);
326
- @supports (color: color-mix(in lab, red, red)) {
327
- background-color: color-mix(in oklab, var(--color-green-900) 40%, transparent);
328
- }
329
- }
330
- .dark\:bg-purple-900\/40:where(.dark, .dark *) {
331
- background-color: color-mix(in srgb, oklch(38.1% 0.176 304.987) 40%, transparent);
332
- @supports (color: color-mix(in lab, red, red)) {
333
- background-color: color-mix(in oklab, var(--color-purple-900) 40%, transparent);
334
- }
335
- }
336
- .dark\:bg-rose-900\/40:where(.dark, .dark *) {
337
- background-color: color-mix(in srgb, oklch(41% 0.159 10.272) 40%, transparent);
338
- @supports (color: color-mix(in lab, red, red)) {
339
- background-color: color-mix(in oklab, var(--color-rose-900) 40%, transparent);
340
- }
341
- }
342
- .dark\:bg-sky-900\/40:where(.dark, .dark *) {
343
- background-color: color-mix(in srgb, oklch(39.1% 0.09 240.876) 40%, transparent);
344
- @supports (color: color-mix(in lab, red, red)) {
345
- background-color: color-mix(in oklab, var(--color-sky-900) 40%, transparent);
346
- }
347
- }
348
- .dark\:bg-slate-800:where(.dark, .dark *) {
349
- background-color: var(--color-slate-800);
350
- }
351
- .dark\:bg-teal-900\/40:where(.dark, .dark *) {
352
- background-color: color-mix(in srgb, oklch(38.6% 0.063 188.416) 40%, transparent);
353
- @supports (color: color-mix(in lab, red, red)) {
354
- background-color: color-mix(in oklab, var(--color-teal-900) 40%, transparent);
355
- }
356
- }
357
- .dark\:bg-violet-900\/40:where(.dark, .dark *) {
358
- background-color: color-mix(in srgb, oklch(38% 0.189 293.745) 40%, transparent);
359
- @supports (color: color-mix(in lab, red, red)) {
360
- background-color: color-mix(in oklab, var(--color-violet-900) 40%, transparent);
361
- }
362
- }
363
- .dark\:text-amber-200:where(.dark, .dark *) {
364
- color: var(--color-amber-200);
365
- }
366
- .dark\:text-blue-200:where(.dark, .dark *) {
367
- color: var(--color-blue-200);
368
- }
369
- .dark\:text-emerald-200:where(.dark, .dark *) {
370
- color: var(--color-emerald-200);
371
- }
372
- .dark\:text-green-200:where(.dark, .dark *) {
373
- color: var(--color-green-200);
374
- }
375
- .dark\:text-purple-200:where(.dark, .dark *) {
376
- color: var(--color-purple-200);
377
- }
378
- .dark\:text-rose-200:where(.dark, .dark *) {
379
- color: var(--color-rose-200);
380
- }
381
- .dark\:text-sky-200:where(.dark, .dark *) {
382
- color: var(--color-sky-200);
383
- }
384
- .dark\:text-slate-200:where(.dark, .dark *) {
385
- color: var(--color-slate-200);
386
- }
387
- .dark\:text-teal-200:where(.dark, .dark *) {
388
- color: var(--color-teal-200);
389
- }
390
- .dark\:text-violet-200:where(.dark, .dark *) {
391
- color: var(--color-violet-200);
392
- }
393
- }
394
- @property --tw-border-style {
395
- syntax: "*";
396
- inherits: false;
397
- initial-value: solid;
398
- }
399
- @property --tw-leading {
400
- syntax: "*";
401
- inherits: false;
402
- }
403
- @property --tw-outline-style {
404
- syntax: "*";
405
- inherits: false;
406
- initial-value: solid;
407
- }
408
- @layer properties {
409
- @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
410
- *, ::before, ::after, ::backdrop {
411
- --tw-border-style: solid;
412
- --tw-leading: initial;
413
- --tw-outline-style: solid;
414
- }
415
- }
416
- }
27
+ @source inline("bg-amber-100 bg-amber-500 bg-blue-100 bg-blue-500 bg-emerald-500 bg-green-100 bg-green-500");
28
+ @source inline("bg-muted/40 bg-muted/60 bg-purple-100 bg-purple-500 bg-rose-100 bg-rose-500 bg-sky-100");
29
+ @source inline("bg-sky-500 bg-slate-200 bg-slate-500 bg-teal-100 bg-teal-500 bg-violet-100 bg-violet-500");
30
+ @source inline("border-0 border-border/40 border-r collapse dark:bg-amber-900/40 dark:bg-blue-900/40");
31
+ @source inline("dark:bg-emerald-900/40 dark:bg-green-900/40 dark:bg-purple-900/40 dark:bg-rose-900/40");
32
+ @source inline("dark:bg-sky-900/40 dark:bg-slate-800 dark:bg-teal-900/40 dark:bg-violet-900/40");
33
+ @source inline("dark:text-amber-200 dark:text-blue-200 dark:text-emerald-200 dark:text-green-200");
34
+ @source inline("dark:text-purple-200 dark:text-rose-200 dark:text-sky-200 dark:text-slate-200 dark:text-teal-200");
35
+ @source inline("dark:text-violet-200 focus:opacity-100 g grid-cols-[repeat(7,minmax(0,1fr))]");
36
+ @source inline("group-focus-within:opacity-100 h-3.5 hover:bg-muted/30 hover:bg-muted/40 hover:border-border/80");
37
+ @source inline("justify-start last:border-r-0 leading-tight line-through min-h-[10rem] min-h-[44px] min-h-[7rem]");
38
+ @source inline("min-w-[44px] outline-1 outline-dashed outline-tone-amber-ink p-1.5 sm:flex-row sm:gap-1");
39
+ @source inline("sm:items-center sm:min-h-0 sm:min-h-24 sm:px-1.5 sm:text-xs text-amber-900 text-blue-800");
40
+ @source inline("text-emerald-800 text-green-800 text-purple-800 text-rose-800 text-sky-800 text-slate-800");
41
+ @source inline("text-teal-800 text-tone-amber-ink text-violet-800 w-3.5");
@@ -1,5 +1,5 @@
1
1
  /*
2
- * cursedbelt — the `chart-table` area. GENERATED BUILD ARTIFACT. Never hand-edit.
2
+ * cursedbelt — the `chart-table` area's utility candidates. GENERATED BUILD ARTIFACT. Never hand-edit.
3
3
  *
4
4
  * ChartTablePanel, the chart-with-its-own-data-table composite — 14,838 B of it is the DataTable and the charts it already needs.
5
5
  *
@@ -15,27 +15,15 @@
15
15
  * @import "cursedbelt/styles-areas/chart-table.css";
16
16
  * @import "cursedbelt/theme.css";
17
17
  *
18
- * An app that imports every area gets exactly what `cursedbelt/styles-utilities.css`
19
- * emits — proved rule by rule in src/stylesAreas.spec.ts, which is also what fails
20
- * when this file is stale. 60 candidate(s) scanned.
18
+ * These are CANDIDATES (`@source inline`), not CSS: the app's own Tailwind pass generates
19
+ * them, sorted together with the app's utilities, so an area can never put a base utility
20
+ * after an app's responsive variant (task 2124). An app that imports every area gets exactly
21
+ * what `cursedbelt/styles-utilities.css` emits — proved rule by rule in
22
+ * src/stylesAreas.spec.ts, which is also what fails when this file is stale.
23
+ * 3 candidate(s).
21
24
  *
22
25
  * Written by scripts/generateAreaStyles.ts (`bun run styles:areas`), which
23
26
  * `bun run build` runs. The map of what is in which area, and why the areas are
24
27
  * import closures rather than a hand-written list, is scripts/styleAreas.ts.
25
28
  */
26
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
27
- @layer theme, base, components, utilities;
28
- @layer utilities {
29
- .min-w-\[5rem\] {
30
- min-width: 5rem;
31
- }
32
- .shrink-\[2\] {
33
- flex-shrink: 2;
34
- }
35
- .bg-muted\/40 {
36
- background-color: var(--muted);
37
- @supports (color: color-mix(in lab, red, red)) {
38
- background-color: color-mix(in oklab, var(--muted) 40%, transparent);
39
- }
40
- }
41
- }
29
+ @source inline("bg-muted/40 min-w-[5rem] shrink-[2]");