@dereekb/dbx-web 13.42.0 → 14.0.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.
@@ -5,6 +5,7 @@
5
5
  @use './zip/zip';
6
6
  @use './help/help';
7
7
  @use './pdf/pdf';
8
+ @use './download/download';
8
9
 
9
10
  @mixin all-extension-core($theme-config) {
10
11
  $calendar-enabled: 1;
@@ -36,6 +37,7 @@
36
37
  }
37
38
 
38
39
  @include pdf.core();
40
+ @include download.core();
39
41
  }
40
42
 
41
43
  @mixin all-extension-typography($theme-config-or-typography-config) {
@@ -71,4 +73,5 @@
71
73
  }
72
74
 
73
75
  @include pdf.theme($theme-config);
76
+ @include download.theme($theme-config);
74
77
  }
@@ -0,0 +1,23 @@
1
+ @use '../../style/theming';
2
+
3
+ // MARK: Mixin
4
+ @mixin core() {
5
+ // The row borrows .dbx-list-item-padded/.dbx-list-two-line-item from _list.scss, so it only needs to be
6
+ // told to fill its container — otherwise a row placed in a flex column collapses to its content width.
7
+ .dbx-file-list,
8
+ .dbx-file-list-item {
9
+ width: 100%;
10
+ }
11
+
12
+ // the details line is assembled from separate spans (a label and a date), so the gap stands in for the
13
+ // space between them that the template has no reliable way to emit
14
+ .dbx-file-list-item .item-details {
15
+ display: flex;
16
+ flex-wrap: wrap;
17
+ align-items: baseline;
18
+ column-gap: var(--dbx-file-list-item-details-gap, 0.25em);
19
+ }
20
+ }
21
+
22
+ @mixin theme($theme-config) {
23
+ }
@@ -9,13 +9,23 @@ $dbx-flex-group-columns-count: 6;
9
9
  /// @dbx-utility flex-bar
10
10
  /// @intent horizontal action bar — flex row that scrolls horizontally before wrapping
11
11
  /// @role flex
12
- /// @see-also dbx-flex-center, dbx-flex-fill
12
+ /// @see-also dbx-flex-center, dbx-flex-fill, card-horizontal
13
13
  .dbx-flex-bar {
14
14
  display: flex;
15
15
  align-items: center;
16
16
  overflow-x: auto;
17
17
  overflow-y: hidden;
18
18
 
19
+ // `overflow-x: auto` makes this a scroll container, and a `box-shadow` never
20
+ // contributes to the scrollable overflow region — so an elevated child's shadow is
21
+ // CLIPPED at the edge rather than scrolled to. With `align-items: center` and no
22
+ // fixed height the bar hugs its tallest child exactly, putting the clip edge right on
23
+ // a raised button's border box. Reserve the shadow's reach as vertical padding so it
24
+ // lives INSIDE the padding box (the same fix `.dbx-card-horizontal` uses for its
25
+ // poking tab). Block axis only: `padding-inline` would push the first button off the
26
+ // bar's leading edge, and the horizontal cut is not what reads as broken.
27
+ padding-block: var(--dbx-shadow-gutter, 4px);
28
+
19
29
  // Constrain touch targets to prevent overflow scrollbar (48px default > 40px button)
20
30
  --mat-icon-button-touch-target-size: 40px;
21
31
  --mat-button-text-touch-target-size: 40px;
@@ -47,6 +47,13 @@ $header-left-reserved-space-small-screen: 120px;
47
47
 
48
48
  display: flex;
49
49
  align-items: center;
50
+
51
+ // The header row is a `.dbx-flex-bar`, so it carries the `--dbx-shadow-gutter`
52
+ // block padding that keeps a raised button's shadow from being clipped. Border-box
53
+ // makes the header's `min-height` / `height` absorb that gutter instead of adding
54
+ // to it, so the 48px row stays 48px (40px button + the gutter) rather than growing
55
+ // to 56px and overflowing a fixed-height section-page header.
56
+ box-sizing: border-box;
50
57
  }
51
58
  }
52
59
 
@@ -119,6 +126,14 @@ $header-left-reserved-space-small-screen: 120px;
119
126
  max-height: $content-navbar-height;
120
127
  max-width: 100%;
121
128
 
129
+ // Unlike the regular `.dbx-section` header (which only sets `min-height` and can
130
+ // absorb the gutter), this row is height-LOCKED to the navbar height and its title
131
+ // already fills it. The `.dbx-flex-bar` shadow gutter would eat 8px of that budget
132
+ // and shave the title, so opt this row out. A raised button in a section-PAGE
133
+ // header therefore still clips its shadow — the pre-existing behaviour; use a
134
+ // regular `.dbx-section` header when the action needs elevation.
135
+ #{theming.$shadow-gutter-var}: 0px;
136
+
122
137
  .dbx-section-header-content-title {
123
138
  max-width: calc(80% - var(--dbx-section-page-header-reserved-space, #{$header-left-reserved-space}));
124
139
  min-width: 48px;
@@ -31,6 +31,8 @@
31
31
  #{theming.$padding-4-var}: theming.get-dbx-layout-padding($theme-config, 4);
32
32
  #{theming.$padding-5-var}: theming.get-dbx-layout-padding($theme-config, 5);
33
33
 
34
+ #{theming.$shadow-gutter-var}: 4px;
35
+
34
36
  #{theming.$two-column-left-width-var}: theming.get-dbx-two-column-left-width($theme-config);
35
37
 
36
38
  #{theming.$dbx-app-height-additional-offset-var}: 0px;
@@ -43,6 +43,16 @@ $padding-4-var: --dbx-padding-4;
43
43
  /// @utility .dbx-p5, .dbx-mb5
44
44
  $padding-5-var: --dbx-padding-5;
45
45
 
46
+ /// Shadow gutter — the room a clipping/scrolling container must reserve INSIDE its
47
+ /// padding box so an elevated child's `box-shadow` isn't clipped at the edge.
48
+ /// Sized against Material's raised-button elevation: the resting shadow reaches
49
+ /// 2.5px below the border box and the hover shadow reaches 5px, so 4px clears the
50
+ /// resting state outright and all but the faintest 12% hover layer. Raise it to 5px
51
+ /// to clear hover completely, or set it to 0px to opt out.
52
+ /// @intent shadow gutter, elevation room, keep box-shadow from being clipped
53
+ /// @role spacing
54
+ $shadow-gutter-var: --dbx-shadow-gutter;
55
+
46
56
  $two-column-left-width-var: --dbx-two-column-left-width;
47
57
 
48
58
  $dbx-color-var: --dbx-color-current;
package/package.json CHANGED
@@ -1,30 +1,30 @@
1
1
  {
2
2
  "name": "@dereekb/dbx-web",
3
- "version": "13.42.0",
3
+ "version": "14.0.0",
4
4
  "sideEffects": [
5
5
  "*.scss",
6
6
  "*.css"
7
7
  ],
8
8
  "peerDependencies": {
9
- "@angular/cdk": "^21.2.9",
10
- "@angular/common": "21.2.11",
11
- "@angular/core": "21.2.11",
12
- "@angular/forms": "21.2.11",
13
- "@angular/material": "^21.2.9",
14
- "@angular/platform-browser": "21.2.11",
9
+ "@angular/cdk": "^22.1.4",
10
+ "@angular/common": "22.1.4",
11
+ "@angular/core": "22.1.4",
12
+ "@angular/forms": "22.1.4",
13
+ "@angular/material": "^22.1.4",
14
+ "@angular/platform-browser": "22.1.4",
15
15
  "@cantoo/pdf-lib": "^2.6.5",
16
- "@dereekb/browser": "13.42.0",
17
- "@dereekb/date": "13.42.0",
18
- "@dereekb/dbx-core": "13.42.0",
19
- "@dereekb/rxjs": "13.42.0",
20
- "@dereekb/util": "13.42.0",
21
- "@dereekb/vitest": "13.42.0",
22
- "@ngbracket/ngx-layout": "^21.0.0",
23
- "@ngrx/component-store": "^21.1.0",
24
- "@ngrx/effects": "^21.1.0",
25
- "@ngrx/store": "^21.1.0",
16
+ "@dereekb/browser": "14.0.0",
17
+ "@dereekb/date": "14.0.0",
18
+ "@dereekb/dbx-core": "14.0.0",
19
+ "@dereekb/rxjs": "14.0.0",
20
+ "@dereekb/util": "14.0.0",
21
+ "@dereekb/vitest": "14.0.0",
22
+ "@ngbracket/ngx-layout": "^22.0.1",
23
+ "@ngrx/component-store": "^22.0.0",
24
+ "@ngrx/effects": "^22.0.0",
25
+ "@ngrx/store": "^22.0.0",
26
26
  "@placemarkio/geo-viewport": "^1.0.2",
27
- "@uirouter/angular": "21.0.0",
27
+ "@uirouter/angular": "22.0.0",
28
28
  "@uirouter/core": "^6.1.2",
29
29
  "@zip.js/zip.js": "^2.8.26",
30
30
  "angular-calendar": "^0.32.2",
@@ -32,8 +32,8 @@
32
32
  "date-fns": "^4.1.0",
33
33
  "linkify-string": "^4.3.2",
34
34
  "mapbox-gl": "^3.22.0",
35
- "ng-overlay-container": "^21.0.1",
36
- "ngx-infinite-scroll": "^21.0.0",
35
+ "ng-overlay-container": "^22.0.1",
36
+ "ngx-infinite-scroll": "^22.0.0",
37
37
  "ngx-mapbox-gl": "git+https://git@github.com/dereekb/ngx-mapbox-gl#3f1d25b0661bc48abbd415dc79ca7f66568bae2e",
38
38
  "rxjs": "^7.8.2"
39
39
  },
@@ -862,10 +862,6 @@ declare function provideDbxMapbox(config: ProvideDbxMapboxConfig): EnvironmentPr
862
862
  interface DbxMapboxEnvironmentOptions extends DbxMapboxConfig {
863
863
  readonly token: string;
864
864
  }
865
- /**
866
- * @deprecated use DbxMapboxEnvironmentOptions instead.
867
- */
868
- type DbxMapboxOptions = DbxMapboxEnvironmentOptions;
869
865
 
870
866
  export { DEFAULT_DBX_MAPBOX_WORKER_URL, DEFAULT_MAPBOX_CENTER, DEFAULT_MAPBOX_LAYOUT_DRAWER_WIDTH, DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD, DEFAULT_MAPBOX_STYLE, DEFAULT_MAPBOX_ZOOM, DbxMapboxChangeService, DbxMapboxConfig, DbxMapboxInjectionComponent, DbxMapboxInjectionStore, DbxMapboxInjectionStoreInjectionBlockDirective, DbxMapboxInjectionStoreProviderBlock, DbxMapboxLayoutComponent, DbxMapboxLayoutDrawerComponent, DbxMapboxLayoutVirtualResizeSyncComponent, DbxMapboxMapDirective, DbxMapboxMapStore, DbxMapboxMapStoreInjectionBlockDirective, DbxMapboxMapStoreProviderBlock, DbxMapboxMarkerComponent, DbxMapboxMarkersComponent, DbxMapboxMenuComponent, DbxMapboxModule, DbxMapboxService, KNOWN_MAPBOX_STYLES, MAPBOX_MAX_ZOOM_LEVEL, MAPBOX_MIN_ZOOM_LEVEL, configureDbxMapboxWorker, dbxMapboxColoredDotStyle, filterByMapboxViewportBound, isDbxMapboxWorkerAssetAvailable, mapboxViewportBoundFunction, mapboxZoomLevel, provideDbxMapbox, provideMapboxInjectionStoreIfParentIsUnavailable, provideMapboxStoreIfParentIsUnavailable, updateDbxMapboxMapInjectionStoreStateWithInjectionConfig, updateDbxMapboxMapInjectionStoreStateWithRemovedKey };
871
- export type { DbxMapboxClickEvent, DbxMapboxEnvironmentOptions, DbxMapboxInjectionConfig, DbxMapboxInjectionKey, DbxMapboxLayoutMode, DbxMapboxLayoutSide, DbxMapboxMapInjectionStoreState, DbxMapboxMarginCalculationSizing, DbxMapboxMarker, DbxMapboxMarkerDisplayConfig, DbxMapboxMarkerFactory, DbxMapboxMarkerPresentation, DbxMapboxMarkerSize, DbxMapboxOptions, DbxMapboxStoreBoundRefreshSettings, DbxMapboxStoreBoundRefreshType, DbxMapboxStoreState, DbxMapboxWorkerConfig, DbxMapboxWorkerConfigurationResult, FilterMapboxBoundConfig, FilterMapboxBoundReadItemValueFunction, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxEaseToOptions, MapboxEaseToPositionOptions, MapboxEventData, MapboxFitBounds, MapboxFitBoundsOptions, MapboxFitPositions, MapboxFlyTo, MapboxFlyToOptions, MapboxFlyToPositionOptions, MapboxJumpTo, MapboxJumpToPositionOptions, MapboxMapLifecycleState, MapboxMapMoveState, MapboxMapRotateState, MapboxMapZoomState, MapboxPitch, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSetStyleOptions, MapboxSnapToNorth, MapboxStyleConfig, MapboxTileSize, MapboxViewportBoundFunction, MapboxViewportBoundFunctionConfig, MapboxViewportBoundFunctionInput, MapboxViewportBoundFunctionItem, MapboxViewportBoundFunctionItemValue, MapboxZoomLevel, MapboxZoomLevelRange, ProvideDbxMapboxConfig, StringMapboxListenerPair, TypedMapboxListenerPair };
867
+ export type { DbxMapboxClickEvent, DbxMapboxEnvironmentOptions, DbxMapboxInjectionConfig, DbxMapboxInjectionKey, DbxMapboxLayoutMode, DbxMapboxLayoutSide, DbxMapboxMapInjectionStoreState, DbxMapboxMarginCalculationSizing, DbxMapboxMarker, DbxMapboxMarkerDisplayConfig, DbxMapboxMarkerFactory, DbxMapboxMarkerPresentation, DbxMapboxMarkerSize, DbxMapboxStoreBoundRefreshSettings, DbxMapboxStoreBoundRefreshType, DbxMapboxStoreState, DbxMapboxWorkerConfig, DbxMapboxWorkerConfigurationResult, FilterMapboxBoundConfig, FilterMapboxBoundReadItemValueFunction, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxEaseToOptions, MapboxEaseToPositionOptions, MapboxEventData, MapboxFitBounds, MapboxFitBoundsOptions, MapboxFitPositions, MapboxFlyTo, MapboxFlyToOptions, MapboxFlyToPositionOptions, MapboxJumpTo, MapboxJumpToPositionOptions, MapboxMapLifecycleState, MapboxMapMoveState, MapboxMapRotateState, MapboxMapZoomState, MapboxPitch, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSetStyleOptions, MapboxSnapToNorth, MapboxStyleConfig, MapboxTileSize, MapboxViewportBoundFunction, MapboxViewportBoundFunctionConfig, MapboxViewportBoundFunctionInput, MapboxViewportBoundFunctionItem, MapboxViewportBoundFunctionItemValue, MapboxZoomLevel, MapboxZoomLevelRange, ProvideDbxMapboxConfig, StringMapboxListenerPair, TypedMapboxListenerPair };