@konce-pt/angular 0.7.5 → 0.7.6

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, model, output, InjectionToken, signal, inject, Injectable, ElementRef, effect, PLATFORM_ID, DestroyRef, makeEnvironmentProviders, contentChild, afterNextRender, forwardRef, numberAttribute, viewChild, Directive, TemplateRef, contentChildren, viewChildren, afterRenderEffect, linkedSignal } from '@angular/core';
2
+ import { input, booleanAttribute, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, model, output, signal, Injectable, inject, ElementRef, effect, InjectionToken, PLATFORM_ID, DestroyRef, makeEnvironmentProviders, contentChild, afterNextRender, forwardRef, numberAttribute, viewChild, Directive, TemplateRef, contentChildren, viewChildren, afterRenderEffect, linkedSignal } from '@angular/core';
3
3
  import { CdkOverlayOrigin, CdkConnectedOverlay, OverlayContainer } from '@angular/cdk/overlay';
4
4
  import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';
5
5
 
@@ -51,14 +51,14 @@ class KptButton {
51
51
  i0.ɵɵattribute("data-variant", ctx.variant())("data-size", ctx.size())("aria-busy", ctx.loading() ? "true" : null);
52
52
  i0.ɵɵadvance();
53
53
  i0.ɵɵconditional(ctx.loading() ? 1 : -1);
54
- } }, styles: ["@layer kpt.components{.kpt-button-host{display:inline-flex}.kpt-button-host--full{display:flex;width:100%}.kpt-button{--%NS%_bg: var(--%NS%kpt-button-filled-bg);--%NS%_fg: var(--%NS%kpt-button-filled-fg);--%NS%_bg-hover: var(--%NS%kpt-button-filled-bg-hover);--%NS%_bg-active: var(--%NS%kpt-button-filled-bg-active);--%NS%_border: transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--%NS%kpt-button-gap, .5rem);width:100%;box-sizing:border-box;height:var(--%NS%_h, 2.5rem);padding-inline:var(--%NS%_px, 1rem);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%_border);border-radius:var(--%NS%kpt-button-radius, .5rem);font-family:inherit;font-size:var(--%NS%_fs, .875rem);font-weight:var(--%NS%kpt-button-font-weight, 500);line-height:1;white-space:nowrap;cursor:pointer;background-color:var(--%NS%_bg);color:var(--%NS%_fg);transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard),border-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard),opacity var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-button:hover:not(:disabled){background-color:var(--%NS%_bg-hover)}.kpt-button:active:not(:disabled){background-color:var(--%NS%_bg-active, var(--%NS%_bg-hover))}.kpt-button:disabled{cursor:not-allowed;opacity:.5}.kpt-button[data-size=sm]{--%NS%_h: 2rem;--%NS%_px: .75rem;--%NS%_fs: .8125rem}.kpt-button[data-size=md]{--%NS%_h: 2.5rem;--%NS%_px: 1rem;--%NS%_fs: .875rem}.kpt-button[data-size=lg]{--%NS%_h: 3rem;--%NS%_px: 1.5rem;--%NS%_fs: 1rem}.kpt-button[data-variant=tonal]{--%NS%_bg: var(--%NS%kpt-button-tonal-bg);--%NS%_fg: var(--%NS%kpt-button-tonal-fg);--%NS%_bg-hover: var(--%NS%kpt-button-tonal-bg-hover);--%NS%_bg-active: var(--%NS%kpt-button-tonal-bg-hover)}.kpt-button[data-variant=outline]{--%NS%_bg: transparent;--%NS%_fg: var(--%NS%kpt-button-outline-fg);--%NS%_border: var(--%NS%kpt-button-outline-border);--%NS%_bg-hover: var(--%NS%kpt-button-outline-bg-hover);--%NS%_bg-active: var(--%NS%kpt-button-outline-bg-hover)}.kpt-button[data-variant=text]{--%NS%_bg: transparent;--%NS%_fg: var(--%NS%kpt-button-text-fg);--%NS%_bg-hover: var(--%NS%kpt-button-text-bg-hover);--%NS%_bg-active: var(--%NS%kpt-button-text-bg-hover)}.kpt-button[data-variant=danger]{--%NS%_bg: var(--%NS%kpt-color-danger);--%NS%_fg: var(--%NS%kpt-color-on-danger);--%NS%_bg-hover: color-mix(in oklch, var(--%NS%kpt-color-danger) 88%, black);--%NS%_bg-active: color-mix(in oklch, var(--%NS%kpt-color-danger) 78%, black)}.kpt-button--loading .kpt-button__content{opacity:.75}.kpt-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kpt-button-spin .6s linear infinite}@media(prefers-reduced-motion:reduce){.kpt-button{transition:none}.kpt-button__spinner{animation-duration:1.4s}}@keyframes kpt-button-spin{to{transform:rotate(360deg)}}}\n"], encapsulation: 2 }); }
54
+ } }, styles: ["@layer kpt.components{.kpt-button-host{display:inline-flex}.kpt-button-host--full{display:flex;width:100%}.kpt-button{--%NS%_bg: var(--%NS%kpt-button-filled-bg);--%NS%_fg: var(--%NS%kpt-button-filled-fg);--%NS%_bg-hover: var(--%NS%kpt-button-filled-bg-hover);--%NS%_bg-active: var(--%NS%kpt-button-filled-bg-active);--%NS%_border: transparent;position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:var(--%NS%kpt-button-gap, .5rem);width:100%;box-sizing:border-box;height:var(--%NS%_h, 2.5rem);padding-inline:var(--%NS%_px, 1rem);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%_border);border-radius:var(--%NS%kpt-button-radius, .5rem);font-family:inherit;font-size:var(--%NS%_fs, .875rem);font-weight:var(--%NS%kpt-button-font-weight, 500);line-height:1;white-space:nowrap;cursor:pointer;background-color:var(--%NS%_bg);color:var(--%NS%_fg);transition:opacity var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-button:after{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-color:var(--%NS%_state, transparent);opacity:0;pointer-events:none;transition:opacity var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard),background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-button:hover:not(:disabled){--%NS%_state: var(--%NS%_bg-hover)}.kpt-button:hover:not(:disabled):after{opacity:1}.kpt-button:active:not(:disabled){--%NS%_state: var(--%NS%_bg-active, var(--%NS%_bg-hover))}.kpt-button:disabled{cursor:not-allowed;opacity:.5}.kpt-button[data-size=sm]{--%NS%_h: 2rem;--%NS%_px: .75rem;--%NS%_fs: .8125rem}.kpt-button[data-size=md]{--%NS%_h: 2.5rem;--%NS%_px: 1rem;--%NS%_fs: .875rem}.kpt-button[data-size=lg]{--%NS%_h: 3rem;--%NS%_px: 1.5rem;--%NS%_fs: 1rem}.kpt-button[data-variant=tonal]{--%NS%_bg: var(--%NS%kpt-button-tonal-bg);--%NS%_fg: var(--%NS%kpt-button-tonal-fg);--%NS%_bg-hover: var(--%NS%kpt-button-tonal-bg-hover);--%NS%_bg-active: var(--%NS%kpt-button-tonal-bg-hover)}.kpt-button[data-variant=outline]{--%NS%_bg: transparent;--%NS%_fg: var(--%NS%kpt-button-outline-fg);--%NS%_border: var(--%NS%kpt-button-outline-border);--%NS%_bg-hover: var(--%NS%kpt-button-outline-bg-hover);--%NS%_bg-active: var(--%NS%kpt-button-outline-bg-hover)}.kpt-button[data-variant=text]{--%NS%_bg: transparent;--%NS%_fg: var(--%NS%kpt-button-text-fg);--%NS%_bg-hover: var(--%NS%kpt-button-text-bg-hover);--%NS%_bg-active: var(--%NS%kpt-button-text-bg-hover)}.kpt-button[data-variant=danger]{--%NS%_bg: var(--%NS%kpt-color-danger);--%NS%_fg: var(--%NS%kpt-color-on-danger);--%NS%_bg-hover: color-mix(in oklch, var(--%NS%kpt-color-danger) 88%, black);--%NS%_bg-active: color-mix(in oklch, var(--%NS%kpt-color-danger) 78%, black)}.kpt-button--loading .kpt-button__content{opacity:.75}.kpt-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kpt-button-spin .6s linear infinite}@media(prefers-reduced-motion:reduce){.kpt-button{transition:none}.kpt-button:after{transition:none}.kpt-button__spinner{animation-duration:1.4s}}@keyframes kpt-button-spin{to{transform:rotate(360deg)}}}\n"], encapsulation: 2 }); }
55
55
  }
56
56
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptButton, [{
57
57
  type: Component,
58
58
  args: [{ selector: 'kpt-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
59
59
  class: 'kpt-button-host',
60
60
  '[class.kpt-button-host--full]': 'fullWidth()',
61
- }, template: "<button\n class=\"kpt-button\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n [class.kpt-button--loading]=\"loading()\"\n [disabled]=\"isDisabled()\"\n>\n @if (loading()) {\n <span class=\"kpt-button__spinner\" aria-hidden=\"true\"></span>\n }\n <span class=\"kpt-button__content\"><ng-content /></span>\n</button>\n", styles: ["@layer kpt.components{.kpt-button-host{display:inline-flex}.kpt-button-host--full{display:flex;width:100%}.kpt-button{--_bg: var(--kpt-button-filled-bg);--_fg: var(--kpt-button-filled-fg);--_bg-hover: var(--kpt-button-filled-bg-hover);--_bg-active: var(--kpt-button-filled-bg-active);--_border: transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--kpt-button-gap, .5rem);width:100%;box-sizing:border-box;height:var(--_h, 2.5rem);padding-inline:var(--_px, 1rem);border:var(--kpt-border-width-thin, 1px) solid var(--_border);border-radius:var(--kpt-button-radius, .5rem);font-family:inherit;font-size:var(--_fs, .875rem);font-weight:var(--kpt-button-font-weight, 500);line-height:1;white-space:nowrap;cursor:pointer;background-color:var(--_bg);color:var(--_fg);transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard),border-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard),opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-button:hover:not(:disabled){background-color:var(--_bg-hover)}.kpt-button:active:not(:disabled){background-color:var(--_bg-active, var(--_bg-hover))}.kpt-button:disabled{cursor:not-allowed;opacity:.5}.kpt-button[data-size=sm]{--_h: 2rem;--_px: .75rem;--_fs: .8125rem}.kpt-button[data-size=md]{--_h: 2.5rem;--_px: 1rem;--_fs: .875rem}.kpt-button[data-size=lg]{--_h: 3rem;--_px: 1.5rem;--_fs: 1rem}.kpt-button[data-variant=tonal]{--_bg: var(--kpt-button-tonal-bg);--_fg: var(--kpt-button-tonal-fg);--_bg-hover: var(--kpt-button-tonal-bg-hover);--_bg-active: var(--kpt-button-tonal-bg-hover)}.kpt-button[data-variant=outline]{--_bg: transparent;--_fg: var(--kpt-button-outline-fg);--_border: var(--kpt-button-outline-border);--_bg-hover: var(--kpt-button-outline-bg-hover);--_bg-active: var(--kpt-button-outline-bg-hover)}.kpt-button[data-variant=text]{--_bg: transparent;--_fg: var(--kpt-button-text-fg);--_bg-hover: var(--kpt-button-text-bg-hover);--_bg-active: var(--kpt-button-text-bg-hover)}.kpt-button[data-variant=danger]{--_bg: var(--kpt-color-danger);--_fg: var(--kpt-color-on-danger);--_bg-hover: color-mix(in oklch, var(--kpt-color-danger) 88%, black);--_bg-active: color-mix(in oklch, var(--kpt-color-danger) 78%, black)}.kpt-button--loading .kpt-button__content{opacity:.75}.kpt-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kpt-button-spin .6s linear infinite}@media(prefers-reduced-motion:reduce){.kpt-button{transition:none}.kpt-button__spinner{animation-duration:1.4s}}@keyframes kpt-button-spin{to{transform:rotate(360deg)}}}\n"] }]
61
+ }, template: "<button\n class=\"kpt-button\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n [class.kpt-button--loading]=\"loading()\"\n [disabled]=\"isDisabled()\"\n>\n @if (loading()) {\n <span class=\"kpt-button__spinner\" aria-hidden=\"true\"></span>\n }\n <span class=\"kpt-button__content\"><ng-content /></span>\n</button>\n", styles: ["@layer kpt.components{.kpt-button-host{display:inline-flex}.kpt-button-host--full{display:flex;width:100%}.kpt-button{--_bg: var(--kpt-button-filled-bg);--_fg: var(--kpt-button-filled-fg);--_bg-hover: var(--kpt-button-filled-bg-hover);--_bg-active: var(--kpt-button-filled-bg-active);--_border: transparent;position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:var(--kpt-button-gap, .5rem);width:100%;box-sizing:border-box;height:var(--_h, 2.5rem);padding-inline:var(--_px, 1rem);border:var(--kpt-border-width-thin, 1px) solid var(--_border);border-radius:var(--kpt-button-radius, .5rem);font-family:inherit;font-size:var(--_fs, .875rem);font-weight:var(--kpt-button-font-weight, 500);line-height:1;white-space:nowrap;cursor:pointer;background-color:var(--_bg);color:var(--_fg);transition:opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-button:after{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-color:var(--_state, transparent);opacity:0;pointer-events:none;transition:opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard),background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-button:hover:not(:disabled){--_state: var(--_bg-hover)}.kpt-button:hover:not(:disabled):after{opacity:1}.kpt-button:active:not(:disabled){--_state: var(--_bg-active, var(--_bg-hover))}.kpt-button:disabled{cursor:not-allowed;opacity:.5}.kpt-button[data-size=sm]{--_h: 2rem;--_px: .75rem;--_fs: .8125rem}.kpt-button[data-size=md]{--_h: 2.5rem;--_px: 1rem;--_fs: .875rem}.kpt-button[data-size=lg]{--_h: 3rem;--_px: 1.5rem;--_fs: 1rem}.kpt-button[data-variant=tonal]{--_bg: var(--kpt-button-tonal-bg);--_fg: var(--kpt-button-tonal-fg);--_bg-hover: var(--kpt-button-tonal-bg-hover);--_bg-active: var(--kpt-button-tonal-bg-hover)}.kpt-button[data-variant=outline]{--_bg: transparent;--_fg: var(--kpt-button-outline-fg);--_border: var(--kpt-button-outline-border);--_bg-hover: var(--kpt-button-outline-bg-hover);--_bg-active: var(--kpt-button-outline-bg-hover)}.kpt-button[data-variant=text]{--_bg: transparent;--_fg: var(--kpt-button-text-fg);--_bg-hover: var(--kpt-button-text-bg-hover);--_bg-active: var(--kpt-button-text-bg-hover)}.kpt-button[data-variant=danger]{--_bg: var(--kpt-color-danger);--_fg: var(--kpt-color-on-danger);--_bg-hover: color-mix(in oklch, var(--kpt-color-danger) 88%, black);--_bg-active: color-mix(in oklch, var(--kpt-color-danger) 78%, black)}.kpt-button--loading .kpt-button__content{opacity:.75}.kpt-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kpt-button-spin .6s linear infinite}@media(prefers-reduced-motion:reduce){.kpt-button{transition:none}.kpt-button:after{transition:none}.kpt-button__spinner{animation-duration:1.4s}}@keyframes kpt-button-spin{to{transform:rotate(360deg)}}}\n"] }]
62
62
  }], null, { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }] }); })();
63
63
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptButton, { className: "KptButton", filePath: "lib/button/button.component.ts", lineNumber: 32 }); })();
64
64
 
@@ -105,7 +105,7 @@ class KptIconButton {
105
105
  i0.ɵɵattribute("data-variant", ctx.variant())("data-size", ctx.size())("data-shape", ctx.shape())("aria-label", ctx.ariaLabel())("aria-busy", ctx.loading() ? "true" : null);
106
106
  i0.ɵɵadvance();
107
107
  i0.ɵɵconditional(ctx.loading() ? 1 : 2);
108
- } }, styles: ["@layer kpt.components{.kpt-icon-button-host{display:inline-flex}.kpt-icon-button{--%NS%_bg: transparent;--%NS%_fg: var(--%NS%kpt-color-on-surface);--%NS%_bg-hover: var(--%NS%kpt-color-muted);display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:var(--%NS%kpt-border-width-thin, 1px) solid transparent;border-radius:var(--%NS%kpt-radius-full, 9999px);background:var(--%NS%_bg);color:var(--%NS%_fg);cursor:pointer;font-size:1.25rem;transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-icon-button:hover:not(:disabled){background:var(--%NS%_bg-hover)}.kpt-icon-button:disabled{cursor:not-allowed;opacity:.5}.kpt-icon-button[data-shape=square]{border-radius:var(--%NS%kpt-radius-md, .5rem)}.kpt-icon-button[data-size=sm]{width:2rem;height:2rem;font-size:1rem}.kpt-icon-button[data-size=lg]{width:3rem;height:3rem;font-size:1.5rem}.kpt-icon-button[data-variant=filled]{--%NS%_bg: var(--%NS%kpt-color-primary);--%NS%_fg: var(--%NS%kpt-color-on-primary);--%NS%_bg-hover: var(--%NS%kpt-color-primary-hover)}.kpt-icon-button[data-variant=tonal]{--%NS%_bg: var(--%NS%kpt-color-muted);--%NS%_fg: var(--%NS%kpt-color-on-muted);--%NS%_bg-hover: var(--%NS%kpt-color-muted-hover)}.kpt-icon-button[data-variant=outline]{border-color:var(--%NS%kpt-color-border-strong)}.kpt-icon-button[data-variant=danger]{--%NS%_bg: var(--%NS%kpt-color-danger);--%NS%_fg: var(--%NS%kpt-color-on-danger);--%NS%_bg-hover: color-mix(in oklch, var(--%NS%kpt-color-danger) 88%, black)}.kpt-icon-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kpt-spinner-rotate .6s linear infinite}}\n"], encapsulation: 2 }); }
108
+ } }, styles: ["@layer kpt.components{.kpt-icon-button-host{display:inline-flex}.kpt-icon-button{--%NS%_bg: transparent;--%NS%_fg: var(--%NS%kpt-color-on-surface);--%NS%_bg-hover: var(--%NS%kpt-color-muted);position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:var(--%NS%kpt-border-width-thin, 1px) solid transparent;border-radius:var(--%NS%kpt-radius-full, 9999px);background:var(--%NS%_bg);color:var(--%NS%_fg);cursor:pointer;font-size:1.25rem}.kpt-icon-button:after{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-color:var(--%NS%_bg-hover);opacity:0;pointer-events:none;transition:opacity var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-icon-button:hover:not(:disabled):after{opacity:1}.kpt-icon-button:disabled{cursor:not-allowed;opacity:.5}.kpt-icon-button[data-shape=square]{border-radius:var(--%NS%kpt-radius-md, .5rem)}.kpt-icon-button[data-size=sm]{width:2rem;height:2rem;font-size:1rem}.kpt-icon-button[data-size=lg]{width:3rem;height:3rem;font-size:1.5rem}.kpt-icon-button[data-variant=filled]{--%NS%_bg: var(--%NS%kpt-color-primary);--%NS%_fg: var(--%NS%kpt-color-on-primary);--%NS%_bg-hover: var(--%NS%kpt-color-primary-hover)}.kpt-icon-button[data-variant=tonal]{--%NS%_bg: var(--%NS%kpt-color-muted);--%NS%_fg: var(--%NS%kpt-color-on-muted);--%NS%_bg-hover: var(--%NS%kpt-color-muted-hover)}.kpt-icon-button[data-variant=outline]{border-color:var(--%NS%kpt-color-border-strong)}.kpt-icon-button[data-variant=danger]{--%NS%_bg: var(--%NS%kpt-color-danger);--%NS%_fg: var(--%NS%kpt-color-on-danger);--%NS%_bg-hover: color-mix(in oklch, var(--%NS%kpt-color-danger) 88%, black)}@media(prefers-reduced-motion:reduce){.kpt-icon-button:after{transition:none}}.kpt-icon-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kpt-spinner-rotate .6s linear infinite}}\n"], encapsulation: 2 }); }
109
109
  }
110
110
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptIconButton, [{
111
111
  type: Component,
@@ -126,7 +126,7 @@ class KptIconButton {
126
126
  <ng-content />
127
127
  }
128
128
  </button>
129
- `, host: { class: 'kpt-icon-button-host' }, styles: ["@layer kpt.components{.kpt-icon-button-host{display:inline-flex}.kpt-icon-button{--_bg: transparent;--_fg: var(--kpt-color-on-surface);--_bg-hover: var(--kpt-color-muted);display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:var(--kpt-border-width-thin, 1px) solid transparent;border-radius:var(--kpt-radius-full, 9999px);background:var(--_bg);color:var(--_fg);cursor:pointer;font-size:1.25rem;transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-icon-button:hover:not(:disabled){background:var(--_bg-hover)}.kpt-icon-button:disabled{cursor:not-allowed;opacity:.5}.kpt-icon-button[data-shape=square]{border-radius:var(--kpt-radius-md, .5rem)}.kpt-icon-button[data-size=sm]{width:2rem;height:2rem;font-size:1rem}.kpt-icon-button[data-size=lg]{width:3rem;height:3rem;font-size:1.5rem}.kpt-icon-button[data-variant=filled]{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);--_bg-hover: var(--kpt-color-primary-hover)}.kpt-icon-button[data-variant=tonal]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted);--_bg-hover: var(--kpt-color-muted-hover)}.kpt-icon-button[data-variant=outline]{border-color:var(--kpt-color-border-strong)}.kpt-icon-button[data-variant=danger]{--_bg: var(--kpt-color-danger);--_fg: var(--kpt-color-on-danger);--_bg-hover: color-mix(in oklch, var(--kpt-color-danger) 88%, black)}.kpt-icon-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kpt-spinner-rotate .6s linear infinite}}\n"] }]
129
+ `, host: { class: 'kpt-icon-button-host' }, styles: ["@layer kpt.components{.kpt-icon-button-host{display:inline-flex}.kpt-icon-button{--_bg: transparent;--_fg: var(--kpt-color-on-surface);--_bg-hover: var(--kpt-color-muted);position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:var(--kpt-border-width-thin, 1px) solid transparent;border-radius:var(--kpt-radius-full, 9999px);background:var(--_bg);color:var(--_fg);cursor:pointer;font-size:1.25rem}.kpt-icon-button:after{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-color:var(--_bg-hover);opacity:0;pointer-events:none;transition:opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-icon-button:hover:not(:disabled):after{opacity:1}.kpt-icon-button:disabled{cursor:not-allowed;opacity:.5}.kpt-icon-button[data-shape=square]{border-radius:var(--kpt-radius-md, .5rem)}.kpt-icon-button[data-size=sm]{width:2rem;height:2rem;font-size:1rem}.kpt-icon-button[data-size=lg]{width:3rem;height:3rem;font-size:1.5rem}.kpt-icon-button[data-variant=filled]{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);--_bg-hover: var(--kpt-color-primary-hover)}.kpt-icon-button[data-variant=tonal]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted);--_bg-hover: var(--kpt-color-muted-hover)}.kpt-icon-button[data-variant=outline]{border-color:var(--kpt-color-border-strong)}.kpt-icon-button[data-variant=danger]{--_bg: var(--kpt-color-danger);--_fg: var(--kpt-color-on-danger);--_bg-hover: color-mix(in oklch, var(--kpt-color-danger) 88%, black)}@media(prefers-reduced-motion:reduce){.kpt-icon-button:after{transition:none}}.kpt-icon-button__spinner{width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kpt-spinner-rotate .6s linear infinite}}\n"] }]
130
130
  }], null, { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: true }] }] }); })();
131
131
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptIconButton, { className: "KptIconButton", filePath: "lib/icon-button/icon-button.component.ts", lineNumber: 36 }); })();
132
132
 
@@ -234,7 +234,7 @@ class KptFab {
234
234
  i0.ɵɵclassProp("kpt-fab--extended", ctx.extended());
235
235
  i0.ɵɵdomProperty("type", ctx.type())("disabled", ctx.disabled());
236
236
  i0.ɵɵattribute("data-variant", ctx.variant())("data-size", ctx.size())("aria-label", ctx.extended() ? null : ctx.ariaLabel());
237
- } }, styles: ["@layer kpt.components{.kpt-fab-host{display:inline-flex}.kpt-fab{--%NS%_bg: var(--%NS%kpt-color-primary);--%NS%_fg: var(--%NS%kpt-color-on-primary);--%NS%_bg-hover: var(--%NS%kpt-color-primary-hover);display:inline-flex;align-items:center;justify-content:center;gap:var(--%NS%kpt-space-2, .5rem);width:3.5rem;height:3.5rem;border:0;border-radius:var(--%NS%kpt-radius-lg, .75rem);background:var(--%NS%_bg);color:var(--%NS%_fg);box-shadow:var(--%NS%kpt-elevation-3);cursor:pointer;font:inherit;font-size:1.5rem;font-weight:var(--%NS%kpt-font-weight-medium, 500);transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard),box-shadow var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-fab:hover:not(:disabled){background:var(--%NS%_bg-hover);box-shadow:var(--%NS%kpt-elevation-4)}.kpt-fab:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.kpt-fab[data-variant=tonal]{--%NS%_bg: var(--%NS%kpt-color-muted);--%NS%_fg: var(--%NS%kpt-color-on-muted);--%NS%_bg-hover: var(--%NS%kpt-color-muted-hover)}.kpt-fab[data-size=mini]{width:2.5rem;height:2.5rem;font-size:1.15rem;border-radius:var(--%NS%kpt-radius-md, .5rem)}.kpt-fab--extended{width:auto;padding-inline:var(--%NS%kpt-space-5, 1.25rem);font-size:var(--%NS%kpt-font-size-sm, .875rem);border-radius:var(--%NS%kpt-radius-full, 9999px)}}\n"], encapsulation: 2 }); }
237
+ } }, styles: ["@layer kpt.components{.kpt-fab-host{display:inline-flex}.kpt-fab{--%NS%_bg: var(--%NS%kpt-color-primary);--%NS%_fg: var(--%NS%kpt-color-on-primary);--%NS%_bg-hover: var(--%NS%kpt-color-primary-hover);display:inline-flex;align-items:center;justify-content:center;gap:var(--%NS%kpt-space-2, .5rem);width:3.5rem;height:3.5rem;border:0;border-radius:var(--%NS%kpt-radius-lg, .75rem);background:var(--%NS%_bg);color:var(--%NS%_fg);box-shadow:var(--%NS%kpt-elevation-3);cursor:pointer;font:inherit;font-size:1.5rem;font-weight:var(--%NS%kpt-font-weight-medium, 500);position:relative;isolation:isolate;transition:box-shadow var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-fab:after{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-color:var(--%NS%_bg-hover);opacity:0;pointer-events:none;transition:opacity var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-fab:hover:not(:disabled){box-shadow:var(--%NS%kpt-elevation-4)}.kpt-fab:hover:not(:disabled):after{opacity:1}.kpt-fab:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}@media(prefers-reduced-motion:reduce){.kpt-fab{transition:none}.kpt-fab:after{transition:none}}.kpt-fab[data-variant=tonal]{--%NS%_bg: var(--%NS%kpt-color-muted);--%NS%_fg: var(--%NS%kpt-color-on-muted);--%NS%_bg-hover: var(--%NS%kpt-color-muted-hover)}.kpt-fab[data-size=mini]{width:2.5rem;height:2.5rem;font-size:1.15rem;border-radius:var(--%NS%kpt-radius-md, .5rem)}.kpt-fab--extended{width:auto;padding-inline:var(--%NS%kpt-space-5, 1.25rem);font-size:var(--%NS%kpt-font-size-sm, .875rem);border-radius:var(--%NS%kpt-radius-full, 9999px)}}\n"], encapsulation: 2 }); }
238
238
  }
239
239
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptFab, [{
240
240
  type: Component,
@@ -248,10 +248,296 @@ class KptFab {
248
248
  [disabled]="disabled()"
249
249
  [attr.aria-label]="extended() ? null : ariaLabel()"
250
250
  ><ng-content /></button>
251
- `, host: { class: 'kpt-fab-host' }, styles: ["@layer kpt.components{.kpt-fab-host{display:inline-flex}.kpt-fab{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);--_bg-hover: var(--kpt-color-primary-hover);display:inline-flex;align-items:center;justify-content:center;gap:var(--kpt-space-2, .5rem);width:3.5rem;height:3.5rem;border:0;border-radius:var(--kpt-radius-lg, .75rem);background:var(--_bg);color:var(--_fg);box-shadow:var(--kpt-elevation-3);cursor:pointer;font:inherit;font-size:1.5rem;font-weight:var(--kpt-font-weight-medium, 500);transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard),box-shadow var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-fab:hover:not(:disabled){background:var(--_bg-hover);box-shadow:var(--kpt-elevation-4)}.kpt-fab:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.kpt-fab[data-variant=tonal]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted);--_bg-hover: var(--kpt-color-muted-hover)}.kpt-fab[data-size=mini]{width:2.5rem;height:2.5rem;font-size:1.15rem;border-radius:var(--kpt-radius-md, .5rem)}.kpt-fab--extended{width:auto;padding-inline:var(--kpt-space-5, 1.25rem);font-size:var(--kpt-font-size-sm, .875rem);border-radius:var(--kpt-radius-full, 9999px)}}\n"] }]
251
+ `, host: { class: 'kpt-fab-host' }, styles: ["@layer kpt.components{.kpt-fab-host{display:inline-flex}.kpt-fab{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);--_bg-hover: var(--kpt-color-primary-hover);display:inline-flex;align-items:center;justify-content:center;gap:var(--kpt-space-2, .5rem);width:3.5rem;height:3.5rem;border:0;border-radius:var(--kpt-radius-lg, .75rem);background:var(--_bg);color:var(--_fg);box-shadow:var(--kpt-elevation-3);cursor:pointer;font:inherit;font-size:1.5rem;font-weight:var(--kpt-font-weight-medium, 500);position:relative;isolation:isolate;transition:box-shadow var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-fab:after{content:\"\";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-color:var(--_bg-hover);opacity:0;pointer-events:none;transition:opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-fab:hover:not(:disabled){box-shadow:var(--kpt-elevation-4)}.kpt-fab:hover:not(:disabled):after{opacity:1}.kpt-fab:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}@media(prefers-reduced-motion:reduce){.kpt-fab{transition:none}.kpt-fab:after{transition:none}}.kpt-fab[data-variant=tonal]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted);--_bg-hover: var(--kpt-color-muted-hover)}.kpt-fab[data-size=mini]{width:2.5rem;height:2.5rem;font-size:1.15rem;border-radius:var(--kpt-radius-md, .5rem)}.kpt-fab--extended{width:auto;padding-inline:var(--kpt-space-5, 1.25rem);font-size:var(--kpt-font-size-sm, .875rem);border-radius:var(--kpt-radius-full, 9999px)}}\n"] }]
252
252
  }], null, { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], extended: [{ type: i0.Input, args: [{ isSignal: true, alias: "extended", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] }); })();
253
253
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptFab, { className: "KptFab", filePath: "lib/fab/fab.component.ts", lineNumber: 28 }); })();
254
254
 
255
+ const KPT_ICONS = {
256
+ 'menu': '<path d="M4 6l16 0" /> <path d="M4 12l16 0" /> <path d="M4 18l16 0" />',
257
+ 'x': '<path d="M18 6l-12 12" /> <path d="M6 6l12 12" />',
258
+ 'chevron-up': '<path d="M6 15l6 -6l6 6" />',
259
+ 'chevron-down': '<path d="M6 9l6 6l6 -6" />',
260
+ 'chevron-left': '<path d="M15 6l-6 6l6 6" />',
261
+ 'chevron-right': '<path d="M9 6l6 6l-6 6" />',
262
+ 'check': '<path d="M5 12l5 5l10 -10" />',
263
+ 'search': '<path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" /> <path d="M21 21l-6 -6" />',
264
+ 'grip-vertical': '<path d="M8 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M8 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M8 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M14 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M14 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M14 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />',
265
+ 'info': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M12 9h.01" /> <path d="M11 12h1v4h1" />',
266
+ 'alert-triangle': '<path d="M12 9v4" /> <path d="M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0" /> <path d="M12 16h.01" />',
267
+ 'circle-check': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /> <path d="M9 12l2 2l4 -4" />',
268
+ 'circle-x': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /> <path d="M10 10l4 4m0 -4l-4 4" />',
269
+ 'calendar': '<path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12" /> <path d="M16 3v4" /> <path d="M8 3v4" /> <path d="M4 11h16" /> <path d="M11 15h1" /> <path d="M12 15v3" />',
270
+ 'copy': '<path d="M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666" /> <path d="M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1" />',
271
+ 'link': '<path d="M9 15l6 -6" /> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464" /> <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463" />',
272
+ 'code': '<path d="M7 8l-4 4l4 4" /> <path d="M17 8l4 4l-4 4" /> <path d="M14 4l-4 16" />',
273
+ 'bold': '<path d="M7 5h6a3.5 3.5 0 0 1 0 7h-6l0 -7" /> <path d="M13 12h1a3.5 3.5 0 0 1 0 7h-7v-7" />',
274
+ 'italic': '<path d="M11 5l6 0" /> <path d="M7 19l6 0" /> <path d="M14 5l-4 14" />',
275
+ 'underline': '<path d="M7 5v5a5 5 0 0 0 10 0v-5" /> <path d="M5 19h14" />',
276
+ 'strikethrough': '<path d="M5 12l14 0" /> <path d="M16 6.5a4 2 0 0 0 -4 -1.5h-1a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-1.5a4 2 0 0 1 -4 -1.5" />',
277
+ 'list': '<path d="M9 6l11 0" /> <path d="M9 12l11 0" /> <path d="M9 18l11 0" /> <path d="M5 6l0 .01" /> <path d="M5 12l0 .01" /> <path d="M5 18l0 .01" />',
278
+ 'list-numbers': '<path d="M11 6h9" /> <path d="M11 12h9" /> <path d="M12 18h8" /> <path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4" /> <path d="M6 10v-6l-2 2" />',
279
+ 'clear-formatting': '<path d="M17 15l4 4m0 -4l-4 4" /> <path d="M7 6v-1h11v1" /> <path d="M7 19l4 0" /> <path d="M13 5l-4 14" />',
280
+ 'star': '<path d="M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873l-6.158 -3.245" />',
281
+ 'plus': '<path d="M12 5l0 14" /> <path d="M5 12l14 0" />',
282
+ 'upload': '<path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2" /> <path d="M7 9l5 -5l5 5" /> <path d="M12 4l0 12" />',
283
+ 'dots-vertical': '<path d="M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />',
284
+ 'photo': '<path d="M15 8h.01" /> <path d="M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12" /> <path d="M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5" /> <path d="M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3" />',
285
+ 'trash': '<path d="M4 7l16 0" /> <path d="M10 11l0 6" /> <path d="M14 11l0 6" /> <path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12" /> <path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3" />',
286
+ 'pencil': '<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" /> <path d="M13.5 6.5l4 4" />',
287
+ 'eye': '<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" /> <path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />',
288
+ 'eye-off': '<path d="M10.585 10.587a2 2 0 0 0 2.829 2.828" /> <path d="M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87" /> <path d="M3 3l18 18" />',
289
+ 'minus': '<path d="M5 12l14 0" />',
290
+ 'arrow-up': '<path d="M12 5l0 14" /> <path d="M18 11l-6 -6" /> <path d="M6 11l6 -6" />',
291
+ 'arrow-down': '<path d="M12 5l0 14" /> <path d="M18 13l-6 6" /> <path d="M6 13l6 6" />',
292
+ 'zoom-in': '<path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" /> <path d="M7 10l6 0" /> <path d="M10 7l0 6" /> <path d="M21 21l-6 -6" />',
293
+ 'info-circle': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M12 9h.01" /> <path d="M11 12h1v4h1" />',
294
+ 'phone': '<path d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2" />',
295
+ 'map-pin': '<path d="M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" /> <path d="M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z" />',
296
+ 'world': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M3.6 9h16.8" /> <path d="M3.6 15h16.8" /> <path d="M11.5 3a17 17 0 0 0 0 18" /> <path d="M12.5 3a17 17 0 0 1 0 18" />',
297
+ 'clock': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M12 7v5l3 3" />',
298
+ 'align-left': '<path d="M4 6l16 0" /> <path d="M4 12l10 0" /> <path d="M4 18l14 0" />',
299
+ 'align-center': '<path d="M4 6l16 0" /> <path d="M8 12l8 0" /> <path d="M6 18l12 0" />',
300
+ 'align-right': '<path d="M4 6l16 0" /> <path d="M10 12l10 0" /> <path d="M6 18l14 0" />',
301
+ 'align-justified': '<path d="M4 6l16 0" /> <path d="M4 12l16 0" /> <path d="M4 18l12 0" />',
302
+ 'palette': '<path d="M12 21a9 9 0 0 1 0 -18a9 8 0 0 1 9 8a4.5 4 0 0 1 -4.5 4h-2.5a2 2 0 0 0 -1 3.75a1.3 1.3 0 0 1 -1 2.25" /> <path d="M8.5 10.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /> <path d="M12.5 7.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /> <path d="M16.5 10.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" />',
303
+ 'highlight': '<path d="M3 19h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" /> <path d="M12.5 5.5l4 4" /> <path d="M4.5 13.5l4 4" /> <path d="M21 15v4h-8" />',
304
+ 'clipboard': '<path d="M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2" /> <path d="M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z" />',
305
+ 'clipboard-text': '<path d="M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2" /> <path d="M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z" /> <path d="M9 12h6" /> <path d="M9 16h6" />',
306
+ 'table': '<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" /> <path d="M3 10h18" /> <path d="M10 3v18" />',
307
+ 'mail': '<path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z" /> <path d="M3 7l9 6l9 -6" />',
308
+ 'share': '<path d="M6 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M18 6m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M8.7 10.7l6.6 -3.4" /> <path d="M8.7 13.3l6.6 3.4" />',
309
+ 'external-link': '<path d="M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6" /> <path d="M11 13l9 -9" /> <path d="M15 4h5v5" />',
310
+ 'crosshair': '<path d="M4 12h4" /> <path d="M16 12h4" /> <path d="M12 4v4" /> <path d="M12 16v4" /> <path d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0" />',
311
+ };
312
+
313
+ /**
314
+ * Rejestr ikon dla `kpt-icon`. Zawiera wbudowany zestaw (używany przez komponenty).
315
+ * Aby dodać pełny zestaw Tabler (5130 ikon), użyj `provideKptTablerIcons()`
316
+ * z `@konce-pt/angular/icons` lub zarejestruj własne przez `register()`.
317
+ */
318
+ class KptIconRegistry {
319
+ constructor() {
320
+ this.icons = new Map(Object.entries(KPT_ICONS));
321
+ this._version = signal(0, /* @ts-ignore */
322
+ ...(ngDevMode ? [{ debugName: "_version" }] : /* istanbul ignore next */ []));
323
+ /** Rośnie po każdej rejestracji — pozwala `kpt-icon` reagować na późne dodanie ikon. */
324
+ this.version = this._version.asReadonly();
325
+ }
326
+ /** Rejestruje (lub nadpisuje) ikony: `{ nazwa: 'inner svg' }`. */
327
+ register(icons) {
328
+ for (const [name, svg] of Object.entries(icons)) {
329
+ this.icons.set(name, svg);
330
+ }
331
+ this._version.update((v) => v + 1);
332
+ }
333
+ /** Zwraca wewnętrzny SVG ikony lub undefined. */
334
+ get(name) {
335
+ return this.icons.get(name);
336
+ }
337
+ has(name) {
338
+ return this.icons.has(name);
339
+ }
340
+ static { this.ɵfac = function KptIconRegistry_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptIconRegistry)(); }; }
341
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: KptIconRegistry, factory: KptIconRegistry.ɵfac, providedIn: 'root' }); }
342
+ }
343
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptIconRegistry, [{
344
+ type: Injectable,
345
+ args: [{ providedIn: 'root' }]
346
+ }], null, null); })();
347
+ /**
348
+ * Składa pełny znacznik `<svg>` z wewnętrznego SVG z rejestru.
349
+ *
350
+ * Wydzielone z `kpt-icon`, bo tego samego stringa potrzebują znaczniki mapy —
351
+ * ich HTML powstaje poza Angularem, w DOM zarządzanym przez silnik mapy.
352
+ * Pusty `inner` daje pusty string, żeby wołający nie musiał tego sprawdzać.
353
+ */
354
+ function renderKptIconSvg(inner, cssClass = 'kpt-icon') {
355
+ if (!inner)
356
+ return '';
357
+ return (`<svg class="${cssClass}" viewBox="0 0 24 24" fill="none" stroke="currentColor"` +
358
+ ' stroke-width="2" stroke-linecap="round" stroke-linejoin="round">' +
359
+ inner +
360
+ '</svg>');
361
+ }
362
+
363
+ /**
364
+ * Ikona Koncept UI (inline SVG, zestaw Tabler Icons — MIT). Rozmiar dziedziczy z `font-size`
365
+ * (1em) lub ustaw `size`; kolor z `currentColor`. Ikona musi być w rejestrze
366
+ * ([[KptIconRegistry]]) — wbudowany zestaw działa od razu, pełny zestaw dodaje
367
+ * `provideKptTablerIcons()` z `@konce-pt/angular/icons`.
368
+ *
369
+ * @example
370
+ * <kpt-icon name="menu" />
371
+ * <kpt-icon name="check" size="1.25rem" />
372
+ */
373
+ class KptIcon {
374
+ constructor() {
375
+ /** Nazwa ikony z rejestru (wbudowana lub zarejestrowana). */
376
+ this.name = input.required(/* @ts-ignore */
377
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
378
+ /** Rozmiar jako długość CSS (np. '1.25rem'); domyślnie dziedziczy z font-size. */
379
+ this.size = input('', /* @ts-ignore */
380
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
381
+ this.host = inject(ElementRef);
382
+ this.registry = inject(KptIconRegistry);
383
+ effect(() => {
384
+ this.registry.version(); // reaguj na późną rejestrację ikon
385
+ // Treść pochodzi z zaufanego rejestru — bezpośredni innerHTML bez sanitizera.
386
+ this.host.nativeElement.innerHTML = renderKptIconSvg(this.registry.get(this.name()));
387
+ });
388
+ }
389
+ static { this.ɵfac = function KptIcon_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptIcon)(); }; }
390
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptIcon, selectors: [["kpt-icon"]], hostAttrs: ["aria-hidden", "true", 1, "kpt-icon-host"], hostVars: 2, hostBindings: function KptIcon_HostBindings(rf, ctx) { if (rf & 2) {
391
+ i0.ɵɵstyleProp("font-size", ctx.size() || null);
392
+ } }, inputs: { name: [1, "name"], size: [1, "size"] }, decls: 0, vars: 0, template: function KptIcon_Template(rf, ctx) { }, styles: ["@layer kpt.components{.kpt-icon-host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.kpt-icon{width:1em;height:1em}}\n"], encapsulation: 2 }); }
393
+ }
394
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptIcon, [{
395
+ type: Component,
396
+ args: [{ selector: 'kpt-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', host: {
397
+ class: 'kpt-icon-host',
398
+ 'aria-hidden': 'true',
399
+ '[style.font-size]': 'size() || null',
400
+ }, styles: ["@layer kpt.components{.kpt-icon-host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.kpt-icon{width:1em;height:1em}}\n"] }]
401
+ }], () => [], { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] }); })();
402
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptIcon, { className: "KptIcon", filePath: "lib/icon/icon.component.ts", lineNumber: 26 }); })();
403
+
404
+ function KptAvatar_Conditional_1_Template(rf, ctx) { if (rf & 1) {
405
+ i0.ɵɵelement(0, "img", 1);
406
+ } if (rf & 2) {
407
+ const ctx_r0 = i0.ɵɵnextContext();
408
+ i0.ɵɵproperty("src", ctx_r0.src(), i0.ɵɵsanitizeUrl)("alt", ctx_r0.name() || "");
409
+ } }
410
+ function KptAvatar_Conditional_2_Template(rf, ctx) { if (rf & 1) {
411
+ i0.ɵɵelementStart(0, "span", 2);
412
+ i0.ɵɵtext(1);
413
+ i0.ɵɵelementEnd();
414
+ } if (rf & 2) {
415
+ const ctx_r0 = i0.ɵɵnextContext();
416
+ i0.ɵɵadvance();
417
+ i0.ɵɵtextInterpolate(ctx_r0.initials());
418
+ } }
419
+ function KptAvatar_Conditional_3_Template(rf, ctx) { if (rf & 1) {
420
+ i0.ɵɵelement(0, "kpt-icon", 3);
421
+ } if (rf & 2) {
422
+ const ctx_r0 = i0.ɵɵnextContext();
423
+ i0.ɵɵproperty("name", ctx_r0.icon());
424
+ } }
425
+ /**
426
+ * Awatar — obraz, inicjały (z `name`) lub ikona.
427
+ *
428
+ * @example
429
+ * <kpt-avatar src="/u/anna.jpg" />
430
+ * <kpt-avatar name="Anna Kowalska" size="lg" />
431
+ * <kpt-avatar icon="user" shape="square" />
432
+ */
433
+ class KptAvatar {
434
+ constructor() {
435
+ this.src = input(null, /* @ts-ignore */
436
+ ...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
437
+ this.name = input('', /* @ts-ignore */
438
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
439
+ this.icon = input(null, /* @ts-ignore */
440
+ ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
441
+ this.size = input('md', /* @ts-ignore */
442
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
443
+ this.shape = input('circle', /* @ts-ignore */
444
+ ...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
445
+ this.initials = computed(() => this.name()
446
+ .trim()
447
+ .split(/\s+/)
448
+ .slice(0, 2)
449
+ .map((w) => w[0]?.toUpperCase() ?? '')
450
+ .join(''), /* @ts-ignore */
451
+ ...(ngDevMode ? [{ debugName: "initials" }] : /* istanbul ignore next */ []));
452
+ }
453
+ static { this.ɵfac = function KptAvatar_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptAvatar)(); }; }
454
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptAvatar, selectors: [["kpt-avatar"]], hostAttrs: [1, "kpt-avatar-host"], inputs: { src: [1, "src"], name: [1, "name"], icon: [1, "icon"], size: [1, "size"], shape: [1, "shape"] }, decls: 4, vars: 3, consts: [[1, "kpt-avatar"], [1, "kpt-avatar__img", 3, "src", "alt"], [1, "kpt-avatar__initials"], [3, "name"]], template: function KptAvatar_Template(rf, ctx) { if (rf & 1) {
455
+ i0.ɵɵelementStart(0, "span", 0);
456
+ i0.ɵɵconditionalCreate(1, KptAvatar_Conditional_1_Template, 1, 2, "img", 1)(2, KptAvatar_Conditional_2_Template, 2, 1, "span", 2)(3, KptAvatar_Conditional_3_Template, 1, 1, "kpt-icon", 3);
457
+ i0.ɵɵelementEnd();
458
+ } if (rf & 2) {
459
+ i0.ɵɵattribute("data-size", ctx.size())("data-shape", ctx.shape());
460
+ i0.ɵɵadvance();
461
+ i0.ɵɵconditional(ctx.src() ? 1 : ctx.name() ? 2 : ctx.icon() ? 3 : -1);
462
+ } }, dependencies: [KptIcon], styles: ["@layer kpt.components{.kpt-avatar-host{display:inline-flex;vertical-align:middle}.kpt-avatar{--%NS%_size: 2.5rem;display:inline-flex;align-items:center;justify-content:center;width:var(--%NS%_size);height:var(--%NS%_size);border-radius:var(--%NS%kpt-radius-full, 9999px);background:var(--%NS%kpt-color-muted);color:var(--%NS%kpt-color-on-muted);font-weight:var(--%NS%kpt-font-weight-semibold, 600);font-size:calc(var(--%NS%_size) * .4);overflow:hidden;-webkit-user-select:none;user-select:none}.kpt-avatar[data-size=sm]{--%NS%_size: 2rem}.kpt-avatar[data-size=md]{--%NS%_size: 2.5rem}.kpt-avatar[data-size=lg]{--%NS%_size: 3rem}.kpt-avatar[data-size=xl]{--%NS%_size: 4rem}.kpt-avatar[data-shape=square]{border-radius:var(--%NS%kpt-radius-md, .5rem)}.kpt-avatar__img{width:100%;height:100%;object-fit:cover}}\n"], encapsulation: 2 }); }
463
+ }
464
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptAvatar, [{
465
+ type: Component,
466
+ args: [{ selector: 'kpt-avatar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [KptIcon], template: `
467
+ <span class="kpt-avatar" [attr.data-size]="size()" [attr.data-shape]="shape()">
468
+ @if (src()) {
469
+ <img class="kpt-avatar__img" [src]="src()" [alt]="name() || ''" />
470
+ } @else if (name()) {
471
+ <span class="kpt-avatar__initials">{{ initials() }}</span>
472
+ } @else if (icon()) {
473
+ <kpt-icon [name]="icon()!" />
474
+ }
475
+ </span>
476
+ `, host: { class: 'kpt-avatar-host' }, styles: ["@layer kpt.components{.kpt-avatar-host{display:inline-flex;vertical-align:middle}.kpt-avatar{--_size: 2.5rem;display:inline-flex;align-items:center;justify-content:center;width:var(--_size);height:var(--_size);border-radius:var(--kpt-radius-full, 9999px);background:var(--kpt-color-muted);color:var(--kpt-color-on-muted);font-weight:var(--kpt-font-weight-semibold, 600);font-size:calc(var(--_size) * .4);overflow:hidden;-webkit-user-select:none;user-select:none}.kpt-avatar[data-size=sm]{--_size: 2rem}.kpt-avatar[data-size=md]{--_size: 2.5rem}.kpt-avatar[data-size=lg]{--_size: 3rem}.kpt-avatar[data-size=xl]{--_size: 4rem}.kpt-avatar[data-shape=square]{border-radius:var(--kpt-radius-md, .5rem)}.kpt-avatar__img{width:100%;height:100%;object-fit:cover}}\n"] }]
477
+ }], null, { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }] }); })();
478
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptAvatar, { className: "KptAvatar", filePath: "lib/avatar/avatar.component.ts", lineNumber: 34 }); })();
479
+
480
+ const _c0$A = ["*"];
481
+ /**
482
+ * Znacznik (badge) — licznik lub kropka statusu. Standalone lub nałożony na treść (`overlay`).
483
+ *
484
+ * @example
485
+ * <kpt-badge [value]="3" variant="danger" />
486
+ * <kpt-badge [value]="4" size="sm" variant="success" />
487
+ * <kpt-badge [value]="128" overlay><kpt-icon name="menu" /></kpt-badge>
488
+ * <kpt-badge dot variant="success" overlay><kpt-avatar name="AK" /></kpt-badge>
489
+ */
490
+ class KptBadge {
491
+ constructor() {
492
+ this.value = input(null, /* @ts-ignore */
493
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
494
+ this.variant = input('primary', /* @ts-ignore */
495
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
496
+ /** Rozmiar — `sm` mieści się w wierszu tekstu, `md` to domyślny licznik. */
497
+ this.size = input('md', /* @ts-ignore */
498
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
499
+ this.dot = input(false, { ...(ngDevMode ? { debugName: "dot" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
500
+ this.overlay = input(false, { ...(ngDevMode ? { debugName: "overlay" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
501
+ this.max = input(99, /* @ts-ignore */
502
+ ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
503
+ this.display = computed(() => {
504
+ const v = this.value();
505
+ if (typeof v === 'number' && v > this.max())
506
+ return `${this.max()}+`;
507
+ return v ?? '';
508
+ }, /* @ts-ignore */
509
+ ...(ngDevMode ? [{ debugName: "display" }] : /* istanbul ignore next */ []));
510
+ }
511
+ static { this.ɵfac = function KptBadge_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptBadge)(); }; }
512
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptBadge, selectors: [["kpt-badge"]], hostAttrs: [1, "kpt-badge-host"], inputs: { value: [1, "value"], variant: [1, "variant"], size: [1, "size"], dot: [1, "dot"], overlay: [1, "overlay"], max: [1, "max"] }, ngContentSelectors: _c0$A, decls: 3, vars: 7, consts: [[1, "kpt-badge"]], template: function KptBadge_Template(rf, ctx) { if (rf & 1) {
513
+ i0.ɵɵprojectionDef();
514
+ i0.ɵɵprojection(0);
515
+ i0.ɵɵdomElementStart(1, "span", 0);
516
+ i0.ɵɵtext(2);
517
+ i0.ɵɵdomElementEnd();
518
+ } if (rf & 2) {
519
+ i0.ɵɵadvance();
520
+ i0.ɵɵclassProp("kpt-badge--overlay", ctx.overlay())("kpt-badge--dot", ctx.dot());
521
+ i0.ɵɵattribute("data-variant", ctx.variant())("data-size", ctx.size());
522
+ i0.ɵɵadvance();
523
+ i0.ɵɵtextInterpolate(ctx.dot() ? "" : ctx.display());
524
+ } }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-badge-host{position:relative;display:inline-flex;vertical-align:middle}.kpt-badge{--%NS%_bg: var(--%NS%kpt-color-primary);--%NS%_fg: var(--%NS%kpt-color-on-primary);--%NS%_size: 1.25rem;--%NS%_padding: .35rem;display:inline-flex;align-items:center;justify-content:center;min-width:var(--%NS%_size);height:var(--%NS%_size);padding-inline:var(--%NS%_padding);box-sizing:border-box;border-radius:var(--%NS%kpt-radius-full, 9999px);background:var(--%NS%_bg);color:var(--%NS%_fg);font-size:calc(var(--%NS%_size) * .6);font-weight:var(--%NS%kpt-font-weight-semibold, 600);line-height:1}.kpt-badge[data-size=sm]{--%NS%_size: 1rem;--%NS%_padding: .28rem}.kpt-badge[data-size=md]{--%NS%_size: 1.25rem;--%NS%_padding: .35rem}.kpt-badge[data-size=lg]{--%NS%_size: 1.5rem;--%NS%_padding: .45rem}.kpt-badge[data-variant=neutral]{--%NS%_bg: var(--%NS%kpt-color-muted);--%NS%_fg: var(--%NS%kpt-color-on-muted)}.kpt-badge[data-variant=success]{--%NS%_bg: var(--%NS%kpt-color-success);--%NS%_fg: var(--%NS%kpt-color-surface)}.kpt-badge[data-variant=danger]{--%NS%_bg: var(--%NS%kpt-color-danger);--%NS%_fg: var(--%NS%kpt-color-on-danger)}.kpt-badge[data-variant=warning]{--%NS%_bg: var(--%NS%kpt-color-warning);--%NS%_fg: var(--%NS%kpt-color-surface)}.kpt-badge[data-variant=info]{--%NS%_bg: var(--%NS%kpt-color-info);--%NS%_fg: var(--%NS%kpt-color-surface)}.kpt-badge--dot{min-width:0;width:calc(var(--%NS%_size) * .52);height:calc(var(--%NS%_size) * .52);padding:0}.kpt-badge--overlay{position:absolute;top:0;inset-inline-end:0;transform:translate(35%,-35%);box-shadow:0 0 0 2px var(--%NS%kpt-color-surface)}}\n"], encapsulation: 2 }); }
525
+ }
526
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptBadge, [{
527
+ type: Component,
528
+ args: [{ selector: 'kpt-badge', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
529
+ <ng-content />
530
+ <span
531
+ class="kpt-badge"
532
+ [attr.data-variant]="variant()"
533
+ [attr.data-size]="size()"
534
+ [class.kpt-badge--overlay]="overlay()"
535
+ [class.kpt-badge--dot]="dot()"
536
+ >{{ dot() ? '' : display() }}</span>
537
+ `, host: { class: 'kpt-badge-host' }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-badge-host{position:relative;display:inline-flex;vertical-align:middle}.kpt-badge{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);--_size: 1.25rem;--_padding: .35rem;display:inline-flex;align-items:center;justify-content:center;min-width:var(--_size);height:var(--_size);padding-inline:var(--_padding);box-sizing:border-box;border-radius:var(--kpt-radius-full, 9999px);background:var(--_bg);color:var(--_fg);font-size:calc(var(--_size) * .6);font-weight:var(--kpt-font-weight-semibold, 600);line-height:1}.kpt-badge[data-size=sm]{--_size: 1rem;--_padding: .28rem}.kpt-badge[data-size=md]{--_size: 1.25rem;--_padding: .35rem}.kpt-badge[data-size=lg]{--_size: 1.5rem;--_padding: .45rem}.kpt-badge[data-variant=neutral]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted)}.kpt-badge[data-variant=success]{--_bg: var(--kpt-color-success);--_fg: var(--kpt-color-surface)}.kpt-badge[data-variant=danger]{--_bg: var(--kpt-color-danger);--_fg: var(--kpt-color-on-danger)}.kpt-badge[data-variant=warning]{--_bg: var(--kpt-color-warning);--_fg: var(--kpt-color-surface)}.kpt-badge[data-variant=info]{--_bg: var(--kpt-color-info);--_fg: var(--kpt-color-surface)}.kpt-badge--dot{min-width:0;width:calc(var(--_size) * .52);height:calc(var(--_size) * .52);padding:0}.kpt-badge--overlay{position:absolute;top:0;inset-inline-end:0;transform:translate(35%,-35%);box-shadow:0 0 0 2px var(--kpt-color-surface)}}\n"] }]
538
+ }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], dot: [{ type: i0.Input, args: [{ isSignal: true, alias: "dot", required: false }] }], overlay: [{ type: i0.Input, args: [{ isSignal: true, alias: "overlay", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }] }); })();
539
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptBadge, { className: "KptBadge", filePath: "lib/badge/badge.component.ts", lineNumber: 32 }); })();
540
+
255
541
  /** Token konfiguracji i18n. Konsumowany przez `KptI18n`. */
256
542
  const KPT_I18N_CONFIG = new InjectionToken('KPT_I18N_CONFIG');
257
543
 
@@ -876,191 +1162,111 @@ class KptI18n {
876
1162
  args: [{ providedIn: 'root' }]
877
1163
  }], () => [], null); })();
878
1164
 
879
- const KPT_ICONS = {
880
- 'menu': '<path d="M4 6l16 0" /> <path d="M4 12l16 0" /> <path d="M4 18l16 0" />',
881
- 'x': '<path d="M18 6l-12 12" /> <path d="M6 6l12 12" />',
882
- 'chevron-up': '<path d="M6 15l6 -6l6 6" />',
883
- 'chevron-down': '<path d="M6 9l6 6l6 -6" />',
884
- 'chevron-left': '<path d="M15 6l-6 6l6 6" />',
885
- 'chevron-right': '<path d="M9 6l6 6l-6 6" />',
886
- 'check': '<path d="M5 12l5 5l10 -10" />',
887
- 'search': '<path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" /> <path d="M21 21l-6 -6" />',
888
- 'grip-vertical': '<path d="M8 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M8 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M8 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M14 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M14 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M14 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />',
889
- 'info': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M12 9h.01" /> <path d="M11 12h1v4h1" />',
890
- 'alert-triangle': '<path d="M12 9v4" /> <path d="M10.363 3.591l-8.106 13.534a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636 -2.87l-8.106 -13.536a1.914 1.914 0 0 0 -3.274 0" /> <path d="M12 16h.01" />',
891
- 'circle-check': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /> <path d="M9 12l2 2l4 -4" />',
892
- 'circle-x': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /> <path d="M10 10l4 4m0 -4l-4 4" />',
893
- 'calendar': '<path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12" /> <path d="M16 3v4" /> <path d="M8 3v4" /> <path d="M4 11h16" /> <path d="M11 15h1" /> <path d="M12 15v3" />',
894
- 'copy': '<path d="M7 9.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667l0 -8.666" /> <path d="M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1" />',
895
- 'link': '<path d="M9 15l6 -6" /> <path d="M11 6l.463 -.536a5 5 0 0 1 7.071 7.072l-.534 .464" /> <path d="M13 18l-.397 .534a5.068 5.068 0 0 1 -7.127 0a4.972 4.972 0 0 1 0 -7.071l.524 -.463" />',
896
- 'code': '<path d="M7 8l-4 4l4 4" /> <path d="M17 8l4 4l-4 4" /> <path d="M14 4l-4 16" />',
897
- 'bold': '<path d="M7 5h6a3.5 3.5 0 0 1 0 7h-6l0 -7" /> <path d="M13 12h1a3.5 3.5 0 0 1 0 7h-7v-7" />',
898
- 'italic': '<path d="M11 5l6 0" /> <path d="M7 19l6 0" /> <path d="M14 5l-4 14" />',
899
- 'underline': '<path d="M7 5v5a5 5 0 0 0 10 0v-5" /> <path d="M5 19h14" />',
900
- 'strikethrough': '<path d="M5 12l14 0" /> <path d="M16 6.5a4 2 0 0 0 -4 -1.5h-1a3.5 3.5 0 0 0 0 7h2a3.5 3.5 0 0 1 0 7h-1.5a4 2 0 0 1 -4 -1.5" />',
901
- 'list': '<path d="M9 6l11 0" /> <path d="M9 12l11 0" /> <path d="M9 18l11 0" /> <path d="M5 6l0 .01" /> <path d="M5 12l0 .01" /> <path d="M5 18l0 .01" />',
902
- 'list-numbers': '<path d="M11 6h9" /> <path d="M11 12h9" /> <path d="M12 18h8" /> <path d="M4 16a2 2 0 1 1 4 0c0 .591 -.5 1 -1 1.5l-3 2.5h4" /> <path d="M6 10v-6l-2 2" />',
903
- 'clear-formatting': '<path d="M17 15l4 4m0 -4l-4 4" /> <path d="M7 6v-1h11v1" /> <path d="M7 19l4 0" /> <path d="M13 5l-4 14" />',
904
- 'star': '<path d="M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873l-6.158 -3.245" />',
905
- 'plus': '<path d="M12 5l0 14" /> <path d="M5 12l14 0" />',
906
- 'upload': '<path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2 -2v-2" /> <path d="M7 9l5 -5l5 5" /> <path d="M12 4l0 12" />',
907
- 'dots-vertical': '<path d="M11 12a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M11 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /> <path d="M11 5a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />',
908
- 'photo': '<path d="M15 8h.01" /> <path d="M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12" /> <path d="M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5" /> <path d="M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3" />',
909
- 'trash': '<path d="M4 7l16 0" /> <path d="M10 11l0 6" /> <path d="M14 11l0 6" /> <path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12" /> <path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3" />',
910
- 'pencil': '<path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" /> <path d="M13.5 6.5l4 4" />',
911
- 'eye': '<path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" /> <path d="M21 12c-2.4 4 -5.4 6 -9 6c-3.6 0 -6.6 -2 -9 -6c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6" />',
912
- 'eye-off': '<path d="M10.585 10.587a2 2 0 0 0 2.829 2.828" /> <path d="M16.681 16.673a8.717 8.717 0 0 1 -4.681 1.327c-3.6 0 -6.6 -2 -9 -6c1.272 -2.12 2.712 -3.678 4.32 -4.674m2.86 -1.146a9.055 9.055 0 0 1 1.82 -.18c3.6 0 6.6 2 9 6c-.666 1.11 -1.379 2.067 -2.138 2.87" /> <path d="M3 3l18 18" />',
913
- 'minus': '<path d="M5 12l14 0" />',
914
- 'arrow-up': '<path d="M12 5l0 14" /> <path d="M18 11l-6 -6" /> <path d="M6 11l6 -6" />',
915
- 'arrow-down': '<path d="M12 5l0 14" /> <path d="M18 13l-6 6" /> <path d="M6 13l6 6" />',
916
- 'zoom-in': '<path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" /> <path d="M7 10l6 0" /> <path d="M10 7l0 6" /> <path d="M21 21l-6 -6" />',
917
- 'info-circle': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M12 9h.01" /> <path d="M11 12h1v4h1" />',
918
- 'phone': '<path d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2" />',
919
- 'map-pin': '<path d="M9 11a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" /> <path d="M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z" />',
920
- 'world': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M3.6 9h16.8" /> <path d="M3.6 15h16.8" /> <path d="M11.5 3a17 17 0 0 0 0 18" /> <path d="M12.5 3a17 17 0 0 1 0 18" />',
921
- 'clock': '<path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /> <path d="M12 7v5l3 3" />',
922
- 'align-left': '<path d="M4 6l16 0" /> <path d="M4 12l10 0" /> <path d="M4 18l14 0" />',
923
- 'align-center': '<path d="M4 6l16 0" /> <path d="M8 12l8 0" /> <path d="M6 18l12 0" />',
924
- 'align-right': '<path d="M4 6l16 0" /> <path d="M10 12l10 0" /> <path d="M6 18l14 0" />',
925
- 'align-justified': '<path d="M4 6l16 0" /> <path d="M4 12l16 0" /> <path d="M4 18l12 0" />',
926
- 'palette': '<path d="M12 21a9 9 0 0 1 0 -18a9 8 0 0 1 9 8a4.5 4 0 0 1 -4.5 4h-2.5a2 2 0 0 0 -1 3.75a1.3 1.3 0 0 1 -1 2.25" /> <path d="M8.5 10.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /> <path d="M12.5 7.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /> <path d="M16.5 10.5a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" />',
927
- 'highlight': '<path d="M3 19h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" /> <path d="M12.5 5.5l4 4" /> <path d="M4.5 13.5l4 4" /> <path d="M21 15v4h-8" />',
928
- 'clipboard': '<path d="M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2" /> <path d="M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z" />',
929
- 'clipboard-text': '<path d="M9 5h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2h-2" /> <path d="M9 3m0 2a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v0a2 2 0 0 1 -2 2h-2a2 2 0 0 1 -2 -2z" /> <path d="M9 12h6" /> <path d="M9 16h6" />',
930
- 'table': '<path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" /> <path d="M3 10h18" /> <path d="M10 3v18" />',
931
- 'mail': '<path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10z" /> <path d="M3 7l9 6l9 -6" />',
932
- 'share': '<path d="M6 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M18 6m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" /> <path d="M8.7 10.7l6.6 -3.4" /> <path d="M8.7 13.3l6.6 3.4" />',
933
- 'external-link': '<path d="M12 6h-6a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-6" /> <path d="M11 13l9 -9" /> <path d="M15 4h5v5" />',
934
- 'crosshair': '<path d="M4 12h4" /> <path d="M16 12h4" /> <path d="M12 4v4" /> <path d="M12 16v4" /> <path d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0" />',
935
- };
936
-
937
- /**
938
- * Rejestr ikon dla `kpt-icon`. Zawiera wbudowany zestaw (używany przez komponenty).
939
- * Aby dodać pełny zestaw Tabler (5130 ikon), użyj `provideKptTablerIcons()`
940
- * z `@konce-pt/angular/icons` lub zarejestruj własne przez `register()`.
941
- */
942
- class KptIconRegistry {
943
- constructor() {
944
- this.icons = new Map(Object.entries(KPT_ICONS));
945
- this._version = signal(0, /* @ts-ignore */
946
- ...(ngDevMode ? [{ debugName: "_version" }] : /* istanbul ignore next */ []));
947
- /** Rośnie po każdej rejestracji — pozwala `kpt-icon` reagować na późne dodanie ikon. */
948
- this.version = this._version.asReadonly();
949
- }
950
- /** Rejestruje (lub nadpisuje) ikony: `{ nazwa: 'inner svg' }`. */
951
- register(icons) {
952
- for (const [name, svg] of Object.entries(icons)) {
953
- this.icons.set(name, svg);
954
- }
955
- this._version.update((v) => v + 1);
956
- }
957
- /** Zwraca wewnętrzny SVG ikony lub undefined. */
958
- get(name) {
959
- return this.icons.get(name);
960
- }
961
- has(name) {
962
- return this.icons.has(name);
963
- }
964
- static { this.ɵfac = function KptIconRegistry_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptIconRegistry)(); }; }
965
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: KptIconRegistry, factory: KptIconRegistry.ɵfac, providedIn: 'root' }); }
966
- }
967
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptIconRegistry, [{
968
- type: Injectable,
969
- args: [{ providedIn: 'root' }]
970
- }], null, null); })();
971
- /**
972
- * Składa pełny znacznik `<svg>` z wewnętrznego SVG z rejestru.
973
- *
974
- * Wydzielone z `kpt-icon`, bo tego samego stringa potrzebują znaczniki mapy —
975
- * ich HTML powstaje poza Angularem, w DOM zarządzanym przez silnik mapy.
976
- * Pusty `inner` daje pusty string, żeby wołający nie musiał tego sprawdzać.
977
- */
978
- function renderKptIconSvg(inner, cssClass = 'kpt-icon') {
979
- if (!inner)
980
- return '';
981
- return (`<svg class="${cssClass}" viewBox="0 0 24 24" fill="none" stroke="currentColor"` +
982
- ' stroke-width="2" stroke-linecap="round" stroke-linejoin="round">' +
983
- inner +
984
- '</svg>');
985
- }
986
-
987
- /**
988
- * Ikona Koncept UI (inline SVG, zestaw Tabler Icons — MIT). Rozmiar dziedziczy z `font-size`
989
- * (1em) lub ustaw `size`; kolor z `currentColor`. Ikona musi być w rejestrze
990
- * ([[KptIconRegistry]]) — wbudowany zestaw działa od razu, pełny zestaw dodaje
991
- * `provideKptTablerIcons()` z `@konce-pt/angular/icons`.
992
- *
993
- * @example
994
- * <kpt-icon name="menu" />
995
- * <kpt-icon name="check" size="1.25rem" />
996
- */
997
- class KptIcon {
998
- constructor() {
999
- /** Nazwa ikony z rejestru (wbudowana lub zarejestrowana). */
1000
- this.name = input.required(/* @ts-ignore */
1001
- ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
1002
- /** Rozmiar jako długość CSS (np. '1.25rem'); domyślnie dziedziczy z font-size. */
1003
- this.size = input('', /* @ts-ignore */
1004
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
1005
- this.host = inject(ElementRef);
1006
- this.registry = inject(KptIconRegistry);
1007
- effect(() => {
1008
- this.registry.version(); // reaguj na późną rejestrację ikon
1009
- // Treść pochodzi z zaufanego rejestru — bezpośredni innerHTML bez sanitizera.
1010
- this.host.nativeElement.innerHTML = renderKptIconSvg(this.registry.get(this.name()));
1011
- });
1012
- }
1013
- static { this.ɵfac = function KptIcon_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptIcon)(); }; }
1014
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptIcon, selectors: [["kpt-icon"]], hostAttrs: ["aria-hidden", "true", 1, "kpt-icon-host"], hostVars: 2, hostBindings: function KptIcon_HostBindings(rf, ctx) { if (rf & 2) {
1015
- i0.ɵɵstyleProp("font-size", ctx.size() || null);
1016
- } }, inputs: { name: [1, "name"], size: [1, "size"] }, decls: 0, vars: 0, template: function KptIcon_Template(rf, ctx) { }, styles: ["@layer kpt.components{.kpt-icon-host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.kpt-icon{width:1em;height:1em}}\n"], encapsulation: 2 }); }
1017
- }
1018
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptIcon, [{
1019
- type: Component,
1020
- args: [{ selector: 'kpt-icon', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '', host: {
1021
- class: 'kpt-icon-host',
1022
- 'aria-hidden': 'true',
1023
- '[style.font-size]': 'size() || null',
1024
- }, styles: ["@layer kpt.components{.kpt-icon-host{display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.kpt-icon{width:1em;height:1em}}\n"] }]
1025
- }], () => [], { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] }); })();
1026
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptIcon, { className: "KptIcon", filePath: "lib/icon/icon.component.ts", lineNumber: 26 }); })();
1027
-
1028
- const _c0$A = ["*"];
1165
+ const _c0$z = ["*"];
1029
1166
  function KptSplitButton_ng_template_6_For_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
1030
1167
  i0.ɵɵelement(0, "div", 7);
1031
1168
  } }
1032
1169
  function KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1033
- i0.ɵɵelement(0, "kpt-icon", 10);
1170
+ i0.ɵɵelement(0, "kpt-avatar", 10);
1034
1171
  } if (rf & 2) {
1035
- const item_r2 = i0.ɵɵnextContext(2).$implicit;
1036
- i0.ɵɵproperty("name", item_r2.icon);
1172
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
1173
+ i0.ɵɵproperty("src", item_r1.avatar.src ?? null)("name", item_r1.avatar.name ?? "")("icon", item_r1.avatar.icon ?? null);
1174
+ } }
1175
+ function KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1176
+ i0.ɵɵelement(0, "kpt-icon", 11);
1177
+ } if (rf & 2) {
1178
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
1179
+ i0.ɵɵproperty("name", item_r1.icon);
1180
+ } }
1181
+ function KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
1182
+ i0.ɵɵelementStart(0, "span", 13);
1183
+ i0.ɵɵtext(1);
1184
+ i0.ɵɵelementEnd();
1185
+ } if (rf & 2) {
1186
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
1187
+ i0.ɵɵadvance();
1188
+ i0.ɵɵtextInterpolate(item_r1.label);
1189
+ } }
1190
+ function KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1191
+ i0.ɵɵelementStart(0, "span", 14);
1192
+ i0.ɵɵtext(1);
1193
+ i0.ɵɵelementEnd();
1194
+ } if (rf & 2) {
1195
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
1196
+ i0.ɵɵadvance();
1197
+ i0.ɵɵtextInterpolate(item_r1.description);
1037
1198
  } }
1038
1199
  function KptSplitButton_ng_template_6_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1039
- const _r1 = i0.ɵɵgetCurrentView();
1040
- i0.ɵɵelementStart(0, "button", 9);
1041
- i0.ɵɵlistener("click", function KptSplitButton_ng_template_6_For_2_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const item_r2 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.pick(item_r2)); });
1042
- i0.ɵɵconditionalCreate(1, KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_1_Template, 1, 1, "kpt-icon", 10);
1043
- i0.ɵɵelementStart(2, "span");
1044
- i0.ɵɵtext(3);
1200
+ i0.ɵɵelementStart(0, "div", 8);
1201
+ i0.ɵɵconditionalCreate(1, KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_1_Template, 1, 3, "kpt-avatar", 10)(2, KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_2_Template, 1, 1, "kpt-icon", 11);
1202
+ i0.ɵɵelementStart(3, "span", 12);
1203
+ i0.ɵɵconditionalCreate(4, KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_4_Template, 2, 1, "span", 13);
1204
+ i0.ɵɵconditionalCreate(5, KptSplitButton_ng_template_6_For_2_Conditional_1_Conditional_5_Template, 2, 1, "span", 14);
1045
1205
  i0.ɵɵelementEnd()();
1046
1206
  } if (rf & 2) {
1047
- const item_r2 = i0.ɵɵnextContext().$implicit;
1048
- i0.ɵɵclassProp("kpt-split-button__item--danger", item_r2.danger);
1049
- i0.ɵɵproperty("disabled", item_r2.disabled);
1207
+ const item_r1 = i0.ɵɵnextContext().$implicit;
1050
1208
  i0.ɵɵadvance();
1051
- i0.ɵɵconditional(item_r2.icon ? 1 : -1);
1052
- i0.ɵɵadvance(2);
1053
- i0.ɵɵtextInterpolate(item_r2.label);
1209
+ i0.ɵɵconditional(item_r1.avatar ? 1 : item_r1.icon ? 2 : -1);
1210
+ i0.ɵɵadvance(3);
1211
+ i0.ɵɵconditional(item_r1.label ? 4 : -1);
1212
+ i0.ɵɵadvance();
1213
+ i0.ɵɵconditional(item_r1.description ? 5 : -1);
1214
+ } }
1215
+ function KptSplitButton_ng_template_6_For_2_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1216
+ i0.ɵɵelement(0, "kpt-icon", 11);
1217
+ } if (rf & 2) {
1218
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
1219
+ i0.ɵɵproperty("name", item_r1.icon);
1220
+ } }
1221
+ function KptSplitButton_ng_template_6_For_2_Conditional_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1222
+ i0.ɵɵelementStart(0, "span", 14);
1223
+ i0.ɵɵtext(1);
1224
+ i0.ɵɵelementEnd();
1225
+ } if (rf & 2) {
1226
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
1227
+ i0.ɵɵadvance();
1228
+ i0.ɵɵtextInterpolate(item_r1.description);
1229
+ } }
1230
+ function KptSplitButton_ng_template_6_For_2_Conditional_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1231
+ i0.ɵɵelement(0, "kpt-badge", 16);
1232
+ } if (rf & 2) {
1233
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
1234
+ i0.ɵɵproperty("value", item_r1.badge)("variant", item_r1.badgeVariant ?? "primary");
1235
+ } }
1236
+ function KptSplitButton_ng_template_6_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1237
+ const _r2 = i0.ɵɵgetCurrentView();
1238
+ i0.ɵɵelementStart(0, "button", 15);
1239
+ i0.ɵɵlistener("click", function KptSplitButton_ng_template_6_For_2_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const item_r1 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.pick(item_r1)); });
1240
+ i0.ɵɵconditionalCreate(1, KptSplitButton_ng_template_6_For_2_Conditional_2_Conditional_1_Template, 1, 1, "kpt-icon", 11);
1241
+ i0.ɵɵelementStart(2, "span", 12)(3, "span", 13);
1242
+ i0.ɵɵtext(4);
1243
+ i0.ɵɵelementEnd();
1244
+ i0.ɵɵconditionalCreate(5, KptSplitButton_ng_template_6_For_2_Conditional_2_Conditional_5_Template, 2, 1, "span", 14);
1245
+ i0.ɵɵelementEnd();
1246
+ i0.ɵɵconditionalCreate(6, KptSplitButton_ng_template_6_For_2_Conditional_2_Conditional_6_Template, 1, 2, "kpt-badge", 16);
1247
+ i0.ɵɵelementEnd();
1248
+ } if (rf & 2) {
1249
+ const item_r1 = i0.ɵɵnextContext().$implicit;
1250
+ i0.ɵɵclassProp("kpt-split-button__item--danger", item_r1.danger);
1251
+ i0.ɵɵproperty("disabled", item_r1.disabled);
1252
+ i0.ɵɵadvance();
1253
+ i0.ɵɵconditional(item_r1.icon ? 1 : -1);
1254
+ i0.ɵɵadvance(3);
1255
+ i0.ɵɵtextInterpolate(item_r1.label);
1256
+ i0.ɵɵadvance();
1257
+ i0.ɵɵconditional(item_r1.description ? 5 : -1);
1258
+ i0.ɵɵadvance();
1259
+ i0.ɵɵconditional(item_r1.badge !== undefined && item_r1.badge !== null ? 6 : -1);
1054
1260
  } }
1055
1261
  function KptSplitButton_ng_template_6_For_2_Template(rf, ctx) { if (rf & 1) {
1056
- i0.ɵɵconditionalCreate(0, KptSplitButton_ng_template_6_For_2_Conditional_0_Template, 1, 0, "div", 7)(1, KptSplitButton_ng_template_6_For_2_Conditional_1_Template, 4, 5, "button", 8);
1262
+ i0.ɵɵconditionalCreate(0, KptSplitButton_ng_template_6_For_2_Conditional_0_Template, 1, 0, "div", 7)(1, KptSplitButton_ng_template_6_For_2_Conditional_1_Template, 6, 3, "div", 8)(2, KptSplitButton_ng_template_6_For_2_Conditional_2_Template, 7, 7, "button", 9);
1057
1263
  } if (rf & 2) {
1058
- const item_r2 = ctx.$implicit;
1059
- i0.ɵɵconditional(item_r2.separator ? 0 : 1);
1264
+ const item_r1 = ctx.$implicit;
1265
+ i0.ɵɵconditional(item_r1.separator ? 0 : item_r1.header ? 1 : 2);
1060
1266
  } }
1061
1267
  function KptSplitButton_ng_template_6_Template(rf, ctx) { if (rf & 1) {
1062
1268
  i0.ɵɵelementStart(0, "div", 6);
1063
- i0.ɵɵrepeaterCreate(1, KptSplitButton_ng_template_6_For_2_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIndex);
1269
+ i0.ɵɵrepeaterCreate(1, KptSplitButton_ng_template_6_For_2_Template, 3, 1, null, null, i0.ɵɵrepeaterTrackByIndex);
1064
1270
  i0.ɵɵelementEnd();
1065
1271
  } if (rf & 2) {
1066
1272
  const ctx_r2 = i0.ɵɵnextContext();
@@ -1098,7 +1304,7 @@ class KptSplitButton {
1098
1304
  this.open.set(false);
1099
1305
  }
1100
1306
  static { this.ɵfac = function KptSplitButton_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptSplitButton)(); }; }
1101
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptSplitButton, selectors: [["kpt-split-button"]], hostAttrs: [1, "kpt-split-button-host"], inputs: { variant: [1, "variant"], items: [1, "items"], disabled: [1, "disabled"] }, outputs: { primaryClick: "primaryClick", select: "select" }, ngContentSelectors: _c0$A, decls: 7, vars: 8, consts: [["origin", "cdkOverlayOrigin"], [1, "kpt-split-button"], ["type", "button", 1, "kpt-split-button__main", 3, "click", "disabled"], ["type", "button", "cdkOverlayOrigin", "", 1, "kpt-split-button__toggle", 3, "click", "disabled"], ["name", "chevron-down"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-split-button__panel"], ["role", "separator", 1, "kpt-split-button__separator"], ["type", "button", 1, "kpt-split-button__item", 3, "kpt-split-button__item--danger", "disabled"], ["type", "button", 1, "kpt-split-button__item", 3, "click", "disabled"], [3, "name"]], template: function KptSplitButton_Template(rf, ctx) { if (rf & 1) {
1307
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptSplitButton, selectors: [["kpt-split-button"]], hostAttrs: [1, "kpt-split-button-host"], inputs: { variant: [1, "variant"], items: [1, "items"], disabled: [1, "disabled"] }, outputs: { primaryClick: "primaryClick", select: "select" }, ngContentSelectors: _c0$z, decls: 7, vars: 8, consts: [["origin", "cdkOverlayOrigin"], [1, "kpt-split-button"], ["type", "button", 1, "kpt-split-button__main", 3, "click", "disabled"], ["type", "button", "cdkOverlayOrigin", "", 1, "kpt-split-button__toggle", 3, "click", "disabled"], ["name", "chevron-down"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-split-button__panel"], ["role", "separator", 1, "kpt-split-button__separator"], ["role", "presentation", 1, "kpt-split-button__header"], ["type", "button", 1, "kpt-split-button__item", 3, "kpt-split-button__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-split-button__text"], [1, "kpt-split-button__label"], [1, "kpt-split-button__description"], ["type", "button", 1, "kpt-split-button__item", 3, "click", "disabled"], [1, "kpt-split-button__badge", 3, "value", "variant"]], template: function KptSplitButton_Template(rf, ctx) { if (rf & 1) {
1102
1308
  i0.ɵɵprojectionDef();
1103
1309
  i0.ɵɵelementStart(0, "div", 1)(1, "button", 2);
1104
1310
  i0.ɵɵlistener("click", function KptSplitButton_Template_button_click_1_listener() { return ctx.primaryClick.emit(); });
@@ -1120,11 +1326,11 @@ class KptSplitButton {
1120
1326
  i0.ɵɵattribute("aria-label", ctx.i18n.t("splitButton.more"));
1121
1327
  i0.ɵɵadvance(3);
1122
1328
  i0.ɵɵproperty("cdkConnectedOverlayOrigin", origin_r4)("cdkConnectedOverlayOpen", ctx.open())("cdkConnectedOverlayPositions", ctx.positions)("cdkConnectedOverlayHasBackdrop", true);
1123
- } }, dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon], styles: ["@layer kpt.components{.kpt-split-button-host{display:inline-flex}.kpt-split-button{--%NS%_bg: var(--%NS%kpt-color-primary);--%NS%_fg: var(--%NS%kpt-color-on-primary);--%NS%_bg-hover: var(--%NS%kpt-color-primary-hover);display:inline-flex;border-radius:var(--%NS%kpt-button-radius, .5rem);overflow:hidden}.kpt-split-button[data-variant=tonal]{--%NS%_bg: var(--%NS%kpt-color-muted);--%NS%_fg: var(--%NS%kpt-color-on-muted);--%NS%_bg-hover: var(--%NS%kpt-color-muted-hover)}.kpt-split-button__main,.kpt-split-button__toggle{border:0;background:var(--%NS%_bg);color:var(--%NS%_fg);cursor:pointer;font:inherit;font-size:var(--%NS%kpt-font-size-sm, .875rem);font-weight:var(--%NS%kpt-font-weight-medium, 500);height:2.5rem;transition:background-color var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-split-button__main:hover:not(:disabled),.kpt-split-button__toggle:hover:not(:disabled){background:var(--%NS%_bg-hover)}.kpt-split-button__main:disabled,.kpt-split-button__toggle:disabled{opacity:.5;cursor:not-allowed}.kpt-split-button__main{padding-inline:var(--%NS%kpt-space-4, 1rem)}.kpt-split-button__toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;border-inline-start:1px solid color-mix(in oklch,var(--%NS%_fg) 25%,transparent)}.kpt-split-button__panel{min-width:11rem;padding:.25rem;background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3)}.kpt-split-button__item{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);font:inherit;font-size:var(--%NS%kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-split-button__item:hover:not(:disabled){background:var(--%NS%kpt-color-surface-variant)}.kpt-split-button__item:disabled{opacity:.45;cursor:not-allowed}.kpt-split-button__item--danger{color:var(--%NS%kpt-color-danger)}.kpt-split-button__item kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-split-button__separator{height:1px;margin:.25rem 0;background:var(--%NS%kpt-color-border)}}\n"], encapsulation: 2 }); }
1329
+ } }, dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon], styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-split-button-host{display:inline-flex}.kpt-split-button{--%NS%_bg: var(--%NS%kpt-color-primary);--%NS%_fg: var(--%NS%kpt-color-on-primary);--%NS%_bg-hover: var(--%NS%kpt-color-primary-hover);display:inline-flex;border-radius:var(--%NS%kpt-button-radius, .5rem);overflow:hidden}.kpt-split-button[data-variant=tonal]{--%NS%_bg: var(--%NS%kpt-color-muted);--%NS%_fg: var(--%NS%kpt-color-on-muted);--%NS%_bg-hover: var(--%NS%kpt-color-muted-hover)}.kpt-split-button__main,.kpt-split-button__toggle{border:0;background:var(--%NS%_bg);color:var(--%NS%_fg);cursor:pointer;font:inherit;font-size:var(--%NS%kpt-font-size-sm, .875rem);font-weight:var(--%NS%kpt-font-weight-medium, 500);height:2.5rem;position:relative;isolation:isolate}.kpt-split-button__main:after,.kpt-split-button__toggle:after{content:\"\";position:absolute;inset:0;z-index:-1;background-color:var(--%NS%_bg-hover);opacity:0;pointer-events:none;transition:opacity var(--%NS%kpt-motion-duration-fast, .12s) var(--%NS%kpt-motion-easing-standard)}.kpt-split-button__main:hover:not(:disabled):after,.kpt-split-button__toggle:hover:not(:disabled):after{opacity:1}.kpt-split-button__main:disabled,.kpt-split-button__toggle:disabled{opacity:.5;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.kpt-split-button__main:after,.kpt-split-button__toggle:after{transition:none}}.kpt-split-button__main{padding-inline:var(--%NS%kpt-space-4, 1rem)}.kpt-split-button__toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;border-inline-start:1px solid color-mix(in oklch,var(--%NS%_fg) 25%,transparent)}.kpt-split-button__panel{min-width:11rem;padding:.25rem;background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3)}.kpt-split-button__item{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);font:inherit;font-size:var(--%NS%kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-split-button__item:hover:not(:disabled){background:var(--%NS%kpt-color-surface-variant)}.kpt-split-button__item:disabled{opacity:.45;cursor:not-allowed}.kpt-split-button__item--danger{color:var(--%NS%kpt-color-danger)}.kpt-split-button__item kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-split-button__header{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);padding:.5rem .6rem;font-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:default}.kpt-split-button__header .kpt-split-button__label{font-weight:var(--%NS%kpt-font-weight-semibold, 600)}.kpt-split-button__header kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-split-button__text{display:flex;flex-direction:column;min-width:0}.kpt-split-button__label,.kpt-split-button__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-split-button__description{color:var(--%NS%kpt-color-on-surface-muted);font-size:var(--%NS%kpt-font-size-xs, .75rem)}.kpt-split-button__badge{margin-inline-start:auto}.kpt-split-button__separator{height:1px;margin:.25rem 0;background:var(--%NS%kpt-color-border)}}\n"], encapsulation: 2 }); }
1124
1330
  }
1125
1331
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptSplitButton, [{
1126
1332
  type: Component,
1127
- args: [{ selector: 'kpt-split-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon], template: `
1333
+ args: [{ selector: 'kpt-split-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon], template: `
1128
1334
  <div class="kpt-split-button" [attr.data-variant]="variant()">
1129
1335
  <button class="kpt-split-button__main" type="button" [disabled]="disabled()" (click)="primaryClick.emit()">
1130
1336
  <ng-content />
@@ -1153,6 +1359,25 @@ class KptSplitButton {
1153
1359
  @for (item of items(); track $index) {
1154
1360
  @if (item.separator) {
1155
1361
  <div class="kpt-split-button__separator" role="separator"></div>
1362
+ } @else if (item.header) {
1363
+ <div class="kpt-split-button__header" role="presentation">
1364
+ @if (item.avatar) {
1365
+ <kpt-avatar
1366
+ [src]="item.avatar.src ?? null"
1367
+ [name]="item.avatar.name ?? ''"
1368
+ [icon]="item.avatar.icon ?? null"
1369
+ size="sm"
1370
+ />
1371
+ } @else if (item.icon) {
1372
+ <kpt-icon [name]="item.icon" />
1373
+ }
1374
+ <span class="kpt-split-button__text">
1375
+ @if (item.label) { <span class="kpt-split-button__label">{{ item.label }}</span> }
1376
+ @if (item.description) {
1377
+ <span class="kpt-split-button__description">{{ item.description }}</span>
1378
+ }
1379
+ </span>
1380
+ </div>
1156
1381
  } @else {
1157
1382
  <button
1158
1383
  type="button"
@@ -1162,15 +1387,27 @@ class KptSplitButton {
1162
1387
  (click)="pick(item)"
1163
1388
  >
1164
1389
  @if (item.icon) { <kpt-icon [name]="item.icon" /> }
1165
- <span>{{ item.label }}</span>
1390
+ <span class="kpt-split-button__text">
1391
+ <span class="kpt-split-button__label">{{ item.label }}</span>
1392
+ @if (item.description) {
1393
+ <span class="kpt-split-button__description">{{ item.description }}</span>
1394
+ }
1395
+ </span>
1396
+ @if (item.badge !== undefined && item.badge !== null) {
1397
+ <kpt-badge
1398
+ class="kpt-split-button__badge"
1399
+ [value]="item.badge"
1400
+ [variant]="item.badgeVariant ?? 'primary'"
1401
+ />
1402
+ }
1166
1403
  </button>
1167
1404
  }
1168
1405
  }
1169
1406
  </div>
1170
1407
  </ng-template>
1171
- `, host: { class: 'kpt-split-button-host' }, styles: ["@layer kpt.components{.kpt-split-button-host{display:inline-flex}.kpt-split-button{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);--_bg-hover: var(--kpt-color-primary-hover);display:inline-flex;border-radius:var(--kpt-button-radius, .5rem);overflow:hidden}.kpt-split-button[data-variant=tonal]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted);--_bg-hover: var(--kpt-color-muted-hover)}.kpt-split-button__main,.kpt-split-button__toggle{border:0;background:var(--_bg);color:var(--_fg);cursor:pointer;font:inherit;font-size:var(--kpt-font-size-sm, .875rem);font-weight:var(--kpt-font-weight-medium, 500);height:2.5rem;transition:background-color var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-split-button__main:hover:not(:disabled),.kpt-split-button__toggle:hover:not(:disabled){background:var(--_bg-hover)}.kpt-split-button__main:disabled,.kpt-split-button__toggle:disabled{opacity:.5;cursor:not-allowed}.kpt-split-button__main{padding-inline:var(--kpt-space-4, 1rem)}.kpt-split-button__toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;border-inline-start:1px solid color-mix(in oklch,var(--_fg) 25%,transparent)}.kpt-split-button__panel{min-width:11rem;padding:.25rem;background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-split-button__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-split-button__item:hover:not(:disabled){background:var(--kpt-color-surface-variant)}.kpt-split-button__item:disabled{opacity:.45;cursor:not-allowed}.kpt-split-button__item--danger{color:var(--kpt-color-danger)}.kpt-split-button__item kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-split-button__separator{height:1px;margin:.25rem 0;background:var(--kpt-color-border)}}\n"] }]
1408
+ `, host: { class: 'kpt-split-button-host' }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-split-button-host{display:inline-flex}.kpt-split-button{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);--_bg-hover: var(--kpt-color-primary-hover);display:inline-flex;border-radius:var(--kpt-button-radius, .5rem);overflow:hidden}.kpt-split-button[data-variant=tonal]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted);--_bg-hover: var(--kpt-color-muted-hover)}.kpt-split-button__main,.kpt-split-button__toggle{border:0;background:var(--_bg);color:var(--_fg);cursor:pointer;font:inherit;font-size:var(--kpt-font-size-sm, .875rem);font-weight:var(--kpt-font-weight-medium, 500);height:2.5rem;position:relative;isolation:isolate}.kpt-split-button__main:after,.kpt-split-button__toggle:after{content:\"\";position:absolute;inset:0;z-index:-1;background-color:var(--_bg-hover);opacity:0;pointer-events:none;transition:opacity var(--kpt-motion-duration-fast, .12s) var(--kpt-motion-easing-standard)}.kpt-split-button__main:hover:not(:disabled):after,.kpt-split-button__toggle:hover:not(:disabled):after{opacity:1}.kpt-split-button__main:disabled,.kpt-split-button__toggle:disabled{opacity:.5;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.kpt-split-button__main:after,.kpt-split-button__toggle:after{transition:none}}.kpt-split-button__main{padding-inline:var(--kpt-space-4, 1rem)}.kpt-split-button__toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;border-inline-start:1px solid color-mix(in oklch,var(--_fg) 25%,transparent)}.kpt-split-button__panel{min-width:11rem;padding:.25rem;background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-split-button__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-split-button__item:hover:not(:disabled){background:var(--kpt-color-surface-variant)}.kpt-split-button__item:disabled{opacity:.45;cursor:not-allowed}.kpt-split-button__item--danger{color:var(--kpt-color-danger)}.kpt-split-button__item kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-split-button__header{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);padding:.5rem .6rem;font-size:var(--kpt-font-size-sm, .875rem);cursor:default}.kpt-split-button__header .kpt-split-button__label{font-weight:var(--kpt-font-weight-semibold, 600)}.kpt-split-button__header kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-split-button__text{display:flex;flex-direction:column;min-width:0}.kpt-split-button__label,.kpt-split-button__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-split-button__description{color:var(--kpt-color-on-surface-muted);font-size:var(--kpt-font-size-xs, .75rem)}.kpt-split-button__badge{margin-inline-start:auto}.kpt-split-button__separator{height:1px;margin:.25rem 0;background:var(--kpt-color-border)}}\n"] }]
1172
1409
  }], null, { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], primaryClick: [{ type: i0.Output, args: ["primaryClick"] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
1173
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptSplitButton, { className: "KptSplitButton", filePath: "lib/split-button/split-button.component.ts", lineNumber: 68 }); })();
1410
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptSplitButton, { className: "KptSplitButton", filePath: "lib/split-button/split-button.component.ts", lineNumber: 101 }); })();
1174
1411
 
1175
1412
  // Do not edit directly — generated by scripts/gen-tokens.mjs
1176
1413
  // from @konce-pt/tokens (tokens/primitives/breakpoint.json).
@@ -1254,72 +1491,16 @@ class KptBreakpointObserver {
1254
1491
  *
1255
1492
  * @example
1256
1493
  * // Własny język jednym plikiem JSON (brakujące klucze → EN)
1257
- * import de from './i18n/de.json';
1258
- * provideKptI18n({ locale: 'de', messages: { de } });
1259
- *
1260
- * @example
1261
- * // Nadpisanie pojedynczych etykiet istniejącego języka
1262
- * provideKptI18n({ messages: { en: { paginator: { rowsPerPage: 'Rows per page:' } } } });
1263
- */
1264
- function provideKptI18n(config = {}) {
1265
- return makeEnvironmentProviders([{ provide: KPT_I18N_CONFIG, useValue: config }]);
1266
- }
1267
-
1268
- const _c0$z = ["*"];
1269
- /**
1270
- * Znacznik (badge) — licznik lub kropka statusu. Standalone lub nałożony na treść (`overlay`).
1494
+ * import de from './i18n/de.json';
1495
+ * provideKptI18n({ locale: 'de', messages: { de } });
1271
1496
  *
1272
1497
  * @example
1273
- * <kpt-badge [value]="3" variant="danger" />
1274
- * <kpt-badge [value]="128" overlay><kpt-icon name="menu" /></kpt-badge>
1275
- * <kpt-badge dot variant="success" overlay><kpt-avatar name="AK" /></kpt-badge>
1498
+ * // Nadpisanie pojedynczych etykiet istniejącego języka
1499
+ * provideKptI18n({ messages: { en: { paginator: { rowsPerPage: 'Rows per page:' } } } });
1276
1500
  */
1277
- class KptBadge {
1278
- constructor() {
1279
- this.value = input(null, /* @ts-ignore */
1280
- ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
1281
- this.variant = input('primary', /* @ts-ignore */
1282
- ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
1283
- this.dot = input(false, { ...(ngDevMode ? { debugName: "dot" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1284
- this.overlay = input(false, { ...(ngDevMode ? { debugName: "overlay" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
1285
- this.max = input(99, /* @ts-ignore */
1286
- ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
1287
- this.display = computed(() => {
1288
- const v = this.value();
1289
- if (typeof v === 'number' && v > this.max())
1290
- return `${this.max()}+`;
1291
- return v ?? '';
1292
- }, /* @ts-ignore */
1293
- ...(ngDevMode ? [{ debugName: "display" }] : /* istanbul ignore next */ []));
1294
- }
1295
- static { this.ɵfac = function KptBadge_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptBadge)(); }; }
1296
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptBadge, selectors: [["kpt-badge"]], hostAttrs: [1, "kpt-badge-host"], inputs: { value: [1, "value"], variant: [1, "variant"], dot: [1, "dot"], overlay: [1, "overlay"], max: [1, "max"] }, ngContentSelectors: _c0$z, decls: 3, vars: 6, consts: [[1, "kpt-badge"]], template: function KptBadge_Template(rf, ctx) { if (rf & 1) {
1297
- i0.ɵɵprojectionDef();
1298
- i0.ɵɵprojection(0);
1299
- i0.ɵɵdomElementStart(1, "span", 0);
1300
- i0.ɵɵtext(2);
1301
- i0.ɵɵdomElementEnd();
1302
- } if (rf & 2) {
1303
- i0.ɵɵadvance();
1304
- i0.ɵɵclassProp("kpt-badge--overlay", ctx.overlay())("kpt-badge--dot", ctx.dot());
1305
- i0.ɵɵattribute("data-variant", ctx.variant());
1306
- i0.ɵɵadvance();
1307
- i0.ɵɵtextInterpolate(ctx.dot() ? "" : ctx.display());
1308
- } }, styles: ["@layer kpt.components{.kpt-badge-host{position:relative;display:inline-flex;vertical-align:middle}.kpt-badge{--%NS%_bg: var(--%NS%kpt-color-primary);--%NS%_fg: var(--%NS%kpt-color-on-primary);display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding-inline:.35rem;box-sizing:border-box;border-radius:var(--%NS%kpt-radius-full, 9999px);background:var(--%NS%_bg);color:var(--%NS%_fg);font-size:var(--%NS%kpt-font-size-xs, .75rem);font-weight:var(--%NS%kpt-font-weight-semibold, 600);line-height:1}.kpt-badge[data-variant=neutral]{--%NS%_bg: var(--%NS%kpt-color-muted);--%NS%_fg: var(--%NS%kpt-color-on-muted)}.kpt-badge[data-variant=success]{--%NS%_bg: var(--%NS%kpt-color-success);--%NS%_fg: var(--%NS%kpt-color-surface)}.kpt-badge[data-variant=danger]{--%NS%_bg: var(--%NS%kpt-color-danger);--%NS%_fg: var(--%NS%kpt-color-on-danger)}.kpt-badge[data-variant=warning]{--%NS%_bg: var(--%NS%kpt-color-warning);--%NS%_fg: var(--%NS%kpt-color-surface)}.kpt-badge[data-variant=info]{--%NS%_bg: var(--%NS%kpt-color-info);--%NS%_fg: var(--%NS%kpt-color-surface)}.kpt-badge--dot{min-width:0;width:.65rem;height:.65rem;padding:0}.kpt-badge--overlay{position:absolute;top:0;inset-inline-end:0;transform:translate(35%,-35%);box-shadow:0 0 0 2px var(--%NS%kpt-color-surface)}}\n"], encapsulation: 2 }); }
1501
+ function provideKptI18n(config = {}) {
1502
+ return makeEnvironmentProviders([{ provide: KPT_I18N_CONFIG, useValue: config }]);
1309
1503
  }
1310
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptBadge, [{
1311
- type: Component,
1312
- args: [{ selector: 'kpt-badge', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
1313
- <ng-content />
1314
- <span
1315
- class="kpt-badge"
1316
- [attr.data-variant]="variant()"
1317
- [class.kpt-badge--overlay]="overlay()"
1318
- [class.kpt-badge--dot]="dot()"
1319
- >{{ dot() ? '' : display() }}</span>
1320
- `, host: { class: 'kpt-badge-host' }, styles: ["@layer kpt.components{.kpt-badge-host{position:relative;display:inline-flex;vertical-align:middle}.kpt-badge{--_bg: var(--kpt-color-primary);--_fg: var(--kpt-color-on-primary);display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding-inline:.35rem;box-sizing:border-box;border-radius:var(--kpt-radius-full, 9999px);background:var(--_bg);color:var(--_fg);font-size:var(--kpt-font-size-xs, .75rem);font-weight:var(--kpt-font-weight-semibold, 600);line-height:1}.kpt-badge[data-variant=neutral]{--_bg: var(--kpt-color-muted);--_fg: var(--kpt-color-on-muted)}.kpt-badge[data-variant=success]{--_bg: var(--kpt-color-success);--_fg: var(--kpt-color-surface)}.kpt-badge[data-variant=danger]{--_bg: var(--kpt-color-danger);--_fg: var(--kpt-color-on-danger)}.kpt-badge[data-variant=warning]{--_bg: var(--kpt-color-warning);--_fg: var(--kpt-color-surface)}.kpt-badge[data-variant=info]{--_bg: var(--kpt-color-info);--_fg: var(--kpt-color-surface)}.kpt-badge--dot{min-width:0;width:.65rem;height:.65rem;padding:0}.kpt-badge--overlay{position:absolute;top:0;inset-inline-end:0;transform:translate(35%,-35%);box-shadow:0 0 0 2px var(--kpt-color-surface)}}\n"] }]
1321
- }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], dot: [{ type: i0.Input, args: [{ isSignal: true, alias: "dot", required: false }] }], overlay: [{ type: i0.Input, args: [{ isSignal: true, alias: "overlay", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }] }); })();
1322
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptBadge, { className: "KptBadge", filePath: "lib/badge/badge.component.ts", lineNumber: 29 }); })();
1323
1504
 
1324
1505
  const _c0$y = ["*"];
1325
1506
  function KptChip_Conditional_2_Template(rf, ctx) { if (rf & 1) {
@@ -1382,82 +1563,6 @@ class KptChip {
1382
1563
  }], null, { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], removable: [{ type: i0.Input, args: [{ isSignal: true, alias: "removable", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], removed: [{ type: i0.Output, args: ["removed"] }] }); })();
1383
1564
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptChip, { className: "KptChip", filePath: "lib/chip/chip.component.ts", lineNumber: 36 }); })();
1384
1565
 
1385
- function KptAvatar_Conditional_1_Template(rf, ctx) { if (rf & 1) {
1386
- i0.ɵɵelement(0, "img", 1);
1387
- } if (rf & 2) {
1388
- const ctx_r0 = i0.ɵɵnextContext();
1389
- i0.ɵɵproperty("src", ctx_r0.src(), i0.ɵɵsanitizeUrl)("alt", ctx_r0.name() || "");
1390
- } }
1391
- function KptAvatar_Conditional_2_Template(rf, ctx) { if (rf & 1) {
1392
- i0.ɵɵelementStart(0, "span", 2);
1393
- i0.ɵɵtext(1);
1394
- i0.ɵɵelementEnd();
1395
- } if (rf & 2) {
1396
- const ctx_r0 = i0.ɵɵnextContext();
1397
- i0.ɵɵadvance();
1398
- i0.ɵɵtextInterpolate(ctx_r0.initials());
1399
- } }
1400
- function KptAvatar_Conditional_3_Template(rf, ctx) { if (rf & 1) {
1401
- i0.ɵɵelement(0, "kpt-icon", 3);
1402
- } if (rf & 2) {
1403
- const ctx_r0 = i0.ɵɵnextContext();
1404
- i0.ɵɵproperty("name", ctx_r0.icon());
1405
- } }
1406
- /**
1407
- * Awatar — obraz, inicjały (z `name`) lub ikona.
1408
- *
1409
- * @example
1410
- * <kpt-avatar src="/u/anna.jpg" />
1411
- * <kpt-avatar name="Anna Kowalska" size="lg" />
1412
- * <kpt-avatar icon="user" shape="square" />
1413
- */
1414
- class KptAvatar {
1415
- constructor() {
1416
- this.src = input(null, /* @ts-ignore */
1417
- ...(ngDevMode ? [{ debugName: "src" }] : /* istanbul ignore next */ []));
1418
- this.name = input('', /* @ts-ignore */
1419
- ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
1420
- this.icon = input(null, /* @ts-ignore */
1421
- ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
1422
- this.size = input('md', /* @ts-ignore */
1423
- ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
1424
- this.shape = input('circle', /* @ts-ignore */
1425
- ...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
1426
- this.initials = computed(() => this.name()
1427
- .trim()
1428
- .split(/\s+/)
1429
- .slice(0, 2)
1430
- .map((w) => w[0]?.toUpperCase() ?? '')
1431
- .join(''), /* @ts-ignore */
1432
- ...(ngDevMode ? [{ debugName: "initials" }] : /* istanbul ignore next */ []));
1433
- }
1434
- static { this.ɵfac = function KptAvatar_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptAvatar)(); }; }
1435
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptAvatar, selectors: [["kpt-avatar"]], hostAttrs: [1, "kpt-avatar-host"], inputs: { src: [1, "src"], name: [1, "name"], icon: [1, "icon"], size: [1, "size"], shape: [1, "shape"] }, decls: 4, vars: 3, consts: [[1, "kpt-avatar"], [1, "kpt-avatar__img", 3, "src", "alt"], [1, "kpt-avatar__initials"], [3, "name"]], template: function KptAvatar_Template(rf, ctx) { if (rf & 1) {
1436
- i0.ɵɵelementStart(0, "span", 0);
1437
- i0.ɵɵconditionalCreate(1, KptAvatar_Conditional_1_Template, 1, 2, "img", 1)(2, KptAvatar_Conditional_2_Template, 2, 1, "span", 2)(3, KptAvatar_Conditional_3_Template, 1, 1, "kpt-icon", 3);
1438
- i0.ɵɵelementEnd();
1439
- } if (rf & 2) {
1440
- i0.ɵɵattribute("data-size", ctx.size())("data-shape", ctx.shape());
1441
- i0.ɵɵadvance();
1442
- i0.ɵɵconditional(ctx.src() ? 1 : ctx.name() ? 2 : ctx.icon() ? 3 : -1);
1443
- } }, dependencies: [KptIcon], styles: ["@layer kpt.components{.kpt-avatar-host{display:inline-flex;vertical-align:middle}.kpt-avatar{--%NS%_size: 2.5rem;display:inline-flex;align-items:center;justify-content:center;width:var(--%NS%_size);height:var(--%NS%_size);border-radius:var(--%NS%kpt-radius-full, 9999px);background:var(--%NS%kpt-color-muted);color:var(--%NS%kpt-color-on-muted);font-weight:var(--%NS%kpt-font-weight-semibold, 600);font-size:calc(var(--%NS%_size) * .4);overflow:hidden;-webkit-user-select:none;user-select:none}.kpt-avatar[data-size=sm]{--%NS%_size: 2rem}.kpt-avatar[data-size=md]{--%NS%_size: 2.5rem}.kpt-avatar[data-size=lg]{--%NS%_size: 3rem}.kpt-avatar[data-size=xl]{--%NS%_size: 4rem}.kpt-avatar[data-shape=square]{border-radius:var(--%NS%kpt-radius-md, .5rem)}.kpt-avatar__img{width:100%;height:100%;object-fit:cover}}\n"], encapsulation: 2 }); }
1444
- }
1445
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptAvatar, [{
1446
- type: Component,
1447
- args: [{ selector: 'kpt-avatar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [KptIcon], template: `
1448
- <span class="kpt-avatar" [attr.data-size]="size()" [attr.data-shape]="shape()">
1449
- @if (src()) {
1450
- <img class="kpt-avatar__img" [src]="src()" [alt]="name() || ''" />
1451
- } @else if (name()) {
1452
- <span class="kpt-avatar__initials">{{ initials() }}</span>
1453
- } @else if (icon()) {
1454
- <kpt-icon [name]="icon()!" />
1455
- }
1456
- </span>
1457
- `, host: { class: 'kpt-avatar-host' }, styles: ["@layer kpt.components{.kpt-avatar-host{display:inline-flex;vertical-align:middle}.kpt-avatar{--_size: 2.5rem;display:inline-flex;align-items:center;justify-content:center;width:var(--_size);height:var(--_size);border-radius:var(--kpt-radius-full, 9999px);background:var(--kpt-color-muted);color:var(--kpt-color-on-muted);font-weight:var(--kpt-font-weight-semibold, 600);font-size:calc(var(--_size) * .4);overflow:hidden;-webkit-user-select:none;user-select:none}.kpt-avatar[data-size=sm]{--_size: 2rem}.kpt-avatar[data-size=md]{--_size: 2.5rem}.kpt-avatar[data-size=lg]{--_size: 3rem}.kpt-avatar[data-size=xl]{--_size: 4rem}.kpt-avatar[data-shape=square]{border-radius:var(--kpt-radius-md, .5rem)}.kpt-avatar__img{width:100%;height:100%;object-fit:cover}}\n"] }]
1458
- }], null, { src: [{ type: i0.Input, args: [{ isSignal: true, alias: "src", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }] }); })();
1459
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptAvatar, { className: "KptAvatar", filePath: "lib/avatar/avatar.component.ts", lineNumber: 34 }); })();
1460
-
1461
1566
  /**
1462
1567
  * Wskaźnik ładowania (spinner). Kolor z `currentColor`.
1463
1568
  *
@@ -6987,7 +7092,7 @@ class KptKnob {
6987
7092
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptKnob, { className: "KptKnob", filePath: "lib/knob/knob.component.ts", lineNumber: 41 }); })();
6988
7093
 
6989
7094
  const _c0$r = ["*", [["", "kptCardFooter", ""]]];
6990
- const _c1$9 = ["*", "[kptCardFooter]"];
7095
+ const _c1$a = ["*", "[kptCardFooter]"];
6991
7096
  function KptCard_Conditional_0_Template(rf, ctx) { if (rf & 1) {
6992
7097
  i0.ɵɵdomElementStart(0, "div", 0);
6993
7098
  i0.ɵɵtext(1);
@@ -7024,7 +7129,7 @@ class KptCard {
7024
7129
  static { this.ɵfac = function KptCard_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptCard)(); }; }
7025
7130
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptCard, selectors: [["kpt-card"]], hostAttrs: [1, "kpt-card"], hostVars: 1, hostBindings: function KptCard_HostBindings(rf, ctx) { if (rf & 2) {
7026
7131
  i0.ɵɵattribute("data-variant", ctx.variant());
7027
- } }, inputs: { variant: [1, "variant"], header: [1, "header"], flush: [1, "flush"] }, ngContentSelectors: _c1$9, decls: 4, vars: 3, consts: [[1, "kpt-card__header"], [1, "kpt-card__body"]], template: function KptCard_Template(rf, ctx) { if (rf & 1) {
7132
+ } }, inputs: { variant: [1, "variant"], header: [1, "header"], flush: [1, "flush"] }, ngContentSelectors: _c1$a, decls: 4, vars: 3, consts: [[1, "kpt-card__header"], [1, "kpt-card__body"]], template: function KptCard_Template(rf, ctx) { if (rf & 1) {
7028
7133
  i0.ɵɵprojectionDef(_c0$r);
7029
7134
  i0.ɵɵconditionalCreate(0, KptCard_Conditional_0_Template, 2, 1, "div", 0);
7030
7135
  i0.ɵɵdomElementStart(1, "div", 1);
@@ -7123,29 +7228,40 @@ class KptToolbar {
7123
7228
  }], null, { elevated: [{ type: i0.Input, args: [{ isSignal: true, alias: "elevated", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }] }); })();
7124
7229
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptToolbar, { className: "KptToolbar", filePath: "lib/toolbar/toolbar.component.ts", lineNumber: 27 }); })();
7125
7230
 
7126
- const _c0$p = ["*"];
7231
+ const _c0$p = ["*", [["", "kptSidenavFooter", ""]]];
7232
+ const _c1$9 = ["*", "[kptSidenavFooter]"];
7127
7233
  /**
7128
7234
  * Panel boczny (sidenav) — stylowany kontener nawigacji, zwykle umieszczany w slocie
7129
7235
  * `kptShellSidenav` komponentu `kpt-app-shell`.
7130
7236
  *
7237
+ * Treść domyślna ląduje w obszarze przewijanym. Element opatrzony atrybutem `kptSidenavFooter`
7238
+ * trafia do stopki stojącej **poza** tym obszarem, więc zostaje przyklejony do dołu panelu
7239
+ * niezależnie od długości nawigacji (blok użytkownika, wersja aplikacji, przełącznik motywu).
7240
+ *
7131
7241
  * @example
7132
7242
  * <kpt-sidenav kptShellSidenav>
7133
7243
  * <a href="#">Pulpit</a>
7134
7244
  * <a href="#">Ustawienia</a>
7245
+ * <div kptSidenavFooter>
7246
+ * <kpt-avatar name="Anna Kowalska" size="sm" />
7247
+ * </div>
7135
7248
  * </kpt-sidenav>
7136
7249
  */
7137
7250
  class KptSidenav {
7138
7251
  static { this.ɵfac = function KptSidenav_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptSidenav)(); }; }
7139
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptSidenav, selectors: [["kpt-sidenav"]], hostAttrs: [1, "kpt-sidenav"], ngContentSelectors: _c0$p, decls: 1, vars: 0, template: function KptSidenav_Template(rf, ctx) { if (rf & 1) {
7140
- i0.ɵɵprojectionDef();
7141
- i0.ɵɵprojection(0);
7142
- } }, styles: ["@layer kpt.components{.kpt-sidenav{display:flex;flex-direction:column;gap:var(--%NS%kpt-space-1, .25rem);width:100%;height:100%;box-sizing:border-box;padding:var(--%NS%kpt-space-3, .75rem);overflow-y:auto;background:var(--%NS%kpt-sidenav-bg);color:var(--%NS%kpt-sidenav-fg);border-inline-end:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-sidenav-border)}.kpt-sidenav a{display:block;padding:var(--%NS%kpt-space-2, .5rem) var(--%NS%kpt-space-3, .75rem);border-radius:var(--%NS%kpt-radius-md, .5rem);color:inherit;text-decoration:none;font-size:var(--%NS%kpt-font-size-sm, .875rem)}.kpt-sidenav a:hover{background:var(--%NS%kpt-color-muted)}}\n"], encapsulation: 2 }); }
7252
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptSidenav, selectors: [["kpt-sidenav"]], hostAttrs: [1, "kpt-sidenav"], ngContentSelectors: _c1$9, decls: 3, vars: 0, consts: [[1, "kpt-sidenav__scroll"]], template: function KptSidenav_Template(rf, ctx) { if (rf & 1) {
7253
+ i0.ɵɵprojectionDef(_c0$p);
7254
+ i0.ɵɵdomElementStart(0, "div", 0);
7255
+ i0.ɵɵprojection(1);
7256
+ i0.ɵɵdomElementEnd();
7257
+ i0.ɵɵprojection(2, 1);
7258
+ } }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-sidenav{display:flex;flex-direction:column;width:100%;height:100%;box-sizing:border-box;background:var(--%NS%kpt-sidenav-bg);color:var(--%NS%kpt-sidenav-fg);border-inline-end:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-sidenav-border)}.kpt-sidenav__scroll{display:flex;flex-direction:column;gap:var(--%NS%kpt-space-1, .25rem);flex:1 1 auto;min-block-size:0;box-sizing:border-box;padding:var(--%NS%kpt-space-3, .75rem);overflow-y:auto}.kpt-sidenav__scroll a{display:block;padding:var(--%NS%kpt-space-2, .5rem) var(--%NS%kpt-space-3, .75rem);border-radius:var(--%NS%kpt-radius-md, .5rem);color:inherit;text-decoration:none;font-size:var(--%NS%kpt-font-size-sm, .875rem)}.kpt-sidenav__scroll a:hover{background:var(--%NS%kpt-color-muted)}.kpt-sidenav [kptSidenavFooter]{flex:0 0 auto;box-sizing:border-box;padding:var(--%NS%kpt-space-3, .75rem);border-top:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-sidenav-border)}}\n"], encapsulation: 2 }); }
7143
7259
  }
7144
7260
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptSidenav, [{
7145
7261
  type: Component,
7146
- args: [{ selector: 'kpt-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '<ng-content />', host: { class: 'kpt-sidenav' }, styles: ["@layer kpt.components{.kpt-sidenav{display:flex;flex-direction:column;gap:var(--kpt-space-1, .25rem);width:100%;height:100%;box-sizing:border-box;padding:var(--kpt-space-3, .75rem);overflow-y:auto;background:var(--kpt-sidenav-bg);color:var(--kpt-sidenav-fg);border-inline-end:var(--kpt-border-width-thin, 1px) solid var(--kpt-sidenav-border)}.kpt-sidenav a{display:block;padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);border-radius:var(--kpt-radius-md, .5rem);color:inherit;text-decoration:none;font-size:var(--kpt-font-size-sm, .875rem)}.kpt-sidenav a:hover{background:var(--kpt-color-muted)}}\n"] }]
7262
+ args: [{ selector: 'kpt-sidenav', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '<div class="kpt-sidenav__scroll"><ng-content /></div><ng-content select="[kptSidenavFooter]" />', host: { class: 'kpt-sidenav' }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-sidenav{display:flex;flex-direction:column;width:100%;height:100%;box-sizing:border-box;background:var(--kpt-sidenav-bg);color:var(--kpt-sidenav-fg);border-inline-end:var(--kpt-border-width-thin, 1px) solid var(--kpt-sidenav-border)}.kpt-sidenav__scroll{display:flex;flex-direction:column;gap:var(--kpt-space-1, .25rem);flex:1 1 auto;min-block-size:0;box-sizing:border-box;padding:var(--kpt-space-3, .75rem);overflow-y:auto}.kpt-sidenav__scroll a{display:block;padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);border-radius:var(--kpt-radius-md, .5rem);color:inherit;text-decoration:none;font-size:var(--kpt-font-size-sm, .875rem)}.kpt-sidenav__scroll a:hover{background:var(--kpt-color-muted)}.kpt-sidenav [kptSidenavFooter]{flex:0 0 auto;box-sizing:border-box;padding:var(--kpt-space-3, .75rem);border-top:var(--kpt-border-width-thin, 1px) solid var(--kpt-sidenav-border)}}\n"] }]
7147
7263
  }], null, null); })();
7148
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptSidenav, { className: "KptSidenav", filePath: "lib/sidenav/sidenav.component.ts", lineNumber: 21 }); })();
7264
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptSidenav, { className: "KptSidenav", filePath: "lib/sidenav/sidenav.component.ts", lineNumber: 30 }); })();
7149
7265
 
7150
7266
  const _c0$o = [[["", "kptShellToolbar", ""]], [["", "kptShellSidenav", ""]], "*"];
7151
7267
  const _c1$8 = ["[kptShellToolbar]", "[kptShellSidenav]", "*"];
@@ -11045,37 +11161,106 @@ function KptMenu_ng_template_3_For_2_Conditional_0_Template(rf, ctx) { if (rf &
11045
11161
  i0.ɵɵelement(0, "div", 4);
11046
11162
  } }
11047
11163
  function KptMenu_ng_template_3_For_2_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
11048
- i0.ɵɵelement(0, "kpt-icon", 7);
11164
+ i0.ɵɵelement(0, "kpt-avatar", 7);
11049
11165
  } if (rf & 2) {
11050
- const item_r2 = i0.ɵɵnextContext(2).$implicit;
11051
- i0.ɵɵproperty("name", item_r2.icon);
11166
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
11167
+ i0.ɵɵproperty("src", item_r1.avatar.src ?? null)("name", item_r1.avatar.name ?? "")("icon", item_r1.avatar.icon ?? null);
11168
+ } }
11169
+ function KptMenu_ng_template_3_For_2_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
11170
+ i0.ɵɵelement(0, "kpt-icon", 8);
11171
+ } if (rf & 2) {
11172
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
11173
+ i0.ɵɵproperty("name", item_r1.icon);
11174
+ } }
11175
+ function KptMenu_ng_template_3_For_2_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
11176
+ i0.ɵɵelementStart(0, "span", 10);
11177
+ i0.ɵɵtext(1);
11178
+ i0.ɵɵelementEnd();
11179
+ } if (rf & 2) {
11180
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
11181
+ i0.ɵɵadvance();
11182
+ i0.ɵɵtextInterpolate(item_r1.label);
11183
+ } }
11184
+ function KptMenu_ng_template_3_For_2_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
11185
+ i0.ɵɵelementStart(0, "span", 11);
11186
+ i0.ɵɵtext(1);
11187
+ i0.ɵɵelementEnd();
11188
+ } if (rf & 2) {
11189
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
11190
+ i0.ɵɵadvance();
11191
+ i0.ɵɵtextInterpolate(item_r1.description);
11052
11192
  } }
11053
11193
  function KptMenu_ng_template_3_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
11054
- const _r1 = i0.ɵɵgetCurrentView();
11055
- i0.ɵɵelementStart(0, "button", 6);
11056
- i0.ɵɵlistener("click", function KptMenu_ng_template_3_For_2_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const item_r2 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.pick(item_r2)); });
11057
- i0.ɵɵconditionalCreate(1, KptMenu_ng_template_3_For_2_Conditional_1_Conditional_1_Template, 1, 1, "kpt-icon", 7);
11058
- i0.ɵɵelementStart(2, "span");
11059
- i0.ɵɵtext(3);
11194
+ i0.ɵɵelementStart(0, "div", 5);
11195
+ i0.ɵɵconditionalCreate(1, KptMenu_ng_template_3_For_2_Conditional_1_Conditional_1_Template, 1, 3, "kpt-avatar", 7)(2, KptMenu_ng_template_3_For_2_Conditional_1_Conditional_2_Template, 1, 1, "kpt-icon", 8);
11196
+ i0.ɵɵelementStart(3, "span", 9);
11197
+ i0.ɵɵconditionalCreate(4, KptMenu_ng_template_3_For_2_Conditional_1_Conditional_4_Template, 2, 1, "span", 10);
11198
+ i0.ɵɵconditionalCreate(5, KptMenu_ng_template_3_For_2_Conditional_1_Conditional_5_Template, 2, 1, "span", 11);
11060
11199
  i0.ɵɵelementEnd()();
11061
11200
  } if (rf & 2) {
11062
- const item_r2 = i0.ɵɵnextContext().$implicit;
11063
- i0.ɵɵclassProp("kpt-menu__item--danger", item_r2.danger);
11064
- i0.ɵɵproperty("disabled", item_r2.disabled);
11201
+ const item_r1 = i0.ɵɵnextContext().$implicit;
11065
11202
  i0.ɵɵadvance();
11066
- i0.ɵɵconditional(item_r2.icon ? 1 : -1);
11067
- i0.ɵɵadvance(2);
11068
- i0.ɵɵtextInterpolate(item_r2.label);
11203
+ i0.ɵɵconditional(item_r1.avatar ? 1 : item_r1.icon ? 2 : -1);
11204
+ i0.ɵɵadvance(3);
11205
+ i0.ɵɵconditional(item_r1.label ? 4 : -1);
11206
+ i0.ɵɵadvance();
11207
+ i0.ɵɵconditional(item_r1.description ? 5 : -1);
11208
+ } }
11209
+ function KptMenu_ng_template_3_For_2_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
11210
+ i0.ɵɵelement(0, "kpt-icon", 8);
11211
+ } if (rf & 2) {
11212
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
11213
+ i0.ɵɵproperty("name", item_r1.icon);
11214
+ } }
11215
+ function KptMenu_ng_template_3_For_2_Conditional_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
11216
+ i0.ɵɵelementStart(0, "span", 11);
11217
+ i0.ɵɵtext(1);
11218
+ i0.ɵɵelementEnd();
11219
+ } if (rf & 2) {
11220
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
11221
+ i0.ɵɵadvance();
11222
+ i0.ɵɵtextInterpolate(item_r1.description);
11223
+ } }
11224
+ function KptMenu_ng_template_3_For_2_Conditional_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
11225
+ i0.ɵɵelement(0, "kpt-badge", 13);
11226
+ } if (rf & 2) {
11227
+ const item_r1 = i0.ɵɵnextContext(2).$implicit;
11228
+ i0.ɵɵproperty("value", item_r1.badge)("variant", item_r1.badgeVariant ?? "primary");
11229
+ } }
11230
+ function KptMenu_ng_template_3_For_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
11231
+ const _r2 = i0.ɵɵgetCurrentView();
11232
+ i0.ɵɵelementStart(0, "button", 12);
11233
+ i0.ɵɵlistener("click", function KptMenu_ng_template_3_For_2_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r2); const item_r1 = i0.ɵɵnextContext().$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.pick(item_r1)); });
11234
+ i0.ɵɵconditionalCreate(1, KptMenu_ng_template_3_For_2_Conditional_2_Conditional_1_Template, 1, 1, "kpt-icon", 8);
11235
+ i0.ɵɵelementStart(2, "span", 9)(3, "span", 10);
11236
+ i0.ɵɵtext(4);
11237
+ i0.ɵɵelementEnd();
11238
+ i0.ɵɵconditionalCreate(5, KptMenu_ng_template_3_For_2_Conditional_2_Conditional_5_Template, 2, 1, "span", 11);
11239
+ i0.ɵɵelementEnd();
11240
+ i0.ɵɵconditionalCreate(6, KptMenu_ng_template_3_For_2_Conditional_2_Conditional_6_Template, 1, 2, "kpt-badge", 13);
11241
+ i0.ɵɵelementEnd();
11242
+ } if (rf & 2) {
11243
+ const item_r1 = i0.ɵɵnextContext().$implicit;
11244
+ i0.ɵɵclassProp("kpt-menu__item--danger", item_r1.danger);
11245
+ i0.ɵɵproperty("disabled", item_r1.disabled);
11246
+ i0.ɵɵadvance();
11247
+ i0.ɵɵconditional(item_r1.icon ? 1 : -1);
11248
+ i0.ɵɵadvance(3);
11249
+ i0.ɵɵtextInterpolate(item_r1.label);
11250
+ i0.ɵɵadvance();
11251
+ i0.ɵɵconditional(item_r1.description ? 5 : -1);
11252
+ i0.ɵɵadvance();
11253
+ i0.ɵɵconditional(item_r1.badge !== undefined && item_r1.badge !== null ? 6 : -1);
11069
11254
  } }
11070
11255
  function KptMenu_ng_template_3_For_2_Template(rf, ctx) { if (rf & 1) {
11071
- i0.ɵɵconditionalCreate(0, KptMenu_ng_template_3_For_2_Conditional_0_Template, 1, 0, "div", 4)(1, KptMenu_ng_template_3_For_2_Conditional_1_Template, 4, 5, "button", 5);
11256
+ i0.ɵɵconditionalCreate(0, KptMenu_ng_template_3_For_2_Conditional_0_Template, 1, 0, "div", 4)(1, KptMenu_ng_template_3_For_2_Conditional_1_Template, 6, 3, "div", 5)(2, KptMenu_ng_template_3_For_2_Conditional_2_Template, 7, 7, "button", 6);
11072
11257
  } if (rf & 2) {
11073
- const item_r2 = ctx.$implicit;
11074
- i0.ɵɵconditional(item_r2.separator ? 0 : 1);
11258
+ const item_r1 = ctx.$implicit;
11259
+ i0.ɵɵconditional(item_r1.separator ? 0 : item_r1.header ? 1 : 2);
11075
11260
  } }
11076
11261
  function KptMenu_ng_template_3_Template(rf, ctx) { if (rf & 1) {
11077
11262
  i0.ɵɵelementStart(0, "div", 3);
11078
- i0.ɵɵrepeaterCreate(1, KptMenu_ng_template_3_For_2_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIndex);
11263
+ i0.ɵɵrepeaterCreate(1, KptMenu_ng_template_3_For_2_Template, 3, 1, null, null, i0.ɵɵrepeaterTrackByIndex);
11079
11264
  i0.ɵɵelementEnd();
11080
11265
  } if (rf & 2) {
11081
11266
  const ctx_r2 = i0.ɵɵnextContext();
@@ -11117,7 +11302,7 @@ class KptMenu {
11117
11302
  this.close();
11118
11303
  }
11119
11304
  static { this.ɵfac = function KptMenu_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptMenu)(); }; }
11120
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptMenu, selectors: [["kpt-menu"]], hostAttrs: [1, "kpt-menu-host"], inputs: { items: [1, "items"] }, outputs: { select: "select" }, ngContentSelectors: _c0$5, decls: 4, vars: 4, consts: [["origin", "cdkOverlayOrigin"], ["cdkOverlayOrigin", "", 1, "kpt-menu__trigger", 3, "click"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-menu__panel"], ["role", "separator", 1, "kpt-menu__separator"], ["type", "button", "role", "menuitem", 1, "kpt-menu__item", 3, "kpt-menu__item--danger", "disabled"], ["type", "button", "role", "menuitem", 1, "kpt-menu__item", 3, "click", "disabled"], [3, "name"]], template: function KptMenu_Template(rf, ctx) { if (rf & 1) {
11305
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptMenu, selectors: [["kpt-menu"]], hostAttrs: [1, "kpt-menu-host"], inputs: { items: [1, "items"] }, outputs: { select: "select" }, ngContentSelectors: _c0$5, decls: 4, vars: 4, consts: [["origin", "cdkOverlayOrigin"], ["cdkOverlayOrigin", "", 1, "kpt-menu__trigger", 3, "click"], ["cdkConnectedOverlay", "", "cdkConnectedOverlayBackdropClass", "cdk-overlay-transparent-backdrop", 3, "backdropClick", "detach", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "cdkConnectedOverlayHasBackdrop"], ["role", "menu", 1, "kpt-menu__panel"], ["role", "separator", 1, "kpt-menu__separator"], ["role", "presentation", 1, "kpt-menu__header"], ["type", "button", "role", "menuitem", 1, "kpt-menu__item", 3, "kpt-menu__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-menu__text"], [1, "kpt-menu__label"], [1, "kpt-menu__description"], ["type", "button", "role", "menuitem", 1, "kpt-menu__item", 3, "click", "disabled"], [1, "kpt-menu__badge", 3, "value", "variant"]], template: function KptMenu_Template(rf, ctx) { if (rf & 1) {
11121
11306
  i0.ɵɵprojectionDef();
11122
11307
  i0.ɵɵelementStart(0, "span", 1, 0);
11123
11308
  i0.ɵɵlistener("click", function KptMenu_Template_span_click_0_listener() { return ctx.toggle(); });
@@ -11129,11 +11314,11 @@ class KptMenu {
11129
11314
  const origin_r4 = i0.ɵɵreference(1);
11130
11315
  i0.ɵɵadvance(3);
11131
11316
  i0.ɵɵproperty("cdkConnectedOverlayOrigin", origin_r4)("cdkConnectedOverlayOpen", ctx.open())("cdkConnectedOverlayPositions", ctx.positions)("cdkConnectedOverlayHasBackdrop", true);
11132
- } }, dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon], styles: ["@layer kpt.components{.kpt-menu-host{display:inline-flex}.kpt-menu__trigger{display:inline-flex;cursor:pointer}.kpt-menu__panel{min-width:11rem;padding:.25rem;background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3)}.kpt-menu__item{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);font:inherit;font-size:var(--%NS%kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-menu__item:hover:not(:disabled){background:var(--%NS%kpt-color-surface-variant)}.kpt-menu__item:disabled{opacity:.45;cursor:not-allowed}.kpt-menu__item--danger{color:var(--%NS%kpt-color-danger)}.kpt-menu__item kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-menu__item--danger kpt-icon{color:var(--%NS%kpt-color-danger)}.kpt-menu__separator{height:1px;margin:.25rem 0;background:var(--%NS%kpt-color-border)}}\n"], encapsulation: 2 }); }
11317
+ } }, dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon], styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-menu-host{display:inline-flex}.kpt-menu__trigger{display:inline-flex;cursor:pointer}.kpt-menu__panel{min-width:11rem;padding:.25rem;background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3)}.kpt-menu__item{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);font:inherit;font-size:var(--%NS%kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-menu__item:hover:not(:disabled){background:var(--%NS%kpt-color-surface-variant)}.kpt-menu__item:disabled{opacity:.45;cursor:not-allowed}.kpt-menu__item--danger{color:var(--%NS%kpt-color-danger)}.kpt-menu__item kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-menu__item--danger kpt-icon{color:var(--%NS%kpt-color-danger)}.kpt-menu__header{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);padding:.5rem .6rem;font-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:default}.kpt-menu__header .kpt-menu__label{font-weight:var(--%NS%kpt-font-weight-semibold, 600)}.kpt-menu__header kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-menu__text{display:flex;flex-direction:column;min-width:0}.kpt-menu__label,.kpt-menu__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-menu__description{color:var(--%NS%kpt-color-on-surface-muted);font-size:var(--%NS%kpt-font-size-xs, .75rem)}.kpt-menu__badge{margin-inline-start:auto}.kpt-menu__separator{height:1px;margin:.25rem 0;background:var(--%NS%kpt-color-border)}}\n"], encapsulation: 2 }); }
11133
11318
  }
11134
11319
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptMenu, [{
11135
11320
  type: Component,
11136
- args: [{ selector: 'kpt-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon], template: `
11321
+ args: [{ selector: 'kpt-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon], template: `
11137
11322
  <span class="kpt-menu__trigger" cdkOverlayOrigin #origin="cdkOverlayOrigin" (click)="toggle()">
11138
11323
  <ng-content />
11139
11324
  </span>
@@ -11152,6 +11337,23 @@ class KptMenu {
11152
11337
  @for (item of items(); track $index) {
11153
11338
  @if (item.separator) {
11154
11339
  <div class="kpt-menu__separator" role="separator"></div>
11340
+ } @else if (item.header) {
11341
+ <div class="kpt-menu__header" role="presentation">
11342
+ @if (item.avatar) {
11343
+ <kpt-avatar
11344
+ [src]="item.avatar.src ?? null"
11345
+ [name]="item.avatar.name ?? ''"
11346
+ [icon]="item.avatar.icon ?? null"
11347
+ size="sm"
11348
+ />
11349
+ } @else if (item.icon) {
11350
+ <kpt-icon [name]="item.icon" />
11351
+ }
11352
+ <span class="kpt-menu__text">
11353
+ @if (item.label) { <span class="kpt-menu__label">{{ item.label }}</span> }
11354
+ @if (item.description) { <span class="kpt-menu__description">{{ item.description }}</span> }
11355
+ </span>
11356
+ </div>
11155
11357
  } @else {
11156
11358
  <button
11157
11359
  type="button"
@@ -11162,15 +11364,21 @@ class KptMenu {
11162
11364
  (click)="pick(item)"
11163
11365
  >
11164
11366
  @if (item.icon) { <kpt-icon [name]="item.icon" /> }
11165
- <span>{{ item.label }}</span>
11367
+ <span class="kpt-menu__text">
11368
+ <span class="kpt-menu__label">{{ item.label }}</span>
11369
+ @if (item.description) { <span class="kpt-menu__description">{{ item.description }}</span> }
11370
+ </span>
11371
+ @if (item.badge !== undefined && item.badge !== null) {
11372
+ <kpt-badge class="kpt-menu__badge" [value]="item.badge" [variant]="item.badgeVariant ?? 'primary'" />
11373
+ }
11166
11374
  </button>
11167
11375
  }
11168
11376
  }
11169
11377
  </div>
11170
11378
  </ng-template>
11171
- `, host: { class: 'kpt-menu-host' }, styles: ["@layer kpt.components{.kpt-menu-host{display:inline-flex}.kpt-menu__trigger{display:inline-flex;cursor:pointer}.kpt-menu__panel{min-width:11rem;padding:.25rem;background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-menu__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-menu__item:hover:not(:disabled){background:var(--kpt-color-surface-variant)}.kpt-menu__item:disabled{opacity:.45;cursor:not-allowed}.kpt-menu__item--danger{color:var(--kpt-color-danger)}.kpt-menu__item kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-menu__item--danger kpt-icon{color:var(--kpt-color-danger)}.kpt-menu__separator{height:1px;margin:.25rem 0;background:var(--kpt-color-border)}}\n"] }]
11379
+ `, host: { class: 'kpt-menu-host' }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-menu-host{display:inline-flex}.kpt-menu__trigger{display:inline-flex;cursor:pointer}.kpt-menu__panel{min-width:11rem;padding:.25rem;background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-menu__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:.5rem .6rem;border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font:inherit;font-size:var(--kpt-font-size-sm, .875rem);text-align:start;cursor:pointer}.kpt-menu__item:hover:not(:disabled){background:var(--kpt-color-surface-variant)}.kpt-menu__item:disabled{opacity:.45;cursor:not-allowed}.kpt-menu__item--danger{color:var(--kpt-color-danger)}.kpt-menu__item kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-menu__item--danger kpt-icon{color:var(--kpt-color-danger)}.kpt-menu__header{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);padding:.5rem .6rem;font-size:var(--kpt-font-size-sm, .875rem);cursor:default}.kpt-menu__header .kpt-menu__label{font-weight:var(--kpt-font-weight-semibold, 600)}.kpt-menu__header kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-menu__text{display:flex;flex-direction:column;min-width:0}.kpt-menu__label,.kpt-menu__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-menu__description{color:var(--kpt-color-on-surface-muted);font-size:var(--kpt-font-size-xs, .75rem)}.kpt-menu__badge{margin-inline-start:auto}.kpt-menu__separator{height:1px;margin:.25rem 0;background:var(--kpt-color-border)}}\n"] }]
11172
11380
  }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
11173
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptMenu, { className: "KptMenu", filePath: "lib/menu/menu.component.ts", lineNumber: 71 }); })();
11381
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptMenu, { className: "KptMenu", filePath: "lib/menu/menu.component.ts", lineNumber: 116 }); })();
11174
11382
 
11175
11383
  const _c0$4 = [[["", "kptPopoverTrigger", ""]], "*"];
11176
11384
  const _c1 = ["[kptPopoverTrigger]", "*"];
@@ -11472,7 +11680,7 @@ class KptDrawer {
11472
11680
  i0.ɵɵattribute("data-position", ctx.position());
11473
11681
  i0.ɵɵadvance();
11474
11682
  i0.ɵɵconditional(ctx.header() || ctx.dismissible() ? 2 : -1);
11475
- } }, dependencies: [KptIcon], styles: ["@layer kpt.components{.kpt-drawer-host{display:contents}.kpt-drawer__backdrop{position:fixed;inset:0;z-index:var(--%NS%kpt-z-overlay, 1100);background:color-mix(in oklch,black 45%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.kpt-drawer__backdrop.is-open{opacity:1;visibility:visible}.kpt-drawer__panel{position:fixed;z-index:calc(var(--%NS%kpt-z-overlay, 1100) + 1);display:flex;flex-direction:column;background:var(--%NS%kpt-color-surface-raised);color:var(--%NS%kpt-color-on-surface);box-shadow:var(--%NS%kpt-elevation-4);transition:transform .25s ease;outline:none}.kpt-drawer__panel[data-position=left]{inset:0 auto 0 0;width:min(20rem,90vw);transform:translate(-100%)}.kpt-drawer__panel[data-position=right]{inset:0 0 0 auto;width:min(20rem,90vw);transform:translate(100%)}.kpt-drawer__panel[data-position=top]{inset:0 0 auto;height:min(16rem,80vh);transform:translateY(-100%)}.kpt-drawer__panel[data-position=bottom]{inset:auto 0 0;height:min(16rem,80vh);transform:translateY(100%)}.kpt-drawer__panel.is-open{transform:none}.kpt-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:var(--%NS%kpt-space-3, .75rem) var(--%NS%kpt-space-4, 1rem);border-bottom:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border)}.kpt-drawer__title{font-weight:var(--%NS%kpt-font-weight-semibold, 600)}.kpt-drawer__close{display:inline-flex;border:0;background:none;padding:0;cursor:pointer;color:var(--%NS%kpt-color-on-surface-muted)}.kpt-drawer__close:hover{color:var(--%NS%kpt-color-on-surface)}.kpt-drawer__body{flex:1;overflow:auto;padding:var(--%NS%kpt-space-4, 1rem)}}\n"], encapsulation: 2 }); }
11683
+ } }, dependencies: [KptIcon], styles: ["@layer kpt.components{.kpt-drawer-host{display:contents}.kpt-drawer__backdrop{position:fixed;inset:0;z-index:var(--%NS%kpt-z-overlay, 1100);background:color-mix(in oklch,black 45%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.kpt-drawer__backdrop.is-open{opacity:1;visibility:visible}.kpt-drawer__panel{position:fixed;z-index:calc(var(--%NS%kpt-z-overlay, 1100) + 1);display:flex;flex-direction:column;background:var(--%NS%kpt-color-surface-raised);color:var(--%NS%kpt-color-on-surface);box-shadow:var(--%NS%kpt-elevation-4);outline:none;inset:0 auto 0 0;width:min(20rem,90vw);transform:translate(-100%);visibility:hidden;--%NS%_kpt-drawer-vis-delay: .25s;transition:transform .25s ease,visibility 0s linear var(--%NS%_kpt-drawer-vis-delay, 0s)}.kpt-drawer__panel[data-position=right]{inset:0 0 0 auto;width:min(20rem,90vw);transform:translate(100%)}.kpt-drawer__panel[data-position=top]{inset:0 0 auto;width:auto;height:min(16rem,80vh);transform:translateY(-100%)}.kpt-drawer__panel[data-position=bottom]{inset:auto 0 0;width:auto;height:min(16rem,80vh);transform:translateY(100%)}.kpt-drawer__panel.is-open{transform:none;visibility:visible;--%NS%_kpt-drawer-vis-delay: 0s}.kpt-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:var(--%NS%kpt-space-3, .75rem) var(--%NS%kpt-space-4, 1rem);border-bottom:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border)}.kpt-drawer__title{font-weight:var(--%NS%kpt-font-weight-semibold, 600)}.kpt-drawer__close{display:inline-flex;border:0;background:none;padding:0;cursor:pointer;color:var(--%NS%kpt-color-on-surface-muted)}.kpt-drawer__close:hover{color:var(--%NS%kpt-color-on-surface)}.kpt-drawer__body{flex:1;overflow:auto;padding:var(--%NS%kpt-space-4, 1rem)}@media(prefers-reduced-motion:reduce){.kpt-drawer__backdrop,.kpt-drawer__panel{transition:none}}}\n"], encapsulation: 2 }); }
11476
11684
  }
11477
11685
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptDrawer, [{
11478
11686
  type: Component,
@@ -11497,7 +11705,7 @@ class KptDrawer {
11497
11705
  }
11498
11706
  <div class="kpt-drawer__body"><ng-content /></div>
11499
11707
  </aside>
11500
- `, host: { class: 'kpt-drawer-host' }, styles: ["@layer kpt.components{.kpt-drawer-host{display:contents}.kpt-drawer__backdrop{position:fixed;inset:0;z-index:var(--kpt-z-overlay, 1100);background:color-mix(in oklch,black 45%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.kpt-drawer__backdrop.is-open{opacity:1;visibility:visible}.kpt-drawer__panel{position:fixed;z-index:calc(var(--kpt-z-overlay, 1100) + 1);display:flex;flex-direction:column;background:var(--kpt-color-surface-raised);color:var(--kpt-color-on-surface);box-shadow:var(--kpt-elevation-4);transition:transform .25s ease;outline:none}.kpt-drawer__panel[data-position=left]{inset:0 auto 0 0;width:min(20rem,90vw);transform:translate(-100%)}.kpt-drawer__panel[data-position=right]{inset:0 0 0 auto;width:min(20rem,90vw);transform:translate(100%)}.kpt-drawer__panel[data-position=top]{inset:0 0 auto;height:min(16rem,80vh);transform:translateY(-100%)}.kpt-drawer__panel[data-position=bottom]{inset:auto 0 0;height:min(16rem,80vh);transform:translateY(100%)}.kpt-drawer__panel.is-open{transform:none}.kpt-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:var(--kpt-space-3, .75rem) var(--kpt-space-4, 1rem);border-bottom:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border)}.kpt-drawer__title{font-weight:var(--kpt-font-weight-semibold, 600)}.kpt-drawer__close{display:inline-flex;border:0;background:none;padding:0;cursor:pointer;color:var(--kpt-color-on-surface-muted)}.kpt-drawer__close:hover{color:var(--kpt-color-on-surface)}.kpt-drawer__body{flex:1;overflow:auto;padding:var(--kpt-space-4, 1rem)}}\n"] }]
11708
+ `, host: { class: 'kpt-drawer-host' }, styles: ["@layer kpt.components{.kpt-drawer-host{display:contents}.kpt-drawer__backdrop{position:fixed;inset:0;z-index:var(--kpt-z-overlay, 1100);background:color-mix(in oklch,black 45%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.kpt-drawer__backdrop.is-open{opacity:1;visibility:visible}.kpt-drawer__panel{position:fixed;z-index:calc(var(--kpt-z-overlay, 1100) + 1);display:flex;flex-direction:column;background:var(--kpt-color-surface-raised);color:var(--kpt-color-on-surface);box-shadow:var(--kpt-elevation-4);outline:none;inset:0 auto 0 0;width:min(20rem,90vw);transform:translate(-100%);visibility:hidden;--_kpt-drawer-vis-delay: .25s;transition:transform .25s ease,visibility 0s linear var(--_kpt-drawer-vis-delay, 0s)}.kpt-drawer__panel[data-position=right]{inset:0 0 0 auto;width:min(20rem,90vw);transform:translate(100%)}.kpt-drawer__panel[data-position=top]{inset:0 0 auto;width:auto;height:min(16rem,80vh);transform:translateY(-100%)}.kpt-drawer__panel[data-position=bottom]{inset:auto 0 0;width:auto;height:min(16rem,80vh);transform:translateY(100%)}.kpt-drawer__panel.is-open{transform:none;visibility:visible;--_kpt-drawer-vis-delay: 0s}.kpt-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:var(--kpt-space-3, .75rem) var(--kpt-space-4, 1rem);border-bottom:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border)}.kpt-drawer__title{font-weight:var(--kpt-font-weight-semibold, 600)}.kpt-drawer__close{display:inline-flex;border:0;background:none;padding:0;cursor:pointer;color:var(--kpt-color-on-surface-muted)}.kpt-drawer__close:hover{color:var(--kpt-color-on-surface)}.kpt-drawer__body{flex:1;overflow:auto;padding:var(--kpt-space-4, 1rem)}@media(prefers-reduced-motion:reduce){.kpt-drawer__backdrop,.kpt-drawer__panel{transition:none}}}\n"] }]
11501
11709
  }], null, { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }] }); })();
11502
11710
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptDrawer, { className: "KptDrawer", filePath: "lib/drawer/drawer.component.ts", lineNumber: 45 }); })();
11503
11711
 
@@ -11506,33 +11714,102 @@ function KptContextMenu_Conditional_2_For_3_Conditional_0_Template(rf, ctx) { if
11506
11714
  i0.ɵɵelement(0, "div", 3);
11507
11715
  } }
11508
11716
  function KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
11509
- i0.ɵɵelement(0, "kpt-icon", 6);
11717
+ i0.ɵɵelement(0, "kpt-avatar", 6);
11510
11718
  } if (rf & 2) {
11511
- const item_r4 = i0.ɵɵnextContext(2).$implicit;
11512
- i0.ɵɵproperty("name", item_r4.icon);
11719
+ const item_r3 = i0.ɵɵnextContext(2).$implicit;
11720
+ i0.ɵɵproperty("src", item_r3.avatar.src ?? null)("name", item_r3.avatar.name ?? "")("icon", item_r3.avatar.icon ?? null);
11721
+ } }
11722
+ function KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
11723
+ i0.ɵɵelement(0, "kpt-icon", 7);
11724
+ } if (rf & 2) {
11725
+ const item_r3 = i0.ɵɵnextContext(2).$implicit;
11726
+ i0.ɵɵproperty("name", item_r3.icon);
11727
+ } }
11728
+ function KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_4_Template(rf, ctx) { if (rf & 1) {
11729
+ i0.ɵɵelementStart(0, "span", 9);
11730
+ i0.ɵɵtext(1);
11731
+ i0.ɵɵelementEnd();
11732
+ } if (rf & 2) {
11733
+ const item_r3 = i0.ɵɵnextContext(2).$implicit;
11734
+ i0.ɵɵadvance();
11735
+ i0.ɵɵtextInterpolate(item_r3.label);
11736
+ } }
11737
+ function KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
11738
+ i0.ɵɵelementStart(0, "span", 10);
11739
+ i0.ɵɵtext(1);
11740
+ i0.ɵɵelementEnd();
11741
+ } if (rf & 2) {
11742
+ const item_r3 = i0.ɵɵnextContext(2).$implicit;
11743
+ i0.ɵɵadvance();
11744
+ i0.ɵɵtextInterpolate(item_r3.description);
11513
11745
  } }
11514
11746
  function KptContextMenu_Conditional_2_For_3_Conditional_1_Template(rf, ctx) { if (rf & 1) {
11515
- const _r3 = i0.ɵɵgetCurrentView();
11516
- i0.ɵɵelementStart(0, "button", 5);
11517
- i0.ɵɵlistener("click", function KptContextMenu_Conditional_2_For_3_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const item_r4 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.pick(item_r4)); });
11518
- i0.ɵɵconditionalCreate(1, KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_1_Template, 1, 1, "kpt-icon", 6);
11519
- i0.ɵɵelementStart(2, "span");
11520
- i0.ɵɵtext(3);
11747
+ i0.ɵɵelementStart(0, "div", 4);
11748
+ i0.ɵɵconditionalCreate(1, KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_1_Template, 1, 3, "kpt-avatar", 6)(2, KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_2_Template, 1, 1, "kpt-icon", 7);
11749
+ i0.ɵɵelementStart(3, "span", 8);
11750
+ i0.ɵɵconditionalCreate(4, KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_4_Template, 2, 1, "span", 9);
11751
+ i0.ɵɵconditionalCreate(5, KptContextMenu_Conditional_2_For_3_Conditional_1_Conditional_5_Template, 2, 1, "span", 10);
11521
11752
  i0.ɵɵelementEnd()();
11522
11753
  } if (rf & 2) {
11523
- const item_r4 = i0.ɵɵnextContext().$implicit;
11524
- i0.ɵɵclassProp("kpt-context-menu__item--danger", item_r4.danger);
11525
- i0.ɵɵproperty("disabled", item_r4.disabled);
11754
+ const item_r3 = i0.ɵɵnextContext().$implicit;
11526
11755
  i0.ɵɵadvance();
11527
- i0.ɵɵconditional(item_r4.icon ? 1 : -1);
11528
- i0.ɵɵadvance(2);
11529
- i0.ɵɵtextInterpolate(item_r4.label);
11756
+ i0.ɵɵconditional(item_r3.avatar ? 1 : item_r3.icon ? 2 : -1);
11757
+ i0.ɵɵadvance(3);
11758
+ i0.ɵɵconditional(item_r3.label ? 4 : -1);
11759
+ i0.ɵɵadvance();
11760
+ i0.ɵɵconditional(item_r3.description ? 5 : -1);
11761
+ } }
11762
+ function KptContextMenu_Conditional_2_For_3_Conditional_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
11763
+ i0.ɵɵelement(0, "kpt-icon", 7);
11764
+ } if (rf & 2) {
11765
+ const item_r3 = i0.ɵɵnextContext(2).$implicit;
11766
+ i0.ɵɵproperty("name", item_r3.icon);
11767
+ } }
11768
+ function KptContextMenu_Conditional_2_For_3_Conditional_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
11769
+ i0.ɵɵelementStart(0, "span", 10);
11770
+ i0.ɵɵtext(1);
11771
+ i0.ɵɵelementEnd();
11772
+ } if (rf & 2) {
11773
+ const item_r3 = i0.ɵɵnextContext(2).$implicit;
11774
+ i0.ɵɵadvance();
11775
+ i0.ɵɵtextInterpolate(item_r3.description);
11776
+ } }
11777
+ function KptContextMenu_Conditional_2_For_3_Conditional_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
11778
+ i0.ɵɵelement(0, "kpt-badge", 12);
11779
+ } if (rf & 2) {
11780
+ const item_r3 = i0.ɵɵnextContext(2).$implicit;
11781
+ i0.ɵɵproperty("value", item_r3.badge)("variant", item_r3.badgeVariant ?? "primary");
11782
+ } }
11783
+ function KptContextMenu_Conditional_2_For_3_Conditional_2_Template(rf, ctx) { if (rf & 1) {
11784
+ const _r4 = i0.ɵɵgetCurrentView();
11785
+ i0.ɵɵelementStart(0, "button", 11);
11786
+ i0.ɵɵlistener("click", function KptContextMenu_Conditional_2_For_3_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const item_r3 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.pick(item_r3)); });
11787
+ i0.ɵɵconditionalCreate(1, KptContextMenu_Conditional_2_For_3_Conditional_2_Conditional_1_Template, 1, 1, "kpt-icon", 7);
11788
+ i0.ɵɵelementStart(2, "span", 8)(3, "span", 9);
11789
+ i0.ɵɵtext(4);
11790
+ i0.ɵɵelementEnd();
11791
+ i0.ɵɵconditionalCreate(5, KptContextMenu_Conditional_2_For_3_Conditional_2_Conditional_5_Template, 2, 1, "span", 10);
11792
+ i0.ɵɵelementEnd();
11793
+ i0.ɵɵconditionalCreate(6, KptContextMenu_Conditional_2_For_3_Conditional_2_Conditional_6_Template, 1, 2, "kpt-badge", 12);
11794
+ i0.ɵɵelementEnd();
11795
+ } if (rf & 2) {
11796
+ const item_r3 = i0.ɵɵnextContext().$implicit;
11797
+ i0.ɵɵclassProp("kpt-context-menu__item--danger", item_r3.danger);
11798
+ i0.ɵɵproperty("disabled", item_r3.disabled);
11799
+ i0.ɵɵadvance();
11800
+ i0.ɵɵconditional(item_r3.icon ? 1 : -1);
11801
+ i0.ɵɵadvance(3);
11802
+ i0.ɵɵtextInterpolate(item_r3.label);
11803
+ i0.ɵɵadvance();
11804
+ i0.ɵɵconditional(item_r3.description ? 5 : -1);
11805
+ i0.ɵɵadvance();
11806
+ i0.ɵɵconditional(item_r3.badge !== undefined && item_r3.badge !== null ? 6 : -1);
11530
11807
  } }
11531
11808
  function KptContextMenu_Conditional_2_For_3_Template(rf, ctx) { if (rf & 1) {
11532
- i0.ɵɵconditionalCreate(0, KptContextMenu_Conditional_2_For_3_Conditional_0_Template, 1, 0, "div", 3)(1, KptContextMenu_Conditional_2_For_3_Conditional_1_Template, 4, 5, "button", 4);
11809
+ i0.ɵɵconditionalCreate(0, KptContextMenu_Conditional_2_For_3_Conditional_0_Template, 1, 0, "div", 3)(1, KptContextMenu_Conditional_2_For_3_Conditional_1_Template, 6, 3, "div", 4)(2, KptContextMenu_Conditional_2_For_3_Conditional_2_Template, 7, 7, "button", 5);
11533
11810
  } if (rf & 2) {
11534
- const item_r4 = ctx.$implicit;
11535
- i0.ɵɵconditional(item_r4.separator ? 0 : 1);
11811
+ const item_r3 = ctx.$implicit;
11812
+ i0.ɵɵconditional(item_r3.separator ? 0 : item_r3.header ? 1 : 2);
11536
11813
  } }
11537
11814
  function KptContextMenu_Conditional_2_Template(rf, ctx) { if (rf & 1) {
11538
11815
  const _r1 = i0.ɵɵgetCurrentView();
@@ -11540,7 +11817,7 @@ function KptContextMenu_Conditional_2_Template(rf, ctx) { if (rf & 1) {
11540
11817
  i0.ɵɵlistener("click", function KptContextMenu_Conditional_2_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.close()); })("contextmenu", function KptContextMenu_Conditional_2_Template_div_contextmenu_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); $event.preventDefault(); return i0.ɵɵresetView(ctx_r1.close()); });
11541
11818
  i0.ɵɵelementEnd();
11542
11819
  i0.ɵɵelementStart(1, "div", 2);
11543
- i0.ɵɵrepeaterCreate(2, KptContextMenu_Conditional_2_For_3_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIndex);
11820
+ i0.ɵɵrepeaterCreate(2, KptContextMenu_Conditional_2_For_3_Template, 3, 1, null, null, i0.ɵɵrepeaterTrackByIndex);
11544
11821
  i0.ɵɵelementEnd();
11545
11822
  } if (rf & 2) {
11546
11823
  const ctx_r1 = i0.ɵɵnextContext();
@@ -11585,7 +11862,7 @@ class KptContextMenu {
11585
11862
  this.close();
11586
11863
  }
11587
11864
  static { this.ɵfac = function KptContextMenu_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || KptContextMenu)(); }; }
11588
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptContextMenu, selectors: [["kpt-context-menu"]], hostAttrs: [1, "kpt-context-menu-host"], inputs: { items: [1, "items"] }, outputs: { select: "select" }, ngContentSelectors: _c0$2, decls: 3, vars: 1, consts: [[1, "kpt-context-menu__area", 3, "contextmenu"], [1, "kpt-context-menu__backdrop", 3, "click", "contextmenu"], ["role", "menu", 1, "kpt-context-menu__panel"], ["role", "separator", 1, "kpt-context-menu__separator"], ["type", "button", "role", "menuitem", 1, "kpt-context-menu__item", 3, "kpt-context-menu__item--danger", "disabled"], ["type", "button", "role", "menuitem", 1, "kpt-context-menu__item", 3, "click", "disabled"], [3, "name"]], template: function KptContextMenu_Template(rf, ctx) { if (rf & 1) {
11865
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: KptContextMenu, selectors: [["kpt-context-menu"]], hostAttrs: [1, "kpt-context-menu-host"], inputs: { items: [1, "items"] }, outputs: { select: "select" }, ngContentSelectors: _c0$2, decls: 3, vars: 1, consts: [[1, "kpt-context-menu__area", 3, "contextmenu"], [1, "kpt-context-menu__backdrop", 3, "click", "contextmenu"], ["role", "menu", 1, "kpt-context-menu__panel"], ["role", "separator", 1, "kpt-context-menu__separator"], ["role", "presentation", 1, "kpt-context-menu__header"], ["type", "button", "role", "menuitem", 1, "kpt-context-menu__item", 3, "kpt-context-menu__item--danger", "disabled"], ["size", "sm", 3, "src", "name", "icon"], [3, "name"], [1, "kpt-context-menu__text"], [1, "kpt-context-menu__label"], [1, "kpt-context-menu__description"], ["type", "button", "role", "menuitem", 1, "kpt-context-menu__item", 3, "click", "disabled"], [1, "kpt-context-menu__badge", 3, "value", "variant"]], template: function KptContextMenu_Template(rf, ctx) { if (rf & 1) {
11589
11866
  i0.ɵɵprojectionDef();
11590
11867
  i0.ɵɵelementStart(0, "div", 0);
11591
11868
  i0.ɵɵlistener("contextmenu", function KptContextMenu_Template_div_contextmenu_0_listener($event) { return ctx.onContext($event); });
@@ -11595,11 +11872,11 @@ class KptContextMenu {
11595
11872
  } if (rf & 2) {
11596
11873
  i0.ɵɵadvance(2);
11597
11874
  i0.ɵɵconditional(ctx.open() ? 2 : -1);
11598
- } }, dependencies: [KptIcon], styles: ["@layer kpt.components{.kpt-context-menu-host{display:block}.kpt-context-menu__area{display:contents}.kpt-context-menu__backdrop{position:fixed;inset:0;z-index:var(--%NS%kpt-z-overlay, 1000)}.kpt-context-menu__panel{position:fixed;z-index:calc(var(--%NS%kpt-z-overlay, 1000) + 1);min-width:11rem;padding:var(--%NS%kpt-space-1, .25rem);background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3)}.kpt-context-menu__item{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);width:100%;padding:var(--%NS%kpt-space-2, .5rem) var(--%NS%kpt-space-3, .75rem);border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);font-size:var(--%NS%kpt-font-size-sm, .875rem);text-align:left;cursor:pointer}.kpt-context-menu__item:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-context-menu__item:disabled{opacity:.5;cursor:not-allowed}.kpt-context-menu__item--danger{color:var(--%NS%kpt-color-danger)}.kpt-context-menu__separator{height:1px;margin:var(--%NS%kpt-space-1, .25rem) 0;background:var(--%NS%kpt-color-border)}}\n"], encapsulation: 2 }); }
11875
+ } }, dependencies: [KptAvatar, KptBadge, KptIcon], styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-context-menu-host{display:block}.kpt-context-menu__area{display:contents}.kpt-context-menu__backdrop{position:fixed;inset:0;z-index:var(--%NS%kpt-z-overlay, 1000)}.kpt-context-menu__panel{position:fixed;z-index:calc(var(--%NS%kpt-z-overlay, 1000) + 1);min-width:11rem;padding:var(--%NS%kpt-space-1, .25rem);background:var(--%NS%kpt-color-surface-raised);border:var(--%NS%kpt-border-width-thin, 1px) solid var(--%NS%kpt-color-border);border-radius:var(--%NS%kpt-radius-md, .5rem);box-shadow:var(--%NS%kpt-elevation-3)}.kpt-context-menu__item{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);width:100%;padding:var(--%NS%kpt-space-2, .5rem) var(--%NS%kpt-space-3, .75rem);border:0;border-radius:var(--%NS%kpt-radius-sm, .25rem);background:none;color:var(--%NS%kpt-color-on-surface);font-size:var(--%NS%kpt-font-size-sm, .875rem);text-align:left;cursor:pointer}.kpt-context-menu__item:hover:not(:disabled){background:var(--%NS%kpt-color-muted)}.kpt-context-menu__item:disabled{opacity:.5;cursor:not-allowed}.kpt-context-menu__item--danger{color:var(--%NS%kpt-color-danger)}.kpt-context-menu__header{display:flex;align-items:center;gap:var(--%NS%kpt-space-2, .5rem);padding:var(--%NS%kpt-space-2, .5rem) var(--%NS%kpt-space-3, .75rem);font-size:var(--%NS%kpt-font-size-sm, .875rem);cursor:default}.kpt-context-menu__header .kpt-context-menu__label{font-weight:var(--%NS%kpt-font-weight-semibold, 600)}.kpt-context-menu__header kpt-icon{color:var(--%NS%kpt-color-on-surface-muted)}.kpt-context-menu__text{display:flex;flex-direction:column;min-width:0}.kpt-context-menu__label,.kpt-context-menu__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-context-menu__description{color:var(--%NS%kpt-color-on-surface-muted);font-size:var(--%NS%kpt-font-size-xs, .75rem)}.kpt-context-menu__badge{margin-inline-start:auto}.kpt-context-menu__separator{height:1px;margin:var(--%NS%kpt-space-1, .25rem) 0;background:var(--%NS%kpt-color-border)}}\n"], encapsulation: 2 }); }
11599
11876
  }
11600
11877
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptContextMenu, [{
11601
11878
  type: Component,
11602
- args: [{ selector: 'kpt-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [KptIcon], template: `
11879
+ args: [{ selector: 'kpt-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [KptAvatar, KptBadge, KptIcon], template: `
11603
11880
  <div class="kpt-context-menu__area" (contextmenu)="onContext($event)">
11604
11881
  <ng-content />
11605
11882
  </div>
@@ -11610,6 +11887,25 @@ class KptContextMenu {
11610
11887
  @for (item of items(); track $index) {
11611
11888
  @if (item.separator) {
11612
11889
  <div class="kpt-context-menu__separator" role="separator"></div>
11890
+ } @else if (item.header) {
11891
+ <div class="kpt-context-menu__header" role="presentation">
11892
+ @if (item.avatar) {
11893
+ <kpt-avatar
11894
+ [src]="item.avatar.src ?? null"
11895
+ [name]="item.avatar.name ?? ''"
11896
+ [icon]="item.avatar.icon ?? null"
11897
+ size="sm"
11898
+ />
11899
+ } @else if (item.icon) {
11900
+ <kpt-icon [name]="item.icon" />
11901
+ }
11902
+ <span class="kpt-context-menu__text">
11903
+ @if (item.label) { <span class="kpt-context-menu__label">{{ item.label }}</span> }
11904
+ @if (item.description) {
11905
+ <span class="kpt-context-menu__description">{{ item.description }}</span>
11906
+ }
11907
+ </span>
11908
+ </div>
11613
11909
  } @else {
11614
11910
  <button
11615
11911
  type="button"
@@ -11620,15 +11916,27 @@ class KptContextMenu {
11620
11916
  (click)="pick(item)"
11621
11917
  >
11622
11918
  @if (item.icon) { <kpt-icon [name]="item.icon" /> }
11623
- <span>{{ item.label }}</span>
11919
+ <span class="kpt-context-menu__text">
11920
+ <span class="kpt-context-menu__label">{{ item.label }}</span>
11921
+ @if (item.description) {
11922
+ <span class="kpt-context-menu__description">{{ item.description }}</span>
11923
+ }
11924
+ </span>
11925
+ @if (item.badge !== undefined && item.badge !== null) {
11926
+ <kpt-badge
11927
+ class="kpt-context-menu__badge"
11928
+ [value]="item.badge"
11929
+ [variant]="item.badgeVariant ?? 'primary'"
11930
+ />
11931
+ }
11624
11932
  </button>
11625
11933
  }
11626
11934
  }
11627
11935
  </div>
11628
11936
  }
11629
- `, host: { class: 'kpt-context-menu-host' }, styles: ["@layer kpt.components{.kpt-context-menu-host{display:block}.kpt-context-menu__area{display:contents}.kpt-context-menu__backdrop{position:fixed;inset:0;z-index:var(--kpt-z-overlay, 1000)}.kpt-context-menu__panel{position:fixed;z-index:calc(var(--kpt-z-overlay, 1000) + 1);min-width:11rem;padding:var(--kpt-space-1, .25rem);background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-context-menu__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem);text-align:left;cursor:pointer}.kpt-context-menu__item:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-context-menu__item:disabled{opacity:.5;cursor:not-allowed}.kpt-context-menu__item--danger{color:var(--kpt-color-danger)}.kpt-context-menu__separator{height:1px;margin:var(--kpt-space-1, .25rem) 0;background:var(--kpt-color-border)}}\n"] }]
11937
+ `, host: { class: 'kpt-context-menu-host' }, styles: ["@charset \"UTF-8\";@layer kpt.components{.kpt-context-menu-host{display:block}.kpt-context-menu__area{display:contents}.kpt-context-menu__backdrop{position:fixed;inset:0;z-index:var(--kpt-z-overlay, 1000)}.kpt-context-menu__panel{position:fixed;z-index:calc(var(--kpt-z-overlay, 1000) + 1);min-width:11rem;padding:var(--kpt-space-1, .25rem);background:var(--kpt-color-surface-raised);border:var(--kpt-border-width-thin, 1px) solid var(--kpt-color-border);border-radius:var(--kpt-radius-md, .5rem);box-shadow:var(--kpt-elevation-3)}.kpt-context-menu__item{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);width:100%;padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);border:0;border-radius:var(--kpt-radius-sm, .25rem);background:none;color:var(--kpt-color-on-surface);font-size:var(--kpt-font-size-sm, .875rem);text-align:left;cursor:pointer}.kpt-context-menu__item:hover:not(:disabled){background:var(--kpt-color-muted)}.kpt-context-menu__item:disabled{opacity:.5;cursor:not-allowed}.kpt-context-menu__item--danger{color:var(--kpt-color-danger)}.kpt-context-menu__header{display:flex;align-items:center;gap:var(--kpt-space-2, .5rem);padding:var(--kpt-space-2, .5rem) var(--kpt-space-3, .75rem);font-size:var(--kpt-font-size-sm, .875rem);cursor:default}.kpt-context-menu__header .kpt-context-menu__label{font-weight:var(--kpt-font-weight-semibold, 600)}.kpt-context-menu__header kpt-icon{color:var(--kpt-color-on-surface-muted)}.kpt-context-menu__text{display:flex;flex-direction:column;min-width:0}.kpt-context-menu__label,.kpt-context-menu__description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpt-context-menu__description{color:var(--kpt-color-on-surface-muted);font-size:var(--kpt-font-size-xs, .75rem)}.kpt-context-menu__badge{margin-inline-start:auto}.kpt-context-menu__separator{height:1px;margin:var(--kpt-space-1, .25rem) 0;background:var(--kpt-color-border)}}\n"] }]
11630
11938
  }], null, { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], select: [{ type: i0.Output, args: ["select"] }] }); })();
11631
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptContextMenu, { className: "KptContextMenu", filePath: "lib/context-menu/context-menu.component.ts", lineNumber: 49 }); })();
11939
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptContextMenu, { className: "KptContextMenu", filePath: "lib/context-menu/context-menu.component.ts", lineNumber: 82 }); })();
11632
11940
 
11633
11941
  function KptMenubar_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
11634
11942
  i0.ɵɵelement(0, "kpt-icon", 4);
@@ -12161,7 +12469,7 @@ class KptBottomSheet {
12161
12469
  i0.ɵɵattribute("aria-label", ctx.i18n.t("common.close"));
12162
12470
  i0.ɵɵadvance();
12163
12471
  i0.ɵɵconditional(ctx.header() ? 3 : -1);
12164
- } }, styles: ["@layer kpt.components{.kpt-bottom-sheet-host{display:contents}.kpt-bottom-sheet__backdrop{position:fixed;inset:0;z-index:var(--%NS%kpt-z-overlay, 1000);background:color-mix(in oklch,black 45%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.kpt-bottom-sheet__backdrop.is-open{opacity:1;visibility:visible}.kpt-bottom-sheet__panel{position:fixed;inset:auto 0 0;z-index:calc(var(--%NS%kpt-z-overlay, 1000) + 1);max-height:85vh;display:flex;flex-direction:column;padding:var(--%NS%kpt-space-2, .5rem) var(--%NS%kpt-space-4, 1rem) var(--%NS%kpt-space-4, 1rem);background:var(--%NS%kpt-color-surface-raised);color:var(--%NS%kpt-color-on-surface);border-radius:var(--%NS%kpt-radius-lg, .75rem) var(--%NS%kpt-radius-lg, .75rem) 0 0;box-shadow:var(--%NS%kpt-elevation-4);transform:translateY(100%);transition:transform .25s ease}.kpt-bottom-sheet__panel.is-open{transform:none}.kpt-bottom-sheet__handle{align-self:center;width:2.5rem;height:.25rem;margin:var(--%NS%kpt-space-2, .5rem) 0;padding:0;border:0;border-radius:999px;background:var(--%NS%kpt-color-border-strong, var(--%NS%kpt-color-border));cursor:pointer}.kpt-bottom-sheet__header{font-weight:var(--%NS%kpt-font-weight-semibold, 600);margin-bottom:var(--%NS%kpt-space-2, .5rem)}.kpt-bottom-sheet__body{overflow:auto}}\n"], encapsulation: 2 }); }
12472
+ } }, styles: ["@layer kpt.components{.kpt-bottom-sheet-host{display:contents}.kpt-bottom-sheet__backdrop{position:fixed;inset:0;z-index:var(--%NS%kpt-z-overlay, 1000);background:color-mix(in oklch,black 45%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.kpt-bottom-sheet__backdrop.is-open{opacity:1;visibility:visible}.kpt-bottom-sheet__panel{position:fixed;inset:auto 0 0;z-index:calc(var(--%NS%kpt-z-overlay, 1000) + 1);max-height:85vh;display:flex;flex-direction:column;padding:var(--%NS%kpt-space-2, .5rem) var(--%NS%kpt-space-4, 1rem) var(--%NS%kpt-space-4, 1rem);background:var(--%NS%kpt-color-surface-raised);color:var(--%NS%kpt-color-on-surface);border-radius:var(--%NS%kpt-radius-lg, .75rem) var(--%NS%kpt-radius-lg, .75rem) 0 0;box-shadow:var(--%NS%kpt-elevation-4);transform:translateY(100%);visibility:hidden;--%NS%_kpt-bottom-sheet-vis-delay: .25s;transition:transform .25s ease,visibility 0s linear var(--%NS%_kpt-bottom-sheet-vis-delay, 0s)}.kpt-bottom-sheet__panel.is-open{transform:none;visibility:visible;--%NS%_kpt-bottom-sheet-vis-delay: 0s}.kpt-bottom-sheet__handle{align-self:center;width:2.5rem;height:.25rem;margin:var(--%NS%kpt-space-2, .5rem) 0;padding:0;border:0;border-radius:999px;background:var(--%NS%kpt-color-border-strong, var(--%NS%kpt-color-border));cursor:pointer}.kpt-bottom-sheet__header{font-weight:var(--%NS%kpt-font-weight-semibold, 600);margin-bottom:var(--%NS%kpt-space-2, .5rem)}.kpt-bottom-sheet__body{overflow:auto}@media(prefers-reduced-motion:reduce){.kpt-bottom-sheet__backdrop,.kpt-bottom-sheet__panel{transition:none}}}\n"], encapsulation: 2 }); }
12165
12473
  }
12166
12474
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KptBottomSheet, [{
12167
12475
  type: Component,
@@ -12172,7 +12480,7 @@ class KptBottomSheet {
12172
12480
  @if (header()) { <div class="kpt-bottom-sheet__header">{{ header() }}</div> }
12173
12481
  <div class="kpt-bottom-sheet__body"><ng-content /></div>
12174
12482
  </div>
12175
- `, host: { class: 'kpt-bottom-sheet-host' }, styles: ["@layer kpt.components{.kpt-bottom-sheet-host{display:contents}.kpt-bottom-sheet__backdrop{position:fixed;inset:0;z-index:var(--kpt-z-overlay, 1000);background:color-mix(in oklch,black 45%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.kpt-bottom-sheet__backdrop.is-open{opacity:1;visibility:visible}.kpt-bottom-sheet__panel{position:fixed;inset:auto 0 0;z-index:calc(var(--kpt-z-overlay, 1000) + 1);max-height:85vh;display:flex;flex-direction:column;padding:var(--kpt-space-2, .5rem) var(--kpt-space-4, 1rem) var(--kpt-space-4, 1rem);background:var(--kpt-color-surface-raised);color:var(--kpt-color-on-surface);border-radius:var(--kpt-radius-lg, .75rem) var(--kpt-radius-lg, .75rem) 0 0;box-shadow:var(--kpt-elevation-4);transform:translateY(100%);transition:transform .25s ease}.kpt-bottom-sheet__panel.is-open{transform:none}.kpt-bottom-sheet__handle{align-self:center;width:2.5rem;height:.25rem;margin:var(--kpt-space-2, .5rem) 0;padding:0;border:0;border-radius:999px;background:var(--kpt-color-border-strong, var(--kpt-color-border));cursor:pointer}.kpt-bottom-sheet__header{font-weight:var(--kpt-font-weight-semibold, 600);margin-bottom:var(--kpt-space-2, .5rem)}.kpt-bottom-sheet__body{overflow:auto}}\n"] }]
12483
+ `, host: { class: 'kpt-bottom-sheet-host' }, styles: ["@layer kpt.components{.kpt-bottom-sheet-host{display:contents}.kpt-bottom-sheet__backdrop{position:fixed;inset:0;z-index:var(--kpt-z-overlay, 1000);background:color-mix(in oklch,black 45%,transparent);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.kpt-bottom-sheet__backdrop.is-open{opacity:1;visibility:visible}.kpt-bottom-sheet__panel{position:fixed;inset:auto 0 0;z-index:calc(var(--kpt-z-overlay, 1000) + 1);max-height:85vh;display:flex;flex-direction:column;padding:var(--kpt-space-2, .5rem) var(--kpt-space-4, 1rem) var(--kpt-space-4, 1rem);background:var(--kpt-color-surface-raised);color:var(--kpt-color-on-surface);border-radius:var(--kpt-radius-lg, .75rem) var(--kpt-radius-lg, .75rem) 0 0;box-shadow:var(--kpt-elevation-4);transform:translateY(100%);visibility:hidden;--_kpt-bottom-sheet-vis-delay: .25s;transition:transform .25s ease,visibility 0s linear var(--_kpt-bottom-sheet-vis-delay, 0s)}.kpt-bottom-sheet__panel.is-open{transform:none;visibility:visible;--_kpt-bottom-sheet-vis-delay: 0s}.kpt-bottom-sheet__handle{align-self:center;width:2.5rem;height:.25rem;margin:var(--kpt-space-2, .5rem) 0;padding:0;border:0;border-radius:999px;background:var(--kpt-color-border-strong, var(--kpt-color-border));cursor:pointer}.kpt-bottom-sheet__header{font-weight:var(--kpt-font-weight-semibold, 600);margin-bottom:var(--kpt-space-2, .5rem)}.kpt-bottom-sheet__body{overflow:auto}@media(prefers-reduced-motion:reduce){.kpt-bottom-sheet__backdrop,.kpt-bottom-sheet__panel{transition:none}}}\n"] }]
12176
12484
  }], null, { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], closeOnBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeOnBackdrop", required: false }] }] }); })();
12177
12485
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(KptBottomSheet, { className: "KptBottomSheet", filePath: "lib/bottom-sheet/bottom-sheet.component.ts", lineNumber: 27 }); })();
12178
12486