@dereekb/dbx-web 13.17.0 → 13.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_index.scss +4 -1
- package/eslint/package.json +4 -4
- package/fesm2022/dereekb-dbx-web-mapbox.mjs +2 -2
- package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web-style-demo.mjs +1698 -0
- package/fesm2022/dereekb-dbx-web-style-demo.mjs.map +1 -0
- package/fesm2022/dereekb-dbx-web-table.mjs +1 -1
- package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web.mjs +460 -333
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/button/_button.scss +74 -98
- package/lib/extension/pdf/_pdf.scss +5 -5
- package/lib/extension/table/_table.scss +2 -2
- package/lib/interaction/detach/_detach.scss +22 -2
- package/lib/interaction/dialog/_dialog.scss +4 -8
- package/lib/interaction/popup/_popup.scss +1 -2
- package/lib/interaction/prompt/_prompt.scss +7 -2
- package/lib/layout/avatar/_avatar.scss +8 -0
- package/lib/layout/bar/_bar.scss +41 -2
- package/lib/layout/card/_card.scss +191 -3
- package/lib/layout/column/_column.scss +3 -3
- package/lib/layout/content/_content.scss +24 -9
- package/lib/layout/list/_list.scss +83 -6
- package/lib/layout/section/_section.scss +7 -8
- package/lib/layout/style/_style.scss +44 -9
- package/lib/layout/text/_text.scss +73 -29
- package/lib/loading/_loading.scss +9 -2
- package/lib/router/layout/navbar/_navbar.scss +14 -0
- package/lib/router/layout/sidenav/_sidenav.scss +2 -2
- package/lib/style/_core.scss +4 -0
- package/lib/style/_corners.scss +79 -0
- package/lib/style/_root-variables.scss +17 -0
- package/lib/style/_shapes.scss +56 -0
- package/lib/style/_style-demo.scss +183 -0
- package/lib/style/_variables.scss +8 -1
- package/package.json +11 -7
- package/style-demo/README.md +12 -0
- package/types/dereekb-dbx-web-style-demo.d.ts +883 -0
- package/types/dereekb-dbx-web.d.ts +170 -79
- package/lib/style/_m2-visual-compat.scss +0 -120
package/lib/button/_button.scss
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
@use '../style/theming';
|
|
5
5
|
|
|
6
6
|
// MARK: Variables
|
|
7
|
-
$button-spacer-width:
|
|
7
|
+
$button-spacer-width: var(--dbx-padding-2);
|
|
8
8
|
$big-button-height: 46px; // 33% bigger
|
|
9
9
|
|
|
10
10
|
// MARK: Mixin
|
|
@@ -16,11 +16,11 @@ $big-button-height: 46px; // 33% bigger
|
|
|
16
16
|
/// @see-also button-wide
|
|
17
17
|
.dbx-button-big,
|
|
18
18
|
.dbx-button-large {
|
|
19
|
-
--mat-button-text-container-height: #{$big-button-height};
|
|
20
|
-
--mat-button-filled-container-height: #{$big-button-height};
|
|
21
|
-
--mat-button-protected-container-height: #{$big-button-height};
|
|
22
|
-
--mat-button-outlined-container-height: #{$big-button-height};
|
|
23
|
-
--mat-button-tonal-container-height: #{$big-button-height};
|
|
19
|
+
--mat-button-text-container-height: var(--dbx-button-big-height, #{$big-button-height});
|
|
20
|
+
--mat-button-filled-container-height: var(--dbx-button-big-height, #{$big-button-height});
|
|
21
|
+
--mat-button-protected-container-height: var(--dbx-button-big-height, #{$big-button-height});
|
|
22
|
+
--mat-button-outlined-container-height: var(--dbx-button-big-height, #{$big-button-height});
|
|
23
|
+
--mat-button-tonal-container-height: var(--dbx-button-big-height, #{$big-button-height});
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
/// @dbx-utility button-form-field-height
|
|
@@ -68,7 +68,7 @@ $big-button-height: 46px; // 33% bigger
|
|
|
68
68
|
/// @see-also button-grow
|
|
69
69
|
.dbx-button-wide {
|
|
70
70
|
.dbx-button {
|
|
71
|
-
min-width: 120px;
|
|
71
|
+
min-width: var(--dbx-button-wide-min-width, 120px);
|
|
72
72
|
max-width: 100%;
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -81,12 +81,12 @@ $big-button-height: 46px; // 33% bigger
|
|
|
81
81
|
> dbx-button,
|
|
82
82
|
> dbx-anchor {
|
|
83
83
|
display: inline-block;
|
|
84
|
-
padding: 0
|
|
84
|
+
padding: 0 var(--dbx-padding-2) var(--dbx-padding-2) 0;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
> button,
|
|
88
88
|
> dbx-icon-button {
|
|
89
|
-
margin: 0
|
|
89
|
+
margin: 0 var(--dbx-padding-2) var(--dbx-padding-2) 0;
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -138,7 +138,7 @@ $big-button-height: 46px; // 33% bigger
|
|
|
138
138
|
|
|
139
139
|
.dbx-button-text-option-button {
|
|
140
140
|
.dbx-button {
|
|
141
|
-
margin-bottom:
|
|
141
|
+
margin-bottom: var(--dbx-padding-2);
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
.dbx-base-button .mdc-button__label {
|
|
@@ -180,7 +180,7 @@ $big-button-height: 46px; // 33% bigger
|
|
|
180
180
|
align-items: flex-start;
|
|
181
181
|
|
|
182
182
|
> * {
|
|
183
|
-
margin-bottom:
|
|
183
|
+
margin-bottom: var(--dbx-padding-2) !important;
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
|
|
@@ -190,23 +190,30 @@ $big-button-height: 46px; // 33% bigger
|
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
// dbx-color interactions
|
|
193
|
+
// `DbxColorDirective` is a pure token provider — it sets `--dbx-bg-color-current` /
|
|
194
|
+
// `--dbx-color-current` and adds the `.dbx-color` marker, but never paints the
|
|
195
|
+
// host itself; the named `.dbx-{color}-bg` classes it applies are token-only too.
|
|
196
|
+
// `<dbx-button>` hosts the directive (via `hostDirectives`) and pushes its
|
|
197
|
+
// resolved color (active echo > `color` input > `buttonStyle.color`) into it —
|
|
198
|
+
// so use the button's `color` input, never `[dbxColor]`, on a `dbx-button`. The
|
|
199
|
+
// standalone `<dbx-progress-spinner-button>` / `<dbx-progress-bar-button>` take
|
|
200
|
+
// `[dbxColor]` directly. The rules below map the host tokens onto the Material
|
|
201
|
+
// button vars per variant on the inner `.mdc-button.dbx-base-button`. Scoped on
|
|
202
|
+
// the host marker so a button inside a `[dbxColor]` section doesn't repaint from
|
|
203
|
+
// inherited tokens — only a directly-colored button host reacts. `:not(.dbx-default)`
|
|
204
|
+
// guard: the host directive always adds the `.dbx-color` marker, so an uncolored
|
|
205
|
+
// button (marked `dbx-default`) keeps native Material styling. `buttonColor` on
|
|
206
|
+
// `DbxProgressButtonConfig` was removed.
|
|
193
207
|
$color-value: theming.$dbx-bg-color;
|
|
194
208
|
$contrast-value: theming.$dbx-color;
|
|
195
|
-
$disabled-color-value: theming.$dbx-disabled-color;
|
|
196
|
-
$disabled-contrast-value: theming.$dbx-disabled-color-contrast;
|
|
197
209
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
// default button
|
|
209
|
-
&:not(.dbx-default) {
|
|
210
|
+
dbx-button.dbx-color:not(.dbx-default),
|
|
211
|
+
dbx-progress-spinner-button.dbx-color:not(.dbx-default),
|
|
212
|
+
dbx-spinner-button.dbx-color:not(.dbx-default),
|
|
213
|
+
dbx-progress-bar-button.dbx-color:not(.dbx-default),
|
|
214
|
+
dbx-bar-button.dbx-color:not(.dbx-default) {
|
|
215
|
+
.mdc-button.dbx-base-button {
|
|
216
|
+
// text/basic buttons
|
|
210
217
|
background: none;
|
|
211
218
|
--mat-button-text-label-text-color: #{$color-value};
|
|
212
219
|
--mat-button-text-ripple-color: color-mix(in srgb, #{$color-value} 12%, transparent);
|
|
@@ -216,93 +223,62 @@ $big-button-height: 46px; // 33% bigger
|
|
|
216
223
|
.mat-mdc-progress-bar {
|
|
217
224
|
--mat-progress-bar-active-indicator-color: #{$color-value};
|
|
218
225
|
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// raised buttons
|
|
222
|
-
&.mat-mdc-raised-button.dbx-default {
|
|
223
|
-
color: var(--mat-button-protected-label-text-color, var(--mat-sys-primary));
|
|
224
|
-
}
|
|
225
226
|
|
|
226
|
-
|
|
227
|
-
|
|
227
|
+
// raised buttons
|
|
228
|
+
&.mat-mdc-raised-button {
|
|
229
|
+
background: var(--mat-button-protected-container-color);
|
|
228
230
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
231
|
+
--mat-button-protected-container-color: #{$color-value};
|
|
232
|
+
--mat-button-protected-label-text-color: #{$contrast-value};
|
|
233
|
+
--mat-button-protected-state-layer-color: #{$contrast-value};
|
|
234
|
+
--mat-button-protected-ripple-color: color-mix(in srgb, #{$contrast-value} 12%, transparent);
|
|
233
235
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
+
&.mat-mdc-button-disabled {
|
|
237
|
+
background-color: var(--mat-button-protected-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent));
|
|
238
|
+
}
|
|
236
239
|
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
// stroked/outlined buttons
|
|
240
|
-
&.mat-mdc-outlined-button.dbx-default {
|
|
241
|
-
color: var(--mat-button-outlined-label-text-color, var(--mat-sys-primary));
|
|
242
|
-
}
|
|
243
240
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
241
|
+
// stroked/outlined buttons
|
|
242
|
+
&.mat-mdc-outlined-button {
|
|
243
|
+
--mat-button-outlined-container-color: #{$contrast-value};
|
|
244
|
+
--mat-button-outlined-label-text-color: #{$color-value};
|
|
245
|
+
--mat-button-outlined-state-layer-color: #{$color-value};
|
|
246
|
+
--mat-button-outlined-ripple-color: color-mix(in srgb, #{$color-value} 12%, transparent);
|
|
249
247
|
|
|
250
|
-
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
// flat buttons
|
|
254
|
-
&.mat-mdc-unelevated-button.dbx-default {
|
|
255
|
-
color: var(--mat-button-filled-label-text-color, var(--mat-sys-primary));
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
&.mat-mdc-unelevated-button:not(.dbx-default) {
|
|
259
|
-
background: var(--mat-button-filled-container-color);
|
|
260
|
-
|
|
261
|
-
--mat-button-filled-container-color: #{$color-value};
|
|
262
|
-
--mat-button-filled-label-text-color: #{$contrast-value};
|
|
263
|
-
--mat-button-filled-state-layer-color: #{$contrast-value};
|
|
264
|
-
--mat-button-filled-ripple-color: color-mix(in srgb, #{$contrast-value} 12%, transparent);
|
|
265
|
-
|
|
266
|
-
&.mat-mdc-button-disabled {
|
|
267
|
-
background-color: var(--mat-button-protected-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent));
|
|
248
|
+
--mat-progress-spinner-active-indicator-color: #{$color-value};
|
|
268
249
|
}
|
|
269
|
-
}
|
|
270
250
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
color: var(--mat-icon-button-icon-color);
|
|
275
|
-
}
|
|
251
|
+
// flat buttons
|
|
252
|
+
&.mat-mdc-unelevated-button {
|
|
253
|
+
background: var(--mat-button-filled-container-color);
|
|
276
254
|
|
|
277
|
-
|
|
278
|
-
|
|
255
|
+
--mat-button-filled-container-color: #{$color-value};
|
|
256
|
+
--mat-button-filled-label-text-color: #{$contrast-value};
|
|
257
|
+
--mat-button-filled-state-layer-color: #{$contrast-value};
|
|
258
|
+
--mat-button-filled-ripple-color: color-mix(in srgb, #{$contrast-value} 12%, transparent);
|
|
279
259
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
// tonal buttons
|
|
286
|
-
&.mat-mdc-tonal-button.dbx-default {
|
|
287
|
-
color: var(--mat-button-tonal-label-text-color, var(--mat-sys-primary));
|
|
288
|
-
background: rgb(from var(--mat-button-tonal-label-text-color) r g b / calc(alpha * 0.06));
|
|
289
|
-
}
|
|
260
|
+
&.mat-mdc-button-disabled {
|
|
261
|
+
background-color: var(--mat-button-protected-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent));
|
|
262
|
+
}
|
|
263
|
+
}
|
|
290
264
|
|
|
291
|
-
|
|
292
|
-
|
|
265
|
+
// icon buttons
|
|
266
|
+
&.mat-mdc-icon-button {
|
|
267
|
+
background: none;
|
|
293
268
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
}
|
|
269
|
+
--mat-icon-button-icon-color: var(--dbx-button-icon-color, #{$color-value});
|
|
270
|
+
--mat-icon-button-ripple-color: color-mix(in srgb, #{$color-value} 12%, transparent);
|
|
271
|
+
--mat-icon-button-state-layer-color: #{$color-value};
|
|
272
|
+
}
|
|
299
273
|
|
|
300
|
-
|
|
301
|
-
&.mat-mdc-raised-button,
|
|
302
|
-
&.mat-mdc-unelevated-button,
|
|
303
|
-
&.mat-mdc-outlined-button,
|
|
274
|
+
// tonal buttons
|
|
304
275
|
&.mat-mdc-tonal-button {
|
|
305
|
-
|
|
276
|
+
background: rgb(from #{$color-value} r g b / calc(alpha * 0.12));
|
|
277
|
+
|
|
278
|
+
--mat-button-tonal-container-color: color-mix(in srgb, #{$color-value} 12%, transparent);
|
|
279
|
+
--mat-button-tonal-label-text-color: #{$contrast-value};
|
|
280
|
+
--mat-button-tonal-ripple-color: color-mix(in srgb, #{$contrast-value} 12%, transparent);
|
|
281
|
+
--mat-button-tonal-state-layer-color: #{$contrast-value};
|
|
306
282
|
}
|
|
307
283
|
}
|
|
308
284
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
display: flex;
|
|
8
8
|
align-items: center;
|
|
9
9
|
gap: 8px;
|
|
10
|
-
margin-top:
|
|
10
|
+
margin-top: var(--dbx-padding-3);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.dbx-pdf-merge-editor-size-warning,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
align-items: center;
|
|
18
18
|
gap: 8px;
|
|
19
19
|
padding: 8px 12px;
|
|
20
|
-
margin-top:
|
|
20
|
+
margin-top: var(--dbx-padding-3);
|
|
21
21
|
border-radius: var(--mat-sys-corner-small);
|
|
22
22
|
font: var(--mat-sys-body-medium);
|
|
23
23
|
}
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
.dbx-pdf-merge-editor-file-upload-header:not(:empty) {
|
|
49
|
-
margin-bottom:
|
|
49
|
+
margin-bottom: var(--dbx-padding-2);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
.dbx-pdf-merge-editor-file-upload-label {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
display: flex;
|
|
58
58
|
flex-direction: column;
|
|
59
59
|
gap: 4px;
|
|
60
|
-
margin-top:
|
|
60
|
+
margin-top: var(--dbx-padding-2);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
.dbx-pdf-preview-frame {
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
border-radius: var(--mat-sys-corner-extra-small);
|
|
121
121
|
background-color: var(--mat-sys-secondary-container);
|
|
122
122
|
color: var(--mat-sys-on-secondary-container);
|
|
123
|
-
font-size:
|
|
123
|
+
font-size: var(--mat-sys-label-small-size);
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
.dbx-pdf-merge-entry-encrypted-chip {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
@mixin core() {
|
|
8
8
|
.dbx-table-view {
|
|
9
9
|
.dbx-table-view-table-wrapper {
|
|
10
|
-
max-height: 600px;
|
|
10
|
+
max-height: var(--dbx-table-view-max-height, 600px);
|
|
11
11
|
overflow: auto;
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
// MARK: Full summary row
|
|
47
47
|
.dbx-table-view-full-summary-row-container > .mat-mdc-row {
|
|
48
|
-
border-top-color: var(--mat-table-row-item-outline-color, var(--mat-
|
|
48
|
+
border-top-color: var(--mat-table-row-item-outline-color, var(--mat-sys-outline-variant));
|
|
49
49
|
border-top-width: var(--mat-table-row-item-outline-width, 1px);
|
|
50
50
|
border-top-style: solid;
|
|
51
51
|
}
|
|
@@ -5,7 +5,6 @@ $dbx-detach-controls-height: 33px;
|
|
|
5
5
|
$dbx-detach-content-padding: 8px;
|
|
6
6
|
$dbx-detach-content-padding-top: 2px;
|
|
7
7
|
$dbx-detach-controls-vertical-padding: 4px;
|
|
8
|
-
$dbx-detach-border-radius: 4px;
|
|
9
8
|
|
|
10
9
|
// MARK: Mixin
|
|
11
10
|
@mixin core() {
|
|
@@ -29,7 +28,7 @@ $dbx-detach-border-radius: 4px;
|
|
|
29
28
|
display: flex;
|
|
30
29
|
align-items: center;
|
|
31
30
|
padding: $dbx-detach-controls-vertical-padding $dbx-detach-content-padding;
|
|
32
|
-
border-bottom: 1px solid
|
|
31
|
+
border-bottom: 1px solid var(--mat-sys-outline-variant);
|
|
33
32
|
box-sizing: border-box;
|
|
34
33
|
color: var(--mat-sys-on-surface);
|
|
35
34
|
background: var(--mat-sys-surface);
|
|
@@ -52,6 +51,27 @@ $dbx-detach-border-radius: 4px;
|
|
|
52
51
|
.dbx-detach-overlay {
|
|
53
52
|
height: 100%;
|
|
54
53
|
overflow: hidden;
|
|
54
|
+
|
|
55
|
+
// The moved component host element (an arbitrary tag that defaults to inline) needs to fill
|
|
56
|
+
// the fixed-height overlay pane so its content chain can establish a flex column that scrolls.
|
|
57
|
+
> * {
|
|
58
|
+
display: block;
|
|
59
|
+
height: 100%;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Inside the fixed-height overlay (vs. the viewport-based in-page mode), the content fills the
|
|
63
|
+
// pane and the container flexes to scroll within it rather than against the viewport height.
|
|
64
|
+
.dbx-detach-content {
|
|
65
|
+
height: 100%;
|
|
66
|
+
display: flex;
|
|
67
|
+
flex-direction: column;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.dbx-detach-content-container {
|
|
71
|
+
flex: 1 1 auto;
|
|
72
|
+
min-height: 0;
|
|
73
|
+
max-height: none;
|
|
74
|
+
}
|
|
55
75
|
}
|
|
56
76
|
|
|
57
77
|
.dbx-detach-overlay-host {
|
|
@@ -2,10 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
// MARK: Variables
|
|
4
4
|
$max-dialog-width: 90vw;
|
|
5
|
-
$mat-dialog-close-icon-size: 48px;
|
|
6
|
-
$mat-dialog-close-icon-half-size: $mat-dialog-close-icon-size / 2;
|
|
7
|
-
$mat-dialog-container-padding: 18px;
|
|
8
|
-
$mat-dialog-container-close-button-padding: $mat-dialog-container-padding;
|
|
9
5
|
$dbx-dialog-content-close-edge-padding: 4px;
|
|
10
6
|
$dbx-dialog-content-close-top-offset: $dbx-dialog-content-close-edge-padding;
|
|
11
7
|
$dbx-dialog-content-close-right-offset: $dbx-dialog-content-close-edge-padding;
|
|
@@ -23,7 +19,7 @@ $dbx-dialog-content-close-right-offset: $dbx-dialog-content-close-edge-padding;
|
|
|
23
19
|
/// @scope component-class
|
|
24
20
|
.dbx-dialog-content {
|
|
25
21
|
display: block;
|
|
26
|
-
padding:
|
|
22
|
+
padding: var(--dbx-dialog-content-padding, var(--dbx-padding-4));
|
|
27
23
|
}
|
|
28
24
|
|
|
29
25
|
.dbx-dialog-content-with-header {
|
|
@@ -32,7 +28,7 @@ $dbx-dialog-content-close-right-offset: $dbx-dialog-content-close-edge-padding;
|
|
|
32
28
|
$dbx-dialog-content-header-padding: 18px;
|
|
33
29
|
|
|
34
30
|
.dbx-dialog-content-close.dbx-dialog-content-close-padding {
|
|
35
|
-
padding-bottom:
|
|
31
|
+
padding-bottom: var(--dbx-padding-3);
|
|
36
32
|
}
|
|
37
33
|
|
|
38
34
|
.dbx-dialog-content-header {
|
|
@@ -79,7 +75,7 @@ $dbx-dialog-content-close-right-offset: $dbx-dialog-content-close-edge-padding;
|
|
|
79
75
|
}
|
|
80
76
|
|
|
81
77
|
.dbx-dialog-content-close.dbx-dialog-content-close-padding {
|
|
82
|
-
padding-bottom:
|
|
78
|
+
padding-bottom: var(--dbx-dialog-content-padding, var(--dbx-padding-4));
|
|
83
79
|
|
|
84
80
|
> .dbx-dialog-content-close-button {
|
|
85
81
|
top: $dbx-dialog-content-close-edge-padding;
|
|
@@ -98,7 +94,7 @@ $dbx-dialog-content-close-right-offset: $dbx-dialog-content-close-edge-padding;
|
|
|
98
94
|
}
|
|
99
95
|
|
|
100
96
|
.dbx-dialog-content-100.dbx-dialog-content-100-padded-closed.dbx-dialog-content {
|
|
101
|
-
height: calc(100% -
|
|
97
|
+
height: calc(100% - (var(--dbx-dialog-content-padding, var(--dbx-padding-4)) * 3));
|
|
102
98
|
}
|
|
103
99
|
}
|
|
104
100
|
|
|
@@ -7,7 +7,6 @@ $dbx-popup-content-padding-top: 2px;
|
|
|
7
7
|
|
|
8
8
|
$dbx-popup-container-margin: 16px;
|
|
9
9
|
$dbx-popup-controls-vertical-padding: 4px;
|
|
10
|
-
$dbx-popup-border-radius: 4px;
|
|
11
10
|
|
|
12
11
|
// MARK: Mixin
|
|
13
12
|
@mixin core() {
|
|
@@ -36,7 +35,7 @@ $dbx-popup-border-radius: 4px;
|
|
|
36
35
|
display: flex;
|
|
37
36
|
align-items: center;
|
|
38
37
|
padding: $dbx-popup-controls-vertical-padding $dbx-popup-content-padding;
|
|
39
|
-
border-bottom: 1px solid
|
|
38
|
+
border-bottom: 1px solid var(--mat-sys-outline-variant);
|
|
40
39
|
box-sizing: border-box;
|
|
41
40
|
}
|
|
42
41
|
|
|
@@ -13,13 +13,18 @@ $dbx-popup-controls-height: 33px;
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
/// @dbx-utility prompt-box
|
|
16
|
-
/// @intent centered prompt panel — auto-margined max-width box with a 40px inset (compose with `.elevate` to lift it with elevation 2
|
|
16
|
+
/// @intent centered prompt panel — auto-margined max-width box with a 40px inset (override via `--dbx-prompt-box-padding`) and a "medium" corner radius (override via `--dbx-prompt-box-border-radius`); compose with `.elevate` to lift it with elevation 2
|
|
17
17
|
/// @role layout
|
|
18
18
|
/// @see-also content-box, content-elevate
|
|
19
19
|
.dbx-prompt-box {
|
|
20
20
|
margin: auto;
|
|
21
|
-
padding: 40px;
|
|
21
|
+
padding: var(--dbx-prompt-box-padding, 40px);
|
|
22
22
|
max-width: $box-max-width;
|
|
23
|
+
// Visible via the `.elevate` shadow (default) or any app-supplied background;
|
|
24
|
+
// the box itself intentionally has no background. Deliberately NOT chained
|
|
25
|
+
// through `--mat-dialog-container-shape` — a prompt box is a page surface,
|
|
26
|
+
// not a dialog.
|
|
27
|
+
border-radius: var(--dbx-prompt-box-border-radius, var(--mat-sys-corner-medium, 12px));
|
|
23
28
|
|
|
24
29
|
&.elevate {
|
|
25
30
|
@include theming.elevation(2);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use '../../style/theming';
|
|
2
|
+
@use '../style/style';
|
|
2
3
|
|
|
3
4
|
// MARK: Variables
|
|
4
5
|
$icon-to-avatar-size-ratio: 0.65;
|
|
@@ -109,6 +110,13 @@ $initials-to-avatar-size-ratio: 0.4;
|
|
|
109
110
|
user-select: none;
|
|
110
111
|
}
|
|
111
112
|
|
|
113
|
+
// `<dbx-avatar-view>` applies a curated `[dbxColor]` config to the initials
|
|
114
|
+
// surface; paint its background/text from those tokens. The `:not(.dbx-default)`
|
|
115
|
+
// guard keeps a blank-name (uncolored) avatar from painting.
|
|
116
|
+
.dbx-avatar-view-initials.dbx-color:not(.dbx-default) {
|
|
117
|
+
@include style.dbx-color-surface();
|
|
118
|
+
}
|
|
119
|
+
|
|
112
120
|
/// @dbx-utility avatar-view-circle
|
|
113
121
|
/// @intent circle modifier for `.dbx-avatar-view` — `border-radius: 50%`
|
|
114
122
|
/// @role layout
|
package/lib/layout/bar/_bar.scss
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use '../../style/theming';
|
|
2
|
+
@use '../style/style';
|
|
2
3
|
|
|
3
4
|
// MARK: Variables
|
|
4
5
|
$pagebar-height-var: theming.$page-navbar-height-var;
|
|
@@ -36,6 +37,33 @@ $bar-fixed-height: 40px;
|
|
|
36
37
|
color: var(--mat-sys-on-surface);
|
|
37
38
|
}
|
|
38
39
|
|
|
40
|
+
// Colored bar surface. `[dbxColor]` on the host provides the tokens + the
|
|
41
|
+
// `.dbx-color` marker; the bar paints from them here, scoped on the marker so
|
|
42
|
+
// a bar nested inside a `[dbxColor]` section doesn't repaint from inherited
|
|
43
|
+
// tokens. Mirrors the `mat-card.dbx-color` model.
|
|
44
|
+
// `:not(.dbx-default)` guard: `[dbxColor]` always adds the `.dbx-color` marker,
|
|
45
|
+
// and a nullish color resolves to the `dbx-default` token class (no
|
|
46
|
+
// `--dbx-bg-color-current`), so the guard keeps an uncolored bar from painting.
|
|
47
|
+
.dbx-bar.dbx-color:not(.dbx-default) {
|
|
48
|
+
@include style.dbx-color-surface();
|
|
49
|
+
|
|
50
|
+
&.dbx-color-tonal {
|
|
51
|
+
color: var(#{theming.$dbx-bg-color-var});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// `<dbx-bar-header>` forwards a host-level `[dbxColor]` down to its inner
|
|
56
|
+
// `<dbx-bar>`: the `.dbx-color` marker + tokens land on the header host (tokens
|
|
57
|
+
// inherit), so paint the inner bar here. Scoped on the header marker so only a
|
|
58
|
+
// directly-colored header paints.
|
|
59
|
+
.dbx-bar-header.dbx-color:not(.dbx-default) .dbx-bar {
|
|
60
|
+
@include style.dbx-color-surface();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.dbx-bar-header.dbx-color.dbx-color-tonal:not(.dbx-default) .dbx-bar {
|
|
64
|
+
color: var(#{theming.$dbx-bg-color-var});
|
|
65
|
+
}
|
|
66
|
+
|
|
39
67
|
/// @dbx-utility bar-background
|
|
40
68
|
/// @intent paint a `.dbx-bar` with the `--mat-sys-surface-container` background
|
|
41
69
|
/// @role layout
|
|
@@ -55,9 +83,20 @@ $bar-fixed-height: 40px;
|
|
|
55
83
|
}
|
|
56
84
|
|
|
57
85
|
// MARK: Bar Colors
|
|
58
|
-
//
|
|
86
|
+
// Colored pagebar surface. `[dbxColor]` on the `<dbx-pagebar>` /
|
|
87
|
+
// `<dbx-sidenav-pagebar>` host provides the tokens + the `.dbx-color` marker
|
|
88
|
+
// (tokens inherit); map the inner `mat-toolbar`'s Material color tokens to them.
|
|
89
|
+
// Scoped on the host marker so only a directly-colored pagebar paints.
|
|
90
|
+
dbx-pagebar.dbx-color mat-toolbar,
|
|
91
|
+
dbx-sidenav-pagebar.dbx-color mat-toolbar {
|
|
92
|
+
--mat-toolbar-container-background-color: color-mix(in srgb, var(#{theming.$dbx-bg-color-var}) var(#{theming.$dbx-bg-tone-var}, 100%), transparent);
|
|
93
|
+
--mat-toolbar-container-text-color: var(#{theming.$dbx-color-var});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// DEPRECATED back-compat: the `.dbx-bar-{color}` classes were previously applied
|
|
97
|
+
// by `DbxPagebarComponent`'s `color` input (now removed in favor of `[dbxColor]`).
|
|
98
|
+
// Kept for downstream templates that still apply them directly.
|
|
59
99
|
// Uses Material toolbar CSS tokens for background and text color.
|
|
60
|
-
// Background uses color-mix with surface-container for consistent dark-mode contrast.
|
|
61
100
|
/// @dbx-utility bar-primary
|
|
62
101
|
/// @intent paint a `mat-toolbar`/`.dbx-pagebar` with the `--dbx-primary-color` palette via Material's toolbar tokens
|
|
63
102
|
/// @role layout
|