@koobiq/components 18.31.0 → 18.33.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 +2 -0
- 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/action-container.d.ts +5 -0
- package/core/option/action-container.scss +45 -0
- package/core/option/action.d.ts +1 -4
- package/core/option/action.scss +13 -12
- package/core/option/index.d.ts +1 -0
- package/core/option/option.d.ts +6 -5
- package/core/public-api.d.ts +1 -0
- package/core/styles/common/_select.scss +60 -37
- package/core/styles/common/_tokens.scss +2 -0
- 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/accordion/accordion-trigger.component.mjs +2 -2
- package/esm2022/accordion/accordion.component.mjs +2 -2
- package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
- package/esm2022/actions-panel/actions-panel.mjs +16 -113
- package/esm2022/alert/alert.component.mjs +2 -2
- 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/badge/badge.component.mjs +2 -2
- package/esm2022/breadcrumbs/breadcrumbs.mjs +3 -6
- package/esm2022/button/button.component.mjs +4 -3
- package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
- package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
- package/esm2022/checkbox/checkbox.mjs +2 -2
- 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/action-container.mjs +23 -0
- package/esm2022/core/option/action.mjs +16 -30
- package/esm2022/core/option/index.mjs +2 -1
- package/esm2022/core/option/optgroup.mjs +2 -2
- package/esm2022/core/option/option.mjs +10 -8
- 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/datepicker/datepicker-input.directive.mjs +5 -1
- package/esm2022/datepicker/datepicker.component.mjs +3 -3
- package/esm2022/dl/dl.component.mjs +2 -2
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
- package/esm2022/dropdown/dropdown.component.mjs +3 -3
- package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
- package/esm2022/empty-state/empty-state.component.mjs +2 -2
- package/esm2022/file-upload/multiple-file-upload.component.mjs +4 -4
- package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
- package/esm2022/filter-bar/filter-bar.mjs +21 -5
- package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
- package/esm2022/filter-bar/filter-reset.mjs +2 -1
- package/esm2022/filter-bar/filter-search.mjs +2 -2
- package/esm2022/filter-bar/filters.mjs +4 -3
- package/esm2022/filter-bar/pipe-add.mjs +2 -2
- package/esm2022/filter-bar/pipes/base-pipe.mjs +7 -2
- package/esm2022/filter-bar/pipes/pipe-date.mjs +6 -12
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +6 -12
- 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 +7 -6
- 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-password.mjs +2 -2
- package/esm2022/input/input.module.mjs +1 -5
- package/esm2022/list/list-selection.component.mjs +5 -5
- package/esm2022/list/list.component.mjs +2 -2
- package/esm2022/list/list.module.mjs +12 -5
- package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
- package/esm2022/modal/modal-util.mjs +2 -1
- package/esm2022/modal/modal.component.mjs +2 -2
- package/esm2022/navbar/navbar-item.component.mjs +12 -13
- package/esm2022/navbar/navbar.component.mjs +2 -2
- package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
- package/esm2022/overflow-items/overflow-items.mjs +27 -10
- package/esm2022/popover/popover-confirm.component.mjs +3 -3
- package/esm2022/popover/popover.component.mjs +3 -3
- package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
- package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
- package/esm2022/radio/radio.component.mjs +2 -2
- package/esm2022/radio/radio.module.mjs +4 -5
- package/esm2022/risk-level/risk-level.component.mjs +2 -2
- package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
- package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
- package/esm2022/select/select.component.mjs +42 -22
- package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
- package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
- package/esm2022/splitter/splitter.component.mjs +5 -3
- package/esm2022/table/table.component.mjs +2 -2
- 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-option.component.mjs +2 -2
- 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/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/top-bar/top-bar.mjs +2 -2
- package/esm2022/tree/padding.directive.mjs +8 -6
- package/esm2022/tree/toggle.mjs +2 -2
- package/esm2022/tree/tree-option.component.mjs +3 -3
- package/esm2022/tree/tree-selection.component.mjs +2 -2
- package/esm2022/tree/tree.mjs +2 -2
- package/esm2022/tree/tree.module.mjs +8 -5
- package/esm2022/tree-select/tree-select.component.mjs +50 -31
- package/fesm2022/koobiq-components-accordion.mjs +4 -4
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
- 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-autocomplete.mjs +21 -24
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +2 -2
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -5
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +7 -7
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +3 -2
- 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-code-block.mjs +65 -28
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +109 -69
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +10 -6
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +2 -2
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +5 -4
- 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-empty-state.mjs +2 -2
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +5 -5
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +45 -35
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +611 -220
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +8 -6
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +17 -10
- 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 +3 -2
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +15 -16
- 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-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 +6 -6
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-risk-level.mjs +2 -2
- package/fesm2022/koobiq-components-risk-level.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 +42 -22
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +3 -6
- 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-table.mjs +2 -2
- package/fesm2022/koobiq-components-table.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 +7 -5
- 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-tooltip.mjs +2 -2
- package/fesm2022/koobiq-components-tooltip.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 +50 -31
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +22 -17
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/file-upload/_file-upload-theme.scss +9 -0
- package/file-upload/multiple-file-upload.component.d.ts +1 -1
- package/filter-bar/filter-bar.d.ts +2 -0
- package/filter-bar/filter-bar.types.d.ts +2 -2
- 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/list/_list-theme.scss +4 -1
- package/list/list.module.d.ts +2 -1
- package/list/list.scss +6 -12
- 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 +3 -3
- package/scrollbar/scrollbar.component.d.ts +1 -0
- package/select/select-tokens.scss +5 -4
- package/select/select.component.d.ts +12 -3
- 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/_tree-theme.scss +13 -2
- package/tree/padding.directive.d.ts +1 -1
- package/tree/tree-option.scss +12 -17
- package/tree/tree.module.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +10 -1
- package/esm2022/form-field/form-field-errors.mjs +0 -7
- package/form-field/form-field-errors.d.ts +0 -2
|
@@ -227,6 +227,11 @@
|
|
|
227
227
|
}
|
|
228
228
|
|
|
229
229
|
@mixin kbq-file-upload-typography() {
|
|
230
|
+
.kbq-file-upload {
|
|
231
|
+
@include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// @TODO: remove when redesign applied, use default font (#DS-3858)
|
|
230
235
|
.kbq-single-file-upload {
|
|
231
236
|
& .file-item__text-wrapper,
|
|
232
237
|
& .dropzone__text {
|
|
@@ -239,6 +244,7 @@
|
|
|
239
244
|
@include tokens.kbq-typography-level-to-styles-css-variables(typography, subheading);
|
|
240
245
|
}
|
|
241
246
|
|
|
247
|
+
// @TODO: remove when redesign applied, use default font (#DS-3858)
|
|
242
248
|
.multiple__caption {
|
|
243
249
|
&,
|
|
244
250
|
.kbq-link {
|
|
@@ -246,14 +252,17 @@
|
|
|
246
252
|
}
|
|
247
253
|
}
|
|
248
254
|
|
|
255
|
+
// @TODO: remove when redesign applied, use default font (#DS-3858)
|
|
249
256
|
.kbq-file-multiple-uploaded__header {
|
|
250
257
|
@include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
251
258
|
}
|
|
252
259
|
|
|
260
|
+
// @TODO: remove when redesign applied, use default font (#DS-3858)
|
|
253
261
|
.multiple__uploaded-item {
|
|
254
262
|
@include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
255
263
|
}
|
|
256
264
|
|
|
265
|
+
// @TODO: remove when redesign applied, use default font (#DS-3858)
|
|
257
266
|
.kbq-file-upload {
|
|
258
267
|
.kbq-list-item,
|
|
259
268
|
.kbq-list-option {
|
|
@@ -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>>;
|
|
@@ -51,6 +51,8 @@ export declare class KbqFilterBar {
|
|
|
51
51
|
/** Whether the current filter is disabled */
|
|
52
52
|
get isDisabled(): boolean;
|
|
53
53
|
private savedFilter;
|
|
54
|
+
/** Event that emits whenever the filter is reset. */
|
|
55
|
+
readonly onResetFilter: BehaviorSubject<boolean>;
|
|
54
56
|
/** all changes */
|
|
55
57
|
readonly changes: BehaviorSubject<void>;
|
|
56
58
|
/** internal filter changes */
|
|
@@ -88,6 +88,8 @@ export interface KbqPipe {
|
|
|
88
88
|
value: unknown | null;
|
|
89
89
|
search?: boolean;
|
|
90
90
|
selectAll?: boolean;
|
|
91
|
+
openOnAdd?: boolean;
|
|
92
|
+
openOnReset?: boolean;
|
|
91
93
|
/**
|
|
92
94
|
* This is special logic that unselect all items when all selected because "all selected = nothing selected".
|
|
93
95
|
* Default is true
|
|
@@ -101,8 +103,6 @@ export interface KbqPipe {
|
|
|
101
103
|
}
|
|
102
104
|
export interface KbqPipeData<V> extends KbqPipe {
|
|
103
105
|
value: V | null;
|
|
104
|
-
search?: boolean;
|
|
105
|
-
openOnAdd?: boolean;
|
|
106
106
|
}
|
|
107
107
|
export interface KbqPipeTemplate extends Omit<KbqPipe, 'value'> {
|
|
108
108
|
values?: unknown[];
|
|
@@ -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);
|