@dereekb/dbx-web 13.19.0 → 13.21.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.
@@ -161,6 +161,19 @@
161
161
  #{theming.$dbx-outline-variant-color-var}: var(--mat-sys-outline-variant);
162
162
  #{theming.$dbx-error-color-var}: var(--mat-sys-error);
163
163
 
164
+ // Shared border system — base divider color + opacity knob, blended into a single
165
+ // semi-transparent border color. Components apply var(--dbx-border-color-current);
166
+ // override --dbx-border-color or --dbx-border-opacity (globally here, or locally on a
167
+ // scope) and the computed value recomputes automatically at the point of use.
168
+ #{theming.$dbx-border-color-var}: var(--mat-sys-outline-variant);
169
+ #{theming.$dbx-border-opacity-var}: 60%;
170
+ #{theming.$dbx-border-color-current-var}: color-mix(in srgb, var(--dbx-border-color) var(--dbx-border-opacity), transparent);
171
+
172
+ // Shared divider color — defaults to the computed semi-transparent border so dbx-table-view,
173
+ // dbx-two-column, dbx-calendar (and any other) dividers stay consistent. Override here for an
174
+ // app-wide divider retint, or override a component's own divider token for a one-off.
175
+ #{theming.$dbx-divider-color-var}: var(--dbx-border-color-current);
176
+
164
177
  // Curated color set (avatar initials, etc.) — selects light/dark values from the theme's theme-type.
165
178
  @include curated.curated-color-variables($theme-config);
166
179
  }
@@ -115,6 +115,16 @@
115
115
  @return ('--dbx-anchor-list-item-border-radius': $value);
116
116
  }
117
117
 
118
+ /// Builds the dbx-sidenav-only trailing-edge shape override map for a single corner-radius value.
119
+ ///
120
+ /// Backs the `sidenav-corner-*` levers: re-points the nested `mat-sidenav` drawer's top/bottom trailing-edge
121
+ /// radius tokens (`--dbx-sidenav-top-corner-radius` / `--dbx-sidenav-bottom-corner-radius`, extra-large by
122
+ /// default) together so the rounded drawer edge flips live. Independent of every other shape lever — the
123
+ /// sidenav reads its own tokens. Private to this module (`-` prefix).
124
+ @function -dbx-style-demo-sidenav-shape-map($value) {
125
+ @return ('--dbx-sidenav-top-corner-radius': $value, '--dbx-sidenav-bottom-corner-radius': $value);
126
+ }
127
+
118
128
  /// Map of demo template key -> CSS custom-property overrides emitted for that template's debug class.
119
129
  $dbx-style-demo-templates: (
120
130
  // M3 corner-radius scale levers. Each re-points the component shape tokens that `dbx-components-shapes()`
@@ -157,6 +167,12 @@ $dbx-style-demo-templates: (
157
167
  'anchor-list-corner-medium': -dbx-style-demo-anchor-list-shape-map(var(--mat-sys-corner-medium)),
158
168
  'anchor-list-corner-large': -dbx-style-demo-anchor-list-shape-map(var(--mat-sys-corner-large)),
159
169
  'anchor-list-corner-extra-large': -dbx-style-demo-anchor-list-shape-map(var(--mat-sys-corner-extra-large)),
170
+ // dbx-sidenav-only trailing-edge corner levers (own 'Sidenav Shape' toggle group), independent of every other
171
+ // shape lever (the sidenav drawer reads its own --dbx-sidenav-top/bottom-corner-radius tokens). Only the three
172
+ // requested stops are exposed: none (square), medium, and extra (extra-large, the drawer's default).
173
+ 'sidenav-corner-none': -dbx-style-demo-sidenav-shape-map(0),
174
+ 'sidenav-corner-medium': -dbx-style-demo-sidenav-shape-map(var(--mat-sys-corner-medium)),
175
+ 'sidenav-corner-extra': -dbx-style-demo-sidenav-shape-map(var(--mat-sys-corner-extra-large)),
160
176
  // Tints surfaces toward the primary color by mixing the theme's own system tokens — stays theme-correct.
161
177
  'surface-tint': (
162
178
  '--mat-sys-surface': color-mix(in srgb, var(--mat-sys-primary) 8%, var(--mat-sys-surface)),
@@ -157,6 +157,37 @@ $dbx-outline-variant-color-var: --dbx-outline-variant-color;
157
157
  /// @see --mat-sys-error
158
158
  $dbx-error-color-var: --dbx-error-color;
159
159
 
160
+ // Shared border system — a base color + an opacity knob blended into a single
161
+ // semi-transparent border color. Components apply --dbx-border-color-current and
162
+ // can tune either input token locally without touching the others.
163
+ /// Base border color for the shared semi-transparent border system. Defaults to `--mat-sys-outline-variant` (the M3 divider color). Blended with `--dbx-border-opacity` to produce `--dbx-border-color-current`.
164
+ /// @intent border base color, divider base color, outline base color
165
+ /// @role color
166
+ /// @see --mat-sys-outline-variant
167
+ /// @see --dbx-border-opacity
168
+ /// @see --dbx-border-color-current
169
+ $dbx-border-color-var: --dbx-border-color;
170
+ /// Opacity applied to `--dbx-border-color` when computing the effective border color. A percentage (e.g. `70%`). Lower it for a fainter border, raise it toward `100%` for a solid divider.
171
+ /// @intent border opacity, divider transparency, border alpha, semi-transparent border opacity
172
+ /// @role misc
173
+ /// @see --dbx-border-color
174
+ /// @see --dbx-border-color-current
175
+ $dbx-border-opacity-var: --dbx-border-opacity;
176
+ /// Effective, semi-transparent border color — a `color-mix` of `--dbx-border-color` at `--dbx-border-opacity`. Apply this directly to `border` / `border-top` / `border-bottom`. Overriding either input token (globally or on a local scope) recomputes this automatically.
177
+ /// @intent border color, divider color, semi-transparent border color, computed border color
178
+ /// @role color
179
+ /// @anti-use Don't hardcode `border: 1px solid rgba(0,0,0,0.1)`; use this token so the color and opacity stay themeable.
180
+ /// @see --dbx-border-color
181
+ /// @see --dbx-border-opacity
182
+ $dbx-border-color-current-var: --dbx-border-color-current;
183
+
184
+ /// Shared divider color for component dividers/separators (dbx-table-view summary rule, dbx-two-column boundary, dbx-calendar cell borders, etc.). Defaults to `--dbx-border-color-current` so every divider inherits the themeable semi-transparent border by default; override this single token (globally or on a local scope) to retint all dividers at once, or override a component's own divider token to retint just that one.
185
+ /// @intent divider color, separator color, shared divider, component divider color
186
+ /// @role color
187
+ /// @anti-use Don't hardcode a per-component divider color; default it to this token so dividers stay consistent and themeable.
188
+ /// @see --dbx-border-color-current
189
+ $dbx-divider-color-var: --dbx-divider-color;
190
+
160
191
  /// Per-app additional offset subtracted from the app-height base. Set to a non-zero value to shrink `--dbx-app-height` by a fixed amount (e.g. for a sticky footer). Defaults to `0px`.
161
192
  /// @intent app height offset, app height adjustment, shrink app height
162
193
  /// @role size
@@ -323,6 +354,11 @@ $dbx-outline-color: var($dbx-outline-color-var);
323
354
  $dbx-outline-variant-color: var($dbx-outline-variant-color-var);
324
355
  $dbx-error-color: var($dbx-error-color-var);
325
356
 
357
+ $dbx-border-color: var($dbx-border-color-var);
358
+ $dbx-border-opacity: var($dbx-border-opacity-var);
359
+ $dbx-border-color-current: var($dbx-border-color-current-var);
360
+ $dbx-divider-color: var($dbx-divider-color-var);
361
+
326
362
  /// Border radius for the `[dbxContentPit]`, applied by default to every pit. Defaults to `var(--mat-sys-corner-medium)`.
327
363
  /// @intent pit radius, rounded pit corner, content pit radius
328
364
  /// @role radius
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web",
3
- "version": "13.19.0",
3
+ "version": "13.21.0",
4
4
  "sideEffects": [
5
5
  "*.scss",
6
6
  "*.css"
@@ -13,12 +13,12 @@
13
13
  "@angular/material": "^21.2.9",
14
14
  "@angular/platform-browser": "21.2.11",
15
15
  "@cantoo/pdf-lib": "^2.6.5",
16
- "@dereekb/browser": "13.19.0",
17
- "@dereekb/date": "13.19.0",
18
- "@dereekb/dbx-core": "13.19.0",
19
- "@dereekb/rxjs": "13.19.0",
20
- "@dereekb/util": "13.19.0",
21
- "@dereekb/vitest": "13.19.0",
16
+ "@dereekb/browser": "13.21.0",
17
+ "@dereekb/date": "13.21.0",
18
+ "@dereekb/dbx-core": "13.21.0",
19
+ "@dereekb/rxjs": "13.21.0",
20
+ "@dereekb/util": "13.21.0",
21
+ "@dereekb/vitest": "13.21.0",
22
22
  "@ngbracket/ngx-layout": "^21.0.0",
23
23
  "@ngrx/component-store": "^21.1.0",
24
24
  "@ngrx/effects": "^21.1.0",
@@ -818,7 +818,9 @@ declare class DbxStyleDemoTypeRolesSectionComponent {
818
818
  * `'Shape'` toggle group, so only one is active at a time; `pill-controls` (`'Controls'`), `button-corner-*`
819
819
  * (`'Button Shape'`), `list-corner-*` (`'List Shape'`) and `anchor-list-corner-*` (`'Anchor List Shape'`) each live in
820
820
  * their own group so they compose on top of a corner lever instead of radio-excluding it — their debug classes are
821
- * emitted after `corner-shape-*` / `pill-controls` so they win the shape tokens they share.
821
+ * emitted after `corner-shape-*` / `pill-controls` so they win the shape tokens they share. The `sidenav-corner-*`
822
+ * levers (`'Sidenav Shape'`) re-round the nested `mat-sidenav` drawer's own trailing-edge tokens and are independent
823
+ * of every other shape lever.
822
824
  */
823
825
  declare const DBX_WEB_STYLE_DEMO_TEMPLATES: DbxStyleDemoStyleTemplate[];
824
826
  /**
@@ -827,7 +829,8 @@ declare const DBX_WEB_STYLE_DEMO_TEMPLATES: DbxStyleDemoStyleTemplate[];
827
829
  * The `corner-shape-*` levers share the `'Shape'` group (mutually exclusive); the component-scoped `button-corner-*`
828
830
  * (`'Button Shape'`), `list-corner-*` (`'List Shape'`) and `anchor-list-corner-*` (`'Anchor List Shape'`) levers are
829
831
  * mutually exclusive within their own groups but compose with `'Shape'` and `'Controls'`, letting a global corner
830
- * preset be overridden for just buttons, just `dbx-list` rows, or just `dbx-anchor-list` (nav) rows. `pill-controls`
832
+ * preset be overridden for just buttons, just `dbx-list` rows, or just `dbx-anchor-list` (nav) rows. The
833
+ * `sidenav-corner-*` levers (`'Sidenav Shape'`) re-round the `dbx-sidenav` drawer edge independently. `pill-controls`
831
834
  * (`'Controls'`), `surface-tint` and `vivid-primary` are independent toggles in their own groups.
832
835
  */
833
836
  declare const DBX_WEB_STYLE_DEMO_TEMPLATE_TOGGLES: DbxStyleDemoTemplateToggle[];
@@ -2448,9 +2448,14 @@ type DbxContentPitScrollableHeightSetting = 'small' | 'medium' | 'large';
2448
2448
  * Wraps content in a recessed "pit" container with optional scrollable overflow and rounded corners.
2449
2449
  * Useful for displaying bounded content areas such as lists or previews with a constrained height.
2450
2450
  *
2451
- * Pits round their corners by default. Pass `[rounded]="false"` to square the pit — this applies the
2451
+ * Pits round their corners by default. Pass `[square]="true"` to square the pit — this applies the
2452
2452
  * common `.dbx-corners-none` opt-out utility rather than a pit-specific class.
2453
2453
  *
2454
+ * When `[scrollable]` is set the pit frame (padding, background, corners) stays fixed and an inner
2455
+ * `.dbx-content-pit-scrollable-content` wrapper does the scrolling — wrap the body in that element so
2456
+ * the frame doesn't shift at the scroll extremes. The resolved max height is published as the
2457
+ * `--dbx-content-pit-scrollable-max-height` custom property, which the inner wrapper reads.
2458
+ *
2454
2459
  * @dbxWebComponent
2455
2460
  * @dbxWebSlug content-pit
2456
2461
  * @dbxWebCategory layout
@@ -2467,10 +2472,11 @@ type DbxContentPitScrollableHeightSetting = 'small' | 'medium' | 'large';
2467
2472
  */
2468
2473
  declare class DbxContentPitDirective {
2469
2474
  readonly scrollable: _angular_core.InputSignal<Maybe<DbxContentPitScrollableInput>>;
2470
- readonly rounded: _angular_core.InputSignal<boolean>;
2475
+ readonly square: _angular_core.InputSignal<boolean>;
2471
2476
  readonly scrollableHeightSignal: _angular_core.Signal<string | null>;
2477
+ readonly scrollableMaxHeightSignal: _angular_core.Signal<string>;
2472
2478
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DbxContentPitDirective, never>;
2473
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DbxContentPitDirective, "dbx-content-pit, [dbxContentPit]", never, { "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2479
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DbxContentPitDirective, "dbx-content-pit, [dbxContentPit]", never, { "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; "square": { "alias": "square"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2474
2480
  }
2475
2481
 
2476
2482
  /**