@koobiq/components 19.3.0 → 19.4.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.
Files changed (48) hide show
  1. package/autocomplete/autocomplete-trigger.directive.d.ts +5 -0
  2. package/core/animation/animation.d.ts +3 -1
  3. package/core/highlight/highlight.pipe.d.ts +2 -0
  4. package/core/option/action.d.ts +5 -6
  5. package/fesm2022/koobiq-components-autocomplete.mjs +8 -1
  6. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  7. package/fesm2022/koobiq-components-core.mjs +45 -26
  8. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  9. package/fesm2022/koobiq-components-file-upload.mjs +4 -4
  10. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  11. package/fesm2022/koobiq-components-form-field.mjs +8 -8
  12. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  13. package/fesm2022/koobiq-components-icon.mjs +2 -2
  14. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  15. package/fesm2022/koobiq-components-inline-edit.mjs +3 -12
  16. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  17. package/fesm2022/koobiq-components-list.mjs +11 -1
  18. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  19. package/fesm2022/koobiq-components-search-expandable.mjs +49 -22
  20. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  21. package/fesm2022/koobiq-components-select.mjs +1 -0
  22. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  23. package/fesm2022/koobiq-components-sidepanel.mjs +146 -41
  24. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  25. package/fesm2022/koobiq-components-tags.mjs +23 -9
  26. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  27. package/fesm2022/koobiq-components-tooltip.mjs +8 -0
  28. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  29. package/form-field/_form-field-theme.scss +2 -2
  30. package/form-field/form-field-control.d.ts +2 -0
  31. package/form-field/form-field.scss +0 -1
  32. package/icon/icon-button.scss +5 -4
  33. package/inline-edit/inline-edit-tokens.scss +1 -1
  34. package/list/list-selection.component.d.ts +1 -0
  35. package/package.json +4 -4
  36. package/schematics/ng-add/index.js +2 -2
  37. package/search-expandable/search-expandable.d.ts +19 -4
  38. package/sidepanel/_sidepanel-theme.scss +10 -0
  39. package/sidepanel/sidepanel-animations.d.ts +7 -1
  40. package/sidepanel/sidepanel-container.component.d.ts +12 -2
  41. package/sidepanel/sidepanel-directives.d.ts +8 -0
  42. package/sidepanel/sidepanel-ref.d.ts +12 -0
  43. package/sidepanel/sidepanel-tokens.scss +5 -3
  44. package/sidepanel/sidepanel.scss +78 -18
  45. package/sidepanel/sidepanel.service.d.ts +2 -0
  46. package/tags/tag-list.component.d.ts +7 -1
  47. package/tags/tag.component.d.ts +2 -0
  48. package/tooltip/tooltip.component.d.ts +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-tooltip.mjs","sources":["../../../packages/components/tooltip/tooltip.animations.ts","../../../packages/components/tooltip/tooltip.component.ts","../../../packages/components/tooltip/tooltip.component.html","../../../packages/components/tooltip/tooltip.module.ts","../../../packages/components/tooltip/koobiq-components-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, keyframes, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * Animations used by KbqTooltip.\n * @docs-private\n */\nexport const kbqTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(0.99)' })),\n transition(\n '* => visible',\n animate(\n '200ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(0)', offset: 0 }),\n style({ opacity: 0.5, transform: 'scale(0.9)', offset: 0.5 }),\n style({ opacity: 1, transform: 'scale(0.99)', offset: 1 })\n ])\n )\n ),\n transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 })))\n ])\n};\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Point } from '@angular/cdk/drag-drop';\nimport { Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n KBQ_PARENT_POPUP,\n KbqComponentColors,\n KbqParentPopup,\n KbqPopUp,\n KbqPopUpPlacementValues,\n KbqPopUpTrigger,\n POSITION_TO_CSS_MAP,\n PopUpPlacements,\n PopUpTriggers,\n applyPopupMargins\n} from '@koobiq/components/core';\nimport { EMPTY, merge } from 'rxjs';\nimport { kbqTooltipAnimations } from './tooltip.animations';\n\nexport enum TooltipModifier {\n Default = 'default',\n Warning = 'warning',\n Extended = 'extended'\n}\n\nexport const KBQ_TOOLTIP_OPEN_TIME = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-open-time');\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_OPEN_TIME_PROVIDER = {\n provide: KBQ_TOOLTIP_OPEN_TIME,\n useValue: { value: 0 }\n};\n\nexport const MIN_TIME_FOR_DELAY = 2000;\n\n@Component({\n selector: 'kbq-tooltip-component',\n imports: [\n NgClass,\n NgTemplateOutlet\n ],\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.scss', './tooltip-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [kbqTooltipAnimations.tooltipState],\n providers: [KBQ_TOOLTIP_OPEN_TIME_PROVIDER]\n})\nexport class KbqTooltipComponent extends KbqPopUp {\n prefix = 'kbq-tooltip';\n\n @ViewChild('tooltip') elementRef: ElementRef;\n\n constructor(@Inject(KBQ_TOOLTIP_OPEN_TIME) private openTime) {\n super();\n }\n\n show(delay: number) {\n if (!this.content) {\n return;\n }\n\n super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);\n\n if (this.offset !== null) {\n applyPopupMargins(\n this.renderer,\n this.elementRef.nativeElement,\n this.prefix,\n `${this.offset!.toString()}px`\n );\n }\n\n this.openTime.value = Date.now();\n }\n\n updateClassMap(placement: string, customClass: string, { modifier }) {\n const classMap = {\n [`${this.prefix}_${modifier}`]: true\n };\n\n super.updateClassMap(placement, customClass, classMap);\n }\n}\n\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-scroll-strategy');\n\n/** @docs-private */\nexport function kbqTooltipScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.close();\n}\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqTooltipScrollStrategyFactory\n};\n\n@Directive({\n selector: '[kbqTooltip]',\n exportAs: 'kbqTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements AfterViewInit, OnDestroy {\n protected scrollStrategy: () => ScrollStrategy = inject(KBQ_TOOLTIP_SCROLL_STRATEGY);\n protected parentPopup = inject<KbqParentPopup>(KBQ_PARENT_POPUP, { optional: true });\n protected focusMonitor: FocusMonitor = inject(FocusMonitor);\n\n /**\n * Changes hiding behavior. By default, tooltip is hidden on mouseleave from trigger.\n * Setting hideWithTimeout to true will delay tooltip hiding and will not hide when the mouse moves from trigger\n * to tooltip.\n */\n @Input({ transform: booleanAttribute }) hideWithTimeout: boolean = false;\n\n @Input('kbqVisible')\n get tooltipVisible(): boolean {\n return this.visible;\n }\n\n set tooltipVisible(value: boolean) {\n super.updateVisible(value);\n }\n\n @Input('kbqPlacement')\n get tooltipPlacement(): KbqPopUpPlacementValues {\n return this.placement;\n }\n\n /**\n * Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.\n * Does not work with kbqPlacementPriority.\n */\n @Input({ alias: 'kbqRelativeToPointer', transform: booleanAttribute }) relativeToPointer: boolean = false;\n\n set tooltipPlacement(value: KbqPopUpPlacementValues) {\n super.updatePlacement(value);\n }\n\n @Input('kbqPlacementPriority')\n get tooltipPlacementPriority() {\n return this.placementPriority;\n }\n\n set tooltipPlacementPriority(value) {\n super.updatePlacementPriority(value);\n }\n\n @Input('kbqTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input('kbqTooltipDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.hide();\n }\n }\n\n @Input('kbqEnterDelay') enterDelay = 400;\n @Input('kbqLeaveDelay') leaveDelay = 0;\n\n @Input('kbqTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n } else {\n this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n }\n\n this.initListeners();\n }\n\n protected _trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n\n @Input('kbqTooltipClass')\n get customClass(): string {\n return this._customClass || '';\n }\n\n set customClass(value: string) {\n if (value) {\n this._customClass = value;\n\n this.updateClassMap();\n } else {\n this._customClass = '';\n }\n }\n\n @Input('kbqTooltipContext')\n get context() {\n return this._context;\n }\n\n set context(ctx) {\n this._context = ctx;\n this.updateData();\n }\n\n private _context: any = null;\n\n @Input('kbqTooltipColor')\n get color(): string {\n return `kbq-${this._color}`;\n }\n\n set color(value: KbqComponentColors | string) {\n this._color = value || KbqComponentColors.Contrast;\n }\n\n private _color: KbqComponentColors | string = KbqComponentColors.Contrast;\n\n @Input({ alias: 'kbqTooltipArrow', transform: booleanAttribute }) arrow: boolean = true;\n @Input({ alias: 'kbqTooltipOffset', transform: numberAttribute }) offset: number | null = null;\n\n @Output('kbqPlacementChange') readonly placementChange = new EventEmitter();\n\n @Output('kbqVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n private get hasClickInTrigger(): boolean {\n return this.trigger.includes(PopUpTriggers.Click);\n }\n\n protected originSelector = '.kbq-tooltip';\n\n protected overlayConfig: OverlayConfig = {\n panelClass: 'kbq-tooltip-panel'\n };\n\n protected modifier: TooltipModifier = TooltipModifier.Default;\n\n ngAfterViewInit(): void {\n this.parentPopup?.closedStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.hide());\n\n this.focusMonitor.monitor(this.elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n\n super.ngOnDestroy();\n }\n\n show(delay: number = this.enterDelay) {\n if (this.triggerName === 'focus' && this.focusMonitor['_lastFocusOrigin'] !== 'keyboard') {\n return;\n }\n\n super.show(delay);\n\n if (this.relativeToPointer) {\n this.applyRelativeToPointer();\n }\n }\n\n /**\n * method allows to show the tooltip relative to the element\n * Use this approach when it is not possible to define a trigger in the template.\n *\n * For example:\n * const tooltip = new KbqTooltipTrigger();\n * tooltip.showForElement(element);\n */\n showForElement(element: HTMLElement) {\n this.show();\n this.strategy.setOrigin(element);\n }\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n this.instance.content = this.content;\n this.instance.context = this.context && { $implicit: this.context };\n this.instance.arrow = this.arrow;\n this.instance.offset = this.offset;\n this.instance.detectChanges();\n this.updatePosition(true);\n }\n\n closingActions() {\n return merge(\n this.hasClickInTrigger ? this.overlayRef!.outsidePointerEvents() : EMPTY,\n this.overlayRef!.detachments()\n );\n }\n\n getOverlayHandleComponentType(): Type<KbqTooltipComponent> {\n return KbqTooltipComponent;\n }\n\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) {\n return;\n }\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], `${this.customClass} ${this.color}`, {\n modifier: this.modifier\n });\n this.instance.markForCheck();\n }\n\n protected applyRelativeToPointer() {\n if (\n !this.strategy ||\n ![PopUpPlacements.Top, PopUpPlacements.Bottom].includes(this.placement as PopUpPlacements) ||\n this.triggerName !== 'mouseenter'\n ) {\n this.resetOrigin();\n\n return;\n }\n\n const triggerRects = this.elementRef.nativeElement.getBoundingClientRect();\n const point: Point = { x: 0, y: 0 };\n\n this.placementPriority = null;\n\n if (this.placement === PopUpPlacements.Top) {\n point.x = this.mouseEvent!.x;\n point.y = triggerRects.y;\n } else if (this.placement === PopUpPlacements.Bottom) {\n point.x = this.mouseEvent!.x;\n point.y = triggerRects.y + triggerRects.height;\n }\n\n this.strategy.setOrigin(point);\n }\n}\n\n@Directive({\n selector: '[kbqWarningTooltip]',\n exportAs: 'kbqWarningTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqWarningTooltipTrigger extends KbqTooltipTrigger {\n @Input('kbqWarningTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n protected modifier: TooltipModifier = TooltipModifier.Warning;\n}\n\n@Directive({\n selector: '[kbqExtendedTooltip]',\n exportAs: 'kbqExtendedTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {\n @Input('kbqExtendedTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input('kbqTooltipHeader')\n get header(): string | TemplateRef<any> {\n return this._header;\n }\n\n set header(header: string | TemplateRef<any>) {\n this._header = header;\n\n this.updateData();\n }\n\n private _header: string | TemplateRef<any>;\n\n protected modifier: TooltipModifier = TooltipModifier.Extended;\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n super.updateData();\n this.instance.header = this.header;\n }\n}\n","<div\n #tooltip\n class=\"kbq-tooltip\"\n [class.kbq-tooltip_arrowless]=\"!arrow\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div class=\"kbq-tooltip__inner\">\n @if (arrow) {\n <div class=\"kbq-tooltip__arrow\"></div>\n }\n\n @if (header) {\n <div class=\"kbq-tooltip__header\">\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(header)) {\n <div>{{ header }}</div>\n }\n </div>\n }\n <div class=\"kbq-tooltip__content\">\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER,\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KbqExtendedTooltipTrigger,\n KbqTooltipComponent,\n KbqTooltipTrigger,\n KbqWarningTooltipTrigger\n} from './tooltip.component';\n\nconst COMPONENTS = [\n KbqTooltipComponent,\n KbqTooltipTrigger,\n KbqExtendedTooltipTrigger,\n KbqWarningTooltipTrigger\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER\n ]\n})\nexport class KbqToolTipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"koobiq-components-tooltip.mjs","sources":["../../../packages/components/tooltip/tooltip.animations.ts","../../../packages/components/tooltip/tooltip.component.ts","../../../packages/components/tooltip/tooltip.component.html","../../../packages/components/tooltip/tooltip.module.ts","../../../packages/components/tooltip/koobiq-components-tooltip.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, keyframes, state, style, transition, trigger } from '@angular/animations';\n\n/**\n * Animations used by KbqTooltip.\n * @docs-private\n */\nexport const kbqTooltipAnimations: {\n readonly tooltipState: AnimationTriggerMetadata;\n} = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: trigger('state', [\n state('initial, void, hidden', style({ opacity: 0, transform: 'scale(0)' })),\n state('visible', style({ transform: 'scale(0.99)' })),\n transition(\n '* => visible',\n animate(\n '200ms cubic-bezier(0, 0, 0.2, 1)',\n keyframes([\n style({ opacity: 0, transform: 'scale(0)', offset: 0 }),\n style({ opacity: 0.5, transform: 'scale(0.9)', offset: 0.5 }),\n style({ opacity: 1, transform: 'scale(0.99)', offset: 1 })\n ])\n )\n ),\n transition('* => hidden', animate('100ms cubic-bezier(0, 0, 0.2, 1)', style({ opacity: 0 })))\n ])\n};\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Point } from '@angular/cdk/drag-drop';\nimport { Overlay, OverlayConfig, ScrollStrategy } from '@angular/cdk/overlay';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n numberAttribute\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n KBQ_PARENT_POPUP,\n KbqComponentColors,\n KbqParentPopup,\n KbqPopUp,\n KbqPopUpPlacementValues,\n KbqPopUpTrigger,\n POSITION_TO_CSS_MAP,\n PopUpPlacements,\n PopUpTriggers,\n applyPopupMargins\n} from '@koobiq/components/core';\nimport { EMPTY, merge } from 'rxjs';\nimport { kbqTooltipAnimations } from './tooltip.animations';\n\nexport enum TooltipModifier {\n Default = 'default',\n Warning = 'warning',\n Extended = 'extended'\n}\n\nexport const KBQ_TOOLTIP_OPEN_TIME = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-open-time');\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_OPEN_TIME_PROVIDER = {\n provide: KBQ_TOOLTIP_OPEN_TIME,\n useValue: { value: 0 }\n};\n\nexport const MIN_TIME_FOR_DELAY = 2000;\n\n@Component({\n selector: 'kbq-tooltip-component',\n imports: [\n NgClass,\n NgTemplateOutlet\n ],\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.scss', './tooltip-tokens.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [kbqTooltipAnimations.tooltipState],\n providers: [KBQ_TOOLTIP_OPEN_TIME_PROVIDER]\n})\nexport class KbqTooltipComponent extends KbqPopUp {\n prefix = 'kbq-tooltip';\n\n @ViewChild('tooltip') elementRef: ElementRef;\n\n constructor(@Inject(KBQ_TOOLTIP_OPEN_TIME) private openTime) {\n super();\n }\n\n show(delay: number) {\n if (!this.content) {\n return;\n }\n\n super.show(Date.now() - this.openTime.value < MIN_TIME_FOR_DELAY ? 0 : delay);\n\n if (this.offset !== null) {\n applyPopupMargins(\n this.renderer,\n this.elementRef.nativeElement,\n this.prefix,\n `${this.offset!.toString()}px`\n );\n }\n\n this.openTime.value = Date.now();\n }\n\n updateClassMap(placement: string, customClass: string, { modifier }) {\n const classMap = {\n [`${this.prefix}_${modifier}`]: true\n };\n\n super.updateClassMap(placement, customClass, classMap);\n }\n}\n\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY = new InjectionToken<() => ScrollStrategy>('kbq-tooltip-scroll-strategy');\n\n/** @docs-private */\nexport function kbqTooltipScrollStrategyFactory(overlay: Overlay): () => ScrollStrategy {\n return () => overlay.scrollStrategies.close();\n}\n\n/** @docs-private */\nexport const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: KBQ_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: kbqTooltipScrollStrategyFactory\n};\n\n@Directive({\n selector: '[kbqTooltip]',\n exportAs: 'kbqTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements AfterViewInit, OnDestroy {\n protected scrollStrategy: () => ScrollStrategy = inject(KBQ_TOOLTIP_SCROLL_STRATEGY);\n protected parentPopup = inject<KbqParentPopup>(KBQ_PARENT_POPUP, { optional: true });\n protected focusMonitor: FocusMonitor = inject(FocusMonitor);\n\n /**\n * Changes hiding behavior. By default, tooltip is hidden on mouseleave from trigger.\n * Setting hideWithTimeout to true will delay tooltip hiding and will not hide when the mouse moves from trigger\n * to tooltip.\n */\n @Input({ transform: booleanAttribute }) hideWithTimeout: boolean = false;\n\n @Input('kbqVisible')\n get tooltipVisible(): boolean {\n return this.visible;\n }\n\n set tooltipVisible(value: boolean) {\n super.updateVisible(value);\n }\n\n @Input('kbqPlacement')\n get tooltipPlacement(): KbqPopUpPlacementValues {\n return this.placement;\n }\n\n /**\n * Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.\n * Does not work with kbqPlacementPriority.\n */\n @Input({ alias: 'kbqRelativeToPointer', transform: booleanAttribute }) relativeToPointer: boolean = false;\n\n set tooltipPlacement(value: KbqPopUpPlacementValues) {\n super.updatePlacement(value);\n }\n\n @Input('kbqPlacementPriority')\n get tooltipPlacementPriority() {\n return this.placementPriority;\n }\n\n set tooltipPlacementPriority(value) {\n super.updatePlacementPriority(value);\n }\n\n @Input('kbqTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input('kbqTooltipDisabled')\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n\n if (this._disabled) {\n this.hide();\n }\n }\n\n @Input('kbqEnterDelay') enterDelay = 400;\n @Input('kbqLeaveDelay') leaveDelay = 0;\n\n @Input('kbqTrigger')\n get trigger(): string {\n return this._trigger;\n }\n\n set trigger(value: string) {\n if (value) {\n this._trigger = value;\n } else {\n this._trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n }\n\n this.initListeners();\n }\n\n protected _trigger = `${PopUpTriggers.Hover}, ${PopUpTriggers.Focus}`;\n\n @Input('kbqTooltipClass')\n get customClass(): string {\n return this._customClass || '';\n }\n\n set customClass(value: string) {\n if (value) {\n this._customClass = value;\n\n this.updateClassMap();\n } else {\n this._customClass = '';\n }\n }\n\n @Input('kbqTooltipContext')\n get context() {\n return this._context;\n }\n\n set context(ctx) {\n this._context = ctx;\n this.updateData();\n }\n\n private _context: any = null;\n\n @Input('kbqTooltipColor')\n get color(): string {\n return `kbq-${this._color}`;\n }\n\n set color(value: KbqComponentColors | string) {\n this._color = value || KbqComponentColors.Contrast;\n }\n\n private _color: KbqComponentColors | string = KbqComponentColors.Contrast;\n\n @Input({ alias: 'kbqTooltipArrow', transform: booleanAttribute }) arrow: boolean = true;\n @Input({ alias: 'kbqTooltipOffset', transform: numberAttribute }) offset: number | null = null;\n\n @Output('kbqPlacementChange') readonly placementChange = new EventEmitter();\n\n @Output('kbqVisibleChange') readonly visibleChange = new EventEmitter<boolean>();\n\n private get hasClickInTrigger(): boolean {\n return this.trigger.includes(PopUpTriggers.Click);\n }\n\n protected originSelector = '.kbq-tooltip';\n\n protected overlayConfig: OverlayConfig = {\n panelClass: 'kbq-tooltip-panel'\n };\n\n protected modifier: TooltipModifier = TooltipModifier.Default;\n\n ngAfterViewInit(): void {\n this.parentPopup?.closedStream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.hide());\n\n this.focusMonitor.monitor(this.elementRef.nativeElement);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n\n super.ngOnDestroy();\n }\n\n show(delay: number = this.enterDelay) {\n if (this.triggerName === 'focus' && this.focusMonitor['_lastFocusOrigin'] !== 'keyboard') {\n return;\n }\n\n super.show(delay);\n\n if (this.relativeToPointer) {\n this.applyRelativeToPointer();\n }\n }\n\n /**\n * method allows to show the tooltip relative to the element\n * Use this approach when it is not possible to define a trigger in the template.\n *\n * For example:\n * const tooltip = new KbqTooltipTrigger();\n * tooltip.showForElement(element);\n */\n showForElement(element: HTMLElement) {\n this.show();\n this.strategy.setOrigin(element);\n }\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n this.instance.content = this.content;\n this.instance.context = this.context && { $implicit: this.context };\n this.instance.arrow = this.arrow;\n this.instance.offset = this.offset;\n this.instance.detectChanges();\n this.updatePosition(true);\n }\n\n closingActions() {\n return merge(\n this.hasClickInTrigger ? this.overlayRef!.outsidePointerEvents() : EMPTY,\n this.overlayRef!.detachments()\n );\n }\n\n getOverlayHandleComponentType(): Type<KbqTooltipComponent> {\n return KbqTooltipComponent;\n }\n\n updateClassMap(newPlacement: string = this.placement) {\n if (!this.instance) {\n return;\n }\n\n this.instance.updateClassMap(POSITION_TO_CSS_MAP[newPlacement], `${this.customClass} ${this.color}`, {\n modifier: this.modifier\n });\n this.instance.markForCheck();\n }\n\n protected applyRelativeToPointer() {\n if (\n !this.strategy ||\n ![PopUpPlacements.Top, PopUpPlacements.Bottom].includes(this.placement as PopUpPlacements) ||\n this.triggerName !== 'mouseenter'\n ) {\n this.resetOrigin();\n\n return;\n }\n\n const triggerRects = this.elementRef.nativeElement.getBoundingClientRect();\n const point: Point = { x: 0, y: 0 };\n\n this.placementPriority = null;\n\n if (this.placement === PopUpPlacements.Top) {\n point.x = this.mouseEvent!.x;\n point.y = triggerRects.y;\n } else if (this.placement === PopUpPlacements.Bottom) {\n point.x = this.mouseEvent!.x;\n point.y = triggerRects.y + triggerRects.height;\n }\n\n this.strategy.setOrigin(point);\n }\n}\n\n/**\n * @docs-private\n * @deprecated Will be removed in next major release\n */\n@Directive({\n selector: '[kbqWarningTooltip]',\n exportAs: 'kbqWarningTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqWarningTooltipTrigger extends KbqTooltipTrigger {\n @Input('kbqWarningTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n protected modifier: TooltipModifier = TooltipModifier.Warning;\n}\n\n/**\n * @docs-private\n * @deprecated Will be removed in next major release\n */\n@Directive({\n selector: '[kbqExtendedTooltip]',\n exportAs: 'kbqExtendedTooltip',\n host: {\n '[class.kbq-tooltip_open]': 'isOpen',\n\n '(keydown)': 'keydownHandler($event)',\n '(touchend)': 'touchendHandler()'\n }\n})\nexport class KbqExtendedTooltipTrigger extends KbqTooltipTrigger {\n @Input('kbqExtendedTooltip')\n get content(): string | TemplateRef<any> {\n return this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n @Input('kbqTooltipHeader')\n get header(): string | TemplateRef<any> {\n return this._header;\n }\n\n set header(header: string | TemplateRef<any>) {\n this._header = header;\n\n this.updateData();\n }\n\n private _header: string | TemplateRef<any>;\n\n protected modifier: TooltipModifier = TooltipModifier.Extended;\n\n updateData() {\n if (!this.instance) {\n return;\n }\n\n super.updateData();\n this.instance.header = this.header;\n }\n}\n","<div\n #tooltip\n class=\"kbq-tooltip\"\n [class.kbq-tooltip_arrowless]=\"!arrow\"\n [ngClass]=\"classMap\"\n [@state]=\"visibility\"\n (@state.done)=\"animationDone($event)\"\n (@state.start)=\"animationStart()\"\n>\n <div class=\"kbq-tooltip__inner\">\n @if (arrow) {\n <div class=\"kbq-tooltip__arrow\"></div>\n }\n\n @if (header) {\n <div class=\"kbq-tooltip__header\">\n @if (isTemplateRef(header)) {\n <ng-container [ngTemplateOutlet]=\"$any(header)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(header)) {\n <div>{{ header }}</div>\n }\n </div>\n }\n <div class=\"kbq-tooltip__content\">\n @if (isTemplateRef(content)) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\" [ngTemplateOutletContext]=\"context\" />\n }\n @if (!isTemplateRef(content)) {\n <div>{{ content }}</div>\n }\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport {\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER,\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KbqExtendedTooltipTrigger,\n KbqTooltipComponent,\n KbqTooltipTrigger,\n KbqWarningTooltipTrigger\n} from './tooltip.component';\n\nconst COMPONENTS = [\n KbqTooltipComponent,\n KbqTooltipTrigger,\n KbqExtendedTooltipTrigger,\n KbqWarningTooltipTrigger\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS,\n providers: [\n KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER,\n KBQ_TOOLTIP_OPEN_TIME_PROVIDER\n ]\n})\nexport class KbqToolTipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@
72
72
  @include _kbq-form-field-state(states-focused);
73
73
 
74
74
  & .kbq-form-field__container {
75
- box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-focused-focus-outline);
75
+ box-shadow: inset 0 0 0.1px 1px var(--kbq-form-field-states-focused-focus-outline);
76
76
  }
77
77
  }
78
78
 
@@ -83,7 +83,7 @@
83
83
  @include _kbq-form-field-state(states-error);
84
84
 
85
85
  &.cdk-focused .kbq-form-field__container {
86
- box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
86
+ box-shadow: inset 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
87
87
  }
88
88
 
89
89
  & .kbq-icon.kbq-empty {
@@ -35,4 +35,6 @@ export declare abstract class KbqFormFieldControl<T> {
35
35
  abstract onContainerClick(event: MouseEvent): void;
36
36
  /** Focuses the control. */
37
37
  abstract focus(options?: FocusOptions): void;
38
+ /** Opens control's overlay. */
39
+ abstract open?(): void;
38
40
  }
@@ -78,7 +78,6 @@
78
78
  }
79
79
 
80
80
  &,
81
- .kbq-input,
82
81
  .kbq-textarea {
83
82
  border-radius: var(--kbq-form-field-size-border-radius);
84
83
  }
@@ -7,10 +7,6 @@
7
7
  cursor: pointer;
8
8
  }
9
9
 
10
- &.kbq-disabled:not(button) {
11
- pointer-events: none;
12
- }
13
-
14
10
  padding: var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding);
15
11
 
16
12
  &.kbq-icon-button_small {
@@ -18,4 +14,9 @@
18
14
  }
19
15
  }
20
16
 
17
+ button.kbq-icon-button {
18
+ border: none;
19
+ background-color: unset;
20
+ }
21
+
21
22
  @include kbq-icon-button-theme();
@@ -2,7 +2,7 @@
2
2
  --kbq-inline-edit-background: transparent;
3
3
  --kbq-inline-edit-height: var(--kbq-size-3xl);
4
4
  --kbq-inline-edit-padding-horizontal: var(--kbq-size-s);
5
- --kbq-inline-edit-padding-vertical: 5px;
5
+ --kbq-inline-edit-padding-vertical: var(--kbq-size-xs);
6
6
  --kbq-inline-edit-panel-shadow: var(--kbq-shadow-popup);
7
7
  --kbq-inline-edit-label-color: var(--kbq-foreground-contrast-secondary);
8
8
  }
@@ -104,6 +104,7 @@ export declare class KbqListSelection implements AfterContentInit, AfterViewInit
104
104
  onKeyDown(event: KeyboardEvent): void;
105
105
  reportValueChange(): void;
106
106
  emitChangeEvent(option: KbqListOption): void;
107
+ private initializeSelection;
107
108
  protected updateTabIndex(): void;
108
109
  private onCopyDefaultHandler;
109
110
  private resetOptions;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "19.3.0",
3
+ "version": "19.4.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,9 +25,9 @@
25
25
  "@angular/cdk": "^19.0.0",
26
26
  "@angular/core": "^19.0.0",
27
27
  "@angular/forms": "^19.0.0",
28
- "@koobiq/cdk": "19.3.0",
29
- "@koobiq/angular-moment-adapter": "19.3.0",
30
- "@koobiq/angular-luxon-adapter": "19.3.0",
28
+ "@koobiq/cdk": "19.4.0",
29
+ "@koobiq/angular-moment-adapter": "19.4.0",
30
+ "@koobiq/angular-luxon-adapter": "19.4.0",
31
31
  "@koobiq/date-formatter": "^3.2.3",
32
32
  "@koobiq/icons": "^11.1.3",
33
33
  "@koobiq/tokens-builder": "3.11.0",
@@ -27,8 +27,8 @@ function ngAdd(options) {
27
27
  }
28
28
  // Installing dependencies
29
29
  utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^19.2.19");
30
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/cdk', "^19.3.0");
31
- utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^19.3.0");
30
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/cdk', "^19.4.0");
31
+ utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^19.4.0");
32
32
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.4.0");
33
33
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.4.0");
34
34
  utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^11.2.0");
@@ -1,6 +1,6 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
- import { AfterViewInit, ChangeDetectorRef, DestroyRef, EventEmitter, InjectionToken } from '@angular/core';
3
- import { ControlValueAccessor } from '@angular/forms';
2
+ import { AfterViewInit, ChangeDetectorRef, DestroyRef, EventEmitter, InjectionToken, OnDestroy } from '@angular/core';
3
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
4
4
  import { BehaviorSubject } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  /** default configuration of search-expandable */
@@ -12,7 +12,9 @@ export declare const KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION: {
12
12
  export declare const KBQ_SEARCH_EXPANDABLE_CONFIGURATION: InjectionToken<unknown>;
13
13
  export declare const defaultValue = "";
14
14
  export declare const defaultEmitValueTimeout = 200;
15
- export declare class KbqSearchExpandable implements ControlValueAccessor, AfterViewInit {
15
+ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterViewInit, OnDestroy {
16
+ /** @docs-private */
17
+ protected readonly ngControl: NgControl | null;
16
18
  /** @docs-private */
17
19
  protected readonly focusMonitor: FocusMonitor;
18
20
  /** @docs-private */
@@ -41,6 +43,12 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
41
43
  get placeholder(): string;
42
44
  set placeholder(value: string);
43
45
  private _placeholder;
46
+ get disabled(): boolean;
47
+ set disabled(value: boolean);
48
+ private _disabled;
49
+ get tabIndex(): number;
50
+ set tabIndex(value: number);
51
+ private _tabIndex;
44
52
  /** Event emitted when the search has been toggled. */
45
53
  readonly isOpenedChange: EventEmitter<boolean>;
46
54
  /** localized data
@@ -49,6 +57,7 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
49
57
  private lastEmittedValue;
50
58
  constructor();
51
59
  ngAfterViewInit(): void;
60
+ ngOnDestroy(): void;
52
61
  /** @docs-private */
53
62
  onChange: (value: string) => void;
54
63
  /** @docs-private */
@@ -59,12 +68,18 @@ export declare class KbqSearchExpandable implements ControlValueAccessor, AfterV
59
68
  registerOnTouched(fn: () => void): void;
60
69
  /** Implemented as part of ControlValueAccessor. */
61
70
  writeValue(value: string): void;
71
+ /** Implemented as part of ControlValueAccessor. */
72
+ setDisabledState(isDisabled: boolean): void;
62
73
  toggle(): void;
63
74
  private updateLocaleParams;
64
75
  private initDefaultParams;
65
76
  private emitValue;
77
+ private runFocusMonitor;
78
+ private stopFocusMonitor;
66
79
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSearchExpandable, never>;
67
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqSearchExpandable, "kbq-search-expandable", never, { "isOpened": { "alias": "isOpened"; "required": false; }; "isEmitValueByEnterEnabled": { "alias": "isEmitValueByEnterEnabled"; "required": false; }; "emitValueTimeout": { "alias": "emitValueTimeout"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, { "isOpenedChange": "isOpenedChange"; }, never, never, true, never>;
80
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSearchExpandable, "kbq-search-expandable", never, { "isOpened": { "alias": "isOpened"; "required": false; }; "isEmitValueByEnterEnabled": { "alias": "isEmitValueByEnterEnabled"; "required": false; }; "emitValueTimeout": { "alias": "emitValueTimeout"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "isOpenedChange": "isOpenedChange"; }, never, never, true, never>;
68
81
  static ngAcceptInputType_isOpened: unknown;
69
82
  static ngAcceptInputType_emitValueTimeout: unknown;
83
+ static ngAcceptInputType_disabled: unknown;
84
+ static ngAcceptInputType_tabIndex: unknown;
70
85
  }
@@ -15,6 +15,16 @@
15
15
  box-shadow: var(--kbq-sidepanel-container-shadow);
16
16
  }
17
17
  }
18
+
19
+ // @TODO do proper animation (#DS-4539)
20
+ .kbq-overlay-dark-backdrop {
21
+ background: transparent;
22
+
23
+ &:not(:has(~ .kbq-overlay-dark-backdrop)) {
24
+ transition: unset;
25
+ background: var(--kbq-background-overlay) !important;
26
+ }
27
+ }
18
28
  }
19
29
 
20
30
  @mixin kbq-sidepanel-typography() {
@@ -3,11 +3,17 @@ import { KbqSidepanelPosition } from './sidepanel-config';
3
3
  export declare enum KbqSidepanelAnimationState {
4
4
  Void = "void",
5
5
  Visible = "visible",
6
- Hidden = "hidden"
6
+ Hidden = "hidden",
7
+ Lower = "lower",
8
+ BottomPanel = "bottom-panel",
9
+ BecomingNormal = "becoming-normal"
7
10
  }
8
11
  export declare const kbqSidepanelTransformAnimation: Record<KbqSidepanelPosition, {
9
12
  in: string;
10
13
  out: string;
14
+ lower: string;
15
+ bottomPanel: string;
16
+ becomingNormal: string;
11
17
  }>;
12
18
  export declare const kbqSidepanelAnimations: {
13
19
  readonly sidepanelState: AnimationTriggerMetadata;
@@ -6,33 +6,40 @@ import { KbqSidepanelAnimationState } from './sidepanel-animations';
6
6
  import { KbqSidepanelConfig } from './sidepanel-config';
7
7
  import * as i0 from "@angular/core";
8
8
  export declare const KBQ_SIDEPANEL_WITH_INDENT: InjectionToken<boolean>;
9
+ /** @deprecated */
9
10
  export declare const KBQ_SIDEPANEL_WITH_SHADOW: InjectionToken<boolean>;
10
11
  export declare class KbqSidepanelContainerComponent extends BasePortalOutlet implements OnDestroy {
11
12
  private elementRef;
12
13
  private changeDetectorRef;
13
14
  sidepanelConfig: KbqSidepanelConfig;
14
15
  withIndent: boolean;
15
- withShadow: boolean;
16
16
  /** ID for the container DOM element. */
17
17
  id: string;
18
18
  /** The portal outlet inside of this container into which the content will be loaded. */
19
19
  portalOutlet: CdkPortalOutlet;
20
20
  /** The state of the sidepanel animations. */
21
21
  animationState: KbqSidepanelAnimationState;
22
+ /** @docs-private */
22
23
  animationTransform: {
23
24
  transformIn: string;
24
25
  transformOut: string;
26
+ lower: string;
27
+ bottomPanel: string;
28
+ becomingNormal: string;
25
29
  };
26
30
  /** Emits whenever the state of the animation changes. */
27
31
  animationStateChanged: EventEmitter<AnimationEvent>;
32
+ /** @docs-private */
28
33
  get size(): string;
34
+ /** @docs-private */
29
35
  get trapFocusAutoCapture(): boolean;
36
+ /** @docs-private */
30
37
  get trapFocus(): boolean;
31
38
  /** @docs-private */
32
39
  protected readonly indentClickEmitter: Subject<MouseEvent>;
33
40
  /** Whether the component has been destroyed. */
34
41
  private destroyed;
35
- constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, sidepanelConfig: KbqSidepanelConfig, withIndent: boolean, withShadow: boolean);
42
+ constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, sidepanelConfig: KbqSidepanelConfig, withIndent: boolean);
36
43
  ngOnDestroy(): void;
37
44
  /**
38
45
  * Gets an observable that emits when the indent has been clicked.
@@ -48,7 +55,10 @@ export declare class KbqSidepanelContainerComponent extends BasePortalOutlet imp
48
55
  enter(): void;
49
56
  /** Begin animation of the sidepanel exiting from view. */
50
57
  exit(): void;
58
+ /** @docs-private */
51
59
  onAnimation(event: AnimationEvent): void;
60
+ /** @docs-private */
61
+ setAnimationState(state: KbqSidepanelAnimationState): void;
52
62
  private setAnimation;
53
63
  private setPanelClass;
54
64
  private validatePortalAttached;
@@ -25,6 +25,8 @@ export declare class KbqSidepanelHeader {
25
25
  closeable: boolean;
26
26
  /** Enables text truncation. Default true */
27
27
  truncateText: boolean;
28
+ /** @docs-private */
29
+ protected sidepanelRef: KbqSidepanelRef<any, any>;
28
30
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidepanelHeader, never>;
29
31
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqSidepanelHeader, "kbq-sidepanel-header", never, { "closeable": { "alias": "closeable"; "required": false; }; "truncateText": { "alias": "truncateText"; "required": false; }; }, {}, never, ["*"], true, never>;
30
32
  static ngAcceptInputType_closeable: unknown;
@@ -34,6 +36,10 @@ export declare class KbqSidepanelHeader {
34
36
  * Scrollable content container of a sidepanel.
35
37
  */
36
38
  export declare class KbqSidepanelBody {
39
+ private readonly sidepanelRef;
40
+ private readonly elementRef;
41
+ /** @docs-private */
42
+ protected checkOverflow(): void;
37
43
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidepanelBody, never>;
38
44
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSidepanelBody, "kbq-sidepanel-body, [kbq-sidepanel-body], kbqSidepanelBody", never, {}, {}, never, never, true, never>;
39
45
  }
@@ -41,6 +47,8 @@ export declare class KbqSidepanelBody {
41
47
  * Footer of a sidepanel.
42
48
  */
43
49
  export declare class KbqSidepanelFooter {
50
+ /** @docs-private */
51
+ protected sidepanelRef: KbqSidepanelRef<any, any>;
44
52
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidepanelFooter, never>;
45
53
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSidepanelFooter, "kbq-sidepanel-footer, [kbq-sidepanel-footer], kbqSidepanelFooter", never, {}, {}, never, never, true, never>;
46
54
  }
@@ -7,16 +7,28 @@ export declare class KbqSidepanelRef<T = any, R = any> {
7
7
  readonly overlayRef: OverlayRef;
8
8
  readonly config: KbqSidepanelConfig;
9
9
  readonly id: string;
10
+ /**
11
+ * Vertical scroll overflow state of the sidepanel body.
12
+ * Updated on scroll and used for visual adjustments.
13
+ */
14
+ bodyOverflow: import("@angular/core").WritableSignal<{
15
+ top: boolean;
16
+ bottom: boolean;
17
+ }>;
10
18
  /** Instance of the component making up the content of the sidepanel. */
11
19
  instance: T;
12
20
  /** Subject for notifying the user that the sidepanel has been closed and dismissed. */
13
21
  private readonly afterClosed$;
22
+ /** Subject for notifying the user that the sidepanel starting closing. */
23
+ private readonly beforeClosed$;
14
24
  /** Subject for notifying the user that the sidepanel has opened and appeared. */
15
25
  private readonly afterOpened$;
16
26
  /** Result to be passed down to the `afterDismissed` stream. */
17
27
  private result;
18
28
  constructor(containerInstance: KbqSidepanelContainerComponent, overlayRef: OverlayRef, config: KbqSidepanelConfig);
19
29
  close(result?: R): void;
30
+ /** Gets an observable that is notified when the sidepanel is started closing. */
31
+ beforeClosed(): Observable<void>;
20
32
  /** Gets an observable that is notified when the sidepanel is finished closing. */
21
33
  afterClosed(): Observable<R | undefined>;
22
34
  /** Gets an observable that is notified when the sidepanel has opened and appeared. */
@@ -8,16 +8,18 @@
8
8
  --kbq-sidepanel-size-close-button-margin-left: var(--kbq-size-s);
9
9
  --kbq-sidepanel-size-content-padding-horizontal: var(--kbq-size-xxl);
10
10
  --kbq-sidepanel-size-content-padding-bottom: var(--kbq-size-xxl);
11
+ --kbq-sidepanel-size-panel-viewport-margin: var(--kbq-size-s);
12
+ --kbq-sidepanel-size-panel-lower-offset: var(--kbq-size-l);
11
13
  // Added top padding to prevent the outline of the first focused field from being clipped
12
14
  --kbq-sidepanel-size-content-padding-top: 1px;
13
- --kbq-sidepanel-size-footer-padding-top: var(--kbq-size-s);
14
- --kbq-sidepanel-size-footer-padding-bottom: var(--kbq-size-3xl);
15
+ --kbq-sidepanel-size-footer-padding-top: var(--kbq-size-xl);
16
+ --kbq-sidepanel-size-footer-padding-bottom: var(--kbq-size-xl);
15
17
  --kbq-sidepanel-size-footer-padding-horizontal: var(--kbq-size-xxl);
16
18
  --kbq-sidepanel-size-footer-content-gap-horizontal: var(--kbq-size-l);
17
19
  /* THEME TOKENS */
18
20
  --kbq-sidepanel-overlay-background: var(--kbq-background-overlay);
19
21
  --kbq-sidepanel-container-background: var(--kbq-background-card);
20
- --kbq-sidepanel-container-shadow: var(--kbq-shadow-overlay);
22
+ --kbq-sidepanel-container-shadow: var(--kbq-shadow-popup);
21
23
  --kbq-sidepanel-header-text-color: var(--kbq-foreground-contrast);
22
24
  --kbq-sidepanel-content-text-color: var(--kbq-foreground-contrast);
23
25
  }