@koobiq/components 20.0.0 → 20.1.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/accordion/accordion-trigger.component.scss +0 -18
- package/accordion/accordion.component.scss +9 -2
- package/actions-panel/index.d.ts +1 -0
- package/alert/_alert-theme.scss +0 -4
- package/alert/alert-tokens.scss +4 -4
- package/app-switcher/app-switcher-dropdown-app.scss +2 -0
- package/breadcrumbs/breadcrumbs.scss +4 -0
- package/breadcrumbs/index.d.ts +2 -1
- package/button/button-group.scss +42 -2
- package/button-toggle/button-toggle.scss +23 -0
- package/button-toggle/index.d.ts +3 -1
- package/checkbox/checkbox.scss +5 -4
- package/clamped-text/index.d.ts +1 -0
- package/core/index.d.ts +402 -13
- package/core/styles/common/_animation.scss +4 -0
- package/core/styles/theming/_components-theming.scss +1 -1
- package/core/styles/theming/_scrollbar-theme.scss +4 -0
- package/datepicker/_datepicker-theme.scss +1 -1
- package/datepicker/datepicker-toggle.scss +3 -3
- package/dl/index.d.ts +1 -0
- package/dropdown/dropdown.scss +2 -2
- package/fesm2022/koobiq-components-accordion.mjs +4 -4
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +14 -5
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +2 -2
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +6 -6
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +6 -4
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +9 -6
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +4 -4
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +4 -0
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +4 -0
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +449 -112
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +5 -5
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +3 -2
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +8 -13
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +33 -22
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +974 -758
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +66 -0
- package/fesm2022/koobiq-components-flag.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +2 -2
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -2
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +27 -6
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +39 -20
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +9 -5
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +10 -9
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +178 -19
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +12 -4
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +4 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +3 -7
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +38 -16
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +4 -0
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +2 -2
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +2 -2
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +6 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +8 -6
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +19 -7
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +7 -0
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -14
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +4 -4
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +6 -0
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +132 -14
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +1 -1
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +2 -2
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +50 -2
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +44 -11
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +67 -41
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +16 -3
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/file-upload-tokens.scss +1 -0
- package/file-upload/index.d.ts +10 -7
- package/filter-bar/_filter-bar-theme.scss +86 -0
- package/filter-bar/filter-bar-tokens.scss +6 -0
- package/filter-bar/filter-bar.scss +10 -4
- package/filter-bar/filter-refresher.scss +1 -1
- package/filter-bar/filters.scss +23 -19
- package/filter-bar/index.d.ts +707 -338
- package/filter-bar/pipes/base-pipe.scss +14 -35
- package/filter-bar/pipes/pipe-date.scss +20 -14
- package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
- package/filter-bar/pipes/pipe-multiselect.scss +5 -3
- package/filter-bar/pipes/pipe-readonly.scss +4 -13
- package/filter-bar/pipes/pipe-select.scss +3 -1
- package/filter-bar/pipes/pipe-tree-select.scss +3 -1
- package/flag/flag.scss +53 -0
- package/flag/index.d.ts +44 -0
- package/icon/icon-item-tokens.scss +1 -1
- package/inline-edit/index.d.ts +5 -0
- package/inline-edit/inline-edit.scss +7 -7
- package/link/link-tokens.scss +2 -2
- package/list/index.d.ts +11 -2
- package/loader-overlay/loader-overlay-tokens.scss +1 -1
- package/modal/_modal-animation.scss +6 -6
- package/modal/_modal-theme.scss +5 -0
- package/modal/index.d.ts +3 -1
- package/modal/modal.scss +15 -0
- package/navbar/index.d.ts +1 -0
- package/navbar/navbar-item.scss +9 -0
- package/notification-center/_notification-center-theme.scss +2 -1
- package/notification-center/index.d.ts +88 -3
- package/notification-center/notification-center.scss +42 -4
- package/notification-center/notification-item.scss +3 -2
- package/overflow-items/index.d.ts +1 -0
- package/package.json +7 -3
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/progress-bar.scss +4 -0
- package/progress-spinner/progress-spinner.scss +5 -1
- package/radio/index.d.ts +1 -5
- package/radio/radio.scss +18 -4
- package/schematics/collection.json +5 -0
- package/schematics/migrations/filter-bar-signals/README.md +66 -0
- package/schematics/migrations/filter-bar-signals/data.js +72 -0
- package/schematics/migrations/filter-bar-signals/index.js +316 -0
- package/schematics/migrations/filter-bar-signals/schema.json +20 -0
- package/schematics/migrations.json +5 -0
- package/schematics/ng-add/index.js +1 -1
- package/select/index.d.ts +10 -2
- package/sidebar/index.d.ts +1 -0
- package/skeleton/skeleton.scss +4 -0
- package/split-button/_split-button-theme.scss +2 -2
- package/splitter/_splitter-theme.scss +2 -2
- package/splitter/index.d.ts +1 -0
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +3 -2
- package/tabs/index.d.ts +2 -0
- package/tabs/tab-header.scss +1 -0
- package/tabs/tabs-tokens.scss +1 -1
- package/textarea/index.d.ts +0 -1
- package/time-range/time-range.scss +0 -8
- package/timepicker/timepicker.scss +2 -2
- package/timezone/index.d.ts +1 -0
- package/title/index.d.ts +92 -2
- package/tooltip/index.d.ts +51 -3
- package/tree/_tree-theme.scss +2 -7
- package/tree/index.d.ts +19 -4
- package/tree/toggle.scss +5 -0
- package/tree/tree-option.scss +0 -4
- package/tree-select/_tree-select-theme.scss +1 -1
- package/tree-select/index.d.ts +9 -2
- package/username/index.d.ts +20 -2
|
@@ -12,15 +12,13 @@
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
.kbq-button-wrapper {
|
|
15
|
-
max-width: 320px;
|
|
15
|
+
max-width: var(--kbq-filter-bar-pipe-max-width, 320px);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
.kbq-pipe__name {
|
|
19
19
|
@include common.kbq-truncate-line();
|
|
20
20
|
|
|
21
21
|
flex: 1 1 auto;
|
|
22
|
-
|
|
23
|
-
color: var(--kbq-foreground-contrast-secondary);
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
.kbq-pipe__value {
|
|
@@ -29,21 +27,19 @@
|
|
|
29
27
|
flex: 1 1 auto;
|
|
30
28
|
|
|
31
29
|
&:not(.kbq-pipe__value_empty) {
|
|
32
|
-
margin-
|
|
30
|
+
margin-inline-start: 4px;
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
.kbq-pipe__separator {
|
|
37
35
|
z-index: 1;
|
|
38
36
|
|
|
39
|
-
margin-
|
|
40
|
-
margin-
|
|
37
|
+
margin-inline-start: -1px;
|
|
38
|
+
margin-inline-end: 0;
|
|
41
39
|
|
|
42
40
|
height: var(--kbq-size-l);
|
|
43
41
|
|
|
44
42
|
align-self: center;
|
|
45
|
-
|
|
46
|
-
color: var(--kbq-line-contrast-less);
|
|
47
43
|
}
|
|
48
44
|
|
|
49
45
|
.kbq-select:not(:hover, .kbq-active),
|
|
@@ -52,67 +48,50 @@
|
|
|
52
48
|
& + .kbq-pipe-button:not(:hover, .kbq-active)::after {
|
|
53
49
|
content: '';
|
|
54
50
|
position: absolute;
|
|
55
|
-
|
|
51
|
+
inset-inline-start: 0;
|
|
56
52
|
top: var(--kbq-size-s);
|
|
57
53
|
|
|
58
54
|
width: 1px;
|
|
59
55
|
height: var(--kbq-size-l);
|
|
60
|
-
|
|
61
|
-
background: var(--kbq-line-contrast-less);
|
|
62
56
|
}
|
|
63
57
|
}
|
|
64
58
|
|
|
65
59
|
.kbq-button.cdk-keyboard-focused {
|
|
66
60
|
z-index: 1;
|
|
67
61
|
}
|
|
68
|
-
|
|
69
|
-
&.kbq-pipe_disabled {
|
|
70
|
-
.kbq-pipe__name,
|
|
71
|
-
.kbq-pipe__value {
|
|
72
|
-
color: var(--kbq-states-foreground-disabled);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
62
|
}
|
|
76
63
|
|
|
77
64
|
.kbq-pipe.kbq-pipe_removable,
|
|
78
65
|
.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) {
|
|
79
66
|
.kbq-button {
|
|
80
|
-
border-
|
|
81
|
-
border-
|
|
82
|
-
border-
|
|
67
|
+
border-end-end-radius: unset;
|
|
68
|
+
border-start-end-radius: unset;
|
|
69
|
+
border-inline-end: none;
|
|
83
70
|
|
|
84
71
|
&.cdk-keyboard-focused::after {
|
|
85
72
|
content: '';
|
|
86
73
|
position: absolute;
|
|
87
|
-
|
|
74
|
+
inset-inline-end: 0;
|
|
88
75
|
top: 0;
|
|
89
76
|
bottom: 0;
|
|
90
77
|
width: 1px;
|
|
91
|
-
background: var(--kbq-states-line-focus-theme);
|
|
92
78
|
}
|
|
93
79
|
}
|
|
94
80
|
|
|
95
81
|
.kbq-button-icon {
|
|
96
|
-
border-
|
|
97
|
-
border-
|
|
98
|
-
border-
|
|
82
|
+
border-end-start-radius: unset;
|
|
83
|
+
border-start-start-radius: unset;
|
|
84
|
+
border-inline-start: none;
|
|
99
85
|
|
|
100
86
|
&.cdk-keyboard-focused::after {
|
|
101
87
|
content: '';
|
|
102
88
|
position: absolute;
|
|
103
|
-
|
|
89
|
+
inset-inline-start: 0;
|
|
104
90
|
top: 0;
|
|
105
91
|
bottom: 0;
|
|
106
92
|
width: 1px;
|
|
107
|
-
background: var(--kbq-states-line-focus-theme);
|
|
108
93
|
}
|
|
109
94
|
}
|
|
110
95
|
}
|
|
111
96
|
|
|
112
|
-
|
|
113
|
-
color: var(--kbq-foreground-white-secondary);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.kbq-pipe-tooltip__value {
|
|
117
|
-
color: var(--kbq-foreground-white);
|
|
118
|
-
}
|
|
97
|
+
@include kbq-filter-bar-pipe-theme();
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
@use '../../datepicker/datepicker-tokens' as *;
|
|
5
5
|
|
|
6
6
|
.kbq-pipe-date__popover {
|
|
7
|
+
// Tokens are declared on the overlay panel itself so they resolve outside `.kbq-filter-bar`.
|
|
8
|
+
--kbq-filter-bar-date-period-width: 320px;
|
|
9
|
+
--kbq-filter-bar-date-field-width: 136px;
|
|
10
|
+
|
|
7
11
|
& .kbq-popover__container {
|
|
8
12
|
max-height: unset;
|
|
9
13
|
}
|
|
@@ -16,8 +20,7 @@
|
|
|
16
20
|
margin: var(--kbq-size-xxs) 0;
|
|
17
21
|
|
|
18
22
|
& .kbq-list-option {
|
|
19
|
-
margin-
|
|
20
|
-
margin-right: var(--kbq-size-xxs);
|
|
23
|
+
margin-inline: var(--kbq-size-xxs);
|
|
21
24
|
|
|
22
25
|
& .kbq-list-text {
|
|
23
26
|
display: flex;
|
|
@@ -25,7 +28,7 @@
|
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
& .kbq-icon {
|
|
28
|
-
margin-
|
|
31
|
+
margin-inline-start: var(--kbq-size-s);
|
|
29
32
|
align-self: center;
|
|
30
33
|
|
|
31
34
|
color: var(--kbq-icon-fade-contrast-color);
|
|
@@ -34,7 +37,7 @@
|
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
& .kbq-date-period {
|
|
37
|
-
width:
|
|
40
|
+
width: var(--kbq-filter-bar-date-period-width);
|
|
38
41
|
|
|
39
42
|
& .kbq-date-period__header {
|
|
40
43
|
padding: var(--kbq-size-xs) var(--kbq-size-xxs) var(--kbq-size-s);
|
|
@@ -59,11 +62,11 @@
|
|
|
59
62
|
gap: var(--kbq-size-s);
|
|
60
63
|
|
|
61
64
|
& .kbq-form__label {
|
|
62
|
-
padding-
|
|
65
|
+
padding-inline-start: var(--kbq-size-l);
|
|
63
66
|
}
|
|
64
67
|
|
|
65
68
|
& .kbq-form__control {
|
|
66
|
-
padding-
|
|
69
|
+
padding-inline-end: var(--kbq-size-l);
|
|
67
70
|
}
|
|
68
71
|
|
|
69
72
|
& .kbq-date-period__date,
|
|
@@ -75,22 +78,26 @@
|
|
|
75
78
|
display: flex;
|
|
76
79
|
|
|
77
80
|
& .kbq-date-period__date {
|
|
78
|
-
width:
|
|
81
|
+
width: var(--kbq-filter-bar-date-field-width);
|
|
79
82
|
|
|
80
83
|
& .kbq-form-field__container {
|
|
81
|
-
|
|
82
|
-
border-bottom-right-radius
|
|
84
|
+
// Square off the seam (inline-end) — logical so it follows the inline-start overlap
|
|
85
|
+
// below under RTL (was border-top/bottom-right-radius).
|
|
86
|
+
border-start-end-radius: unset;
|
|
87
|
+
border-end-end-radius: unset;
|
|
83
88
|
}
|
|
84
89
|
}
|
|
85
90
|
|
|
86
91
|
& .kbq-date-period__time.kbq-form-field-type-timepicker {
|
|
87
92
|
flex: 1;
|
|
88
|
-
margin-
|
|
93
|
+
margin-inline-start: -1px;
|
|
89
94
|
width: unset;
|
|
90
95
|
|
|
91
96
|
& .kbq-form-field__container {
|
|
92
|
-
|
|
93
|
-
border-bottom-left-radius
|
|
97
|
+
// Square off the seam (inline-start) — logical counterpart of the date field above
|
|
98
|
+
// (was border-top/bottom-left-radius).
|
|
99
|
+
border-start-start-radius: unset;
|
|
100
|
+
border-end-start-radius: unset;
|
|
94
101
|
}
|
|
95
102
|
}
|
|
96
103
|
}
|
|
@@ -109,8 +116,7 @@
|
|
|
109
116
|
& .kbq-hint {
|
|
110
117
|
grid-column: 2 span;
|
|
111
118
|
|
|
112
|
-
padding-
|
|
113
|
-
padding-right: var(--kbq-size-m);
|
|
119
|
+
padding-inline: var(--kbq-size-m);
|
|
114
120
|
}
|
|
115
121
|
}
|
|
116
122
|
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
@use '../filter-bar-theme' as *;
|
|
2
|
+
|
|
1
3
|
.kbq-pipe__multi-tree-select {
|
|
2
4
|
.kbq-pipe__value {
|
|
3
|
-
margin-
|
|
5
|
+
margin-inline-start: var(--kbq-size-xxs);
|
|
4
6
|
}
|
|
5
7
|
|
|
6
8
|
.kbq-badge {
|
|
7
9
|
align-self: center;
|
|
8
10
|
|
|
9
|
-
margin-
|
|
11
|
+
margin-inline-start: var(--kbq-size-xs);
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
& .kbq-tree-select .kbq-select__trigger {
|
|
@@ -15,5 +17,5 @@
|
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
.kbq-pipe-multi-tree-select__panel .kbq-select__content {
|
|
18
|
-
max-height
|
|
20
|
+
@include kbq-filter-bar-panel-content-max-height();
|
|
19
21
|
}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
@use '../filter-bar-theme' as *;
|
|
2
|
+
|
|
1
3
|
.kbq-pipe__multiselect {
|
|
2
4
|
.kbq-pipe__value {
|
|
3
|
-
margin-
|
|
5
|
+
margin-inline-start: var(--kbq-size-xxs);
|
|
4
6
|
}
|
|
5
7
|
|
|
6
8
|
.kbq-badge {
|
|
7
9
|
align-self: center;
|
|
8
10
|
|
|
9
|
-
margin-
|
|
11
|
+
margin-inline-start: var(--kbq-size-xs);
|
|
10
12
|
}
|
|
11
13
|
}
|
|
12
14
|
|
|
13
15
|
.kbq-pipe-multiselect__panel .kbq-select__content {
|
|
14
|
-
max-height
|
|
16
|
+
@include kbq-filter-bar-panel-content-max-height();
|
|
15
17
|
}
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
+
@use '../filter-bar-theme' as *;
|
|
2
|
+
|
|
1
3
|
.kbq-pipe.kbq-pipe__readonly {
|
|
2
4
|
& .kbq-button {
|
|
3
5
|
cursor: default;
|
|
4
6
|
}
|
|
5
|
-
|
|
6
|
-
&:not(.kbq-pipe_cleanable) {
|
|
7
|
-
& .kbq-button-icon.kbq-button_filled:not(:hover),
|
|
8
|
-
& .kbq-button.kbq-button_filled,
|
|
9
|
-
& .kbq-button.kbq-button_filled:hover {
|
|
10
|
-
background: var(--kbq-states-background-disabled);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
& .kbq-pipe__name,
|
|
14
|
-
& .kbq-pipe__value {
|
|
15
|
-
color: var(--kbq-states-foreground-disabled);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
7
|
}
|
|
8
|
+
|
|
9
|
+
@include kbq-filter-bar-readonly-theme();
|
package/flag/flag.scss
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
.kbq-flag {
|
|
2
|
+
// Theme tokens. The faded contrast line resolves to a dark hairline in the light theme and a
|
|
3
|
+
// light one in the dark theme, so the flag stays separated from the background in both.
|
|
4
|
+
--kbq-flag-shadow-color: var(--kbq-line-contrast-fade);
|
|
5
|
+
--kbq-flag-empty-background: var(--kbq-states-background-disabled);
|
|
6
|
+
--kbq-flag-border-radius: 0;
|
|
7
|
+
--kbq-flag-aspect-ratio: 3 / 2;
|
|
8
|
+
|
|
9
|
+
display: inline-block;
|
|
10
|
+
position: relative;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
// Sizing follows the surrounding text; 3:2 gives width = 1.5 × line height. Override via
|
|
13
|
+
// font-size / width / height to resize.
|
|
14
|
+
height: 1em;
|
|
15
|
+
aspect-ratio: var(--kbq-flag-aspect-ratio);
|
|
16
|
+
vertical-align: middle;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
border-radius: var(--kbq-flag-border-radius);
|
|
19
|
+
|
|
20
|
+
// Size the flag image whether it is projected directly or bound via [innerHTML]
|
|
21
|
+
// (the injected svg may sit inside a wrapper element).
|
|
22
|
+
svg,
|
|
23
|
+
img {
|
|
24
|
+
display: block;
|
|
25
|
+
width: 100%;
|
|
26
|
+
height: 100%;
|
|
27
|
+
object-fit: cover;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Inset hairline drawn on top of the flag, gated by the shadow input.
|
|
31
|
+
&.kbq-flag_shadow-inset::after {
|
|
32
|
+
content: '';
|
|
33
|
+
position: absolute;
|
|
34
|
+
inset: 0;
|
|
35
|
+
border-radius: inherit;
|
|
36
|
+
box-shadow: inset 0 0 0 1px var(--kbq-flag-shadow-color);
|
|
37
|
+
pointer-events: none;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&.kbq-flag_square,
|
|
41
|
+
&.kbq-flag_circle {
|
|
42
|
+
--kbq-flag-aspect-ratio: 1 / 1;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&.kbq-flag_circle {
|
|
46
|
+
border-radius: 50%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Neutral placeholder when no flag is projected (unknown / invalid country code).
|
|
50
|
+
&.kbq-flag_empty {
|
|
51
|
+
background: var(--kbq-flag-empty-background);
|
|
52
|
+
}
|
|
53
|
+
}
|
package/flag/index.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
/** Shape of the flag. `rectangle` keeps the default 3:2 ratio, `square`/`circle` expect a 1:1 source. */
|
|
4
|
+
type KbqFlagShape = 'rectangle' | 'square' | 'circle';
|
|
5
|
+
/** Inset shadow (hairline) that separates the flag from the background. */
|
|
6
|
+
type KbqFlagShadow = 'inset' | 'none';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Presentational wrapper for a consumer-provided country flag (inline `<svg>` or `<img>`).
|
|
10
|
+
* Decorates it with shape and shadow and applies the accessibility contract.
|
|
11
|
+
*
|
|
12
|
+
* ```html
|
|
13
|
+
* <kbq-flag><img src="…/AL.svg" alt="" /></kbq-flag> Albania
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
declare class KbqFlag {
|
|
17
|
+
/**
|
|
18
|
+
* Shape of the flag. `square`/`circle` expect a 1:1 (square) flag source to be projected.
|
|
19
|
+
* @default rectangle
|
|
20
|
+
*/
|
|
21
|
+
readonly shape: _angular_core.InputSignal<KbqFlagShape>;
|
|
22
|
+
/**
|
|
23
|
+
* Inset hairline that keeps the flag distinct from the background. Its color adapts to the theme.
|
|
24
|
+
* @default inset
|
|
25
|
+
*/
|
|
26
|
+
readonly shadow: _angular_core.InputSignal<KbqFlagShadow>;
|
|
27
|
+
/** Renders a neutral placeholder — use when no flag can be shown (unknown / invalid country code). */
|
|
28
|
+
readonly empty: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
29
|
+
/** Marks the flag as decorative — hidden from screen readers (use when adjacent text is present). */
|
|
30
|
+
readonly decorative: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
31
|
+
/** Accessible name for the flag. Use when the flag carries meaning and has no adjacent text. */
|
|
32
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
33
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFlag, never>;
|
|
34
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqFlag, "kbq-flag", ["kbqFlag"], { "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "empty": { "alias": "empty"; "required": false; "isSignal": true; }; "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
declare class KbqFlagModule {
|
|
38
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqFlagModule, never>;
|
|
39
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KbqFlagModule, never, [typeof KbqFlag], [typeof KbqFlag]>;
|
|
40
|
+
static ɵinj: _angular_core.ɵɵInjectorDeclaration<KbqFlagModule>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { KbqFlag, KbqFlagModule };
|
|
44
|
+
export type { KbqFlagShadow, KbqFlagShape };
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);
|
|
11
11
|
--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);
|
|
12
12
|
--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);
|
|
13
|
-
--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-
|
|
13
|
+
--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-contrast);
|
|
14
14
|
--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);
|
|
15
15
|
--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);
|
|
16
16
|
--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);
|
package/inline-edit/index.d.ts
CHANGED
|
@@ -116,6 +116,10 @@ declare class KbqInlineEdit {
|
|
|
116
116
|
/** @docs-private */
|
|
117
117
|
protected readonly isEditMode: _angular_core.Signal<boolean>;
|
|
118
118
|
/** @docs-private */
|
|
119
|
+
protected readonly hasInteractiveContent: _angular_core.WritableSignal<boolean>;
|
|
120
|
+
/** @docs-private */
|
|
121
|
+
protected readonly anchorFocused: _angular_core.WritableSignal<boolean>;
|
|
122
|
+
/** @docs-private */
|
|
119
123
|
protected readonly tabIndex: _angular_core.Signal<0 | -1>;
|
|
120
124
|
/** @docs-private */
|
|
121
125
|
protected readonly placements: typeof PopUpPlacements;
|
|
@@ -141,6 +145,7 @@ declare class KbqInlineEdit {
|
|
|
141
145
|
* @docs-private
|
|
142
146
|
*/
|
|
143
147
|
protected onOverlayOutsideClick($event: Event): void;
|
|
148
|
+
private detectInteractiveContent;
|
|
144
149
|
private isInteractiveElement;
|
|
145
150
|
/**
|
|
146
151
|
* Sets up Tab key listeners on region items.
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
outline: none;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
&.cdk-keyboard-focused
|
|
49
|
+
&.cdk-keyboard-focused,
|
|
50
|
+
&.kbq-inline-edit_anchor-focused {
|
|
50
51
|
box-shadow: inset 0 0 0.1px 1px var(--kbq-states-line-focus-theme);
|
|
51
52
|
border-color: var(--kbq-states-line-focus-theme);
|
|
52
53
|
}
|
|
@@ -125,7 +126,8 @@
|
|
|
125
126
|
}
|
|
126
127
|
|
|
127
128
|
&:hover,
|
|
128
|
-
&.cdk-keyboard-focused
|
|
129
|
+
&.cdk-keyboard-focused,
|
|
130
|
+
&.kbq-inline-edit_anchor-focused {
|
|
129
131
|
.kbq-inline-edit__menu-mask {
|
|
130
132
|
opacity: 1;
|
|
131
133
|
}
|
|
@@ -176,10 +178,6 @@
|
|
|
176
178
|
.kbq-inline-edit__panel {
|
|
177
179
|
width: 100%;
|
|
178
180
|
|
|
179
|
-
.kbq-inline-edit__control-container {
|
|
180
|
-
border-radius: var(--kbq-size-border-radius);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
181
|
.kbq-inline-edit__action-buttons {
|
|
184
182
|
position: absolute;
|
|
185
183
|
left: calc(-1 * var(--kbq-inline-edit-padding-horizontal));
|
|
@@ -190,7 +188,9 @@
|
|
|
190
188
|
}
|
|
191
189
|
|
|
192
190
|
.kbq-inline-edit__control-container,
|
|
193
|
-
.kbq-inline-edit__action-
|
|
191
|
+
.kbq-inline-edit__action-button {
|
|
194
192
|
box-shadow: var(--kbq-shadow-popup);
|
|
193
|
+
background-color: var(--kbq-background-bg);
|
|
194
|
+
border-radius: var(--kbq-size-border-radius);
|
|
195
195
|
}
|
|
196
196
|
}
|
package/link/link-tokens.scss
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
/* @TODO (#DS-3002) */
|
|
14
14
|
--kbq-link-state-visited-border-bottom: var(--kbq-line-visited-fade, var(--kbq-line-visited));
|
|
15
15
|
--kbq-link-state-visited-hover-text: var(--kbq-states-foreground-visited-hover);
|
|
16
|
-
--kbq-link-state-visited-hover-border-
|
|
16
|
+
--kbq-link-state-visited-hover-border-bottom: var(--kbq-line-visited-fade, var(--kbq-line-visited));
|
|
17
17
|
--kbq-link-state-visited-active-text: var(--kbq-states-foreground-visited-active);
|
|
18
|
-
--kbq-link-state-visited-active-border-
|
|
18
|
+
--kbq-link-state-visited-active-border-bottom: var(--kbq-line-visited-fade, var(--kbq-line-visited));
|
|
19
19
|
--kbq-link-state-hover-text: var(--kbq-states-foreground-theme-hover);
|
|
20
20
|
--kbq-link-state-hover-border-bottom: var(--kbq-line-theme-fade);
|
|
21
21
|
--kbq-link-state-active-text: var(--kbq-states-foreground-theme-active);
|
package/list/index.d.ts
CHANGED
|
@@ -54,6 +54,8 @@ declare class KbqListSelection implements AfterContentInit, AfterViewInit, OnDes
|
|
|
54
54
|
get noUnselectLast(): boolean;
|
|
55
55
|
set noUnselectLast(value: boolean);
|
|
56
56
|
private _noUnselectLast;
|
|
57
|
+
/** When `true`, a repeated Ctrl/Cmd+A deselects all options. Off by default (Ctrl+A only selects). */
|
|
58
|
+
readonly selectAllToggle: i0.InputSignalWithTransform<boolean, unknown>;
|
|
57
59
|
multipleMode: MultipleMode | null;
|
|
58
60
|
get multiple(): boolean;
|
|
59
61
|
readonly horizontal: i0.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -77,6 +79,7 @@ declare class KbqListSelection implements AfterContentInit, AfterViewInit, OnDes
|
|
|
77
79
|
get optionBlurChanges(): Observable<KbqOptionEvent>;
|
|
78
80
|
_value: string[] | null;
|
|
79
81
|
private readonly destroyRef;
|
|
82
|
+
private readonly platform;
|
|
80
83
|
private optionFocusSubscription;
|
|
81
84
|
private optionBlurSubscription;
|
|
82
85
|
constructor();
|
|
@@ -124,10 +127,16 @@ declare class KbqListSelection implements AfterContentInit, AfterViewInit, OnDes
|
|
|
124
127
|
private isValidIndex;
|
|
125
128
|
private getOptionIndex;
|
|
126
129
|
private onChange;
|
|
127
|
-
|
|
130
|
+
/**
|
|
131
|
+
* Function for handling the combination Ctrl + A (select all). By default, the internal handler is used,
|
|
132
|
+
* which toggles the selection of all non-disabled options.
|
|
133
|
+
*/
|
|
134
|
+
get selectAllHandler(): (event: KeyboardEvent, list: KbqListSelection) => void;
|
|
135
|
+
set selectAllHandler(fn: (event: KeyboardEvent, list: KbqListSelection) => void);
|
|
136
|
+
private _selectAllHandler;
|
|
128
137
|
private copyActiveOption;
|
|
129
138
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqListSelection, never>;
|
|
130
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqListSelection, "kbq-list-selection", ["kbqListSelection"], { "autoSelect": { "alias": "autoSelect"; "required": false; }; "noUnselectLast": { "alias": "noUnselectLast"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; }, { "onSelectAll": "onSelectAll"; "onCopy": "onCopy"; "selectionChange": "selectionChange"; }, ["options"], ["*"], true, never>;
|
|
139
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqListSelection, "kbq-list-selection", ["kbqListSelection"], { "autoSelect": { "alias": "autoSelect"; "required": false; }; "noUnselectLast": { "alias": "noUnselectLast"; "required": false; }; "selectAllToggle": { "alias": "selectAllToggle"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; "isSignal": true; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; }, { "onSelectAll": "onSelectAll"; "onCopy": "onCopy"; "selectionChange": "selectionChange"; }, ["options"], ["*"], true, never>;
|
|
131
140
|
static ngAcceptInputType_disabled: unknown;
|
|
132
141
|
}
|
|
133
142
|
declare class KbqListOptionCaption {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
--kbq-loader-overlay-size-big-overlay-padding-horizontal: var(--kbq-size-3xl);
|
|
3
3
|
--kbq-loader-overlay-size-big-loader-margin-bottom: var(--kbq-size-xxl);
|
|
4
4
|
--kbq-loader-overlay-size-big-content-content-gap-vertical: var(--kbq-size-l);
|
|
5
|
-
--kbq-loader-overlay-size-normal-overlay-padding-horizontal: var(--kbq-size
|
|
5
|
+
--kbq-loader-overlay-size-normal-overlay-padding-horizontal: var(--kbq-size-3xl);
|
|
6
6
|
--kbq-loader-overlay-size-normal-loader-margin-bottom: var(--kbq-size-xxl);
|
|
7
7
|
--kbq-loader-overlay-size-normal-content-content-gap-vertical: var(--kbq-size-xxs);
|
|
8
8
|
--kbq-loader-overlay-size-compact-overlay-padding-horizontal: var(--kbq-size-3xl);
|
|
@@ -40,13 +40,13 @@ $animation-duration-base: 0.3s;
|
|
|
40
40
|
@mixin zoom-motion($className, $keyframeName, $duration: $animation-duration-base) {
|
|
41
41
|
@include _make-motion($className, $keyframeName, $duration);
|
|
42
42
|
|
|
43
|
-
.#{className}-enter,
|
|
44
|
-
.#{className}-appear {
|
|
43
|
+
.#{$className}-enter,
|
|
44
|
+
.#{$className}-appear {
|
|
45
45
|
transform: translate(0, -25%);
|
|
46
46
|
animation-timing-function: $ease-out-circ;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
.#{className}-leave {
|
|
49
|
+
.#{$className}-leave {
|
|
50
50
|
transform: translate(0, 0);
|
|
51
51
|
animation-timing-function: $ease-in-out-circ;
|
|
52
52
|
}
|
|
@@ -55,13 +55,13 @@ $animation-duration-base: 0.3s;
|
|
|
55
55
|
@mixin fade-motion($className, $keyframeName) {
|
|
56
56
|
@include _make-motion($className, $keyframeName);
|
|
57
57
|
|
|
58
|
-
.#{className}-enter,
|
|
59
|
-
.#{className}-appear {
|
|
58
|
+
.#{$className}-enter,
|
|
59
|
+
.#{$className}-appear {
|
|
60
60
|
opacity: 0;
|
|
61
61
|
animation-timing-function: ease-out;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
.#{className}-leave {
|
|
64
|
+
.#{$className}-leave {
|
|
65
65
|
animation-timing-function: ease-out;
|
|
66
66
|
}
|
|
67
67
|
}
|
package/modal/_modal-theme.scss
CHANGED
|
@@ -18,6 +18,10 @@
|
|
|
18
18
|
.kbq-modal-content {
|
|
19
19
|
color: var(--kbq-modal-content-text-color);
|
|
20
20
|
}
|
|
21
|
+
|
|
22
|
+
.kbq-modal-caption {
|
|
23
|
+
color: var(--kbq-foreground-contrast-secondary);
|
|
24
|
+
}
|
|
21
25
|
}
|
|
22
26
|
|
|
23
27
|
.kbq-modal-mask {
|
|
@@ -30,6 +34,7 @@
|
|
|
30
34
|
@include kbq-typography-level-to-styles-css-variables(typography, title);
|
|
31
35
|
}
|
|
32
36
|
|
|
37
|
+
.kbq-modal-caption,
|
|
33
38
|
.kbq-modal-body {
|
|
34
39
|
@include kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
35
40
|
}
|
package/modal/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ interface ModalOptions<C = any, R = any> {
|
|
|
32
32
|
kbqClassName?: string;
|
|
33
33
|
kbqStyle?: object;
|
|
34
34
|
kbqTitle?: string | TemplateRef<{}>;
|
|
35
|
+
kbqCaption?: string | TemplateRef<{}>;
|
|
35
36
|
kbqContent?: string | TemplateRef<{}> | Type<C>;
|
|
36
37
|
kbqComponent?: Type<C>;
|
|
37
38
|
kbqClosable?: boolean;
|
|
@@ -105,6 +106,7 @@ declare class KbqModalComponent<T = any, R = any> extends KbqModalRef<T, R> impl
|
|
|
105
106
|
kbqClassName: string;
|
|
106
107
|
kbqStyle: object;
|
|
107
108
|
kbqTitle: string | TemplateRef<{}>;
|
|
109
|
+
kbqCaption: string | TemplateRef<{}>;
|
|
108
110
|
kbqCloseByESC: boolean;
|
|
109
111
|
get kbqClosable(): boolean;
|
|
110
112
|
set kbqClosable(value: boolean);
|
|
@@ -204,7 +206,7 @@ declare class KbqModalComponent<T = any, R = any> extends KbqModalRef<T, R> impl
|
|
|
204
206
|
*/
|
|
205
207
|
private changeBodyOverflow;
|
|
206
208
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqModalComponent<any, any>, never>;
|
|
207
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqModalComponent<any, any>, "kbq-modal", never, { "kbqModalType": { "alias": "kbqModalType"; "required": false; }; "kbqComponent": { "alias": "kbqComponent"; "required": false; }; "kbqContent": { "alias": "kbqContent"; "required": false; }; "kbqFooter": { "alias": "kbqFooter"; "required": false; }; "kbqVisible": { "alias": "kbqVisible"; "required": false; }; "kbqWidth": { "alias": "kbqWidth"; "required": false; }; "kbqSize": { "alias": "kbqSize"; "required": false; }; "kbqWrapClassName": { "alias": "kbqWrapClassName"; "required": false; }; "kbqClassName": { "alias": "kbqClassName"; "required": false; }; "kbqStyle": { "alias": "kbqStyle"; "required": false; }; "kbqTitle": { "alias": "kbqTitle"; "required": false; }; "kbqCloseByESC": { "alias": "kbqCloseByESC"; "required": false; }; "kbqClosable": { "alias": "kbqClosable"; "required": false; }; "kbqMask": { "alias": "kbqMask"; "required": false; }; "kbqMaskClosable": { "alias": "kbqMaskClosable"; "required": false; }; "kbqMaskStyle": { "alias": "kbqMaskStyle"; "required": false; }; "kbqBodyStyle": { "alias": "kbqBodyStyle"; "required": false; }; "kbqOkText": { "alias": "kbqOkText"; "required": false; }; "kbqOkType": { "alias": "kbqOkType"; "required": false; }; "kbqRestoreFocus": { "alias": "kbqRestoreFocus"; "required": false; }; "kbqOkLoading": { "alias": "kbqOkLoading"; "required": false; }; "kbqOnOk": { "alias": "kbqOnOk"; "required": false; }; "kbqCancelText": { "alias": "kbqCancelText"; "required": false; }; "kbqCancelLoading": { "alias": "kbqCancelLoading"; "required": false; }; "kbqOnCancel": { "alias": "kbqOnCancel"; "required": false; }; "kbqGetContainer": { "alias": "kbqGetContainer"; "required": false; }; }, { "kbqVisibleChange": "kbqVisibleChange"; "kbqAfterOpen": "kbqAfterOpen"; "kbqAfterClose": "kbqAfterClose"; "kbqBeforeClose": "kbqBeforeClose"; "kbqOnOk": "kbqOnOk"; "kbqOnCancel": "kbqOnCancel"; }, never, ["*"], true, never>;
|
|
209
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqModalComponent<any, any>, "kbq-modal", never, { "kbqModalType": { "alias": "kbqModalType"; "required": false; }; "kbqComponent": { "alias": "kbqComponent"; "required": false; }; "kbqContent": { "alias": "kbqContent"; "required": false; }; "kbqFooter": { "alias": "kbqFooter"; "required": false; }; "kbqVisible": { "alias": "kbqVisible"; "required": false; }; "kbqWidth": { "alias": "kbqWidth"; "required": false; }; "kbqSize": { "alias": "kbqSize"; "required": false; }; "kbqWrapClassName": { "alias": "kbqWrapClassName"; "required": false; }; "kbqClassName": { "alias": "kbqClassName"; "required": false; }; "kbqStyle": { "alias": "kbqStyle"; "required": false; }; "kbqTitle": { "alias": "kbqTitle"; "required": false; }; "kbqCaption": { "alias": "kbqCaption"; "required": false; }; "kbqCloseByESC": { "alias": "kbqCloseByESC"; "required": false; }; "kbqClosable": { "alias": "kbqClosable"; "required": false; }; "kbqMask": { "alias": "kbqMask"; "required": false; }; "kbqMaskClosable": { "alias": "kbqMaskClosable"; "required": false; }; "kbqMaskStyle": { "alias": "kbqMaskStyle"; "required": false; }; "kbqBodyStyle": { "alias": "kbqBodyStyle"; "required": false; }; "kbqOkText": { "alias": "kbqOkText"; "required": false; }; "kbqOkType": { "alias": "kbqOkType"; "required": false; }; "kbqRestoreFocus": { "alias": "kbqRestoreFocus"; "required": false; }; "kbqOkLoading": { "alias": "kbqOkLoading"; "required": false; }; "kbqOnOk": { "alias": "kbqOnOk"; "required": false; }; "kbqCancelText": { "alias": "kbqCancelText"; "required": false; }; "kbqCancelLoading": { "alias": "kbqCancelLoading"; "required": false; }; "kbqOnCancel": { "alias": "kbqOnCancel"; "required": false; }; "kbqGetContainer": { "alias": "kbqGetContainer"; "required": false; }; }, { "kbqVisibleChange": "kbqVisibleChange"; "kbqAfterOpen": "kbqAfterOpen"; "kbqAfterClose": "kbqAfterClose"; "kbqBeforeClose": "kbqBeforeClose"; "kbqOnOk": "kbqOnOk"; "kbqOnCancel": "kbqOnCancel"; }, never, ["*"], true, never>;
|
|
208
210
|
}
|
|
209
211
|
|
|
210
212
|
/**
|
package/modal/modal.scss
CHANGED
|
@@ -102,6 +102,21 @@
|
|
|
102
102
|
padding-bottom: var(--kbq-size-3xs);
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
.kbq-modal-header-content {
|
|
106
|
+
display: flex;
|
|
107
|
+
flex: 1;
|
|
108
|
+
flex-direction: column;
|
|
109
|
+
min-width: 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.kbq-modal-caption {
|
|
113
|
+
display: -webkit-box;
|
|
114
|
+
-webkit-box-orient: vertical;
|
|
115
|
+
-webkit-line-clamp: 2;
|
|
116
|
+
overflow: hidden;
|
|
117
|
+
text-overflow: ellipsis;
|
|
118
|
+
}
|
|
119
|
+
|
|
105
120
|
.kbq-modal-body {
|
|
106
121
|
display: block;
|
|
107
122
|
overflow-y: auto;
|
package/navbar/index.d.ts
CHANGED
|
@@ -210,6 +210,7 @@ declare class KbqNavbar extends KbqFocusableComponent implements AfterViewInit,
|
|
|
210
210
|
protected readonly elementRef: ElementRef<HTMLElement>;
|
|
211
211
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
212
212
|
protected readonly focusMonitor: FocusMonitor;
|
|
213
|
+
private readonly platform;
|
|
213
214
|
readonly rectangleElements: i0.Signal<readonly any[]>;
|
|
214
215
|
readonly navbarItems: i0.Signal<readonly any[]>;
|
|
215
216
|
readonly resizeStream: Subject<Event>;
|