@dereekb/dbx-web 13.19.0 → 13.20.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/eslint/package.json +4 -4
- package/fesm2022/dereekb-dbx-web-style-demo.mjs +12 -2
- package/fesm2022/dereekb-dbx-web-style-demo.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web.mjs +17 -8
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/extension/calendar/_calendar.scss +16 -8
- package/lib/extension/table/_table.scss +6 -1
- package/lib/interaction/style/_style.scss +1 -4
- package/lib/layout/column/_column.scss +7 -1
- package/lib/layout/content/_content.scss +76 -15
- package/lib/layout/list/_list.scss +125 -8
- package/lib/router/layout/sidenav/_sidenav.scss +6 -0
- package/lib/style/_root-variables.scss +13 -0
- package/lib/style/_style-demo.scss +16 -0
- package/lib/style/_variables.scss +36 -0
- package/package.json +7 -7
- package/types/dereekb-dbx-web-style-demo.d.ts +5 -2
- package/types/dereekb-dbx-web.d.ts +9 -3
|
@@ -8980,9 +8980,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
8980
8980
|
* Wraps content in a recessed "pit" container with optional scrollable overflow and rounded corners.
|
|
8981
8981
|
* Useful for displaying bounded content areas such as lists or previews with a constrained height.
|
|
8982
8982
|
*
|
|
8983
|
-
* Pits round their corners by default. Pass `[
|
|
8983
|
+
* Pits round their corners by default. Pass `[square]="true"` to square the pit — this applies the
|
|
8984
8984
|
* common `.dbx-corners-none` opt-out utility rather than a pit-specific class.
|
|
8985
8985
|
*
|
|
8986
|
+
* When `[scrollable]` is set the pit frame (padding, background, corners) stays fixed and an inner
|
|
8987
|
+
* `.dbx-content-pit-scrollable-content` wrapper does the scrolling — wrap the body in that element so
|
|
8988
|
+
* the frame doesn't shift at the scroll extremes. The resolved max height is published as the
|
|
8989
|
+
* `--dbx-content-pit-scrollable-max-height` custom property, which the inner wrapper reads.
|
|
8990
|
+
*
|
|
8986
8991
|
* @dbxWebComponent
|
|
8987
8992
|
* @dbxWebSlug content-pit
|
|
8988
8993
|
* @dbxWebCategory layout
|
|
@@ -8999,7 +9004,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
8999
9004
|
*/
|
|
9000
9005
|
class DbxContentPitDirective {
|
|
9001
9006
|
scrollable = input(...(ngDevMode ? [undefined, { debugName: "scrollable" }] : /* istanbul ignore next */ []));
|
|
9002
|
-
|
|
9007
|
+
square = input(false, ...(ngDevMode ? [{ debugName: "square" }] : /* istanbul ignore next */ []));
|
|
9003
9008
|
scrollableHeightSignal = computed(() => {
|
|
9004
9009
|
let scrollable = this.scrollable();
|
|
9005
9010
|
let scrollableHeight;
|
|
@@ -9029,8 +9034,12 @@ class DbxContentPitDirective {
|
|
|
9029
9034
|
}
|
|
9030
9035
|
return scrollableHeight ?? null;
|
|
9031
9036
|
}, ...(ngDevMode ? [{ debugName: "scrollableHeightSignal" }] : /* istanbul ignore next */ []));
|
|
9037
|
+
// The pit always publishes its own scroll cap so the `.dbx-content-pit-scrollable-content`
|
|
9038
|
+
// wrapper reads it directly rather than inheriting the global `--dbx-content-pit-scrollable-max-height`
|
|
9039
|
+
// default (140px) from the theme root. `none` when not scrollable lets the wrapper grow freely.
|
|
9040
|
+
scrollableMaxHeightSignal = computed(() => this.scrollableHeightSignal() ?? 'none', ...(ngDevMode ? [{ debugName: "scrollableMaxHeightSignal" }] : /* istanbul ignore next */ []));
|
|
9032
9041
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxContentPitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
9033
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxContentPitDirective, isStandalone: true, selector: "dbx-content-pit, [dbxContentPit]", inputs: { scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null },
|
|
9042
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.11", type: DbxContentPitDirective, isStandalone: true, selector: "dbx-content-pit, [dbxContentPit]", inputs: { scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, square: { classPropertyName: "square", publicName: "square", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.dbx-content-pit-scrollable": "scrollableHeightSignal() != null", "class.dbx-corners-none": "square()", "style.--dbx-content-pit-scrollable-max-height": "scrollableMaxHeightSignal()" }, classAttribute: "d-block dbx-content-pit" }, ngImport: i0 });
|
|
9034
9043
|
}
|
|
9035
9044
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxContentPitDirective, decorators: [{
|
|
9036
9045
|
type: Directive,
|
|
@@ -9039,12 +9048,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImpo
|
|
|
9039
9048
|
host: {
|
|
9040
9049
|
class: 'd-block dbx-content-pit',
|
|
9041
9050
|
'[class.dbx-content-pit-scrollable]': 'scrollableHeightSignal() != null',
|
|
9042
|
-
'[class.dbx-corners-none]': '
|
|
9043
|
-
'[style
|
|
9051
|
+
'[class.dbx-corners-none]': 'square()',
|
|
9052
|
+
'[style.--dbx-content-pit-scrollable-max-height]': 'scrollableMaxHeightSignal()'
|
|
9044
9053
|
},
|
|
9045
9054
|
standalone: true
|
|
9046
9055
|
}]
|
|
9047
|
-
}], propDecorators: { scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }],
|
|
9056
|
+
}], propDecorators: { scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }], square: [{ type: i0.Input, args: [{ isSignal: true, alias: "square", required: false }] }] } });
|
|
9048
9057
|
|
|
9049
9058
|
/**
|
|
9050
9059
|
* Displays a preview of text content with options to copy to clipboard and download as a file. Supports loading states for async content retrieval.
|
|
@@ -9108,11 +9117,11 @@ class DbxDownloadTextViewComponent extends AbstractDbxClipboardDirective {
|
|
|
9108
9117
|
this.expandPreview.update((value) => !value);
|
|
9109
9118
|
}
|
|
9110
9119
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDownloadTextViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
9111
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxDownloadTextViewComponent, isStandalone: true, selector: "dbx-download-text-view", inputs: { showDownloadButton: { classPropertyName: "showDownloadButton", publicName: "showDownloadButton", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null }, showPreview: { classPropertyName: "showPreview", publicName: "showPreview", isSignal: true, isRequired: false, transformFunction: null }, showExpandPreviewButton: { classPropertyName: "showExpandPreviewButton", publicName: "showExpandPreviewButton", isSignal: true, isRequired: false, transformFunction: null }, expandPreview: { classPropertyName: "expandPreview", publicName: "expandPreview", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, contentState: { classPropertyName: "contentState", publicName: "contentState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandPreview: "expandPreviewChange" }, viewQueries: [{ propertyName: "downloadButton", first: true, predicate: ["downloadButton"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear()\" [text]=\"loadingText()\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <dbx-content-pit [scrollable]=\"!expandPreview()\" class=\"dbx-download-text-preview dbx-json dbx-mb3\">\n @if (showExpandPreviewButton()) {\n
|
|
9120
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.11", type: DbxDownloadTextViewComponent, isStandalone: true, selector: "dbx-download-text-view", inputs: { showDownloadButton: { classPropertyName: "showDownloadButton", publicName: "showDownloadButton", isSignal: true, isRequired: false, transformFunction: null }, loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null }, showPreview: { classPropertyName: "showPreview", publicName: "showPreview", isSignal: true, isRequired: false, transformFunction: null }, showExpandPreviewButton: { classPropertyName: "showExpandPreviewButton", publicName: "showExpandPreviewButton", isSignal: true, isRequired: false, transformFunction: null }, expandPreview: { classPropertyName: "expandPreview", publicName: "expandPreview", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, contentState: { classPropertyName: "contentState", publicName: "contentState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandPreview: "expandPreviewChange" }, viewQueries: [{ propertyName: "downloadButton", first: true, predicate: ["downloadButton"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear()\" [text]=\"loadingText()\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <dbx-content-pit [scrollable]=\"!expandPreview()\" class=\"dbx-download-text-preview dbx-json dbx-mb3\">\n <div class=\"dbx-content-pit-scrollable-content\">\n @if (showExpandPreviewButton()) {\n <dbx-button class=\"dbx-content-pit-floating-button\" [raised]=\"true\" [icon]=\"expandPreview() ? 'unfold_less' : 'unfold_more'\" (buttonClick)=\"toggleExpandPreview()\"></dbx-button>\n }\n {{ contentDataSignal() }}\n </div>\n </dbx-content-pit>\n }\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n @if (showDownloadButton()) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-download-blob-button [config]=\"downloadConfigSignal()\"></dbx-download-blob-button>\n }\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "diameter", "linear", "loading", "error", "context"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1$2.DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1$2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1$2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i1$2.DbxActionButtonDirective, selector: "[dbxActionButton]", inputs: ["dbxActionButtonEcho"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "customContent", "allowClickPropagation", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: DbxDownloadBlobButtonComponent, selector: "dbx-download-blob-button", inputs: ["config"] }, { kind: "directive", type: DbxContentPitDirective, selector: "dbx-content-pit, [dbxContentPit]", inputs: ["scrollable", "square"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
9112
9121
|
}
|
|
9113
9122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.11", ngImport: i0, type: DbxDownloadTextViewComponent, decorators: [{
|
|
9114
9123
|
type: Component,
|
|
9115
|
-
args: [{ selector: 'dbx-download-text-view', standalone: true, imports: [NgTemplateOutlet, DbxLoadingComponent, DbxActionModule, DbxActionButtonDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxDownloadBlobButtonComponent, DbxContentPitDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear()\" [text]=\"loadingText()\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <dbx-content-pit [scrollable]=\"!expandPreview()\" class=\"dbx-download-text-preview dbx-json dbx-mb3\">\n @if (showExpandPreviewButton()) {\n
|
|
9124
|
+
args: [{ selector: 'dbx-download-text-view', standalone: true, imports: [NgTemplateOutlet, DbxLoadingComponent, DbxActionModule, DbxActionButtonDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxDownloadBlobButtonComponent, DbxContentPitDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear()\" [text]=\"loadingText()\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <dbx-content-pit [scrollable]=\"!expandPreview()\" class=\"dbx-download-text-preview dbx-json dbx-mb3\">\n <div class=\"dbx-content-pit-scrollable-content\">\n @if (showExpandPreviewButton()) {\n <dbx-button class=\"dbx-content-pit-floating-button\" [raised]=\"true\" [icon]=\"expandPreview() ? 'unfold_less' : 'unfold_more'\" (buttonClick)=\"toggleExpandPreview()\"></dbx-button>\n }\n {{ contentDataSignal() }}\n </div>\n </dbx-content-pit>\n }\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n @if (showDownloadButton()) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-download-blob-button [config]=\"downloadConfigSignal()\"></dbx-download-blob-button>\n }\n </div>\n </div>\n</ng-template>\n" }]
|
|
9116
9125
|
}], propDecorators: { downloadButton: [{ type: i0.ViewChild, args: ['downloadButton', { ...{ read: ElementRef }, isSignal: true }] }], showDownloadButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDownloadButton", required: false }] }], loadingText: [{ type: i0.Input, args: [{ isSignal: true, alias: "loadingText", required: false }] }], linear: [{ type: i0.Input, args: [{ isSignal: true, alias: "linear", required: false }] }], showTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTitle", required: false }] }], showPreview: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPreview", required: false }] }], showExpandPreviewButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showExpandPreviewButton", required: false }] }], expandPreview: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandPreview", required: false }] }, { type: i0.Output, args: ["expandPreviewChange"] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "content", required: false }] }], contentState: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentState", required: false }] }] } });
|
|
9117
9126
|
|
|
9118
9127
|
/**
|