@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
  * ImageField — image preview + metadata + remove/upload affordances.
3
17
  *
@@ -16,140 +30,142 @@
16
30
  * .byline-field-image-meta-pending — yellow text inside pending status
17
31
  */
18
32
 
19
- .header,
20
- :global(.byline-field-image-header) {
21
- display: flex;
22
- align-items: baseline;
23
- gap: var(--spacing-8);
24
- margin-bottom: 0.25rem;
25
- }
26
-
27
- .remove,
28
- :global(.byline-field-image-remove) {
29
- position: absolute;
30
- top: var(--spacing-6);
31
- right: var(--spacing-6);
32
- z-index: 1;
33
- }
34
-
35
- :global(.byline-field-image-remove .byline-button) {
36
- color: var(--gray-900);
37
- }
38
-
39
- :global(.dark .byline-field-image-remove .byline-button),
40
- :global([data-theme="dark"] .byline-field-image-remove .byline-button) {
41
- color: var(--gray-200);
42
- }
43
-
44
- .empty,
45
- :global(.byline-field-image-empty) {
46
- color: var(--gray-500);
47
- font-size: var(--font-size-xs);
48
- font-style: italic;
49
- }
50
-
51
- .tile,
52
- :global(.byline-field-image-tile) {
53
- position: relative;
54
- display: flex;
55
- gap: var(--spacing-16);
56
- margin-top: 0.25rem;
57
- padding: var(--spacing-8);
58
- border: var(--border-width-thin) var(--border-style-solid) var(--primary-500);
59
- border-radius: var(--border-radius-md);
60
- }
61
-
62
- .preview-wrap,
63
- :global(.byline-field-image-preview-wrap) {
64
- position: relative;
65
- }
66
-
67
- .preview-button,
68
- :global(.byline-field-image-preview-button) {
69
- appearance: none;
70
- background: none;
71
- border: none;
72
- padding: 0;
73
- margin: 0;
74
- display: block;
75
- cursor: pointer;
76
- border-radius: var(--border-radius-sm);
77
- }
78
-
79
- .preview-button:focus-visible,
80
- :global(.byline-field-image-preview-button):focus-visible {
81
- outline: 2px solid var(--primary-500);
82
- outline-offset: 2px;
83
- }
84
-
85
- .preview-button img,
86
- :global(.byline-field-image-preview-button) img {
87
- transition: opacity 120ms ease;
88
- }
89
-
90
- .preview-button:hover img,
91
- :global(.byline-field-image-preview-button):hover img {
92
- opacity: 0.85;
93
- }
94
-
95
- .preview,
96
- :global(.byline-field-image-preview) {
97
- max-height: 10rem;
98
- min-height: 4rem;
99
- min-width: 4rem;
100
- border: var(--border-width-thin) var(--border-style-solid) var(--gray-600);
101
- border-radius: var(--border-radius-sm);
102
- object-fit: contain;
103
- }
104
-
105
- .preview-svg,
106
- :global(.byline-field-image-preview-svg) {
107
- width: 271px;
108
- height: 159px;
109
- max-height: none;
110
- }
111
-
112
- .pending,
113
- :global(.byline-field-image-pending) {
114
- position: absolute;
115
- top: 0.25rem;
116
- left: 0.25rem;
117
- padding: 0.125rem 0.375rem;
118
- background-color: oklch(from var(--yellow-600) l c h / 0.9);
119
- color: var(--yellow-100);
120
- font-size: 0.6rem;
121
- font-weight: var(--font-weight-medium);
122
- border-radius: var(--border-radius-sm);
123
- }
124
-
125
- .uploading,
126
- :global(.byline-field-image-uploading) {
127
- position: absolute;
128
- inset: 0;
129
- z-index: 2;
130
- display: flex;
131
- align-items: center;
132
- justify-content: center;
133
- background-color: oklch(from var(--gray-950) l c h / 0.5);
134
- border-radius: var(--border-radius-md);
135
- }
136
-
137
- .meta,
138
- :global(.byline-field-image-meta) {
139
- display: flex;
140
- flex-direction: column;
141
- gap: 0.125rem;
142
- padding-right: var(--spacing-32);
143
- color: var(--gray-200);
144
- font-size: var(--font-size-xs);
145
- }
146
-
147
- .meta-key,
148
- :global(.byline-field-image-meta-key) {
149
- font-weight: var(--font-weight-semibold);
150
- }
151
-
152
- .meta-pending,
153
- :global(.byline-field-image-meta-pending) {
154
- color: var(--yellow-400);
33
+ @layer byline-components.cms {
34
+ .header,
35
+ :global(.byline-field-image-header) {
36
+ display: flex;
37
+ align-items: baseline;
38
+ gap: var(--spacing-8);
39
+ margin-bottom: 0.25rem;
40
+ }
41
+
42
+ .remove,
43
+ :global(.byline-field-image-remove) {
44
+ position: absolute;
45
+ top: var(--spacing-6);
46
+ right: var(--spacing-6);
47
+ z-index: 1;
48
+ }
49
+
50
+ :global(.byline-field-image-remove .byline-button) {
51
+ color: var(--gray-900);
52
+ }
53
+
54
+ :global(.dark .byline-field-image-remove .byline-button),
55
+ :global([data-theme="dark"] .byline-field-image-remove .byline-button) {
56
+ color: var(--gray-200);
57
+ }
58
+
59
+ .empty,
60
+ :global(.byline-field-image-empty) {
61
+ color: var(--gray-500);
62
+ font-size: var(--font-size-xs);
63
+ font-style: italic;
64
+ }
65
+
66
+ .tile,
67
+ :global(.byline-field-image-tile) {
68
+ position: relative;
69
+ display: flex;
70
+ gap: var(--spacing-16);
71
+ margin-top: 0.25rem;
72
+ padding: var(--spacing-8);
73
+ border: var(--border-width-thin) var(--border-style-solid) var(--primary-500);
74
+ border-radius: var(--border-radius-md);
75
+ }
76
+
77
+ .preview-wrap,
78
+ :global(.byline-field-image-preview-wrap) {
79
+ position: relative;
80
+ }
81
+
82
+ .preview-button,
83
+ :global(.byline-field-image-preview-button) {
84
+ appearance: none;
85
+ background: none;
86
+ border: none;
87
+ padding: 0;
88
+ margin: 0;
89
+ display: block;
90
+ cursor: pointer;
91
+ border-radius: var(--border-radius-sm);
92
+ }
93
+
94
+ .preview-button:focus-visible,
95
+ :global(.byline-field-image-preview-button):focus-visible {
96
+ outline: 2px solid var(--primary-500);
97
+ outline-offset: 2px;
98
+ }
99
+
100
+ .preview-button img,
101
+ :global(.byline-field-image-preview-button) img {
102
+ transition: opacity 120ms ease;
103
+ }
104
+
105
+ .preview-button:hover img,
106
+ :global(.byline-field-image-preview-button):hover img {
107
+ opacity: 0.85;
108
+ }
109
+
110
+ .preview,
111
+ :global(.byline-field-image-preview) {
112
+ max-height: 10rem;
113
+ min-height: 4rem;
114
+ min-width: 4rem;
115
+ border: var(--border-width-thin) var(--border-style-solid) var(--gray-600);
116
+ border-radius: var(--border-radius-sm);
117
+ object-fit: contain;
118
+ }
119
+
120
+ .preview-svg,
121
+ :global(.byline-field-image-preview-svg) {
122
+ width: 271px;
123
+ height: 159px;
124
+ max-height: none;
125
+ }
126
+
127
+ .pending,
128
+ :global(.byline-field-image-pending) {
129
+ position: absolute;
130
+ top: 0.25rem;
131
+ left: 0.25rem;
132
+ padding: 0.125rem 0.375rem;
133
+ background-color: oklch(from var(--yellow-600) l c h / 0.9);
134
+ color: var(--yellow-100);
135
+ font-size: 0.6rem;
136
+ font-weight: var(--font-weight-medium);
137
+ border-radius: var(--border-radius-sm);
138
+ }
139
+
140
+ .uploading,
141
+ :global(.byline-field-image-uploading) {
142
+ position: absolute;
143
+ inset: 0;
144
+ z-index: 2;
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ background-color: oklch(from var(--gray-950) l c h / 0.5);
149
+ border-radius: var(--border-radius-md);
150
+ }
151
+
152
+ .meta,
153
+ :global(.byline-field-image-meta) {
154
+ display: flex;
155
+ flex-direction: column;
156
+ gap: 0.125rem;
157
+ padding-right: var(--spacing-32);
158
+ color: var(--gray-200);
159
+ font-size: var(--font-size-xs);
160
+ }
161
+
162
+ .meta-key,
163
+ :global(.byline-field-image-meta-key) {
164
+ font-weight: var(--font-weight-semibold);
165
+ }
166
+
167
+ .meta-pending,
168
+ :global(.byline-field-image-meta-pending) {
169
+ color: var(--yellow-400);
170
+ }
155
171
  }
@@ -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
  * ImageUploadField — drag-and-drop image picker that registers a deferred
3
17
  * upload in form context.
@@ -16,108 +30,110 @@
16
30
  * .byline-field-image-upload-error — error message paragraph
17
31
  */
18
32
 
19
- .root,
20
- :global(.byline-field-image-upload) {
21
- margin-top: 0.25rem;
22
- }
33
+ @layer byline-components.cms {
34
+ .root,
35
+ :global(.byline-field-image-upload) {
36
+ margin-top: 0.25rem;
37
+ }
23
38
 
24
- .input,
25
- :global(.byline-field-image-upload-input) {
26
- position: absolute;
27
- width: 1px;
28
- height: 1px;
29
- padding: 0;
30
- margin: -1px;
31
- overflow: hidden;
32
- clip: rect(0, 0, 0, 0);
33
- white-space: nowrap;
34
- border: 0;
35
- }
39
+ .input,
40
+ :global(.byline-field-image-upload-input) {
41
+ position: absolute;
42
+ width: 1px;
43
+ height: 1px;
44
+ padding: 0;
45
+ margin: -1px;
46
+ overflow: hidden;
47
+ clip: rect(0, 0, 0, 0);
48
+ white-space: nowrap;
49
+ border: 0;
50
+ }
36
51
 
37
- .zone,
38
- :global(.byline-field-image-upload-zone) {
39
- display: flex;
40
- flex-direction: column;
41
- align-items: center;
42
- justify-content: center;
43
- gap: var(--spacing-8);
44
- padding: 1.5rem 1rem;
45
- border: 2px dashed var(--gray-600);
46
- border-radius: var(--border-radius-lg);
47
- color: var(--gray-400);
48
- text-align: center;
49
- cursor: pointer;
50
- user-select: none;
51
- transition:
52
- color 150ms ease,
53
- background-color 150ms ease,
54
- border-color 150ms ease;
55
- }
52
+ .zone,
53
+ :global(.byline-field-image-upload-zone) {
54
+ display: flex;
55
+ flex-direction: column;
56
+ align-items: center;
57
+ justify-content: center;
58
+ gap: var(--spacing-8);
59
+ padding: 1.5rem 1rem;
60
+ border: 2px dashed var(--gray-600);
61
+ border-radius: var(--border-radius-lg);
62
+ color: var(--gray-400);
63
+ text-align: center;
64
+ cursor: pointer;
65
+ user-select: none;
66
+ transition:
67
+ color 150ms ease,
68
+ background-color 150ms ease,
69
+ border-color 150ms ease;
70
+ }
56
71
 
57
- .zone:hover,
58
- :global(.byline-field-image-upload-zone):hover {
59
- border-color: var(--primary-500);
60
- background-color: oklch(from var(--primary-900) l c h / 0.1);
61
- }
72
+ .zone:hover,
73
+ :global(.byline-field-image-upload-zone):hover {
74
+ border-color: var(--primary-500);
75
+ background-color: oklch(from var(--primary-900) l c h / 0.1);
76
+ }
62
77
 
63
- .zone-active,
64
- :global(.byline-field-image-upload-zone-active) {
65
- border-color: var(--primary-400);
66
- background-color: oklch(from var(--primary-900) l c h / 0.2);
67
- color: var(--primary-300);
68
- }
78
+ .zone-active,
79
+ :global(.byline-field-image-upload-zone-active) {
80
+ border-color: var(--primary-400);
81
+ background-color: oklch(from var(--primary-900) l c h / 0.2);
82
+ color: var(--primary-300);
83
+ }
69
84
 
70
- .zone-busy,
71
- :global(.byline-field-image-upload-zone-busy) {
72
- border-color: var(--gray-700);
73
- background-color: oklch(from var(--canvas-800) l c h / 0.5);
74
- color: var(--gray-600);
75
- cursor: not-allowed;
76
- }
85
+ .zone-busy,
86
+ :global(.byline-field-image-upload-zone-busy) {
87
+ border-color: var(--gray-700);
88
+ background-color: oklch(from var(--canvas-800) l c h / 0.5);
89
+ color: var(--gray-600);
90
+ cursor: not-allowed;
91
+ }
77
92
 
78
- .spinner,
79
- :global(.byline-field-image-upload-spinner) {
80
- width: 1.5rem;
81
- height: 1.5rem;
82
- color: var(--primary-400);
83
- animation: byline-image-upload-spin 1s linear infinite;
84
- }
93
+ .spinner,
94
+ :global(.byline-field-image-upload-spinner) {
95
+ width: 1.5rem;
96
+ height: 1.5rem;
97
+ color: var(--primary-400);
98
+ animation: byline-image-upload-spin 1s linear infinite;
99
+ }
85
100
 
86
- @keyframes byline-image-upload-spin {
87
- to {
88
- transform: rotate(360deg);
101
+ @keyframes byline-image-upload-spin {
102
+ to {
103
+ transform: rotate(360deg);
104
+ }
89
105
  }
90
- }
91
106
 
92
- .icon,
93
- :global(.byline-field-image-upload-icon) {
94
- width: 1.75rem;
95
- height: 1.75rem;
96
- opacity: 0.6;
97
- }
107
+ .icon,
108
+ :global(.byline-field-image-upload-icon) {
109
+ width: 1.75rem;
110
+ height: 1.75rem;
111
+ opacity: 0.6;
112
+ }
98
113
 
99
- .label,
100
- :global(.byline-field-image-upload-label) {
101
- font-size: var(--font-size-xs);
102
- font-weight: var(--font-weight-medium);
103
- }
114
+ .label,
115
+ :global(.byline-field-image-upload-label) {
116
+ font-size: var(--font-size-xs);
117
+ font-weight: var(--font-weight-medium);
118
+ }
104
119
 
105
- .action,
106
- :global(.byline-field-image-upload-action) {
107
- color: var(--primary-400);
108
- text-decoration: underline;
109
- text-underline-offset: 2px;
110
- }
120
+ .action,
121
+ :global(.byline-field-image-upload-action) {
122
+ color: var(--primary-400);
123
+ text-decoration: underline;
124
+ text-underline-offset: 2px;
125
+ }
111
126
 
112
- .hint,
113
- :global(.byline-field-image-upload-hint) {
114
- color: var(--gray-500);
115
- font-size: 0.65rem;
116
- }
127
+ .hint,
128
+ :global(.byline-field-image-upload-hint) {
129
+ color: var(--gray-500);
130
+ font-size: 0.65rem;
131
+ }
117
132
 
118
- .error,
119
- :global(.byline-field-image-upload-error) {
120
- margin-top: 0.375rem;
121
- color: var(--red-400);
122
- font-size: var(--font-size-xs);
133
+ .error,
134
+ :global(.byline-field-image-upload-error) {
135
+ margin-top: 0.375rem;
136
+ color: var(--red-400);
137
+ font-size: var(--font-size-xs);
138
+ }
123
139
  }
@@ -1,37 +1,53 @@
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
  * LocaleBadge — small inline badge shown next to a localised field label.
3
17
  *
4
18
  * Override handle: `.byline-locale-badge`
5
19
  */
6
20
 
7
- .badge,
8
- :global(.byline-locale-badge) {
9
- display: inline-flex;
10
- align-items: center;
11
- gap: 0.125rem;
12
- margin-left: 0.375rem;
13
- padding: 0.125rem 0.375rem;
14
- border: var(--border-width-thin) var(--border-style-solid) var(--yellow-400);
15
- border-radius: var(--border-radius-sm);
16
- background-color: var(--yellow-100);
17
- color: var(--yellow-800);
18
- font-size: 0.6rem;
19
- font-weight: var(--font-weight-semibold);
20
- line-height: 1;
21
- letter-spacing: var(--letter-spacing-wide);
22
- text-transform: uppercase;
23
- pointer-events: none;
24
- user-select: none;
25
- vertical-align: middle;
26
- }
27
-
28
- /* ─── Dark theme variants ───────────────────────────────────── */
29
-
30
- :is([data-theme="dark"], :global(.dark)) {
21
+ @layer byline-components.cms {
31
22
  .badge,
32
23
  :global(.byline-locale-badge) {
33
- border-color: var(--yellow-700);
34
- background-color: oklch(from var(--yellow-900) l c h / 0.4);
35
- color: var(--yellow-400);
24
+ display: inline-flex;
25
+ align-items: center;
26
+ gap: 0.125rem;
27
+ margin-left: 0.375rem;
28
+ padding: 0.125rem 0.375rem;
29
+ border: var(--border-width-thin) var(--border-style-solid) var(--yellow-400);
30
+ border-radius: var(--border-radius-sm);
31
+ background-color: var(--yellow-100);
32
+ color: var(--yellow-800);
33
+ font-size: 0.6rem;
34
+ font-weight: var(--font-weight-semibold);
35
+ line-height: 1;
36
+ letter-spacing: var(--letter-spacing-wide);
37
+ text-transform: uppercase;
38
+ pointer-events: none;
39
+ user-select: none;
40
+ vertical-align: middle;
41
+ }
42
+
43
+ /* ─── Dark theme variants ───────────────────────────────────── */
44
+
45
+ :is([data-theme="dark"], :global(.dark)) {
46
+ .badge,
47
+ :global(.byline-locale-badge) {
48
+ border-color: var(--yellow-700);
49
+ background-color: oklch(from var(--yellow-900) l c h / 0.4);
50
+ color: var(--yellow-400);
51
+ }
36
52
  }
37
53
  }
@@ -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
  * RelationDisplay — shared cell renderer for relation picker rows and the
3
17
  * relation-summary selected-value tile.
@@ -8,29 +22,31 @@
8
22
  * .byline-relation-cell-right — cell with align: right
9
23
  */
10
24
 
11
- .cell,
12
- :global(.byline-relation-cell) {
13
- min-width: 0;
14
- color: var(--gray-700);
15
- font-size: var(--font-size-sm);
16
- overflow: hidden;
17
- text-overflow: ellipsis;
18
- white-space: nowrap;
19
- }
25
+ @layer byline-components.cms {
26
+ .cell,
27
+ :global(.byline-relation-cell) {
28
+ min-width: 0;
29
+ color: var(--gray-700);
30
+ font-size: var(--font-size-sm);
31
+ overflow: hidden;
32
+ text-overflow: ellipsis;
33
+ white-space: nowrap;
34
+ }
20
35
 
21
- .cell-center,
22
- :global(.byline-relation-cell-center) {
23
- text-align: center;
24
- }
36
+ .cell-center,
37
+ :global(.byline-relation-cell-center) {
38
+ text-align: center;
39
+ }
25
40
 
26
- .cell-right,
27
- :global(.byline-relation-cell-right) {
28
- text-align: right;
29
- }
41
+ .cell-right,
42
+ :global(.byline-relation-cell-right) {
43
+ text-align: right;
44
+ }
30
45
 
31
- :is([data-theme="dark"], :global(.dark)) {
32
- .cell,
33
- :global(.byline-relation-cell) {
34
- color: var(--gray-100);
46
+ :is([data-theme="dark"], :global(.dark)) {
47
+ .cell,
48
+ :global(.byline-relation-cell) {
49
+ color: var(--gray-100);
50
+ }
35
51
  }
36
52
  }