@koobiq/components 18.31.0 → 18.32.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/actions-panel/actions-panel-config.d.ts +2 -0
- package/actions-panel/actions-panel.d.ts +3 -57
- package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
- package/autocomplete/autocomplete.component.d.ts +1 -0
- package/autocomplete/autocomplete.module.d.ts +1 -1
- package/button-toggle/button-toggle.module.d.ts +3 -4
- package/code-block/code-block-highlight.d.ts +1 -2
- package/code-block/code-block.d.ts +57 -10
- package/core/common-behaviors/color.d.ts +3 -0
- package/core/common-behaviors/common-module.d.ts +16 -3
- package/core/form-field/form-field-ref.d.ts +5 -3
- package/core/option/option.d.ts +2 -2
- package/core/public-api.d.ts +1 -0
- package/core/styles/common/_select.scss +10 -24
- package/core/styles/theming/_theming.scss +0 -4
- package/core/tokens/index.d.ts +1 -0
- package/core/tokens/window.d.ts +5 -0
- package/core/validation/validation.d.ts +23 -2
- package/datepicker/datepicker-input.scss +1 -5
- package/dropdown/dropdown-trigger.directive.d.ts +1 -0
- package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
- package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
- package/esm2022/actions-panel/actions-panel.mjs +16 -113
- package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
- package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
- package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
- package/esm2022/breadcrumbs/breadcrumbs.mjs +1 -1
- package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
- package/esm2022/code-block/code-block-highlight.mjs +8 -12
- package/esm2022/code-block/code-block.mjs +60 -18
- package/esm2022/core/common-behaviors/color.mjs +4 -1
- package/esm2022/core/common-behaviors/common-module.mjs +19 -26
- package/esm2022/core/form-field/form-field-ref.mjs +3 -4
- package/esm2022/core/option/option.mjs +7 -5
- package/esm2022/core/public-api.mjs +2 -1
- package/esm2022/core/tokens/index.mjs +2 -0
- package/esm2022/core/tokens/window.mjs +19 -0
- package/esm2022/core/utils/utils.mjs +2 -1
- package/esm2022/core/validation/validation.mjs +21 -2
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-body.component.mjs +3 -3
- package/esm2022/datepicker/calendar-header.component.mjs +3 -3
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
- package/esm2022/file-upload/multiple-file-upload.component.mjs +2 -2
- package/esm2022/filter-bar/filter-bar.mjs +17 -3
- package/esm2022/filter-bar/filter-search.mjs +2 -2
- package/esm2022/filter-bar/filters.mjs +3 -3
- package/esm2022/filter-bar/pipes/pipe-date.mjs +5 -11
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +5 -11
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
- package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
- package/esm2022/form-field/cleaner.mjs +11 -6
- package/esm2022/form-field/error.mjs +20 -0
- package/esm2022/form-field/fieldset.mjs +84 -0
- package/esm2022/form-field/form-field-control.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +247 -74
- package/esm2022/form-field/form-field.module.mjs +59 -47
- package/esm2022/form-field/hint.mjs +10 -18
- package/esm2022/form-field/label.mjs +19 -0
- package/esm2022/form-field/password-hint.mjs +6 -5
- package/esm2022/form-field/password-toggle.mjs +52 -27
- package/esm2022/form-field/prefix.mjs +9 -3
- package/esm2022/form-field/public-api.mjs +5 -2
- package/esm2022/form-field/reactive-password-hint.mjs +65 -0
- package/esm2022/form-field/stepper.mjs +34 -16
- package/esm2022/form-field/suffix.mjs +8 -3
- package/esm2022/form-field/validate.directive.mjs +16 -19
- package/esm2022/input/input-number.mjs +7 -2
- package/esm2022/input/input.module.mjs +1 -5
- package/esm2022/modal/modal-util.mjs +2 -1
- package/esm2022/navbar/navbar-item.component.mjs +10 -11
- package/esm2022/overflow-items/overflow-items.mjs +27 -10
- package/esm2022/radio/radio.module.mjs +4 -5
- package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
- package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
- package/esm2022/select/select.component.mjs +11 -8
- package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
- package/esm2022/splitter/splitter.component.mjs +5 -3
- package/esm2022/tabs/paginated-tab-header.mjs +6 -2
- package/esm2022/tabs/tabs.module.mjs +1 -5
- package/esm2022/tags/tag-list.component.mjs +2 -2
- package/esm2022/textarea/textarea.component.mjs +7 -6
- package/esm2022/textarea/textarea.module.mjs +4 -5
- package/esm2022/timezone/timezone-select.component.mjs +6 -4
- package/esm2022/toast/toast-animations.mjs +2 -2
- package/esm2022/toast/toast.component.mjs +3 -3
- package/esm2022/toggle/toggle.component.mjs +3 -3
- package/esm2022/toggle/toggle.module.mjs +4 -5
- package/esm2022/top-bar/top-bar.mjs +2 -2
- package/esm2022/tree/padding.directive.mjs +8 -6
- package/esm2022/tree-select/tree-select.component.mjs +18 -13
- package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +5 -5
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +65 -28
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +68 -35
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +4 -4
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +3 -2
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +30 -29
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +610 -219
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +7 -5
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +1 -0
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +9 -10
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +4 -4
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +11 -8
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +1 -4
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +4 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +5 -5
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +2 -2
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +9 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +5 -3
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +3 -3
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +6 -6
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +2 -2
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +18 -13
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +7 -5
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/multiple-file-upload.component.d.ts +1 -1
- package/form-field/_fiedset-theme.scss +13 -0
- package/form-field/_form-field-theme.scss +29 -13
- package/form-field/_hint-theme.scss +21 -22
- package/form-field/cleaner.d.ts +5 -1
- package/form-field/cleaner.scss +1 -4
- package/form-field/error.d.ts +8 -0
- package/form-field/fieldset-tokens.scss +5 -0
- package/form-field/fieldset.d.ts +27 -0
- package/form-field/fieldset.scss +93 -0
- package/form-field/form-field-control.d.ts +1 -1
- package/form-field/form-field-tokens.scss +13 -3
- package/form-field/form-field.d.ts +210 -22
- package/form-field/form-field.module.d.ts +14 -12
- package/form-field/form-field.scss +58 -78
- package/form-field/hint.d.ts +5 -1
- package/form-field/hint.scss +3 -5
- package/form-field/label.d.ts +6 -0
- package/form-field/password-hint.d.ts +1 -1
- package/form-field/password-toggle.d.ts +25 -11
- package/form-field/password-toggle.scss +1 -2
- package/form-field/prefix.d.ts +2 -1
- package/form-field/public-api.d.ts +4 -1
- package/form-field/reactive-password-hint.d.ts +19 -0
- package/form-field/stepper.d.ts +20 -8
- package/form-field/stepper.scss +12 -11
- package/form-field/suffix.d.ts +2 -1
- package/form-field/validate.directive.d.ts +10 -12
- package/input/input-tokens.scss +2 -2
- package/input/input.module.d.ts +3 -4
- package/input/input.scss +1 -2
- package/navbar/navbar-item.component.d.ts +3 -1
- package/overflow-items/overflow-items.d.ts +12 -5
- package/package.json +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/radio/radio.module.d.ts +1 -2
- package/schematics/ng-add/index.js +2 -2
- package/scrollbar/scrollbar.component.d.ts +1 -0
- package/select/select-tokens.scss +5 -4
- package/select/select.component.d.ts +4 -2
- package/sidepanel/sidepanel.module.d.ts +5 -6
- package/splitter/splitter.component.d.ts +1 -0
- package/tabs/paginated-tab-header.d.ts +1 -0
- package/tabs/tabs.module.d.ts +5 -6
- package/tags/tag-list.scss +8 -4
- package/textarea/textarea.component.d.ts +1 -0
- package/textarea/textarea.module.d.ts +2 -3
- package/timepicker/timepicker.scss +1 -1
- package/toast/toast.component.scss +2 -0
- package/toggle/_toggle-theme.scss +10 -2
- package/toggle/toggle-tokens.scss +7 -1
- package/toggle/toggle.module.d.ts +1 -2
- package/toggle/toggle.scss +6 -6
- package/top-bar/top-bar.scss +48 -32
- package/tree/padding.directive.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +2 -0
- package/esm2022/form-field/form-field-errors.mjs +0 -7
- package/form-field/form-field-errors.d.ts +0 -2
|
@@ -57,7 +57,7 @@ export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase im
|
|
|
57
57
|
protected readonly customFileIcon: TemplateRef<HTMLElement>;
|
|
58
58
|
/** @docs-private */
|
|
59
59
|
readonly input: ElementRef<HTMLInputElement>;
|
|
60
|
-
private readonly listSelection
|
|
60
|
+
private readonly listSelection?;
|
|
61
61
|
private readonly fileSizeHeaderCell;
|
|
62
62
|
/** @docs-private */
|
|
63
63
|
protected readonly hint: QueryList<TemplateRef<any>>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@use './form-field-theme';
|
|
2
|
+
@use './form-field';
|
|
3
|
+
|
|
4
|
+
@mixin kbq-fieldset-theme {
|
|
5
|
+
.kbq-form-field__hint {
|
|
6
|
+
@include form-field-theme.kbq-form-field-hint-theme();
|
|
7
|
+
@include form-field-theme.kbq-form-field-hint-typography();
|
|
8
|
+
|
|
9
|
+
&:empty {
|
|
10
|
+
margin-top: 0;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
|
-
@use '../core/styles/common/tokens'
|
|
1
|
+
@use '../core/styles/common/tokens';
|
|
2
2
|
|
|
3
|
-
@mixin kbq-form-field-
|
|
3
|
+
@mixin kbq-form-field-hint-theme {
|
|
4
|
+
> .kbq-hint:not(.kbq-password-hint, .kbq-contrast-fade, .kbq-success, .kbq-warning, .kbq-error) {
|
|
5
|
+
color: var(--kbq-form-field-hint-text);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@mixin kbq-form-field-hint-typography {
|
|
10
|
+
> .kbq-hint:not(.kbq-password-hint, .kbq-reactive-password-hint, .kbq-contrast-fade, .kbq-success, .kbq-warning)
|
|
11
|
+
.kbq-hint__text {
|
|
12
|
+
@include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@mixin _kbq-form-field-state($state-name) {
|
|
4
17
|
.kbq-form-field__container {
|
|
5
18
|
border-color: var(--kbq-form-field-#{$state-name}-border-color);
|
|
6
19
|
background-color: var(--kbq-form-field-#{$state-name}-background);
|
|
@@ -27,7 +40,7 @@
|
|
|
27
40
|
|
|
28
41
|
@mixin kbq-form-field-theme() {
|
|
29
42
|
.kbq-form-field {
|
|
30
|
-
@include
|
|
43
|
+
@include _kbq-form-field-state(default);
|
|
31
44
|
|
|
32
45
|
& .kbq-input {
|
|
33
46
|
//https://css-tricks.com/almanac/selectors/a/autofill/
|
|
@@ -44,7 +57,7 @@
|
|
|
44
57
|
&.kbq-form-field_invalid,
|
|
45
58
|
// Invalid by `KbqValidateDirective`
|
|
46
59
|
&.kbq-form-field_has-validate-directive.ng-invalid {
|
|
47
|
-
@include
|
|
60
|
+
@include _kbq-form-field-state(states-error);
|
|
48
61
|
}
|
|
49
62
|
|
|
50
63
|
&.kbq-form-field-type-input,
|
|
@@ -55,7 +68,7 @@
|
|
|
55
68
|
&.kbq-form-field-type-tag-list,
|
|
56
69
|
&.kbq-form-field-type-select.cdk-keyboard-focused {
|
|
57
70
|
&.cdk-focused {
|
|
58
|
-
@include
|
|
71
|
+
@include _kbq-form-field-state(states-focused);
|
|
59
72
|
|
|
60
73
|
& .kbq-form-field__container {
|
|
61
74
|
box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-focused-focus-outline);
|
|
@@ -66,16 +79,21 @@
|
|
|
66
79
|
&.kbq-form-field_invalid,
|
|
67
80
|
// Invalid by `KbqValidateDirective`
|
|
68
81
|
&.kbq-form-field_has-validate-directive.ng-invalid {
|
|
69
|
-
@include
|
|
82
|
+
@include _kbq-form-field-state(states-error);
|
|
70
83
|
|
|
71
84
|
&.cdk-focused .kbq-form-field__container {
|
|
72
85
|
box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
|
|
73
86
|
}
|
|
87
|
+
|
|
88
|
+
& .kbq-icon.kbq-empty {
|
|
89
|
+
color: var(--kbq-form-field-states-error-text);
|
|
90
|
+
-webkit-text-fill-color: var(--kbq-form-field-states-error-text);
|
|
91
|
+
}
|
|
74
92
|
}
|
|
75
93
|
}
|
|
76
94
|
|
|
77
95
|
&.kbq-disabled {
|
|
78
|
-
@include
|
|
96
|
+
@include _kbq-form-field-state(states-disabled);
|
|
79
97
|
|
|
80
98
|
.kbq-icon.kbq-empty {
|
|
81
99
|
color: var(--kbq-form-field-states-disabled-text);
|
|
@@ -91,19 +109,17 @@
|
|
|
91
109
|
}
|
|
92
110
|
|
|
93
111
|
.kbq-form-field__hint {
|
|
94
|
-
|
|
95
|
-
color: var(--kbq-form-field-hint-text);
|
|
96
|
-
}
|
|
112
|
+
@include kbq-form-field-hint-theme();
|
|
97
113
|
}
|
|
98
114
|
}
|
|
99
115
|
}
|
|
100
116
|
|
|
101
117
|
@mixin kbq-form-field-typography() {
|
|
102
118
|
.kbq-form-field {
|
|
103
|
-
@include kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
119
|
+
@include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
104
120
|
|
|
105
|
-
.kbq-form-field__hint
|
|
106
|
-
@include kbq-
|
|
121
|
+
.kbq-form-field__hint {
|
|
122
|
+
@include kbq-form-field-hint-typography();
|
|
107
123
|
}
|
|
108
124
|
}
|
|
109
125
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
@use '../core/styles/
|
|
2
|
-
@use '../core/styles/common/tokens' as *;
|
|
1
|
+
@use '../core/styles/common/tokens';
|
|
3
2
|
|
|
4
|
-
@mixin
|
|
3
|
+
@mixin _kbq-hint-color($type, $style-name) {
|
|
5
4
|
color: var(--kbq-hint-#{$type}-#{$style-name}-text);
|
|
6
5
|
|
|
7
6
|
& .kbq-icon.kbq-empty {
|
|
@@ -12,47 +11,47 @@
|
|
|
12
11
|
@mixin kbq-hint-theme() {
|
|
13
12
|
.kbq-hint {
|
|
14
13
|
&.kbq-contrast-fade {
|
|
15
|
-
@include
|
|
14
|
+
@include _kbq-hint-color(fill-text-on, fade-contrast);
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
&.kbq-success {
|
|
19
|
-
@include
|
|
18
|
+
@include _kbq-hint-color(fill-text-on, success);
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
&.kbq-warning {
|
|
23
|
-
@include
|
|
22
|
+
@include _kbq-hint-color(fill-text-on, warning);
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
&.kbq-error {
|
|
27
|
-
@include
|
|
26
|
+
@include _kbq-hint-color(fill-text-on, error);
|
|
28
27
|
}
|
|
29
|
-
}
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
&.kbq-hint_fill-text-off {
|
|
30
|
+
&.kbq-contrast-fade {
|
|
31
|
+
@include _kbq-hint-color(fill-text-off, fade-contrast);
|
|
32
|
+
}
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
&.kbq-success {
|
|
35
|
+
@include _kbq-hint-color(fill-text-off, success);
|
|
36
|
+
}
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
38
|
+
&.kbq-warning {
|
|
39
|
+
@include _kbq-hint-color(fill-text-off, warning);
|
|
40
|
+
}
|
|
43
41
|
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
&.kbq-error {
|
|
43
|
+
@include _kbq-hint-color(fill-text-off, error);
|
|
44
|
+
}
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
@mixin kbq-hint-typography() {
|
|
51
50
|
.kbq-hint .kbq-hint__text {
|
|
52
|
-
@include kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
51
|
+
@include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
.kbq-hint.kbq-hint_compact .kbq-hint__text {
|
|
56
|
-
@include kbq-typography-level-to-styles-css-variables(typography, text-compact);
|
|
55
|
+
@include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
|
|
57
56
|
}
|
|
58
57
|
}
|
package/form-field/cleaner.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Element to be placed in end of the form field.
|
|
4
|
+
* Resets form control by click.
|
|
5
|
+
*/
|
|
2
6
|
export declare class KbqCleaner {
|
|
3
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqCleaner, never>;
|
|
4
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqCleaner, "kbq-cleaner", ["kbqCleaner"], {}, {}, never, never,
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqCleaner, "kbq-cleaner", ["kbqCleaner"], {}, {}, never, never, true, never>;
|
|
5
9
|
}
|
package/form-field/cleaner.scss
CHANGED
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
align-items: center;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
|
|
6
|
-
width: var(--kbq-form-field-size-
|
|
7
|
-
margin-right: var(--kbq-form-field-size-icon-button-margin-right);
|
|
6
|
+
width: var(--kbq-form-field-size-addon-width);
|
|
8
7
|
height: 100%;
|
|
9
|
-
|
|
10
|
-
cursor: pointer;
|
|
11
8
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { KbqHint } from './hint';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** Error text to be shown below the form field control. */
|
|
4
|
+
export declare class KbqError extends KbqHint {
|
|
5
|
+
constructor();
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqError, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqError, "kbq-error", ["kbqError"], {}, {}, never, ["[kbq-icon]", "*"], true, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** Directive for marking an element as legend of `KbqFieldset` */
|
|
4
|
+
export declare class KbqLegend {
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqLegend, never>;
|
|
6
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqLegend, "[kbqLegend]", never, {}, {}, never, never, true, never>;
|
|
7
|
+
}
|
|
8
|
+
/** Directive for marking elements as items inside `KbqFieldset` */
|
|
9
|
+
export declare class KbqFieldsetItem {
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqFieldsetItem, never>;
|
|
11
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqFieldsetItem, "[kbqFieldsetItem]", never, {}, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A group of form-fields and related controls.
|
|
15
|
+
* Container component emulating the native `fieldset` element.
|
|
16
|
+
*/
|
|
17
|
+
export declare class KbqFieldset {
|
|
18
|
+
private readonly legend;
|
|
19
|
+
/**
|
|
20
|
+
* Computes the aria-label from the inner text of the legend element.
|
|
21
|
+
* Used to enhance accessibility by labeling the group.
|
|
22
|
+
* @docs-private
|
|
23
|
+
*/
|
|
24
|
+
protected readonly ariaLabel: Signal<string | undefined>;
|
|
25
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqFieldset, never>;
|
|
26
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqFieldset, "kbq-fieldset", never, {}, {}, ["legend"], ["[kbqLegend]", "*", "kbq-error", "kbq-hint, kbq-password-hint, kbq-reactive-password-hint"], true, never>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
@use './form-field-theme';
|
|
2
|
+
@use './form-field';
|
|
3
|
+
@use './fiedset-theme';
|
|
4
|
+
|
|
5
|
+
.kbq-fieldset {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
|
|
9
|
+
.kbq-legend {
|
|
10
|
+
margin-bottom: var(--kbq-fieldset-legend-margin);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.kbq-form-field__hint {
|
|
14
|
+
@include form-field.kbq-form-field-hint-geometry();
|
|
15
|
+
|
|
16
|
+
&:empty {
|
|
17
|
+
margin-top: 0;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.kbq-form-field {
|
|
22
|
+
// set selector specifity to 0 , so focused state will override z-index
|
|
23
|
+
:where(&.kbq-form-field_invalid, &.kbq-form-field_has-validate-directive.ng-invalid) {
|
|
24
|
+
z-index: 2;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Keep form-field__container and parent heights in sync (zoom-safe)
|
|
28
|
+
.kbq-form-field__container {
|
|
29
|
+
height: 100%;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&:first-child:not(:last-child) {
|
|
33
|
+
.kbq-form-field__container,
|
|
34
|
+
.kbq-form-field__container .kbq-input {
|
|
35
|
+
border-top-right-radius: 0;
|
|
36
|
+
border-bottom-right-radius: 0;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&:not(:first-child):not(:last-child) {
|
|
41
|
+
--kbq-form-field-size-border-radius: 0;
|
|
42
|
+
|
|
43
|
+
.kbq-form-field__container {
|
|
44
|
+
border-radius: 0;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&:last-child:not(:first-child) {
|
|
49
|
+
.kbq-form-field__container,
|
|
50
|
+
.kbq-form-field__container .kbq-input {
|
|
51
|
+
border-top-left-radius: 0;
|
|
52
|
+
border-bottom-left-radius: 0;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&:not(:first-child) {
|
|
57
|
+
margin-left: calc(var(--kbq-size-border-width) * -1);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@include fiedset-theme.kbq-fieldset-theme();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.kbq-fieldset__container {
|
|
65
|
+
display: flex;
|
|
66
|
+
flex-direction: row;
|
|
67
|
+
position: relative;
|
|
68
|
+
|
|
69
|
+
> .kbq-fieldset-item {
|
|
70
|
+
&.cdk-focused,
|
|
71
|
+
&.kbq-focused {
|
|
72
|
+
z-index: 3;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&:first-child:not(:last-child) {
|
|
76
|
+
border-top-right-radius: 0;
|
|
77
|
+
border-bottom-right-radius: 0;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&:not(:first-child):not(:last-child) {
|
|
81
|
+
border-radius: 0;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&:last-child:not(:first-child) {
|
|
85
|
+
border-top-left-radius: 0;
|
|
86
|
+
border-bottom-left-radius: 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
&:not(:first-child) {
|
|
90
|
+
margin-left: calc(var(--kbq-size-border-width) * -1);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgControl } from '@angular/forms';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
/** An interface which allows a control to work inside of a `
|
|
3
|
+
/** An interface which allows a control to work inside of a `KbqFormField`. */
|
|
4
4
|
export declare abstract class KbqFormFieldControl<T> {
|
|
5
5
|
/** The value of the control. */
|
|
6
6
|
value: T | null;
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
.kbq-form-field {
|
|
2
2
|
--kbq-form-field-size-height: var(--kbq-size-3xl);
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
--kbq-form-field-size-border-width: var(--kbq-size-border-width);
|
|
4
5
|
--kbq-form-field-size-border-radius: var(--kbq-size-border-radius);
|
|
6
|
+
|
|
5
7
|
--kbq-form-field-size-icon-size: var(--kbq-size-l);
|
|
6
8
|
--kbq-form-field-size-icon-margin-left: var(--kbq-size-s);
|
|
7
9
|
--kbq-form-field-size-icon-margin-right: var(--kbq-size-s);
|
|
8
10
|
--kbq-form-field-size-icon-button-size: var(--kbq-size-xxl);
|
|
9
|
-
--kbq-form-field-size-icon-button-margin-right: var(--kbq-size-xxs);
|
|
10
11
|
--kbq-form-field-size-icon-button-margin-left: var(--kbq-size-xxs);
|
|
11
|
-
|
|
12
|
+
|
|
13
|
+
--kbq-form-field-hint-size-margin-top: var(--kbq-size-xs);
|
|
12
14
|
--kbq-form-field-hint-size-gap: var(--kbq-size-s);
|
|
15
|
+
|
|
16
|
+
--kbq-form-field-size-container-vertical-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
|
|
17
|
+
--kbq-form-field-size-container-left-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
|
|
18
|
+
--kbq-form-field-size-container-right-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
|
|
19
|
+
--kbq-form-field-size-infix-left-padding: var(--kbq-size-xs);
|
|
20
|
+
--kbq-form-field-size-infix-right-padding: var(--kbq-size-xxs);
|
|
21
|
+
|
|
22
|
+
--kbq-form-field-size-addon-width: 28px;
|
|
13
23
|
/* THEME TOKENS */
|
|
14
24
|
--kbq-form-field-default-border-color: var(--kbq-line-contrast-fade);
|
|
15
25
|
--kbq-form-field-default-background: var(--kbq-background-bg);
|