@dereekb/dbx-web 13.21.0 → 13.23.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/index.cjs.js +424 -15
- package/eslint/index.esm.js +423 -16
- package/eslint/package.json +5 -4
- package/eslint/src/lib/dbx-action.template-util.d.ts +106 -0
- package/eslint/src/lib/index.d.ts +2 -0
- package/eslint/src/lib/plugin.d.ts +4 -0
- package/eslint/src/lib/require-action-error-handler.rule.d.ts +30 -0
- package/eslint/src/lib/require-action-value-source.rule.d.ts +36 -0
- package/lib/interaction/prompt/_prompt.scss +13 -5
- package/lib/layout/column/_column.scss +8 -3
- package/lib/layout/list/_list.scss +3 -0
- package/lib/style/_theming.scss +0 -2
- package/package.json +7 -7
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type AstNode } from './util';
|
|
2
|
+
/**
|
|
3
|
+
* ESLint rule definition shape used by `require-action-error-handler`.
|
|
4
|
+
*/
|
|
5
|
+
export interface DbxWebRequireActionErrorHandlerRuleDefinition {
|
|
6
|
+
readonly meta: {
|
|
7
|
+
readonly type: 'suggestion';
|
|
8
|
+
readonly fixable: undefined;
|
|
9
|
+
readonly docs: {
|
|
10
|
+
readonly description: string;
|
|
11
|
+
readonly recommended: boolean;
|
|
12
|
+
};
|
|
13
|
+
readonly messages: {
|
|
14
|
+
readonly missingErrorHandler: string;
|
|
15
|
+
};
|
|
16
|
+
readonly schema: readonly object[];
|
|
17
|
+
};
|
|
18
|
+
create(context: AstNode): Record<string, (node: AstNode) => void>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* ESLint (Angular template) rule that flags a `dbxAction` which runs work (has a
|
|
22
|
+
* handler or a trigger) but presents no errors to the user.
|
|
23
|
+
*
|
|
24
|
+
* Satisfied by ANY error directive in the context: `dbxActionSnackbarError`,
|
|
25
|
+
* `[dbxActionError]`, `[dbxActionSnackbar]`, or `[dbxActionErrorHandler]`.
|
|
26
|
+
*
|
|
27
|
+
* Shares the same context-scoping bail conditions as `require-action-value-source`
|
|
28
|
+
* (`[dbxActionSource]` on self/ancestor, or a nested `dbxAction`).
|
|
29
|
+
*/
|
|
30
|
+
export declare const DBX_WEB_REQUIRE_ACTION_ERROR_HANDLER_RULE: DbxWebRequireActionErrorHandlerRuleDefinition;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type AstNode } from './util';
|
|
2
|
+
/**
|
|
3
|
+
* ESLint rule definition shape used by `require-action-value-source`.
|
|
4
|
+
*/
|
|
5
|
+
export interface DbxWebRequireActionValueSourceRuleDefinition {
|
|
6
|
+
readonly meta: {
|
|
7
|
+
readonly type: 'problem';
|
|
8
|
+
readonly fixable: undefined;
|
|
9
|
+
readonly docs: {
|
|
10
|
+
readonly description: string;
|
|
11
|
+
readonly recommended: boolean;
|
|
12
|
+
};
|
|
13
|
+
readonly messages: {
|
|
14
|
+
readonly missingValueSource: string;
|
|
15
|
+
};
|
|
16
|
+
readonly schema: readonly object[];
|
|
17
|
+
};
|
|
18
|
+
create(context: AstNode): Record<string, (node: AstNode) => void>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* ESLint (Angular template) rule that flags a `dbxAction` whose context has a
|
|
22
|
+
* trigger but no value source.
|
|
23
|
+
*
|
|
24
|
+
* Such an action hangs: clicking the trigger moves the store to TRIGGERED, but with
|
|
25
|
+
* nothing to call `readyValue()` it never advances to VALUE_READY, so the handler
|
|
26
|
+
* never runs.
|
|
27
|
+
*
|
|
28
|
+
* Targets simple, inline cases only. It bails (does not report) when the value may
|
|
29
|
+
* be supplied in a way a static template scan cannot see:
|
|
30
|
+
* - `[dbxActionSource]` on the element or an ancestor (store forwarded from TS), or
|
|
31
|
+
* - a nested `dbxAction` inside the subtree (ambiguous which context owns a value source).
|
|
32
|
+
*
|
|
33
|
+
* For legitimate programmatic-value cases (or a demo intentionally showing the
|
|
34
|
+
* TRIGGERED state) suppress with `<!-- eslint-disable-next-line dereekb-dbx-web/require-action-value-source -->`.
|
|
35
|
+
*/
|
|
36
|
+
export declare const DBX_WEB_REQUIRE_ACTION_VALUE_SOURCE_RULE: DbxWebRequireActionValueSourceRuleDefinition;
|
|
@@ -13,21 +13,29 @@ $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 (override via `--dbx-prompt-box-padding`) and a "medium" corner radius (override via `--dbx-prompt-box-border-radius`); compose with `.elevate` to lift it
|
|
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 M3-style — a brighter `surface-bright` tonal wash plus a soft lift shadow
|
|
17
17
|
/// @role layout
|
|
18
18
|
/// @see-also content-box, content-elevate
|
|
19
19
|
.dbx-prompt-box {
|
|
20
20
|
margin: auto;
|
|
21
21
|
padding: var(--dbx-prompt-box-padding, 40px);
|
|
22
22
|
max-width: $box-max-width;
|
|
23
|
-
// Visible via
|
|
24
|
-
// the box itself intentionally has no background. Deliberately
|
|
25
|
-
// through `--mat-dialog-container-shape` — a prompt box is a page surface,
|
|
23
|
+
// Visible via `.elevate` (a bright tonal surface + soft lift shadow, default) or any
|
|
24
|
+
// app-supplied background; the box itself intentionally has no background. Deliberately
|
|
25
|
+
// NOT chained through `--mat-dialog-container-shape` — a prompt box is a page surface,
|
|
26
26
|
// not a dialog.
|
|
27
27
|
border-radius: var(--dbx-prompt-box-border-radius, var(--mat-sys-corner-medium, 12px));
|
|
28
28
|
|
|
29
|
+
// M3 elevation: an elevated prompt panel reads as raised primarily through a brighter
|
|
30
|
+
// tonal surface — a low-opacity wash of the active dbxColor (`--dbx-bg-color-current`,
|
|
31
|
+
// primary by default, driven by an ancestor/host `[dbxColor]`) over `surface-bright` —
|
|
32
|
+
// plus a soft lift shadow for protection against the background, replacing the former
|
|
33
|
+
// Material elevation(2) shadow. Override `--dbx-prompt-box-elevate-tone` (percentage) to
|
|
34
|
+
// tune the wash, `--dbx-prompt-box-elevate-bg` to replace the background outright, or
|
|
35
|
+
// `--dbx-prompt-box-elevate-shadow` to retune/remove (`none`) the lift shadow.
|
|
29
36
|
&.elevate {
|
|
30
|
-
|
|
37
|
+
background: var(--dbx-prompt-box-elevate-bg, color-mix(in srgb, #{theming.$dbx-bg-color} var(--dbx-prompt-box-elevate-tone, 8%), var(--mat-sys-surface-bright)));
|
|
38
|
+
box-shadow: var(--dbx-prompt-box-elevate-shadow, var(--mat-sys-level2));
|
|
31
39
|
}
|
|
32
40
|
}
|
|
33
41
|
}
|
|
@@ -9,7 +9,7 @@ $two-columns-right-padding-size: var(--dbx-padding-2);
|
|
|
9
9
|
// MARK: Mixin
|
|
10
10
|
@mixin core() {
|
|
11
11
|
/// @dbx-utility two-column
|
|
12
|
-
/// @intent two-column page layout — fixed-width left column
|
|
12
|
+
/// @intent two-column page layout — fixed-width left column divided from the right content area by a border
|
|
13
13
|
/// @role layout
|
|
14
14
|
.dbx-two-column {
|
|
15
15
|
height: 100%;
|
|
@@ -29,13 +29,18 @@ $two-columns-right-padding-size: var(--dbx-padding-2);
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
.left-column {
|
|
32
|
-
|
|
32
|
+
/// Color of the right boundary separating the fixed left column from the right content
|
|
33
|
+
/// area (replaces the former elevation shadow). Column-specific override point; defaults
|
|
34
|
+
/// to the shared --dbx-divider-color. Retint just this boundary by overriding it, or set
|
|
35
|
+
/// it to `transparent` to hide the divider while keeping the layout box.
|
|
36
|
+
/// @role color
|
|
37
|
+
/// @intent two column divider color, two column border color, left column separator color
|
|
38
|
+
border-right: 1px solid var(--dbx-two-column-border-color, var(--dbx-divider-color));
|
|
33
39
|
|
|
34
40
|
width: $two-column-left-width;
|
|
35
41
|
flex: 0 0 auto;
|
|
36
42
|
|
|
37
43
|
overflow: auto;
|
|
38
|
-
// background: red;
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
.right-column {
|
|
@@ -188,6 +188,9 @@ $list-item-padded-min-height: 42px;
|
|
|
188
188
|
|
|
189
189
|
.dbx-list-empty-content {
|
|
190
190
|
text-align: center;
|
|
191
|
+
// Breathing room around the empty-state content so it doesn't sit flush against its container.
|
|
192
|
+
// Override point (`--dbx-list-empty-content-padding`) defaults to the global `--dbx-padding-2` spacing token.
|
|
193
|
+
padding: var(--dbx-list-empty-content-padding, var(--dbx-padding-2));
|
|
191
194
|
}
|
|
192
195
|
|
|
193
196
|
.dbx-list-content {
|
package/lib/style/_theming.scss
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/dbx-web",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.23.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.
|
|
17
|
-
"@dereekb/date": "13.
|
|
18
|
-
"@dereekb/dbx-core": "13.
|
|
19
|
-
"@dereekb/rxjs": "13.
|
|
20
|
-
"@dereekb/util": "13.
|
|
21
|
-
"@dereekb/vitest": "13.
|
|
16
|
+
"@dereekb/browser": "13.23.0",
|
|
17
|
+
"@dereekb/date": "13.23.0",
|
|
18
|
+
"@dereekb/dbx-core": "13.23.0",
|
|
19
|
+
"@dereekb/rxjs": "13.23.0",
|
|
20
|
+
"@dereekb/util": "13.23.0",
|
|
21
|
+
"@dereekb/vitest": "13.23.0",
|
|
22
22
|
"@ngbracket/ngx-layout": "^21.0.0",
|
|
23
23
|
"@ngrx/component-store": "^21.1.0",
|
|
24
24
|
"@ngrx/effects": "^21.1.0",
|