@byline/admin 6.10.0 → 6.11.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 (103) hide show
  1. package/dist/fields/array/array-field_module.css +57 -53
  2. package/dist/fields/blocks/blocks-field_module.css +134 -130
  3. package/dist/fields/checkbox/checkbox-field_module.css +6 -2
  4. package/dist/fields/code/code-field_module.css +57 -53
  5. package/dist/fields/datetime/datetime-field_module.css +6 -2
  6. package/dist/fields/draggable-context-menu_module.css +77 -73
  7. package/dist/fields/field-renderer_module.css +12 -8
  8. package/dist/fields/file/file-field_module.css +133 -129
  9. package/dist/fields/file/file-upload-field_module.css +67 -63
  10. package/dist/fields/group/group-field_module.css +25 -21
  11. package/dist/fields/image/image-field_module.css +123 -119
  12. package/dist/fields/image/image-upload-field_module.css +81 -77
  13. package/dist/fields/locale-badge_module.css +28 -24
  14. package/dist/fields/relation/relation-display_module.css +20 -16
  15. package/dist/fields/relation/relation-field_module.css +149 -145
  16. package/dist/fields/relation/relation-picker_module.css +187 -183
  17. package/dist/fields/relation/relation-summary_module.css +34 -30
  18. package/dist/fields/select/select-field_module.css +9 -5
  19. package/dist/fields/sortable-item_module.css +126 -122
  20. package/dist/fields/text/text-field_module.css +8 -4
  21. package/dist/fields/text-area/text-area-field_module.css +8 -4
  22. package/dist/forms/available-locales-widget_module.css +19 -15
  23. package/dist/forms/document-actions_module.css +120 -116
  24. package/dist/forms/form-renderer_module.css +247 -243
  25. package/dist/forms/path-widget_module.css +29 -25
  26. package/dist/forms/scheduled-publication-control_module.css +76 -72
  27. package/dist/forms/tree-placement-widget_module.css +61 -57
  28. package/dist/modules/admin-account/components/change-password_module.css +26 -22
  29. package/dist/modules/admin-account/components/container_module.css +93 -89
  30. package/dist/modules/admin-account/components/preferences_module.css +37 -33
  31. package/dist/modules/admin-account/components/theme-switch_module.css +16 -12
  32. package/dist/modules/admin-account/components/update_module.css +26 -22
  33. package/dist/modules/admin-permissions/components/inspector_module.css +197 -193
  34. package/dist/modules/admin-roles/components/create_module.css +26 -22
  35. package/dist/modules/admin-roles/components/permissions_module.css +159 -155
  36. package/dist/modules/admin-roles/components/update_module.css +26 -22
  37. package/dist/modules/admin-users/components/create_module.css +39 -35
  38. package/dist/modules/admin-users/components/roles_module.css +65 -61
  39. package/dist/modules/admin-users/components/set-password_module.css +29 -25
  40. package/dist/modules/admin-users/components/update_module.css +32 -28
  41. package/dist/modules/analytics/components/dashboard_module.css +268 -264
  42. package/dist/modules/analytics/components/timeseries_module.css +192 -188
  43. package/dist/modules/auth/components/passkey-manager_module.css +87 -83
  44. package/dist/modules/auth/components/sign-in-form_module.css +68 -64
  45. package/dist/presentation/group_module.css +19 -15
  46. package/dist/presentation/row_module.css +17 -13
  47. package/dist/presentation/tabs_module.css +231 -227
  48. package/dist/widgets/diff-viewer/diff-modal_module.css +58 -54
  49. package/dist/widgets/source-locale-badge/source-locale-badge_module.css +12 -8
  50. package/dist/widgets/status-badge/status-badge_module.css +20 -16
  51. package/package.json +9 -8
  52. package/src/fields/array/array-field.module.css +71 -55
  53. package/src/fields/blocks/blocks-field.module.css +173 -156
  54. package/src/fields/checkbox/checkbox-field.module.css +17 -3
  55. package/src/fields/code/code-editor.tsx +2 -0
  56. package/src/fields/code/code-field.module.css +75 -59
  57. package/src/fields/datetime/datetime-field.module.css +19 -3
  58. package/src/fields/draggable-context-menu.module.css +108 -92
  59. package/src/fields/field-renderer.module.css +26 -10
  60. package/src/fields/file/file-field.module.css +147 -131
  61. package/src/fields/file/file-upload-field.module.css +91 -75
  62. package/src/fields/group/group-field.module.css +42 -26
  63. package/src/fields/image/image-field.module.css +152 -136
  64. package/src/fields/image/image-upload-field.module.css +107 -91
  65. package/src/fields/locale-badge.module.css +43 -27
  66. package/src/fields/relation/relation-display.module.css +37 -21
  67. package/src/fields/relation/relation-field.module.css +168 -152
  68. package/src/fields/relation/relation-picker.module.css +207 -191
  69. package/src/fields/relation/relation-summary.module.css +52 -36
  70. package/src/fields/select/select-field.module.css +23 -7
  71. package/src/fields/sortable-item.module.css +143 -127
  72. package/src/fields/text/text-field.module.css +21 -5
  73. package/src/fields/text-area/text-area-field.module.css +21 -5
  74. package/src/forms/available-locales-widget.module.css +39 -23
  75. package/src/forms/document-actions.module.css +139 -123
  76. package/src/forms/form-layout-styles.test.node.ts +12 -4
  77. package/src/forms/form-renderer.module.css +312 -296
  78. package/src/forms/path-widget.module.css +44 -28
  79. package/src/forms/scheduled-publication-control.module.css +104 -91
  80. package/src/forms/tree-placement-widget.module.css +80 -64
  81. package/src/modules/admin-account/components/change-password.module.css +42 -26
  82. package/src/modules/admin-account/components/container.module.css +129 -113
  83. package/src/modules/admin-account/components/preferences.module.css +56 -40
  84. package/src/modules/admin-account/components/theme-switch.module.css +32 -16
  85. package/src/modules/admin-account/components/update.module.css +42 -26
  86. package/src/modules/admin-permissions/components/inspector.module.css +255 -239
  87. package/src/modules/admin-roles/components/create.module.css +42 -26
  88. package/src/modules/admin-roles/components/permissions.module.css +204 -201
  89. package/src/modules/admin-roles/components/update.module.css +42 -26
  90. package/src/modules/admin-users/components/create.module.css +58 -42
  91. package/src/modules/admin-users/components/roles.module.css +96 -86
  92. package/src/modules/admin-users/components/set-password.module.css +46 -30
  93. package/src/modules/admin-users/components/update.module.css +49 -33
  94. package/src/modules/analytics/components/dashboard.module.css +322 -306
  95. package/src/modules/analytics/components/timeseries.module.css +237 -221
  96. package/src/modules/auth/components/passkey-manager.module.css +98 -84
  97. package/src/modules/auth/components/sign-in-form.module.css +85 -69
  98. package/src/presentation/group.module.css +36 -20
  99. package/src/presentation/row.module.css +32 -16
  100. package/src/presentation/tabs.module.css +243 -227
  101. package/src/widgets/diff-viewer/diff-modal.module.css +71 -55
  102. package/src/widgets/source-locale-badge/source-locale-badge.module.css +25 -9
  103. package/src/widgets/status-badge/status-badge.module.css +35 -19
@@ -1,3 +1,17 @@
1
+ @layer base,
2
+ byline-base,
3
+ theme,
4
+ byline-theme,
5
+ byline-functional,
6
+ byline-typography,
7
+ components,
8
+ byline-components,
9
+ overrides,
10
+ byline-utilities,
11
+ utilities;
12
+
13
+ @layer byline-components.primitives, byline-components.cms;
14
+
1
15
  /**
2
16
  * FormRenderer — primary admin form layout/orchestrator.
3
17
  *
@@ -38,384 +52,386 @@
38
52
  * .byline-form-guard-modal-text — guard modal body paragraph
39
53
  */
40
54
 
41
- .form,
42
- :global(.byline-form) {
43
- display: flex;
44
- flex-direction: column;
45
- width: 100%;
46
- }
47
-
48
- .heading-row,
49
- :global(.byline-form-heading-row) {
50
- display: grid;
51
- grid-template-columns: 1fr;
52
- align-items: start;
53
- gap: 0.25rem var(--spacing-16);
54
- margin-bottom: var(--spacing-8);
55
- }
55
+ @layer byline-components.cms {
56
+ .form,
57
+ :global(.byline-form) {
58
+ display: flex;
59
+ flex-direction: column;
60
+ width: 100%;
61
+ }
56
62
 
57
- @media (min-width: 40rem) {
58
63
  .heading-row,
59
64
  :global(.byline-form-heading-row) {
60
- grid-template-columns: 1fr auto;
65
+ display: grid;
66
+ grid-template-columns: 1fr;
67
+ align-items: start;
68
+ gap: 0.25rem var(--spacing-16);
69
+ margin-bottom: var(--spacing-8);
61
70
  }
62
- }
63
71
 
64
- .heading,
65
- :global(.byline-form-heading) {
66
- margin-bottom: 0;
67
- font-size: 1.75rem;
68
- }
72
+ @media (min-width: 40rem) {
73
+ .heading-row,
74
+ :global(.byline-form-heading-row) {
75
+ grid-template-columns: 1fr auto;
76
+ }
77
+ }
69
78
 
70
- .status-bar,
71
- :global(.byline-form-status-bar) {
72
- position: sticky;
73
- top: 45px;
74
- z-index: 20;
75
- display: grid;
76
- grid-template-columns: 1fr;
77
- align-items: start;
78
- gap: 0.25rem var(--spacing-16);
79
- padding: var(--spacing-8);
80
- margin-bottom: 0.25rem;
81
- border: var(--border-width-thin) var(--border-style-solid) var(--gray-100);
82
- border-radius: var(--border-radius-sm);
83
- background-color: var(--canvas-25);
84
- }
79
+ .heading,
80
+ :global(.byline-form-heading) {
81
+ margin-bottom: 0;
82
+ font-size: 1.75rem;
83
+ }
85
84
 
86
- @media (min-width: 40rem) {
87
85
  .status-bar,
88
86
  :global(.byline-form-status-bar) {
89
- grid-template-columns: 1fr auto;
87
+ position: sticky;
88
+ top: 45px;
89
+ z-index: 20;
90
+ display: grid;
91
+ grid-template-columns: 1fr;
92
+ align-items: start;
93
+ gap: 0.25rem var(--spacing-16);
94
+ padding: var(--spacing-8);
95
+ margin-bottom: 0.25rem;
96
+ border: var(--border-width-thin) var(--border-style-solid) var(--gray-100);
97
+ border-radius: var(--border-radius-sm);
98
+ background-color: var(--canvas-25);
90
99
  }
91
- }
92
100
 
93
- @media (min-width: 66rem) {
94
- .status-bar,
95
- :global(.byline-form-status-bar) {
96
- margin-bottom: 0;
101
+ @media (min-width: 40rem) {
102
+ .status-bar,
103
+ :global(.byline-form-status-bar) {
104
+ grid-template-columns: 1fr auto;
105
+ }
97
106
  }
98
- }
99
107
 
100
- .status,
101
- :global(.byline-form-status) {
102
- display: flex;
103
- height: 100%;
104
- flex-direction: column;
105
- justify-content: center;
106
- }
108
+ @media (min-width: 66rem) {
109
+ .status-bar,
110
+ :global(.byline-form-status-bar) {
111
+ margin-bottom: 0;
112
+ }
113
+ }
107
114
 
108
- .status-details,
109
- :global(.byline-form-status-details) {
110
- min-width: 0;
111
- }
115
+ .status,
116
+ :global(.byline-form-status) {
117
+ display: flex;
118
+ height: 100%;
119
+ flex-direction: column;
120
+ justify-content: center;
121
+ }
112
122
 
113
- .status-meta,
114
- :global(.byline-form-status-meta) {
115
- display: flex;
116
- flex-direction: column;
117
- font-size: 0.8rem;
118
- line-height: 1.25;
119
- }
123
+ .status-details,
124
+ :global(.byline-form-status-details) {
125
+ min-width: 0;
126
+ }
120
127
 
121
- @media (min-width: 48rem) {
122
128
  .status-meta,
123
129
  :global(.byline-form-status-meta) {
124
- margin-bottom: 0.25rem;
125
- line-height: 0.75rem;
130
+ display: flex;
131
+ flex-direction: column;
132
+ font-size: 0.8rem;
133
+ line-height: 1.25;
126
134
  }
127
- }
128
135
 
129
- @media (min-width: 66rem) {
130
- .status-meta,
131
- :global(.byline-form-status-meta) {
132
- flex-direction: row;
133
- flex-wrap: wrap;
134
- align-items: center;
135
- /* Wrapping rather than truncating. Every cell here sets `min-width: 0` so
136
+ @media (min-width: 48rem) {
137
+ .status-meta,
138
+ :global(.byline-form-status-meta) {
139
+ margin-bottom: 0.25rem;
140
+ line-height: 0.75rem;
141
+ }
142
+ }
143
+
144
+ @media (min-width: 66rem) {
145
+ .status-meta,
146
+ :global(.byline-form-status-meta) {
147
+ flex-direction: row;
148
+ flex-wrap: wrap;
149
+ align-items: center;
150
+ /* Wrapping rather than truncating. Every cell here sets `min-width: 0` so
136
151
  it can ellipsize, which works while the row holds three short facts and
137
152
  fails once a fourth (a scheduled instant with its IANA zone) joins them —
138
153
  the row starts shaving every cell at once, down to "Status: D…". Letting
139
154
  it wrap keeps each fact whole and costs a line only when one is needed.
140
155
  The row gap is explicit because the shared `gap` collapses the line-height
141
156
  override above into an unreadably tight second row. */
142
- row-gap: 0.35rem;
157
+ row-gap: 0.35rem;
158
+ }
143
159
  }
144
- }
145
160
 
146
- @media (min-width: 40rem) {
147
- .status-meta,
148
- :global(.byline-form-status-meta) {
149
- gap: var(--spacing-8);
161
+ @media (min-width: 40rem) {
162
+ .status-meta,
163
+ :global(.byline-form-status-meta) {
164
+ gap: var(--spacing-8);
165
+ }
150
166
  }
151
- }
152
-
153
- .status-cell,
154
- :global(.byline-form-status-cell) {
155
- display: flex;
156
- flex-wrap: wrap;
157
- align-items: center;
158
- gap: 0.25rem;
159
- min-width: 0;
160
- }
161
167
 
162
- .status-muted,
163
- :global(.byline-form-status-muted) {
164
- flex-shrink: 0;
165
- color: var(--gray-500);
166
- }
168
+ .status-cell,
169
+ :global(.byline-form-status-cell) {
170
+ display: flex;
171
+ flex-wrap: wrap;
172
+ align-items: center;
173
+ gap: 0.25rem;
174
+ min-width: 0;
175
+ }
167
176
 
168
- .status-trunc,
169
- :global(.byline-form-status-trunc) {
170
- overflow: hidden;
171
- text-overflow: ellipsis;
172
- white-space: nowrap;
173
- }
177
+ .status-muted,
178
+ :global(.byline-form-status-muted) {
179
+ flex-shrink: 0;
180
+ color: var(--gray-500);
181
+ }
174
182
 
175
- .status-published,
176
- :global(.byline-form-status-published) {
177
- font-size: 0.8rem;
178
- display: inline;
179
- line-height: 1rem;
180
- }
183
+ .status-trunc,
184
+ :global(.byline-form-status-trunc) {
185
+ overflow: hidden;
186
+ text-overflow: ellipsis;
187
+ white-space: nowrap;
188
+ }
181
189
 
182
- @media (min-width: 48rem) {
183
190
  .status-published,
184
191
  :global(.byline-form-status-published) {
185
- line-height: 0.875rem;
192
+ font-size: 0.8rem;
193
+ display: inline;
194
+ line-height: 1rem;
186
195
  }
187
- }
188
196
 
189
- .status-unpublish,
190
- :global(.byline-form-status-unpublish) {
191
- background: none;
192
- border: none;
193
- padding: 0;
194
- color: inherit;
195
- font-size: 0.8rem;
196
- text-decoration: underline;
197
- cursor: pointer;
198
- }
197
+ @media (min-width: 48rem) {
198
+ .status-published,
199
+ :global(.byline-form-status-published) {
200
+ line-height: 0.875rem;
201
+ }
202
+ }
199
203
 
200
- .actions,
201
- :global(.byline-form-actions) {
202
- display: flex;
203
- align-items: center;
204
- gap: var(--spacing-8);
205
- }
204
+ .status-unpublish,
205
+ :global(.byline-form-status-unpublish) {
206
+ background: none;
207
+ border: none;
208
+ padding: 0;
209
+ color: inherit;
210
+ font-size: 0.8rem;
211
+ text-decoration: underline;
212
+ cursor: pointer;
213
+ }
206
214
 
207
- .actions-button,
208
- :global(.byline-form-actions-button) {
209
- min-width: 70px;
210
- min-height: 28px;
211
- }
215
+ .actions,
216
+ :global(.byline-form-actions) {
217
+ display: flex;
218
+ align-items: center;
219
+ gap: var(--spacing-8);
220
+ }
212
221
 
213
- .busy-status,
214
- :global(.byline-form-busy-status) {
215
- position: absolute;
216
- overflow: hidden;
217
- width: 1px;
218
- height: 1px;
219
- padding: 0;
220
- border: 0;
221
- margin: -1px;
222
- clip: rect(0 0 0 0);
223
- clip-path: inset(50%);
224
- white-space: nowrap;
225
- }
222
+ .actions-button,
223
+ :global(.byline-form-actions-button) {
224
+ min-width: 70px;
225
+ min-height: 28px;
226
+ }
226
227
 
227
- .save-content,
228
- :global(.byline-form-save-content) {
229
- position: relative;
230
- display: inline-block;
231
- }
228
+ .busy-status,
229
+ :global(.byline-form-busy-status) {
230
+ position: absolute;
231
+ overflow: hidden;
232
+ width: 1px;
233
+ height: 1px;
234
+ padding: 0;
235
+ border: 0;
236
+ margin: -1px;
237
+ clip: rect(0 0 0 0);
238
+ clip-path: inset(50%);
239
+ white-space: nowrap;
240
+ }
232
241
 
233
- .save-label,
234
- :global(.byline-form-save-label) {
235
- display: inline-block;
236
- }
242
+ .save-content,
243
+ :global(.byline-form-save-content) {
244
+ position: relative;
245
+ display: inline-block;
246
+ }
237
247
 
238
- .save-label-hidden {
239
- visibility: hidden;
240
- }
248
+ .save-label,
249
+ :global(.byline-form-save-label) {
250
+ display: inline-block;
251
+ }
241
252
 
242
- .save-loader,
243
- :global(.byline-form-save-loader) {
244
- position: absolute;
245
- top: 50%;
246
- left: 50%;
247
- display: inline-flex;
248
- transform: translate(-50%, -50%);
249
- }
253
+ .save-label-hidden {
254
+ visibility: hidden;
255
+ }
250
256
 
251
- .actions-status-wrap,
252
- :global(.byline-form-actions-status-wrap) {
253
- position: relative;
254
- z-index: 10;
255
- }
257
+ .save-loader,
258
+ :global(.byline-form-save-loader) {
259
+ position: absolute;
260
+ top: 50%;
261
+ left: 50%;
262
+ display: inline-flex;
263
+ transform: translate(-50%, -50%);
264
+ }
256
265
 
257
- .actions-combo-button,
258
- :global(.byline-form-actions-combo-button) {
259
- min-width: 100px;
260
- min-height: 28px;
261
- }
266
+ .actions-status-wrap,
267
+ :global(.byline-form-actions-status-wrap) {
268
+ position: relative;
269
+ z-index: 10;
270
+ }
262
271
 
263
- .actions-combo-trigger,
264
- :global(.byline-form-actions-combo-trigger) {
265
- min-height: 28px;
266
- }
272
+ .actions-combo-button,
273
+ :global(.byline-form-actions-combo-button) {
274
+ min-width: 100px;
275
+ min-height: 28px;
276
+ }
267
277
 
268
- /*
278
+ .actions-combo-trigger,
279
+ :global(.byline-form-actions-combo-trigger) {
280
+ min-height: 28px;
281
+ }
282
+
283
+ /*
269
284
  * Concurrency alerts (stale document, lock conflict, schedule reconfirmation).
270
285
  * Separated from the status bar above and from the form layout below, which
271
286
  * otherwise carries its standing top padding on top of the alert's own gap.
272
287
  */
273
- .concurrency,
274
- :global(.byline-document-concurrency) {
275
- margin-top: var(--spacing-16);
276
- }
277
-
278
- .concurrency button,
279
- :global(.byline-document-concurrency) button {
280
- margin-top: var(--spacing-12);
281
- }
288
+ .concurrency,
289
+ :global(.byline-document-concurrency) {
290
+ margin-top: var(--spacing-16);
291
+ }
282
292
 
283
- .concurrency ~ .layout,
284
- :global(.byline-document-concurrency) ~ :global(.byline-form-layout) {
285
- padding-top: var(--spacing-16);
286
- }
293
+ .concurrency button,
294
+ :global(.byline-document-concurrency) button {
295
+ margin-top: var(--spacing-12);
296
+ }
287
297
 
288
- .layout,
289
- :global(.byline-form-layout) {
290
- display: flex;
291
- flex-direction: column;
292
- gap: var(--spacing-12);
293
- padding-top: var(--spacing-32);
294
- }
298
+ .concurrency ~ .layout,
299
+ :global(.byline-document-concurrency) ~ :global(.byline-form-layout) {
300
+ padding-top: var(--spacing-16);
301
+ }
295
302
 
296
- @media (min-width: 60rem) {
297
303
  .layout,
298
304
  :global(.byline-form-layout) {
299
- gap: var(--spacing-32);
300
- display: grid;
301
- grid-template-columns: minmax(0, 1fr) 0.4fr;
302
- grid-column-gap: 36px;
303
- align-items: start;
305
+ display: flex;
306
+ flex-direction: column;
307
+ gap: var(--spacing-12);
308
+ padding-top: var(--spacing-32);
309
+ }
310
+
311
+ @media (min-width: 60rem) {
312
+ .layout,
313
+ :global(.byline-form-layout) {
314
+ gap: var(--spacing-32);
315
+ display: grid;
316
+ grid-template-columns: minmax(0, 1fr) 0.4fr;
317
+ grid-column-gap: 36px;
318
+ align-items: start;
319
+ }
304
320
  }
305
- }
306
321
 
307
- /* One column at every width. The split layout above becomes a two-column grid
322
+ /* One column at every width. The split layout above becomes a two-column grid
308
323
  at >=60rem; a stacked form must not inherit that, or it reserves an empty
309
324
  second track and narrows its only content column. */
310
- .layout-stacked,
311
- :global(.byline-form-layout-stacked) {
312
- display: flex;
313
- flex-direction: column;
314
- gap: var(--spacing-12);
315
- padding-top: var(--spacing-32);
316
- }
317
-
318
- @media (min-width: 60rem) {
319
325
  .layout-stacked,
320
326
  :global(.byline-form-layout-stacked) {
321
- gap: var(--spacing-32);
327
+ display: flex;
328
+ flex-direction: column;
329
+ gap: var(--spacing-12);
330
+ padding-top: var(--spacing-32);
322
331
  }
323
- }
324
332
 
325
- .content,
326
- :global(.byline-form-content) {
327
- display: flex;
328
- flex-direction: column;
329
- gap: var(--spacing-20);
330
- max-width: 100%;
331
- /* Grid item default min-width:auto refuses to shrink below its content's
332
- * min-content size — a horizontally-scrolling code block (white-space:pre)
333
- * has a huge min-content, which would blow this column across the sidebar.
334
- * min-width:0 lets the column respect its minmax(0,1fr) track instead. */
335
- min-width: 0;
336
- margin-bottom: 2.75rem;
337
- }
333
+ @media (min-width: 60rem) {
334
+ .layout-stacked,
335
+ :global(.byline-form-layout-stacked) {
336
+ gap: var(--spacing-32);
337
+ }
338
+ }
338
339
 
339
- @media (min-width: 60rem) {
340
340
  .content,
341
341
  :global(.byline-form-content) {
342
- margin-bottom: 3.75rem;
342
+ display: flex;
343
+ flex-direction: column;
344
+ gap: var(--spacing-20);
345
+ max-width: 100%;
346
+ /* Grid item default min-width:auto refuses to shrink below its content's
347
+ * min-content size — a horizontally-scrolling code block (white-space:pre)
348
+ * has a huge min-content, which would blow this column across the sidebar.
349
+ * min-width:0 lets the column respect its minmax(0,1fr) track instead. */
350
+ min-width: 0;
351
+ margin-bottom: 2.75rem;
343
352
  }
344
- }
345
353
 
346
- .sidebar,
347
- :global(.byline-form-sidebar) {
348
- display: flex;
349
- flex-direction: column;
350
- gap: var(--spacing-20);
351
- margin-top: 0;
352
- background-color: oklch(from var(--canvas-50) l c h / 0.2);
353
- max-width: 100%;
354
- margin-bottom: 4rem;
355
- }
354
+ @media (min-width: 60rem) {
355
+ .content,
356
+ :global(.byline-form-content) {
357
+ margin-bottom: 3.75rem;
358
+ }
359
+ }
356
360
 
357
- @media (min-width: 60rem) {
358
361
  .sidebar,
359
362
  :global(.byline-form-sidebar) {
360
- margin-bottom: 0;
361
- padding-right: 12px;
362
- padding-top: 0.25rem;
363
- padding-left: var(--spacing-16);
364
- border-left: var(--border-width-thin) var(--border-style-solid) var(--gray-100);
365
- position: sticky;
366
- top: 95px;
363
+ display: flex;
364
+ flex-direction: column;
365
+ gap: var(--spacing-20);
366
+ margin-top: 0;
367
+ background-color: oklch(from var(--canvas-50) l c h / 0.2);
368
+ max-width: 100%;
369
+ margin-bottom: 4rem;
367
370
  }
368
- }
369
371
 
370
- .tabset,
371
- :global(.byline-form-tabset) {
372
- display: flex;
373
- flex-direction: column;
374
- gap: var(--spacing-20);
375
- }
376
-
377
- .tabset-tabs,
378
- :global(.byline-form-tabset-tabs) {
379
- margin-top: -1rem;
380
- margin-bottom: 0;
381
- }
372
+ @media (min-width: 60rem) {
373
+ .sidebar,
374
+ :global(.byline-form-sidebar) {
375
+ margin-bottom: 0;
376
+ padding-right: 12px;
377
+ padding-top: 0.25rem;
378
+ padding-left: var(--spacing-16);
379
+ border-left: var(--border-width-thin) var(--border-style-solid) var(--gray-100);
380
+ position: sticky;
381
+ top: 95px;
382
+ }
383
+ }
382
384
 
383
- .tabset-fields,
384
- :global(.byline-form-tabset-fields) {
385
- display: flex;
386
- flex-direction: column;
387
- gap: var(--spacing-20);
388
- }
385
+ .tabset,
386
+ :global(.byline-form-tabset) {
387
+ display: flex;
388
+ flex-direction: column;
389
+ gap: var(--spacing-20);
390
+ }
389
391
 
390
- .guard-modal-head,
391
- :global(.byline-form-guard-modal-head) {
392
- padding-top: 1rem;
393
- margin-bottom: var(--spacing-8);
394
- }
392
+ .tabset-tabs,
393
+ :global(.byline-form-tabset-tabs) {
394
+ margin-top: -1rem;
395
+ margin-bottom: 0;
396
+ }
395
397
 
396
- .guard-modal-title,
397
- :global(.byline-form-guard-modal-title) {
398
- margin: 0 0 var(--spacing-8) 0;
399
- font-size: var(--font-size-2xl);
400
- }
398
+ .tabset-fields,
399
+ :global(.byline-form-tabset-fields) {
400
+ display: flex;
401
+ flex-direction: column;
402
+ gap: var(--spacing-20);
403
+ }
401
404
 
402
- .guard-modal-text,
403
- :global(.byline-form-guard-modal-text) {
404
- font-size: var(--font-size-sm);
405
- }
405
+ .guard-modal-head,
406
+ :global(.byline-form-guard-modal-head) {
407
+ padding-top: 1rem;
408
+ margin-bottom: var(--spacing-8);
409
+ }
406
410
 
407
- /* ─── Dark theme variants ───────────────────────────────────── */
411
+ .guard-modal-title,
412
+ :global(.byline-form-guard-modal-title) {
413
+ margin: 0 0 var(--spacing-8) 0;
414
+ font-size: var(--font-size-2xl);
415
+ }
408
416
 
409
- :is([data-theme="dark"], :global(.dark)) {
410
- .status-bar,
411
- :global(.byline-form-status-bar) {
412
- background-color: var(--canvas-800);
413
- border: var(--border-width-thin) var(--border-style-solid) var(--gray-700);
417
+ .guard-modal-text,
418
+ :global(.byline-form-guard-modal-text) {
419
+ font-size: var(--font-size-sm);
414
420
  }
415
421
 
416
- .sidebar,
417
- :global(.byline-form-sidebar) {
418
- border-left-color: var(--gray-800);
419
- background-color: var(--canvas-900);
422
+ /* ─── Dark theme variants ───────────────────────────────────── */
423
+
424
+ :is([data-theme="dark"], :global(.dark)) {
425
+ .status-bar,
426
+ :global(.byline-form-status-bar) {
427
+ background-color: var(--canvas-800);
428
+ border: var(--border-width-thin) var(--border-style-solid) var(--gray-700);
429
+ }
430
+
431
+ .sidebar,
432
+ :global(.byline-form-sidebar) {
433
+ border-left-color: var(--gray-800);
434
+ background-color: var(--canvas-900);
435
+ }
420
436
  }
421
437
  }