@konce-pt/angular 0.8.2 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +406 -0
- package/README.md +5 -0
- package/chat/src/lib/llms.txt +160 -0
- package/fesm2022/konce-pt-angular-chat.mjs +1270 -0
- package/fesm2022/konce-pt-angular-chat.mjs.map +1 -0
- package/fesm2022/konce-pt-angular.mjs +1755 -398
- package/fesm2022/konce-pt-angular.mjs.map +1 -1
- package/package.json +15 -8
- package/src/lib/backdrop/llms.txt +163 -0
- package/src/lib/chip/llms.txt +8 -0
- package/src/lib/data-view/llms.txt +18 -2
- package/src/lib/icon-button/llms.txt +1 -0
- package/src/lib/mention/llms.txt +60 -0
- package/src/lib/order-list/llms.txt +13 -2
- package/src/lib/peek/llms.txt +45 -0
- package/src/lib/pick-list/llms.txt +18 -2
- package/src/lib/rich-text/llms.txt +15 -0
- package/types/konce-pt-angular-chat.d.ts +334 -0
- package/types/konce-pt-angular-chat.d.ts.map +1 -0
- package/types/konce-pt-angular.d.ts +454 -18
- package/types/konce-pt-angular.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"konce-pt-angular.mjs","sources":["../../src/lib/button/button.component.html","../../src/lib/button/button.component.ts","../../src/lib/icon-button/icon-button.component.ts","../../src/lib/button-group/button-group.component.ts","../../src/lib/fab/fab.component.ts","../../src/lib/icon/icon-registry.ts","../../src/lib/icon/icon.component.ts","../../src/lib/avatar/avatar.component.ts","../../src/lib/badge/badge.component.ts","../../src/lib/i18n/i18n.token.ts","../../src/lib/i18n/i18n.service.ts","../../src/lib/split-button/split-button.component.ts","../../src/lib/icon/icon-provider.ts","../../src/lib/breakpoint/breakpoints.generated.ts","../../src/lib/breakpoint/breakpoint.service.ts","../../src/lib/i18n/i18n.provider.ts","../../src/lib/i18n/messages.ts","../../src/lib/chip/chip.component.ts","../../src/lib/spinner/spinner.component.ts","../../src/lib/progress/progress.component.ts","../../src/lib/skeleton/skeleton.component.ts","../../src/lib/form-field/form-field-control.ts","../../src/lib/form-field/form-field.component.html","../../src/lib/form-field/form-field.component.ts","../../src/lib/input/input.component.ts","../../src/lib/input/input.component.html","../../src/lib/checkbox/checkbox.component.ts","../../src/lib/switch/switch.component.ts","../../src/lib/switch-group/switch-group.component.ts","../../src/lib/radio-group/radio-group.component.ts","../../src/lib/select/select.component.html","../../src/lib/select/select.component.ts","../../src/lib/i18n/intl.ts","../../src/lib/datepicker/clock.component.ts","../../src/lib/datepicker/datepicker.component.html","../../src/lib/datepicker/datepicker.component.ts","../../src/lib/textarea/textarea.component.ts","../../src/lib/tooltip/tooltip.directive.ts","../../src/lib/rich-text/rich-text.component.html","../../src/lib/rich-text/rich-text.component.ts","../../src/lib/slider/slider.component.ts","../../src/lib/rating/rating.component.ts","../../src/lib/file-upload/file-upload.component.ts","../../src/lib/color-picker/color-picker.component.ts","../../src/lib/date-range/date-range.component.html","../../src/lib/date-range/date-range.component.ts","../../src/lib/input-number/input-number.component.ts","../../src/lib/password/password.component.ts","../../src/lib/input-otp/input-otp.component.ts","../../src/lib/chips-input/chips-input.component.ts","../../src/lib/input-mask/input-mask.component.ts","../../src/lib/listbox/listbox.component.ts","../../src/lib/knob/knob.component.ts","../../src/lib/card/card.component.html","../../src/lib/card/card.component.ts","../../src/lib/divider/divider.component.ts","../../src/lib/toolbar/toolbar.component.ts","../../src/lib/sidenav/sidenav.component.ts","../../src/lib/app-shell/app-shell.component.ts","../../src/lib/app-shell/app-shell.component.html","../../src/lib/app-shell/shell-nav-toggle.directive.ts","../../src/lib/alert/alert.component.ts","../../src/lib/auth/auth-provider.directive.ts","../../src/lib/auth/auth.component.html","../../src/lib/auth/auth.component.ts","../../src/lib/panel/panel.component.ts","../../src/lib/fieldset/fieldset.component.ts","../../src/lib/splitter/splitter.component.ts","../../src/lib/scroll-top/scroll-top.component.ts","../../src/lib/image/image.component.ts","../../src/lib/meter-group/meter-group.component.ts","../../src/lib/avatar-group/avatar-group.component.ts","../../src/lib/empty/empty.component.ts","../../src/lib/tabs/tab.component.ts","../../src/lib/tabs/tabs.component.ts","../../src/lib/accordion/accordion-panel.component.ts","../../src/lib/accordion/accordion.component.ts","../../src/lib/breadcrumb/breadcrumb.component.ts","../../src/lib/stepper/step.component.ts","../../src/lib/stepper/stepper.component.ts","../../src/lib/paginator/paginator.component.html","../../src/lib/paginator/paginator.component.ts","../../src/lib/data-table/cell.directive.ts","../../src/lib/data-table/cell-edit.directive.ts","../../src/lib/data-table/row-detail.directive.ts","../../src/lib/data-table/data-table.component.html","../../src/lib/data-table/data-table.component.ts","../../src/lib/tree/tree.component.ts","../../src/lib/timeline/timeline.component.ts","../../src/lib/carousel/carousel.component.ts","../../src/lib/data-view/data-view.component.ts","../../src/lib/pick-list/pick-list.component.ts","../../src/lib/order-list/order-list.component.ts","../../src/lib/galleria/galleria.component.ts","../../src/lib/dialog/dialog.component.ts","../../src/lib/toast/toast.service.ts","../../src/lib/toast/toast-container.component.ts","../../src/lib/menu/menu.component.ts","../../src/lib/popover/popover.component.ts","../../src/lib/autocomplete/autocomplete.component.ts","../../src/lib/drawer/drawer.component.ts","../../src/lib/context-menu/context-menu.component.ts","../../src/lib/menubar/menubar.component.ts","../../src/lib/megamenu/megamenu.component.ts","../../src/lib/confirm/confirm.service.ts","../../src/lib/confirm/confirm-container.component.ts","../../src/lib/bottom-sheet/bottom-sheet.component.ts","../../src/lib/speed-dial/speed-dial.component.ts","../../src/public-api.ts","../../src/konce-pt-angular.ts"],"sourcesContent":["<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","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nexport type KptButtonVariant = 'filled' | 'tonal' | 'outline' | 'text' | 'danger';\nexport type KptButtonSize = 'sm' | 'md' | 'lg';\n\n/**\n * Przycisk Koncept UI. Renderuje natywny `<button>` (zachowana semantyka i submit\n * formularza). Wygląd sterowany tokenami `--kpt-button-*`.\n *\n * @example\n * <kpt-button variant=\"filled\" (click)=\"save()\">Zapisz</kpt-button>\n * <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"busy()\">Anuluj</kpt-button>\n */\n@Component({\n selector: 'kpt-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n host: {\n class: 'kpt-button-host',\n '[class.kpt-button-host--full]': 'fullWidth()',\n },\n})\nexport class KptButton {\n /** Wariant wizualny. */\n readonly variant = input<KptButtonVariant>('filled');\n /** Rozmiar. */\n readonly size = input<KptButtonSize>('md');\n /** Typ natywnego przycisku (istotne w formularzach). */\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** Wyłączony. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Stan ładowania — pokazuje spinner i blokuje interakcję. */\n readonly loading = input(false, { transform: booleanAttribute });\n /** Rozciągnięcie na całą szerokość kontenera. */\n readonly fullWidth = input(false, { transform: booleanAttribute });\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\nimport type { KptButtonVariant, KptButtonSize } from '../button/button.component';\n\n/**\n * Przycisk ikonowy (tylko ikona). Wymaga `ariaLabel` dla dostępności.\n *\n * @example\n * <kpt-icon-button ariaLabel=\"Ustawienia\"><kpt-icon name=\"menu\" /></kpt-icon-button>\n * <kpt-icon-button variant=\"filled\" shape=\"square\" ariaLabel=\"Usuń\"><kpt-icon name=\"x\" /></kpt-icon-button>\n */\n@Component({\n selector: 'kpt-icon-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n class=\"kpt-icon-button\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-pressed]=\"ariaPressed()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n >\n @if (loading()) {\n <span class=\"kpt-icon-button__spinner\" aria-hidden=\"true\"></span>\n } @else {\n <ng-content />\n }\n </button>\n `,\n styleUrl: './icon-button.component.scss',\n host: { class: 'kpt-icon-button-host' },\n})\nexport class KptIconButton {\n readonly variant = input<KptButtonVariant>('text');\n readonly size = input<KptButtonSize>('md');\n readonly shape = input<'round' | 'square'>('round');\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /** Etykieta dostępności (wymagana — przycisk nie ma tekstu). */\n readonly ariaLabel = input.required<string>();\n /**\n * Stan wciśnięcia dla przycisku przełącznika (gwiazdka „w ulubionych\", pauza, filtr).\n * Musi zjechać na wewnętrzny `<button>`: `[attr.aria-pressed]` postawione na\n * `<kpt-icon-button>` ląduje na hoście, który nie ma roli przycisku — czytnik nie ma\n * wtedy czego ogłosić. `null` (domyślnie) nie wypisuje atrybutu w ogóle.\n */\n readonly ariaPressed = input<boolean | null>(null);\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Segmentowana grupa przycisków (toggle) — pojedynczy wybór z opcji. Signal Forms.\n *\n * @example\n * <kpt-button-group [(value)]=\"view\" [options]=\"[{label:'Lista',value:'list'},{label:'Siatka',value:'grid'}]\" />\n * <kpt-button-group [formField]=\"f.period\" [options]=\"periods\" />\n */\n@Component({\n selector: 'kpt-button-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-button-group\" role=\"group\" [attr.data-size]=\"size()\">\n @for (opt of options(); track opt.value) {\n <button\n type=\"button\"\n class=\"kpt-button-group__item\"\n [class.is-active]=\"opt.value === value()\"\n [disabled]=\"disabled() || opt.disabled\"\n [attr.aria-pressed]=\"opt.value === value()\"\n (click)=\"select(opt)\"\n >{{ opt.label }}</button>\n }\n </div>\n `,\n styleUrl: './button-group.component.scss',\n host: { class: 'kpt-button-group-host' },\n})\nexport class KptButtonGroup<T = unknown> implements FormValueControl<T> {\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly value = model<T>(undefined as T);\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected select(opt: KptOption<T>): void {\n if (opt.disabled || this.disabled()) return;\n this.value.set(opt.value);\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\n/**\n * Floating Action Button (FAB) — okrągły, wyniesiony przycisk akcji. Wariant `extended` = pigułka z tekstem.\n *\n * @example\n * <kpt-fab ariaLabel=\"Dodaj\"><kpt-icon name=\"plus\" /></kpt-fab>\n * <kpt-fab extended><kpt-icon name=\"plus\" /> Nowy</kpt-fab>\n */\n@Component({\n selector: 'kpt-fab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n class=\"kpt-fab\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [class.kpt-fab--extended]=\"extended()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"extended() ? null : ariaLabel()\"\n ><ng-content /></button>\n `,\n styleUrl: './fab.component.scss',\n host: { class: 'kpt-fab-host' },\n})\nexport class KptFab {\n readonly variant = input<'filled' | 'tonal'>('filled');\n readonly size = input<'md' | 'mini'>('md');\n readonly extended = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** Wymagane dla wariantu okrągłego (bez tekstu). */\n readonly ariaLabel = input('');\n}\n","import { Injectable, signal } from '@angular/core';\nimport { KPT_ICONS, sanitizeSvgFragment, toKptIconRecord, type KptIconInput } from '@konce-pt/icons';\n\nexport { renderKptIconSvg } from '@konce-pt/icons';\n\n/**\n * Rejestr ikon dla `kpt-icon`. Zawiera wbudowany zestaw (używany przez komponenty).\n * Aby dodać pełny zestaw Tabler (5130 ikon), użyj `provideKptTablerIcons()`\n * z `@konce-pt/angular/icons` lub zarejestruj własne przez `register()`.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptIconRegistry {\n private readonly icons = new Map<string, string>(Object.entries(KPT_ICONS));\n private readonly _version = signal(0);\n /** Rośnie po każdej rejestracji — pozwala `kpt-icon` reagować na późne dodanie ikon. */\n readonly version = this._version.asReadonly();\n\n /**\n * Rejestruje (lub nadpisuje) ikony. Przyjmuje listę definicji z subpathu Tablera\n * (`[Rocket, LayoutDashboard]`), obiekt definicji (np. `import * as tabler`) albo\n * mapę `{ nazwa: 'inner svg' }` — patrz [[KptIconInput]].\n *\n * Treść jest sanityzowana do allowlisty geometrii SVG (`path`/`circle`/`rect`/`g`/`line`/\n * `polygon`/`polyline`/`ellipse` i ich atrybutów kształtu/stylu) — mimo to `register()` wolno\n * wołać wyłącznie z treścią kontrolowaną przez developera (build-time), nigdy bezpośrednio\n * z danych runtime/CMS/uploadu bez własnej walidacji domenowej wyżej w stosie.\n */\n register(icons: KptIconInput): void {\n for (const [name, svg] of Object.entries(toKptIconRecord(icons))) {\n this.icons.set(name, sanitizeSvgFragment(svg));\n }\n this._version.update((v) => v + 1);\n }\n\n /** Zwraca wewnętrzny SVG ikony lub undefined. */\n get(name: string): string | undefined {\n return this.icons.get(name);\n }\n\n has(name: string): boolean {\n return this.icons.has(name);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, effect, inject, input } from '@angular/core';\r\nimport { KptIconRegistry, renderKptIconSvg } from './icon-registry';\r\n\r\n/**\r\n * Ikona Koncept UI (inline SVG, zestaw Tabler Icons — MIT). Rozmiar dziedziczy z `font-size`\r\n * (1em) lub ustaw `size`; kolor z `currentColor`. Ikona musi być w rejestrze\r\n * ([[KptIconRegistry]]) — wbudowany zestaw działa od razu, pełny zestaw dodaje\r\n * `provideKptTablerIcons()` z `@konce-pt/angular/icons`.\r\n *\r\n * @example\r\n * <kpt-icon name=\"menu\" />\r\n * <kpt-icon name=\"check\" size=\"1.25rem\" />\r\n */\r\n@Component({\r\n selector: 'kpt-icon',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n template: '',\r\n styleUrl: './icon.component.scss',\r\n host: {\r\n class: 'kpt-icon-host',\r\n 'aria-hidden': 'true',\r\n '[style.font-size]': 'size() || null',\r\n },\r\n})\r\nexport class KptIcon {\r\n /** Nazwa ikony z rejestru (wbudowana lub zarejestrowana). */\r\n readonly name = input.required<string>();\r\n /** Rozmiar jako długość CSS (np. '1.25rem'); domyślnie dziedziczy z font-size. */\r\n readonly size = input<string>('');\r\n\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly registry = inject(KptIconRegistry);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.registry.version(); // reaguj na późną rejestrację ikon\r\n // Treść pochodzi z zaufanego rejestru — bezpośredni innerHTML bez sanitizera.\r\n this.host.nativeElement.innerHTML = renderKptIconSvg(this.registry.get(this.name()));\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptAvatarSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type KptAvatarShape = 'circle' | 'square';\n\n/**\n * Awatar — obraz, inicjały (z `name`) lub ikona.\n *\n * `name` trafia do natywnego `title` (podpowiedź spod kursora — inicjały same w sobie\n * nie mówią, kto to jest). Bez `src` awatar dostaje dodatkowo `role=\"img\"` i `aria-label`,\n * a same inicjały są `aria-hidden`, żeby czytnik nie przeczytał „AK\" litera po literze.\n * Przy `src` etykietę niesie już `alt` obrazu — nie dublujemy jej.\n *\n * @example\n * <kpt-avatar src=\"/u/anna.jpg\" />\n * <kpt-avatar name=\"Anna Kowalska\" size=\"lg\" />\n * <kpt-avatar icon=\"user\" shape=\"square\" />\n */\n@Component({\n selector: 'kpt-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <span\n class=\"kpt-avatar\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [attr.title]=\"name() || null\"\n [attr.role]=\"!src() && name() ? 'img' : null\"\n [attr.aria-label]=\"!src() && name() ? name() : null\"\n >\n @if (src()) {\n <img class=\"kpt-avatar__img\" [src]=\"src()\" [alt]=\"name() || ''\" />\n } @else if (name()) {\n <span class=\"kpt-avatar__initials\" aria-hidden=\"true\">{{ initials() }}</span>\n } @else if (icon()) {\n <kpt-icon [name]=\"icon()!\" />\n }\n </span>\n `,\n styleUrl: './avatar.component.scss',\n host: { class: 'kpt-avatar-host' },\n})\nexport class KptAvatar {\n readonly src = input<string | null>(null);\n readonly name = input<string>('');\n readonly icon = input<string | null>(null);\n readonly size = input<KptAvatarSize>('md');\n readonly shape = input<KptAvatarShape>('circle');\n\n protected readonly initials = computed(() =>\n this.name()\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((w) => w[0]?.toUpperCase() ?? '')\n .join(''),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport type KptBadgeVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\nexport type KptBadgeSize = 'sm' | 'md' | 'lg';\n\n/**\n * Znacznik (badge) — licznik lub kropka statusu. Standalone lub nałożony na treść (`overlay`).\n *\n * @example\n * <kpt-badge [value]=\"3\" variant=\"danger\" />\n * <kpt-badge [value]=\"4\" size=\"sm\" variant=\"success\" />\n * <kpt-badge [value]=\"128\" overlay><kpt-icon name=\"menu\" /></kpt-badge>\n * <kpt-badge dot variant=\"success\" overlay><kpt-avatar name=\"AK\" /></kpt-badge>\n */\n@Component({\n selector: 'kpt-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content />\n <span\n class=\"kpt-badge\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [class.kpt-badge--overlay]=\"overlay()\"\n [class.kpt-badge--dot]=\"dot()\"\n >{{ dot() ? '' : display() }}</span>\n `,\n styleUrl: './badge.component.scss',\n host: { class: 'kpt-badge-host' },\n})\nexport class KptBadge {\n readonly value = input<string | number | null>(null);\n readonly variant = input<KptBadgeVariant>('primary');\n /** Rozmiar — `sm` mieści się w wierszu tekstu, `md` to domyślny licznik. */\n readonly size = input<KptBadgeSize>('md');\n readonly dot = input(false, { transform: booleanAttribute });\n readonly overlay = input(false, { transform: booleanAttribute });\n readonly max = input(99);\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (typeof v === 'number' && v > this.max()) return `${this.max()}+`;\n return v ?? '';\n });\n}\n","import { InjectionToken } from '@angular/core';\nimport type { KptI18nConfig } from '@konce-pt/i18n';\n\nexport type { DeepPartial, KptI18nConfig } from '@konce-pt/i18n';\n\n/** Token konfiguracji i18n. Konsumowany przez `KptI18n`. */\nexport const KPT_I18N_CONFIG = new InjectionToken<KptI18nConfig>('KPT_I18N_CONFIG');\n","import { Injectable, computed, inject, signal } from '@angular/core';\nimport { KPT_MESSAGES_EN, KPT_MESSAGES_PL, deepMerge, translate } from '@konce-pt/i18n';\nimport type { DeepPartial, KptLocale, KptMessages } from '@konce-pt/i18n';\nimport { KPT_I18N_CONFIG } from './i18n.token';\n\n/**\n * Serwis tłumaczeń Koncept UI. Trzyma rejestr słowników per język, bieżący locale\n * (sygnał) i funkcję `t()` z interpolacją. Skonfiguruj przez `provideKptI18n(...)`.\n *\n * Domyślnie EN. Języki bazowe: EN, PL. Dowolny inny język dodaje się jednym\n * słownikiem (`registerMessages` lub `provideKptI18n({ messages: { de } })`);\n * brakujące klucze spadają na EN.\n *\n * Rdzeń (`deepMerge`, `translate`) żyje w `@konce-pt/i18n` — ten sam, którego\n * używa port React, więc oba frameworki tłumaczą identycznie.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptI18n {\n /** Rejestr słowników: język → pełny `KptMessages`. */\n private readonly registry = new Map<KptLocale, KptMessages>([\n ['en', KPT_MESSAGES_EN],\n ['pl', KPT_MESSAGES_PL],\n ]);\n\n private readonly _locale = signal<KptLocale>('en');\n /** Bieżący język (tylko do odczytu). */\n readonly locale = this._locale.asReadonly();\n\n /** Aktywny słownik (z fallbackiem na EN, gdy język nieznany). */\n readonly messages = computed<KptMessages>(() => this.registry.get(this._locale()) ?? KPT_MESSAGES_EN);\n\n constructor() {\n const config = inject(KPT_I18N_CONFIG, { optional: true });\n if (config?.messages) {\n for (const [locale, patch] of Object.entries(config.messages)) {\n this.registerMessages(locale, patch);\n }\n }\n if (config?.locale) this._locale.set(config.locale);\n }\n\n /** Ustawia bieżący język. Zmiana jest reaktywna dla wszystkich komponentów. */\n setLocale(locale: KptLocale): void {\n this._locale.set(locale);\n }\n\n /**\n * Rejestruje lub nadpisuje słownik języka. Częściowy słownik deep-merge'uje się\n * na istniejący (lub EN dla nowego języka) → brakujące klucze mają wartość EN.\n */\n registerMessages(locale: KptLocale, patch: DeepPartial<KptMessages>): void {\n const base = this.registry.get(locale) ?? KPT_MESSAGES_EN;\n this.registry.set(locale, deepMerge(base, patch));\n }\n\n /**\n * Tłumaczy klucz w notacji kropkowej (np. `'paginator.range'`), z opcjonalną\n * interpolacją `{name}`. Brakujący klucz spada na EN, a w ostateczności zwraca sam klucz.\n */\n t(key: string, params?: Record<string, string | number>): string {\n return translate(this.messages(), key, params);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge } from '../badge/badge.component';\nimport type { KptButtonVariant } from '../button/button.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Przycisk dzielony (split button) — akcja główna + rozwijane menu dodatkowych akcji.\n * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-split-button [items]=\"items\" (primaryClick)=\"save()\" (selected)=\"onItem($event)\">Zapisz</kpt-split-button>\n */\n@Component({\n selector: 'kpt-split-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon],\n template: `\n <div class=\"kpt-split-button\" [attr.data-variant]=\"variant()\">\n <button class=\"kpt-split-button__main\" type=\"button\" [disabled]=\"disabled()\" (click)=\"primaryClick.emit()\">\n <ng-content />\n </button>\n <button\n class=\"kpt-split-button__toggle\"\n type=\"button\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [disabled]=\"disabled()\"\n (click)=\"open.set(!open())\"\n [attr.aria-label]=\"i18n.t('splitButton.more')\"\n ><kpt-icon name=\"chevron-down\" /></button>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"open.set(false)\"\n >\n <div class=\"kpt-split-button__panel\" role=\"menu\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-split-button__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-split-button__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-split-button__text\">\n @if (item.label) { <span class=\"kpt-split-button__label\">{{ item.label }}</span> }\n @if (item.description) {\n <span class=\"kpt-split-button__description\">{{ item.description }}</span>\n }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-split-button__item\"\n [class.kpt-split-button__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-split-button__text\">\n <span class=\"kpt-split-button__label\">{{ item.label }}</span>\n @if (item.description) {\n <span class=\"kpt-split-button__description\">{{ item.description }}</span>\n }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge\n class=\"kpt-split-button__badge\"\n [value]=\"item.badge\"\n [variant]=\"item.badgeVariant ?? 'primary'\"\n />\n }\n </button>\n }\n }\n </div>\n </ng-template>\n `,\n styleUrl: './split-button.component.scss',\n host: { class: 'kpt-split-button-host' },\n})\nexport class KptSplitButton<T = unknown> {\n readonly variant = input<KptButtonVariant>('filled');\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly primaryClick = output<void>();\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.open.set(false);\n }\n}\n","import { EnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\nimport type { KptIconInput } from '@konce-pt/icons';\nimport { KptIconRegistry } from './icon-registry';\n\n/**\n * Rejestruje wskazane ikony w [[KptIconRegistry]] — jedno wywołanie, jeden parametr.\n *\n * Stoi w rdzeniu, a nie w subpathu `@konce-pt/angular/icons`, i to jest cała różnica:\n * tamten moduł importuje `KPT_TABLER_ICONS` statycznie, więc każde jego użycie wciąga\n * komplet 5130 ikon (~1,2 MB). Tutaj dane przychodzą argumentem, czyli o zawartości bundla\n * decyduje `import` w aplikacji — a ikony Tablera są osobnymi eksportami, więc bundler\n * zostawia dokładnie te, po które sięgnięto.\n *\n * @example\n * // Produkcja: do bundla wchodzą dwie ikony.\n * import { LayoutDashboard, Rocket } from '@konce-pt/icons/tabler';\n * bootstrapApplication(App, { providers: [provideKptIcons([LayoutDashboard, Rocket])] });\n *\n * @example\n * // Własne ikony aplikacji, dotychczasowy kształt mapy.\n * provideKptIcons({ logo: '<path d=\"…\" />' });\n */\nexport function provideKptIcons(icons: KptIconInput): EnvironmentProviders {\n return provideAppInitializer(() => {\n inject(KptIconRegistry).register(icons);\n });\n}\n","// Do not edit directly — generated by scripts/gen-tokens.mjs\n// from @konce-pt/tokens (tokens/primitives/breakpoint.json).\n\n/** Nazwa breakpointa z tokenów `--kpt-breakpoint-*` (mobile-first). */\nexport type KptBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n/** Progi breakpointów w pikselach — te same wartości, z których korzystają `@media` biblioteki. */\nexport const KPT_BREAKPOINTS: Record<KptBreakpoint, number> = {\n 'sm': 640,\n 'md': 768,\n 'lg': 1024,\n 'xl': 1280,\n '2xl': 1536,\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { DestroyRef, Injectable, PLATFORM_ID, type Signal, inject, signal } from '@angular/core';\nimport { KPT_BREAKPOINTS, type KptBreakpoint } from './breakpoints.generated';\n\n/**\n * Obserwator breakpointów oparty na `matchMedia`, spięty z tokenami `--kpt-breakpoint-*`.\n * Zwraca sygnały, więc czyta się go tak samo w `computed`, w szablonie i w `effect`.\n *\n * Zapytania są memoizowane per string: `up('lg')` wywołane w wielu komponentach dzieli\n * jeden `MediaQueryList` i jeden nasłuch.\n *\n * Poza przeglądarką (SSR, prerender) każdy sygnał to stałe `false`. Dlatego **układ**\n * komponentów biblioteki nigdy nie zależy od tego serwisu — o tym, jak wygląda strona,\n * decyduje CSS, żeby nic nie migotało przed hydracją. Serwis odpowiada za zachowania,\n * których CSS nie wyrazi (np. w którą stronę ma zadziałać przycisk).\n *\n * @example\n * private readonly breakpoints = inject(KptBreakpointObserver);\n * readonly isDesktop = this.breakpoints.up('lg');\n */\n@Injectable({ providedIn: 'root' })\nexport class KptBreakpointObserver {\n // Sam `isPlatformBrowser` nie wystarcza: jsdom (testy jednostkowe aplikacji) melduje się jako\n // przeglądarka, ale nie implementuje `matchMedia` — bez sprawdzenia metody pierwszy render\n // komponentu na `KptAppShell` wywala się na TypeError.\n private readonly canObserve =\n isPlatformBrowser(inject(PLATFORM_ID)) && typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n private readonly destroyRef = inject(DestroyRef);\n private readonly cache = new Map<string, Signal<boolean>>();\n\n /** Dowolne media query jako sygnał. */\n matches(query: string): Signal<boolean> {\n const cached = this.cache.get(query);\n if (cached) return cached;\n\n const result = this.canObserve ? this.observe(query) : signal(false).asReadonly();\n this.cache.set(query, result);\n return result;\n }\n\n /** Czy viewport ma szerokość co najmniej danego breakpointa (mobile-first). */\n up(breakpoint: KptBreakpoint): Signal<boolean> {\n return this.matches(`(min-width: ${KPT_BREAKPOINTS[breakpoint]}px)`);\n }\n\n /**\n * Czy viewport jest węższy niż dany breakpoint. Próg schodzi o 0.02px, żeby pasma\n * `up`/`down` nie nakładały się na ułamkowych szerokościach okna (zoom, DPI).\n */\n down(breakpoint: KptBreakpoint): Signal<boolean> {\n return this.matches(`(max-width: ${KPT_BREAKPOINTS[breakpoint] - 0.02}px)`);\n }\n\n private observe(query: string): Signal<boolean> {\n const list = window.matchMedia(query);\n const state = signal(list.matches);\n const onChange = (event: MediaQueryListEvent): void => state.set(event.matches);\n\n list.addEventListener('change', onChange);\n this.destroyRef.onDestroy(() => list.removeEventListener('change', onChange));\n\n return state.asReadonly();\n }\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { KPT_I18N_CONFIG, type KptI18nConfig } from './i18n.token';\n\n/**\n * Konfiguruje i18n Koncept UI. Ustawia język początkowy i rejestruje/nadpisuje\n * słowniki. Języki bazowe (EN, PL) są dostępne bez konfiguracji.\n *\n * @example\n * // main.ts — polski interfejs\n * bootstrapApplication(App, {\n * providers: [provideKptI18n({ locale: 'pl' })],\n * });\n *\n * @example\n * // Własny język jednym plikiem JSON (brakujące klucze → EN)\n * import de from './i18n/de.json';\n * provideKptI18n({ locale: 'de', messages: { de } });\n *\n * @example\n * // Nadpisanie pojedynczych etykiet istniejącego języka\n * provideKptI18n({ messages: { en: { paginator: { rowsPerPage: 'Rows per page:' } } } });\n */\nexport function provideKptI18n(config: KptI18nConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: KPT_I18N_CONFIG, useValue: config }]);\n}\n","/*\n * Re-eksport kontraktu tłumaczeń z `@konce-pt/i18n`.\n *\n * Słowniki i typy żyją w osobnym pakiecie pure-TS, żeby port React korzystał\n * z tego samego źródła prawdy. Ten plik trzyma dotychczasową ścieżkę importu,\n * dzięki czemu komponenty i `public-api.ts` nie musiały się zmieniać.\n */\n\nexport { KPT_MESSAGES_EN, KPT_MESSAGES_PL } from '@konce-pt/i18n';\nexport type { KptLocale, KptMessages } from '@konce-pt/i18n';\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, output } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptChipVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\n\n/**\n * Chip / tag — etykieta, opcjonalnie usuwalna.\n *\n * @example\n * <kpt-chip>Angular</kpt-chip>\n * <kpt-chip variant=\"success\" removable (removed)=\"onRemove()\">UI</kpt-chip>\n */\n@Component({\n selector: 'kpt-chip',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <span class=\"kpt-chip\" [attr.data-variant]=\"variant()\" [class.kpt-chip--disabled]=\"disabled()\">\n <ng-content />\n @if (removable()) {\n <button\n type=\"button\"\n class=\"kpt-chip__remove\"\n [disabled]=\"disabled()\"\n (click)=\"removed.emit()\"\n [attr.aria-label]=\"i18n.t('common.remove')\"\n ><kpt-icon name=\"x\" /></button>\n }\n </span>\n `,\n styleUrl: './chip.component.scss',\n host: { class: 'kpt-chip-host' },\n})\nexport class KptChip {\n readonly variant = input<KptChipVariant>('neutral');\n readonly removable = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly removed = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Wskaźnik ładowania (spinner). Kolor z `currentColor`.\n *\n * @example\n * <kpt-spinner />\n * <kpt-spinner size=\"2rem\" label=\"Wczytywanie danych\" />\n */\n@Component({\n selector: 'kpt-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<span class=\"kpt-spinner\" role=\"status\" [attr.aria-label]=\"effectiveLabel()\" [style.width]=\"size()\" [style.height]=\"size()\"></span>`,\n styleUrl: './spinner.component.scss',\n host: { class: 'kpt-spinner-host' },\n})\nexport class KptSpinner {\n readonly size = input('1.5rem');\n /** Etykieta a11y; bez wartości używa i18n (`spinner.label`). */\n readonly label = input<string>();\n\n private readonly i18n = inject(KptI18n);\n protected readonly effectiveLabel = computed(() => this.label() ?? this.i18n.t('spinner.label'));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport type KptProgressVariant = 'primary' | 'success' | 'danger' | 'warning' | 'info';\n\n/**\n * Wskaźnik postępu — liniowy lub kołowy, określony (0–100) lub nieokreślony (`value` = null).\n *\n * @example\n * <kpt-progress [value]=\"60\" />\n * <kpt-progress type=\"circular\" [value]=\"75\" variant=\"success\" />\n * <kpt-progress [value]=\"null\" /> <!-- indeterminate -->\n */\n@Component({\n selector: 'kpt-progress',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (type() === 'circular') {\n <svg\n class=\"kpt-progress__circular\"\n [class.kpt-progress--indeterminate]=\"value() == null\"\n [attr.data-variant]=\"variant()\"\n [attr.width]=\"diameter()\"\n [attr.height]=\"diameter()\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value()\"\n >\n <circle class=\"kpt-progress__track\" cx=\"20\" cy=\"20\" r=\"16\" />\n <circle\n class=\"kpt-progress__bar\"\n cx=\"20\"\n cy=\"20\"\n r=\"16\"\n [style.stroke-dasharray]=\"circumference\"\n [style.stroke-dashoffset]=\"offset()\"\n />\n </svg>\n } @else {\n <div class=\"kpt-progress__linear\" [attr.data-variant]=\"variant()\" role=\"progressbar\" [attr.aria-valuenow]=\"value()\">\n <div class=\"kpt-progress__bar\" [class.kpt-progress--indeterminate]=\"value() == null\" [style.width.%]=\"value() ?? 0\"></div>\n </div>\n }\n `,\n styleUrl: './progress.component.scss',\n host: { class: 'kpt-progress-host' },\n})\nexport class KptProgress {\n /** 0–100 lub null = nieokreślony. */\n readonly value = input<number | null>(null);\n readonly variant = input<KptProgressVariant>('primary');\n readonly type = input<'linear' | 'circular'>('linear');\n readonly diameter = input(40);\n\n protected readonly circumference = 2 * Math.PI * 16;\n protected readonly offset = computed(() => {\n const v = this.value();\n if (v == null) return this.circumference * 0.75;\n return this.circumference * (1 - Math.min(100, Math.max(0, v)) / 100);\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport type KptSkeletonVariant = 'text' | 'circle' | 'rect';\n\n/**\n * Placeholder ładowania (skeleton) z animacją shimmer.\n *\n * @example\n * <kpt-skeleton variant=\"text\" [lines]=\"3\" />\n * <kpt-skeleton variant=\"circle\" width=\"3rem\" height=\"3rem\" />\n * <kpt-skeleton variant=\"rect\" width=\"100%\" height=\"8rem\" />\n */\n@Component({\n selector: 'kpt-skeleton',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (variant() === 'text') {\n @for (line of lineArray(); track $index; let last = $last) {\n <span class=\"kpt-skeleton kpt-skeleton--text\" [style.width]=\"last ? '60%' : width()\"></span>\n }\n } @else {\n <span class=\"kpt-skeleton\" [attr.data-variant]=\"variant()\" [style.width]=\"width()\" [style.height]=\"height()\"></span>\n }\n `,\n styleUrl: './skeleton.component.scss',\n host: { class: 'kpt-skeleton-host', 'aria-hidden': 'true' },\n})\nexport class KptSkeleton {\n readonly variant = input<KptSkeletonVariant>('rect');\n readonly width = input('100%');\n readonly height = input('1rem');\n readonly lines = input(3);\n\n protected readonly lineArray = computed(() => Array.from({ length: this.lines() }));\n}\n","import { InjectionToken, type Signal } from '@angular/core';\n\n/**\n * Kontrakt kontrolki dla `kpt-form-field`. Wypełnienie pola (`filled`) steruje uniesieniem\n * etykiety w wariantach Float Label (`over`/`in`/`on`).\n *\n * Kontrolki oparte na natywnym `input`/`textarea` nie muszą nic dostarczać — `kpt-form-field`\n * odczytuje ich `value` bezpośrednio z DOM. Kontrolki bez natywnego pola (np. `kpt-select`,\n * którego panel żyje w overlayu) muszą dostarczyć ten token, inaczej etykieta zostanie\n * na wartości zamiast unieść się nad nią.\n *\n * @example\n * providers: [{ provide: KPT_FORM_FIELD_CONTROL, useExisting: forwardRef(() => KptSelect) }]\n */\nexport interface KptFormFieldControl {\n /** Czy kontrolka ma wartość. Sygnał — `kpt-form-field` reaguje na zmiany bez zdarzeń DOM. */\n readonly filled: Signal<boolean>;\n}\n\n/** Token DI, przez który kontrolka zgłasza `kpt-form-field` swój stan wypełnienia. */\nexport const KPT_FORM_FIELD_CONTROL = new InjectionToken<KptFormFieldControl>('KPT_FORM_FIELD_CONTROL');\n","<div\n class=\"kpt-form-field\"\n [class]=\"'kpt-form-field--' + labelType()\"\n [class.kpt-form-field--float]=\"labelType() !== 'fixed'\"\n [class.kpt-form-field--invalid]=\"!!error()\"\n>\n <div class=\"kpt-form-field__box\" [class.is-filled]=\"filled()\">\n @if (label()) {\n <!-- Bez znaku nowej linii wokół `@if`: Angular zostawiłby tam węzeł tekstowy ze spacją,\n przez co gwiazdka odsuwałaby się inaczej niż w porcie React (JSX taki węzeł usuwa).\n Odstęp daje wyłącznie `margin-inline-start` na `.kpt-form-field__required`. -->\n <label class=\"kpt-form-field__label\" [attr.for]=\"controlId() || null\"\n >{{ label() }}@if (required()) {<span class=\"kpt-form-field__required\" aria-hidden=\"true\">*</span>}</label\n >\n }\n\n <div class=\"kpt-form-field__control\">\n <ng-content />\n </div>\n </div>\n\n @if (error()) {\n <p class=\"kpt-form-field__message kpt-form-field__message--error\" role=\"alert\">{{ error() }}</p>\n } @else if (hint()) {\n <p class=\"kpt-form-field__message kpt-form-field__message--hint\">{{ hint() }}</p>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { KPT_FORM_FIELD_CONTROL } from './form-field-control';\n\n/**\n * Wrapper pola formularza: etykieta, podpowiedź i komunikat błędu wokół dowolnej\n * kontrolki (np. `kpt-input`). Prezentacyjny — stan błędu przekazuje się przez `error`\n * (zwykle z pola Signal Forms). Wygląd sterowany tokenami `--kpt-form-field-*`.\n *\n * Etykieta ma 4 warianty (`labelType`): `fixed` (domyślny, nad kontrolką) oraz trzy warianty\n * unoszącej się etykiety (Float Label) z animowanym przejściem: `over` (nad obramowaniem),\n * `in` (u góry wewnątrz pola) i `on` (na obramowaniu, notch). Uniesienie następuje przy focusie\n * (CSS `:focus-within`) lub gdy pole jest wypełnione (wykrywane po zdarzeniach `input`/`change`\n * oraz wartości początkowej) — bez wymogu placeholdera na kontrolce. Kontrolki bez natywnego\n * `input`/`textarea` (np. `kpt-select`) zgłaszają wypełnienie tokenem `KPT_FORM_FIELD_CONTROL`.\n *\n * @example\n * <kpt-form-field label=\"E-mail\" [error]=\"emailError()\" hint=\"Firmowy adres\">\n * <kpt-input [formField]=\"f.email\" type=\"email\" />\n * </kpt-form-field>\n *\n * @example\n * <kpt-form-field label=\"E-mail\" labelType=\"over\">\n * <kpt-input />\n * </kpt-form-field>\n */\n@Component({\n selector: 'kpt-form-field',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './form-field.component.html',\n styleUrl: './form-field.component.scss',\n host: {\n class: 'kpt-form-field-host',\n '(input)': 'updateFilled()',\n '(change)': 'updateFilled()',\n },\n})\nexport class KptFormField {\n /** Tekst etykiety. */\n readonly label = input<string>('');\n /** Podpowiedź pod kontrolką (ukrywana, gdy jest błąd). */\n readonly hint = input<string>('');\n /** Komunikat błędu — gdy niepusty, pole jest oznaczone jako nieprawidłowe. */\n readonly error = input<string | null>(null);\n /** Oznacz pole jako wymagane (gwiazdka przy etykiecie). */\n readonly required = input(false, { transform: booleanAttribute });\n /** Id kontrolki dla powiązania `label[for]`. */\n readonly controlId = input<string>('');\n /**\n * Wariant etykiety: `fixed` (domyślnie, statyczna nad kontrolką) lub Float Label —\n * `over` (nad obramowaniem), `in` (u góry wewnątrz pola), `on` (na obramowaniu, notch).\n * Uniesienie następuje przy focusie lub wypełnieniu pola.\n */\n readonly labelType = input<'fixed' | 'over' | 'in' | 'on'>('fixed');\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Kontrolka bez natywnego `input`/`textarea` (np. `kpt-select`) zgłasza wypełnienie sama,\n * przez token `KPT_FORM_FIELD_CONTROL` — jej wartość nie da się odczytać z DOM.\n */\n private readonly control = contentChild(KPT_FORM_FIELD_CONTROL, { descendants: true });\n /** Wypełnienie odczytane z natywnej kontrolki (zdarzenia `input`/`change` + wartość początkowa). */\n private readonly nativeFilled = signal(false);\n\n /** Czy projektowana kontrolka ma wartość — steruje uniesieniem etykiety w wariantach float. */\n protected readonly filled = computed(() => this.control()?.filled() ?? this.nativeFilled());\n\n constructor() {\n // Wartość początkowa (np. pole prefill) — po pierwszym renderze projekcji.\n afterNextRender(() => this.updateFilled());\n }\n\n /** Odczytuje wartość projektowanego `input`/`textarea` i aktualizuje stan `filled`. */\n protected updateFilled(): void {\n const el = this.host.nativeElement.querySelector<HTMLInputElement | HTMLTextAreaElement>(\n '.kpt-form-field__control input, .kpt-form-field__control textarea',\n );\n this.nativeFilled.set(!!el && el.value !== '');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type {\n FormValueControl,\n ValidationError,\n WithOptionalFieldTree,\n} from '@angular/forms/signals';\n\nexport type KptInputType =\n | 'text'\n | 'email'\n | 'password'\n | 'number'\n | 'search'\n | 'tel'\n | 'url'\n | 'time';\n\nlet nextUniqueId = 0;\n\n/**\n * Pole tekstowe Koncept UI zintegrowane z Angular Signal Forms.\n * Implementuje `FormValueControl<string>` — wiąż je dyrektywą `FormField`:\n *\n * <kpt-input [formField]=\"loginForm.email\" type=\"email\" />\n *\n * Stan pola (disabled/readonly/required/invalid/errors/touched) wiąże automatycznie\n * dyrektywa `FormField`. Bez `ControlValueAccessor`. Wygląd: tokeny `--kpt-form-field-*`.\n */\n@Component({\n selector: 'kpt-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n host: {\n class: 'kpt-input-host',\n // id należy wyłącznie do wewnętrznego <input> (powiązanie label[for]); host go nie nosi\n '[attr.id]': 'null',\n },\n})\nexport class KptInput implements FormValueControl<string> {\n /** Wartość pola (wymagane przez kontrakt FormValueControl). */\n readonly value = model<string>('');\n\n // ── Stan wiązany automatycznie przez dyrektywę FormField ──\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly invalid = input<boolean>(false);\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n readonly touched = input<boolean>(false);\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /** Emitowane na `blur` — oznacza pole jako dotknięte. */\n readonly touch = output<void>();\n\n // ── Wejścia prezentacyjne ──\n readonly type = input<KptInputType>('text');\n readonly placeholder = input<string>('');\n readonly id = input<string>(`kpt-input-${++nextUniqueId}`);\n readonly ariaLabel = input<string | null>(null);\n /** Podpowiedź autouzupełniania dla przeglądarki i menedżera haseł (np. 'email', 'current-password'). */\n readonly autocomplete = input<string | null>(null);\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","<input\n class=\"kpt-input__field\"\n [id]=\"id()\"\n [type]=\"type()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.autocomplete]=\"autocomplete()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n/>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\n\n/**\n * Pole wyboru (checkbox) zintegrowane z Signal Forms (`FormCheckboxControl`).\n * Wiąż dyrektywą `FormField`: `<kpt-checkbox [formField]=\"f.terms\" label=\"Akceptuję\" />`.\n */\n@Component({\n selector: 'kpt-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <label class=\"kpt-checkbox\" [class.kpt-checkbox--disabled]=\"disabled()\">\n <input\n type=\"checkbox\"\n class=\"kpt-checkbox__input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (change)=\"checked.set($any($event.target).checked)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-checkbox__box\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" class=\"kpt-checkbox__check\"><path d=\"M13 4.5 6.5 11 3 7.5\" /></svg>\n </span>\n @if (label()) {\n <span class=\"kpt-checkbox__label\">{{ label() }}</span>\n }\n <ng-content />\n </label>\n `,\n styleUrl: './checkbox.component.scss',\n host: { class: 'kpt-checkbox-host' },\n})\nexport class KptCheckbox implements FormCheckboxControl {\n /** Zaznaczenie (wymagane przez kontrakt FormCheckboxControl). */\n readonly checked = model(false);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Etykieta obok pola. */\n readonly label = input('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\n\n/**\n * Przełącznik (switch/toggle) zintegrowany z Signal Forms (`FormCheckboxControl`).\n * `<kpt-switch [formField]=\"f.notifications\" label=\"Powiadomienia\" />`\n *\n * Wariant z tekstem stanu: `onLabel`/`offLabel` — wyświetlany tekst zmienia się\n * przy przełączaniu (np. „Włączony”/„Wyłączony”).\n * `<kpt-switch [(checked)]=\"on\" onLabel=\"Włączony\" offLabel=\"Wyłączony\" />`\n */\n@Component({\n selector: 'kpt-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <label class=\"kpt-switch\" [class.kpt-switch--disabled]=\"disabled()\">\n @if (label() && labelPosition() === 'start') {\n <span class=\"kpt-switch__label kpt-switch__label--start\">{{ label() }}</span>\n }\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"kpt-switch__input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (change)=\"checked.set($any($event.target).checked)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-switch__track\" aria-hidden=\"true\"><span class=\"kpt-switch__thumb\"></span></span>\n @if (label() && labelPosition() === 'end') {\n <span class=\"kpt-switch__label\">{{ label() }}</span>\n }\n @if (hasStateLabels()) {\n <span class=\"kpt-switch__state\" [class.kpt-switch__state--on]=\"checked()\">{{ stateLabel() }}</span>\n }\n <ng-content />\n </label>\n `,\n styleUrl: './switch.component.scss',\n host: { class: 'kpt-switch-host' },\n})\nexport class KptSwitch implements FormCheckboxControl {\n readonly checked = model(false);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly label = input('');\n /** Pozycja etykiety `label` względem przełącznika: 'end' (prawo, domyślnie) lub 'start' (lewo). */\n readonly labelPosition = input<'start' | 'end'>('end');\n /** Tekst stanu włączonego (wyświetlany, gdy `checked`). */\n readonly onLabel = input('');\n /** Tekst stanu wyłączonego (wyświetlany, gdy nie `checked`). */\n readonly offLabel = input('');\n\n protected readonly hasStateLabels = computed(() => !!(this.onLabel() || this.offLabel()));\n /** Tekst zależny od stanu przełącznika. */\n protected readonly stateLabel = computed(() => (this.checked() ? this.onLabel() : this.offLabel()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\nimport { KptSwitch } from '../switch/switch.component';\n\n/**\n * Grupa przełączników. Domyślnie pojedynczy wybór (wzajemnie wykluczające się) —\n * włączenie jednego wyłącza pozostałe, a wartość to `value` wybranej opcji (lub `null`).\n * Z `multiple` przechodzi w tryb wielokrotny — wartość to tablica `T[]` zaznaczonych opcji.\n * Zintegrowana z Signal Forms (`FormValueControl<T | T[] | null>`).\n *\n * @example\n * <kpt-switch-group [(value)]=\"plan\" [options]=\"plans\" />\n * <kpt-switch-group multiple [(value)]=\"tags\" [options]=\"tagOptions\" />\n */\n@Component({\n selector: 'kpt-switch-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptSwitch],\n template: `\n <div\n class=\"kpt-switch-group\"\n [class.kpt-switch-group--horizontal]=\"orientation() === 'horizontal'\"\n role=\"group\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n >\n @for (opt of options(); track opt.value) {\n <kpt-switch\n class=\"kpt-switch-group__item\"\n [checked]=\"isChecked(opt.value)\"\n [label]=\"opt.label\"\n [disabled]=\"disabled() || opt.disabled\"\n (checkedChange)=\"onToggle(opt, $event)\"\n (touch)=\"touch.emit()\"\n />\n }\n </div>\n `,\n styleUrl: './switch-group.component.scss',\n host: { class: 'kpt-switch-group-host' },\n})\nexport class KptSwitchGroup<T = unknown> implements FormValueControl<unknown> {\n readonly value = model<unknown>(null);\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Układ: 'vertical' (domyślnie) lub 'horizontal'. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n /** Tryb wielokrotnego wyboru — wartość to tablica `T[]` zaznaczonych opcji. Domyślnie false (pojedynczy wybór). */\n readonly multiple = input(false, { transform: booleanAttribute });\n /**\n * Czy ponowne kliknięcie aktywnej opcji ją odznacza (value = null). Dotyczy tylko trybu pojedynczego —\n * w trybie `multiple` odznaczanie jest zawsze dozwolone. Domyślnie tak.\n */\n readonly allowDeselect = input(true, { transform: booleanAttribute });\n\n /** Aktualna wartość jako tablica (tryb multiple) — normalizuje `null`/pojedynczą wartość. */\n private readonly selectedValues = computed<T[]>(() => {\n const v = this.value();\n if (Array.isArray(v)) return v as T[];\n return v == null ? [] : [v as T];\n });\n\n protected isChecked(optValue: T): boolean {\n if (this.multiple()) return this.selectedValues().includes(optValue);\n return optValue === this.value();\n }\n\n protected onToggle(opt: KptOption<T>, checked: boolean): void {\n if (this.multiple()) {\n const current = this.selectedValues();\n if (checked) {\n if (!current.includes(opt.value)) this.value.set([...current, opt.value]);\n } else {\n this.value.set(current.filter((v) => v !== opt.value));\n }\n return;\n }\n\n if (checked) {\n this.value.set(opt.value);\n return;\n }\n // Wyłączono aktywną opcję.\n if (this.allowDeselect()) {\n this.value.set(null);\n } else {\n // Odznaczanie niedozwolone — przywróć zaznaczenie (wymusza ponowne wypchnięcie [checked]).\n const current = opt.value;\n this.value.set(null);\n this.value.set(current);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\n\nlet nextGroupId = 0;\n\n/**\n * Grupa przycisków opcji (radio) zintegrowana z Signal Forms (`FormValueControl<T>`).\n * Opcje przez `options`. `<kpt-radio-group [formField]=\"f.plan\" [options]=\"plans\" />`\n */\n@Component({\n selector: 'kpt-radio-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-radio-group\" role=\"radiogroup\" [attr.aria-invalid]=\"showInvalid() ? 'true' : null\">\n @for (opt of options(); track opt.value) {\n <label class=\"kpt-radio\" [class.kpt-radio--disabled]=\"disabled() || opt.disabled\">\n <input\n type=\"radio\"\n class=\"kpt-radio__input\"\n [name]=\"name()\"\n [checked]=\"opt.value === value()\"\n [disabled]=\"disabled() || opt.disabled\"\n (change)=\"value.set(opt.value)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-radio__dot\" aria-hidden=\"true\"></span>\n <span class=\"kpt-radio__label\">{{ opt.label }}</span>\n </label>\n }\n </div>\n `,\n styleUrl: './radio-group.component.scss',\n host: { class: 'kpt-radio-group-host' },\n})\nexport class KptRadioGroup<T = unknown> implements FormValueControl<T> {\n readonly value = model<T>(undefined as T);\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly name = input<string>(`kpt-radio-${++nextGroupId}`);\n}\n","<div\n class=\"kpt-select\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"combobox\"\n tabindex=\"0\"\n [class.kpt-select--open]=\"open()\"\n [class.kpt-select--disabled]=\"disabled()\"\n [class.kpt-select--invalid]=\"showInvalid()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (click)=\"toggleOpen()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (blur)=\"touch.emit()\"\n>\n <div class=\"kpt-select__value\">\n @if (multiple() && selectedOptions().length) {\n @for (opt of selectedOptions(); track opt.value) {\n <span class=\"kpt-select__chip\">\n {{ opt.label }}\n <button type=\"button\" class=\"kpt-select__chip-remove\" (click)=\"removeChip(opt, $event)\" [attr.aria-label]=\"i18n.t('select.removeChip')\">\n <kpt-icon name=\"x\" />\n </button>\n </span>\n }\n } @else if (!multiple() && filled()) {\n <span class=\"kpt-select__single\">{{ singleLabel() }}</span>\n } @else {\n <span class=\"kpt-select__placeholder\">{{ placeholder() }}</span>\n }\n </div>\n <kpt-icon class=\"kpt-select__chevron\" name=\"chevron-down\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-select__panel\" (keydown)=\"onPanelKeydown($event)\">\n @if (filter()) {\n <div class=\"kpt-select__search\">\n <kpt-icon name=\"search\" />\n <input\n type=\"text\"\n class=\"kpt-select__search-input\"\n [value]=\"filterText()\"\n (input)=\"onFilterInput($event)\"\n [attr.placeholder]=\"i18n.t('select.search')\"\n />\n </div>\n }\n <ul class=\"kpt-select__list\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple()\">\n @for (opt of filteredOptions(); track opt.value; let i = $index) {\n <li\n class=\"kpt-select__option\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(opt)\"\n [class.kpt-select__option--selected]=\"isSelected(opt)\"\n [class.kpt-select__option--active]=\"i === activeIndex()\"\n [class.kpt-select__option--disabled]=\"opt.disabled\"\n (click)=\"pick(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n @if (multiple()) {\n <span class=\"kpt-select__check\" [class.is-on]=\"isSelected(opt)\"><kpt-icon name=\"check\" /></span>\n }\n <span class=\"kpt-select__option-label\">{{ opt.label }}</span>\n @if (!multiple() && isSelected(opt)) {\n <kpt-icon class=\"kpt-select__option-tick\" name=\"check\" />\n }\n </li>\n } @empty {\n <li class=\"kpt-select__empty\">{{ i18n.t('select.noResults') }}</li>\n }\n </ul>\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KPT_FORM_FIELD_CONTROL, type KptFormFieldControl } from '../form-field/form-field-control';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Lista wyboru (select) na własnym panelu (CDK Overlay), zintegrowana z Signal Forms.\n * Warianty: pojedynczy, z wyszukiwarką (`filter`) i wielokrotny (`multiple`, chipy).\n *\n * @example\n * <kpt-select [formField]=\"f.role\" [options]=\"roles\" placeholder=\"Wybierz…\" />\n * <kpt-select [formField]=\"f.city\" [options]=\"cities\" filter placeholder=\"Szukaj miasta…\" />\n * <kpt-select [formField]=\"f.tags\" [options]=\"tags\" multiple filter placeholder=\"Tagi…\" />\n */\n@Component({\n selector: 'kpt-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n templateUrl: './select.component.html',\n styleUrl: './select.component.scss',\n host: { class: 'kpt-select-host' },\n providers: [{ provide: KPT_FORM_FIELD_CONTROL, useExisting: forwardRef(() => KptSelect) }],\n})\nexport class KptSelect<T = unknown> implements FormValueControl<unknown>, KptFormFieldControl {\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly placeholder = input('');\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly filter = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /** Wartość: pojedyncza (T) lub tablica (T[]) w trybie multiple. */\n readonly value = model<unknown>(null);\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n /**\n * Stan panelu (dwukierunkowy). Pozwala otworzyć listę z zewnątrz i — co ważniejsze — wiedzieć,\n * kiedy user skończył wybierać. `touch` się do tego nie nadaje: leci też z blur triggera.\n */\n readonly open = model(false);\n protected readonly filterText = signal('');\n protected readonly activeIndex = signal(-1);\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // Panel może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —\n // filtr i aktywną pozycję resetujemy więc przy każdym otwarciu, nie w `toggleOpen()`.\n effect(() => {\n const isOpen = this.open();\n untracked(() => {\n if (!isOpen) return;\n this.filterText.set('');\n this.activeIndex.set(-1);\n });\n });\n }\n\n private readonly selectedValues = computed<T[]>(() => {\n const v = this.value();\n if (this.multiple()) return Array.isArray(v) ? (v as T[]) : [];\n return v == null ? [] : [v as T];\n });\n\n protected readonly selectedOptions = computed(() =>\n this.options().filter((o) => this.selectedValues().includes(o.value)),\n );\n\n protected readonly filteredOptions = computed(() => {\n const q = this.filterText().trim().toLowerCase();\n const opts = this.options();\n return q ? opts.filter((o) => o.label.toLowerCase().includes(q)) : opts;\n });\n\n protected readonly singleLabel = computed(() => {\n const sel = this.selectedOptions();\n return this.multiple() ? '' : (sel[0]?.label ?? '');\n });\n\n /**\n * Czy wybrano jakąkolwiek opcję. Publiczne — `kpt-form-field` czyta to przez\n * `KPT_FORM_FIELD_CONTROL`, żeby unieść etykietę Float Label nad wybraną wartość.\n */\n readonly filled = computed(() => this.selectedOptions().length > 0);\n\n protected isSelected(opt: KptOption<T>): boolean {\n return this.selectedValues().includes(opt.value);\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n this.open.update((o) => !o);\n }\n\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n protected pick(opt: KptOption<T>): void {\n if (opt.disabled) return;\n if (this.multiple()) {\n const cur = this.selectedValues();\n this.value.set(this.isSelected(opt) ? cur.filter((v) => v !== opt.value) : [...cur, opt.value]);\n } else {\n this.value.set(opt.value);\n this.close();\n }\n }\n\n protected removeChip(opt: KptOption<T>, event: Event): void {\n event.stopPropagation();\n this.value.set(this.selectedValues().filter((v) => v !== opt.value));\n }\n\n protected onFilterInput(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n this.activeIndex.set(-1);\n }\n\n // ── Klawiatura ──\n protected onTriggerKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!this.open()) this.toggleOpen();\n } else if (event.key === 'Escape') {\n this.close();\n }\n }\n\n protected onPanelKeydown(event: KeyboardEvent): void {\n const opts = this.filteredOptions();\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.activeIndex.set(Math.min(this.activeIndex() + 1, opts.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.activeIndex.set(Math.max(this.activeIndex() - 1, 0));\n } else if (event.key === 'Enter') {\n event.preventDefault();\n const opt = opts[this.activeIndex()];\n if (opt) this.pick(opt);\n }\n }\n}\n","/*\n * Re-eksport pomocników `Intl` z `@konce-pt/i18n` — nazwy dni i miesięcy\n * wyliczane z bieżącego locale. Ścieżka zachowana dla kalendarzy\n * (`kpt-datepicker`, `kpt-date-range`), które importują ją względnie.\n */\n\nexport { monthNames, weekdayNames } from '@konce-pt/i18n';\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n input,\n model,\n numberAttribute,\n signal,\n} from '@angular/core';\nimport {\n from12h,\n handAngle,\n handIsInner,\n hourFromAngle,\n hourMarks,\n minuteFromAngle,\n minuteMarks,\n pad,\n parseTime,\n type KptClockMark,\n} from '@konce-pt/datetime';\n\n/**\n * Tarcza zegara (wybór godziny) — dwa etapy: godziny → minuty, klik lub przeciąganie.\n * Format 12/24h (`hourFormat`); w 24h dodatkowy wewnętrzny pierścień 13–00, w 12h AM/PM.\n * Wartość `HH:mm` (zawsze 24h). Używana przez `kpt-datepicker` i `kpt-date-range`.\n *\n * @example\n * <kpt-clock [(value)]=\"time\" [hourFormat]=\"12\" [minuteStep]=\"5\" />\n */\n@Component({\n selector: 'kpt-clock',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-clock\">\n <div class=\"kpt-clock__time\">\n <button type=\"button\" class=\"kpt-clock__seg\" [class.is-active]=\"clockPhase() === 'hours'\" (click)=\"setPhase('hours')\">{{ hourLabel() }}</button>\n <span class=\"kpt-clock__colon\">:</span>\n <button type=\"button\" class=\"kpt-clock__seg\" [class.is-active]=\"clockPhase() === 'minutes'\" (click)=\"setPhase('minutes')\">{{ minuteLabel() }}</button>\n @if (hourFormat() === 12) {\n <div class=\"kpt-clock__ampm\">\n <button type=\"button\" [class.is-active]=\"ampm() === 'AM'\" (click)=\"setAmpm('AM')\">AM</button>\n <button type=\"button\" [class.is-active]=\"ampm() === 'PM'\" (click)=\"setAmpm('PM')\">PM</button>\n </div>\n }\n </div>\n <div\n class=\"kpt-clock__face\"\n #face\n (pointerdown)=\"onDialPointer($event, face)\"\n (pointermove)=\"onDialPointer($event, face)\"\n (pointerup)=\"onDialUp()\"\n >\n <span class=\"kpt-clock__center\"></span>\n <span\n class=\"kpt-clock__hand\"\n [class.kpt-clock__hand--inner]=\"handInner()\"\n [style.transform]=\"'rotate(' + handAngle() + 'deg)'\"\n ></span>\n @if (clockPhase() === 'hours') {\n @for (mark of hourMarks(); track mark.value) {\n <button\n type=\"button\"\n class=\"kpt-clock__num\"\n [class.kpt-clock__num--inner]=\"mark.inner\"\n [class.kpt-clock__num--selected]=\"mark.selected\"\n [style.left.%]=\"mark.x\"\n [style.top.%]=\"mark.y\"\n (click)=\"pickHour(mark)\"\n >{{ mark.label }}</button>\n }\n } @else {\n @for (mark of minuteMarks(); track mark.value) {\n <button\n type=\"button\"\n class=\"kpt-clock__num\"\n [class.kpt-clock__num--selected]=\"mark.selected\"\n [style.left.%]=\"mark.x\"\n [style.top.%]=\"mark.y\"\n (click)=\"pickMinute(mark)\"\n >{{ mark.label }}</button>\n }\n }\n </div>\n </div>\n `,\n styleUrl: './clock.component.scss',\n host: { class: 'kpt-clock-host' },\n})\nexport class KptClock {\n readonly value = model<string>('');\n readonly hourFormat = input(24, { transform: numberAttribute });\n readonly minuteStep = input(1, { transform: numberAttribute });\n\n protected readonly hour = signal(0);\n protected readonly minute = signal(0);\n protected readonly clockPhase = signal<'hours' | 'minutes'>('hours');\n\n constructor() {\n // Synchronizacja wartości zewnętrznej → stan tarczy (zapis idempotentny, bez pętli).\n effect(() => {\n const t = parseTime(this.value());\n this.hour.set(t?.h ?? 0);\n this.minute.set(t?.m ?? 0);\n });\n }\n\n private emit(): void {\n this.value.set(`${pad(this.hour())}:${pad(this.minute())}`);\n }\n\n protected readonly ampm = computed<'AM' | 'PM'>(() => (this.hour() < 12 ? 'AM' : 'PM'));\n protected readonly hour12 = computed(() => {\n const h = this.hour() % 12;\n return h === 0 ? 12 : h;\n });\n protected readonly hourLabel = computed(() =>\n this.hourFormat() === 12 ? String(this.hour12()) : pad(this.hour()),\n );\n protected readonly minuteLabel = computed(() => pad(this.minute()));\n\n /** Znaczniki tarczy — jeden pierścień w 12h, dwa w 24h (patrz `@konce-pt/datetime`). */\n protected readonly hourMarks = computed<KptClockMark[]>(() =>\n hourMarks(this.hour(), this.hourFormat() === 12 ? 12 : 24),\n );\n protected readonly minuteMarks = computed<KptClockMark[]>(() => minuteMarks(this.minute()));\n\n protected readonly handAngle = computed(() => handAngle(this.hour(), this.minute(), this.clockPhase()));\n protected readonly handInner = computed(() =>\n handIsInner(this.hour(), this.hourFormat() === 12 ? 12 : 24, this.clockPhase()),\n );\n\n protected setPhase(phase: 'hours' | 'minutes'): void {\n this.clockPhase.set(phase);\n }\n protected setAmpm(target: 'AM' | 'PM'): void {\n this.hour.set(from12h(this.hour12(), target));\n this.emit();\n }\n protected pickHour(mark: KptClockMark): void {\n this.hour.set(mark.value);\n this.clockPhase.set('minutes');\n this.emit();\n }\n protected pickMinute(mark: KptClockMark): void {\n this.minute.set(mark.value);\n this.emit();\n }\n\n protected onDialPointer(event: PointerEvent, face: HTMLElement): void {\n if (event.type === 'pointerdown') face.setPointerCapture(event.pointerId);\n else if (!(event.buttons & 1)) return;\n const rect = face.getBoundingClientRect();\n const dx = event.clientX - (rect.left + rect.width / 2);\n const dy = event.clientY - (rect.top + rect.height / 2);\n let deg = (Math.atan2(dx, -dy) * 180) / Math.PI;\n if (deg < 0) deg += 360;\n if (this.clockPhase() === 'hours') {\n const radiusRatio = Math.hypot(dx, dy) / (rect.width / 2);\n this.hour.set(hourFromAngle(deg, radiusRatio, this.hourFormat() === 12 ? 12 : 24, this.hour()));\n } else {\n this.minute.set(minuteFromAngle(deg, this.minuteStep()));\n }\n this.emit();\n }\n\n protected onDialUp(): void {\n if (this.clockPhase() === 'hours') this.clockPhase.set('minutes');\n }\n}\n","<div\n class=\"kpt-datepicker\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-datepicker--open]=\"open()\"\n [class.kpt-datepicker--disabled]=\"disabled()\"\n [class.kpt-datepicker--invalid]=\"showInvalid()\"\n [attr.aria-disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-datepicker__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-datepicker__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-datepicker__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-datepicker__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon\n class=\"kpt-datepicker__icon\"\n [name]=\"selectionMode() === 'time' ? 'clock' : 'calendar'\"\n />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-calendar\" [class.kpt-calendar--clock]=\"showClock()\" (keydown.escape)=\"close()\">\n @if (showClock()) {\n @if (selectionMode() === 'datetime') {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"backToCalendar()\" [attr.aria-label]=\"i18n.t('datepicker.calendar')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.time') }}</span>\n </div>\n }\n <kpt-clock [(value)]=\"timeStr\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <!-- Nagłówek wspólny dla czterech poziomów: różni je tylko treść tytułu. -->\n <div class=\"kpt-calendar__header\">\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageBack()\" (click)=\"pagePrev()\" [attr.aria-label]=\"navPrevLabel()\"><kpt-icon name=\"chevron-left\" /></button>\n }\n <span class=\"kpt-calendar__titles\">\n @switch (panelView()) {\n @case ('day') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('month')\" [attr.aria-label]=\"i18n.t('datepicker.chooseMonth')\">{{ monthName() }}</button>\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n @case ('month') {\n @if (selectionMode() === 'month') {\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.month') }}</span>\n } @else {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n }\n @case ('year') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('decade')\" [attr.aria-label]=\"i18n.t('datepicker.chooseDecade')\">{{ yearRangeLabel() }}</button>\n }\n @case ('decade') {\n <span class=\"kpt-calendar__title\">{{ decadeRangeLabel() }}</span>\n }\n }\n </span>\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageForward()\" (click)=\"pageNext()\" [attr.aria-label]=\"navNextLabel()\"><kpt-icon name=\"chevron-right\" /></button>\n }\n </div>\n\n @switch (panelView()) {\n @case ('day') {\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of weeks(); track $index) {\n @for (cell of week; track cell.iso) {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n </div>\n }\n @default {\n <div class=\"kpt-calendar__grid kpt-calendar__grid--cells\" [class.kpt-calendar__grid--decades]=\"panelView() === 'decade'\">\n @for (cell of levelCells(); track cell.label) {\n <button\n type=\"button\"\n class=\"kpt-calendar__cell\"\n [class.kpt-calendar__cell--selected]=\"cell.selected\"\n [class.kpt-calendar__cell--current]=\"cell.current\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectCell(cell)\"\n >{{ cell.label }}</button>\n }\n </div>\n }\n }\n\n @if (selectionMode() === 'datetime') {\n <button type=\"button\" class=\"kpt-calendar__timebar\" (click)=\"openClock()\">\n <kpt-icon name=\"clock\" />\n <span>{{ timeBarLabel() }}</span>\n </button>\n }\n }\n @if (hasFooter()) {\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport {\n KPT_CALENDAR_LEVELS,\n buildDayGrid,\n buildDecadeCells,\n buildMonthCells,\n buildYearCells,\n canPageBack,\n canPageForward,\n centuryStart,\n commitLevelFor,\n decadeStart,\n formatDate,\n formatTime,\n initialPage,\n pad,\n pageBy,\n parseDateTime,\n parseTime,\n resolveStartView,\n selectedYearMonth,\n toIso,\n type KptCalendarPage,\n type KptCalendarView,\n type KptDateSelectionMode,\n type KptDayCell,\n type KptGridCell,\n} from '@konce-pt/datetime';\nimport { KptButton } from '../button/button.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { monthNames, weekdayNames } from '../i18n/intl';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptClock } from './clock.component';\n\n/**\n * Granulacja wyboru i poziom panelu — nazwy zostają w publicznym API biblioteki, a definicje\n * mieszkają w `@konce-pt/datetime`, wspólnym rdzeniu obu portów.\n */\nexport type KptDatepickerMode = KptDateSelectionMode;\nexport type KptDatepickerView = KptCalendarView;\n\n/**\n * Wybór daty/godziny z własnym kalendarzem (CDK Overlay), Signal Forms.\n * Granulacja przez `selectionMode`: data, miesiąc+rok, rok, miesiąc, data+godzina, sama godzina.\n * Panel jest stosem widoków dekady → lata → miesiące → dni: klik w komórkę schodzi poziom niżej,\n * klik w tytuł wchodzi poziom wyżej. Poziom startowy ustawia `startView` (data urodzenia:\n * `startView=\"decade\"`); domyślnie startuje na poziomie, na którym tryb zatwierdza wartość.\n * Godzina na tarczy zegara (dwa etapy: godziny → minuty), format 12/24h przez `hourFormat`.\n * Format wartości zależy od trybu: 'RRRR-MM-DD' / 'RRRR-MM' / 'RRRR' / 'MM'\n * / 'RRRR-MM-DDTHH:mm' (datetime) / 'HH:mm' (time). Czas przechowywany zawsze 24h.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-datepicker [formField]=\"f.birthDate\" startView=\"decade\" minDate=\"1900-01-01\" />\n * <kpt-datepicker selectionMode=\"datetime\" [hourFormat]=\"12\" [(value)]=\"meetingAt\" />\n * <kpt-datepicker selectionMode=\"time\" [(value)]=\"alarm\" />\n */\n@Component({\n selector: 'kpt-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n host: { class: 'kpt-datepicker-host' },\n})\nexport class KptDatepicker implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly placeholder = input('');\n /** Nazwa dostępna, gdy pola nie opisuje `<label for>` (np. dwa pola w jednym wierszu). */\n readonly ariaLabel = input<string | null>(null);\n readonly displayFormat = input<'pl' | 'iso'>('pl');\n /** Granulacja wyboru. */\n readonly selectionMode = input<KptDatepickerMode>('date');\n /**\n * Poziom, od którego otwiera się panel. `null` = poziom zatwierdzania danego trybu\n * (dni dla 'date'). Przycięcie do zakresu trybu robi `resolveStartView` z `@konce-pt/datetime`:\n * `startView=\"day\"` w trybie 'year' jest podnoszony do 'year', a tryb 'month' zostaje na swoim\n * poziomie, bo nie ma po czym nawigować.\n */\n readonly startView = input<KptDatepickerView | null>(null);\n /** Prezentacja miesiąca w trybie 'month': słownie ('long') lub liczbą ('number'). */\n readonly monthDisplay = input<'long' | 'number'>('long');\n /** Format godziny: 24 lub 12 (z AM/PM). */\n readonly hourFormat = input(24, { transform: numberAttribute });\n /** Krok minut (snap na tarczy). */\n readonly minuteStep = input(1, { transform: numberAttribute });\n readonly minDate = input<string | null>(null);\n readonly maxDate = input<string | null>(null);\n\n protected readonly effectivePlaceholder = computed(() => {\n if (this.placeholder()) return this.placeholder();\n const iso = this.displayFormat() === 'iso';\n const time = this.hourFormat() === 12 ? '--:-- --' : '--:--';\n switch (this.selectionMode()) {\n case 'monthYear': return iso ? 'RRRR-MM' : 'MM.RRRR';\n case 'year': return 'RRRR';\n case 'month': return this.monthDisplay() === 'number' ? 'MM' : this.i18n.t('datepicker.month');\n case 'time': return time;\n case 'datetime': return `${iso ? 'RRRR-MM-DD' : 'DD.MM.RRRR'} ${time}`;\n default: return iso ? 'RRRR-MM-DD' : 'DD.MM.RRRR';\n }\n });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly weekdays = computed(() => weekdayNames(this.i18n.locale()));\n private readonly months = computed(() => monthNames(this.i18n.locale()));\n /**\n * Stan kalendarza (dwukierunkowy). Pozwala otworzyć go z zewnątrz i — co ważniejsze — wiedzieć,\n * kiedy user skończył wybierać. `touch` się do tego nie nadaje: leci też z blur triggera.\n */\n readonly open = model(false);\n private readonly today = new Date();\n private readonly view = signal<KptCalendarPage>({ y: this.today.getFullYear(), m: this.today.getMonth() });\n /** Aktualny poziom stosu widoków panelu. */\n protected readonly panelView = signal<KptDatepickerView>('day');\n\n /** Poziom, na którym klik w komórkę zatwierdza wartość zamiast schodzić niżej. */\n protected readonly commitLevel = computed<KptDatepickerView>(() => commitLevelFor(this.selectionMode()));\n\n // ── Stan czasu (bufor 'HH:mm', 24h) ──\n protected readonly timeStr = signal('');\n protected readonly dtView = signal<'calendar' | 'clock'>('calendar');\n private readonly pendingDate = signal('');\n /** Tarcza zamiast siatek: tryb 'time' zawsze, 'datetime' po wejściu w pasek czasu. */\n protected readonly showClock = computed(\n () => this.selectionMode() === 'time' || (this.selectionMode() === 'datetime' && this.dtView() === 'clock'),\n );\n protected readonly hasFooter = computed(\n () => this.selectionMode() === 'time' || this.selectionMode() === 'datetime',\n );\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // Kalendarz może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —\n // widok i bufor czasu ustawiamy więc przy każdym otwarciu, nie w `toggleOpen()`.\n effect(() => {\n const isOpen = this.open();\n untracked(() => {\n if (!isOpen) return;\n this.view.set(initialPage(this.value(), this.selectionMode(), this.today));\n this.panelView.set(resolveStartView(this.selectionMode(), this.startView()));\n this.syncTimeFromValue();\n this.dtView.set(this.selectionMode() === 'time' ? 'clock' : 'calendar');\n });\n });\n }\n\n protected readonly viewYear = computed(() => this.view().y);\n protected readonly monthName = computed(() => this.months()[this.view().m]);\n protected readonly yearRangeLabel = computed(\n () => `${decadeStart(this.view().y)} – ${decadeStart(this.view().y) + 9}`,\n );\n protected readonly decadeRangeLabel = computed(\n () => `${centuryStart(this.view().y)} – ${centuryStart(this.view().y) + 119}`,\n );\n\n /** Tryb 'month' nie ma po czym nawigować — siatka miesięcy jest kompletna. */\n protected readonly hasNav = computed(() => this.selectionMode() !== 'month');\n protected readonly navPrevLabel = computed(() => {\n switch (this.panelView()) {\n case 'month': return this.i18n.t('datepicker.prevYear');\n case 'year': return this.i18n.t('datepicker.prevYears');\n case 'decade': return this.i18n.t('datepicker.prevDecades');\n default: return this.i18n.t('datepicker.prevMonth');\n }\n });\n protected readonly navNextLabel = computed(() => {\n switch (this.panelView()) {\n case 'month': return this.i18n.t('datepicker.nextYear');\n case 'year': return this.i18n.t('datepicker.nextYears');\n case 'decade': return this.i18n.t('datepicker.nextDecades');\n default: return this.i18n.t('datepicker.nextMonth');\n }\n });\n\n /** Strzałka gaśnie, gdy cała sąsiednia strona wypada poza zakres (logika w `@konce-pt/datetime`). */\n protected readonly canPageBack = computed(() => canPageBack(this.view(), this.panelView(), this.minDate()));\n protected readonly canPageForward = computed(() =>\n canPageForward(this.view(), this.panelView(), this.maxDate()),\n );\n\n /** Etykieta czasu na pasku trybu datetime (uwzględnia AM/PM). */\n protected readonly timeBarLabel = computed(() => {\n const t = parseTime(this.timeStr());\n return formatTime(t?.h ?? 0, t?.m ?? 0, this.hourFormat() === 12 ? 12 : 24);\n });\n\n /**\n * Tekst w triggerze. Każdy tryb ma własny format wartości, więc `display` tylko rozdziela\n * robotę — formatowanie siedzi w metodach `display*` niżej. Wartość niepasująca do formatu\n * trybu daje pusty string (trigger nie pokazuje śmieci, np. po ręcznej podmianie modelu).\n */\n protected readonly display = computed(() => {\n const v = this.value();\n if (!v) return '';\n const iso = this.displayFormat() === 'iso';\n switch (this.selectionMode()) {\n case 'monthYear':\n return this.displayMonthYear(v, iso);\n case 'year':\n return /^\\d{4}$/.test(v) ? v : '';\n case 'month':\n return this.displayMonth(v);\n case 'time':\n return this.displayTime(v);\n case 'datetime':\n return this.displayDateTime(v, iso);\n default:\n return this.displayDate(v, iso);\n }\n });\n\n private displayMonthYear(v: string, iso: boolean): string {\n const m = /^(\\d{4})-(\\d{2})$/.exec(v);\n if (!m) return '';\n return iso ? v : `${m[2]}.${m[1]}`;\n }\n private displayMonth(v: string): string {\n const m = /^(\\d{2})$/.exec(v);\n if (!m) return '';\n return this.monthDisplay() === 'number' ? m[1] : (this.months()[+m[1] - 1] ?? '');\n }\n private displayTime(v: string): string {\n const t = parseTime(v);\n return t ? formatTime(t.h, t.m, this.hourFormat() === 12 ? 12 : 24) : '';\n }\n private displayDateTime(v: string, iso: boolean): string {\n const dt = parseDateTime(v);\n if (!dt) return '';\n const sep = iso ? 'T' : ' ';\n return `${formatDate(dt.date, iso ? 'iso' : 'pl')}${sep}${formatTime(dt.h, dt.m, this.hourFormat() === 12 ? 12 : 24)}`;\n }\n private displayDate(v: string, iso: boolean): string {\n return formatDate(v, iso ? 'iso' : 'pl');\n }\n\n // ── Siatka dni (tryby 'date' / 'datetime') ──\n private readonly selectedDateIso = computed(() =>\n this.selectionMode() === 'datetime' ? this.pendingDate() : this.value(),\n );\n protected readonly weeks = computed<KptDayCell[][]>(() =>\n buildDayGrid({\n page: this.view(),\n selectedIso: this.selectedDateIso(),\n todayIso: toIso(this.today),\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n }),\n );\n\n /** Rok/miesiąc bieżącej wartości — zaznaczenie w siatkach wyższych poziomów. */\n private readonly selectedYM = computed(() =>\n selectedYearMonth(this.selectedDateIso(), this.selectionMode()),\n );\n\n // ── Siatki poziomów (miesiące, lata, dekady) ──\n protected readonly monthCells = computed<KptGridCell[]>(() =>\n buildMonthCells({\n year: this.view().y,\n monthNames: this.months(),\n selected: this.selectedYM(),\n today: this.today,\n monthOnly: this.selectionMode() === 'month',\n numeric: this.monthDisplay() === 'number',\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n }),\n );\n protected readonly yearCells = computed<KptGridCell[]>(() =>\n buildYearCells({\n year: this.view().y,\n selected: this.selectedYM(),\n today: this.today,\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n }),\n );\n protected readonly decadeCells = computed<KptGridCell[]>(() =>\n buildDecadeCells({\n year: this.view().y,\n selected: this.selectedYM(),\n today: this.today,\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n }),\n );\n\n /** Komórki bieżącego poziomu — siatka miesięcy/lat/dekad ma jeden wspólny markup. */\n protected readonly levelCells = computed<KptGridCell[]>(() => {\n switch (this.panelView()) {\n case 'year':\n return this.yearCells();\n case 'decade':\n return this.decadeCells();\n default:\n return this.monthCells();\n }\n });\n\n private syncTimeFromValue(): void {\n const mode = this.selectionMode();\n if (mode === 'time') {\n const t = parseTime(this.value());\n this.timeStr.set(t ? `${pad(t.h)}:${pad(t.m)}` : '00:00');\n } else if (mode === 'datetime') {\n const dt = parseDateTime(this.value());\n this.timeStr.set(dt ? `${pad(dt.h)}:${pad(dt.m)}` : '00:00');\n this.pendingDate.set(dt?.date ?? '');\n }\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n this.open.update((o) => !o);\n }\n\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n // ── Wybór data/miesiąc/rok ──\n protected selectDay(cell: KptDayCell): void {\n if (cell.disabled) return;\n if (this.selectionMode() === 'datetime') {\n this.pendingDate.set(cell.iso);\n return; // czas jeszcze do wyboru\n }\n this.value.set(cell.iso);\n this.close();\n }\n /**\n * Klik w komórkę siatki: na poziomie zatwierdzania ustawia wartość i zamyka panel,\n * wyżej — przestawia widok i schodzi poziom niżej.\n */\n protected selectCell(cell: KptGridCell): void {\n if (cell.disabled) return;\n const level = this.panelView();\n if (level === this.commitLevel()) {\n this.value.set(level === 'year' ? String(cell.y) : this.monthValue(cell));\n this.close();\n return;\n }\n this.view.update(({ m }) => ({ y: cell.y, m: level === 'month' ? cell.m : m }));\n this.panelView.set(KPT_CALENDAR_LEVELS[KPT_CALENDAR_LEVELS.indexOf(level) - 1]!);\n }\n\n private monthValue(cell: KptGridCell): string {\n const mm = pad(cell.m + 1);\n return this.selectionMode() === 'month' ? mm : `${cell.y}-${mm}`;\n }\n\n /** Klik w tytuł — wejście poziom wyżej w stosie widoków. */\n protected goTo(level: KptDatepickerView): void {\n this.panelView.set(level);\n }\n\n // ── Zegar (delegowany do kpt-clock przez timeStr) ──\n protected openClock(): void {\n this.dtView.set('clock');\n }\n protected backToCalendar(): void {\n this.dtView.set('calendar');\n }\n\n protected commit(): void {\n const time = this.timeStr() || '00:00';\n if (this.selectionMode() === 'time') {\n this.value.set(time);\n } else {\n const dt = parseDateTime(this.value());\n const date = this.pendingDate() || dt?.date || toIso(this.today);\n this.value.set(`${date}T${time}`);\n }\n this.close();\n }\n\n /** Strzałki ‹ › — krok zależny od poziomu (miesiąc, rok, dekada, strona dekad). */\n private page(dir: 1 | -1): void {\n this.view.update((page) => pageBy(page, this.panelView(), dir));\n }\n protected pagePrev(): void {\n this.page(-1);\n }\n protected pageNext(): void {\n this.page(1);\n }\n protected clear(event: Event): void {\n event.stopPropagation();\n this.value.set('');\n this.pendingDate.set('');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole wieloliniowe (textarea) na Signal Forms, z opcjonalnym auto-resize.\n *\n * @example\n * <kpt-textarea [formField]=\"f.notes\" placeholder=\"Notatki…\" autoResize />\n */\n@Component({\n selector: 'kpt-textarea',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <textarea\n #ta\n class=\"kpt-textarea__field\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [rows]=\"rows()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n ></textarea>\n `,\n styleUrl: './textarea.component.scss',\n host: { class: 'kpt-textarea-host' },\n})\nexport class KptTextarea implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly placeholder = input('');\n readonly rows = input(3);\n readonly autoResize = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n private readonly ta = viewChild<ElementRef<HTMLTextAreaElement>>('ta');\n\n constructor() {\n afterNextRender(() => {\n if (this.autoResize()) this.resize();\n });\n }\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n if (this.autoResize()) this.resize();\n }\n\n private resize(): void {\n const el = this.ta()?.nativeElement;\n if (!el) return;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n }\n}\n","import { Directive, ElementRef, OnDestroy, booleanAttribute, inject, input } from '@angular/core';\n\nexport type KptTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Dymek podpowiedzi (tooltip) pokazywany na hover/focus hosta. Lekki — element dodawany\n * do `body` i pozycjonowany względem hosta (działa w trybie zoneless).\n *\n * @example\n * <kpt-button kptTooltip=\"Zapisz zmiany\" kptTooltipPosition=\"bottom\">Zapisz</kpt-button>\n *\n * @example Dymek tylko wtedy, gdy tekst nie mieści się w elemencie:\n * <span class=\"ellipsis\" [kptTooltip]=\"name\" kptTooltipOnlyWhenTruncated>{{ name }}</span>\n */\n@Directive({\n selector: '[kptTooltip]',\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n },\n})\nexport class KptTooltip implements OnDestroy {\n readonly text = input.required<string>({ alias: 'kptTooltip' });\n readonly position = input<KptTooltipPosition>('top', { alias: 'kptTooltipPosition' });\n /**\n * Pokazuj dymek tylko wtedy, gdy treść nie mieści się w elemencie (jest ucięta\n * wielokropkiem). Dzięki temu podpowiedź nie powtarza tekstu, który i tak widać.\n */\n readonly onlyWhenTruncated = input(false, {\n alias: 'kptTooltipOnlyWhenTruncated',\n transform: booleanAttribute,\n });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private tip?: HTMLElement;\n /** Dymek żyje w `body`, więc przy przewinięciu hosta trzeba go przeliczyć. */\n private readonly follow = () => this.reposition();\n\n protected show(): void {\n if (this.tip || !this.text()) return;\n // Sprawdzamy dopiero teraz, a nie przy renderze: dzięki temu wynik jest zawsze\n // aktualny po zmianie szerokości czy powiększenia, bez żadnych obserwatorów.\n if (this.onlyWhenTruncated() && !this.isTruncated()) return;\n const tip = document.createElement('div');\n tip.className = 'kpt-tooltip';\n tip.setAttribute('role', 'tooltip');\n tip.textContent = this.text();\n tip.style.cssText =\n 'position:fixed;z-index:1400;max-width:16rem;padding:0.35rem 0.6rem;' +\n 'border-radius:var(--kpt-radius-sm,0.25rem);font-size:var(--kpt-font-size-xs,0.75rem);' +\n 'line-height:1.4;background:var(--kpt-color-on-surface);color:var(--kpt-color-surface);' +\n 'box-shadow:var(--kpt-elevation-2);pointer-events:none;opacity:0;transition:opacity 120ms;';\n document.body.appendChild(tip);\n this.tip = tip;\n this.reposition();\n // Faza przechwytywania łapie także przewijanie zagnieżdżonych kontenerów\n // (np. osi roadmapy), bo zdarzenie `scroll` elementu się nie propaguje.\n window.addEventListener('scroll', this.follow, true);\n window.addEventListener('resize', this.follow);\n requestAnimationFrame(() => {\n if (this.tip) this.tip.style.opacity = '1';\n });\n }\n\n protected hide(): void {\n window.removeEventListener('scroll', this.follow, true);\n window.removeEventListener('resize', this.follow);\n this.tip?.remove();\n this.tip = undefined;\n }\n\n /**\n * Czy treść jest przycięta? Sprawdzamy hosta oraz jego bezpośrednie dzieci, bo\n * `text-overflow: ellipsis` siedzi zwykle na wewnętrznym elemencie — a taki element\n * kurczy się do dostępnej szerokości i nie rozpycha rodzica, więc pomiar samego\n * hosta nie wykryłby niczego.\n */\n private isTruncated(): boolean {\n const root = this.host.nativeElement;\n const overflows = (el: Element): boolean =>\n // Tolerancja 1 px pochłania zaokrąglenia subpikselowe przy skalowaniu.\n el.scrollWidth > el.clientWidth + 1 || el.scrollHeight > el.clientHeight + 1;\n return overflows(root) || Array.from(root.children).some(overflows);\n }\n\n private reposition(): void {\n const tip = this.tip;\n if (!tip) return;\n const r = this.host.nativeElement.getBoundingClientRect();\n const t = tip.getBoundingClientRect();\n const gap = 8;\n let top: number;\n let left: number;\n switch (this.position()) {\n case 'bottom':\n top = r.bottom + gap;\n left = r.left + r.width / 2 - t.width / 2;\n break;\n case 'left':\n top = r.top + r.height / 2 - t.height / 2;\n left = r.left - t.width - gap;\n break;\n case 'right':\n top = r.top + r.height / 2 - t.height / 2;\n left = r.right + gap;\n break;\n default:\n top = r.top - t.height - gap;\n left = r.left + r.width / 2 - t.width / 2;\n }\n tip.style.top = `${Math.max(4, top)}px`;\n tip.style.left = `${Math.max(4, left)}px`;\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n}\n","<div class=\"kpt-rich-text\" [class.kpt-rich-text--invalid]=\"showInvalid()\" [class.kpt-rich-text--disabled]=\"disabled()\">\n <div class=\"kpt-rich-text__toolbar\" role=\"toolbar\">\n @for (section of sections(); track $index; let firstSection = $first) {\n @if (!firstSection) {\n <span class=\"kpt-rich-text__divider\" aria-hidden=\"true\"></span>\n }\n @for (item of section; track item) {\n @switch (item) {\n @case ('heading') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__style\"\n cdkOverlayOrigin\n #styleOrigin=\"cdkOverlayOrigin\"\n [class.is-open]=\"styleOpen()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"aria(item)\"\n [attr.aria-expanded]=\"styleOpen()\"\n [kptTooltip]=\"aria(item)\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openStyle()\"\n >\n <span>{{ styleLabel() }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-rich-text__style-caret\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"styleOrigin\"\n [cdkConnectedOverlayOpen]=\"styleOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeStyle()\"\n (detach)=\"closeStyle()\"\n >\n <ul class=\"kpt-rich-text__style-panel\" role=\"listbox\">\n @for (o of styleOptions(); track o.tag) {\n <li\n class=\"kpt-rich-text__style-opt\"\n [class]=\"'kpt-rich-text__style-opt kpt-rich-text__style-opt--' + o.tag\"\n role=\"option\"\n [attr.aria-selected]=\"currentBlock() === o.tag\"\n [class.is-selected]=\"currentBlock() === o.tag\"\n (click)=\"pickStyle(o.tag)\"\n >{{ o.label }}</li>\n }\n </ul>\n </ng-template>\n }\n @case ('foreColor') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool kpt-rich-text__tool--color\"\n cdkOverlayOrigin\n #foreOrigin=\"cdkOverlayOrigin\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openColor('foreColor')\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"foreOrigin\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'foreColor'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n }\n @case ('backColor') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool kpt-rich-text__tool--color\"\n cdkOverlayOrigin\n #backOrigin=\"cdkOverlayOrigin\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openColor('backColor')\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"backOrigin\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'backColor'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n }\n @case ('table') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool\"\n cdkOverlayOrigin\n #tableOrigin=\"cdkOverlayOrigin\"\n [class.is-active]=\"tableOpen()\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"exec(item)\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"tableOrigin\"\n [cdkConnectedOverlayOpen]=\"tableOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeTable()\"\n (detach)=\"closeTable()\"\n >\n <div class=\"kpt-rt-grid-pop\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-grid\" (mouseleave)=\"gridHover(0, 0)\">\n @for (r of gridRows; track r) {\n <div class=\"kpt-rt-grid__row\">\n @for (c of gridCols; track c) {\n <span\n class=\"kpt-rt-grid__cell\"\n [class.is-on]=\"r <= gridR() && c <= gridC()\"\n (mouseenter)=\"gridHover(r, c)\"\n (click)=\"insertTable(r, c)\"\n ></span>\n }\n </div>\n }\n </div>\n <div class=\"kpt-rt-grid__label\">{{ gridR() }} × {{ gridC() }}</div>\n </div>\n </ng-template>\n }\n @default {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool\"\n [class.is-active]=\"isActive(item)\"\n [attr.aria-label]=\"aria(item)\"\n [attr.aria-pressed]=\"pressed(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled() || !enabled(item)\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"exec(item)\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n }\n }\n }\n }\n </div>\n @if (sourceView()) {\n <textarea\n class=\"kpt-rich-text__source\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n spellcheck=\"false\"\n [attr.aria-label]=\"i18n.t('richText.htmlSource')\"\n (input)=\"onSource($event)\"\n (blur)=\"touch.emit()\"\n ></textarea>\n } @else {\n <div\n #editor\n class=\"kpt-rich-text__editor\"\n [attr.contenteditable]=\"disabled() ? 'false' : 'true'\"\n [attr.data-placeholder]=\"placeholder()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n role=\"textbox\"\n aria-multiline=\"true\"\n (input)=\"onInput()\"\n (keydown)=\"onKeydown($event)\"\n (paste)=\"onPaste($event)\"\n (contextmenu)=\"onContextMenu($event)\"\n (mousedown)=\"onEditorMouseDown($event)\"\n (mousemove)=\"onEditorMouseMove($event)\"\n (blur)=\"touch.emit()\"\n ></div>\n }\n\n <!-- Menu kontekstowe tabeli (origin punktowy = pozycja kursora) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"menuOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeMenu()\"\n (detach)=\"closeMenu()\"\n >\n <div class=\"kpt-rt-menu\" (contextmenu)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.column') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertColumn('left')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertLeft') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertColumn('right')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertRight') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"toggleHeaderColumn()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.headerColumn') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"deleteColumn()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteColumn') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.row') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertRow('above')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertAbove') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertRow('below')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertBelow') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"toggleHeaderRow()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.headerRow') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"deleteRow()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteRow') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.cell') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"openCellBg()\"><kpt-icon name=\"palette\" /> {{ i18n.t('richText.menu.cellBackground') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('left')\"><kpt-icon name=\"align-left\" /> {{ i18n.t('richText.menu.alignLeft') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('center')\"><kpt-icon name=\"align-center\" /> {{ i18n.t('richText.menu.alignCenter') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('right')\"><kpt-icon name=\"align-right\" /> {{ i18n.t('richText.menu.alignRight') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" [class.is-disabled]=\"!canMerge()\" (click)=\"mergeCells()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.mergeCells') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" [class.is-disabled]=\"!canSplit()\" (click)=\"splitCell()\"><kpt-icon name=\"grip-vertical\" /> {{ i18n.t('richText.menu.splitCell') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"openBorder()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.border') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item kpt-rt-menu__item--danger\" (click)=\"deleteTable()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteTable') }}</button>\n </div>\n </ng-template>\n\n <!-- Popover obramowania (tabela / komórka) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"borderOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeBorder()\"\n (detach)=\"closeBorder()\"\n >\n <div class=\"kpt-rt-border\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-border__seg\">\n <button type=\"button\" [class.is-active]=\"borderTarget() === 'table'\" (click)=\"borderTarget.set('table')\">{{ i18n.t('richText.border.table') }}</button>\n <button type=\"button\" [class.is-active]=\"borderTarget() === 'cell'\" (click)=\"borderTarget.set('cell')\">{{ i18n.t('richText.border.cell') }}</button>\n </div>\n <div class=\"kpt-rt-border__widths\">\n <button type=\"button\" (click)=\"setBorderWidth('none')\">{{ i18n.t('richText.border.none') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('thin')\">{{ i18n.t('richText.border.thin') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('medium')\">{{ i18n.t('richText.border.medium') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('thick')\">{{ i18n.t('richText.border.thick') }}</button>\n </div>\n <div class=\"kpt-rich-text__swatches\">\n @for (c of swatches; track c) {\n <button type=\"button\" class=\"kpt-rich-text__swatch\" [style.background]=\"c\" [attr.aria-label]=\"c\" (click)=\"setBorderColor(c)\"></button>\n }\n </div>\n <label class=\"kpt-rich-text__picker\">\n <span>{{ i18n.t('richText.border.customColor') }}</span>\n <input type=\"color\" (input)=\"onBorderColorInput($event)\" />\n </label>\n </div>\n </ng-template>\n\n <!-- Popover koloru tła komórki (z menu kontekstowego) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'cellBg'\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n</div>\n\n<ng-template #paletteTpl>\n <div class=\"kpt-rich-text__palette\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rich-text__swatches\">\n @for (c of swatches; track c) {\n <button\n type=\"button\"\n class=\"kpt-rich-text__swatch\"\n [style.background]=\"c\"\n [attr.aria-label]=\"c\"\n (click)=\"applyColor(c)\"\n ></button>\n }\n </div>\n <label class=\"kpt-rich-text__picker\">\n <span>{{ i18n.t('richText.paletteCustom') }}</span>\n <input type=\"color\" (input)=\"onColorInput($event)\" />\n </label>\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport { KptTooltip } from '../tooltip/tooltip.directive';\n\nexport type KptRichTool =\n | 'copy' | 'paste' | 'pasteText'\n | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol'\n | 'indent' | 'outdent'\n | 'foreColor' | 'backColor'\n | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify'\n | 'link' | 'table' | 'clear' | 'html';\n\n/** Pasek: płaska lista narzędzi lub grupy (sekcje rozdzielone separatorem). */\nexport type KptRichToolbar = readonly KptRichTool[] | readonly (readonly KptRichTool[])[];\n\nconst ICON: Record<KptRichTool, KptIconName> = {\n copy: 'copy',\n paste: 'clipboard',\n pasteText: 'clipboard-text',\n heading: 'code', // nieużywane (heading renderuje select)\n bold: 'bold',\n italic: 'italic',\n underline: 'underline',\n strike: 'strikethrough',\n ul: 'list',\n ol: 'list-numbers',\n indent: 'indent-increase',\n outdent: 'indent-decrease',\n foreColor: 'palette',\n backColor: 'highlight',\n alignLeft: 'align-left',\n alignCenter: 'align-center',\n alignRight: 'align-right',\n alignJustify: 'align-justified',\n link: 'link',\n table: 'table',\n clear: 'clear-formatting',\n html: 'code',\n};\n\n/** Narzędzia zwykłe → komenda execCommand + nazwa queryCommandState (dla stanu aktywnego). */\nconst COMMAND: Partial<Record<KptRichTool, string>> = {\n bold: 'bold',\n italic: 'italic',\n underline: 'underline',\n strike: 'strikeThrough',\n ul: 'insertUnorderedList',\n ol: 'insertOrderedList',\n alignLeft: 'justifyLeft',\n alignCenter: 'justifyCenter',\n alignRight: 'justifyRight',\n alignJustify: 'justifyFull',\n clear: 'removeFormat',\n};\n\nconst SWATCHES = [\n '#000000', '#434343', '#666666', '#999999', '#b7b7b7', '#cccccc', '#ffffff',\n '#e11d48', '#ea580c', '#ca8a04', '#16a34a', '#0891b2', '#2563eb', '#7c3aed',\n];\n\nconst DEFAULT_TOOLBAR: KptRichTool[][] = [\n ['copy', 'paste', 'pasteText'],\n ['heading', 'bold', 'italic', 'underline', 'strike', 'ul', 'ol', 'indent', 'outdent'],\n ['foreColor', 'backColor'],\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\n ['link', 'table', 'clear', 'html'],\n];\n\n// Allowlisty sanityzacji wklejanego HTML.\nconst ALLOWED_TAGS = new Set([\n 'P', 'BR', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'B', 'STRONG', 'I', 'EM', 'U', 'S', 'STRIKE',\n 'UL', 'OL', 'LI', 'A', 'SPAN', 'DIV', 'BLOCKQUOTE', 'FONT',\n 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TR', 'TD', 'TH', 'COLGROUP', 'COL', 'CAPTION',\n]);\nconst ALLOWED_STYLES = new Set([\n 'color', 'background-color', 'text-align', 'font-weight', 'font-style', 'text-decoration',\n 'width', 'height', 'border', 'border-color', 'border-width', 'border-style', 'vertical-align',\n]);\nconst ALLOWED_ATTRS = new Set(['colspan', 'rowspan', 'span', 'width', 'class', 'target', 'rel', 'title']);\n/** Pozycja komórki w siatce (uwzględnia colspan/rowspan). */\ntype GridPos = Map<HTMLTableCellElement, { r: number; c: number; rowspan: number; colspan: number }>;\n/** Prostokąt siatki: wiersze `r0..r1`, kolumny `c0..c1` (włącznie). */\ninterface Bounds {\n r0: number;\n c0: number;\n r1: number;\n c1: number;\n}\n\n// Schematy URL dopuszczone w `href` wstawianym narzędziem „link\" (blocklista jest obchodzalna).\nconst SAFE_URL_SCHEME = /^(https?:|mailto:|tel:)/i;\nconst HAS_URL_SCHEME = /^[a-z][a-z0-9+.-]*:/i;\n\n/**\n * Lekki edytor tekstu sformatowanego (contenteditable) z konfigurowalnym paskiem sekcji.\n * Narzędzia: schowek (kopiuj / wklej / wklej bez formatowania), styl (nagłówki H1–H6 / paragraf),\n * bold/italic/underline/strike/ul/ol, kolor tekstu i tła (popover), wyrównania, link, czyszczenie.\n * `toolbar` przyjmuje płaską listę lub grupy (sekcje). Wartość = HTML. Signal Forms.\n * Wymaga stylów overlay CDK (popover kolorów): `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-rich-text [formField]=\"f.body\" />\n * <kpt-rich-text [(value)]=\"v\" [toolbar]=\"[['bold','italic'],['ul','ol'],['link']]\" />\n */\n@Component({\n selector: 'kpt-rich-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon, CdkOverlayOrigin, CdkConnectedOverlay, NgTemplateOutlet, KptTooltip],\n templateUrl: './rich-text.component.html',\n styleUrl: './rich-text.component.scss',\n host: { class: 'kpt-rich-text-host' },\n})\nexport class KptRichText implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly toolbar = input<KptRichToolbar>(DEFAULT_TOOLBAR);\n readonly placeholder = input('');\n /** Maksymalna głębokość zagnieżdżenia list (Tab / „Dodaj wcięcie\"). */\n readonly maxListLevel = input(6, { transform: numberAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly swatches = SWATCHES;\n private readonly editor = viewChild<ElementRef<HTMLElement>>('editor');\n private savedRange: Range | null = null;\n\n protected readonly colorOpen = signal(false);\n protected readonly colorKind = signal<'foreColor' | 'backColor' | 'cellBg'>('foreColor');\n protected readonly sourceView = signal(false);\n protected readonly styleOpen = signal(false);\n\n // ── Tabele ──\n protected readonly tableOpen = signal(false); // popover siatki wstawiania\n protected readonly gridR = signal(0);\n protected readonly gridC = signal(0);\n protected readonly gridRows = Array.from({ length: 8 }, (_, i) => i + 1);\n protected readonly gridCols = Array.from({ length: 8 }, (_, i) => i + 1);\n protected readonly menuOpen = signal(false); // menu kontekstowe\n protected readonly menuPoint = signal<{ x: number; y: number }>({ x: 0, y: 0 });\n protected readonly borderOpen = signal(false);\n protected readonly borderTarget = signal<'table' | 'cell'>('table');\n private ctxCell: HTMLTableCellElement | null = null;\n private resize: { col: HTMLTableColElement; startX: number; startW: number } | null = null;\n // Zaznaczanie wielu komórek\n protected readonly selCount = signal(0);\n private selCells = new Set<HTMLTableCellElement>();\n private selAnchor: HTMLTableCellElement | null = null;\n private selecting = false;\n private canSplitCtx = false;\n\n protected readonly styleOptions = computed<{ tag: string; label: string }[]>(() => [\n { tag: 'p', label: this.i18n.t('richText.styleNormal') },\n { tag: 'h1', label: this.i18n.t('richText.styleHeading', { level: 1 }) },\n { tag: 'h2', label: this.i18n.t('richText.styleHeading', { level: 2 }) },\n { tag: 'h3', label: this.i18n.t('richText.styleHeading', { level: 3 }) },\n { tag: 'h4', label: this.i18n.t('richText.styleHeading', { level: 4 }) },\n { tag: 'h5', label: this.i18n.t('richText.styleHeading', { level: 5 }) },\n { tag: 'h6', label: this.i18n.t('richText.styleHeading', { level: 6 }) },\n ]);\n protected readonly styleLabel = computed(\n () => this.styleOptions().find((o) => o.tag === this.currentBlock())?.label ?? this.i18n.t('richText.styleNormal'),\n );\n protected readonly activeCmds = signal<Set<string>>(new Set());\n protected readonly canIndent = signal(false);\n protected readonly canOutdent = signal(false);\n protected readonly currentBlock = signal<string>('p');\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n /** Sekcje paska (normalizacja płaskiej listy do jednej grupy). */\n protected readonly sections = computed<KptRichTool[][]>(() => {\n const t = this.toolbar();\n if (t.length === 0) return [];\n return Array.isArray(t[0]) ? (t as KptRichTool[][]) : [t as KptRichTool[]];\n });\n\n constructor() {\n // Synchronizuj tylko przy zmianie zewnętrznej (bez resetu kursora podczas pisania).\n // Porównanie `el.innerHTML !== v` działa na SUROWEJ wartości modelu (tej samej, którą ustawia\n // `onInput()`), więc pisanie w edytorze nadal nie odpala tej gałęzi — sanityzacja włącza się\n // wyłącznie przy zewnętrznym zapisie `value` (init, `[(value)]` z aplikacji, `onSource()`).\n effect(() => {\n const el = this.editor()?.nativeElement;\n const v = this.value();\n if (el && el.innerHTML !== v) el.innerHTML = this.sanitizeHtml(v);\n });\n\n // Odzwierciedlenie stanu aktywnego narzędzi na podstawie zaznaczenia.\n const onSel = () => this.refreshState();\n const onMove = (e: MouseEvent) => this.onResizeMove(e);\n const onUp = () => this.onResizeEnd();\n document.addEventListener('selectionchange', onSel);\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n inject(DestroyRef).onDestroy(() => {\n document.removeEventListener('selectionchange', onSel);\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n });\n }\n\n protected icon(item: KptRichTool): KptIconName {\n return ICON[item];\n }\n protected aria(item: KptRichTool): string {\n return this.i18n.t(`richText.${item}`);\n }\n protected isActive(item: KptRichTool): boolean {\n if (item === 'html') return this.sourceView();\n const cmd = COMMAND[item];\n return !!cmd && this.activeCmds().has(cmd);\n }\n /** `aria-pressed` tylko dla przełączników — wcięcia są akcjami, nie stanem. */\n protected pressed(item: KptRichTool): boolean | null {\n return item === 'indent' || item === 'outdent' ? null : this.isActive(item);\n }\n /** Wcięcia są aktywne wyłącznie tam, gdzie faktycznie coś zrobią (kursor w liście). */\n protected enabled(item: KptRichTool): boolean {\n if (item === 'indent') return this.canIndent();\n if (item === 'outdent') return this.canOutdent();\n return true;\n }\n\n private inEditor(): boolean {\n const el = this.editor()?.nativeElement;\n const sel = window.getSelection();\n return !!el && !!sel && sel.rangeCount > 0 && el.contains(sel.anchorNode);\n }\n\n /**\n * Jedyne wywołanie `document.execCommand` w komponencie. API jest formalnie deprecated, ale nie\n * ma zamiennika: to jedyny sposób formatowania, który trafia do natywnego stosu undo przeglądarki\n * (Ctrl+Z). Własna implementacja komend wymagałaby własnej historii — czyli przepisania edytora.\n */\n private legacyExec(cmd: string, value?: string): boolean {\n return document.execCommand(cmd, false, value); // NOSONAR: brak zamiennika, patrz JSDoc\n }\n /** Stan komendy dla podświetlenia narzędzi; nieobsługiwana komenda → `false`. */\n private legacyState(cmd: string): boolean {\n try {\n return document.queryCommandState(cmd); // NOSONAR: brak zamiennika, patrz `legacyExec`\n } catch {\n return false;\n }\n }\n\n /** Komendy aktywne dla bieżącego zaznaczenia (podświetlenie narzędzi). */\n private activeCommands(): Set<string> {\n const active = new Set<string>();\n for (const cmd of Object.values(COMMAND)) {\n if (cmd && cmd !== 'removeFormat' && this.legacyState(cmd)) active.add(cmd);\n }\n return active;\n }\n\n /** Tag bloku, w którym stoi kursor (dla selecta stylu); domyślnie paragraf. */\n private blockTag(): string {\n let node = window.getSelection()?.anchorNode as HTMLElement | null;\n while (node && node !== this.editor()?.nativeElement) {\n const tag = node.tagName?.toLowerCase();\n if (tag && /^(h[1-6]|p|blockquote)$/.test(tag)) return tag;\n node = node.parentElement;\n }\n return 'p';\n }\n\n private refreshState(): void {\n if (this.disabled() || !this.inEditor()) return;\n this.activeCmds.set(this.activeCommands());\n // Stan wcięć — te same warunki, których użyje sama operacja.\n const items = this.listItems();\n this.canIndent.set(items.some((li) => this.canIndentItem(li)));\n this.canOutdent.set(items.some((li) => this.canOutdentItem(li)));\n this.currentBlock.set(this.blockTag());\n }\n\n protected onInput(): void {\n const el = this.editor()?.nativeElement;\n if (el) this.value.set(el.innerHTML);\n }\n protected onSource(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n }\n\n private focusEditor(): void {\n this.editor()?.nativeElement.focus();\n }\n private saveSelection(): void {\n const sel = window.getSelection();\n this.savedRange = sel && sel.rangeCount > 0 ? sel.getRangeAt(0).cloneRange() : null;\n }\n private restoreSelection(): void {\n const sel = window.getSelection();\n if (this.savedRange && sel) {\n sel.removeAllRanges();\n sel.addRange(this.savedRange);\n }\n }\n\n protected exec(item: KptRichTool): void {\n if (this.disabled()) return;\n if (item === 'html') {\n this.sourceView.update((v) => !v);\n return;\n }\n if (item === 'table') {\n this.saveSelection();\n this.tableOpen.set(true);\n return;\n }\n this.focusEditor();\n switch (item) {\n case 'link': {\n const url = window.prompt(this.i18n.t('richText.linkPrompt'));\n if (url) {\n const safe = this.sanitizeUrl(url);\n if (safe) this.legacyExec('createLink', safe);\n }\n break;\n }\n case 'copy':\n void this.copySelection();\n return;\n case 'paste':\n void this.pasteRich();\n return;\n case 'pasteText':\n void this.pastePlain();\n return;\n case 'indent':\n case 'outdent':\n this.shiftItems(item);\n return; // shiftItems sam odświeża wartość i stan\n default: {\n const cmd = COMMAND[item];\n if (cmd) this.legacyExec(cmd);\n }\n }\n this.onInput();\n this.refreshState();\n }\n\n // ── Listy: wcięcia (Tab / narzędzia „Dodaj/Usuń wcięcie\") ──\n\n /** Najbliższy punkt listy zawierający węzeł (tylko wewnątrz edytora). */\n private closestItem(node: Node | null): HTMLLIElement | null {\n const editor = this.editor()?.nativeElement;\n const el = node instanceof Element ? node : (node?.parentElement ?? null);\n const li = el?.closest('li') ?? null;\n return li instanceof HTMLLIElement && editor?.contains(li) ? li : null;\n }\n\n /** Poziom punktu w obrębie edytora (1 = najwyższy). */\n private level(li: HTMLLIElement): number {\n const editor = this.editor()?.nativeElement;\n let depth = 1;\n let parent = li.parentElement?.closest('li') ?? null;\n while (parent && editor?.contains(parent)) {\n depth++;\n parent = parent.parentElement?.closest('li') ?? null;\n }\n return depth;\n }\n\n /** Najgłębszy poziom w poddrzewie punktu — wcięcie przenosi podpunkty razem z rodzicem. */\n private deepest(li: HTMLLIElement): number {\n const base = this.level(li);\n let max = base;\n for (const nested of li.querySelectorAll('li')) max = Math.max(max, this.level(nested));\n return max;\n }\n\n private canIndentItem(li: HTMLLIElement): boolean {\n return li.previousElementSibling instanceof HTMLLIElement && this.deepest(li) < this.maxListLevel();\n }\n private canOutdentItem(li: HTMLLIElement): boolean {\n return li.parentElement?.parentElement instanceof HTMLLIElement;\n }\n\n /**\n * Punkty listy objęte zaznaczeniem. Przy zaznaczeniu wielu punktów operujemy na ich wspólnym\n * poziomie zagnieżdżenia — inaczej podpunkt dostałby wcięcie dwa razy (raz sam, raz z rodzicem).\n */\n private listItems(): HTMLLIElement[] {\n const editor = this.editor()?.nativeElement;\n const sel = window.getSelection();\n if (!editor || !sel || sel.rangeCount === 0) return [];\n const range = sel.getRangeAt(0);\n if (!editor.contains(range.commonAncestorContainer)) return [];\n const start = this.closestItem(range.startContainer);\n const end = this.closestItem(range.endContainer);\n if (!start) return [];\n if (!end || start === end) return [start];\n // Podnieś głębszy koniec, aż oba będą rodzeństwem w tej samej liście.\n let a: HTMLLIElement | null = start;\n let b: HTMLLIElement | null = end;\n while (a && b && a.parentElement !== b.parentElement) {\n if (this.level(a) >= this.level(b)) a = this.closestItem(a.parentElement);\n else b = this.closestItem(b.parentElement);\n }\n if (!a || !b || !a.parentElement) return [start];\n const siblings = [...a.parentElement.children].filter((el): el is HTMLLIElement => el instanceof HTMLLIElement);\n const from = siblings.indexOf(a);\n const to = siblings.indexOf(b);\n if (from < 0 || to < 0) return [start];\n return siblings.slice(Math.min(from, to), Math.max(from, to) + 1);\n }\n\n /** Zagnieżdża punkt w podliście poprzedniego punktu (poprawne `li > ul > li`). */\n private indentItem(li: HTMLLIElement): boolean {\n if (!this.canIndentItem(li)) return false;\n const prev = li.previousElementSibling as HTMLLIElement;\n let sub: Element | null = prev.lastElementChild;\n if (!(sub instanceof HTMLUListElement || sub instanceof HTMLOListElement)) {\n sub = document.createElement(li.parentElement?.tagName ?? 'UL'); // ta sama numeracja co poziom wyżej\n prev.append(sub);\n }\n sub.append(li);\n return true;\n }\n\n /** Wyciąga punkt poziom wyżej; rodzeństwo po nim trafia do jego podlisty (kolejność bez zmian). */\n private outdentItem(li: HTMLLIElement): boolean {\n const list = li.parentElement;\n const host = list?.parentElement;\n if (!list || !(host instanceof HTMLLIElement)) return false;\n const children = [...list.children];\n const after = children.slice(children.indexOf(li) + 1);\n if (after.length > 0) {\n let own: Element | null = li.lastElementChild;\n if (!(own instanceof HTMLUListElement || own instanceof HTMLOListElement)) {\n own = document.createElement(list.tagName);\n li.append(own);\n }\n own.append(...after);\n }\n host.after(li);\n if (list.children.length === 0) list.remove();\n return true;\n }\n\n /** Zwraca `true`, gdy DOM faktycznie się zmienił — od tego zależy `preventDefault()` dla Taba. */\n private shiftItems(dir: 'indent' | 'outdent'): boolean {\n if (this.disabled()) return false;\n const items = this.listItems();\n if (items.length === 0) return false;\n // Migawka granic kursora: przy usunięciu węzła spec DOM przestawia *żywy* Range na starego\n // rodzica, więc `saveSelection()` wyprowadziłby kursor poza przenoszony punkt. Same węzły\n // jadą razem z `li`, więc odtwarzamy z nich zaznaczenie po mutacji.\n const sel = window.getSelection();\n const range = sel && sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\n const caret = range\n ? { sc: range.startContainer, so: range.startOffset, ec: range.endContainer, eo: range.endOffset }\n : null;\n // Outdent od końca — inaczej `host.after()` odwróciłby kolejność przenoszonych punktów.\n const order = dir === 'outdent' ? [...items].reverse() : items;\n let changed = false;\n for (const li of order) {\n const done = dir === 'indent' ? this.indentItem(li) : this.outdentItem(li);\n changed = done || changed;\n }\n if (!changed) return false;\n if (caret && sel && caret.sc.isConnected && caret.ec.isConnected) {\n try {\n const restored = document.createRange();\n restored.setStart(caret.sc, caret.so);\n restored.setEnd(caret.ec, caret.eo);\n sel.removeAllRanges();\n sel.addRange(restored);\n } catch {\n /* offset przestał pasować po przeniesieniu rodzeństwa — zostaw kursor tam, gdzie jest */\n }\n }\n this.onInput();\n this.refreshState();\n return true;\n }\n\n /**\n * Tab: wcięcie w liście, przeskok komórki w tabeli (lista w komórce ma pierwszeństwo; gdy nie da\n * się już wciąć — przechodzimy do sąsiedniej komórki). Poza nimi i na krawędziach zostawiamy Tab\n * natywny — inaczej edytor byłby pułapką klawiaturową (WCAG 2.1.2).\n */\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled() || event.key !== 'Tab' || event.ctrlKey || event.altKey || event.metaKey) return;\n if (this.shiftItems(event.shiftKey ? 'outdent' : 'indent')) {\n event.preventDefault();\n return;\n }\n const node = window.getSelection()?.anchorNode ?? null;\n const el = node instanceof Element ? node : (node?.parentElement ?? null);\n const cell = el?.closest('td, th') as HTMLTableCellElement | null;\n if (cell && this.editor()?.nativeElement.contains(cell) && this.moveCell(cell, event.shiftKey)) {\n event.preventDefault();\n }\n }\n\n /** Przeskok do sąsiedniej komórki z zaznaczeniem jej treści; `false` = koniec tabeli. */\n private moveCell(cell: HTMLTableCellElement, back: boolean): boolean {\n const table = cell.closest('table');\n if (!table) return false;\n const cells = [...table.querySelectorAll('td, th')];\n const next = cells[cells.indexOf(cell) + (back ? -1 : 1)];\n if (!next) return false;\n const range = document.createRange();\n range.selectNodeContents(next);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(range);\n this.clearSelection();\n this.refreshState();\n return true;\n }\n\n // ── Styl bloku (dropdown w stylu kpt-select, z podglądem wielkości) ──\n protected openStyle(): void {\n if (this.disabled()) return;\n this.saveSelection();\n this.styleOpen.set(true);\n }\n protected closeStyle(): void {\n this.styleOpen.set(false);\n }\n protected pickStyle(tag: string): void {\n this.styleOpen.set(false);\n this.focusEditor();\n this.restoreSelection();\n this.legacyExec('formatBlock', `<${tag}>`);\n this.onInput();\n this.refreshState();\n }\n\n // ── Kolory ──\n protected openColor(kind: 'foreColor' | 'backColor'): void {\n if (this.disabled()) return;\n this.saveSelection();\n this.colorKind.set(kind);\n this.colorOpen.set(true);\n }\n protected closeColor(): void {\n this.colorOpen.set(false);\n }\n protected applyColor(color: string): void {\n this.colorOpen.set(false);\n if (this.colorKind() === 'cellBg') {\n for (const cell of this.activeCells()) cell.style.backgroundColor = color;\n this.onInput();\n return;\n }\n this.focusEditor();\n this.restoreSelection();\n if (this.colorKind() === 'foreColor') {\n this.legacyExec('foreColor', color);\n } else if (!this.legacyExec('hiliteColor', color)) {\n this.legacyExec('backColor', color);\n }\n this.onInput();\n }\n protected onColorInput(event: Event): void {\n this.applyColor((event.target as HTMLInputElement).value);\n }\n\n // ── Schowek ──\n /** Kopiowanie przez async Clipboard API (jak wklejanie); fallback na starą komendę. */\n private async copySelection(): Promise<void> {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0 || sel.isCollapsed) return;\n const holder = document.createElement('div');\n holder.append(sel.getRangeAt(0).cloneContents());\n try {\n await navigator.clipboard.write([\n new ClipboardItem({\n 'text/html': new Blob([holder.innerHTML], { type: 'text/html' }),\n 'text/plain': new Blob([sel.toString()], { type: 'text/plain' }),\n }),\n ]);\n } catch {\n this.legacyExec('copy'); // brak uprawnień / starsza przeglądarka\n }\n }\n\n private async pasteRich(): Promise<void> {\n try {\n const items = await navigator.clipboard.read();\n for (const it of items) {\n if (it.types.includes('text/html')) {\n const blob = await it.getType('text/html');\n const html = this.sanitizeHtml(await blob.text());\n this.focusEditor();\n this.legacyExec('insertHTML', html);\n this.onInput();\n return;\n }\n }\n const text = await navigator.clipboard.readText();\n this.focusEditor();\n this.legacyExec('insertText', text);\n this.onInput();\n } catch {\n /* brak uprawnień / brak API — ignoruj */\n }\n }\n private async pastePlain(): Promise<void> {\n try {\n const text = await navigator.clipboard.readText();\n this.focusEditor();\n this.legacyExec('insertText', text);\n this.onInput();\n } catch {\n /* brak uprawnień / brak API — ignoruj */\n }\n }\n\n /** Natywne wklejanie — oczyść (bez śmieci z Worda/WWW). */\n protected onPaste(event: ClipboardEvent): void {\n if (this.disabled()) return;\n const html = event.clipboardData?.getData('text/html');\n const text = event.clipboardData?.getData('text/plain') ?? '';\n event.preventDefault();\n if (html) {\n this.legacyExec('insertHTML', this.sanitizeHtml(html));\n } else {\n this.legacyExec('insertText', text);\n }\n this.onInput();\n }\n\n // ── Tabele: wstawianie ──\n protected closeTable(): void {\n this.tableOpen.set(false);\n this.gridR.set(0);\n this.gridC.set(0);\n }\n protected gridHover(r: number, c: number): void {\n this.gridR.set(r);\n this.gridC.set(c);\n }\n protected insertTable(rows: number, cols: number): void {\n this.closeTable();\n this.focusEditor();\n this.restoreSelection();\n const w = (100 / cols).toFixed(4);\n const col = `<col style=\"width:${w}%\">`;\n const cell = '<td><br></td>';\n const row = `<tr>${cell.repeat(cols)}</tr>`;\n const colgroup = `<colgroup>${col.repeat(cols)}</colgroup>`;\n const body = `<tbody>${row.repeat(rows)}</tbody>`;\n const table = `<table class=\"kpt-rt-table\">${colgroup}${body}</table>`;\n this.legacyExec('insertHTML', `${table}<p><br></p>`);\n this.onInput();\n }\n\n // ── Tabele: menu kontekstowe ──\n protected onContextMenu(event: MouseEvent): void {\n if (this.disabled()) return;\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n const editor = this.editor()?.nativeElement;\n if (!cell || !editor?.contains(cell)) return; // poza tabelą → natywne menu\n event.preventDefault();\n this.ctxCell = cell;\n this.canSplitCtx = (cell.colSpan || 1) > 1 || (cell.rowSpan || 1) > 1;\n this.menuPoint.set({ x: event.clientX, y: event.clientY });\n this.menuOpen.set(true);\n }\n protected closeMenu(): void {\n this.menuOpen.set(false);\n }\n\n private ctxTable(): HTMLTableElement | null {\n return this.ctxCell?.closest('table') ?? null;\n }\n private afterTableOp(): void {\n this.menuOpen.set(false);\n this.onInput();\n }\n\n protected insertColumn(dir: 'left' | 'right'): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex + (dir === 'right' ? 1 : 0);\n for (const tr of Array.from(table.rows)) {\n const td = document.createElement('td');\n td.innerHTML = '<br>';\n tr.insertBefore(td, tr.cells[idx] ?? null);\n }\n const colgroup = table.querySelector('colgroup');\n if (colgroup) {\n const col = document.createElement('col');\n colgroup.insertBefore(col, colgroup.children[idx] ?? null);\n this.normalizeColWidths(table);\n }\n this.afterTableOp();\n }\n protected deleteColumn(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex;\n if ((table.rows[0]?.cells.length ?? 0) <= 1) {\n table.remove();\n this.afterTableOp();\n return;\n }\n for (const tr of Array.from(table.rows)) tr.cells[idx]?.remove();\n table.querySelector('colgroup')?.children[idx]?.remove();\n this.normalizeColWidths(table);\n this.afterTableOp();\n }\n protected insertRow(dir: 'above' | 'below'): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const tr = cell.parentElement as HTMLTableRowElement;\n const cols = tr.cells.length;\n const newRow = document.createElement('tr');\n newRow.innerHTML = Array.from({ length: cols }, () => '<td><br></td>').join('');\n tr.parentElement?.insertBefore(newRow, dir === 'below' ? tr.nextSibling : tr);\n this.afterTableOp();\n }\n protected deleteRow(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n if (table.rows.length <= 1) {\n table.remove();\n this.afterTableOp();\n return;\n }\n (cell.parentElement as HTMLTableRowElement).remove();\n this.afterTableOp();\n }\n /** Zamień komórki wiersza między `<td>` a `<th>` (wiersz nagłówka). */\n protected toggleHeaderRow(): void {\n const cell = this.ctxCell;\n if (!cell) return;\n const tr = cell.parentElement as HTMLTableRowElement;\n const toHeader = tr.cells[0]?.tagName !== 'TH';\n for (const c of Array.from(tr.cells)) this.swapCellTag(c, toHeader ? 'th' : 'td');\n this.ctxCell = null; // komórki zostały podmienione\n this.afterTableOp();\n }\n /** Zamień komórki kolumny między `<td>` a `<th>` (kolumna nagłówka). */\n protected toggleHeaderColumn(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex;\n const toHeader = cell.tagName !== 'TH';\n for (const tr of Array.from(table.rows)) {\n const c = tr.cells[idx];\n if (c) this.swapCellTag(c, toHeader ? 'th' : 'td');\n }\n this.ctxCell = null;\n this.afterTableOp();\n }\n private swapCellTag(cell: HTMLTableCellElement, tag: 'td' | 'th'): void {\n if (cell.tagName.toLowerCase() === tag) return;\n const el = document.createElement(tag);\n for (const a of Array.from(cell.attributes)) el.setAttribute(a.name, a.value);\n el.append(...Array.from(cell.childNodes));\n cell.replaceWith(el);\n }\n protected deleteTable(): void {\n this.ctxTable()?.remove();\n this.afterTableOp();\n }\n protected alignCell(a: 'left' | 'center' | 'right'): void {\n for (const cell of this.activeCells()) cell.style.textAlign = a;\n this.afterTableOp();\n }\n /** Komórki objęte operacją: zaznaczenie (jeśli jest) lub bieżąca komórka menu. */\n private activeCells(): HTMLTableCellElement[] {\n if (this.selCells.size) return [...this.selCells];\n return this.ctxCell ? [this.ctxCell] : [];\n }\n protected openCellBg(): void {\n this.menuOpen.set(false);\n this.colorKind.set('cellBg');\n this.colorOpen.set(true);\n }\n\n // ── Obramowanie (tabela / komórka) ──\n protected openBorder(): void {\n this.menuOpen.set(false);\n this.borderOpen.set(true);\n }\n protected closeBorder(): void {\n this.borderOpen.set(false);\n }\n private borderCells(): HTMLTableCellElement[] {\n if (this.borderTarget() === 'cell') return this.activeCells();\n const table = this.ctxTable();\n return table ? (Array.from(table.querySelectorAll('td, th')) as HTMLTableCellElement[]) : [];\n }\n protected setBorderWidth(w: 'none' | 'thin' | 'medium' | 'thick'): void {\n const px: Record<string, string> = { thin: '1px', medium: '2px', thick: '3px' };\n for (const cell of this.borderCells()) {\n if (w === 'none') {\n cell.style.borderStyle = 'none';\n cell.style.borderWidth = '';\n } else {\n cell.style.borderStyle = 'solid';\n cell.style.borderWidth = px[w];\n }\n }\n this.onInput();\n }\n protected setBorderColor(color: string): void {\n for (const cell of this.borderCells()) {\n cell.style.borderColor = color;\n if (!cell.style.borderStyle || cell.style.borderStyle === 'none') cell.style.borderStyle = 'solid';\n if (!cell.style.borderWidth) cell.style.borderWidth = '1px';\n }\n this.onInput();\n }\n protected onBorderColorInput(event: Event): void {\n this.setBorderColor((event.target as HTMLInputElement).value);\n }\n private normalizeColWidths(table: HTMLTableElement): void {\n const cols = Array.from(table.querySelectorAll('col'));\n const w = (100 / cols.length).toFixed(4);\n for (const col of cols) (col as HTMLElement).style.width = `${w}%`;\n }\n\n // ── Tabele: resize kolumn + zaznaczanie komórek ──\n protected onEditorMouseDown(event: MouseEvent): void {\n if (this.disabled() || event.button !== 0) return; // tylko lewy przycisk\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n if (!cell) {\n this.clearSelection();\n return;\n }\n const rect = cell.getBoundingClientRect();\n if (event.clientX >= rect.right - 6) {\n // Strefa przy prawej krawędzi → resize kolumny.\n const table = cell.closest('table');\n const col = table?.querySelectorAll('col')[cell.cellIndex] as HTMLTableColElement | undefined;\n if (col) {\n event.preventDefault();\n this.resize = { col, startX: event.clientX, startW: col.getBoundingClientRect().width };\n return;\n }\n }\n // Start zaznaczania (potwierdzone dopiero przy ruchu).\n this.clearSelection();\n this.selAnchor = cell;\n this.selecting = false;\n }\n protected onEditorMouseMove(event: MouseEvent): void {\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n const editor = this.editor()?.nativeElement;\n if (!editor) return;\n const near = !!cell && event.clientX >= cell.getBoundingClientRect().right - 6;\n editor.classList.toggle('is-col-resize', near || !!this.resize);\n }\n private onResizeMove(event: MouseEvent): void {\n if (this.resize) {\n const w = Math.max(32, this.resize.startW + (event.clientX - this.resize.startX));\n this.resize.col.style.width = `${w}px`;\n return;\n }\n // Przeciąganie zaznaczenia komórek.\n if (!this.selAnchor || !(event.buttons & 1)) return;\n const target = event.target;\n if (!(target instanceof Element)) return;\n const focus = target.closest('td, th') as HTMLTableCellElement | null;\n if (focus?.closest('table') !== this.selAnchor.closest('table')) return;\n if (focus === this.selAnchor && !this.selecting) return;\n this.selecting = true;\n event.preventDefault();\n window.getSelection()?.removeAllRanges();\n this.selectRegion(this.selAnchor, focus);\n }\n private onResizeEnd(): void {\n if (this.resize) {\n this.resize = null;\n this.onInput();\n }\n if (this.selAnchor && !this.selecting) this.clearSelection(); // zwykły klik\n this.selAnchor = null;\n this.selecting = false;\n }\n\n // ── Macierz siatki (uwzględnia colspan/rowspan) ──\n private buildGrid(table: HTMLTableElement): { grid: HTMLTableCellElement[][]; pos: GridPos } {\n const grid: HTMLTableCellElement[][] = [];\n const pos: GridPos = new Map();\n const rows = Array.from(table.rows);\n rows.forEach((tr, r) => {\n grid[r] ??= [];\n let c = 0;\n for (const cell of Array.from(tr.cells)) {\n while (grid[r][c]) c++; // pomiń zajęte przez rowspan wyżej\n const colspan = cell.colSpan || 1;\n const rowspan = cell.rowSpan || 1;\n pos.set(cell, { r, c, rowspan, colspan });\n for (let dr = 0; dr < rowspan; dr++) {\n grid[r + dr] ??= [];\n for (let dc = 0; dc < colspan; dc++) grid[r + dr][c + dc] = cell;\n }\n c += colspan;\n }\n });\n return { grid, pos };\n }\n\n /** Jeden przebieg rozszerzania granic o komórki wystające poza region; `true` = coś się zmieniło. */\n private growBounds(grid: HTMLTableCellElement[][], pos: GridPos, b: Bounds): boolean {\n let changed = false;\n for (const cell of this.cellsInRegion(grid, b)) {\n const p = pos.get(cell)!;\n if (p.r < b.r0) { b.r0 = p.r; changed = true; }\n if (p.c < b.c0) { b.c0 = p.c; changed = true; }\n if (p.r + p.rowspan - 1 > b.r1) { b.r1 = p.r + p.rowspan - 1; changed = true; }\n if (p.c + p.colspan - 1 > b.c1) { b.c1 = p.c + p.colspan - 1; changed = true; }\n }\n return changed;\n }\n\n /** Komórki leżące w prostokącie siatki (scalone trafiają raz — to `Set`). */\n private cellsInRegion(grid: HTMLTableCellElement[][], b: Bounds): Set<HTMLTableCellElement> {\n const set = new Set<HTMLTableCellElement>();\n for (let r = b.r0; r <= b.r1; r++) {\n for (let c = b.c0; c <= b.c1; c++) {\n const cell = grid[r]?.[c];\n if (cell) set.add(cell);\n }\n }\n return set;\n }\n\n private selectRegion(anchor: HTMLTableCellElement, focus: HTMLTableCellElement): void {\n const table = anchor.closest('table') as HTMLTableElement | null;\n if (!table) return;\n const { grid, pos } = this.buildGrid(table);\n const a = pos.get(anchor);\n const f = pos.get(focus);\n if (!a || !f) return;\n const bounds: Bounds = {\n r0: Math.min(a.r, f.r),\n c0: Math.min(a.c, f.c),\n r1: Math.max(a.r + a.rowspan - 1, f.r + f.rowspan - 1),\n c1: Math.max(a.c + a.colspan - 1, f.c + f.colspan - 1),\n };\n // Rozszerzaj, aż region w pełni obejmie scalone komórki na brzegach.\n while (this.growBounds(grid, pos, bounds)) {\n /* granice rosną do skutku */\n }\n const set = this.cellsInRegion(grid, bounds);\n this.clearSelection();\n for (const cell of set) cell.classList.add('kpt-rt-cell-sel');\n this.selCells = set;\n this.selCount.set(set.size);\n }\n\n private clearSelection(): void {\n for (const cell of this.selCells) cell.classList.remove('kpt-rt-cell-sel');\n this.selCells = new Set();\n this.selCount.set(0);\n }\n\n // ── Scalanie / dzielenie ──\n protected mergeCells(): void {\n if (this.selCells.size < 2) return;\n const cells = [...this.selCells];\n const table = cells[0].closest('table') as HTMLTableElement;\n const { pos } = this.buildGrid(table);\n let r0 = Infinity, c0 = Infinity, r1 = -1, c1 = -1;\n for (const cell of cells) {\n const p = pos.get(cell)!;\n r0 = Math.min(r0, p.r); c0 = Math.min(c0, p.c);\n r1 = Math.max(r1, p.r + p.rowspan - 1); c1 = Math.max(c1, p.c + p.colspan - 1);\n }\n const topLeft = cells.find((cell) => { const p = pos.get(cell)!; return p.r === r0 && p.c === c0; }) ?? cells[0];\n // Przenieś niepustą treść pozostałych komórek do górnej-lewej.\n for (const cell of cells) {\n if (cell === topLeft) continue;\n const html = cell.innerHTML.trim();\n if (html && html !== '<br>') topLeft.innerHTML += ` ${html}`;\n cell.remove();\n }\n const colspan = c1 - c0 + 1;\n const rowspan = r1 - r0 + 1;\n if (colspan > 1) topLeft.colSpan = colspan; else topLeft.removeAttribute('colspan');\n if (rowspan > 1) topLeft.rowSpan = rowspan; else topLeft.removeAttribute('rowspan');\n this.clearSelection();\n this.menuOpen.set(false);\n this.onInput();\n }\n protected splitCell(): void {\n const cell = this.ctxCell;\n if (!cell) return;\n const table = cell.closest('table') as HTMLTableElement;\n const { pos } = this.buildGrid(table);\n const p = pos.get(cell);\n if (!p || (p.colspan <= 1 && p.rowspan <= 1)) return;\n const tag = cell.tagName.toLowerCase();\n cell.removeAttribute('colspan');\n cell.removeAttribute('rowspan');\n // Uzupełnij brakujące pozycje siatki pustymi komórkami (dla każdego pokrytego wiersza).\n for (let dr = 0; dr < p.rowspan; dr++) {\n const count = dr === 0 ? p.colspan - 1 : p.colspan; // origin zostaje w pierwszym wierszu\n if (count <= 0) continue;\n const row = table.rows[p.r + dr];\n const before = this.cellBeforeGridCol(row, p.c, table);\n for (let i = 0; i < count; i++) {\n const el = document.createElement(tag);\n el.innerHTML = '<br>';\n if (before) before.before(el);\n else row.append(el); // brak komórki o większym origin-col → na koniec wiersza\n }\n }\n this.menuOpen.set(false);\n this.onInput();\n }\n /** Komórka w wierszu, przed którą wstawić (pierwsza o origin-col > gridCol), lub null (na koniec). */\n private cellBeforeGridCol(row: HTMLTableRowElement, gridCol: number, table: HTMLTableElement): HTMLTableCellElement | null {\n const { pos } = this.buildGrid(table);\n for (const cell of Array.from(row.cells)) {\n const p = pos.get(cell);\n if (p && p.c > gridCol) return cell;\n }\n return null;\n }\n protected canMerge(): boolean {\n return this.selCells.size >= 2;\n }\n protected canSplit(): boolean {\n return this.canSplitCtx;\n }\n\n /**\n * Waliduje URL z narzędzia „link\" (blocklista jest obchodzalna, np. `javascript:`).\n * Brak schematu → dopisz `https://` (spójne z zachowaniem `normalizeUrl` w mapie); `#`/`/`\n * przechodzą bez zmian; schemat spoza `SAFE_URL_SCHEME` → `null` (link nie zostaje wstawiony).\n */\n private sanitizeUrl(url: string): string | null {\n const trimmed = url.trim().replace(/[\\x00-\\x1f]/g, '');\n if (!trimmed) return null;\n if (trimmed.startsWith('#') || trimmed.startsWith('/')) return trimmed;\n if (!HAS_URL_SCHEME.test(trimmed)) return `https://${trimmed}`;\n return SAFE_URL_SCHEME.test(trimmed) ? trimmed : null;\n }\n\n private sanitizeHtml(html: string): string {\n const tpl = document.createElement('template');\n tpl.innerHTML = html;\n for (const el of Array.from(tpl.content.querySelectorAll('*'))) this.sanitizeElement(el);\n return tpl.innerHTML;\n }\n\n /** Tag spoza allowlisty rozwijamy do dzieci; atrybuty czyścimy po kolei. */\n private sanitizeElement(el: Element): void {\n if (!ALLOWED_TAGS.has(el.tagName)) {\n el.replaceWith(...Array.from(el.childNodes));\n return;\n }\n for (const attr of Array.from(el.attributes)) this.sanitizeAttribute(el, attr);\n }\n\n private sanitizeAttribute(el: Element, attr: Attr): void {\n const name = attr.name.toLowerCase();\n if (name.startsWith('on')) {\n el.removeAttribute(attr.name);\n } else if (name === 'href' || name === 'src') {\n // Usuń znaki kontrolne przed testem schematu — przeglądarka i tak je ignoruje przy\n // parsowaniu URL-a (WHATWG URL spec), więc `jav\\tascript:` obchodziłby sam blocklisting.\n if (/^\\s*javascript:/i.test(attr.value.replace(/[\\x00-\\x1f]/g, ''))) el.removeAttribute(attr.name);\n } else if (name === 'style') {\n const kept = this.sanitizeStyleAttr(attr.value);\n if (kept) el.setAttribute('style', kept);\n else el.removeAttribute('style');\n } else if (!ALLOWED_ATTRS.has(name) && name !== 'color') {\n el.removeAttribute(attr.name);\n }\n }\n\n /** Deklaracje `style` z allowlisty; `null`, gdy nie zostaje nic. */\n private sanitizeStyleAttr(value: string): string | null {\n const kept = value\n .split(';')\n .map((decl) => decl.trim())\n .filter((decl) => ALLOWED_STYLES.has(decl.split(':')[0]?.trim().toLowerCase()));\n return kept.length ? kept.join('; ') : null;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/** Wartość suwaka: pojedyncza liczba lub para `[min, max]` w trybie `range`. */\nexport type KptSliderValue = number | [number, number];\n\n/**\n * Suwak wartości (slider) na Signal Forms.\n * W trybie `range` udostępnia dwa uchwyty, a wartość jest parą `[min, max]`.\n *\n * Pod `[formField]` zakres bierze się ze schematu (`min(path.volume, 0)`,\n * `max(path.volume, 100)`) — `[min]`/`[max]` obok `[formField]` to błąd kompilacji.\n * Tryb `range` (wartość `[number, number]`) łączy się więc tylko z `[(value)]`.\n *\n * @example\n * <kpt-slider [formField]=\"f.volume\" [step]=\"5\" showValue />\n * <kpt-slider [(value)]=\"volume\" [min]=\"0\" [max]=\"100\" [step]=\"5\" showValue />\n * <kpt-slider range [(value)]=\"zakres\" [min]=\"0\" [max]=\"100\" showValue />\n */\n@Component({\n selector: 'kpt-slider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (range()) {\n <div class=\"kpt-slider__range\">\n <div class=\"kpt-slider__rail\"></div>\n <div class=\"kpt-slider__fill\" [style.left.%]=\"lowPct()\" [style.right.%]=\"100 - highPct()\"></div>\n <input\n class=\"kpt-slider__thumb kpt-slider__thumb--low\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"low()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"'Minimum'\"\n (input)=\"setLow(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n <input\n class=\"kpt-slider__thumb kpt-slider__thumb--high\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"high()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"'Maksimum'\"\n (input)=\"setHigh(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n </div>\n @if (showValue()) {\n <span class=\"kpt-slider__value\">{{ low() }}–{{ high() }}</span>\n }\n } @else {\n <input\n class=\"kpt-slider__input\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"single()\"\n [disabled]=\"disabled()\"\n [style.--_pct.%]=\"highPct()\"\n (input)=\"value.set(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n @if (showValue()) {\n <span class=\"kpt-slider__value\">{{ single() }}</span>\n }\n }\n `,\n styleUrl: './slider.component.scss',\n host: { class: 'kpt-slider-host' },\n})\nexport class KptSlider implements FormValueControl<KptSliderValue> {\n readonly value = model<KptSliderValue>(0);\n /** Tryb zakresu: dwa uchwyty; wartość jako para `[min, max]`. */\n readonly range = input(false, { transform: booleanAttribute });\n // Typ zgodny z FormValueControl<KptSliderValue> (FormField może zsync-ować walidatory min/max).\n // W praktyce zawsze liczby — do matematyki/szablonu używamy skalarnych `minN`/`maxN`.\n readonly min = input<KptSliderValue | undefined>(0);\n readonly max = input<KptSliderValue | undefined>(100);\n readonly step = input(1);\n readonly showValue = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n // Skalarne granice do szablonu i obliczeń (min/max są typowane szeroko dla FormValueControl).\n private toNum(v: KptSliderValue | undefined, fallback: number): number {\n return typeof v === 'number' ? v : fallback;\n }\n protected readonly minN = computed(() => this.toNum(this.min(), 0));\n protected readonly maxN = computed(() => this.toNum(this.max(), 100));\n\n /** Bieżąca para `[low, high]` — również dla trybu pojedynczego (low = min). */\n private readonly pair = computed<[number, number]>(() => {\n const v = this.value();\n if (Array.isArray(v)) return [v[0], v[1]];\n return [this.minN(), v];\n });\n protected readonly single = computed(() => {\n const v = this.value();\n return Array.isArray(v) ? v[1] : v;\n });\n protected readonly low = computed(() => this.pair()[0]);\n protected readonly high = computed(() => this.pair()[1]);\n\n protected setLow(v: number): void {\n const [, hi] = this.pair();\n this.value.set([Math.min(v, hi), hi]);\n }\n protected setHigh(v: number): void {\n const [lo] = this.pair();\n this.value.set([lo, Math.max(v, lo)]);\n }\n\n private pct(val: number): number {\n const mn = this.minN();\n const mx = this.maxN();\n const range = mx - mn;\n return range <= 0 ? 0 : ((val - mn) / range) * 100;\n }\n protected readonly lowPct = computed(() => this.pct(this.low()));\n protected readonly highPct = computed(() => this.pct(this.high()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Ocena gwiazdkami (rating) na Signal Forms.\n *\n * @example\n * <kpt-rating [formField]=\"f.score\" [count]=\"5\" />\n * <kpt-rating [value]=\"4\" readonly />\n */\n@Component({\n selector: 'kpt-rating',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-rating\" role=\"slider\" [attr.aria-valuenow]=\"value()\" [attr.aria-valuemax]=\"count()\">\n @for (star of stars(); track star) {\n <button\n type=\"button\"\n class=\"kpt-rating__star\"\n [class.is-filled]=\"star <= (hover() || value())\"\n [disabled]=\"readonly() || disabled()\"\n (click)=\"pick(star)\"\n (mouseenter)=\"hover.set(star)\"\n (mouseleave)=\"hover.set(0)\"\n [attr.aria-label]=\"i18n.t('rating.star', { value: star, max: count() })\"\n ><kpt-icon name=\"star\" /></button>\n }\n </div>\n `,\n styleUrl: './rating.component.scss',\n host: { class: 'kpt-rating-host' },\n})\nexport class KptRating implements FormValueControl<number> {\n readonly value = model<number>(0);\n /** Liczba gwiazdek. */\n readonly count = input(5);\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n\n protected readonly hover = signal(0);\n protected readonly stars = computed(() => Array.from({ length: this.count() }, (_, i) => i + 1));\n\n protected pick(star: number): void {\n if (this.readonly() || this.disabled()) return;\n this.value.set(this.value() === star ? 0 : star);\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Wgrywanie plików (drag-drop + wybór). Wartość = File[]. Signal Forms.\n *\n * @example\n * <kpt-file-upload [formField]=\"f.files\" accept=\"image/*\" multiple />\n */\n@Component({\n selector: 'kpt-file-upload',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div\n class=\"kpt-file-upload__zone\"\n [class.is-dragover]=\"dragover()\"\n [class.is-disabled]=\"disabled()\"\n (click)=\"fileInput.click()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"dragover.set(false)\"\n (drop)=\"onDrop($event)\"\n >\n <input #fileInput type=\"file\" hidden [accept]=\"accept()\" [multiple]=\"multiple()\" (change)=\"onSelect($event)\" />\n <kpt-icon name=\"upload\" class=\"kpt-file-upload__icon\" />\n <div class=\"kpt-file-upload__text\" [innerHTML]=\"i18n.t('fileUpload.hint')\"></div>\n @if (accept()) { <div class=\"kpt-file-upload__hint\">{{ accept() }}</div> }\n </div>\n\n @if (value().length) {\n <ul class=\"kpt-file-upload__list\">\n @for (file of value(); track file.name) {\n <li class=\"kpt-file-upload__file\">\n <kpt-icon name=\"photo\" />\n <span class=\"kpt-file-upload__name\">{{ file.name }}</span>\n <span class=\"kpt-file-upload__size\">{{ size(file) }}</span>\n <button type=\"button\" class=\"kpt-file-upload__remove\" (click)=\"remove(file, $event)\" [attr.aria-label]=\"i18n.t('fileUpload.remove')\"><kpt-icon name=\"trash\" /></button>\n </li>\n }\n </ul>\n }\n `,\n styleUrl: './file-upload.component.scss',\n host: { class: 'kpt-file-upload-host' },\n})\nexport class KptFileUpload implements FormValueControl<File[]> {\n readonly value = model<File[]>([]);\n readonly accept = input('');\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly dragover = signal(false);\n\n protected onSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.addFiles(input.files);\n input.value = '';\n }\n protected onDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.disabled()) this.dragover.set(true);\n }\n protected onDrop(event: DragEvent): void {\n event.preventDefault();\n this.dragover.set(false);\n if (!this.disabled()) this.addFiles(event.dataTransfer?.files);\n }\n private addFiles(list: FileList | null | undefined): void {\n if (!list?.length) return;\n const arr = Array.from(list);\n this.value.set(this.multiple() ? [...this.value(), ...arr] : arr.slice(0, 1));\n this.touch.emit();\n }\n protected remove(file: File, event: Event): void {\n event.stopPropagation();\n this.value.set(this.value().filter((f) => f !== file));\n }\n protected size(file: File): string {\n const kb = file.size / 1024;\n return kb < 1024 ? `${kb.toFixed(0)} KB` : `${(kb / 1024).toFixed(1)} MB`;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Wybór koloru (swatch + hex + presety) na Signal Forms. Wartość = hex, np. '#3b82f6'.\n *\n * @example\n * <kpt-color-picker [formField]=\"f.brand\" />\n */\n@Component({\n selector: 'kpt-color-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-color-picker\">\n <label class=\"kpt-color-picker__swatch\" [style.background-color]=\"value()\">\n <input\n type=\"color\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n (input)=\"value.set($any($event.target).value)\"\n (blur)=\"touch.emit()\"\n />\n </label>\n <input\n type=\"text\"\n class=\"kpt-color-picker__hex\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n maxlength=\"7\"\n (input)=\"onHex($event)\"\n (blur)=\"touch.emit()\"\n />\n <div class=\"kpt-color-picker__presets\">\n @for (color of presets(); track color) {\n <button\n type=\"button\"\n class=\"kpt-color-picker__preset\"\n [class.is-active]=\"color === value()\"\n [style.background-color]=\"color\"\n [disabled]=\"disabled()\"\n (click)=\"value.set(color)\"\n [attr.aria-label]=\"color\"\n ></button>\n }\n </div>\n </div>\n `,\n styleUrl: './color-picker.component.scss',\n host: { class: 'kpt-color-picker-host' },\n})\nexport class KptColorPicker implements FormValueControl<string> {\n readonly value = model<string>('#3b82f6');\n readonly presets = input<readonly string[]>([\n '#ef4444', '#f59e0b', '#10b981', '#3b82f6', '#8b5cf6', '#ec4899', '#111827', '#ffffff',\n ]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected onHex(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","<div\n class=\"kpt-date-range\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-date-range--open]=\"open()\"\n [class.kpt-date-range--disabled]=\"disabled()\"\n [class.kpt-date-range--invalid]=\"showInvalid()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-date-range__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-date-range__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-date-range__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-date-range__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon class=\"kpt-date-range__icon\" name=\"calendar\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n class=\"kpt-calendar\"\n [class.kpt-calendar--clock]=\"mode() === 'time'\"\n [class.kpt-calendar--range]=\"mode() !== 'time'\"\n [class.kpt-calendar--multi]=\"multi() && mode() !== 'time'\"\n (keydown.escape)=\"close()\"\n >\n @if (mode() === 'time') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.from') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.to') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n } @else {\n <div class=\"kpt-calendar__panels\">\n @for (panel of panels(); track panel.key; let first = $first, last = $last) {\n <div class=\"kpt-calendar__panel\">\n <!-- Strzałki tylko na skrajnych panelach; puste sloty trzymają tytuł na środku. -->\n <div class=\"kpt-calendar__header\">\n @if (first) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevMonth()\" [attr.aria-label]=\"i18n.t('datepicker.prevMonth')\"><kpt-icon name=\"chevron-left\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n <span class=\"kpt-calendar__title\">{{ panel.label }}</span>\n @if (last) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextMonth()\" [attr.aria-label]=\"i18n.t('datepicker.nextMonth')\"><kpt-icon name=\"chevron-right\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n </div>\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of panel.weeks; track $index) {\n @for (cell of week; track cell.iso) {\n @if (cell.blank) {\n <span class=\"kpt-calendar__day kpt-calendar__day--blank\"></span>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--range]=\"cell.inRange\"\n [class.kpt-calendar__day--range-start]=\"cell.rangeStart\"\n [class.kpt-calendar__day--range-end]=\"cell.rangeEnd\"\n [class.kpt-calendar__day--selected]=\"cell.isStart || cell.isEnd\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n\n @if (mode() === 'datetime') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.fromTime') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.toTime') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n }\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport {\n buildRangeGrid,\n clampVisibleMonths,\n datePart,\n formatDate,\n formatTime,\n pad,\n parseTime,\n pickRangeDay,\n timePart,\n toIso,\n type KptCalendarPage,\n type KptDateRangeMode,\n type KptDateRangeValue,\n type KptMonthPanel,\n type KptRangeDayCell,\n} from '@konce-pt/datetime';\nimport { KptButton } from '../button/button.component';\nimport { KptClock } from '../datepicker/clock.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { monthNames, weekdayNames } from '../i18n/intl';\nimport { KptIcon } from '../icon/icon.component';\n\n// Kształt wartości i granulacja zakresu żyją w `@konce-pt/datetime` — tu tylko re-eksport,\n// żeby publiczne API biblioteki się nie zmieniło.\nexport type { KptDateRangeMode, KptDateRangeValue };\n\n/**\n * Wybór zakresu dat z kalendarzem (CDK Overlay), Signal Forms.\n * `mode`: 'date' (domyślnie), 'datetime' (data+godzina, tarcza zegara), 'time' (sama godzina).\n * `visibleMonths` pokazuje kilka miesięcy obok siebie (typowo 2) — zakres podświetla się\n * ciągłym pasmem przez wszystkie panele.\n * Wartość: `{ start, end }` — daty 'RRRR-MM-DD', datetime 'RRRR-MM-DDTHH:mm', godziny 'HH:mm'.\n * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-date-range [formField]=\"f.period\" />\n * <kpt-date-range [visibleMonths]=\"2\" [(value)]=\"period\" />\n * <kpt-date-range mode=\"datetime\" [hourFormat]=\"12\" [(value)]=\"span\" />\n * <kpt-date-range mode=\"time\" [(value)]=\"hours\" />\n */\n@Component({\n selector: 'kpt-date-range',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock],\n templateUrl: './date-range.component.html',\n styleUrl: './date-range.component.scss',\n host: { class: 'kpt-date-range-host' },\n})\nexport class KptDateRange implements FormValueControl<KptDateRangeValue> {\n readonly value = model<KptDateRangeValue>({ start: '', end: '' });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Placeholder; bez wartości używa i18n (`dateRange.placeholder`). */\n readonly placeholder = input<string>();\n readonly displayFormat = input<'pl' | 'iso'>('pl');\n readonly mode = input<KptDateRangeMode>('date');\n /** Liczba miesięcy obok siebie (1–3; domyślnie 1). Ignorowana w trybie 'time'. */\n readonly visibleMonths = input(1, { transform: numberAttribute });\n readonly hourFormat = input(24, { transform: numberAttribute });\n readonly minuteStep = input(1, { transform: numberAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly weekdays = computed(() => weekdayNames(this.i18n.locale()));\n private readonly months = computed(() => monthNames(this.i18n.locale()));\n protected readonly effectivePlaceholder = computed(() => this.placeholder() ?? this.i18n.t('dateRange.placeholder'));\n protected readonly open = signal(false);\n private readonly today = new Date();\n private readonly view = signal<KptCalendarPage>({ y: this.today.getFullYear(), m: this.today.getMonth() });\n\n // ── Bufory czasu (tryby datetime/time) ──\n protected readonly startTime = signal('');\n protected readonly endTime = signal('');\n protected readonly timeEnd = signal<'start' | 'end'>('start'); // który koniec edytuje tarcza\n // Daty zakresu (część kalendarzowa dla datetime — bez czasu)\n private readonly startDate = signal('');\n private readonly endDate = signal('');\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected readonly panelCount = computed(() => clampVisibleMonths(this.visibleMonths()));\n protected readonly multi = computed(() => this.panelCount() > 1);\n\n private fmtDate(iso: string): string {\n return formatDate(iso, this.displayFormat());\n }\n private fmtTime(hhmm: string): string {\n const t = parseTime(hhmm);\n return t ? formatTime(t.h, t.m, this.hourFormat() === 12 ? 12 : 24) : '';\n }\n\n protected readonly display = computed(() => {\n const { start, end } = this.value();\n if (!start) return '';\n const mode = this.mode();\n if (mode === 'time') {\n return end ? `${this.fmtTime(start)} – ${this.fmtTime(end)}` : `${this.fmtTime(start)} – …`;\n }\n if (mode === 'datetime') {\n const one = (v: string): string => {\n const d = this.fmtDate(datePart(v));\n const t = this.fmtTime(timePart(v));\n return t ? `${d} ${t}` : d;\n };\n return end ? `${one(start)} – ${one(end)}` : `${one(start)} – …`;\n }\n return end ? `${this.fmtDate(start)} – ${this.fmtDate(end)}` : `${this.fmtDate(start)} – …`;\n });\n\n /**\n * Panele miesięcy. Przy kilku panelach dni sąsiednich miesięcy są wygaszane do pustych slotów:\n * inaczej ta sama data byłaby klikalna dwa razy (jako „wyszarzona\" w jednym panelu i właściwa\n * w drugim) i pasmo zakresu malowałoby się w obu miejscach.\n */\n protected readonly panels = computed<KptMonthPanel[]>(() => {\n const { y, m } = this.view();\n const datetime = this.mode() === 'datetime';\n return Array.from({ length: this.panelCount() }, (_, i) => {\n const first = new Date(y, m + i, 1);\n const py = first.getFullYear();\n const pm = first.getMonth();\n return {\n key: `${py}-${pad(pm + 1)}`,\n label: `${this.months()[pm]} ${py}`,\n weeks: buildRangeGrid({\n page: { y: py, m: pm },\n start: datetime ? this.startDate() : this.value().start,\n end: datetime ? this.endDate() : this.value().end,\n todayIso: toIso(this.today),\n // Przy kilku panelach dni sąsiednich miesięcy stają się pustymi slotami — inaczej ta\n // sama data byłaby klikalna dwa razy, a pasmo malowałoby się w obu miejscach.\n hideOutside: this.multi(),\n }),\n };\n });\n });\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n if (!this.open()) {\n const { start, end } = this.value();\n const base = datePart(start) || toIso(this.today);\n const d = new Date(base);\n this.view.set({ y: d.getFullYear(), m: d.getMonth() });\n if (this.mode() === 'datetime') {\n this.startDate.set(datePart(start));\n this.endDate.set(datePart(end));\n this.startTime.set(timePart(start) || '00:00');\n this.endTime.set(timePart(end) || '00:00');\n } else if (this.mode() === 'time') {\n this.startTime.set(/^\\d{2}:\\d{2}$/.test(start) ? start : '00:00');\n this.endTime.set(/^\\d{2}:\\d{2}$/.test(end) ? end : '00:00');\n }\n this.timeEnd.set('start');\n }\n this.open.update((o) => !o);\n }\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n protected selectDay(cell: KptRangeDayCell): void {\n if (cell.blank || cell.disabled) return;\n if (this.mode() === 'datetime') {\n // Część kalendarzowa czeka na godziny — wartość powstaje dopiero przy „Gotowe\".\n const next = pickRangeDay({ start: this.startDate(), end: this.endDate() }, cell.iso);\n this.startDate.set(next.start);\n this.endDate.set(next.end);\n return;\n }\n const next = pickRangeDay(this.value(), cell.iso);\n this.value.set(next);\n if (next.end) this.close();\n }\n\n protected commit(): void {\n if (this.mode() === 'time') {\n const s = this.startTime() || '00:00';\n const e = this.endTime() || '00:00';\n // Normalizacja kolejności (start ≤ end).\n this.value.set(s <= e ? { start: s, end: e } : { start: e, end: s });\n } else if (this.mode() === 'datetime') {\n const sd = this.startDate();\n const ed = this.endDate() || sd;\n if (!sd) {\n this.close();\n return;\n }\n const start = `${sd}T${this.startTime() || '00:00'}`;\n const end = `${ed}T${this.endTime() || '00:00'}`;\n this.value.set(start <= end ? { start, end } : { start: end, end: start });\n }\n this.close();\n }\n\n protected prevMonth(): void {\n this.view.update(({ y, m }) => (m === 0 ? { y: y - 1, m: 11 } : { y, m: m - 1 }));\n }\n protected nextMonth(): void {\n this.view.update(({ y, m }) => (m === 11 ? { y: y + 1, m: 0 } : { y, m: m + 1 }));\n }\n protected clear(event: Event): void {\n event.stopPropagation();\n this.value.set({ start: '', end: '' });\n this.startDate.set('');\n this.endDate.set('');\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Pole liczbowe ze strzałkami krokowania na Signal Forms. Wartość = number | null.\n * `showButtons=\"false\"` chowa strzałki — wariant do zakresów „od–do\", gdzie krokowanie\n * nie ma sensu, a pole ma wyglądać jak zwykłe `kpt-input` obok.\n *\n * Pod `[formField]` granic NIE bindujemy w szablonie — `[min]`/`[max]` obok `[formField]`\n * to błąd kompilacji. Deklaruje je schemat (`min(path.qty, 0)`, `max(path.qty, 99)`),\n * a dyrektywa `FormField` sama wstrzykuje je w wejścia `min`/`max`.\n *\n * @example\n * <kpt-input-number [formField]=\"f.qty\" [step]=\"1\" />\n * <kpt-input-number [(value)]=\"qty\" [min]=\"0\" [max]=\"99\" suffix=\" szt.\" />\n * <kpt-input-number [formField]=\"f.priceFrom\" [showButtons]=\"false\" suffix=\" zł\" />\n */\n@Component({\n selector: 'kpt-input-number',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div\n class=\"kpt-input-number\"\n [class.kpt-input-number--disabled]=\"disabled()\"\n [class.kpt-input-number--invalid]=\"showInvalid()\"\n [class.kpt-input-number--plain]=\"!showButtons()\"\n >\n @if (showButtons()) {\n <button type=\"button\" class=\"kpt-input-number__btn\" [disabled]=\"disabled() || !canDec()\" (click)=\"step_(-1)\" [attr.aria-label]=\"i18n.t('inputNumber.decrement')\"><kpt-icon name=\"minus\" /></button>\n }\n <input\n class=\"kpt-input-number__input\"\n type=\"text\"\n inputmode=\"decimal\"\n [value]=\"display()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n />\n @if (showButtons()) {\n <button type=\"button\" class=\"kpt-input-number__btn\" [disabled]=\"disabled() || !canInc()\" (click)=\"step_(1)\" [attr.aria-label]=\"i18n.t('inputNumber.increment')\"><kpt-icon name=\"plus\" /></button>\n }\n </div>\n `,\n styleUrl: './input-number.component.scss',\n host: { class: 'kpt-input-number-host' },\n})\nexport class KptInputNumber implements FormValueControl<number | null> {\n readonly value = model<number | null>(null);\n readonly min = input<number | undefined>(undefined);\n readonly max = input<number | undefined>(undefined);\n readonly step = input(1);\n readonly placeholder = input('');\n readonly suffix = input('');\n /** Pokaż przyciski krokowania. `false` daje samo pole — wariant do zakresów „od–do\". */\n readonly showButtons = input(true, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (v === null || v === undefined || Number.isNaN(v)) return '';\n return `${v}${this.suffix()}`;\n });\n protected readonly canInc = computed(() => {\n const mx = this.max();\n return mx === undefined || (this.value() ?? -Infinity) < mx;\n });\n protected readonly canDec = computed(() => {\n const mn = this.min();\n return mn === undefined || (this.value() ?? Infinity) > mn;\n });\n\n protected onInput(event: Event): void {\n const raw = (event.target as HTMLInputElement).value.replace(this.suffix(), '').replace(',', '.').trim();\n if (raw === '') {\n this.value.set(null);\n return;\n }\n const n = Number(raw);\n if (!Number.isNaN(n)) this.value.set(this.clamp(n));\n }\n\n protected step_(dir: 1 | -1): void {\n const base = this.value() ?? this.min() ?? 0;\n this.value.set(this.clamp(base + dir * this.step()));\n this.touch.emit();\n }\n\n private clamp(n: number): number {\n const mn = this.min();\n const mx = this.max();\n if (mn !== undefined && n < mn) return mn;\n if (mx !== undefined && n > mx) return mx;\n return n;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nlet nextUniqueId = 0;\n\ninterface Strength {\n score: 0 | 1 | 2 | 3 | 4;\n label: string;\n}\n\n/**\n * Pole hasła z przełącznikiem widoczności i opcjonalnym miernikiem siły. Signal Forms.\n *\n * @example\n * <kpt-password [formField]=\"f.password\" feedback />\n */\n@Component({\n selector: 'kpt-password',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-password\" [class.kpt-password--disabled]=\"disabled()\" [class.kpt-password--invalid]=\"showInvalid()\">\n <input\n class=\"kpt-password__input\"\n [id]=\"id()\"\n [type]=\"visible() ? 'text' : 'password'\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.autocomplete]=\"autocomplete()\"\n (input)=\"value.set($any($event.target).value)\"\n (blur)=\"touch.emit()\"\n />\n <button type=\"button\" class=\"kpt-password__toggle\" [disabled]=\"disabled()\" (click)=\"visible.set(!visible())\" [attr.aria-label]=\"visible() ? i18n.t('password.hide') : i18n.t('password.show')\">\n <kpt-icon [name]=\"visible() ? 'eye-off' : 'eye'\" />\n </button>\n </div>\n @if (feedback() && value()) {\n <div class=\"kpt-password__meter\" [attr.data-score]=\"strength().score\">\n <div class=\"kpt-password__bars\">\n @for (i of [0,1,2,3]; track i) {\n <span class=\"kpt-password__bar\" [class.is-on]=\"i < strength().score\"></span>\n }\n </div>\n <span class=\"kpt-password__hint\">{{ strength().label }}</span>\n </div>\n }\n `,\n styleUrl: './password.component.scss',\n host: { class: 'kpt-password-host' },\n})\nexport class KptPassword implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly placeholder = input('');\n /** Id natywnego pola — pozwala związać etykietę przez `kpt-form-field [controlId]`. */\n readonly id = input<string>(`kpt-password-${++nextUniqueId}`);\n /**\n * Podpowiedź autouzupełniania. Rejestracja i reset hasła wymagają `new-password` — inaczej\n * menedżer haseł podstawia stare hasło zamiast zaproponować nowe.\n */\n readonly autocomplete = input<string | null>('current-password');\n readonly feedback = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(false);\n\n protected readonly strength = computed<Strength>(() => {\n const v = this.value();\n let s = 0;\n if (v.length >= 8) s++;\n if (/[A-Z]/.test(v) && /[a-z]/.test(v)) s++;\n if (/\\d/.test(v)) s++;\n if (/[^A-Za-z0-9]/.test(v)) s++;\n const score = Math.min(s, 4) as Strength['score'];\n return { score, label: this.i18n.messages().password.strength[score] };\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole kodu jednorazowego (OTP/PIN) — N osobnych pól, autofocus i wklejanie. Signal Forms.\n * Wartość = string (sklejone znaki).\n *\n * @example\n * <kpt-input-otp [formField]=\"f.code\" [length]=\"6\" integerOnly />\n */\n@Component({\n selector: 'kpt-input-otp',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-input-otp\" [class.kpt-input-otp--invalid]=\"showInvalid()\">\n @for (i of slots(); track i) {\n <input\n class=\"kpt-input-otp__cell\"\n type=\"text\"\n [attr.inputmode]=\"integerOnly() ? 'numeric' : 'text'\"\n maxlength=\"1\"\n [value]=\"charAt(i)\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(i, $event)\"\n (keydown)=\"onKeydown(i, $event)\"\n (paste)=\"onPaste($event)\"\n (focus)=\"$any($event.target).select()\"\n />\n }\n </div>\n `,\n styleUrl: './input-otp.component.scss',\n host: { class: 'kpt-input-otp-host' },\n})\nexport class KptInputOtp implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly length = input(6);\n readonly integerOnly = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly slots = computed(() => Array.from({ length: this.length() }, (_, i) => i));\n\n protected charAt(i: number): string {\n return this.value()[i] ?? '';\n }\n\n protected onInput(i: number, event: Event): void {\n const el = event.target as HTMLInputElement;\n let ch = el.value.slice(-1);\n if (this.integerOnly() && !/\\d/.test(ch)) ch = '';\n this.setChar(i, ch);\n el.value = this.charAt(i); // sync DOM z modelem — kasuje odrzucony/znormalizowany znak\n if (ch) this.focusSibling(el, 1);\n }\n\n protected onKeydown(i: number, event: KeyboardEvent): void {\n const el = event.target as HTMLInputElement;\n if (event.key === 'Backspace' && !this.charAt(i)) {\n this.focusSibling(el, -1);\n } else if (event.key === 'ArrowLeft') {\n this.focusSibling(el, -1);\n } else if (event.key === 'ArrowRight') {\n this.focusSibling(el, 1);\n }\n }\n\n protected onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n let text = event.clipboardData?.getData('text') ?? '';\n if (this.integerOnly()) text = text.replace(/\\D/g, '');\n this.value.set(text.slice(0, this.length()));\n this.touch.emit();\n }\n\n private setChar(i: number, ch: string): void {\n const arr = this.value().padEnd(this.length(), ' ').split('');\n arr[i] = ch || ' ';\n this.value.set(arr.join('').replace(/ +$/, ''));\n }\n\n private focusSibling(el: HTMLInputElement, dir: 1 | -1): void {\n const target = dir === 1 ? el.nextElementSibling : el.previousElementSibling;\n (target as HTMLInputElement | null)?.focus();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptChip } from '../chip/chip.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Pole tagów — dodawanie Enter/przecinkiem, usuwanie Backspace/×. Signal Forms.\n * Wartość = string[].\n *\n * @example\n * <kpt-chips-input [formField]=\"f.tags\" placeholder=\"Dodaj tag…\" />\n */\n@Component({\n selector: 'kpt-chips-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptChip],\n template: `\n <div class=\"kpt-chips-input\" [class.kpt-chips-input--disabled]=\"disabled()\" [class.kpt-chips-input--invalid]=\"showInvalid()\">\n @for (chip of value(); track $index) {\n <kpt-chip variant=\"primary\" [removable]=\"!disabled()\" (removed)=\"removeAt($index)\">{{ chip }}</kpt-chip>\n }\n <input\n class=\"kpt-chips-input__field\"\n type=\"text\"\n [placeholder]=\"value().length ? '' : effectivePlaceholder()\"\n [disabled]=\"disabled()\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"commit($any($event.target)); touch.emit()\"\n />\n </div>\n `,\n styleUrl: './chips-input.component.scss',\n host: { class: 'kpt-chips-input-host' },\n})\nexport class KptChipsInput implements FormValueControl<string[]> {\n readonly value = model<string[]>([]);\n /** Placeholder; bez wartości używa i18n (`chipsInput.placeholder`). */\n readonly placeholder = input<string>();\n readonly allowDuplicates = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectivePlaceholder = computed(() => this.placeholder() ?? this.i18n.t('chipsInput.placeholder'));\n\n protected onKeydown(event: KeyboardEvent): void {\n const el = event.target as HTMLInputElement;\n if (event.key === 'Enter' || event.key === ',') {\n event.preventDefault();\n this.commit(el);\n } else if (event.key === 'Backspace' && el.value === '' && this.value().length) {\n this.removeAt(this.value().length - 1);\n }\n }\n\n protected commit(el: HTMLInputElement): void {\n const text = el.value.trim();\n if (!text) return;\n if (this.allowDuplicates() || !this.value().includes(text)) {\n this.value.set([...this.value(), text]);\n }\n el.value = '';\n }\n\n protected removeAt(index: number): void {\n this.value.set(this.value().filter((_, i) => i !== index));\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\nconst TOKENS: Record<string, RegExp> = {\n '9': /\\d/,\n a: /[a-zA-Z]/,\n '*': /[a-zA-Z0-9]/,\n};\n\n/**\n * Pole z maską znakową na Signal Forms. Tokeny maski: `9`=cyfra, `a`=litera, `*`=alfanumeryczny.\n * Pozostałe znaki maski to literały (np. spacje, nawiasy, myślniki).\n *\n * @example\n * <kpt-input-mask [formField]=\"f.phone\" mask=\"(999) 999-99-99\" />\n */\n@Component({\n selector: 'kpt-input-mask',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <input\n class=\"kpt-input-mask__input\"\n type=\"text\"\n [class.kpt-input-mask--invalid]=\"showInvalid()\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder() || mask()\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n />\n `,\n styleUrl: './input-mask.component.scss',\n host: { class: 'kpt-input-mask-host' },\n})\nexport class KptInputMask implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly mask = input('');\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected onInput(event: Event): void {\n const el = event.target as HTMLInputElement;\n const formatted = this.applyMask(el.value);\n this.value.set(formatted);\n el.value = formatted;\n }\n\n private applyMask(raw: string): string {\n const mask = this.mask();\n if (!mask) return raw;\n // Zbierz same znaczące znaki z wejścia (pomiń literały maski).\n const chars = raw.split('');\n let ci = 0;\n let out = '';\n for (let mi = 0; mi < mask.length && ci < chars.length; ) {\n const token = mask[mi];\n const rule = TOKENS[token];\n if (rule) {\n // szukaj kolejnego pasującego znaku z wejścia\n while (ci < chars.length && !rule.test(chars[ci])) ci++;\n if (ci >= chars.length) break;\n out += chars[ci];\n ci++;\n mi++;\n } else {\n out += token;\n mi++;\n }\n }\n return out;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Lista wyboru (listbox) na Signal Forms. Pojedynczy lub wielokrotny wybór, opcjonalny filtr.\n * Wartość: `T` (single) lub `T[]` (multiple).\n *\n * @example\n * <kpt-listbox [formField]=\"f.role\" [options]=\"roles\" filter />\n * <kpt-listbox [(value)]=\"tags\" [options]=\"tagOptions\" multiple />\n */\n@Component({\n selector: 'kpt-listbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-listbox\" [class.kpt-listbox--invalid]=\"showInvalid()\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple()\">\n @if (filter()) {\n <div class=\"kpt-listbox__filter\">\n <kpt-icon name=\"search\" />\n <input type=\"text\" [attr.placeholder]=\"i18n.t('listbox.search')\" [value]=\"query()\" (input)=\"query.set($any($event.target).value)\" />\n </div>\n }\n <div class=\"kpt-listbox__items\">\n @for (opt of visible(); track opt.value) {\n <button\n type=\"button\"\n role=\"option\"\n class=\"kpt-listbox__item\"\n [class.is-selected]=\"isSelected(opt.value)\"\n [attr.aria-selected]=\"isSelected(opt.value)\"\n [disabled]=\"disabled() || opt.disabled\"\n (click)=\"toggle(opt.value)\"\n >\n <span>{{ opt.label }}</span>\n @if (isSelected(opt.value)) { <kpt-icon name=\"check\" /> }\n </button>\n } @empty {\n <div class=\"kpt-listbox__empty\">{{ i18n.t('listbox.empty') }}</div>\n }\n </div>\n </div>\n `,\n styleUrl: './listbox.component.scss',\n host: { class: 'kpt-listbox-host' },\n})\nexport class KptListbox<T = unknown> implements FormValueControl<T | T[] | null> {\n readonly value = model<T | T[] | null>(null);\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly filter = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly query = signal('');\n protected readonly visible = computed(() => {\n const q = this.query().trim().toLowerCase();\n return q ? this.options().filter((o) => o.label.toLowerCase().includes(q)) : this.options();\n });\n\n protected isSelected(v: T): boolean {\n const cur = this.value();\n return this.multiple() ? Array.isArray(cur) && cur.includes(v) : cur === v;\n }\n\n protected toggle(v: T): void {\n if (this.multiple()) {\n const cur = (Array.isArray(this.value()) ? this.value() : []) as T[];\n this.value.set(cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]);\n } else {\n this.value.set(this.value() === v ? null : v);\n }\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\nconst TAU = Math.PI * 2;\nconst GAP = Math.PI / 4; // przerwa u dołu (kąt „otwarcia\" łuku)\n\n/**\n * Pokrętło (knob) — wybór wartości po łuku, myszką lub strzałkami. Signal Forms.\n *\n * Pod `[formField]` zakres bierze się ze schematu (`min(path.level, 0)`,\n * `max(path.level, 100)`) — `[min]`/`[max]` obok `[formField]` to błąd kompilacji.\n *\n * @example\n * <kpt-knob [formField]=\"f.level\" [step]=\"1\" />\n * <kpt-knob [(value)]=\"level\" [min]=\"0\" [max]=\"100\" [step]=\"1\" />\n */\n@Component({\n selector: 'kpt-knob',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n class=\"kpt-knob\"\n role=\"slider\"\n tabindex=\"0\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-disabled]=\"disabled()\"\n (pointerdown)=\"onPointer($event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <svg [attr.viewBox]=\"'0 0 ' + size() + ' ' + size()\" [style.width.px]=\"size()\" [style.height.px]=\"size()\">\n <path class=\"kpt-knob__range\" [attr.d]=\"rangePath()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" stroke-linecap=\"round\" />\n <path class=\"kpt-knob__value\" [attr.d]=\"valuePath()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" stroke-linecap=\"round\" />\n @if (showValue()) {\n <text class=\"kpt-knob__text\" [attr.x]=\"size() / 2\" [attr.y]=\"size() / 2\" text-anchor=\"middle\" dominant-baseline=\"central\">{{ value() }}{{ suffix() }}</text>\n }\n </svg>\n </div>\n `,\n styleUrl: './knob.component.scss',\n host: { class: 'kpt-knob-host' },\n})\nexport class KptKnob implements FormValueControl<number> {\n private readonly host = inject(ElementRef<HTMLElement>);\n\n readonly value = model<number>(0);\n readonly min = input<number | undefined>(0);\n readonly max = input<number | undefined>(100);\n readonly step = input(1);\n readonly size = input(96);\n readonly stroke = input(10);\n readonly suffix = input('');\n readonly showValue = input(true, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n private readonly startAngle = Math.PI / 2 + GAP;\n private readonly sweep = TAU - GAP * 2;\n\n protected readonly rangePath = computed(() => this.arc(0, 1));\n protected readonly valuePath = computed(() => this.arc(0, this.ratio()));\n\n private ratio(): number {\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n const range = mx - mn;\n return range <= 0 ? 0 : (this.value() - mn) / range;\n }\n\n private arc(from: number, to: number): string {\n const s = this.size();\n const r = (s - this.stroke()) / 2;\n const cx = s / 2;\n const cy = s / 2;\n const a0 = this.startAngle + this.sweep * from;\n const a1 = this.startAngle + this.sweep * Math.max(from, to);\n const x0 = cx + r * Math.cos(a0);\n const y0 = cy + r * Math.sin(a0);\n const x1 = cx + r * Math.cos(a1);\n const y1 = cy + r * Math.sin(a1);\n const large = a1 - a0 > Math.PI ? 1 : 0;\n if (Math.abs(a1 - a0) < 1e-4) return `M ${x0} ${y0}`;\n return `M ${x0} ${y0} A ${r} ${r} 0 ${large} 1 ${x1} ${y1}`;\n }\n\n protected onPointer(event: PointerEvent): void {\n if (this.disabled()) return;\n const update = (e: PointerEvent) => this.setFromPoint(e.clientX, e.clientY);\n update(event);\n const move = (e: PointerEvent) => update(e);\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n this.touch.emit();\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n\n private setFromPoint(clientX: number, clientY: number): void {\n const rect = (this.host.nativeElement.querySelector('svg') as SVGElement).getBoundingClientRect();\n const cx = rect.left + rect.width / 2;\n const cy = rect.top + rect.height / 2;\n let a = Math.atan2(clientY - cy, clientX - cx) - this.startAngle;\n a = ((a % TAU) + TAU) % TAU;\n if (a > this.sweep + GAP) a = a > this.sweep + GAP / 2 ? 0 : this.sweep;\n const ratio = Math.min(1, Math.max(0, a / this.sweep));\n this.applyRatio(ratio);\n }\n\n private applyRatio(ratio: number): void {\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n const step = this.step();\n const raw = mn + ratio * (mx - mn);\n const snapped = Math.round(raw / step) * step;\n this.value.set(Math.min(mx, Math.max(mn, snapped)));\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n let next = this.value();\n if (event.key === 'ArrowUp' || event.key === 'ArrowRight') next += this.step();\n else if (event.key === 'ArrowDown' || event.key === 'ArrowLeft') next -= this.step();\n else if (event.key === 'Home') next = mn;\n else if (event.key === 'End') next = mx;\n else return;\n event.preventDefault();\n this.value.set(Math.min(mx, Math.max(mn, next)));\n this.touch.emit();\n }\n}\n","@if (header()) {\n <div class=\"kpt-card__header\">{{ header() }}</div>\n}\n<div class=\"kpt-card__body\" [class.kpt-card__body--flush]=\"flush()\">\n <ng-content />\n</div>\n<ng-content select=\"[kptCardFooter]\" />\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport type KptCardVariant = 'elevated' | 'outlined';\n\n/**\n * Karta Koncept UI — powierzchnia z wyniesieniem (elevated) lub obramowaniem (outlined).\n * Opcjonalny nagłówek przez `header`; treść przez projekcję. Stopkę wstaw z atrybutem\n * `kptCardFooter`. Dla bogatych układów (media/profil) ustaw `flush` (body bez paddingu)\n * i użyj reużywalnych klas: `kpt-card__media`, `__lead`, `__title`, `__subtitle`,\n * `__section`, `__tags`, `__meta`, `__avatar`, `__actions`.\n *\n * @example\n * <kpt-card header=\"Ustawienia\">\n * <p>Treść karty…</p>\n * <div kptCardFooter><kpt-button>Zapisz</kpt-button></div>\n * </kpt-card>\n */\n@Component({\n selector: 'kpt-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n host: {\n class: 'kpt-card',\n '[attr.data-variant]': 'variant()',\n },\n})\nexport class KptCard {\n /** Wariant wizualny. */\n readonly variant = input<KptCardVariant>('elevated');\n /** Opcjonalny tekst nagłówka. */\n readonly header = input<string>('');\n /** Body bez wewnętrznego paddingu — dla układów zarządzających własnymi sekcjami. */\n readonly flush = input(false, { transform: booleanAttribute });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport type KptDividerOrientation = 'horizontal' | 'vertical';\n\n/**\n * Separator Koncept UI (linia pozioma lub pionowa). Kolor z `--kpt-color-border`.\n *\n * @example\n * <kpt-divider />\n * <kpt-divider orientation=\"vertical\" />\n * <kpt-divider inset />\n */\n@Component({\n selector: 'kpt-divider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: '',\n styleUrl: './divider.component.scss',\n host: {\n class: 'kpt-divider',\n role: 'separator',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[class.kpt-divider--inset]': 'inset()',\n },\n})\nexport class KptDivider {\n /** Orientacja linii. */\n readonly orientation = input<KptDividerOrientation>('horizontal');\n /** Wcięcie (odstęp od krawędzi kontenera). */\n readonly inset = input(false, { transform: booleanAttribute });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\r\n\r\n/**\r\n * Górny pasek (toolbar) — pozioma belka na treść aplikacji (logo, akcje).\r\n * Elementowi z atrybutem `kptToolbarSpacer` nadaj elastyczny odstęp, aby rozepchnąć zawartość.\r\n * Poniżej breakpointa `sm` pasek sam zbiega się do niższej wysokości i węższych marginesów.\r\n *\r\n * @example\r\n * <kpt-toolbar elevated>\r\n * <strong>Koncept UI</strong>\r\n * <span kptToolbarSpacer></span>\r\n * <kpt-button variant=\"text\">Wyloguj</kpt-button>\r\n * </kpt-toolbar>\r\n */\r\n@Component({\r\n selector: 'kpt-toolbar',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n template: '<ng-content />',\r\n styleUrl: './toolbar.component.scss',\r\n host: {\r\n class: 'kpt-toolbar',\r\n '[class.kpt-toolbar--elevated]': 'elevated()',\r\n '[attr.data-wrap]': \"wrap() ? '' : null\",\r\n },\r\n})\r\nexport class KptToolbar {\r\n /** Dodaje cień (wyniesienie) pod paskiem. */\r\n readonly elevated = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Pozwala zawartości paska zawinąć się do kolejnych wierszy, gdy zabraknie miejsca.\r\n * Opcjonalne, bo zawijanie zmienia zachowanie `kptToolbarSpacer` — w jednowierszowym\r\n * pasku rozpycha on treść, a w zawijanym potrafi zepchnąć resztę do nowego wiersza.\r\n */\r\n readonly wrap = input(false, { transform: booleanAttribute });\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Panel boczny (sidenav) — stylowany kontener nawigacji, zwykle umieszczany w slocie\n * `kptShellSidenav` komponentu `kpt-app-shell`.\n *\n * Treść domyślna ląduje w obszarze przewijanym. Element opatrzony atrybutem `kptSidenavFooter`\n * trafia do stopki stojącej **poza** tym obszarem, więc zostaje przyklejony do dołu panelu\n * niezależnie od długości nawigacji (blok użytkownika, wersja aplikacji, przełącznik motywu).\n *\n * @example\n * <kpt-sidenav kptShellSidenav>\n * <a href=\"#\">Pulpit</a>\n * <a href=\"#\">Ustawienia</a>\n * <div kptSidenavFooter>\n * <kpt-avatar name=\"Anna Kowalska\" size=\"sm\" />\n * </div>\n * </kpt-sidenav>\n */\n@Component({\n selector: 'kpt-sidenav',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // Catch-all `<ng-content />` ma w projekcji najniższy priorytet, więc element z atrybutem\n // `kptSidenavFooter` trafia do stopki mimo tego, że slot domyślny stoi wyżej w szablonie.\n template: '<div class=\"kpt-sidenav__scroll\"><ng-content /></div><ng-content select=\"[kptSidenavFooter]\" />',\n styleUrl: './sidenav.component.scss',\n host: { class: 'kpt-sidenav' },\n})\nexport class KptSidenav {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptBreakpointObserver } from '../breakpoint/breakpoint.service';\nimport type { KptBreakpoint } from '../breakpoint/breakpoints.generated';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Zachowanie panelu bocznego:\n * - `auto` — zależne od szerokości okna (domyślne),\n * - `side` — zawsze zadokowany, rozpycha treść,\n * - `over` — zawsze nakładka nad treścią.\n */\nexport type KptSidenavMode = 'side' | 'over' | 'auto';\n\n/**\n * Szkielet aplikacji: pasek u góry, panel boczny i treść. Sloty projekcji:\n * `[kptShellToolbar]`, `[kptShellSidenav]` oraz treść domyślna.\n *\n * Domyślny tryb `auto` jest responsywny bez konfiguracji: od `sidenavBreakpoint` w górę\n * panel jest zadokowany, poniżej zachowuje się jak nakładka ze scrimem i startuje zamknięty.\n * Opcjonalny `sidenavRailBreakpoint` wstawia między te pasma szynę ikon.\n *\n * O układzie decyduje wyłącznie CSS — nic nie migocze przed hydracją i nic nie zależy od\n * `matchMedia`. JavaScript odpowiada tylko za to, KTÓRY stan przełącza przycisk.\n *\n * Panel ma dwa niezależne stany otwarcia (`sidenavOpen` dla układu zadokowanego,\n * `sidenavCompactOpen` dla nakładki), więc intencja z desktopu przeżywa zwężenie\n * i ponowne rozszerzenie okna.\n *\n * @example\n * <kpt-app-shell [(sidenavOpen)]=\"navOpen\">\n * <kpt-toolbar kptShellToolbar>\n * <button kptShellNavToggle type=\"button\"><kpt-icon name=\"menu\" /></button>\n * </kpt-toolbar>\n * <kpt-sidenav kptShellSidenav>…</kpt-sidenav>\n * <router-outlet />\n * </kpt-app-shell>\n */\n@Component({\n selector: 'kpt-app-shell',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './app-shell.component.html',\n styleUrl: './app-shell.component.scss',\n host: {\n class: 'kpt-app-shell',\n '[attr.data-sidenav-mode]': 'sidenavMode()',\n '[attr.data-sidenav-breakpoint]': 'sidenavBreakpoint()',\n '[attr.data-sidenav-rail]': 'sidenavRailBreakpoint()',\n '[class.kpt-app-shell--nav-open]': 'sidenavOpen()',\n '[class.kpt-app-shell--nav-compact-open]': 'sidenavCompactOpen()',\n '(document:keydown.escape)': 'onEscape()',\n },\n})\nexport class KptAppShell {\n private static nextId = 0;\n\n private readonly breakpoints = inject(KptBreakpointObserver);\n private readonly i18n = inject(KptI18n);\n\n /** Czy panel jest otwarty w układzie zadokowanym (oraz w wymuszonym trybie `over`). */\n readonly sidenavOpen = model(true);\n\n /**\n * Czy nakładka jest wysunięta w trybie `auto` poniżej `sidenavBreakpoint`.\n *\n * Celowo osobny od `sidenavOpen`: gdyby oba układy dzieliły jeden model, wejście na wąski\n * ekran musiałoby nadpisać stan konsumenta, a powrót na szeroki nie miałby czego przywrócić.\n */\n readonly sidenavCompactOpen = model(false);\n\n /** `auto` przełącza układ na breakpoincie; `side`/`over` wymuszają go niezależnie od szerokości. */\n readonly sidenavMode = input<KptSidenavMode>('auto');\n\n /** Od tego breakpointa w górę tryb `auto` dokuje panel; poniżej robi z niego nakładkę. */\n readonly sidenavBreakpoint = input<KptBreakpoint>('lg');\n\n /**\n * Włącza szynę ikon w paśmie od `sidenavBreakpoint` do tego breakpointa: zamknięty panel\n * nie chowa się wtedy całkowicie, tylko zwęża do `--kpt-sidenav-rail-width`. Powyżej tego\n * progu zamknięcie znów chowa panel w całości. Wartość musi być wyższa niż `sidenavBreakpoint`.\n * `null` (domyślnie) wyłącza szynę.\n */\n readonly sidenavRailBreakpoint = input<KptBreakpoint | null>(null);\n\n /** Etykieta dostępności panelu; puste = `appShell.navigation` ze słownika. */\n readonly sidenavLabel = input('');\n\n /** Identyfikator panelu dla `aria-controls` przycisku przełączającego. */\n readonly sidenavId = `kpt-app-shell-nav-${KptAppShell.nextId++}`;\n\n /** Czy panel zachowuje się TERAZ jak nakładka nad treścią. */\n readonly isOverlay = computed(() => {\n const mode = this.sidenavMode();\n if (mode === 'over') return true;\n if (mode === 'side') return false;\n return !this.breakpoints.up(this.sidenavBreakpoint())();\n });\n\n /** Efektywny stan otwarcia — ten, który obowiązuje w bieżącym układzie. */\n readonly isSidenavOpen = computed(() =>\n this.usesCompactState() ? this.sidenavCompactOpen() : this.sidenavOpen(),\n );\n\n protected readonly navLabel = computed(() => this.sidenavLabel() || this.i18n.t('appShell.navigation'));\n\n /** Scrim blokuje wskaźnik, ale nie klawiaturę — treść pod nakładką nie może łapać fokusu. */\n protected readonly contentInert = computed(() => this.isOverlay() && this.isSidenavOpen());\n\n constructor() {\n // Wyjście z nakładki chowa ją na wejściu: inaczej wróciłaby otwarta przy kolejnym\n // zwężeniu okna, mimo że użytkownik jej wtedy nie otwierał.\n effect(() => {\n if (!this.isOverlay()) this.sidenavCompactOpen.set(false);\n });\n }\n\n /** Przełącza panel — trafia w stan właściwy dla bieżącego układu. */\n toggleSidenav(): void {\n this.setSidenavOpen(!this.isSidenavOpen());\n }\n\n /** Otwiera panel w bieżącym układzie. */\n openSidenav(): void {\n this.setSidenavOpen(true);\n }\n\n /** Zamyka panel w bieżącym układzie. */\n closeSidenav(): void {\n this.setSidenavOpen(false);\n }\n\n protected onScrimClick(): void {\n // Scrim jest klikalny tylko wtedy, gdy CSS uczynił go widocznym — nie trzeba sprawdzać trybu.\n this.closeSidenav();\n }\n\n protected onEscape(): void {\n if (this.isOverlay() && this.isSidenavOpen()) this.closeSidenav();\n }\n\n private usesCompactState(): boolean {\n return this.sidenavMode() === 'auto' && this.isOverlay();\n }\n\n private setSidenavOpen(open: boolean): void {\n if (this.usesCompactState()) this.sidenavCompactOpen.set(open);\n else this.sidenavOpen.set(open);\n }\n}\n","<ng-content select=\"[kptShellToolbar]\" />\n\n<div class=\"kpt-app-shell__body\">\n <aside\n class=\"kpt-app-shell__sidenav\"\n role=\"navigation\"\n tabindex=\"-1\"\n [id]=\"sidenavId\"\n [attr.aria-label]=\"navLabel()\"\n >\n <ng-content select=\"[kptShellSidenav]\" />\n </aside>\n\n <!--\n Scrim jest zawsze w DOM, a jego widocznością steruje wyłącznie CSS. Dzięki temu nakładka\n wygląda poprawnie już na pierwszej klatce — także przed hydracją i przy wyłączonym JS.\n -->\n <div class=\"kpt-app-shell__scrim\" aria-hidden=\"true\" (click)=\"onScrimClick()\"></div>\n\n <main class=\"kpt-app-shell__content\" [attr.inert]=\"contentInert() ? '' : null\">\n <ng-content />\n </main>\n</div>\n","import { Directive, ElementRef, afterRenderEffect, computed, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptAppShell } from './app-shell.component';\n\n/**\n * Przycisk przełączający panel boczny `kpt-app-shell`. Umieść go w slocie\n * `[kptShellToolbar]` — dyrektywa sama odnajdzie shell w drzewie deklaracji.\n *\n * Trafia w stan właściwy dla bieżącego układu (zadokowany albo nakładka), więc jeden\n * przycisk obsługuje desktop i wąski ekran. Bez tej dyrektywy aplikacja musiałaby sama\n * wstrzyknąć `KptBreakpointObserver` i rozstrzygnąć, który z dwóch modeli przełączyć.\n *\n * Atrybuty ARIA nigdy nie lądują na hoście komponentu opakowującego — na elemencie bez roli\n * naruszałyby `aria-allowed-attr`. Na natywnym `<button>`/`<a>` nakłada je wiązanie hosta;\n * gdy hostem jest komponent (np. `kpt-icon-button`), dyrektywa schodzi z nimi na jego\n * wewnętrzną kontrolkę. Etykietę w tym drugim przypadku podaje sam komponent (`ariaLabel`),\n * więc jej tutaj nie ruszamy, żeby nie nadpisać wyboru aplikacji.\n *\n * @example\n * <button kptShellNavToggle type=\"button\"><kpt-icon name=\"menu\" /></button>\n * <kpt-icon-button kptShellNavToggle ariaLabel=\"Menu\"><kpt-icon name=\"menu\" /></kpt-icon-button>\n */\n@Directive({\n selector: '[kptShellNavToggle]',\n host: {\n '(click)': 'shell.toggleSidenav()',\n '[attr.aria-expanded]': 'ariaExpanded()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class KptShellNavToggle {\n /** Własna etykieta przycisku; puste = `appShell.toggleNavigation` ze słownika. */\n readonly label = input('', { alias: 'kptShellNavToggle' });\n\n protected readonly shell = inject(KptAppShell);\n\n private readonly i18n = inject(KptI18n);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly isNativeControl = /^(?:BUTTON|A)$/.test(this.host.nativeElement.tagName);\n\n protected readonly ariaExpanded = computed(() =>\n this.isNativeControl ? String(this.shell.isSidenavOpen()) : null,\n );\n\n protected readonly ariaControls = computed(() => (this.isNativeControl ? this.shell.sidenavId : null));\n\n protected readonly ariaLabel = computed(() =>\n this.isNativeControl ? this.label() || this.i18n.t('appShell.toggleNavigation') : null,\n );\n\n constructor() {\n if (this.isNativeControl) return;\n\n // Host jest komponentem — kontrolka z rolą przycisku siedzi w jego szablonie. Musi to być\n // efekt porenderowy: w chwili konstrukcji dyrektywy widok dziecka jeszcze nie istnieje,\n // a `aria-expanded` ma być poprawne już przy pierwszym odczycie przez czytnik ekranu.\n afterRenderEffect(() => {\n const control = this.host.nativeElement.querySelector('button, a');\n if (!control) return;\n control.setAttribute('aria-expanded', String(this.shell.isSidenavOpen()));\n control.setAttribute('aria-controls', this.shell.sidenavId);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\n\nexport type KptAlertVariant = 'info' | 'success' | 'warning' | 'danger';\n\n/**\n * Komunikat inline (alert). Warianty info/success/warning/danger, opcjonalny tytuł i zamykanie.\n *\n * @example\n * <kpt-alert variant=\"success\" title=\"Zapisano\">Zmiany zostały zapisane.</kpt-alert>\n */\n@Component({\n selector: 'kpt-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-alert\" [attr.data-variant]=\"variant()\" role=\"alert\">\n <kpt-icon class=\"kpt-alert__icon\" [name]=\"iconName()\" />\n <div class=\"kpt-alert__content\">\n @if (title()) {\n <div class=\"kpt-alert__title\">{{ title() }}</div>\n }\n <div class=\"kpt-alert__message\"><ng-content /></div>\n </div>\n @if (dismissible()) {\n <button class=\"kpt-alert__close\" type=\"button\" (click)=\"dismiss()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n `,\n styleUrl: './alert.component.scss',\n host: { class: 'kpt-alert-host', '[hidden]': '!visible()' },\n})\nexport class KptAlert {\n readonly variant = input<KptAlertVariant>('info');\n readonly title = input('');\n readonly dismissible = input(false, { transform: booleanAttribute });\n readonly closed = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(true);\n\n protected iconName(): KptIconName {\n return { info: 'info', success: 'circle-check', warning: 'alert-triangle', danger: 'circle-x' }[\n this.variant()\n ] as KptIconName;\n }\n protected dismiss(): void {\n this.visible.set(false);\n this.closed.emit();\n }\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon przycisku jednego dostawcy logowania w `kpt-auth`. Kontekst: `$implicit` =\n * obiekt dostawcy, `select` = funkcja zgłaszająca wybór (emituje `providerSelect`).\n *\n * Przydatne, gdy logo marki nie przechodzi przez rejestr ikon (gradienty i `fill-rule` są\n * wycinane przy sanityzacji) albo gdy przycisk ma mieć inny układ niż wbudowany.\n *\n * @example\n * <kpt-auth [providers]=\"providers\">\n * <ng-template kptAuthProvider=\"google\" let-p let-select=\"select\">\n * <button type=\"button\" class=\"my-google\" (click)=\"select()\">\n * <img src=\"/google.svg\" alt=\"\" /> {{ p.label }}\n * </button>\n * </ng-template>\n * </kpt-auth>\n */\n@Directive({\n selector: 'ng-template[kptAuthProvider]',\n})\nexport class KptAuthProviderDef {\n /** Identyfikator dostawcy, dla którego obowiązuje szablon. */\n readonly kptAuthProvider = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","<div class=\"kpt-auth\">\n <div class=\"kpt-auth__card\">\n <!--\n W drzewie żyje wyłącznie formularz aktywnego trybu. Dzięki temu nie ma elementów\n niewidocznych, ale wciąż fokusowalnych — najczęstsza wada ekranów logowania z animacją,\n w których oba formularze zostają w DOM i wygasza się je samą przezroczystością.\n -->\n <div class=\"kpt-auth__form-side\">\n <div class=\"kpt-auth__inner\" [attr.data-mode]=\"mode()\">\n <div class=\"kpt-auth__brand\"><ng-content select=\"[kptAuthBrand]\" /></div>\n\n <h2 #heading class=\"kpt-auth__title\" [id]=\"headingId()\" [attr.data-mode]=\"mode()\" tabindex=\"-1\">\n {{ title() }}\n </h2>\n <p class=\"kpt-auth__subtitle\">{{ subtitle() }}</p>\n\n @if (error()) {\n <kpt-alert variant=\"danger\">{{ error() }}</kpt-alert>\n }\n @if (notice()) {\n <kpt-alert variant=\"success\">{{ notice() }}</kpt-alert>\n }\n\n @switch (mode()) {\n @case ('signIn') {\n <form class=\"kpt-auth__form\" [formRoot]=\"signInForm\" (submit)=\"onSignIn()\" [attr.aria-labelledby]=\"ids.signIn\">\n <kpt-form-field [label]=\"i18n.t('auth.email')\" [error]=\"signInEmailError()\" required [controlId]=\"ids.email\">\n <kpt-input\n [formField]=\"signInForm.email\"\n type=\"email\"\n autocomplete=\"email\"\n [id]=\"ids.email\"\n [placeholder]=\"i18n.t('auth.emailPlaceholder')\"\n />\n </kpt-form-field>\n\n <kpt-form-field [label]=\"i18n.t('auth.password')\" [error]=\"signInPasswordError()\" required [controlId]=\"ids.password\">\n <kpt-password [formField]=\"signInForm.password\" autocomplete=\"current-password\" [id]=\"ids.password\" />\n </kpt-form-field>\n\n <ng-content select=\"[kptAuthFields]\" />\n\n <div class=\"kpt-auth__row\">\n @if (showRemember()) {\n <kpt-checkbox [formField]=\"signInForm.remember\" [label]=\"i18n.t('auth.remember')\" />\n } @else {\n <span></span>\n }\n <button type=\"button\" class=\"kpt-auth__link\" (click)=\"setMode('forgot')\">\n {{ i18n.t('auth.forgotLink') }}\n </button>\n </div>\n\n <kpt-button type=\"submit\" fullWidth [loading]=\"busy()\" [disabled]=\"signInInvalid()\">\n {{ i18n.t('auth.signInSubmit') }}\n </kpt-button>\n </form>\n }\n\n @case ('signUp') {\n <form class=\"kpt-auth__form\" [formRoot]=\"signUpForm\" (submit)=\"onSignUp()\" [attr.aria-labelledby]=\"ids.signUp\">\n @if (showName()) {\n <kpt-form-field [label]=\"i18n.t('auth.name')\" [error]=\"signUpNameError()\" required [controlId]=\"ids.name\">\n <kpt-input [formField]=\"signUpForm.name\" autocomplete=\"name\" [id]=\"ids.name\" />\n </kpt-form-field>\n }\n\n <kpt-form-field [label]=\"i18n.t('auth.email')\" [error]=\"signUpEmailError()\" required [controlId]=\"ids.regEmail\">\n <kpt-input\n [formField]=\"signUpForm.email\"\n type=\"email\"\n autocomplete=\"email\"\n [id]=\"ids.regEmail\"\n [placeholder]=\"i18n.t('auth.emailPlaceholder')\"\n />\n </kpt-form-field>\n\n <kpt-form-field\n [label]=\"i18n.t('auth.password')\"\n [error]=\"signUpPasswordError()\"\n [hint]=\"i18n.t('auth.passwordHint', { min: 8 })\"\n required\n [controlId]=\"ids.regPassword\"\n >\n <kpt-password [formField]=\"signUpForm.password\" autocomplete=\"new-password\" feedback [id]=\"ids.regPassword\" />\n </kpt-form-field>\n\n <kpt-form-field [label]=\"i18n.t('auth.confirmPassword')\" [error]=\"signUpConfirmError()\" required [controlId]=\"ids.regConfirm\">\n <kpt-password [formField]=\"signUpForm.confirm\" autocomplete=\"new-password\" [id]=\"ids.regConfirm\" />\n </kpt-form-field>\n\n <ng-content select=\"[kptAuthFields]\" />\n\n @if (requireTerms()) {\n <kpt-form-field [error]=\"signUpTermsError()\">\n <kpt-checkbox [formField]=\"signUpForm.terms\" [label]=\"i18n.t('auth.terms')\" />\n </kpt-form-field>\n }\n\n <kpt-button type=\"submit\" fullWidth [loading]=\"busy()\" [disabled]=\"signUpInvalid()\">\n {{ i18n.t('auth.signUpSubmit') }}\n </kpt-button>\n </form>\n }\n\n @case ('forgot') {\n <form class=\"kpt-auth__form\" [formRoot]=\"resetForm\" (submit)=\"onReset()\" [attr.aria-labelledby]=\"ids.forgot\">\n <kpt-form-field [label]=\"i18n.t('auth.email')\" [error]=\"resetEmailError()\" required [controlId]=\"ids.resetEmail\">\n <kpt-input\n [formField]=\"resetForm.email\"\n type=\"email\"\n autocomplete=\"email\"\n [id]=\"ids.resetEmail\"\n [placeholder]=\"i18n.t('auth.emailPlaceholder')\"\n />\n </kpt-form-field>\n\n <kpt-button type=\"submit\" fullWidth [loading]=\"busy()\" [disabled]=\"resetInvalid()\">\n {{ i18n.t('auth.resetSubmit') }}\n </kpt-button>\n <button type=\"button\" class=\"kpt-auth__link kpt-auth__link--center\" (click)=\"setMode('signIn')\">\n {{ i18n.t('auth.backToSignIn') }}\n </button>\n </form>\n }\n }\n\n @if (mode() !== 'forgot') {\n <div class=\"kpt-auth__sso\"><ng-content select=\"[kptAuthSso]\" /></div>\n\n @if (providers().length > 0) {\n <div class=\"kpt-auth__separator\" role=\"separator\" [attr.aria-label]=\"i18n.t('auth.orContinueWith')\">\n <span class=\"kpt-auth__separator-text\">{{ i18n.t('auth.orContinueWith') }}</span>\n </div>\n\n <div class=\"kpt-auth__providers\" [attr.data-layout]=\"providerLayout()\">\n @for (provider of providers(); track provider.id) {\n @if (templateFor(provider); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl\" [ngTemplateOutletContext]=\"providerContext(provider)\" />\n } @else {\n <button\n type=\"button\"\n class=\"kpt-auth__provider\"\n [disabled]=\"busy()\"\n [attr.aria-label]=\"i18n.t('auth.continueWith', { provider: provider.label })\"\n (click)=\"selectProvider(provider)\"\n >\n @if (provider.iconUrl) {\n <img class=\"kpt-auth__provider-logo\" [src]=\"provider.iconUrl\" alt=\"\" />\n } @else if (provider.icon) {\n <kpt-icon class=\"kpt-auth__provider-logo\" [name]=\"provider.icon\" />\n }\n <span class=\"kpt-auth__provider-label\">{{ provider.label }}</span>\n @if (provider.description && providerLayout() === 'list') {\n <span class=\"kpt-auth__provider-desc\">{{ provider.description }}</span>\n }\n </button>\n }\n }\n </div>\n }\n\n <p class=\"kpt-auth__switch\">\n {{ signUpActive() ? i18n.t('auth.haveAccount') : i18n.t('auth.noAccount') }}\n <button type=\"button\" class=\"kpt-auth__link\" (click)=\"setMode(signUpActive() ? 'signIn' : 'signUp')\">\n {{ signUpActive() ? i18n.t('auth.signInSwitch') : i18n.t('auth.signUpSwitch') }}\n </button>\n </p>\n }\n\n <div class=\"kpt-auth__footer\"><ng-content select=\"[kptAuthFooter]\" /></div>\n </div>\n </div>\n\n <aside class=\"kpt-auth__promo\">\n <div class=\"kpt-auth__promo-inner\">\n @if (promoHeading()) {\n <p class=\"kpt-auth__promo-title\">{{ promoHeading() }}</p>\n }\n @if (promoBody()) {\n <p class=\"kpt-auth__promo-text\">{{ promoBody() }}</p>\n }\n <ng-content select=\"[kptAuthPromo]\" />\n @if (mode() !== 'forgot') {\n <kpt-button class=\"kpt-auth__promo-cta\" variant=\"outline\" (click)=\"setMode(promoMode())\">\n {{ promoMode() === 'signUp' ? i18n.t('auth.signUpSwitch') : i18n.t('auth.signInSwitch') }}\n </kpt-button>\n }\n </div>\n </aside>\n </div>\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChildren,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { FormField, FormRoot, email, form, minLength, required, submit, validateTree } from '@angular/forms/signals';\nimport { KptAlert } from '../alert/alert.component';\nimport { KptButton } from '../button/button.component';\nimport { KptCheckbox } from '../checkbox/checkbox.component';\nimport { KptFormField } from '../form-field/form-field.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptInput } from '../input/input.component';\nimport { KptPassword } from '../password/password.component';\nimport { KptAuthProviderDef } from './auth-provider.directive';\nimport type {\n KptAuthLayout,\n KptAuthMode,\n KptAuthProvider,\n KptAuthProviderLayout,\n KptAuthResetValue,\n KptAuthSignInValue,\n KptAuthSignUpValue,\n} from './auth.types';\n\n/** Minimalna długość hasła w rejestracji. */\nconst MIN_PASSWORD = 8;\n\nlet nextUniqueId = 0;\n\n/**\n * Ekran uwierzytelniania: logowanie, rejestracja i odzyskiwanie hasła w jednym komponencie,\n * z panelem promocyjnym i listą dostawców zewnętrznych (OAuth/SSO).\n *\n * Komponent jest prezentacyjny — nie woła API ani nie nawiguje. Wywołania backendu podpina\n * aplikacja pod `signIn` / `signUp` / `resetPassword` / `providerSelect`, a stan operacji\n * podaje z powrotem przez `busy`, `error` i `notice`.\n *\n * Układ `slider` przesuwa panel promocyjny nad formularzami przy zmianie trybu; `split`\n * zostawia go nieruchomo i przełącza sam formularz. Poniżej breakpointu `md` oba układy\n * schodzą do jednej kolumny.\n *\n * @example\n * <kpt-auth\n * [providers]=\"[{ id: 'google', label: 'Google', icon: 'brand-google' }]\"\n * [busy]=\"loading()\"\n * [error]=\"serverError()\"\n * (signIn)=\"login($event)\"\n * (providerSelect)=\"oauth($event.id)\"\n * >\n * <img kptAuthBrand src=\"/logo.svg\" alt=\"Konce\" />\n * <div kptAuthPromo><h3>Witaj ponownie</h3><p>Zaloguj się, by wrócić do pracy.</p></div>\n * </kpt-auth>\n */\n@Component({\n selector: 'kpt-auth',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormField,\n FormRoot,\n KptAlert,\n KptButton,\n KptCheckbox,\n KptFormField,\n KptIcon,\n KptInput,\n KptPassword,\n NgTemplateOutlet,\n ],\n templateUrl: './auth.component.html',\n styleUrl: './auth.component.scss',\n host: {\n class: 'kpt-auth-host',\n '[attr.data-layout]': 'layout()',\n '[attr.data-mode]': 'mode()',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptAuth {\n /** Aktywny tryb ekranu (dwukierunkowy — aplikacja może go wymusić po nawigacji). */\n readonly mode = model<KptAuthMode>('signIn');\n /** Układ: przesuwany panel promocyjny albo nieruchomy split-screen. */\n readonly layout = input<KptAuthLayout>('slider');\n /** Dostawcy logowania zewnętrznego. */\n readonly providers = input<readonly KptAuthProvider[]>([]);\n /** Układ przycisków dostawców: lista pełnej szerokości albo siatka ikon. */\n readonly providerLayout = input<KptAuthProviderLayout>('list');\n /** Pole „imię i nazwisko\" w rejestracji. */\n readonly showName = input(true, { transform: booleanAttribute });\n /** Wymagana zgoda na regulamin w rejestracji. */\n readonly requireTerms = input(true, { transform: booleanAttribute });\n /** Przełącznik „zapamiętaj mnie\" przy logowaniu. */\n readonly showRemember = input(true, { transform: booleanAttribute });\n /** Operacja w toku — przyciski w stanie ładowania, pola zablokowane. */\n readonly busy = input(false, { transform: booleanAttribute });\n /** Komunikat błędu z serwera (np. „nieprawidłowe dane logowania\"). */\n readonly error = input<string | null>(null);\n /** Komunikat powodzenia (np. „wysłaliśmy link na podany adres\"). */\n readonly notice = input<string | null>(null);\n /**\n * Tytuł panelu promocyjnego. `null` (domyślnie) = tekst z i18n zależny od trybu,\n * `''` = brak tytułu (miejsce dla slotu `[kptAuthPromo]`).\n */\n readonly promoTitle = input<string | null>(null);\n /** Tekst panelu promocyjnego; zasady jak w `promoTitle`. */\n readonly promoText = input<string | null>(null);\n /** Animacja przejścia między trybami. */\n readonly animated = input(true, { transform: booleanAttribute });\n /** Czas animacji w ms. */\n readonly animationDuration = input(320, { transform: numberAttribute });\n\n readonly signIn = output<KptAuthSignInValue>();\n readonly signUp = output<KptAuthSignUpValue>();\n readonly resetPassword = output<KptAuthResetValue>();\n readonly providerSelect = output<KptAuthProvider>();\n\n protected readonly i18n = inject(KptI18n);\n private readonly injector = inject(Injector);\n private readonly uid = ++nextUniqueId;\n\n /** Nagłówek panelu dostaje fokus po zmianie trybu — inaczej zmiana nie zostaje ogłoszona. */\n private readonly headings = viewChildren<ElementRef<HTMLElement>>('heading');\n private readonly providerDefs = contentChildren(KptAuthProviderDef);\n\n protected readonly ids = {\n signIn: `kpt-auth-${this.uid}-signin`,\n signUp: `kpt-auth-${this.uid}-signup`,\n forgot: `kpt-auth-${this.uid}-forgot`,\n email: `kpt-auth-${this.uid}-email`,\n password: `kpt-auth-${this.uid}-password`,\n name: `kpt-auth-${this.uid}-name`,\n regEmail: `kpt-auth-${this.uid}-reg-email`,\n regPassword: `kpt-auth-${this.uid}-reg-password`,\n regConfirm: `kpt-auth-${this.uid}-reg-confirm`,\n resetEmail: `kpt-auth-${this.uid}-reset-email`,\n };\n\n /** W trybie `signUp` formularz i panel promocyjny zamieniają się stronami. */\n protected readonly signUpActive = computed(() => this.mode() === 'signUp');\n\n protected readonly headingId = computed(() => this.ids[this.mode()]);\n protected readonly title = computed(() => this.i18n.t(`auth.${this.mode()}Title`));\n protected readonly subtitle = computed(() => this.i18n.t(`auth.${this.mode()}Subtitle`));\n /** Panel promocyjny zachęca do trybu przeciwnego do bieżącego. */\n protected readonly promoMode = computed<KptAuthMode>(() => (this.signUpActive() ? 'signIn' : 'signUp'));\n protected readonly promoHeading = computed(() => {\n const custom = this.promoTitle();\n return custom === null ? this.i18n.t(`auth.promo.${this.promoMode()}Title`) : custom;\n });\n protected readonly promoBody = computed(() => {\n const custom = this.promoText();\n return custom === null ? this.i18n.t(`auth.promo.${this.promoMode()}Text`) : custom;\n });\n\n // ── Formularze (po jednym na tryb; walidatory bezwarunkowe) ──\n private readonly signInModel = signal<KptAuthSignInValue>({ email: '', password: '', remember: false });\n protected readonly signInForm = form(this.signInModel, (p) => {\n required(p.email);\n email(p.email);\n required(p.password);\n });\n\n private readonly signUpModel = signal({ name: '', email: '', password: '', confirm: '', terms: false });\n protected readonly signUpForm = form(this.signUpModel, (p) => {\n // `when` zależy od konfiguracji komponentu (czy pole w ogóle istnieje), nie od stanu UI —\n // ukryte pole nie może blokować formularza, a `valid()` nadal mówi prawdę.\n required(p.name, { when: () => this.showName() });\n required(p.email);\n email(p.email);\n required(p.password);\n minLength(p.password, MIN_PASSWORD);\n required(p.terms, { when: () => this.requireTerms() });\n // Zgodność haseł jako błąd pola „powtórz hasło\" — walidacja par idzie przez validateTree.\n validateTree(p, (ctx) => {\n const pass = ctx.valueOf(p.password);\n const confirm = ctx.valueOf(p.confirm);\n if (!confirm || pass === confirm) return null;\n return { kind: 'mismatch', fieldTree: ctx.fieldTreeOf(p.confirm) };\n });\n });\n\n private readonly resetModel = signal<KptAuthResetValue>({ email: '' });\n protected readonly resetForm = form(this.resetModel, (p) => {\n required(p.email);\n email(p.email);\n });\n\n protected readonly signInInvalid = computed(() => this.signInForm().invalid());\n protected readonly signUpInvalid = computed(() => this.signUpForm().invalid());\n protected readonly resetInvalid = computed(() => this.resetForm().invalid());\n\n protected readonly signInEmailError = computed(() => this.errorText(this.signInForm.email().errors(), this.signInForm.email().touched()));\n protected readonly signInPasswordError = computed(() => this.errorText(this.signInForm.password().errors(), this.signInForm.password().touched()));\n protected readonly signUpNameError = computed(() => this.errorText(this.signUpForm.name().errors(), this.signUpForm.name().touched()));\n protected readonly signUpEmailError = computed(() => this.errorText(this.signUpForm.email().errors(), this.signUpForm.email().touched()));\n protected readonly signUpPasswordError = computed(() => this.errorText(this.signUpForm.password().errors(), this.signUpForm.password().touched()));\n protected readonly signUpConfirmError = computed(() => this.errorText(this.signUpForm.confirm().errors(), this.signUpForm.confirm().touched()));\n protected readonly signUpTermsError = computed(() => this.errorText(this.signUpForm.terms().errors(), this.signUpForm.terms().touched()));\n protected readonly resetEmailError = computed(() => this.errorText(this.resetForm.email().errors(), this.resetForm.email().touched()));\n\n /**\n * Komunikat błędu składamy z `kind` w chwili renderowania, a nie w walidatorze — dzięki temu\n * zmiana języka w runtime przerysowuje komunikaty (walidatory tworzą się raz, przy starcie).\n * Bramka „nie strasz czerwienią świeżego pola\" żyje tu, w prezentacji.\n */\n private errorText(errors: readonly { kind: string }[], touched: boolean): string | null {\n if (!touched || errors.length === 0) return null;\n switch (errors[0].kind) {\n case 'required':\n return this.i18n.t('auth.errorRequired');\n case 'email':\n return this.i18n.t('auth.errorEmail');\n case 'minLength':\n return this.i18n.t('auth.errorMinLength', { min: MIN_PASSWORD });\n case 'mismatch':\n return this.i18n.t('auth.errorMismatch');\n default:\n return this.i18n.t('auth.errorInvalid');\n }\n }\n\n // ── Tryby ──\n protected setMode(mode: KptAuthMode): void {\n if (mode === this.mode()) return;\n this.mode.set(mode);\n // Fokus na nagłówku nowego trybu: bez tego czytnik nie ogłosi zmiany, a fokus zostaje\n // na przycisku, który właśnie zjechał z ekranu. Musi to być `afterNextRender` —\n // mikrozadanie wykonałoby się jeszcze przed przerysowaniem, na starym nagłówku.\n afterNextRender(\n () => {\n const heading = this.headings().find((h) => h.nativeElement.dataset['mode'] === mode);\n heading?.nativeElement.focus();\n },\n { injector: this.injector },\n );\n }\n\n // ── Submit ──\n protected onSignIn(): void {\n void submit(this.signInForm, {\n action: async () => {\n this.signIn.emit({ ...this.signInModel() });\n },\n });\n }\n protected onSignUp(): void {\n void submit(this.signUpForm, {\n action: async () => {\n const { name, email: mail, password, terms } = this.signUpModel();\n this.signUp.emit({ name, email: mail, password, terms });\n },\n });\n }\n protected onReset(): void {\n void submit(this.resetForm, {\n action: async () => {\n this.resetPassword.emit({ ...this.resetModel() });\n },\n });\n }\n\n // ── Dostawcy ──\n protected templateFor(provider: KptAuthProvider) {\n return this.providerDefs().find((def) => def.kptAuthProvider() === provider.id)?.template ?? null;\n }\n protected selectProvider(provider: KptAuthProvider): void {\n if (this.busy()) return;\n this.providerSelect.emit(provider);\n }\n /** Kontekst szablonu własnego dostawcy: `$implicit` = dostawca, `select` = zgłoszenie wyboru. */\n protected providerContext(provider: KptAuthProvider): { $implicit: KptAuthProvider; select: () => void } {\n return { $implicit: provider, select: () => this.selectProvider(provider) };\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Panel z nagłówkiem i opcjonalnym zwijaniem. Akcje nagłówka: atrybut `kptPanelActions`.\n *\n * @example\n * <kpt-panel header=\"Ustawienia\" toggleable>Treść…</kpt-panel>\n */\n@Component({\n selector: 'kpt-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-panel\">\n <div class=\"kpt-panel__header\">\n <span class=\"kpt-panel__title\">{{ header() }}</span>\n <span class=\"kpt-panel__actions\"><ng-content select=\"[kptPanelActions]\" /></span>\n @if (toggleable()) {\n <button type=\"button\" class=\"kpt-panel__toggle\" (click)=\"collapsed.set(!collapsed())\" [attr.aria-expanded]=\"!collapsed()\" [attr.aria-label]=\"i18n.t('panel.toggle')\">\n <kpt-icon [name]=\"collapsed() ? 'chevron-down' : 'chevron-up'\" />\n </button>\n }\n </div>\n <div\n class=\"kpt-panel__collapse\"\n [class.is-open]=\"!collapsed()\"\n [attr.inert]=\"collapsed() ? '' : null\"\n [attr.aria-hidden]=\"collapsed()\"\n >\n <div class=\"kpt-panel__collapse-inner\">\n <div class=\"kpt-panel__body\"><ng-content /></div>\n </div>\n </div>\n </div>\n `,\n styleUrl: './panel.component.scss',\n host: {\n 'class': 'kpt-panel-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptPanel {\n readonly header = input('');\n readonly toggleable = input(false, { transform: booleanAttribute });\n readonly collapsed = model(false);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Grupa pól z legendą (fieldset), opcjonalnie zwijana.\n *\n * @example\n * <kpt-fieldset legend=\"Dane osobowe\" toggleable>…</kpt-fieldset>\n */\n@Component({\n selector: 'kpt-fieldset',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <fieldset class=\"kpt-fieldset\">\n <legend class=\"kpt-fieldset__legend\">\n @if (toggleable()) {\n <button type=\"button\" class=\"kpt-fieldset__toggle\" (click)=\"collapsed.set(!collapsed())\" [attr.aria-expanded]=\"!collapsed()\">\n <kpt-icon [name]=\"collapsed() ? 'chevron-down' : 'chevron-up'\" />\n <span>{{ legend() }}</span>\n </button>\n } @else {\n <span>{{ legend() }}</span>\n }\n </legend>\n <div\n class=\"kpt-fieldset__collapse\"\n [class.is-open]=\"!collapsed()\"\n [attr.inert]=\"collapsed() ? '' : null\"\n [attr.aria-hidden]=\"collapsed()\"\n >\n <div class=\"kpt-fieldset__collapse-inner\">\n <div class=\"kpt-fieldset__body\"><ng-content /></div>\n </div>\n </div>\n </fieldset>\n `,\n styleUrl: './fieldset.component.scss',\n host: {\n 'class': 'kpt-fieldset-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptFieldset {\n readonly legend = input('');\n readonly toggleable = input(false, { transform: booleanAttribute });\n readonly collapsed = model(false);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, inject, input, model } from '@angular/core';\n\nexport type KptSplitterOrientation = 'horizontal' | 'vertical';\n\n/**\n * Splitter — dwa panele z przeciąganym uchwytem. Panele przez sloty `[kptSplitStart]` i `[kptSplitEnd]`.\n * `horizontal` = panele obok siebie, `vertical` = jeden pod drugim.\n *\n * @example\n * <kpt-splitter orientation=\"horizontal\" [(startSize)]=\"size\">\n * <div kptSplitStart>Lewy</div>\n * <div kptSplitEnd>Prawy</div>\n * </kpt-splitter>\n */\n@Component({\n selector: 'kpt-splitter',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-splitter\" [attr.data-orientation]=\"orientation()\">\n <div class=\"kpt-splitter__pane\" [style.flex-basis.%]=\"startSize()\"><ng-content select=\"[kptSplitStart]\" /></div>\n <div\n class=\"kpt-splitter__gutter\"\n role=\"separator\"\n tabindex=\"0\"\n [attr.aria-orientation]=\"orientation()\"\n [attr.aria-valuenow]=\"startSize()\"\n (pointerdown)=\"onPointer($event)\"\n (keydown)=\"onKeydown($event)\"\n ></div>\n <div class=\"kpt-splitter__pane\" [style.flex-basis.%]=\"endSize()\"><ng-content select=\"[kptSplitEnd]\" /></div>\n </div>\n `,\n styleUrl: './splitter.component.scss',\n host: { class: 'kpt-splitter-host' },\n})\nexport class KptSplitter {\n private readonly host = inject(ElementRef<HTMLElement>);\n readonly orientation = input<KptSplitterOrientation>('horizontal');\n /** Rozmiar pierwszego panelu w procentach (0–100). */\n readonly startSize = model(50);\n readonly minSize = input(10);\n\n protected readonly endSize = computed(() => 100 - this.startSize());\n\n protected onPointer(event: PointerEvent): void {\n event.preventDefault();\n const container = this.host.nativeElement.querySelector('.kpt-splitter') as HTMLElement;\n const move = (e: PointerEvent) => {\n const rect = container.getBoundingClientRect();\n const pct =\n this.orientation() === 'horizontal'\n ? ((e.clientX - rect.left) / rect.width) * 100\n : ((e.clientY - rect.top) / rect.height) * 100;\n this.setSize(pct);\n };\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n const dir = event.key === 'ArrowLeft' || event.key === 'ArrowUp' ? -2 : event.key === 'ArrowRight' || event.key === 'ArrowDown' ? 2 : 0;\n if (!dir) return;\n event.preventDefault();\n this.setSize(this.startSize() + dir);\n }\n\n private setSize(pct: number): void {\n const min = this.minSize();\n this.startSize.set(Math.min(100 - min, Math.max(min, Math.round(pct))));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, afterNextRender, inject, input, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Przycisk „do góry\" — pojawia się po przewinięciu ponad `threshold` px.\n * Domyślnie działa na oknie; `target` przyjmuje selektor przewijanego elementu.\n *\n * @example\n * <kpt-scroll-top [threshold]=\"300\" />\n */\n@Component({\n selector: 'kpt-scroll-top',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <button\n type=\"button\"\n class=\"kpt-scroll-top\"\n [class.is-visible]=\"visible()\"\n (click)=\"scrollUp()\"\n [attr.aria-label]=\"i18n.t('scrollTop.label')\"\n [attr.tabindex]=\"visible() ? 0 : -1\"\n ><kpt-icon name=\"arrow-up\" /></button>\n `,\n styleUrl: './scroll-top.component.scss',\n host: { class: 'kpt-scroll-top-host' },\n})\nexport class KptScrollTop {\n readonly threshold = input(300);\n readonly target = input<string | null>(null);\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(false);\n private scroller: HTMLElement | Window = window;\n\n constructor() {\n afterNextRender(() => {\n const sel = this.target();\n this.scroller = sel ? document.querySelector<HTMLElement>(sel) ?? window : window;\n const onScroll = () => this.visible.set(this.currentTop() > this.threshold());\n this.scroller.addEventListener('scroll', onScroll, { passive: true });\n onScroll();\n });\n }\n\n private currentTop(): number {\n return this.scroller === window ? window.scrollY : (this.scroller as HTMLElement).scrollTop;\n }\n\n protected scrollUp(): void {\n if (this.scroller === window) window.scrollTo({ top: 0, behavior: 'smooth' });\n else (this.scroller as HTMLElement).scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Obraz z opcjonalnym podglądem pełnoekranowym (zoom).\n *\n * @example\n * <kpt-image src=\"/foto.jpg\" alt=\"Zdjęcie\" preview width=\"240px\" />\n */\n@Component({\n selector: 'kpt-image',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-image\" [class.kpt-image--preview]=\"preview()\" [style.width]=\"width()\" (click)=\"openPreview()\">\n <img class=\"kpt-image__img\" [src]=\"src()\" [alt]=\"alt()\" />\n @if (preview()) {\n <div class=\"kpt-image__mask\" aria-hidden=\"true\"><kpt-icon name=\"zoom-in\" /></div>\n }\n </div>\n\n @if (open()) {\n <div class=\"kpt-image__overlay\" (click)=\"close()\">\n <button type=\"button\" class=\"kpt-image__close\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n <img class=\"kpt-image__full\" [src]=\"src()\" [alt]=\"alt()\" (click)=\"$event.stopPropagation()\" />\n </div>\n }\n `,\n styleUrl: './image.component.scss',\n host: { class: 'kpt-image-host' },\n})\nexport class KptImage {\n readonly src = input.required<string>();\n readonly alt = input('');\n readonly width = input<string | null>(null);\n readonly preview = input(false, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly open = signal(false);\n\n protected openPreview(): void {\n if (this.preview()) this.open.set(true);\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport interface KptMeterItem {\n label: string;\n value: number;\n color?: string;\n}\n\n/**\n * Wielosegmentowy miernik (meter group) z opcjonalną legendą.\n *\n * @example\n * <kpt-meter-group [values]=\"[{label:'Użyte', value:70}, {label:'Wolne', value:30}]\" />\n */\n@Component({\n selector: 'kpt-meter-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-meter-group\">\n <div class=\"kpt-meter-group__track\" role=\"meter\" [attr.aria-valuenow]=\"sum()\" [attr.aria-valuemax]=\"max()\">\n @for (item of values(); track $index; let i = $index) {\n <span\n class=\"kpt-meter-group__segment\"\n [style.width.%]=\"percent(item)\"\n [style.background-color]=\"item.color || fallback(i)\"\n [attr.title]=\"item.label\"\n ></span>\n }\n </div>\n @if (showLegend()) {\n <ul class=\"kpt-meter-group__legend\">\n @for (item of values(); track $index; let i = $index) {\n <li class=\"kpt-meter-group__legend-item\">\n <span class=\"kpt-meter-group__dot\" [style.background-color]=\"item.color || fallback(i)\"></span>\n <span>{{ item.label }}</span>\n <span class=\"kpt-meter-group__val\">{{ round(percent(item)) }}%</span>\n </li>\n }\n </ul>\n }\n </div>\n `,\n styleUrl: './meter-group.component.scss',\n host: { class: 'kpt-meter-group-host' },\n})\nexport class KptMeterGroup {\n readonly values = input<readonly KptMeterItem[]>([]);\n /** Suma odniesienia; domyślnie suma wartości (100%). */\n readonly max = input<number | undefined>(undefined);\n readonly showLegend = input(true, { transform: booleanAttribute });\n\n private readonly palette = ['var(--kpt-color-primary)', 'var(--kpt-color-info)', 'var(--kpt-color-success)', 'var(--kpt-color-warning)', 'var(--kpt-color-danger)'];\n\n protected readonly sum = computed(() => this.values().reduce((a, v) => a + v.value, 0));\n\n protected total(): number {\n return this.max() ?? (this.sum() || 1);\n }\n protected percent(item: KptMeterItem): number {\n return (item.value / this.total()) * 100;\n }\n protected fallback(i: number): string {\n return this.palette[i % this.palette.length];\n }\n protected round(n: number): number {\n return Math.round(n);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { KptAvatar, type KptAvatarSize } from '../avatar/avatar.component';\n\nexport interface KptAvatarItem {\n name?: string;\n src?: string;\n icon?: string;\n}\n\n/**\n * Grupa nakładających się awatarów z licznikiem „+N\". Buduje na `kpt-avatar`.\n *\n * @example\n * <kpt-avatar-group [avatars]=\"team\" [max]=\"4\" />\n */\n@Component({\n selector: 'kpt-avatar-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptAvatar],\n template: `\n <div class=\"kpt-avatar-group\" [attr.data-size]=\"size()\">\n @for (a of shown(); track $index) {\n <span class=\"kpt-avatar-group__item\">\n <kpt-avatar [name]=\"a.name || ''\" [src]=\"a.src || null\" [icon]=\"a.icon || null\" [size]=\"size()\" />\n </span>\n }\n @if (overflow() > 0) {\n <span class=\"kpt-avatar-group__item kpt-avatar-group__more\" [attr.data-size]=\"size()\">+{{ overflow() }}</span>\n }\n </div>\n `,\n styleUrl: './avatar-group.component.scss',\n host: { class: 'kpt-avatar-group-host' },\n})\nexport class KptAvatarGroup {\n readonly avatars = input<readonly KptAvatarItem[]>([]);\n readonly max = input(4);\n readonly size = input<KptAvatarSize>('md');\n\n protected readonly shown = computed(() => this.avatars().slice(0, this.max()));\n protected readonly overflow = computed(() => Math.max(0, this.avatars().length - this.max()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Stan pusty (empty state) — ikona, tytuł, opis i opcjonalne akcje (projekcja).\n *\n * @example\n * <kpt-empty icon=\"search\" title=\"Brak wyników\" description=\"Zmień kryteria wyszukiwania.\">\n * <kpt-button>Wyczyść filtry</kpt-button>\n * </kpt-empty>\n */\n@Component({\n selector: 'kpt-empty',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-empty\">\n @if (icon()) { <div class=\"kpt-empty__icon\"><kpt-icon [name]=\"icon()!\" /></div> }\n @if (title()) { <p class=\"kpt-empty__title\">{{ title() }}</p> }\n @if (description()) { <p class=\"kpt-empty__desc\">{{ description() }}</p> }\n <div class=\"kpt-empty__actions\"><ng-content /></div>\n </div>\n `,\n styleUrl: './empty.component.scss',\n host: { class: 'kpt-empty-host' },\n})\nexport class KptEmpty {\n readonly icon = input<string | null>('info-circle');\n readonly title = input('');\n readonly description = input('');\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, booleanAttribute, input, viewChild } from '@angular/core';\n\n/**\n * Pojedyncza zakładka. Umieszczaj w `kpt-tabs`. Treść renderowana leniwie (gdy aktywna).\n *\n * @example\n * <kpt-tab label=\"Ogólne\">…treść…</kpt-tab>\n */\n@Component({\n selector: 'kpt-tab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template><ng-content /></ng-template>`,\n})\nexport class KptTab {\n readonly label = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly content = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n input,\n model,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { KptTab } from './tab.component';\n\n/**\n * Zakładki (tabs) — przełączanie widoków. Treść zakładek renderowana leniwie.\n *\n * @example\n * <kpt-tabs [(activeIndex)]=\"tab\">\n * <kpt-tab label=\"Ogólne\">…</kpt-tab>\n * <kpt-tab label=\"Zaawansowane\">…</kpt-tab>\n * </kpt-tabs>\n */\n@Component({\n selector: 'kpt-tabs',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet],\n template: `\n <div class=\"kpt-tabs__header\" role=\"tablist\">\n @for (tab of tabs(); track $index; let i = $index) {\n <button\n #tabBtn\n type=\"button\"\n class=\"kpt-tabs__tab\"\n role=\"tab\"\n [class.is-active]=\"i === activeIndex()\"\n [disabled]=\"tab.disabled()\"\n [attr.aria-selected]=\"i === activeIndex()\"\n (click)=\"select(i)\"\n >{{ tab.label() }}</button>\n }\n <span class=\"kpt-tabs__ink\" [style.width.px]=\"inkW()\" [style.transform]=\"'translateX(' + inkX() + 'px)'\"></span>\n </div>\n <div class=\"kpt-tabs__body\" role=\"tabpanel\">\n @for (tab of activePanels(); track activeIndex()) {\n <div class=\"kpt-tabs__panel\"><ng-container [ngTemplateOutlet]=\"tab.content()\" /></div>\n }\n </div>\n `,\n styleUrl: './tabs.component.scss',\n host: {\n 'class': 'kpt-tabs-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n '[style.--kpt-anim-dir]': 'direction()',\n '(window:resize)': 'measureInk()',\n },\n})\nexport class KptTabs {\n protected readonly tabs = contentChildren(KptTab);\n readonly activeIndex = model(0);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n private readonly tabBtns = viewChildren<ElementRef<HTMLButtonElement>>('tabBtn');\n protected readonly inkX = signal(0);\n protected readonly inkW = signal(0);\n protected readonly direction = signal(1);\n\n protected readonly activeTab = computed(() => this.tabs()[this.activeIndex()]);\n protected readonly activePanels = computed(() => {\n const tab = this.activeTab();\n return tab ? [tab] : [];\n });\n\n constructor() {\n afterRenderEffect(() => this.measureInk());\n }\n\n protected measureInk(): void {\n const btn = this.tabBtns()[this.activeIndex()]?.nativeElement;\n if (!btn) return;\n this.inkX.set(btn.offsetLeft);\n this.inkW.set(btn.offsetWidth);\n }\n\n protected select(index: number): void {\n if (this.tabs()[index]?.disabled()) return;\n this.direction.set(index >= this.activeIndex() ? 1 : -1);\n this.activeIndex.set(index);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptAccordion } from './accordion.component';\n\n/**\n * Panel akordeonu. Umieszczaj w `kpt-accordion`. Stan `expanded` jest dwukierunkowy.\n */\n@Component({\n selector: 'kpt-accordion-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-accordion-panel\" [class.is-open]=\"expanded()\">\n <button\n type=\"button\"\n class=\"kpt-accordion-panel__header\"\n [attr.aria-expanded]=\"expanded()\"\n [disabled]=\"disabled()\"\n (click)=\"toggle()\"\n >\n <span class=\"kpt-accordion-panel__title\">{{ title() }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-accordion-panel__chevron\" [class.is-open]=\"expanded()\" />\n </button>\n <div\n class=\"kpt-accordion-panel__collapse\"\n [class.is-open]=\"expanded()\"\n [attr.inert]=\"expanded() ? null : ''\"\n [attr.aria-hidden]=\"!expanded()\"\n >\n <div class=\"kpt-accordion-panel__collapse-inner\">\n <div class=\"kpt-accordion-panel__body\"><ng-content /></div>\n </div>\n </div>\n </div>\n `,\n styleUrl: './accordion-panel.component.scss',\n host: {\n 'class': 'kpt-accordion-panel-host',\n '[style.--kpt-anim-duration]': 'animMs()',\n },\n})\nexport class KptAccordionPanel {\n readonly title = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly expanded = model(false);\n\n private readonly accordion = inject(KptAccordion, { optional: true });\n\n protected readonly animMs = computed(() => {\n const on = this.accordion?.animated() ?? true;\n const d = this.accordion?.animationDuration() ?? 500;\n return (on ? d : 0) + 'ms';\n });\n\n protected toggle(): void {\n if (this.disabled()) return;\n const willOpen = !this.expanded();\n this.expanded.set(willOpen);\n if (willOpen) this.accordion?.onOpen(this);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, contentChildren, input } from '@angular/core';\nimport { KptAccordionPanel } from './accordion-panel.component';\n\n/**\n * Akordeon — grupa rozwijanych paneli. `multi` pozwala otworzyć wiele naraz.\n *\n * @example\n * <kpt-accordion>\n * <kpt-accordion-panel title=\"Sekcja 1\">…</kpt-accordion-panel>\n * <kpt-accordion-panel title=\"Sekcja 2\">…</kpt-accordion-panel>\n * </kpt-accordion>\n */\n@Component({\n selector: 'kpt-accordion',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<ng-content />`,\n styleUrl: './accordion.component.scss',\n host: { class: 'kpt-accordion-host' },\n})\nexport class KptAccordion {\n readonly multi = input(false, { transform: booleanAttribute });\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n private readonly panels = contentChildren(KptAccordionPanel);\n\n /** Wywoływane przez panel przy otwarciu — zamyka pozostałe, gdy nie `multi`. */\n onOpen(opened: KptAccordionPanel): void {\n if (this.multi()) return;\n for (const panel of this.panels()) {\n if (panel !== opened) panel.expanded.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptBreadcrumbItem {\n label: string;\n url?: string;\n}\n\n/**\n * Ścieżka nawigacji (breadcrumbs).\n *\n * @example\n * <kpt-breadcrumb [items]=\"[{label:'Start',url:'/'},{label:'Ustawienia'}]\" />\n */\n@Component({\n selector: 'kpt-breadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <nav class=\"kpt-breadcrumb\" [attr.aria-label]=\"i18n.t('breadcrumb.label')\">\n @for (item of items(); track $index; let last = $last) {\n @if (item.url && !last) {\n <a class=\"kpt-breadcrumb__link\" [href]=\"item.url\">{{ item.label }}</a>\n } @else {\n <span class=\"kpt-breadcrumb__current\" [attr.aria-current]=\"last ? 'page' : null\">{{ item.label }}</span>\n }\n @if (!last) {\n <kpt-icon name=\"chevron-right\" class=\"kpt-breadcrumb__sep\" />\n }\n }\n </nav>\n `,\n styleUrl: './breadcrumb.component.scss',\n host: { class: 'kpt-breadcrumb-host' },\n})\nexport class KptBreadcrumb {\n readonly items = input<readonly KptBreadcrumbItem[]>([]);\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, input, viewChild } from '@angular/core';\n\n/**\n * Krok w `kpt-stepper`. Treść renderowana leniwie (gdy krok aktywny).\n *\n * @example\n * <kpt-step label=\"Konto\">…</kpt-step>\n */\n@Component({\n selector: 'kpt-step',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template><ng-content /></ng-template>`,\n})\nexport class KptStep {\n readonly label = input.required<string>();\n readonly content = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptStep } from './step.component';\n\n/**\n * Kreator kroków (stepper). Nagłówek z numerowanymi krokami + aktywna treść.\n * Metody `next()`/`prev()`/`goTo()` do sterowania (np. z przycisków).\n *\n * @example\n * <kpt-stepper #s [(activeIndex)]=\"step\">\n * <kpt-step label=\"Konto\">…<kpt-button (click)=\"s.next()\">Dalej</kpt-button></kpt-step>\n * <kpt-step label=\"Profil\">…</kpt-step>\n * </kpt-stepper>\n */\n@Component({\n selector: 'kpt-stepper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <ol class=\"kpt-stepper__header\">\n @for (step of steps(); track $index; let i = $index, last = $last) {\n <li class=\"kpt-stepper__step\" [class.is-active]=\"i === activeIndex()\" [class.is-done]=\"i < activeIndex()\">\n <button type=\"button\" class=\"kpt-stepper__marker\" (click)=\"goTo(i)\" [attr.aria-current]=\"i === activeIndex() ? 'step' : null\">\n @if (i < activeIndex()) { <kpt-icon name=\"check\" /> } @else { {{ i + 1 }} }\n </button>\n <span class=\"kpt-stepper__label\">{{ step.label() }}</span>\n @if (!last) { <span class=\"kpt-stepper__connector\"></span> }\n </li>\n }\n </ol>\n <div class=\"kpt-stepper__body\">\n @for (step of activePanels(); track activeIndex()) {\n <div class=\"kpt-stepper__panel\"><ng-container [ngTemplateOutlet]=\"step.content()\" /></div>\n }\n </div>\n `,\n styleUrl: './stepper.component.scss',\n host: {\n 'class': 'kpt-stepper-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n '[style.--kpt-anim-dir]': 'direction()',\n },\n})\nexport class KptStepper {\n protected readonly steps = contentChildren(KptStep);\n readonly activeIndex = model(0);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n protected readonly direction = signal(1);\n protected readonly activeStep = computed(() => this.steps()[this.activeIndex()]);\n protected readonly activePanels = computed(() => {\n const step = this.activeStep();\n return step ? [step] : [];\n });\n\n goTo(index: number): void {\n const next = Math.max(0, Math.min(index, this.steps().length - 1));\n this.direction.set(next >= this.activeIndex() ? 1 : -1);\n this.activeIndex.set(next);\n }\n next(): void {\n this.direction.set(1);\n this.activeIndex.update((i) => Math.min(i + 1, this.steps().length - 1));\n }\n prev(): void {\n this.direction.set(-1);\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n}\n","<div class=\"kpt-paginator__size\">\n <label>\n {{ i18n.t('paginator.rowsPerPage') }}\n <select class=\"kpt-paginator__select\" [value]=\"pageSize()\" (change)=\"onSizeChange($event)\">\n @for (opt of sizeOptions(); track opt) {\n <option [value]=\"opt\" [selected]=\"opt === pageSize()\">{{ opt }}</option>\n }\n </select>\n </label>\n</div>\n\n<span class=\"kpt-paginator__range\">{{ rangeLabel() }}</span>\n\n<div class=\"kpt-paginator__nav\">\n <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"!canPrev()\" (click)=\"prev()\" [attr.aria-label]=\"i18n.t('paginator.prevPage')\"><kpt-icon name=\"chevron-left\" /></kpt-button>\n <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"!canNext()\" (click)=\"next()\" [attr.aria-label]=\"i18n.t('paginator.nextPage')\"><kpt-icon name=\"chevron-right\" /></kpt-button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Paginator Koncept UI. Sterowany sygnałami; `pageIndex` i `pageSize` są dwukierunkowe.\n *\n * @example\n * <kpt-paginator [length]=\"total()\" [(pageIndex)]=\"page\" [(pageSize)]=\"size\" />\n */\n@Component({\n selector: 'kpt-paginator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptButton, KptIcon],\n templateUrl: './paginator.component.html',\n styleUrl: './paginator.component.scss',\n host: { class: 'kpt-paginator' },\n})\nexport class KptPaginator {\n /** Łączna liczba elementów. */\n readonly length = input.required<number>();\n /** Rozmiar strony (dwukierunkowe). */\n readonly pageSize = model<number>(10);\n /** Indeks strony od 0 (dwukierunkowe). */\n readonly pageIndex = model<number>(0);\n /** Dostępne rozmiary strony. */\n readonly pageSizeOptions = input<readonly number[]>([5, 10, 20, 50]);\n\n protected readonly i18n = inject(KptI18n);\n\n /**\n * Opcje selecta: `pageSizeOptions` uzupełnione o bieżący `pageSize`. Bez tego rozmiar spoza\n * listy (np. `[pageSize]=\"8\"` przy domyślnych opcjach) nie ma odpowiadającej opcji — select\n * pokazuje pierwszą pozycję i cicho kłamie o stanie, po którym tabela naprawdę stronicuje.\n */\n protected readonly sizeOptions = computed(() => {\n const options = this.pageSizeOptions();\n const size = this.pageSize();\n return options.includes(size) ? options : [...options, size].sort((a, b) => a - b);\n });\n\n readonly totalPages = computed(() => Math.max(1, Math.ceil(this.length() / this.pageSize())));\n readonly rangeStart = computed(() => (this.length() === 0 ? 0 : this.pageIndex() * this.pageSize() + 1));\n readonly rangeEnd = computed(() => Math.min(this.length(), (this.pageIndex() + 1) * this.pageSize()));\n protected readonly rangeLabel = computed(() =>\n this.i18n.t('paginator.range', { start: this.rangeStart(), end: this.rangeEnd(), total: this.length() }),\n );\n readonly canPrev = computed(() => this.pageIndex() > 0);\n readonly canNext = computed(() => this.pageIndex() < this.totalPages() - 1);\n\n constructor() {\n // Utrzymuj poprawny indeks, gdy zmieni się długość lub rozmiar strony.\n effect(() => {\n const max = this.totalPages() - 1;\n if (this.pageIndex() > max) {\n this.pageIndex.set(max);\n }\n });\n }\n\n prev(): void {\n if (this.canPrev()) this.pageIndex.update((i) => i - 1);\n }\n next(): void {\n if (this.canNext()) this.pageIndex.update((i) => i + 1);\n }\n onSizeChange(event: Event): void {\n this.pageSize.set(+(event.target as HTMLSelectElement).value);\n this.pageIndex.set(0);\n }\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon komórki dla kolumny `kpt-data-table`. Kontekst: `$implicit` = wiersz,\n * `value` = wartość pola.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\">\n * <ng-template kptCell=\"status\" let-row let-value=\"value\">\n * <span class=\"badge\">{{ value }}</span>\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptCell]',\n})\nexport class KptCellDef {\n /** Nazwa pola kolumny, dla której obowiązuje szablon. */\n readonly kptCell = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon edytora komórki dla kolumny `kpt-data-table` (gdy wbudowane typy\n * `KptColumnEdit.type` nie wystarczają). Kontekst: `$implicit` = bieżąca wartość edycji,\n * `row` = wiersz, `commit(value)` = zatwierdź wartość i zamknij edytor, `cancel()` = odrzuć.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\">\n * <ng-template kptCellEdit=\"team\" let-value let-commit=\"commit\">\n * <my-custom-picker [value]=\"value\" (valueChange)=\"commit($event)\" />\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptCellEdit]',\n})\nexport class KptCellEditDef {\n /** Nazwa pola kolumny, dla której obowiązuje szablon edytora. */\n readonly kptCellEdit = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n/**\n * Szablon rozwijanego wiersza (row detail) dla `kpt-data-table`. Renderowany pod\n * wierszem po rozwinięciu. Kontekst: `$implicit` = wiersz. Wymaga `expandable`.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\" expandable>\n * <ng-template kptRowDetail let-row>\n * <div class=\"szczegoly\">{{ row.opis }}</div>\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptRowDetail]',\n})\nexport class KptRowDetailDef {\n readonly template = inject(TemplateRef);\n}\n","@if (filterable() || exportable()) {\n <div class=\"kpt-data-table__toolbar\">\n @if (filterable()) {\n <input\n class=\"kpt-data-table__filter\"\n type=\"search\"\n [attr.placeholder]=\"i18n.t('dataTable.search')\"\n [value]=\"filterText()\"\n (input)=\"onFilter($event)\"\n />\n }\n @if (exportable()) {\n <kpt-button variant=\"outline\" size=\"sm\" (click)=\"exportCsv()\">{{ i18n.t('dataTable.exportCsv') }}</kpt-button>\n }\n </div>\n}\n\n<div class=\"kpt-data-table__scroll\" #scrollEl [style.max-height]=\"scrollHeight()\" (scroll)=\"onScroll($event)\">\n <table\n class=\"kpt-data-table__table\"\n [class.kpt-data-table__table--frozen]=\"hasFrozen()\"\n [class.kpt-data-table__table--virtual]=\"virtualScroll()\"\n >\n <thead #theadEl>\n @if (hasColumnFilters() && filterRowPosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n <tr>\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() === 'multiple') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"pageAllSelected()\"\n [indeterminate]=\"pageSomeSelected()\"\n (change)=\"toggleAllOnPage()\"\n [attr.aria-label]=\"i18n.t('dataTable.selectAll')\"\n />\n </th>\n } @else if (selectable() === 'single') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [attr.draggable]=\"isColDraggable(col) ? true : null\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__th--sortable]=\"col.sortable\"\n [class.kpt-data-table__th--draggable]=\"isColDraggable(col)\"\n [class.kpt-data-table__th--dragover]=\"dragField() !== null && dragField() !== col.field && !col.frozen\"\n [attr.aria-sort]=\"ariaSort(col)\"\n (click)=\"toggleSort(col)\"\n (dragstart)=\"onColDragStart(col.field, $event)\"\n (dragover)=\"reorderable() ? onColDragOver(col.field, $event) : null\"\n (drop)=\"reorderable() ? onColDrop(col.field, $event) : null\"\n (dragend)=\"onColDragEnd()\"\n >\n @if (isColDraggable(col)) {\n <kpt-icon class=\"kpt-data-table__grip\" name=\"grip-vertical\" />\n }\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <kpt-icon\n class=\"kpt-data-table__sort\"\n [class.kpt-data-table__sort--active]=\"ariaSort(col) !== 'none'\"\n [name]=\"sortIconName(col)\"\n />\n }\n </th>\n }\n </tr>\n @if (hasColumnFilters() && filterRowPosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n </thead>\n <tbody>\n @if (loading()) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ i18n.t('dataTable.loading') }}</td></tr>\n } @else if (displayCount() === 0) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ emptyText() }}</td></tr>\n } @else if (virtualScroll()) {\n @if (topPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"topPad()\"></td></tr>\n }\n @for (row of virtualRows(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n @if (bottomPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"bottomPad()\"></td></tr>\n }\n } @else {\n @for (row of paged(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n }\n </tbody>\n @if (hasSummary() && !loading() && displayCount() > 0) {\n <tfoot>\n <tr class=\"kpt-data-table__summary\">\n @if (summaryLabelSpan() > 0) {\n <th\n class=\"kpt-data-table__summary-label\"\n [attr.colspan]=\"summaryLabelSpan()\"\n [class.kpt-data-table__cell--frozen]=\"hasFrozen()\"\n [style.left.px]=\"hasFrozen() ? 0 : null\"\n >\n {{ summaryLabelText() }}\n </th>\n }\n @for (col of visibleOrderedColumns(); track col.field; let i = $index) {\n @if (i >= summaryStartIndex()) {\n <td\n [attr.data-align]=\"col.align ?? 'end'\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n {{ summaryText(col.field) }}\n </td>\n }\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n<ng-template #rowTpl let-row>\n <tr\n [class.kpt-data-table__row--selected]=\"isSelected(row)\"\n [class.kpt-data-table__row--expanded]=\"hasRowDetail() && isExpanded(row)\"\n [style.height.px]=\"virtualScroll() ? rowHeight() : null\"\n (click)=\"onRowClick(row)\"\n >\n @if (hasRowDetail()) {\n <td class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\">\n <button\n type=\"button\"\n class=\"kpt-data-table__expander-btn\"\n [class.kpt-data-table__expander-btn--open]=\"isExpanded(row)\"\n [attr.aria-expanded]=\"isExpanded(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.expandRow')\"\n (click)=\"$event.stopPropagation(); toggleExpand(row)\"\n >\n <kpt-icon name=\"chevron-right\" />\n </button>\n </td>\n }\n @if (selectable() !== 'none') {\n <td class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleRow(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.selectRow')\"\n />\n </td>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <td\n [attr.data-align]=\"col.align ?? 'start'\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__cell--editable]=\"isEditable(col) && !isEditingCell(row, col.field)\"\n [attr.tabindex]=\"isEditable(col) && !isEditingCell(row, col.field) ? 0 : null\"\n [attr.aria-label]=\"isEditable(col) && !isEditingCell(row, col.field) ? i18n.t('dataTable.editCell', { column: col.header }) : null\"\n (click)=\"isEditable(col) ? startEdit(row, col, $event) : null\"\n (keydown.enter)=\"isEditable(col) && !isEditingCell(row, col.field) ? startEdit(row, col, $event) : null\"\n >\n @if (isEditingCell(row, col.field)) {\n <div\n class=\"kpt-data-table__editor\"\n #editorHost\n (click)=\"$event.stopPropagation()\"\n (focusout)=\"onEditorFocusOut($event)\"\n >\n @if (cellEditTemplate(col.field); as etpl) {\n <ng-container\n [ngTemplateOutlet]=\"etpl\"\n [ngTemplateOutletContext]=\"{ $implicit: editingValue(), row, commit: commitEditValue, cancel: cancelEdit }\"\n />\n } @else {\n @switch (col.edit?.type) {\n @case ('text') {\n <kpt-input\n [value]=\"$any(editingValue()) ?? ''\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('number') {\n <kpt-input-number\n [value]=\"$any(editingValue())\"\n [min]=\"col.edit.min\"\n [max]=\"col.edit.max\"\n [step]=\"col.edit.step ?? 1\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('date') {\n <kpt-datepicker\n [value]=\"$any(editingValue()) ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('multiselect') {\n <kpt-select\n multiple\n filter\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n }\n }\n </div>\n } @else if (cellTemplate(col.field); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, value: getValue(row, col.field) }\"\n />\n } @else {\n {{ getValue(row, col.field) }}\n }\n </td>\n }\n </tr>\n @if (hasRowDetail() && isExpanded(row) && !virtualScroll()) {\n <tr class=\"kpt-data-table__detail-row\">\n <td class=\"kpt-data-table__detail\" [attr.colspan]=\"colspan()\">\n <ng-container [ngTemplateOutlet]=\"rowDetailTpl()\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n </td>\n </tr>\n }\n</ng-template>\n\n<ng-template #filterRowTpl>\n <tr class=\"kpt-data-table__filter-row\">\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() !== 'none') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n @switch (col.filter?.type) {\n @case ('text') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"search\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"setColumnFilter(col.field, $any($event.target).value)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('number') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"onNumberFilter(col.field, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.filter.options || []\"\n [multiple]=\"!!col.filter.multiple\"\n filter\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.all')\"\n [value]=\"columnFilters()[col.field] ?? null\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n @case ('numberRange') {\n <div class=\"kpt-data-table__frange\">\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.min')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMin', { column: col.header })\"\n [value]=\"rangeVal(col.field).min\"\n (input)=\"setRangeFilter(col.field, 'min', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.max')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMax', { column: col.header })\"\n [value]=\"rangeVal(col.field).max\"\n (input)=\"setRangeFilter(col.field, 'max', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n }\n @case ('slider') {\n <div class=\"kpt-data-table__fslider\" (click)=\"$event.stopPropagation()\">\n <kpt-slider\n range\n [min]=\"col.filter.min ?? 0\"\n [max]=\"col.filter.max ?? 100\"\n [step]=\"col.filter.step ?? 1\"\n [value]=\"sliderVal(col)\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n showValue\n />\n </div>\n }\n @case ('dateRange') {\n <kpt-date-range\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.dateRange')\"\n [value]=\"$any(columnFilters()[col.field]) || { start: '', end: '' }\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n }\n </th>\n }\n </tr>\n</ng-template>\n\n@if (pageSize() > 0 && !virtualScroll()) {\n <div class=\"kpt-data-table__pager\">\n <ng-content select=\"[kptPaginatorActions]\" />\n <kpt-paginator\n [length]=\"filteredCount()\"\n [pageIndex]=\"pageIndex()\"\n (pageIndexChange)=\"pageIndex.set($event)\"\n [pageSize]=\"pageSizeState()\"\n (pageSizeChange)=\"pageSizeState.set($event)\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n contentChildren,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptDateRange } from '../date-range/date-range.component';\nimport { KptDatepicker } from '../datepicker/datepicker.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport { KptInput } from '../input/input.component';\nimport { KptInputNumber } from '../input-number/input-number.component';\nimport { KptPaginator } from '../paginator/paginator.component';\nimport { KptSelect } from '../select/select.component';\nimport { KptSlider } from '../slider/slider.component';\nimport type { KptOption } from '../shared/types';\nimport { KptCellDef } from './cell.directive';\nimport { KptCellEditDef } from './cell-edit.directive';\nimport {\n aggregate,\n escapeCsvCell,\n isEmptyFilterValue,\n matchesColumnFilter,\n toText,\n type KptColumnFilter,\n type KptColumnSummary,\n} from '@konce-pt/table';\nimport { KptRowDetailDef } from './row-detail.directive';\n\n// Rdzeń tabeli (filtry, agregacje, CSV) mieszka w `@konce-pt/table`; re-eksport trzyma\n// publiczne API biblioteki bez zmian.\nexport type { KptColumnFilter, KptColumnFilterType, KptColumnSummary, KptSummaryFn } from '@konce-pt/table';\n\n/** Rodzaj kontrolki edycji inline komórki. */\nexport type KptColumnEditType = 'text' | 'number' | 'date' | 'select' | 'multiselect';\n\nexport interface KptColumnEdit {\n type: KptColumnEditType;\n /** Opcje dla `type: 'select'` / `'multiselect'`. */\n options?: readonly KptOption<unknown>[];\n placeholder?: string;\n /** Dla `type: 'number'`. */\n min?: number;\n max?: number;\n step?: number;\n}\n\nexport interface KptColumn {\n /** Nazwa pola w wierszu. */\n field: string;\n /** Nagłówek kolumny. */\n header: string;\n /** Czy kolumna jest sortowalna. */\n sortable?: boolean;\n /** Wyrównanie zawartości. */\n align?: 'start' | 'center' | 'end';\n /** Szerokość kolumny (np. '10rem', '20%'). Wymagane dla kolumn zamrożonych. */\n width?: string;\n /** Zamrożenie (sticky) — obsługiwane dla wiodących, sąsiadujących kolumn. */\n frozen?: boolean;\n /** Filtr kolumny w wierszu nagłówka (input/number/select/zakres dat). */\n filter?: KptColumnFilter;\n /** Włącza edycję inline (klik w komórkę zamienia wartość na kontrolkę tego typu). */\n edit?: KptColumnEdit;\n /** Włącza agregację tej kolumny w wierszu podsumowania (`<tfoot>`, nad paginatorem). */\n summary?: KptColumnSummary;\n}\n\n/** Zdarzenie po zatwierdzeniu edycji komórki. */\nexport interface KptCellEditEvent<T> {\n /** Wiersz sprzed zmiany. */\n row: T;\n field: string;\n /** Nowa wartość. */\n value: unknown;\n /** Wiersz po scaleniu ze zmienioną wartością — gotowe body PUT/PATCH. */\n updatedRow: T;\n}\n\nconst REM_PX = 16;\nconst CHECKBOX_FROZEN_W = 3; // rem\nconst EXPANDER_FROZEN_W = 2.5; // rem\n\n/** Edytory renderujące panel w CDK Overlay — otwierane od razu i zatwierdzane na zamknięciu panelu. */\nconst OVERLAY_EDITORS: ReadonlySet<KptColumnEditType> = new Set(['date', 'select', 'multiselect']);\n\n/** Tablice (multiselect) porównujemy po zawartości, resztę po referencji. */\nfunction sameEditValue(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((v, i) => v === b[i]);\n }\n return false;\n}\n\ntype SortDir = 'asc' | 'desc' | null;\n\n/** Stan przekazywany w trybie lazy przy każdej zmianie sortowania/filtra/strony. */\nexport interface KptTableLazyState {\n pageIndex: number;\n pageSize: number;\n sortField: string | null;\n sortDir: SortDir;\n filter: string;\n /** Wartości filtrów per kolumna (pole → wartość kontrolki). */\n columnFilters: Record<string, unknown>;\n}\n\n/**\n * Flagowa tabela danych Koncept UI: kolumny konfiguracją, sortowanie,\n * filtr globalny, paginacja, zaznaczanie wierszy i własne szablony komórek (`kptCell`).\n * Sygnałowa, OnPush. Stylowanie tokenami `--kpt-table-*`.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\" filterable [pageSize]=\"10\"\n * selectable=\"multiple\" rowKey=\"id\" [(selection)]=\"picked\">\n * <!-- Kontekst szablonu komórki: $implicit = wiersz, value = wartość pola. -->\n * <ng-template kptCell=\"status\" let-row let-value=\"value\">\n * <span class=\"badge\" [title]=\"row.name\">{{ value }}</span>\n * </ng-template>\n * </kpt-data-table>\n */\n@Component({\n selector: 'kpt-data-table',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n KptButton,\n KptIcon,\n KptPaginator,\n KptSelect,\n KptDateRange,\n KptSlider,\n KptInput,\n KptInputNumber,\n KptDatepicker,\n ],\n templateUrl: './data-table.component.html',\n styleUrl: './data-table.component.scss',\n host: {\n 'class': 'kpt-data-table',\n '[style.--kpt-thead-offset]': \"theadOffset() + 'px'\",\n },\n})\nexport class KptDataTable<T = Record<string, unknown>> {\n // ── Wejścia ──\n readonly columns = input.required<readonly KptColumn[]>();\n readonly data = input<readonly T[]>([]);\n readonly filterable = input(false, { transform: booleanAttribute });\n /** Pozycja wiersza filtrów kolumn względem etykiet: nad ('top') lub pod ('bottom'). */\n readonly filterRowPosition = input<'top' | 'bottom'>('bottom');\n /** Rozmiar strony; 0 wyłącza paginację. */\n readonly pageSize = input(0);\n readonly pageSizeOptions = input<readonly number[]>([5, 10, 20, 50]);\n readonly selectable = input<'none' | 'single' | 'multiple'>('none');\n readonly loading = input(false, { transform: booleanAttribute });\n /** Komunikat pustej tabeli; bez wartości używa i18n (`dataTable.empty`). */\n readonly emptyMessage = input<string>();\n /** Pole identyfikujące wiersz (dla zaznaczania). Bez niego — porównanie po referencji. */\n readonly rowKey = input<string | null>(null);\n /** Wysokość przewijalnego obszaru (np. '400px'); sticky header pozostaje widoczny. */\n readonly scrollHeight = input<string | null>(null);\n /** Wirtualizacja wierszy dla dużych zbiorów (renderuje tylko widoczne). Wymaga `scrollHeight`. */\n readonly virtualScroll = input(false, { transform: booleanAttribute });\n /** Wysokość wiersza w px (stała, wymagana przy virtualScroll). */\n readonly rowHeight = input(41);\n /** Umożliwia przestawianie kolumn metodą przeciągnij-i-upuść. */\n readonly reorderable = input(false, { transform: booleanAttribute });\n /** Pokazuje przycisk eksportu do CSV. */\n readonly exportable = input(false, { transform: booleanAttribute });\n /** Nazwa pliku eksportu CSV. */\n readonly exportFilename = input('export.csv');\n /** Tryb serwerowy: bez filtrowania/sortowania/paginacji po stronie klienta. */\n readonly lazy = input(false, { transform: booleanAttribute });\n /** Łączna liczba rekordów (wymagane w trybie lazy dla paginacji). */\n readonly totalRecords = input<number | null>(null);\n /** Rozwijane wiersze: dodaje kolumnę z przełącznikiem i renderuje szablon `kptRowDetail`. */\n readonly expandable = input(false, { transform: booleanAttribute });\n /** Zezwala na rozwinięcie wielu wierszy naraz (domyślnie tak). */\n readonly multiExpand = input(true, { transform: booleanAttribute });\n /** Etykieta wiersza podsumowania; bez wartości używa i18n (`dataTable.total`). */\n readonly summaryLabel = input<string>();\n /**\n * Gotowe wartości podsumowania (pole → wartość). Nadpisują wyliczenia po stronie klienta,\n * a w trybie `lazy` są ich jedynym źródłem (tabela ma wtedy tylko bieżącą stronę).\n */\n readonly summaryValues = input<Record<string, unknown> | null>(null);\n\n // ── Model / zdarzenia ──\n readonly selection = model<T[]>([]);\n /** Rozwinięte wiersze (dwukierunkowo). */\n readonly expandedRows = model<T[]>([]);\n /**\n * Pola (`KptColumn.field`) aktualnie ukrytych kolumn (dwukierunkowo). Sam komponent nie\n * dostarcza UI do zarządzania tym stanem — to hak do podpięcia zewnętrznego przełącznika\n * kolumn (patrz przykład „Dostosowywanie kolumn\" w playground).\n */\n readonly hiddenFields = model<readonly string[]>([]);\n readonly rowClick = output<T>();\n /** Emitowane w trybie lazy przy zmianie sortowania/filtra/strony. */\n readonly lazyLoad = output<KptTableLazyState>();\n /** Emitowane po zatwierdzeniu edycji komórki (tylko gdy wartość faktycznie się zmieniła). */\n readonly cellEdit = output<KptCellEditEvent<T>>();\n\n protected readonly i18n = inject(KptI18n);\n /** Komunikat pustej tabeli (input albo domyślny z i18n). */\n protected readonly emptyText = computed(() => this.emptyMessage() ?? this.i18n.t('dataTable.empty'));\n\n /** Kolumny w bieżącej kolejności (po ewentualnym przestawieniu). */\n protected readonly orderedColumns = linkedSignal<readonly KptColumn[]>(() => this.columns());\n /** Kolumny w bieżącej kolejności, bez tych ukrytych przez `hiddenFields` — do renderowania i eksportu. */\n protected readonly visibleOrderedColumns = computed(() =>\n this.orderedColumns().filter((c) => !this.hiddenFields().includes(c.field)),\n );\n\n // ── Wirtualizacja (ręczne okno wierszy) ──\n private readonly scrollEl = viewChild<ElementRef<HTMLElement>>('scrollEl');\n protected readonly scrollTop = signal(0);\n protected readonly viewportHeight = signal(400);\n private readonly buffer = 6;\n\n // ── Sticky offset drugiego wiersza nagłówka (etykiety + filtry) ──\n private readonly theadEl = viewChild<ElementRef<HTMLTableSectionElement>>('theadEl');\n protected readonly theadOffset = signal(0);\n\n // ── Edycja inline komórek ──\n protected readonly editingCell = signal<{ row: T; field: string } | null>(null);\n protected readonly editingValue = signal<unknown>(null);\n /** Czy panel edytora overlayowego (date/select/multiselect) jest otwarty. */\n protected readonly editorPanelOpen = signal(false);\n private readonly editorHost = viewChild<ElementRef<HTMLElement>>('editorHost');\n\n constructor() {\n // Tryb lazy: przy każdej zmianie stanu poproś rodzica o dane.\n effect(() => {\n if (!this.lazy()) return;\n this.lazyLoad.emit({\n pageIndex: this.pageIndex(),\n pageSize: this.pageSizeState(),\n sortField: this.sortField(),\n sortDir: this.sortDir(),\n filter: this.filterText(),\n columnFilters: this.columnFilters(),\n });\n });\n\n // Zmierz wysokość viewportu dla wirtualizacji.\n afterNextRender(() => {\n const el = this.scrollEl()?.nativeElement;\n if (el) this.viewportHeight.set(el.clientHeight);\n });\n\n // Zmierz wysokość pierwszego wiersza nagłówka → offset sticky drugiego wiersza.\n afterRenderEffect(() => {\n this.filterRowPosition();\n this.hasColumnFilters();\n this.visibleOrderedColumns();\n const first = this.theadEl()?.nativeElement?.rows?.[0];\n if (first) this.theadOffset.set(first.offsetHeight);\n });\n\n // Wejście w edycję komórki → przenieś fokus na jej edytor.\n afterRenderEffect(() => {\n if (!this.editingCell()) return;\n this.editorHost()\n ?.nativeElement.querySelector<HTMLElement>('input, .kpt-select, [tabindex]')\n ?.focus();\n });\n }\n\n protected onScroll(event: Event): void {\n if (!this.virtualScroll()) return;\n const el = event.target as HTMLElement;\n this.scrollTop.set(el.scrollTop);\n this.viewportHeight.set(el.clientHeight);\n }\n\n protected readonly virtualStart = computed(() =>\n Math.max(0, Math.floor(this.scrollTop() / this.rowHeight()) - this.buffer),\n );\n protected readonly virtualEnd = computed(() => {\n const total = this.sorted().length;\n const count = Math.ceil(this.viewportHeight() / this.rowHeight()) + this.buffer * 2;\n return Math.min(total, this.virtualStart() + count);\n });\n protected readonly virtualRows = computed(() => this.sorted().slice(this.virtualStart(), this.virtualEnd()));\n protected readonly topPad = computed(() => this.virtualStart() * this.rowHeight());\n protected readonly bottomPad = computed(() => (this.sorted().length - this.virtualEnd()) * this.rowHeight());\n\n // ── Przestawianie kolumn (natywny HTML5 drag-and-drop; działa w trybie zoneless) ──\n /**\n * Pole przeciąganej kolumny (nie indeks — przy ukrytych kolumnach `$index` z pętli\n * `visibleOrderedColumns()` nie odpowiada pozycji w pełnej `orderedColumns()`).\n */\n protected readonly dragField = signal<string | null>(null);\n\n /** Kolumna przeciągalna tylko gdy `reorderable` i nie jest zamrożona (frozen musi zostać wiodąca). */\n protected isColDraggable(col: KptColumn): boolean {\n return this.reorderable() && !col.frozen;\n }\n /** Liczba wiodących widocznych kolumn zamrożonych — poza nie wolno upuszczać ani ich przesuwać. */\n private frozenLeadCount(): number {\n let n = 0;\n for (const col of this.visibleOrderedColumns()) {\n if (col.frozen) n++;\n else break;\n }\n return n;\n }\n\n protected onColDragStart(field: string, event: DragEvent): void {\n const col = this.orderedColumns().find((c) => c.field === field);\n if (col?.frozen) return; // frozen nieprzeciągalne\n this.dragField.set(field);\n event.dataTransfer?.setData('text/plain', field);\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n }\n protected onColDragOver(field: string, event: DragEvent): void {\n // Zezwól na upuszczenie tylko poza obszarem kolumn zamrożonych.\n const visIndex = this.visibleOrderedColumns().findIndex((c) => c.field === field);\n if (this.dragField() !== null && visIndex >= this.frozenLeadCount()) event.preventDefault();\n }\n protected onColDrop(field: string, event: DragEvent): void {\n event.preventDefault();\n const from = this.dragField();\n if (from === null || from === field) return;\n const visIndex = this.visibleOrderedColumns().findIndex((c) => c.field === field);\n if (visIndex < this.frozenLeadCount()) return; // nie wsuwaj przed/pomiędzy kolumny zamrożone\n const cols = [...this.orderedColumns()];\n const fromIdx = cols.findIndex((c) => c.field === from);\n const toIdx = cols.findIndex((c) => c.field === field);\n if (fromIdx === -1 || toIdx === -1) return;\n const [moved] = cols.splice(fromIdx, 1);\n cols.splice(toIdx, 0, moved);\n this.orderedColumns.set(cols);\n this.dragField.set(null);\n }\n protected onColDragEnd(): void {\n this.dragField.set(null);\n }\n\n exportCsv(): void {\n const cols = this.visibleOrderedColumns();\n const rows = this.lazy() ? this.data() : this.sorted();\n const header = cols.map((c) => escapeCsvCell(c.header)).join(';');\n const body = rows\n .map((row) => cols.map((c) => escapeCsvCell((row as Record<string, unknown>)[c.field])).join(';'))\n .join('\\n');\n // BOM () — poprawne polskie znaki w Excelu.\n const csv = `${header}\\n${body}`;\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = this.exportFilename();\n link.click();\n URL.revokeObjectURL(url);\n }\n\n // ── Szablony komórek ──\n private readonly cellDefs = contentChildren(KptCellDef);\n private readonly cellMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellDefs()) map.set(def.kptCell(), def.template);\n return map;\n });\n protected cellTemplate(field: string): TemplateRef<unknown> | null {\n return this.cellMap().get(field) ?? null;\n }\n\n // ── Własne edytory komórek (furtka poza wbudowane typy `column.edit.type`) ──\n private readonly cellEditDefs = contentChildren(KptCellEditDef);\n private readonly cellEditMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellEditDefs()) map.set(def.kptCellEdit(), def.template);\n return map;\n });\n protected cellEditTemplate(field: string): TemplateRef<unknown> | null {\n return this.cellEditMap().get(field) ?? null;\n }\n\n // ── Edycja inline komórek ──\n protected isEditable(col: KptColumn): boolean {\n return !!col.edit || !!this.cellEditTemplate(col.field);\n }\n protected isEditingCell(row: T, field: string): boolean {\n const e = this.editingCell();\n return !!e && e.field === field && this.sameRow(e.row, row);\n }\n protected startEdit(row: T, col: KptColumn, event: Event): void {\n event.stopPropagation();\n if (!this.isEditable(col) || this.isEditingCell(row, col.field)) return;\n this.editingCell.set({ row, field: col.field });\n this.editingValue.set(this.getValue(row, col.field));\n // Edytory na overlayu otwieramy od razu. To nie kosmetyka: backdrop CDK sprawia, że każdy klik\n // poza edytorem zamyka panel, a więc zatwierdza i zamyka edycję — bez tego edytor z zamkniętym\n // panelem potrafiłby zostać otwarty w nieskończoność.\n const type = col.edit?.type;\n this.editorPanelOpen.set(!!type && OVERLAY_EDITORS.has(type));\n }\n /**\n * Panel edytora zamknięty (wybór, klik poza, Esc) → zatwierdź. Celowo NIE wieszamy tego na\n * `touch`: ten leci też z blur triggera, czyli już przy naciśnięciu myszy na opcji w panelu —\n * edytor ginąłby, zanim kliknięcie zdąży wybrać wartość.\n */\n protected onEditorPanelToggle(open: boolean): void {\n this.editorPanelOpen.set(open);\n if (!open) this.commitEdit();\n }\n /**\n * Edytory bez overlaya (text/number, własne `kptCellEdit`) zatwierdza dopiero wyjście fokusu\n * **poza cały edytor**. Nie wystarczy `touch`/blur samej kontrolki: `kpt-input-number` ma\n * fokusowalne strzałki `+`/`-` obok pola (i dodatkowo emituje `touch` w `step_()`), więc każde\n * kliknięcie strzałki zamykałoby edycję, zanim zdąży zmienić wartość.\n */\n protected onEditorFocusOut(event: FocusEvent): void {\n if (this.editorPanelOpen()) return; // edytory overlayowe zatwierdza zamknięcie panelu\n const host = this.editorHost()?.nativeElement;\n const next = event.relatedTarget as Node | null;\n if (host && next && host.contains(next)) return; // fokus został w edytorze (np. strzałki +/-)\n this.commitEdit();\n }\n /** Zatwierdza bieżącą edycję — emituje `cellEdit` tylko gdy wartość faktycznie się zmieniła. */\n protected commitEdit(): void {\n const editing = this.editingCell();\n if (!editing) return;\n const { row, field } = editing;\n const value = this.editingValue();\n this.editingCell.set(null);\n this.editorPanelOpen.set(false);\n if (sameEditValue(value, this.getValue(row, field))) return;\n const updatedRow = { ...(row as Record<string, unknown>), [field]: value } as T;\n this.cellEdit.emit({ row, field, value, updatedRow });\n }\n /** Dla własnych szablonów (`kptCellEdit`): ustaw wartość i od razu zatwierdź. */\n protected readonly commitEditValue = (value: unknown): void => {\n this.editingValue.set(value);\n this.commitEdit();\n };\n protected cancelEdit(): void {\n this.editingCell.set(null);\n this.editorPanelOpen.set(false);\n }\n\n // ── Rozwijane wiersze ──\n private readonly rowDetailDef = contentChild(KptRowDetailDef);\n protected readonly rowDetailTpl = computed(() => this.rowDetailDef()?.template ?? null);\n /** Kolumna z przełącznikiem widoczna, gdy włączono `expandable` i podano szablon `kptRowDetail`. */\n protected readonly hasRowDetail = computed(() => this.expandable() && !!this.rowDetailDef());\n protected isExpanded(row: T): boolean {\n return this.expandedRows().some((r) => this.sameRow(r, row));\n }\n protected toggleExpand(row: T): void {\n if (this.isExpanded(row)) {\n this.expandedRows.set(this.expandedRows().filter((r) => !this.sameRow(r, row)));\n } else {\n this.expandedRows.set(this.multiExpand() ? [...this.expandedRows(), row] : [row]);\n }\n }\n\n // ── Stan ──\n protected readonly filterText = signal('');\n protected readonly columnFilters = signal<Record<string, unknown>>({});\n protected readonly sortField = signal<string | null>(null);\n protected readonly sortDir = signal<SortDir>(null);\n protected readonly pageIndex = signal(0);\n protected readonly pageSizeState = linkedSignal(() => this.pageSize() || 10);\n\n protected readonly hasColumnFilters = computed(() => this.columns().some((c) => c.filter));\n\n // ── Filtry kolumn ──\n protected setColumnFilter(field: string, value: unknown): void {\n this.columnFilters.update((cur) => ({ ...cur, [field]: value }));\n this.pageIndex.set(0);\n }\n /** Input liczbowy — pozostaw tylko cyfry i zsynchronizuj DOM z wartością. */\n protected onNumberFilter(field: string, event: Event): void {\n const el = event.target as HTMLInputElement;\n const digits = el.value.replace(/\\D/g, '');\n el.value = digits;\n this.setColumnFilter(field, digits);\n }\n /** Bieżąca wartość filtra zakresu liczbowego (min/max) dla kolumny. */\n protected rangeVal(field: string): { min: string; max: string } {\n const v = this.columnFilters()[field] as { min?: string; max?: string } | undefined;\n return { min: v?.min ?? '', max: v?.max ?? '' };\n }\n /** Aktualizuj jedną granicę zakresu (min/max), pozostawiając tylko cyfry. */\n protected setRangeFilter(field: string, bound: 'min' | 'max', event: Event): void {\n const el = event.target as HTMLInputElement;\n const digits = el.value.replace(/\\D/g, '');\n el.value = digits;\n this.setColumnFilter(field, { ...this.rangeVal(field), [bound]: digits });\n }\n /** Bieżąca para `[lo, hi]` filtra suwakowego dla kolumny (domyślnie pełen zakres). */\n protected sliderVal(col: KptColumn): [number, number] {\n const mn = col.filter?.min ?? 0;\n const mx = col.filter?.max ?? 100;\n const v = this.columnFilters()[col.field] as [number, number] | undefined;\n return v ?? [mn, mx];\n }\n\n /** Semantyka dopasowania siedzi w `@konce-pt/table` — tu zostaje tylko spięcie ze stanem. */\n private matchesColumnFilters(row: T): boolean {\n const filters = this.columnFilters();\n const cells = row as Record<string, unknown>;\n return this.columns().every((col) => {\n const filter = col.filter;\n if (!filter) return true;\n const value = filters[col.field];\n if (isEmptyFilterValue(value)) return true;\n return matchesColumnFilter(filter, cells[col.field], value);\n });\n }\n\n // ── Potok przetwarzania danych ──\n private readonly filtered = computed(() => {\n const query = this.filterText().trim().toLowerCase();\n const cols = this.columns();\n let rows = this.data();\n if (query) {\n rows = rows.filter((row) =>\n cols.some((col) => toText((row as Record<string, unknown>)[col.field]).toLowerCase().includes(query)),\n );\n }\n if (this.hasColumnFilters()) {\n rows = rows.filter((row) => this.matchesColumnFilters(row));\n }\n return rows;\n });\n\n private readonly sorted = computed(() => {\n const field = this.sortField();\n const dir = this.sortDir();\n const rows = this.filtered();\n if (!field || !dir) return rows;\n const sign = dir === 'asc' ? 1 : -1;\n return [...rows].sort((a, b) => {\n const av = (a as Record<string, unknown>)[field];\n const bv = (b as Record<string, unknown>)[field];\n if (av == null) return 1;\n if (bv == null) return -1;\n if (typeof av === 'number' && typeof bv === 'number') return (av - bv) * sign;\n return toText(av).localeCompare(toText(bv)) * sign;\n });\n });\n\n protected readonly filteredCount = computed(() =>\n this.lazy() ? (this.totalRecords() ?? this.data().length) : this.filtered().length,\n );\n\n protected readonly paged = computed(() => {\n if (this.lazy()) return this.data();\n const rows = this.sorted();\n if (this.pageSize() <= 0) return rows;\n const size = this.pageSizeState();\n const start = this.pageIndex() * size;\n return rows.slice(start, start + size);\n });\n\n /** Wiodące kolumny systemowe (rozwijanie + zaznaczanie) — poza `visibleOrderedColumns()`. */\n private readonly leadingCells = computed(\n () => (this.selectable() !== 'none' ? 1 : 0) + (this.hasRowDetail() ? 1 : 0),\n );\n protected readonly colspan = computed(() => this.visibleOrderedColumns().length + this.leadingCells());\n protected readonly displayCount = computed(() =>\n this.virtualScroll() ? this.sorted().length : this.paged().length,\n );\n\n // ── Wiersz podsumowania (tfoot) ──\n /** Etykieta wiersza podsumowania (input albo domyślna z i18n). */\n protected readonly summaryLabelText = computed(() => this.summaryLabel() ?? this.i18n.t('dataTable.total'));\n /**\n * Zbiór do agregacji: wszystkie wiersze po filtrach (a więc ze wszystkich stron — `paged()`\n * tnie dopiero po tym kroku). Przy `lazy` tabela ma tylko bieżącą stronę, więc nie liczy nic\n * sama — jedynym źródłem jest wtedy `summaryValues`.\n */\n private readonly summarySource = computed(() =>\n this.lazy() ? [] : (this.filtered() as readonly Record<string, unknown>[]),\n );\n /** Pola z podsumowaniem: kolumny z `summary` (tylko widoczne) + klucze podane w `summaryValues`. */\n private readonly summaryFields = computed(() => {\n const cols = this.visibleOrderedColumns();\n const overrides = this.summaryValues() ?? {};\n return cols.filter((c) => c.summary || c.field in overrides).map((c) => c.field);\n });\n protected readonly hasSummary = computed(() => this.summaryFields().length > 0);\n /** Indeks pierwszej podsumowywanej kolumny — do niej scala się etykieta. */\n protected readonly summaryStartIndex = computed(() => {\n const first = this.summaryFields()[0];\n return first === undefined ? -1 : this.visibleOrderedColumns().findIndex((c) => c.field === first);\n });\n /**\n * Colspan komórki z etykietą: kolumny systemowe + kolumny przed pierwszą podsumowywaną.\n * Zero (pierwsza widoczna kolumna jest liczona) = etykieta nie ma się gdzie zmieścić i nie\n * renderuje się wcale.\n */\n protected readonly summaryLabelSpan = computed(() => this.leadingCells() + this.summaryStartIndex());\n /** Gotowe teksty komórek podsumowania (pole → tekst); pusty string dla braku wartości. */\n private readonly summaryTexts = computed(() => {\n const rows = this.summarySource();\n const overrides = this.summaryValues() ?? {};\n const map = new Map<string, string>();\n for (const col of this.visibleOrderedColumns()) {\n const summary = col.summary;\n // Gotowa wartość z `summaryValues` wygrywa z wyliczeniem — i wystarcza sama w sobie.\n if (col.field in overrides) {\n map.set(col.field, this.formatSummary(overrides[col.field], summary?.format));\n continue;\n }\n if (!summary) continue;\n const raw =\n typeof summary.fn === 'function' ? summary.fn(rows) : aggregate(rows, col.field, summary.fn);\n map.set(col.field, this.formatSummary(raw, summary.format));\n }\n return map;\n });\n private formatSummary(raw: unknown, format?: KptColumnSummary['format']): string {\n return format ? format(raw) : toText(raw);\n }\n protected summaryText(field: string): string {\n return this.summaryTexts().get(field) ?? '';\n }\n\n // ── Kolumny zamrożone (sticky, wiodące) ──\n private parseWidthPx(width?: string): number {\n if (!width) return 8 * REM_PX;\n const n = Number.parseFloat(width);\n if (Number.isNaN(n)) return 8 * REM_PX;\n return width.trim().endsWith('px') ? n : n * REM_PX;\n }\n /** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */\n /** Suma szerokości wiodących kolumn systemowych (rozwijanie + zaznaczanie) w px. */\n private readonly leadingStickyWidth = computed(() => {\n let acc = 0;\n if (this.hasRowDetail()) acc += EXPANDER_FROZEN_W * REM_PX;\n if (this.selectable() !== 'none') acc += CHECKBOX_FROZEN_W * REM_PX;\n return acc;\n });\n private readonly frozenOffsets = computed(() => {\n const map = new Map<string, number>();\n let acc = this.leadingStickyWidth();\n for (const col of this.visibleOrderedColumns()) {\n if (!col.frozen) break; // tylko wiodące, sąsiadujące\n map.set(col.field, acc);\n acc += this.parseWidthPx(col.width);\n }\n return map;\n });\n protected readonly hasFrozen = computed(() => this.frozenOffsets().size > 0);\n /** Sticky-left kolumny rozwijania (px) — 0, gdy tabela ma kolumny zamrożone. */\n protected readonly expanderStickyLeft = computed(() => (this.hasFrozen() ? 0 : null));\n /** Sticky-left kolumny zaznaczania (px) — za kolumną rozwijania, jeśli obecna. */\n protected readonly checkboxStickyLeft = computed(() => {\n if (!this.hasFrozen()) return null;\n return this.hasRowDetail() ? EXPANDER_FROZEN_W * REM_PX : 0;\n });\n protected frozenLeft(field: string): number | null {\n return this.frozenOffsets().get(field) ?? null;\n }\n protected isFrozen(field: string): boolean {\n return this.frozenOffsets().has(field);\n }\n\n // ── Sortowanie ──\n protected toggleSort(col: KptColumn): void {\n if (!col.sortable) return;\n if (this.sortField() !== col.field) {\n this.sortField.set(col.field);\n this.sortDir.set('asc');\n return;\n }\n const dir = this.sortDir();\n if (dir === 'asc') this.sortDir.set('desc');\n else if (dir === 'desc') {\n this.sortField.set(null);\n this.sortDir.set(null);\n } else this.sortDir.set('asc');\n }\n protected sortIconName(col: KptColumn): KptIconName {\n return this.sortField() === col.field && this.sortDir() === 'asc' ? 'chevron-up' : 'chevron-down';\n }\n protected ariaSort(col: KptColumn): 'ascending' | 'descending' | 'none' {\n if (this.sortField() !== col.field || !this.sortDir()) return 'none';\n return this.sortDir() === 'asc' ? 'ascending' : 'descending';\n }\n\n // ── Filtrowanie ──\n protected onFilter(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n this.pageIndex.set(0);\n }\n\n // ── Zaznaczanie ──\n private sameRow(a: T, b: T): boolean {\n const key = this.rowKey();\n if (key) return (a as Record<string, unknown>)[key] === (b as Record<string, unknown>)[key];\n return a === b;\n }\n protected isSelected(row: T): boolean {\n return this.selection().some((r) => this.sameRow(r, row));\n }\n protected toggleRow(row: T): void {\n const mode = this.selectable();\n if (mode === 'none') return;\n if (mode === 'single') {\n this.selection.set(this.isSelected(row) ? [] : [row]);\n return;\n }\n const current = this.selection();\n this.selection.set(\n this.isSelected(row) ? current.filter((r) => !this.sameRow(r, row)) : [...current, row],\n );\n }\n protected readonly pageAllSelected = computed(() => {\n const page = this.paged();\n return page.length > 0 && page.every((r) => this.isSelected(r));\n });\n protected readonly pageSomeSelected = computed(() => {\n const page = this.paged();\n return page.some((r) => this.isSelected(r)) && !this.pageAllSelected();\n });\n protected toggleAllOnPage(): void {\n const page = this.paged();\n if (this.pageAllSelected()) {\n this.selection.set(this.selection().filter((r) => !page.some((pr) => this.sameRow(pr, r))));\n } else {\n const toAdd = page.filter((r) => !this.isSelected(r));\n this.selection.set([...this.selection(), ...toAdd]);\n }\n }\n\n // ── Wiersze ──\n protected onRowClick(row: T): void {\n this.rowClick.emit(row);\n }\n protected getValue(row: T, field: string): unknown {\n return (row as Record<string, unknown>)[field];\n }\n protected trackRow = (row: T): unknown => {\n const key = this.rowKey();\n return key ? (row as Record<string, unknown>)[key] : row;\n };\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model, output, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptTreeNode<T = unknown> {\n label: string;\n value?: T;\n icon?: string;\n children?: readonly KptTreeNode<T>[];\n expanded?: boolean;\n disabled?: boolean;\n}\n\n/**\n * Drzewo hierarchiczne (rozwijanie, zaznaczanie, ikony). Dane przez `nodes`.\n *\n * @example\n * <kpt-tree [nodes]=\"tree\" selectable [(selected)]=\"node\" (nodeClick)=\"open($event)\" />\n */\n@Component({\n selector: 'kpt-tree',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <ul class=\"kpt-tree\" role=\"tree\">\n <ng-container [ngTemplateOutlet]=\"nodeTpl\" [ngTemplateOutletContext]=\"{ $implicit: nodes(), level: 0 }\" />\n </ul>\n\n <ng-template #nodeTpl let-list let-level=\"level\">\n @for (node of list; track node) {\n <li class=\"kpt-tree__node\" role=\"treeitem\" [attr.aria-expanded]=\"has(node) ? isOpen(node) : null\">\n <div\n class=\"kpt-tree__row\"\n [class.is-selected]=\"isSelected(node)\"\n [class.is-disabled]=\"node.disabled\"\n [style.padding-inline-start.rem]=\"0.5 + level * 1.1\"\n (click)=\"onRow(node)\"\n >\n @if (has(node)) {\n <button type=\"button\" class=\"kpt-tree__toggle\" (click)=\"toggle(node, $event)\" [attr.aria-label]=\"isOpen(node) ? i18n.t('tree.collapse') : i18n.t('tree.expand')\">\n <kpt-icon name=\"chevron-right\" class=\"kpt-tree__chevron\" [class.is-open]=\"isOpen(node)\" />\n </button>\n } @else {\n <span class=\"kpt-tree__spacer\"></span>\n }\n @if (node.icon) { <kpt-icon [name]=\"node.icon\" class=\"kpt-tree__icon\" /> }\n <span class=\"kpt-tree__label\">{{ node.label }}</span>\n </div>\n @if (has(node) && isOpen(node)) {\n <ul role=\"group\">\n <ng-container [ngTemplateOutlet]=\"nodeTpl\" [ngTemplateOutletContext]=\"{ $implicit: node.children, level: level + 1 }\" />\n </ul>\n }\n </li>\n }\n </ng-template>\n `,\n styleUrl: './tree.component.scss',\n host: { class: 'kpt-tree-host' },\n})\nexport class KptTree<T = unknown> {\n readonly nodes = input<readonly KptTreeNode<T>[]>([]);\n readonly selectable = input(false, { transform: booleanAttribute });\n readonly selected = model<KptTreeNode<T> | null>(null);\n readonly nodeClick = output<KptTreeNode<T>>();\n\n protected readonly i18n = inject(KptI18n);\n private readonly version = signal(0);\n\n protected has(node: KptTreeNode<T>): boolean {\n return !!node.children?.length;\n }\n protected isOpen(node: KptTreeNode<T>): boolean {\n this.version();\n return !!node.expanded;\n }\n protected isSelected(node: KptTreeNode<T>): boolean {\n return this.selected() === node;\n }\n protected toggle(node: KptTreeNode<T>, event: Event): void {\n event.stopPropagation();\n node.expanded = !node.expanded;\n this.version.update((v) => v + 1);\n }\n protected onRow(node: KptTreeNode<T>): void {\n if (node.disabled) return;\n if (this.selectable()) this.selected.set(node);\n else if (this.has(node)) {\n node.expanded = !node.expanded;\n this.version.update((v) => v + 1);\n }\n this.nodeClick.emit(node);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptTimelineItem {\n title: string;\n description?: string;\n time?: string;\n icon?: string;\n variant?: 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\n}\n\n/**\n * Oś czasu (timeline) — pionowa lista zdarzeń z markerami.\n *\n * @example\n * <kpt-timeline [items]=\"[{title:'Utworzono', time:'10:00', variant:'success', icon:'check'}]\" />\n */\n@Component({\n selector: 'kpt-timeline',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <ol class=\"kpt-timeline\">\n @for (item of items(); track $index) {\n <li class=\"kpt-timeline__item\">\n <div class=\"kpt-timeline__marker\" [attr.data-variant]=\"item.variant ?? 'primary'\">\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n </div>\n <div class=\"kpt-timeline__content\">\n <div class=\"kpt-timeline__header\">\n <span class=\"kpt-timeline__title\">{{ item.title }}</span>\n @if (item.time) { <span class=\"kpt-timeline__time\">{{ item.time }}</span> }\n </div>\n @if (item.description) { <p class=\"kpt-timeline__desc\">{{ item.description }}</p> }\n </div>\n </li>\n }\n </ol>\n `,\n styleUrl: './timeline.component.scss',\n host: { class: 'kpt-timeline-host' },\n})\nexport class KptTimeline {\n readonly items = input<readonly KptTimelineItem[]>([]);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, contentChild, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Karuzela slajdów. Dane przez `items`, szablon slajdu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-carousel [items]=\"photos\">\n * <ng-template let-photo><img [src]=\"photo\" style=\"width:100%\" /></ng-template>\n * </kpt-carousel>\n */\n@Component({\n selector: 'kpt-carousel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-carousel\">\n <div class=\"kpt-carousel__viewport\">\n <div class=\"kpt-carousel__track\" [style.transform]=\"'translateX(-' + activeIndex() * 100 + '%)'\">\n @for (item of items(); track $index) {\n <div class=\"kpt-carousel__slide\">\n <ng-container [ngTemplateOutlet]=\"slideTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: $index }\" />\n </div>\n }\n </div>\n </div>\n\n <button class=\"kpt-carousel__nav kpt-carousel__nav--prev\" type=\"button\" (click)=\"prev()\" [disabled]=\"activeIndex() === 0\" [attr.aria-label]=\"i18n.t('common.previous')\">\n <kpt-icon name=\"chevron-left\" />\n </button>\n <button class=\"kpt-carousel__nav kpt-carousel__nav--next\" type=\"button\" (click)=\"next()\" [disabled]=\"activeIndex() >= items().length - 1\" [attr.aria-label]=\"i18n.t('common.next')\">\n <kpt-icon name=\"chevron-right\" />\n </button>\n\n <div class=\"kpt-carousel__dots\">\n @for (item of items(); track $index; let i = $index) {\n <button\n type=\"button\"\n class=\"kpt-carousel__dot\"\n [class.is-active]=\"i === activeIndex()\"\n (click)=\"goTo(i)\"\n [attr.aria-label]=\"i18n.t('carousel.slide', { index: i + 1 })\"\n ></button>\n }\n </div>\n </div>\n `,\n styleUrl: './carousel.component.scss',\n host: { class: 'kpt-carousel-host' },\n})\nexport class KptCarousel<T = unknown> {\n readonly items = input<readonly T[]>([]);\n readonly activeIndex = model(0);\n protected readonly i18n = inject(KptI18n);\n protected readonly slideTpl = contentChild.required(TemplateRef);\n\n next(): void {\n this.activeIndex.update((i) => Math.min(i + 1, this.items().length - 1));\n }\n prev(): void {\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n goTo(index: number): void {\n this.activeIndex.set(index);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, booleanAttribute, computed, contentChild, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptPaginator } from '../paginator/paginator.component';\n\n/**\n * DataView — prezentacja listy elementów w układzie lista/siatka, z opcjonalną paginacją.\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-data-view [items]=\"products\" [pageSize]=\"6\">\n * <ng-template let-p><div>{{ p.name }}</div></ng-template>\n * </kpt-data-view>\n */\n@Component({\n selector: 'kpt-data-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon, KptPaginator],\n template: `\n <div class=\"kpt-data-view\">\n <div class=\"kpt-data-view__toolbar\">\n <div class=\"kpt-data-view__count\">{{ i18n.t('dataView.count', { count: items().length }) }}</div>\n <div class=\"kpt-data-view__switch\">\n <button type=\"button\" [class.is-active]=\"layout() === 'list'\" (click)=\"layout.set('list')\" [attr.aria-label]=\"i18n.t('dataView.list')\"><kpt-icon name=\"list\" /></button>\n <button type=\"button\" [class.is-active]=\"layout() === 'grid'\" (click)=\"layout.set('grid')\" [attr.aria-label]=\"i18n.t('dataView.grid')\"><kpt-icon name=\"menu\" /></button>\n </div>\n </div>\n\n <div class=\"kpt-data-view__content\" [attr.data-layout]=\"layout()\">\n @for (item of pageItems(); track $index) {\n <div class=\"kpt-data-view__item\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: $index }\" />\n </div>\n } @empty {\n <div class=\"kpt-data-view__empty\">{{ i18n.t('dataView.empty') }}</div>\n }\n </div>\n\n @if (showPager()) {\n <kpt-paginator [length]=\"items().length\" [(pageIndex)]=\"pageIndex\" [pageSize]=\"pageSize()\" [pageSizeOptions]=\"[pageSize()]\" />\n }\n </div>\n `,\n styleUrl: './data-view.component.scss',\n host: { class: 'kpt-data-view-host' },\n})\nexport class KptDataView<T = unknown> {\n readonly items = input<readonly T[]>([]);\n readonly layout = model<'list' | 'grid'>('grid');\n readonly pageSize = input(0);\n readonly paginated = input(true, { transform: booleanAttribute });\n protected readonly i18n = inject(KptI18n);\n protected readonly itemTpl = contentChild.required(TemplateRef);\n protected readonly pageIndex = model(0);\n\n protected readonly showPager = computed(() => this.paginated() && this.pageSize() > 0 && this.items().length > this.pageSize());\n protected readonly pageItems = computed(() => {\n const size = this.pageSize();\n if (!this.paginated() || size <= 0) return this.items();\n const start = this.pageIndex() * size;\n return this.items().slice(start, start + size);\n });\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, contentChild, inject, input, model, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * PickList — transfer elementów między dwiema listami (źródło ↔ cel).\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-pick-list [(source)]=\"available\" [(target)]=\"selected\" sourceHeader=\"Dostępne\" targetHeader=\"Wybrane\">\n * <ng-template let-item>{{ item.name }}</ng-template>\n * </kpt-pick-list>\n */\n@Component({\n selector: 'kpt-pick-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-pick-list\">\n <div class=\"kpt-pick-list__col\">\n <div class=\"kpt-pick-list__header\">{{ effectiveSourceHeader() }}</div>\n <ul class=\"kpt-pick-list__items\">\n @for (item of source(); track $index) {\n <li class=\"kpt-pick-list__item\" [class.is-selected]=\"selSource().has(item)\" (click)=\"toggle('source', item)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n </li>\n }\n </ul>\n </div>\n\n <div class=\"kpt-pick-list__controls\">\n <button type=\"button\" (click)=\"move('source', true)\" [attr.aria-label]=\"i18n.t('pickList.moveAllRight')\"><kpt-icon name=\"chevron-right\" /><kpt-icon name=\"chevron-right\" /></button>\n <button type=\"button\" (click)=\"move('source', false)\" [attr.aria-label]=\"i18n.t('pickList.moveRight')\"><kpt-icon name=\"chevron-right\" /></button>\n <button type=\"button\" (click)=\"move('target', false)\" [attr.aria-label]=\"i18n.t('pickList.moveLeft')\"><kpt-icon name=\"chevron-left\" /></button>\n <button type=\"button\" (click)=\"move('target', true)\" [attr.aria-label]=\"i18n.t('pickList.moveAllLeft')\"><kpt-icon name=\"chevron-left\" /><kpt-icon name=\"chevron-left\" /></button>\n </div>\n\n <div class=\"kpt-pick-list__col\">\n <div class=\"kpt-pick-list__header\">{{ effectiveTargetHeader() }}</div>\n <ul class=\"kpt-pick-list__items\">\n @for (item of target(); track $index) {\n <li class=\"kpt-pick-list__item\" [class.is-selected]=\"selTarget().has(item)\" (click)=\"toggle('target', item)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n </li>\n }\n </ul>\n </div>\n </div>\n `,\n styleUrl: './pick-list.component.scss',\n host: { class: 'kpt-pick-list-host' },\n})\nexport class KptPickList<T = unknown> {\n readonly source = model<T[]>([]);\n readonly target = model<T[]>([]);\n /** Nagłówek listy źródłowej; bez wartości używa i18n (`pickList.available`). */\n readonly sourceHeader = input<string>();\n /** Nagłówek listy docelowej; bez wartości używa i18n (`pickList.selected`). */\n readonly targetHeader = input<string>();\n protected readonly itemTpl = contentChild.required(TemplateRef);\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectiveSourceHeader = computed(() => this.sourceHeader() ?? this.i18n.t('pickList.available'));\n protected readonly effectiveTargetHeader = computed(() => this.targetHeader() ?? this.i18n.t('pickList.selected'));\n protected readonly selSource = signal<Set<T>>(new Set());\n protected readonly selTarget = signal<Set<T>>(new Set());\n\n protected toggle(side: 'source' | 'target', item: T): void {\n const sig = side === 'source' ? this.selSource : this.selTarget;\n const next = new Set(sig());\n if (next.has(item)) next.delete(item);\n else next.add(item);\n sig.set(next);\n }\n\n protected move(from: 'source' | 'target', all: boolean): void {\n const fromModel = from === 'source' ? this.source : this.target;\n const toModel = from === 'source' ? this.target : this.source;\n const sel = from === 'source' ? this.selSource : this.selTarget;\n const moving = all ? fromModel() : fromModel().filter((i) => sel().has(i));\n if (!moving.length) return;\n fromModel.set(fromModel().filter((i) => !moving.includes(i)));\n toModel.set([...toModel(), ...moving]);\n sel.set(new Set());\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, contentChild, inject, input, model, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * OrderList — lista z ręcznym porządkowaniem elementów (w górę/dół).\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-order-list [(items)]=\"tasks\" header=\"Kolejność\">\n * <ng-template let-item>{{ item.name }}</ng-template>\n * </kpt-order-list>\n */\n@Component({\n selector: 'kpt-order-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-order-list\">\n <div class=\"kpt-order-list__controls\">\n <button type=\"button\" (click)=\"moveSelected(-1)\" [disabled]=\"selected() === null\" [attr.aria-label]=\"i18n.t('orderList.up')\"><kpt-icon name=\"arrow-up\" /></button>\n <button type=\"button\" (click)=\"moveSelected(1)\" [disabled]=\"selected() === null\" [attr.aria-label]=\"i18n.t('orderList.down')\"><kpt-icon name=\"arrow-down\" /></button>\n </div>\n <div class=\"kpt-order-list__panel\">\n @if (header()) { <div class=\"kpt-order-list__header\">{{ header() }}</div> }\n <ul class=\"kpt-order-list__items\">\n @for (item of items(); track $index; let i = $index) {\n <li class=\"kpt-order-list__item\" [class.is-selected]=\"selected() === i\" (click)=\"selected.set(i)\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\" />\n </li>\n }\n </ul>\n </div>\n </div>\n `,\n styleUrl: './order-list.component.scss',\n host: { class: 'kpt-order-list-host' },\n})\nexport class KptOrderList<T = unknown> {\n readonly items = model<T[]>([]);\n readonly header = input('');\n protected readonly i18n = inject(KptI18n);\n protected readonly itemTpl = contentChild.required(TemplateRef);\n protected readonly selected = signal<number | null>(null);\n\n protected moveSelected(dir: -1 | 1): void {\n const i = this.selected();\n if (i === null) return;\n const j = i + dir;\n const arr = [...this.items()];\n if (j < 0 || j >= arr.length) return;\n [arr[i], arr[j]] = [arr[j], arr[i]];\n this.items.set(arr);\n this.selected.set(j);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptGalleriaItem {\n src: string;\n thumbnail?: string;\n alt?: string;\n}\n\n/**\n * Galleria — duży podgląd obrazu z paskiem miniatur i nawigacją.\n *\n * @example\n * <kpt-galleria [items]=\"photos\" [(activeIndex)]=\"idx\" />\n */\n@Component({\n selector: 'kpt-galleria',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-galleria\">\n <div class=\"kpt-galleria__stage\">\n <button type=\"button\" class=\"kpt-galleria__nav kpt-galleria__nav--prev\" (click)=\"prev()\" [disabled]=\"activeIndex() === 0\" [attr.aria-label]=\"i18n.t('common.previous')\"><kpt-icon name=\"chevron-left\" /></button>\n @if (current(); as item) {\n <img class=\"kpt-galleria__image\" [src]=\"item.src\" [alt]=\"item.alt || ''\" />\n }\n <button type=\"button\" class=\"kpt-galleria__nav kpt-galleria__nav--next\" (click)=\"next()\" [disabled]=\"activeIndex() >= items().length - 1\" [attr.aria-label]=\"i18n.t('common.next')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n\n @if (showThumbnails()) {\n <div class=\"kpt-galleria__thumbs\">\n @for (item of items(); track $index; let i = $index) {\n <button type=\"button\" class=\"kpt-galleria__thumb\" [class.is-active]=\"i === activeIndex()\" (click)=\"activeIndex.set(i)\" [attr.aria-label]=\"i18n.t('galleria.image', { index: i + 1 })\">\n <img [src]=\"item.thumbnail || item.src\" [alt]=\"item.alt || ''\" />\n </button>\n }\n </div>\n }\n </div>\n `,\n styleUrl: './galleria.component.scss',\n host: { class: 'kpt-galleria-host' },\n})\nexport class KptGalleria {\n readonly items = input<readonly KptGalleriaItem[]>([]);\n readonly activeIndex = model(0);\n readonly showThumbnails = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly current = computed(() => this.items()[this.activeIndex()] ?? null);\n\n protected next(): void {\n this.activeIndex.update((i) => Math.min(i + 1, this.items().length - 1));\n }\n protected prev(): void {\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n}\n","import { OverlayContainer } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Okno modalne na natywnym `<dialog>` (focus trap, ESC, backdrop w standardzie).\n * Sterowane sygnałem `open` (dwukierunkowe). Stopkę wstaw z atrybutem `kptDialogFooter`.\n *\n * @example\n * <kpt-dialog [(open)]=\"confirmOpen\" header=\"Usunąć?\">\n * Tej operacji nie można cofnąć.\n * <div kptDialogFooter>\n * <kpt-button variant=\"text\" (click)=\"confirmOpen.set(false)\">Anuluj</kpt-button>\n * <kpt-button variant=\"danger\" (click)=\"remove()\">Usuń</kpt-button>\n * </div>\n * </kpt-dialog>\n */\n@Component({\n selector: 'kpt-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <dialog #dlg class=\"kpt-dialog\" (close)=\"open.set(false)\" (cancel)=\"onCancel($event)\">\n @if (header()) {\n <div class=\"kpt-dialog__header\">\n <h2 class=\"kpt-dialog__title\">{{ header() }}</h2>\n @if (dismissible()) {\n <button class=\"kpt-dialog__close\" type=\"button\" (click)=\"open.set(false)\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n }\n <div class=\"kpt-dialog__body\"><ng-content /></div>\n <ng-content select=\"[kptDialogFooter]\" />\n </dialog>\n `,\n styleUrl: './dialog.component.scss',\n host: { class: 'kpt-dialog-host' },\n})\nexport class KptDialog {\n /** Otwarcie okna (dwukierunkowe). */\n readonly open = model(false);\n readonly header = input('');\n /** Pozwala zamknąć klawiszem Esc / przyciskiem ×. */\n readonly dismissible = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n private readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dlg');\n private readonly overlayContainer = inject(OverlayContainer);\n\n /** Miejsce, z którego zabraliśmy kontener overlayów — żeby go tam oddać. */\n private overlayHome: HTMLElement | null = null;\n\n constructor() {\n effect(() => {\n const el = this.dialogRef()?.nativeElement;\n if (!el) return;\n if (this.open() && !el.open) {\n el.showModal();\n this.adoptOverlayContainer(el);\n } else if (!this.open() && el.open) {\n el.close();\n this.releaseOverlayContainer();\n }\n });\n\n // Zamknięcie przez `close`/`cancel` też przechodzi tędy, ale zniszczenie komponentu\n // z otwartym oknem już nie — kontener musi wrócić na miejsce niezależnie od drogi.\n inject(DestroyRef).onDestroy(() => this.releaseOverlayContainer());\n }\n\n /**\n * Przenosi kontener CDK Overlay do wnętrza `<dialog>` na czas, gdy okno jest otwarte.\n *\n * `showModal()` wynosi okno do **warstwy szczytowej** przeglądarki, a ta jest ponad\n * całym drzewem dokumentu — żaden `z-index` tego nie przebije. Kontener overlayów\n * wisi na `<body>`, więc panele `kpt-select`, `kpt-datepicker`, `kpt-autocomplete`\n * czy `kpt-menu` otwierałyby się NIEWIDOCZNE, schowane za tłem okna.\n */\n private adoptOverlayContainer(dialog: HTMLDialogElement): void {\n const container = this.overlayContainer.getContainerElement();\n if (container.parentElement === dialog) return;\n this.overlayHome = container.parentElement;\n dialog.appendChild(container);\n }\n\n private releaseOverlayContainer(): void {\n if (!this.overlayHome) return;\n // `getContainerElement()` nie tworzy nowego kontenera — zwraca ten sam, który zabraliśmy.\n this.overlayHome.appendChild(this.overlayContainer.getContainerElement());\n this.overlayHome = null;\n }\n\n protected onCancel(event: Event): void {\n if (!this.dismissible()) {\n event.preventDefault();\n return;\n }\n this.open.set(false);\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport type { KptAlertVariant } from '../alert/alert.component';\n\nexport interface KptToast {\n id: number;\n message: string;\n title?: string;\n variant: KptAlertVariant;\n /** Czas życia w ms; 0 = bez auto-zamykania. */\n duration: number;\n}\n\nexport type KptToastOptions = Partial<Omit<KptToast, 'id' | 'message'>>;\n\n/**\n * Serwis powiadomień (toastów). Wstrzyknij i wywołuj `show`/`success`/`error`/...;\n * umieść `<kpt-toast-container />` raz w aplikacji, aby je renderować.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptToastService {\n private readonly _toasts = signal<KptToast[]>([]);\n readonly toasts = this._toasts.asReadonly();\n private seq = 0;\n\n show(message: string, options: KptToastOptions = {}): number {\n const id = ++this.seq;\n const toast: KptToast = { id, message, variant: 'info', duration: 4000, ...options };\n this._toasts.update((list) => [...list, toast]);\n if (toast.duration > 0) {\n setTimeout(() => this.dismiss(id), toast.duration);\n }\n return id;\n }\n\n info(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'info' });\n }\n success(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'success' });\n }\n warning(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'warning' });\n }\n error(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'danger' });\n }\n\n dismiss(id: number): void {\n this._toasts.update((list) => list.filter((t) => t.id !== id));\n }\n clear(): void {\n this._toasts.set([]);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport type { KptAlertVariant } from '../alert/alert.component';\nimport { KptToastService } from './toast.service';\n\n/**\n * Kontener renderujący toasty z `KptToastService`. Umieść raz w aplikacji\n * (np. w komponencie głównym): `<kpt-toast-container />`.\n */\n@Component({\n selector: 'kpt-toast-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-toast-container\" aria-live=\"polite\" aria-atomic=\"false\">\n @for (toast of toasts(); track toast.id) {\n <div class=\"kpt-toast\" [attr.data-variant]=\"toast.variant\" role=\"status\">\n <kpt-icon class=\"kpt-toast__icon\" [name]=\"icon(toast.variant)\" />\n <div class=\"kpt-toast__content\">\n @if (toast.title) {\n <div class=\"kpt-toast__title\">{{ toast.title }}</div>\n }\n <div class=\"kpt-toast__message\">{{ toast.message }}</div>\n </div>\n <button class=\"kpt-toast__close\" type=\"button\" (click)=\"dismiss(toast.id)\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n </div>\n }\n </div>\n `,\n styleUrl: './toast-container.component.scss',\n host: { class: 'kpt-toast-container-host' },\n})\nexport class KptToastContainer {\n private readonly service = inject(KptToastService);\n protected readonly i18n = inject(KptI18n);\n protected readonly toasts = this.service.toasts;\n\n protected dismiss(id: number): void {\n this.service.dismiss(id);\n }\n protected icon(variant: KptAlertVariant): KptIconName {\n return { info: 'info', success: 'circle-check', warning: 'alert-triangle', danger: 'circle-x' }[\n variant\n ] as KptIconName;\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge, type KptBadgeVariant } from '../badge/badge.component';\nimport { KptIcon } from '../icon/icon.component';\n\n/** Awatar wiersza nagłówkowego — te same dane, które przyjmuje `kpt-avatar`. */\nexport interface KptMenuItemAvatar {\n src?: string;\n name?: string;\n icon?: string;\n}\n\nexport interface KptMenuItem<T = unknown> {\n label?: string;\n value?: T;\n icon?: string;\n /** Druga linia tekstu: e-mail, rola, opis akcji. */\n description?: string;\n /** Odznaka po prawej stronie pozycji (licznik lub krótka etykieta). */\n badge?: string | number;\n /** Wariant odznaki — domyślnie `primary`. */\n badgeVariant?: KptBadgeVariant;\n /** Awatar po lewej — typowo w wierszu nagłówka menu użytkownika. */\n avatar?: KptMenuItemAvatar;\n /**\n * Wiersz nagłówkowy: nieklikalny blok tekstu zamiast pozycji menu. Mieści dane zalogowanego\n * użytkownika (`avatar` + `label` + `description`) albo opis funkcji menu.\n */\n header?: boolean;\n disabled?: boolean;\n danger?: boolean;\n separator?: boolean;\n /** Pozycje podrzędne (menubar / megamenu). */\n items?: readonly KptMenuItem<T>[];\n /** Adres odnośnika (menubar / megamenu). */\n url?: string;\n}\n\n/**\n * Menu rozwijane (dropdown) na CDK Overlay. Trigger przez projekcję, pozycje przez `items`.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-menu [items]=\"items\" (selected)=\"onSelect($event)\">\n * <kpt-button variant=\"outline\">Opcje</kpt-button>\n * </kpt-menu>\n */\n@Component({\n selector: 'kpt-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon],\n template: `\n <span class=\"kpt-menu__trigger\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"toggle()\">\n <ng-content />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"kpt-menu__panel\" role=\"menu\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-menu__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-menu__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-menu__text\">\n @if (item.label) { <span class=\"kpt-menu__label\">{{ item.label }}</span> }\n @if (item.description) { <span class=\"kpt-menu__description\">{{ item.description }}</span> }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-menu__item\"\n role=\"menuitem\"\n [class.kpt-menu__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-menu__text\">\n <span class=\"kpt-menu__label\">{{ item.label }}</span>\n @if (item.description) { <span class=\"kpt-menu__description\">{{ item.description }}</span> }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge class=\"kpt-menu__badge\" [value]=\"item.badge\" [variant]=\"item.badgeVariant ?? 'primary'\" />\n }\n </button>\n }\n }\n </div>\n </ng-template>\n `,\n styleUrl: './menu.component.scss',\n host: { class: 'kpt-menu-host' },\n})\nexport class KptMenu<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n /**\n * Czy panel jest otwarty (dwukierunkowe). Publiczne, bo aplikacja bywa właścicielem tego\n * stanu — zamknięcie menu po nawigacji albo otwarcie go skrótem klawiaturowym nie da się\n * wyrazić przez samo `(selected)`. Port React ma tu `open`/`defaultOpen`/`onOpenChange`.\n */\n readonly open = model(false);\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // ARIA idzie na kontrolkę wewnątrz slotu, nie na `.kpt-menu__trigger`. Trigger to zwykły\n // `<span>` opakowujący rzutowaną treść — zwykle `kpt-button` z prawdziwym `<button>`.\n // Nadanie mu `role=\"button\"` zrobiłoby zagnieżdżoną kontrolkę i drugi tab stop, a atrybuty\n // stanu wylądowałyby na elemencie bez roli (naruszenie `aria-allowed-attr`).\n afterRenderEffect(() => {\n const control = this.host.nativeElement.querySelector(\n '.kpt-menu__trigger button, .kpt-menu__trigger a, .kpt-menu__trigger [role=\"button\"]',\n );\n if (!control) return;\n control.setAttribute('aria-haspopup', 'menu');\n control.setAttribute('aria-expanded', String(this.open()));\n });\n }\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, signal } from '@angular/core';\n\n/**\n * Popover — dowolna treść w dymku na CDK Overlay (bogatszy niż tooltip). Slot triggera:\n * atrybut `kptPopoverTrigger`; reszta treści trafia do panelu.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-popover>\n * <kpt-button kptPopoverTrigger variant=\"outline\">Szczegóły</kpt-button>\n * <div>Bogata treść popovera…</div>\n * </kpt-popover>\n */\n@Component({\n selector: 'kpt-popover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <span class=\"kpt-popover__trigger\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"toggle()\">\n <ng-content select=\"[kptPopoverTrigger]\" />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"kpt-popover__panel\" role=\"dialog\">\n <ng-content />\n </div>\n </ng-template>\n `,\n styleUrl: './popover.component.scss',\n host: { class: 'kpt-popover-host' },\n})\nexport class KptPopover {\n readonly placement = input<'bottom' | 'top'>('bottom');\n\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 6 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -6 },\n ];\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole z podpowiedziami (autocomplete) na CDK Overlay, Signal Forms. Wartość = wpisany tekst.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-autocomplete [formField]=\"f.city\" [options]=\"cities\" placeholder=\"Miasto…\" />\n */\n@Component({\n selector: 'kpt-autocomplete',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <input\n class=\"kpt-autocomplete__input\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n type=\"text\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeydown($event)\"\n />\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open() && filtered().length > 0\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n >\n <ul class=\"kpt-autocomplete__panel\" role=\"listbox\">\n @for (opt of filtered(); track opt; let i = $index) {\n <li\n class=\"kpt-autocomplete__option\"\n role=\"option\"\n [class.is-active]=\"i === activeIndex()\"\n (mousedown)=\"$event.preventDefault(); pick(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >{{ opt }}</li>\n }\n </ul>\n </ng-template>\n `,\n styleUrl: './autocomplete.component.scss',\n host: { class: 'kpt-autocomplete-host' },\n})\nexport class KptAutocomplete implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly options = input<readonly string[]>([]);\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly open = signal(false);\n protected readonly activeIndex = signal(-1);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected readonly filtered = computed(() => {\n const q = this.value().trim().toLowerCase();\n const opts = this.options();\n return q ? opts.filter((o) => o.toLowerCase().includes(q)) : opts;\n });\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n this.open.set(true);\n this.activeIndex.set(-1);\n }\n protected onFocus(): void {\n this.open.set(true);\n }\n protected onBlur(): void {\n this.open.set(false);\n this.touch.emit();\n }\n protected pick(opt: string): void {\n this.value.set(opt);\n this.open.set(false);\n }\n protected onKeydown(event: KeyboardEvent): void {\n const opts = this.filtered();\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.open.set(true);\n this.activeIndex.set(Math.min(this.activeIndex() + 1, opts.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.activeIndex.set(Math.max(this.activeIndex() - 1, 0));\n } else if (event.key === 'Enter') {\n const opt = opts[this.activeIndex()];\n if (opt) {\n event.preventDefault();\n this.pick(opt);\n }\n } else if (event.key === 'Escape') {\n this.open.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptDrawerPosition = 'left' | 'right' | 'top' | 'bottom';\n\n/**\n * Panel wysuwany (drawer / off-canvas) sterowany sygnałem `open`. Niezależny od app-shell.\n *\n * @example\n * <kpt-drawer [(open)]=\"menuOpen\" position=\"right\" header=\"Filtry\">\n * Treść panelu…\n * </kpt-drawer>\n */\n@Component({\n selector: 'kpt-drawer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-drawer__backdrop\" [class.is-open]=\"open()\" (click)=\"onBackdrop()\"></div>\n <aside\n class=\"kpt-drawer__panel\"\n [attr.data-position]=\"position()\"\n [class.is-open]=\"open()\"\n role=\"dialog\"\n aria-modal=\"true\"\n (keydown.escape)=\"close()\"\n tabindex=\"-1\"\n >\n @if (header() || dismissible()) {\n <div class=\"kpt-drawer__header\">\n <span class=\"kpt-drawer__title\">{{ header() }}</span>\n @if (dismissible()) {\n <button type=\"button\" class=\"kpt-drawer__close\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n }\n <div class=\"kpt-drawer__body\"><ng-content /></div>\n </aside>\n `,\n styleUrl: './drawer.component.scss',\n host: { class: 'kpt-drawer-host' },\n})\nexport class KptDrawer {\n readonly open = model(false);\n readonly position = input<KptDrawerPosition>('left');\n readonly header = input('');\n readonly dismissible = input(true, { transform: booleanAttribute });\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n\n protected onBackdrop(): void {\n if (this.closeOnBackdrop()) this.close();\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge } from '../badge/badge.component';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Menu kontekstowe (PPM) na obszarze projekcji. Panel pozycjonowany do kursora.\n *\n * @example\n * <kpt-context-menu [items]=\"items\" (selected)=\"onSelect($event)\">\n * <div class=\"obszar\">Kliknij prawym przyciskiem</div>\n * </kpt-context-menu>\n */\n@Component({\n selector: 'kpt-context-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptAvatar, KptBadge, KptIcon],\n template: `\n <div class=\"kpt-context-menu__area\" (contextmenu)=\"onContext($event)\">\n <ng-content />\n </div>\n\n @if (open()) {\n <div class=\"kpt-context-menu__backdrop\" (click)=\"close()\" (contextmenu)=\"$event.preventDefault(); close()\"></div>\n <div class=\"kpt-context-menu__panel\" role=\"menu\" [style.left.px]=\"x()\" [style.top.px]=\"y()\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-context-menu__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-context-menu__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-context-menu__text\">\n @if (item.label) { <span class=\"kpt-context-menu__label\">{{ item.label }}</span> }\n @if (item.description) {\n <span class=\"kpt-context-menu__description\">{{ item.description }}</span>\n }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-context-menu__item\"\n role=\"menuitem\"\n [class.kpt-context-menu__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-context-menu__text\">\n <span class=\"kpt-context-menu__label\">{{ item.label }}</span>\n @if (item.description) {\n <span class=\"kpt-context-menu__description\">{{ item.description }}</span>\n }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge\n class=\"kpt-context-menu__badge\"\n [value]=\"item.badge\"\n [variant]=\"item.badgeVariant ?? 'primary'\"\n />\n }\n </button>\n }\n }\n </div>\n }\n `,\n styleUrl: './context-menu.component.scss',\n host: { class: 'kpt-context-menu-host' },\n})\nexport class KptContextMenu<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly open = signal(false);\n protected readonly x = signal(0);\n protected readonly y = signal(0);\n\n protected onContext(event: MouseEvent): void {\n event.preventDefault();\n this.x.set(event.clientX);\n this.y.set(event.clientY);\n this.open.set(true);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Pozioma belka menu z rozwijanymi pod-menu. Pozycje bez `items` działają jak akcje/linki.\n * Pod-menu renderowane przez CDK Overlay (doczepiane do `body`), więc nie są przycinane\n * przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:\n * `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-menubar [items]=\"items\" (selected)=\"onSelect($event)\" />\n */\n@Component({\n selector: 'kpt-menubar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n template: `\n <nav class=\"kpt-menubar\" role=\"menubar\">\n @for (item of items(); track $index; let i = $index) {\n <div class=\"kpt-menubar__group\">\n <button\n type=\"button\"\n class=\"kpt-menubar__top\"\n role=\"menuitem\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [class.is-open]=\"openIndex() === i\"\n [disabled]=\"item.disabled\"\n (click)=\"toggle(i, item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span>{{ item.label }}</span>\n @if (item.items?.length) { <kpt-icon name=\"chevron-down\" class=\"kpt-menubar__caret\" /> }\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openIndex() === i && !!item.items?.length\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAll()\"\n (detach)=\"closeAll()\"\n >\n <div class=\"kpt-menubar__dropdown\" role=\"menu\">\n @for (sub of item.items; track $index) {\n @if (sub.separator) {\n <div class=\"kpt-menubar__separator\" role=\"separator\"></div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-menubar__item\"\n role=\"menuitem\"\n [class.kpt-menubar__item--danger]=\"sub.danger\"\n [disabled]=\"sub.disabled\"\n (click)=\"pick(sub)\"\n >\n @if (sub.icon) { <kpt-icon [name]=\"sub.icon\" /> }\n <span>{{ sub.label }}</span>\n </button>\n }\n }\n </div>\n </ng-template>\n </div>\n }\n </nav>\n `,\n styleUrl: './menubar.component.scss',\n host: { class: 'kpt-menubar-host' },\n})\nexport class KptMenubar<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly openIndex = signal<number | null>(null);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected toggle(i: number, item: KptMenuItem<T>): void {\n if (item.disabled) return;\n if (item.items?.length) {\n this.openIndex.update((cur) => (cur === i ? null : i));\n } else {\n this.selected.emit(item);\n this.closeAll();\n }\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.closeAll();\n }\n protected closeAll(): void {\n this.openIndex.set(null);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Mega-menu — pozioma belka z szerokim, wielokolumnowym panelem.\n * Struktura: pozycja górna → `items` (kolumny) → każda kolumna `items` (odnośniki).\n * Panel renderowany przez CDK Overlay (doczepiony do `body`), więc nie jest przycinany\n * przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:\n * `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-megamenu [items]=\"items\" (selected)=\"onSelect($event)\" />\n */\n@Component({\n selector: 'kpt-megamenu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n template: `\n <nav class=\"kpt-megamenu\" role=\"menubar\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\">\n @for (item of items(); track $index; let i = $index) {\n <button\n type=\"button\"\n class=\"kpt-megamenu__top\"\n role=\"menuitem\"\n [class.is-open]=\"openIndex() === i\"\n (click)=\"toggle(i)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span>{{ item.label }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-megamenu__caret\" />\n </button>\n }\n </nav>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openIndex() !== null\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAll()\"\n (detach)=\"closeAll()\"\n >\n <div class=\"kpt-megamenu__panel\" role=\"menu\">\n @for (col of activeColumns(); track $index) {\n <div class=\"kpt-megamenu__column\">\n @if (col.label) { <div class=\"kpt-megamenu__col-title\">{{ col.label }}</div> }\n @for (link of col.items ?? []; track $index) {\n <button type=\"button\" class=\"kpt-megamenu__link\" [disabled]=\"link.disabled\" (click)=\"pick(link)\">\n @if (link.icon) { <kpt-icon [name]=\"link.icon\" /> }\n <span>{{ link.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n </ng-template>\n `,\n styleUrl: './megamenu.component.scss',\n host: { class: 'kpt-megamenu-host' },\n})\nexport class KptMegamenu<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly openIndex = signal<number | null>(null);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected activeColumns(): readonly KptMenuItem<T>[] {\n const i = this.openIndex();\n return i === null ? [] : this.items()[i]?.items ?? [];\n }\n\n protected toggle(i: number): void {\n this.openIndex.update((cur) => (cur === i ? null : i));\n }\n protected pick(link: KptMenuItem<T>): void {\n if (link.disabled) return;\n this.selected.emit(link);\n this.closeAll();\n }\n protected closeAll(): void {\n this.openIndex.set(null);\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nexport interface KptConfirmOptions {\n message: string;\n header?: string;\n acceptLabel?: string;\n rejectLabel?: string;\n /** Wariant przycisku akceptacji. */\n variant?: 'filled' | 'danger';\n icon?: string;\n}\n\nexport interface KptConfirmRequest extends KptConfirmOptions {\n id: number;\n resolve: (accepted: boolean) => void;\n}\n\n/**\n * Serwis potwierdzeń. Wstrzyknij i wywołaj `confirm(...)` (zwraca Promise<boolean>);\n * umieść `<kpt-confirm-container />` raz w aplikacji.\n *\n * @example\n * if (await confirm.confirm({ message: 'Usunąć rekord?', variant: 'danger' })) { ... }\n */\n@Injectable({ providedIn: 'root' })\nexport class KptConfirmService {\n private readonly _current = signal<KptConfirmRequest | null>(null);\n readonly current = this._current.asReadonly();\n private seq = 0;\n\n confirm(options: KptConfirmOptions): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n this._current.set({ id: ++this.seq, ...options, resolve });\n });\n }\n\n accept(): void {\n this._current()?.resolve(true);\n this._current.set(null);\n }\n reject(): void {\n this._current()?.resolve(false);\n this._current.set(null);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptDialog } from '../dialog/dialog.component';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptConfirmService } from './confirm.service';\n\n/**\n * Kontener potwierdzeń — renderuje aktywne żądanie z `KptConfirmService` na `kpt-dialog`.\n * Umieść raz w aplikacji (np. obok `<kpt-toast-container />`).\n */\n@Component({\n selector: 'kpt-confirm-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptDialog, KptButton, KptIcon],\n template: `\n <kpt-dialog [open]=\"isOpen()\" (openChange)=\"onOpenChange($event)\" [header]=\"req()?.header ?? i18n.t('confirm.header')\">\n <div class=\"kpt-confirm__body\">\n @if (req()?.icon) { <kpt-icon [name]=\"req()!.icon!\" class=\"kpt-confirm__icon\" [attr.data-variant]=\"req()?.variant ?? 'filled'\" /> }\n <p class=\"kpt-confirm__message\">{{ req()?.message }}</p>\n </div>\n <div kptDialogFooter>\n <kpt-button variant=\"text\" (click)=\"service.reject()\">{{ req()?.rejectLabel ?? i18n.t('confirm.reject') }}</kpt-button>\n <kpt-button [variant]=\"req()?.variant ?? 'filled'\" (click)=\"service.accept()\">{{ req()?.acceptLabel ?? i18n.t('confirm.accept') }}</kpt-button>\n </div>\n </kpt-dialog>\n `,\n styleUrl: './confirm-container.component.scss',\n host: { class: 'kpt-confirm-container-host' },\n})\nexport class KptConfirmContainer {\n protected readonly i18n = inject(KptI18n);\n protected readonly service = inject(KptConfirmService);\n protected readonly req = this.service.current;\n protected readonly isOpen = computed(() => this.req() !== null);\n\n protected onOpenChange(open: boolean): void {\n if (!open) this.service.reject();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Arkusz wysuwany z dołu ekranu (bottom sheet). Sterowany sygnałem `open`.\n *\n * @example\n * <kpt-bottom-sheet [(open)]=\"sheetOpen\" header=\"Udostępnij\">\n * Treść arkusza…\n * </kpt-bottom-sheet>\n */\n@Component({\n selector: 'kpt-bottom-sheet',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-bottom-sheet__backdrop\" [class.is-open]=\"open()\" (click)=\"onBackdrop()\"></div>\n <div class=\"kpt-bottom-sheet__panel\" [class.is-open]=\"open()\" role=\"dialog\" aria-modal=\"true\" (keydown.escape)=\"close()\" tabindex=\"-1\">\n <button type=\"button\" class=\"kpt-bottom-sheet__handle\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"></button>\n @if (header()) { <div class=\"kpt-bottom-sheet__header\">{{ header() }}</div> }\n <div class=\"kpt-bottom-sheet__body\"><ng-content /></div>\n </div>\n `,\n styleUrl: './bottom-sheet.component.scss',\n host: { class: 'kpt-bottom-sheet-host' },\n})\nexport class KptBottomSheet {\n readonly open = model(false);\n readonly header = input('');\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n\n protected onBackdrop(): void {\n if (this.closeOnBackdrop()) this.close();\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input, output, signal } from '@angular/core';\nimport { KptFab } from '../fab/fab.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\nexport type KptSpeedDialDirection = 'up' | 'down' | 'left' | 'right';\n\n/**\n * Speed dial — FAB rozwijający zestaw akcji. Buduje na `kpt-fab`.\n *\n * @example\n * <kpt-speed-dial [items]=\"actions\" direction=\"up\" (selected)=\"onAction($event)\" />\n */\n@Component({\n selector: 'kpt-speed-dial',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptFab, KptIcon],\n template: `\n <div class=\"kpt-speed-dial\" [attr.data-direction]=\"direction()\" [class.is-open]=\"open()\">\n <div class=\"kpt-speed-dial__actions\">\n @for (item of items(); track $index) {\n <button type=\"button\" class=\"kpt-speed-dial__action\" [disabled]=\"item.disabled\" (click)=\"pick(item)\" [attr.aria-label]=\"item.label\">\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n @if (item.label) { <span class=\"kpt-speed-dial__label\">{{ item.label }}</span> }\n </button>\n }\n </div>\n <kpt-fab [ariaLabel]=\"open() ? i18n.t('common.close') : effectiveAriaLabel()\" (click)=\"toggle()\">\n <span class=\"kpt-speed-dial__trigger-icon\"><kpt-icon [name]=\"icon()\" /></span>\n </kpt-fab>\n </div>\n @if (open()) { <div class=\"kpt-speed-dial__backdrop\" (click)=\"close()\"></div> }\n `,\n styleUrl: './speed-dial.component.scss',\n host: { class: 'kpt-speed-dial-host' },\n})\nexport class KptSpeedDial<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly direction = input<KptSpeedDialDirection>('up');\n readonly icon = input('plus');\n /** Etykieta a11y FAB (stan zamknięty); bez wartości używa i18n (`speedDial.actions`). */\n readonly ariaLabel = input<string>();\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectiveAriaLabel = computed(() => this.ariaLabel() ?? this.i18n.t('speedDial.actions'));\n protected readonly open = signal(false);\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","/*\n * Public API — @konce-pt/angular\n * Komponenty Koncept UI dla Angular 22 (sygnały, Signal Forms).\n */\nexport { KptButton } from './lib/button/button.component';\nexport type { KptButtonVariant, KptButtonSize } from './lib/button/button.component';\nexport { KptIconButton } from './lib/icon-button/icon-button.component';\nexport { KptButtonGroup } from './lib/button-group/button-group.component';\nexport { KptFab } from './lib/fab/fab.component';\nexport { KptSplitButton } from './lib/split-button/split-button.component';\n\nexport { KptIcon } from './lib/icon/icon.component';\nexport { KptIconRegistry, renderKptIconSvg } from './lib/icon/icon-registry';\nexport type { KptIconName } from './lib/icon/icons';\nexport { provideKptIcons } from './lib/icon/icon-provider';\nexport type { KptIconDef, KptIconInput } from '@konce-pt/icons';\n\n// Breakpointy\nexport { KptBreakpointObserver } from './lib/breakpoint/breakpoint.service';\nexport { KPT_BREAKPOINTS } from './lib/breakpoint/breakpoints.generated';\nexport type { KptBreakpoint } from './lib/breakpoint/breakpoints.generated';\n\n// i18n\nexport { provideKptI18n } from './lib/i18n/i18n.provider';\nexport { KptI18n } from './lib/i18n/i18n.service';\nexport type { KptI18nConfig, DeepPartial } from './lib/i18n/i18n.token';\nexport { KPT_I18N_CONFIG } from './lib/i18n/i18n.token';\nexport { KPT_MESSAGES_EN, KPT_MESSAGES_PL } from './lib/i18n/messages';\nexport type { KptMessages, KptLocale } from './lib/i18n/messages';\n\n// Wyświetlanie / statusy\nexport { KptBadge } from './lib/badge/badge.component';\nexport type { KptBadgeSize, KptBadgeVariant } from './lib/badge/badge.component';\nexport { KptChip } from './lib/chip/chip.component';\nexport type { KptChipVariant } from './lib/chip/chip.component';\nexport { KptAvatar } from './lib/avatar/avatar.component';\nexport type { KptAvatarSize, KptAvatarShape } from './lib/avatar/avatar.component';\nexport { KptSpinner } from './lib/spinner/spinner.component';\nexport { KptProgress } from './lib/progress/progress.component';\nexport type { KptProgressVariant } from './lib/progress/progress.component';\nexport { KptSkeleton } from './lib/skeleton/skeleton.component';\nexport type { KptSkeletonVariant } from './lib/skeleton/skeleton.component';\n\nexport { KptFormField } from './lib/form-field/form-field.component';\nexport { KPT_FORM_FIELD_CONTROL } from './lib/form-field/form-field-control';\nexport type { KptFormFieldControl } from './lib/form-field/form-field-control';\n\nexport { KptInput } from './lib/input/input.component';\nexport type { KptInputType } from './lib/input/input.component';\n\nexport { KptCheckbox } from './lib/checkbox/checkbox.component';\nexport { KptSwitch } from './lib/switch/switch.component';\nexport { KptSwitchGroup } from './lib/switch-group/switch-group.component';\nexport { KptRadioGroup } from './lib/radio-group/radio-group.component';\nexport { KptSelect } from './lib/select/select.component';\nexport { KptDatepicker } from './lib/datepicker/datepicker.component';\nexport type { KptDatepickerMode, KptDatepickerView } from './lib/datepicker/datepicker.component';\nexport { KptClock } from './lib/datepicker/clock.component';\nexport { KptTextarea } from './lib/textarea/textarea.component';\nexport { KptRichText } from './lib/rich-text/rich-text.component';\nexport type { KptRichTool, KptRichToolbar } from './lib/rich-text/rich-text.component';\nexport { KptSlider, type KptSliderValue } from './lib/slider/slider.component';\nexport { KptRating } from './lib/rating/rating.component';\nexport { KptFileUpload } from './lib/file-upload/file-upload.component';\nexport { KptColorPicker } from './lib/color-picker/color-picker.component';\nexport { KptDateRange } from './lib/date-range/date-range.component';\nexport type { KptDateRangeValue } from './lib/date-range/date-range.component';\nexport { KptInputNumber } from './lib/input-number/input-number.component';\nexport { KptPassword } from './lib/password/password.component';\nexport { KptInputOtp } from './lib/input-otp/input-otp.component';\nexport { KptChipsInput } from './lib/chips-input/chips-input.component';\nexport { KptInputMask } from './lib/input-mask/input-mask.component';\nexport { KptListbox } from './lib/listbox/listbox.component';\nexport { KptKnob } from './lib/knob/knob.component';\nexport type { KptOption } from './lib/shared/types';\n\n// Layout\nexport { KptCard } from './lib/card/card.component';\nexport type { KptCardVariant } from './lib/card/card.component';\nexport { KptDivider } from './lib/divider/divider.component';\nexport type { KptDividerOrientation } from './lib/divider/divider.component';\nexport { KptToolbar } from './lib/toolbar/toolbar.component';\nexport { KptSidenav } from './lib/sidenav/sidenav.component';\nexport { KptAppShell } from './lib/app-shell/app-shell.component';\nexport type { KptSidenavMode } from './lib/app-shell/app-shell.component';\nexport { KptShellNavToggle } from './lib/app-shell/shell-nav-toggle.directive';\nexport { KptAuth } from './lib/auth/auth.component';\nexport { KptAuthProviderDef } from './lib/auth/auth-provider.directive';\nexport type {\n KptAuthLayout,\n KptAuthMode,\n KptAuthProvider,\n KptAuthProviderLayout,\n KptAuthResetValue,\n KptAuthSignInValue,\n KptAuthSignUpValue,\n} from './lib/auth/auth.types';\nexport { KptPanel } from './lib/panel/panel.component';\nexport { KptFieldset } from './lib/fieldset/fieldset.component';\nexport { KptSplitter } from './lib/splitter/splitter.component';\nexport type { KptSplitterOrientation } from './lib/splitter/splitter.component';\nexport { KptScrollTop } from './lib/scroll-top/scroll-top.component';\nexport { KptImage } from './lib/image/image.component';\nexport { KptMeterGroup } from './lib/meter-group/meter-group.component';\nexport type { KptMeterItem } from './lib/meter-group/meter-group.component';\nexport { KptAvatarGroup } from './lib/avatar-group/avatar-group.component';\nexport type { KptAvatarItem } from './lib/avatar-group/avatar-group.component';\nexport { KptEmpty } from './lib/empty/empty.component';\n\n// Nawigacja\nexport { KptTabs } from './lib/tabs/tabs.component';\nexport { KptTab } from './lib/tabs/tab.component';\nexport { KptAccordion } from './lib/accordion/accordion.component';\nexport { KptAccordionPanel } from './lib/accordion/accordion-panel.component';\nexport { KptBreadcrumb } from './lib/breadcrumb/breadcrumb.component';\nexport type { KptBreadcrumbItem } from './lib/breadcrumb/breadcrumb.component';\nexport { KptStepper } from './lib/stepper/stepper.component';\nexport { KptStep } from './lib/stepper/step.component';\n\n// Dane\nexport { KptPaginator } from './lib/paginator/paginator.component';\nexport { KptDataTable } from './lib/data-table/data-table.component';\nexport type {\n KptColumn,\n KptTableLazyState,\n KptColumnFilter,\n KptColumnFilterType,\n KptColumnEdit,\n KptColumnEditType,\n KptCellEditEvent,\n KptColumnSummary,\n KptSummaryFn,\n} from './lib/data-table/data-table.component';\nexport { KptCellDef } from './lib/data-table/cell.directive';\nexport { KptCellEditDef } from './lib/data-table/cell-edit.directive';\nexport { KptRowDetailDef } from './lib/data-table/row-detail.directive';\nexport { KptTree } from './lib/tree/tree.component';\nexport type { KptTreeNode } from './lib/tree/tree.component';\nexport { KptTimeline } from './lib/timeline/timeline.component';\nexport type { KptTimelineItem } from './lib/timeline/timeline.component';\nexport { KptCarousel } from './lib/carousel/carousel.component';\nexport { KptDataView } from './lib/data-view/data-view.component';\nexport { KptPickList } from './lib/pick-list/pick-list.component';\nexport { KptOrderList } from './lib/order-list/order-list.component';\nexport { KptGalleria } from './lib/galleria/galleria.component';\nexport type { KptGalleriaItem } from './lib/galleria/galleria.component';\n\n// Feedback\nexport { KptAlert } from './lib/alert/alert.component';\nexport type { KptAlertVariant } from './lib/alert/alert.component';\nexport { KptDialog } from './lib/dialog/dialog.component';\nexport { KptToastService } from './lib/toast/toast.service';\nexport type { KptToast, KptToastOptions } from './lib/toast/toast.service';\nexport { KptToastContainer } from './lib/toast/toast-container.component';\nexport { KptTooltip } from './lib/tooltip/tooltip.directive';\nexport type { KptTooltipPosition } from './lib/tooltip/tooltip.directive';\nexport { KptMenu } from './lib/menu/menu.component';\nexport type { KptMenuItem } from './lib/menu/menu.component';\nexport { KptPopover } from './lib/popover/popover.component';\nexport { KptAutocomplete } from './lib/autocomplete/autocomplete.component';\nexport { KptDrawer } from './lib/drawer/drawer.component';\nexport type { KptDrawerPosition } from './lib/drawer/drawer.component';\nexport { KptContextMenu } from './lib/context-menu/context-menu.component';\nexport { KptMenubar } from './lib/menubar/menubar.component';\nexport { KptMegamenu } from './lib/megamenu/megamenu.component';\nexport { KptConfirmService } from './lib/confirm/confirm.service';\nexport type { KptConfirmOptions, KptConfirmRequest } from './lib/confirm/confirm.service';\nexport { KptConfirmContainer } from './lib/confirm/confirm-container.component';\nexport { KptBottomSheet } from './lib/bottom-sheet/bottom-sheet.component';\nexport { KptSpeedDial } from './lib/speed-dial/speed-dial.component';\nexport type { KptSpeedDialDirection } from './lib/speed-dial/speed-dial.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","_forTrack0","nextUniqueId","_forTrack1","_c1","_c2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"konce-pt-angular.mjs","sources":["../../src/lib/button/button.component.html","../../src/lib/button/button.component.ts","../../src/lib/icon-button/icon-button.component.ts","../../src/lib/button-group/button-group.component.ts","../../src/lib/fab/fab.component.ts","../../src/lib/icon/icon-registry.ts","../../src/lib/icon/icon.component.ts","../../src/lib/avatar/avatar.component.ts","../../src/lib/badge/badge.component.ts","../../src/lib/i18n/i18n.token.ts","../../src/lib/i18n/i18n.service.ts","../../src/lib/split-button/split-button.component.ts","../../src/lib/icon/icon-provider.ts","../../src/lib/breakpoint/breakpoints.generated.ts","../../src/lib/breakpoint/breakpoint.service.ts","../../src/lib/i18n/i18n.provider.ts","../../src/lib/i18n/messages.ts","../../src/lib/chip/chip.component.ts","../../src/lib/spinner/spinner.component.ts","../../src/lib/progress/progress.component.ts","../../src/lib/skeleton/skeleton.component.ts","../../src/lib/form-field/form-field-control.ts","../../src/lib/form-field/form-field.component.html","../../src/lib/form-field/form-field.component.ts","../../src/lib/input/input.component.ts","../../src/lib/input/input.component.html","../../src/lib/checkbox/checkbox.component.ts","../../src/lib/switch/switch.component.ts","../../src/lib/switch-group/switch-group.component.ts","../../src/lib/radio-group/radio-group.component.ts","../../src/lib/select/select.component.html","../../src/lib/select/select.component.ts","../../src/lib/i18n/intl.ts","../../src/lib/datepicker/clock.component.ts","../../src/lib/datepicker/datepicker.component.html","../../src/lib/datepicker/datepicker.component.ts","../../src/lib/textarea/textarea.component.ts","../../src/lib/tooltip/tooltip.directive.ts","../../src/lib/rich-text/rich-text.component.html","../../src/lib/rich-text/rich-text.component.ts","../../src/lib/slider/slider.component.ts","../../src/lib/rating/rating.component.ts","../../src/lib/file-upload/file-upload.component.ts","../../src/lib/color-picker/color-picker.component.ts","../../src/lib/date-range/date-range.component.html","../../src/lib/date-range/date-range.component.ts","../../src/lib/input-number/input-number.component.ts","../../src/lib/password/password.component.ts","../../src/lib/input-otp/input-otp.component.ts","../../src/lib/chips-input/chips-input.component.ts","../../src/lib/input-mask/input-mask.component.ts","../../src/lib/listbox/listbox.component.ts","../../src/lib/knob/knob.component.ts","../../src/lib/card/card.component.html","../../src/lib/card/card.component.ts","../../src/lib/divider/divider.component.ts","../../src/lib/toolbar/toolbar.component.ts","../../src/lib/sidenav/sidenav.component.ts","../../src/lib/app-shell/app-shell.component.ts","../../src/lib/app-shell/app-shell.component.html","../../src/lib/app-shell/shell-nav-toggle.directive.ts","../../src/lib/backdrop/backdrop.component.ts","../../src/lib/alert/alert.component.ts","../../src/lib/auth/auth-provider.directive.ts","../../src/lib/auth/auth.component.html","../../src/lib/auth/auth.component.ts","../../src/lib/panel/panel.component.ts","../../src/lib/fieldset/fieldset.component.ts","../../src/lib/splitter/splitter.component.ts","../../src/lib/scroll-top/scroll-top.component.ts","../../src/lib/image/image.component.ts","../../src/lib/meter-group/meter-group.component.ts","../../src/lib/avatar-group/avatar-group.component.ts","../../src/lib/empty/empty.component.ts","../../src/lib/tabs/tab.component.ts","../../src/lib/tabs/tabs.component.ts","../../src/lib/accordion/accordion-panel.component.ts","../../src/lib/accordion/accordion.component.ts","../../src/lib/breadcrumb/breadcrumb.component.ts","../../src/lib/stepper/step.component.ts","../../src/lib/stepper/stepper.component.ts","../../src/lib/paginator/paginator.component.html","../../src/lib/paginator/paginator.component.ts","../../src/lib/data-table/cell.directive.ts","../../src/lib/data-table/cell-edit.directive.ts","../../src/lib/data-table/row-detail.directive.ts","../../src/lib/data-table/data-table.component.html","../../src/lib/data-table/data-table.component.ts","../../src/lib/tree/tree.component.ts","../../src/lib/timeline/timeline.component.ts","../../src/lib/carousel/carousel.component.ts","../../src/lib/data-view/data-view.component.ts","../../src/lib/pick-list/pick-list.component.ts","../../src/lib/order-list/order-list.component.ts","../../src/lib/galleria/galleria.component.ts","../../src/lib/dialog/dialog.component.ts","../../src/lib/toast/toast.service.ts","../../src/lib/toast/toast-container.component.ts","../../src/lib/menu/menu.component.ts","../../src/lib/popover/popover.component.ts","../../src/lib/peek/peek.component.ts","../../src/lib/mention/mention.component.ts","../../src/lib/mention/mentions.component.ts","../../src/lib/autocomplete/autocomplete.component.ts","../../src/lib/drawer/drawer.component.ts","../../src/lib/context-menu/context-menu.component.ts","../../src/lib/menubar/menubar.component.ts","../../src/lib/megamenu/megamenu.component.ts","../../src/lib/confirm/confirm.service.ts","../../src/lib/confirm/confirm-container.component.ts","../../src/lib/bottom-sheet/bottom-sheet.component.ts","../../src/lib/speed-dial/speed-dial.component.ts","../../src/public-api.ts","../../src/konce-pt-angular.ts"],"sourcesContent":["<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","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n} from '@angular/core';\n\nexport type KptButtonVariant = 'filled' | 'tonal' | 'outline' | 'text' | 'danger';\nexport type KptButtonSize = 'sm' | 'md' | 'lg';\n\n/**\n * Przycisk Koncept UI. Renderuje natywny `<button>` (zachowana semantyka i submit\n * formularza). Wygląd sterowany tokenami `--kpt-button-*`.\n *\n * @example\n * <kpt-button variant=\"filled\" (click)=\"save()\">Zapisz</kpt-button>\n * <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"busy()\">Anuluj</kpt-button>\n */\n@Component({\n selector: 'kpt-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n host: {\n class: 'kpt-button-host',\n '[class.kpt-button-host--full]': 'fullWidth()',\n },\n})\nexport class KptButton {\n /** Wariant wizualny. */\n readonly variant = input<KptButtonVariant>('filled');\n /** Rozmiar. */\n readonly size = input<KptButtonSize>('md');\n /** Typ natywnego przycisku (istotne w formularzach). */\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** Wyłączony. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Stan ładowania — pokazuje spinner i blokuje interakcję. */\n readonly loading = input(false, { transform: booleanAttribute });\n /** Rozciągnięcie na całą szerokość kontenera. */\n readonly fullWidth = input(false, { transform: booleanAttribute });\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\nimport type { KptButtonVariant, KptButtonSize } from '../button/button.component';\n\n/**\n * Przycisk ikonowy (tylko ikona). Wymaga `ariaLabel` dla dostępności.\n *\n * @example\n * <kpt-icon-button ariaLabel=\"Ustawienia\"><kpt-icon name=\"menu\" /></kpt-icon-button>\n * <kpt-icon-button variant=\"filled\" shape=\"square\" ariaLabel=\"Usuń\"><kpt-icon name=\"x\" /></kpt-icon-button>\n */\n@Component({\n selector: 'kpt-icon-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n class=\"kpt-icon-button\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [disabled]=\"isDisabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-pressed]=\"ariaPressed()\"\n [attr.aria-expanded]=\"ariaExpanded()\"\n [attr.aria-busy]=\"loading() ? 'true' : null\"\n >\n @if (loading()) {\n <span class=\"kpt-icon-button__spinner\" aria-hidden=\"true\"></span>\n } @else {\n <ng-content />\n }\n </button>\n `,\n styleUrl: './icon-button.component.scss',\n host: { class: 'kpt-icon-button-host' },\n})\nexport class KptIconButton {\n readonly variant = input<KptButtonVariant>('text');\n readonly size = input<KptButtonSize>('md');\n readonly shape = input<'round' | 'square'>('round');\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly loading = input(false, { transform: booleanAttribute });\n /** Etykieta dostępności (wymagana — przycisk nie ma tekstu). */\n readonly ariaLabel = input.required<string>();\n /**\n * Stan wciśnięcia dla przycisku przełącznika (gwiazdka „w ulubionych\", pauza, filtr).\n * Musi zjechać na wewnętrzny `<button>`: `[attr.aria-pressed]` postawione na\n * `<kpt-icon-button>` ląduje na hoście, który nie ma roli przycisku — czytnik nie ma\n * wtedy czego ogłosić. `null` (domyślnie) nie wypisuje atrybutu w ogóle.\n */\n readonly ariaPressed = input<boolean | null>(null);\n /**\n * Stan rozwinięcia dla przycisku otwierającego panel (wybierak, menu). Z tego samego powodu\n * co `ariaPressed` musi zjechać na wewnętrzny `<button>` — host nie ma roli przycisku, więc\n * atrybut postawiony na nim nie znaczy dla czytnika nic. `null` (domyślnie) go nie wypisuje.\n */\n readonly ariaExpanded = input<boolean | null>(null);\n\n protected readonly isDisabled = computed(() => this.disabled() || this.loading());\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Segmentowana grupa przycisków (toggle) — pojedynczy wybór z opcji. Signal Forms.\n *\n * @example\n * <kpt-button-group [(value)]=\"view\" [options]=\"[{label:'Lista',value:'list'},{label:'Siatka',value:'grid'}]\" />\n * <kpt-button-group [formField]=\"f.period\" [options]=\"periods\" />\n */\n@Component({\n selector: 'kpt-button-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-button-group\" role=\"group\" [attr.data-size]=\"size()\">\n @for (opt of options(); track opt.value) {\n <button\n type=\"button\"\n class=\"kpt-button-group__item\"\n [class.is-active]=\"opt.value === value()\"\n [disabled]=\"disabled() || opt.disabled\"\n [attr.aria-pressed]=\"opt.value === value()\"\n (click)=\"select(opt)\"\n >{{ opt.label }}</button>\n }\n </div>\n `,\n styleUrl: './button-group.component.scss',\n host: { class: 'kpt-button-group-host' },\n})\nexport class KptButtonGroup<T = unknown> implements FormValueControl<T> {\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly value = model<T>(undefined as T);\n readonly size = input<'sm' | 'md' | 'lg'>('md');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected select(opt: KptOption<T>): void {\n if (opt.disabled || this.disabled()) return;\n this.value.set(opt.value);\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\n/**\n * Floating Action Button (FAB) — okrągły, wyniesiony przycisk akcji. Wariant `extended` = pigułka z tekstem.\n *\n * @example\n * <kpt-fab ariaLabel=\"Dodaj\"><kpt-icon name=\"plus\" /></kpt-fab>\n * <kpt-fab extended><kpt-icon name=\"plus\" /> Nowy</kpt-fab>\n */\n@Component({\n selector: 'kpt-fab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <button\n class=\"kpt-fab\"\n [type]=\"type()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [class.kpt-fab--extended]=\"extended()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"extended() ? null : ariaLabel()\"\n ><ng-content /></button>\n `,\n styleUrl: './fab.component.scss',\n host: { class: 'kpt-fab-host' },\n})\nexport class KptFab {\n readonly variant = input<'filled' | 'tonal'>('filled');\n readonly size = input<'md' | 'mini'>('md');\n readonly extended = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly type = input<'button' | 'submit' | 'reset'>('button');\n /** Wymagane dla wariantu okrągłego (bez tekstu). */\n readonly ariaLabel = input('');\n}\n","import { Injectable, signal } from '@angular/core';\nimport { KPT_ICONS, sanitizeSvgFragment, toKptIconRecord, type KptIconInput } from '@konce-pt/icons';\n\nexport { renderKptIconSvg } from '@konce-pt/icons';\n\n/**\n * Rejestr ikon dla `kpt-icon`. Zawiera wbudowany zestaw (używany przez komponenty).\n * Aby dodać pełny zestaw Tabler (5130 ikon), użyj `provideKptTablerIcons()`\n * z `@konce-pt/angular/icons` lub zarejestruj własne przez `register()`.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptIconRegistry {\n private readonly icons = new Map<string, string>(Object.entries(KPT_ICONS));\n private readonly _version = signal(0);\n /** Rośnie po każdej rejestracji — pozwala `kpt-icon` reagować na późne dodanie ikon. */\n readonly version = this._version.asReadonly();\n\n /**\n * Rejestruje (lub nadpisuje) ikony. Przyjmuje listę definicji z subpathu Tablera\n * (`[Rocket, LayoutDashboard]`), obiekt definicji (np. `import * as tabler`) albo\n * mapę `{ nazwa: 'inner svg' }` — patrz [[KptIconInput]].\n *\n * Treść jest sanityzowana do allowlisty geometrii SVG (`path`/`circle`/`rect`/`g`/`line`/\n * `polygon`/`polyline`/`ellipse` i ich atrybutów kształtu/stylu) — mimo to `register()` wolno\n * wołać wyłącznie z treścią kontrolowaną przez developera (build-time), nigdy bezpośrednio\n * z danych runtime/CMS/uploadu bez własnej walidacji domenowej wyżej w stosie.\n */\n register(icons: KptIconInput): void {\n for (const [name, svg] of Object.entries(toKptIconRecord(icons))) {\n this.icons.set(name, sanitizeSvgFragment(svg));\n }\n this._version.update((v) => v + 1);\n }\n\n /** Zwraca wewnętrzny SVG ikony lub undefined. */\n get(name: string): string | undefined {\n return this.icons.get(name);\n }\n\n has(name: string): boolean {\n return this.icons.has(name);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, effect, inject, input } from '@angular/core';\r\nimport { KptIconRegistry, renderKptIconSvg } from './icon-registry';\r\n\r\n/**\r\n * Ikona Koncept UI (inline SVG, zestaw Tabler Icons — MIT). Rozmiar dziedziczy z `font-size`\r\n * (1em) lub ustaw `size`; kolor z `currentColor`. Ikona musi być w rejestrze\r\n * ([[KptIconRegistry]]) — wbudowany zestaw działa od razu, pełny zestaw dodaje\r\n * `provideKptTablerIcons()` z `@konce-pt/angular/icons`.\r\n *\r\n * @example\r\n * <kpt-icon name=\"menu\" />\r\n * <kpt-icon name=\"check\" size=\"1.25rem\" />\r\n */\r\n@Component({\r\n selector: 'kpt-icon',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n template: '',\r\n styleUrl: './icon.component.scss',\r\n host: {\r\n class: 'kpt-icon-host',\r\n 'aria-hidden': 'true',\r\n '[style.font-size]': 'size() || null',\r\n },\r\n})\r\nexport class KptIcon {\r\n /** Nazwa ikony z rejestru (wbudowana lub zarejestrowana). */\r\n readonly name = input.required<string>();\r\n /** Rozmiar jako długość CSS (np. '1.25rem'); domyślnie dziedziczy z font-size. */\r\n readonly size = input<string>('');\r\n\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private readonly registry = inject(KptIconRegistry);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.registry.version(); // reaguj na późną rejestrację ikon\r\n // Treść pochodzi z zaufanego rejestru — bezpośredni innerHTML bez sanitizera.\r\n this.host.nativeElement.innerHTML = renderKptIconSvg(this.registry.get(this.name()));\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptAvatarSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type KptAvatarShape = 'circle' | 'square';\n\n/**\n * Awatar — obraz, inicjały (z `name`) lub ikona.\n *\n * `name` trafia do natywnego `title` (podpowiedź spod kursora — inicjały same w sobie\n * nie mówią, kto to jest). Bez `src` awatar dostaje dodatkowo `role=\"img\"` i `aria-label`,\n * a same inicjały są `aria-hidden`, żeby czytnik nie przeczytał „AK\" litera po literze.\n * Przy `src` etykietę niesie już `alt` obrazu — nie dublujemy jej.\n *\n * @example\n * <kpt-avatar src=\"/u/anna.jpg\" />\n * <kpt-avatar name=\"Anna Kowalska\" size=\"lg\" />\n * <kpt-avatar icon=\"user\" shape=\"square\" />\n */\n@Component({\n selector: 'kpt-avatar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <span\n class=\"kpt-avatar\"\n [attr.data-size]=\"size()\"\n [attr.data-shape]=\"shape()\"\n [attr.title]=\"name() || null\"\n [attr.role]=\"!src() && name() ? 'img' : null\"\n [attr.aria-label]=\"!src() && name() ? name() : null\"\n >\n @if (src()) {\n <img class=\"kpt-avatar__img\" [src]=\"src()\" [alt]=\"name() || ''\" />\n } @else if (name()) {\n <span class=\"kpt-avatar__initials\" aria-hidden=\"true\">{{ initials() }}</span>\n } @else if (icon()) {\n <kpt-icon [name]=\"icon()!\" />\n }\n </span>\n `,\n styleUrl: './avatar.component.scss',\n host: { class: 'kpt-avatar-host' },\n})\nexport class KptAvatar {\n readonly src = input<string | null>(null);\n readonly name = input<string>('');\n readonly icon = input<string | null>(null);\n readonly size = input<KptAvatarSize>('md');\n readonly shape = input<KptAvatarShape>('circle');\n\n protected readonly initials = computed(() =>\n this.name()\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((w) => w[0]?.toUpperCase() ?? '')\n .join(''),\n );\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport type KptBadgeVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\nexport type KptBadgeSize = 'sm' | 'md' | 'lg';\n\n/**\n * Znacznik (badge) — licznik lub kropka statusu. Standalone lub nałożony na treść (`overlay`).\n *\n * @example\n * <kpt-badge [value]=\"3\" variant=\"danger\" />\n * <kpt-badge [value]=\"4\" size=\"sm\" variant=\"success\" />\n * <kpt-badge [value]=\"128\" overlay><kpt-icon name=\"menu\" /></kpt-badge>\n * <kpt-badge dot variant=\"success\" overlay><kpt-avatar name=\"AK\" /></kpt-badge>\n */\n@Component({\n selector: 'kpt-badge',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-content />\n <span\n class=\"kpt-badge\"\n [attr.data-variant]=\"variant()\"\n [attr.data-size]=\"size()\"\n [class.kpt-badge--overlay]=\"overlay()\"\n [class.kpt-badge--dot]=\"dot()\"\n >{{ dot() ? '' : display() }}</span>\n `,\n styleUrl: './badge.component.scss',\n host: { class: 'kpt-badge-host' },\n})\nexport class KptBadge {\n readonly value = input<string | number | null>(null);\n readonly variant = input<KptBadgeVariant>('primary');\n /** Rozmiar — `sm` mieści się w wierszu tekstu, `md` to domyślny licznik. */\n readonly size = input<KptBadgeSize>('md');\n readonly dot = input(false, { transform: booleanAttribute });\n readonly overlay = input(false, { transform: booleanAttribute });\n readonly max = input(99);\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (typeof v === 'number' && v > this.max()) return `${this.max()}+`;\n return v ?? '';\n });\n}\n","import { InjectionToken } from '@angular/core';\nimport type { KptI18nConfig } from '@konce-pt/i18n';\n\nexport type { DeepPartial, KptI18nConfig } from '@konce-pt/i18n';\n\n/** Token konfiguracji i18n. Konsumowany przez `KptI18n`. */\nexport const KPT_I18N_CONFIG = new InjectionToken<KptI18nConfig>('KPT_I18N_CONFIG');\n","import { Injectable, computed, inject, signal } from '@angular/core';\nimport { KPT_MESSAGES_EN, KPT_MESSAGES_PL, deepMerge, translate } from '@konce-pt/i18n';\nimport type { DeepPartial, KptLocale, KptMessages } from '@konce-pt/i18n';\nimport { KPT_I18N_CONFIG } from './i18n.token';\n\n/**\n * Serwis tłumaczeń Koncept UI. Trzyma rejestr słowników per język, bieżący locale\n * (sygnał) i funkcję `t()` z interpolacją. Skonfiguruj przez `provideKptI18n(...)`.\n *\n * Domyślnie EN. Języki bazowe: EN, PL. Dowolny inny język dodaje się jednym\n * słownikiem (`registerMessages` lub `provideKptI18n({ messages: { de } })`);\n * brakujące klucze spadają na EN.\n *\n * Rdzeń (`deepMerge`, `translate`) żyje w `@konce-pt/i18n` — ten sam, którego\n * używa port React, więc oba frameworki tłumaczą identycznie.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptI18n {\n /** Rejestr słowników: język → pełny `KptMessages`. */\n private readonly registry = new Map<KptLocale, KptMessages>([\n ['en', KPT_MESSAGES_EN],\n ['pl', KPT_MESSAGES_PL],\n ]);\n\n private readonly _locale = signal<KptLocale>('en');\n /** Bieżący język (tylko do odczytu). */\n readonly locale = this._locale.asReadonly();\n\n /** Aktywny słownik (z fallbackiem na EN, gdy język nieznany). */\n readonly messages = computed<KptMessages>(() => this.registry.get(this._locale()) ?? KPT_MESSAGES_EN);\n\n constructor() {\n const config = inject(KPT_I18N_CONFIG, { optional: true });\n if (config?.messages) {\n for (const [locale, patch] of Object.entries(config.messages)) {\n this.registerMessages(locale, patch);\n }\n }\n if (config?.locale) this._locale.set(config.locale);\n }\n\n /** Ustawia bieżący język. Zmiana jest reaktywna dla wszystkich komponentów. */\n setLocale(locale: KptLocale): void {\n this._locale.set(locale);\n }\n\n /**\n * Rejestruje lub nadpisuje słownik języka. Częściowy słownik deep-merge'uje się\n * na istniejący (lub EN dla nowego języka) → brakujące klucze mają wartość EN.\n */\n registerMessages(locale: KptLocale, patch: DeepPartial<KptMessages>): void {\n const base = this.registry.get(locale) ?? KPT_MESSAGES_EN;\n this.registry.set(locale, deepMerge(base, patch));\n }\n\n /**\n * Tłumaczy klucz w notacji kropkowej (np. `'paginator.range'`), z opcjonalną\n * interpolacją `{name}`. Brakujący klucz spada na EN, a w ostateczności zwraca sam klucz.\n */\n t(key: string, params?: Record<string, string | number>): string {\n return translate(this.messages(), key, params);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge } from '../badge/badge.component';\nimport type { KptButtonVariant } from '../button/button.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Przycisk dzielony (split button) — akcja główna + rozwijane menu dodatkowych akcji.\n * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-split-button [items]=\"items\" (primaryClick)=\"save()\" (selected)=\"onItem($event)\">Zapisz</kpt-split-button>\n */\n@Component({\n selector: 'kpt-split-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon],\n template: `\n <div class=\"kpt-split-button\" [attr.data-variant]=\"variant()\">\n <button class=\"kpt-split-button__main\" type=\"button\" [disabled]=\"disabled()\" (click)=\"primaryClick.emit()\">\n <ng-content />\n </button>\n <button\n class=\"kpt-split-button__toggle\"\n type=\"button\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [disabled]=\"disabled()\"\n (click)=\"open.set(!open())\"\n [attr.aria-label]=\"i18n.t('splitButton.more')\"\n ><kpt-icon name=\"chevron-down\" /></button>\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"open.set(false)\"\n >\n <div class=\"kpt-split-button__panel\" role=\"menu\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-split-button__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-split-button__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-split-button__text\">\n @if (item.label) { <span class=\"kpt-split-button__label\">{{ item.label }}</span> }\n @if (item.description) {\n <span class=\"kpt-split-button__description\">{{ item.description }}</span>\n }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-split-button__item\"\n [class.kpt-split-button__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-split-button__text\">\n <span class=\"kpt-split-button__label\">{{ item.label }}</span>\n @if (item.description) {\n <span class=\"kpt-split-button__description\">{{ item.description }}</span>\n }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge\n class=\"kpt-split-button__badge\"\n [value]=\"item.badge\"\n [variant]=\"item.badgeVariant ?? 'primary'\"\n />\n }\n </button>\n }\n }\n </div>\n </ng-template>\n `,\n styleUrl: './split-button.component.scss',\n host: { class: 'kpt-split-button-host' },\n})\nexport class KptSplitButton<T = unknown> {\n readonly variant = input<KptButtonVariant>('filled');\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly primaryClick = output<void>();\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.open.set(false);\n }\n}\n","import { EnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\nimport type { KptIconInput } from '@konce-pt/icons';\nimport { KptIconRegistry } from './icon-registry';\n\n/**\n * Rejestruje wskazane ikony w [[KptIconRegistry]] — jedno wywołanie, jeden parametr.\n *\n * Stoi w rdzeniu, a nie w subpathu `@konce-pt/angular/icons`, i to jest cała różnica:\n * tamten moduł importuje `KPT_TABLER_ICONS` statycznie, więc każde jego użycie wciąga\n * komplet 5130 ikon (~1,2 MB). Tutaj dane przychodzą argumentem, czyli o zawartości bundla\n * decyduje `import` w aplikacji — a ikony Tablera są osobnymi eksportami, więc bundler\n * zostawia dokładnie te, po które sięgnięto.\n *\n * @example\n * // Produkcja: do bundla wchodzą dwie ikony.\n * import { LayoutDashboard, Rocket } from '@konce-pt/icons/tabler';\n * bootstrapApplication(App, { providers: [provideKptIcons([LayoutDashboard, Rocket])] });\n *\n * @example\n * // Własne ikony aplikacji, dotychczasowy kształt mapy.\n * provideKptIcons({ logo: '<path d=\"…\" />' });\n */\nexport function provideKptIcons(icons: KptIconInput): EnvironmentProviders {\n return provideAppInitializer(() => {\n inject(KptIconRegistry).register(icons);\n });\n}\n","// Do not edit directly — generated by scripts/gen-tokens.mjs\n// from @konce-pt/tokens (tokens/primitives/breakpoint.json).\n\n/** Nazwa breakpointa z tokenów `--kpt-breakpoint-*` (mobile-first). */\nexport type KptBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n/** Progi breakpointów w pikselach — te same wartości, z których korzystają `@media` biblioteki. */\nexport const KPT_BREAKPOINTS: Record<KptBreakpoint, number> = {\n 'sm': 640,\n 'md': 768,\n 'lg': 1024,\n 'xl': 1280,\n '2xl': 1536,\n};\n","import { isPlatformBrowser } from '@angular/common';\nimport { DestroyRef, Injectable, PLATFORM_ID, type Signal, inject, signal } from '@angular/core';\nimport { KPT_BREAKPOINTS, type KptBreakpoint } from './breakpoints.generated';\n\n/**\n * Obserwator breakpointów oparty na `matchMedia`, spięty z tokenami `--kpt-breakpoint-*`.\n * Zwraca sygnały, więc czyta się go tak samo w `computed`, w szablonie i w `effect`.\n *\n * Zapytania są memoizowane per string: `up('lg')` wywołane w wielu komponentach dzieli\n * jeden `MediaQueryList` i jeden nasłuch.\n *\n * Poza przeglądarką (SSR, prerender) każdy sygnał to stałe `false`. Dlatego **układ**\n * komponentów biblioteki nigdy nie zależy od tego serwisu — o tym, jak wygląda strona,\n * decyduje CSS, żeby nic nie migotało przed hydracją. Serwis odpowiada za zachowania,\n * których CSS nie wyrazi (np. w którą stronę ma zadziałać przycisk).\n *\n * @example\n * private readonly breakpoints = inject(KptBreakpointObserver);\n * readonly isDesktop = this.breakpoints.up('lg');\n */\n@Injectable({ providedIn: 'root' })\nexport class KptBreakpointObserver {\n // Sam `isPlatformBrowser` nie wystarcza: jsdom (testy jednostkowe aplikacji) melduje się jako\n // przeglądarka, ale nie implementuje `matchMedia` — bez sprawdzenia metody pierwszy render\n // komponentu na `KptAppShell` wywala się na TypeError.\n private readonly canObserve =\n isPlatformBrowser(inject(PLATFORM_ID)) && typeof window !== 'undefined' && typeof window.matchMedia === 'function';\n private readonly destroyRef = inject(DestroyRef);\n private readonly cache = new Map<string, Signal<boolean>>();\n\n /** Dowolne media query jako sygnał. */\n matches(query: string): Signal<boolean> {\n const cached = this.cache.get(query);\n if (cached) return cached;\n\n const result = this.canObserve ? this.observe(query) : signal(false).asReadonly();\n this.cache.set(query, result);\n return result;\n }\n\n /** Czy viewport ma szerokość co najmniej danego breakpointa (mobile-first). */\n up(breakpoint: KptBreakpoint): Signal<boolean> {\n return this.matches(`(min-width: ${KPT_BREAKPOINTS[breakpoint]}px)`);\n }\n\n /**\n * Czy viewport jest węższy niż dany breakpoint. Próg schodzi o 0.02px, żeby pasma\n * `up`/`down` nie nakładały się na ułamkowych szerokościach okna (zoom, DPI).\n */\n down(breakpoint: KptBreakpoint): Signal<boolean> {\n return this.matches(`(max-width: ${KPT_BREAKPOINTS[breakpoint] - 0.02}px)`);\n }\n\n private observe(query: string): Signal<boolean> {\n const list = window.matchMedia(query);\n const state = signal(list.matches);\n const onChange = (event: MediaQueryListEvent): void => state.set(event.matches);\n\n list.addEventListener('change', onChange);\n this.destroyRef.onDestroy(() => list.removeEventListener('change', onChange));\n\n return state.asReadonly();\n }\n}\n","import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { KPT_I18N_CONFIG, type KptI18nConfig } from './i18n.token';\n\n/**\n * Konfiguruje i18n Koncept UI. Ustawia język początkowy i rejestruje/nadpisuje\n * słowniki. Języki bazowe (EN, PL) są dostępne bez konfiguracji.\n *\n * @example\n * // main.ts — polski interfejs\n * bootstrapApplication(App, {\n * providers: [provideKptI18n({ locale: 'pl' })],\n * });\n *\n * @example\n * // Własny język jednym plikiem JSON (brakujące klucze → EN)\n * import de from './i18n/de.json';\n * provideKptI18n({ locale: 'de', messages: { de } });\n *\n * @example\n * // Nadpisanie pojedynczych etykiet istniejącego języka\n * provideKptI18n({ messages: { en: { paginator: { rowsPerPage: 'Rows per page:' } } } });\n */\nexport function provideKptI18n(config: KptI18nConfig = {}): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: KPT_I18N_CONFIG, useValue: config }]);\n}\n","/*\n * Re-eksport kontraktu tłumaczeń z `@konce-pt/i18n`.\n *\n * Słowniki i typy żyją w osobnym pakiecie pure-TS, żeby port React korzystał\n * z tego samego źródła prawdy. Ten plik trzyma dotychczasową ścieżkę importu,\n * dzięki czemu komponenty i `public-api.ts` nie musiały się zmieniać.\n */\n\nexport { KPT_MESSAGES_EN, KPT_MESSAGES_PL } from '@konce-pt/i18n';\nexport type { KptLocale, KptMessages } from '@konce-pt/i18n';\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, output } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptChipVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\n\n/** Wielkość liter etykiety. */\nexport type KptChipTextTransform = 'none' | 'capitalize' | 'uppercase' | 'lowercase';\n\n/**\n * Chip / tag — etykieta, opcjonalnie usuwalna.\n *\n * @example\n * <kpt-chip>Angular</kpt-chip>\n * <kpt-chip variant=\"success\" removable (removed)=\"onRemove()\">UI</kpt-chip>\n * <kpt-chip textTransform=\"capitalize\">nowość · zestaw startowy</kpt-chip>\n */\n@Component({\n selector: 'kpt-chip',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <span\n class=\"kpt-chip\"\n [attr.data-variant]=\"variant()\"\n [attr.data-text-transform]=\"textTransform() === 'none' ? null : textTransform()\"\n [class.kpt-chip--disabled]=\"disabled()\"\n >\n <ng-content />\n @if (removable()) {\n <button\n type=\"button\"\n class=\"kpt-chip__remove\"\n [disabled]=\"disabled()\"\n (click)=\"removed.emit()\"\n [attr.aria-label]=\"i18n.t('common.remove')\"\n ><kpt-icon name=\"x\" /></button>\n }\n </span>\n `,\n styleUrl: './chip.component.scss',\n host: { class: 'kpt-chip-host' },\n})\nexport class KptChip {\n readonly variant = input<KptChipVariant>('neutral');\n /**\n * Wielkość liter etykiety. `capitalize` podnosi pierwszą literę każdego słowa — także po\n * dywizie („Agent-Ready\"), bo CSS nie wie, gdzie kończy się wyraz złożony; przy takich\n * napisach pewniejszy jest zapis wprost w treści.\n */\n readonly textTransform = input<KptChipTextTransform>('none');\n readonly removable = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly removed = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Wskaźnik ładowania (spinner). Kolor z `currentColor`.\n *\n * @example\n * <kpt-spinner />\n * <kpt-spinner size=\"2rem\" label=\"Wczytywanie danych\" />\n */\n@Component({\n selector: 'kpt-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<span class=\"kpt-spinner\" role=\"status\" [attr.aria-label]=\"effectiveLabel()\" [style.width]=\"size()\" [style.height]=\"size()\"></span>`,\n styleUrl: './spinner.component.scss',\n host: { class: 'kpt-spinner-host' },\n})\nexport class KptSpinner {\n readonly size = input('1.5rem');\n /** Etykieta a11y; bez wartości używa i18n (`spinner.label`). */\n readonly label = input<string>();\n\n private readonly i18n = inject(KptI18n);\n protected readonly effectiveLabel = computed(() => this.label() ?? this.i18n.t('spinner.label'));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport type KptProgressVariant = 'primary' | 'success' | 'danger' | 'warning' | 'info';\n\n/**\n * Wskaźnik postępu — liniowy lub kołowy, określony (0–100) lub nieokreślony (`value` = null).\n *\n * @example\n * <kpt-progress [value]=\"60\" />\n * <kpt-progress type=\"circular\" [value]=\"75\" variant=\"success\" />\n * <kpt-progress [value]=\"null\" /> <!-- indeterminate -->\n */\n@Component({\n selector: 'kpt-progress',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (type() === 'circular') {\n <svg\n class=\"kpt-progress__circular\"\n [class.kpt-progress--indeterminate]=\"value() == null\"\n [attr.data-variant]=\"variant()\"\n [attr.width]=\"diameter()\"\n [attr.height]=\"diameter()\"\n viewBox=\"0 0 40 40\"\n role=\"progressbar\"\n [attr.aria-valuenow]=\"value()\"\n >\n <circle class=\"kpt-progress__track\" cx=\"20\" cy=\"20\" r=\"16\" />\n <circle\n class=\"kpt-progress__bar\"\n cx=\"20\"\n cy=\"20\"\n r=\"16\"\n [style.stroke-dasharray]=\"circumference\"\n [style.stroke-dashoffset]=\"offset()\"\n />\n </svg>\n } @else {\n <div class=\"kpt-progress__linear\" [attr.data-variant]=\"variant()\" role=\"progressbar\" [attr.aria-valuenow]=\"value()\">\n <div class=\"kpt-progress__bar\" [class.kpt-progress--indeterminate]=\"value() == null\" [style.width.%]=\"value() ?? 0\"></div>\n </div>\n }\n `,\n styleUrl: './progress.component.scss',\n host: { class: 'kpt-progress-host' },\n})\nexport class KptProgress {\n /** 0–100 lub null = nieokreślony. */\n readonly value = input<number | null>(null);\n readonly variant = input<KptProgressVariant>('primary');\n readonly type = input<'linear' | 'circular'>('linear');\n readonly diameter = input(40);\n\n protected readonly circumference = 2 * Math.PI * 16;\n protected readonly offset = computed(() => {\n const v = this.value();\n if (v == null) return this.circumference * 0.75;\n return this.circumference * (1 - Math.min(100, Math.max(0, v)) / 100);\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport type KptSkeletonVariant = 'text' | 'circle' | 'rect';\n\n/**\n * Placeholder ładowania (skeleton) z animacją shimmer.\n *\n * @example\n * <kpt-skeleton variant=\"text\" [lines]=\"3\" />\n * <kpt-skeleton variant=\"circle\" width=\"3rem\" height=\"3rem\" />\n * <kpt-skeleton variant=\"rect\" width=\"100%\" height=\"8rem\" />\n */\n@Component({\n selector: 'kpt-skeleton',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (variant() === 'text') {\n @for (line of lineArray(); track $index; let last = $last) {\n <span class=\"kpt-skeleton kpt-skeleton--text\" [style.width]=\"last ? '60%' : width()\"></span>\n }\n } @else {\n <span class=\"kpt-skeleton\" [attr.data-variant]=\"variant()\" [style.width]=\"width()\" [style.height]=\"height()\"></span>\n }\n `,\n styleUrl: './skeleton.component.scss',\n host: { class: 'kpt-skeleton-host', 'aria-hidden': 'true' },\n})\nexport class KptSkeleton {\n readonly variant = input<KptSkeletonVariant>('rect');\n readonly width = input('100%');\n readonly height = input('1rem');\n readonly lines = input(3);\n\n protected readonly lineArray = computed(() => Array.from({ length: this.lines() }));\n}\n","import { InjectionToken, type Signal } from '@angular/core';\n\n/**\n * Kontrakt kontrolki dla `kpt-form-field`. Wypełnienie pola (`filled`) steruje uniesieniem\n * etykiety w wariantach Float Label (`over`/`in`/`on`).\n *\n * Kontrolki oparte na natywnym `input`/`textarea` nie muszą nic dostarczać — `kpt-form-field`\n * odczytuje ich `value` bezpośrednio z DOM. Kontrolki bez natywnego pola (np. `kpt-select`,\n * którego panel żyje w overlayu) muszą dostarczyć ten token, inaczej etykieta zostanie\n * na wartości zamiast unieść się nad nią.\n *\n * @example\n * providers: [{ provide: KPT_FORM_FIELD_CONTROL, useExisting: forwardRef(() => KptSelect) }]\n */\nexport interface KptFormFieldControl {\n /** Czy kontrolka ma wartość. Sygnał — `kpt-form-field` reaguje na zmiany bez zdarzeń DOM. */\n readonly filled: Signal<boolean>;\n}\n\n/** Token DI, przez który kontrolka zgłasza `kpt-form-field` swój stan wypełnienia. */\nexport const KPT_FORM_FIELD_CONTROL = new InjectionToken<KptFormFieldControl>('KPT_FORM_FIELD_CONTROL');\n","<div\n class=\"kpt-form-field\"\n [class]=\"'kpt-form-field--' + labelType()\"\n [class.kpt-form-field--float]=\"labelType() !== 'fixed'\"\n [class.kpt-form-field--invalid]=\"!!error()\"\n>\n <div class=\"kpt-form-field__box\" [class.is-filled]=\"filled()\">\n @if (label()) {\n <!-- Bez znaku nowej linii wokół `@if`: Angular zostawiłby tam węzeł tekstowy ze spacją,\n przez co gwiazdka odsuwałaby się inaczej niż w porcie React (JSX taki węzeł usuwa).\n Odstęp daje wyłącznie `margin-inline-start` na `.kpt-form-field__required`. -->\n <label class=\"kpt-form-field__label\" [attr.for]=\"controlId() || null\"\n >{{ label() }}@if (required()) {<span class=\"kpt-form-field__required\" aria-hidden=\"true\">*</span>}</label\n >\n }\n\n <div class=\"kpt-form-field__control\">\n <ng-content />\n </div>\n </div>\n\n @if (error()) {\n <p class=\"kpt-form-field__message kpt-form-field__message--error\" role=\"alert\">{{ error() }}</p>\n } @else if (hint()) {\n <p class=\"kpt-form-field__message kpt-form-field__message--hint\">{{ hint() }}</p>\n }\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { KPT_FORM_FIELD_CONTROL } from './form-field-control';\n\n/**\n * Wrapper pola formularza: etykieta, podpowiedź i komunikat błędu wokół dowolnej\n * kontrolki (np. `kpt-input`). Prezentacyjny — stan błędu przekazuje się przez `error`\n * (zwykle z pola Signal Forms). Wygląd sterowany tokenami `--kpt-form-field-*`.\n *\n * Etykieta ma 4 warianty (`labelType`): `fixed` (domyślny, nad kontrolką) oraz trzy warianty\n * unoszącej się etykiety (Float Label) z animowanym przejściem: `over` (nad obramowaniem),\n * `in` (u góry wewnątrz pola) i `on` (na obramowaniu, notch). Uniesienie następuje przy focusie\n * (CSS `:focus-within`) lub gdy pole jest wypełnione (wykrywane po zdarzeniach `input`/`change`\n * oraz wartości początkowej) — bez wymogu placeholdera na kontrolce. Kontrolki bez natywnego\n * `input`/`textarea` (np. `kpt-select`) zgłaszają wypełnienie tokenem `KPT_FORM_FIELD_CONTROL`.\n *\n * @example\n * <kpt-form-field label=\"E-mail\" [error]=\"emailError()\" hint=\"Firmowy adres\">\n * <kpt-input [formField]=\"f.email\" type=\"email\" />\n * </kpt-form-field>\n *\n * @example\n * <kpt-form-field label=\"E-mail\" labelType=\"over\">\n * <kpt-input />\n * </kpt-form-field>\n */\n@Component({\n selector: 'kpt-form-field',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './form-field.component.html',\n styleUrl: './form-field.component.scss',\n host: {\n class: 'kpt-form-field-host',\n '(input)': 'updateFilled()',\n '(change)': 'updateFilled()',\n },\n})\nexport class KptFormField {\n /** Tekst etykiety. */\n readonly label = input<string>('');\n /** Podpowiedź pod kontrolką (ukrywana, gdy jest błąd). */\n readonly hint = input<string>('');\n /** Komunikat błędu — gdy niepusty, pole jest oznaczone jako nieprawidłowe. */\n readonly error = input<string | null>(null);\n /** Oznacz pole jako wymagane (gwiazdka przy etykiecie). */\n readonly required = input(false, { transform: booleanAttribute });\n /** Id kontrolki dla powiązania `label[for]`. */\n readonly controlId = input<string>('');\n /**\n * Wariant etykiety: `fixed` (domyślnie, statyczna nad kontrolką) lub Float Label —\n * `over` (nad obramowaniem), `in` (u góry wewnątrz pola), `on` (na obramowaniu, notch).\n * Uniesienie następuje przy focusie lub wypełnieniu pola.\n */\n readonly labelType = input<'fixed' | 'over' | 'in' | 'on'>('fixed');\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Kontrolka bez natywnego `input`/`textarea` (np. `kpt-select`) zgłasza wypełnienie sama,\n * przez token `KPT_FORM_FIELD_CONTROL` — jej wartość nie da się odczytać z DOM.\n */\n private readonly control = contentChild(KPT_FORM_FIELD_CONTROL, { descendants: true });\n /** Wypełnienie odczytane z natywnej kontrolki (zdarzenia `input`/`change` + wartość początkowa). */\n private readonly nativeFilled = signal(false);\n\n /** Czy projektowana kontrolka ma wartość — steruje uniesieniem etykiety w wariantach float. */\n protected readonly filled = computed(() => this.control()?.filled() ?? this.nativeFilled());\n\n constructor() {\n // Wartość początkowa (np. pole prefill) — po pierwszym renderze projekcji.\n afterNextRender(() => this.updateFilled());\n }\n\n /** Odczytuje wartość projektowanego `input`/`textarea` i aktualizuje stan `filled`. */\n protected updateFilled(): void {\n const el = this.host.nativeElement.querySelector<HTMLInputElement | HTMLTextAreaElement>(\n '.kpt-form-field__control input, .kpt-form-field__control textarea',\n );\n this.nativeFilled.set(!!el && el.value !== '');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type {\n FormValueControl,\n ValidationError,\n WithOptionalFieldTree,\n} from '@angular/forms/signals';\n\nexport type KptInputType =\n | 'text'\n | 'email'\n | 'password'\n | 'number'\n | 'search'\n | 'tel'\n | 'url'\n | 'time';\n\nlet nextUniqueId = 0;\n\n/**\n * Pole tekstowe Koncept UI zintegrowane z Angular Signal Forms.\n * Implementuje `FormValueControl<string>` — wiąż je dyrektywą `FormField`:\n *\n * <kpt-input [formField]=\"loginForm.email\" type=\"email\" />\n *\n * Stan pola (disabled/readonly/required/invalid/errors/touched) wiąże automatycznie\n * dyrektywa `FormField`. Bez `ControlValueAccessor`. Wygląd: tokeny `--kpt-form-field-*`.\n */\n@Component({\n selector: 'kpt-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n host: {\n class: 'kpt-input-host',\n // id należy wyłącznie do wewnętrznego <input> (powiązanie label[for]); host go nie nosi\n '[attr.id]': 'null',\n },\n})\nexport class KptInput implements FormValueControl<string> {\n /** Wartość pola (wymagane przez kontrakt FormValueControl). */\n readonly value = model<string>('');\n\n // ── Stan wiązany automatycznie przez dyrektywę FormField ──\n readonly disabled = input<boolean>(false);\n readonly readonly = input<boolean>(false);\n readonly required = input<boolean>(false);\n readonly invalid = input<boolean>(false);\n readonly errors = input<readonly WithOptionalFieldTree<ValidationError>[]>([]);\n readonly touched = input<boolean>(false);\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /** Emitowane na `blur` — oznacza pole jako dotknięte. */\n readonly touch = output<void>();\n\n // ── Wejścia prezentacyjne ──\n readonly type = input<KptInputType>('text');\n readonly placeholder = input<string>('');\n readonly id = input<string>(`kpt-input-${++nextUniqueId}`);\n readonly ariaLabel = input<string | null>(null);\n /** Podpowiedź autouzupełniania dla przeglądarki i menedżera haseł (np. 'email', 'current-password'). */\n readonly autocomplete = input<string | null>(null);\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","<input\n class=\"kpt-input__field\"\n [id]=\"id()\"\n [type]=\"type()\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [attr.aria-required]=\"required() ? 'true' : null\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.autocomplete]=\"autocomplete()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n/>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\n\n/**\n * Pole wyboru (checkbox) zintegrowane z Signal Forms (`FormCheckboxControl`).\n * Wiąż dyrektywą `FormField`: `<kpt-checkbox [formField]=\"f.terms\" label=\"Akceptuję\" />`.\n */\n@Component({\n selector: 'kpt-checkbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <label class=\"kpt-checkbox\" [class.kpt-checkbox--disabled]=\"disabled()\">\n <input\n type=\"checkbox\"\n class=\"kpt-checkbox__input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (change)=\"checked.set($any($event.target).checked)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-checkbox__box\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 16 16\" class=\"kpt-checkbox__check\"><path d=\"M13 4.5 6.5 11 3 7.5\" /></svg>\n </span>\n @if (label()) {\n <span class=\"kpt-checkbox__label\">{{ label() }}</span>\n }\n <ng-content />\n </label>\n `,\n styleUrl: './checkbox.component.scss',\n host: { class: 'kpt-checkbox-host' },\n})\nexport class KptCheckbox implements FormCheckboxControl {\n /** Zaznaczenie (wymagane przez kontrakt FormCheckboxControl). */\n readonly checked = model(false);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Etykieta obok pola. */\n readonly label = input('');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormCheckboxControl } from '@angular/forms/signals';\n\n/**\n * Przełącznik (switch/toggle) zintegrowany z Signal Forms (`FormCheckboxControl`).\n * `<kpt-switch [formField]=\"f.notifications\" label=\"Powiadomienia\" />`\n *\n * Wariant z tekstem stanu: `onLabel`/`offLabel` — wyświetlany tekst zmienia się\n * przy przełączaniu (np. „Włączony”/„Wyłączony”).\n * `<kpt-switch [(checked)]=\"on\" onLabel=\"Włączony\" offLabel=\"Wyłączony\" />`\n */\n@Component({\n selector: 'kpt-switch',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <label class=\"kpt-switch\" [class.kpt-switch--disabled]=\"disabled()\">\n @if (label() && labelPosition() === 'start') {\n <span class=\"kpt-switch__label kpt-switch__label--start\">{{ label() }}</span>\n }\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"kpt-switch__input\"\n [checked]=\"checked()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (change)=\"checked.set($any($event.target).checked)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-switch__track\" aria-hidden=\"true\"><span class=\"kpt-switch__thumb\"></span></span>\n @if (label() && labelPosition() === 'end') {\n <span class=\"kpt-switch__label\">{{ label() }}</span>\n }\n @if (hasStateLabels()) {\n <span class=\"kpt-switch__state\" [class.kpt-switch__state--on]=\"checked()\">{{ stateLabel() }}</span>\n }\n <ng-content />\n </label>\n `,\n styleUrl: './switch.component.scss',\n host: { class: 'kpt-switch-host' },\n})\nexport class KptSwitch implements FormCheckboxControl {\n readonly checked = model(false);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly label = input('');\n /** Pozycja etykiety `label` względem przełącznika: 'end' (prawo, domyślnie) lub 'start' (lewo). */\n readonly labelPosition = input<'start' | 'end'>('end');\n /** Tekst stanu włączonego (wyświetlany, gdy `checked`). */\n readonly onLabel = input('');\n /** Tekst stanu wyłączonego (wyświetlany, gdy nie `checked`). */\n readonly offLabel = input('');\n\n protected readonly hasStateLabels = computed(() => !!(this.onLabel() || this.offLabel()));\n /** Tekst zależny od stanu przełącznika. */\n protected readonly stateLabel = computed(() => (this.checked() ? this.onLabel() : this.offLabel()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\nimport { KptSwitch } from '../switch/switch.component';\n\n/**\n * Grupa przełączników. Domyślnie pojedynczy wybór (wzajemnie wykluczające się) —\n * włączenie jednego wyłącza pozostałe, a wartość to `value` wybranej opcji (lub `null`).\n * Z `multiple` przechodzi w tryb wielokrotny — wartość to tablica `T[]` zaznaczonych opcji.\n * Zintegrowana z Signal Forms (`FormValueControl<T | T[] | null>`).\n *\n * @example\n * <kpt-switch-group [(value)]=\"plan\" [options]=\"plans\" />\n * <kpt-switch-group multiple [(value)]=\"tags\" [options]=\"tagOptions\" />\n */\n@Component({\n selector: 'kpt-switch-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptSwitch],\n template: `\n <div\n class=\"kpt-switch-group\"\n [class.kpt-switch-group--horizontal]=\"orientation() === 'horizontal'\"\n role=\"group\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n >\n @for (opt of options(); track opt.value) {\n <kpt-switch\n class=\"kpt-switch-group__item\"\n [checked]=\"isChecked(opt.value)\"\n [label]=\"opt.label\"\n [disabled]=\"disabled() || opt.disabled\"\n (checkedChange)=\"onToggle(opt, $event)\"\n (touch)=\"touch.emit()\"\n />\n }\n </div>\n `,\n styleUrl: './switch-group.component.scss',\n host: { class: 'kpt-switch-group-host' },\n})\nexport class KptSwitchGroup<T = unknown> implements FormValueControl<unknown> {\n readonly value = model<unknown>(null);\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Układ: 'vertical' (domyślnie) lub 'horizontal'. */\n readonly orientation = input<'vertical' | 'horizontal'>('vertical');\n /** Tryb wielokrotnego wyboru — wartość to tablica `T[]` zaznaczonych opcji. Domyślnie false (pojedynczy wybór). */\n readonly multiple = input(false, { transform: booleanAttribute });\n /**\n * Czy ponowne kliknięcie aktywnej opcji ją odznacza (value = null). Dotyczy tylko trybu pojedynczego —\n * w trybie `multiple` odznaczanie jest zawsze dozwolone. Domyślnie tak.\n */\n readonly allowDeselect = input(true, { transform: booleanAttribute });\n\n /** Aktualna wartość jako tablica (tryb multiple) — normalizuje `null`/pojedynczą wartość. */\n private readonly selectedValues = computed<T[]>(() => {\n const v = this.value();\n if (Array.isArray(v)) return v as T[];\n return v == null ? [] : [v as T];\n });\n\n protected isChecked(optValue: T): boolean {\n if (this.multiple()) return this.selectedValues().includes(optValue);\n return optValue === this.value();\n }\n\n protected onToggle(opt: KptOption<T>, checked: boolean): void {\n if (this.multiple()) {\n const current = this.selectedValues();\n if (checked) {\n if (!current.includes(opt.value)) this.value.set([...current, opt.value]);\n } else {\n this.value.set(current.filter((v) => v !== opt.value));\n }\n return;\n }\n\n if (checked) {\n this.value.set(opt.value);\n return;\n }\n // Wyłączono aktywną opcję.\n if (this.allowDeselect()) {\n this.value.set(null);\n } else {\n // Odznaczanie niedozwolone — przywróć zaznaczenie (wymusza ponowne wypchnięcie [checked]).\n const current = opt.value;\n this.value.set(null);\n this.value.set(current);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport type { KptOption } from '../shared/types';\n\nlet nextGroupId = 0;\n\n/**\n * Grupa przycisków opcji (radio) zintegrowana z Signal Forms (`FormValueControl<T>`).\n * Opcje przez `options`. `<kpt-radio-group [formField]=\"f.plan\" [options]=\"plans\" />`\n */\n@Component({\n selector: 'kpt-radio-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-radio-group\" role=\"radiogroup\" [attr.aria-invalid]=\"showInvalid() ? 'true' : null\">\n @for (opt of options(); track opt.value) {\n <label class=\"kpt-radio\" [class.kpt-radio--disabled]=\"disabled() || opt.disabled\">\n <input\n type=\"radio\"\n class=\"kpt-radio__input\"\n [name]=\"name()\"\n [checked]=\"opt.value === value()\"\n [disabled]=\"disabled() || opt.disabled\"\n (change)=\"value.set(opt.value)\"\n (blur)=\"touch.emit()\"\n />\n <span class=\"kpt-radio__dot\" aria-hidden=\"true\"></span>\n <span class=\"kpt-radio__label\">{{ opt.label }}</span>\n </label>\n }\n </div>\n `,\n styleUrl: './radio-group.component.scss',\n host: { class: 'kpt-radio-group-host' },\n})\nexport class KptRadioGroup<T = unknown> implements FormValueControl<T> {\n readonly value = model<T>(undefined as T);\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly name = input<string>(`kpt-radio-${++nextGroupId}`);\n}\n","<div\n class=\"kpt-select\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"combobox\"\n tabindex=\"0\"\n [class.kpt-select--open]=\"open()\"\n [class.kpt-select--disabled]=\"disabled()\"\n [class.kpt-select--invalid]=\"showInvalid()\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-disabled]=\"disabled() || null\"\n (click)=\"toggleOpen()\"\n (keydown)=\"onTriggerKeydown($event)\"\n (blur)=\"touch.emit()\"\n>\n <div class=\"kpt-select__value\">\n @if (multiple() && selectedOptions().length) {\n @for (opt of selectedOptions(); track opt.value) {\n <span class=\"kpt-select__chip\">\n {{ opt.label }}\n <button type=\"button\" class=\"kpt-select__chip-remove\" (click)=\"removeChip(opt, $event)\" [attr.aria-label]=\"i18n.t('select.removeChip')\">\n <kpt-icon name=\"x\" />\n </button>\n </span>\n }\n } @else if (!multiple() && filled()) {\n <span class=\"kpt-select__single\">{{ singleLabel() }}</span>\n } @else {\n <span class=\"kpt-select__placeholder\">{{ placeholder() }}</span>\n }\n </div>\n <kpt-icon class=\"kpt-select__chevron\" name=\"chevron-down\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayWidth]=\"trigger.elementRef.nativeElement.offsetWidth\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-select__panel\" (keydown)=\"onPanelKeydown($event)\">\n @if (filter()) {\n <div class=\"kpt-select__search\">\n <kpt-icon name=\"search\" />\n <input\n type=\"text\"\n class=\"kpt-select__search-input\"\n [value]=\"filterText()\"\n (input)=\"onFilterInput($event)\"\n [attr.placeholder]=\"i18n.t('select.search')\"\n />\n </div>\n }\n <ul class=\"kpt-select__list\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple()\">\n @for (opt of filteredOptions(); track opt.value; let i = $index) {\n <li\n class=\"kpt-select__option\"\n role=\"option\"\n [attr.aria-selected]=\"isSelected(opt)\"\n [class.kpt-select__option--selected]=\"isSelected(opt)\"\n [class.kpt-select__option--active]=\"i === activeIndex()\"\n [class.kpt-select__option--disabled]=\"opt.disabled\"\n (click)=\"pick(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >\n @if (multiple()) {\n <span class=\"kpt-select__check\" [class.is-on]=\"isSelected(opt)\"><kpt-icon name=\"check\" /></span>\n }\n <span class=\"kpt-select__option-label\">{{ opt.label }}</span>\n @if (!multiple() && isSelected(opt)) {\n <kpt-icon class=\"kpt-select__option-tick\" name=\"check\" />\n }\n </li>\n } @empty {\n <li class=\"kpt-select__empty\">{{ i18n.t('select.noResults') }}</li>\n }\n </ul>\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n forwardRef,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KPT_FORM_FIELD_CONTROL, type KptFormFieldControl } from '../form-field/form-field-control';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Lista wyboru (select) na własnym panelu (CDK Overlay), zintegrowana z Signal Forms.\n * Warianty: pojedynczy, z wyszukiwarką (`filter`) i wielokrotny (`multiple`, chipy).\n *\n * @example\n * <kpt-select [formField]=\"f.role\" [options]=\"roles\" placeholder=\"Wybierz…\" />\n * <kpt-select [formField]=\"f.city\" [options]=\"cities\" filter placeholder=\"Szukaj miasta…\" />\n * <kpt-select [formField]=\"f.tags\" [options]=\"tags\" multiple filter placeholder=\"Tagi…\" />\n */\n@Component({\n selector: 'kpt-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n templateUrl: './select.component.html',\n styleUrl: './select.component.scss',\n host: { class: 'kpt-select-host' },\n providers: [{ provide: KPT_FORM_FIELD_CONTROL, useExisting: forwardRef(() => KptSelect) }],\n})\nexport class KptSelect<T = unknown> implements FormValueControl<unknown>, KptFormFieldControl {\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly placeholder = input('');\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly filter = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /** Wartość: pojedyncza (T) lub tablica (T[]) w trybie multiple. */\n readonly value = model<unknown>(null);\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n /**\n * Stan panelu (dwukierunkowy). Pozwala otworzyć listę z zewnątrz i — co ważniejsze — wiedzieć,\n * kiedy user skończył wybierać. `touch` się do tego nie nadaje: leci też z blur triggera.\n */\n readonly open = model(false);\n protected readonly filterText = signal('');\n protected readonly activeIndex = signal(-1);\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // Panel może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —\n // filtr i aktywną pozycję resetujemy więc przy każdym otwarciu, nie w `toggleOpen()`.\n effect(() => {\n const isOpen = this.open();\n untracked(() => {\n if (!isOpen) return;\n this.filterText.set('');\n this.activeIndex.set(-1);\n });\n });\n }\n\n private readonly selectedValues = computed<T[]>(() => {\n const v = this.value();\n if (this.multiple()) return Array.isArray(v) ? (v as T[]) : [];\n return v == null ? [] : [v as T];\n });\n\n protected readonly selectedOptions = computed(() =>\n this.options().filter((o) => this.selectedValues().includes(o.value)),\n );\n\n protected readonly filteredOptions = computed(() => {\n const q = this.filterText().trim().toLowerCase();\n const opts = this.options();\n return q ? opts.filter((o) => o.label.toLowerCase().includes(q)) : opts;\n });\n\n protected readonly singleLabel = computed(() => {\n const sel = this.selectedOptions();\n return this.multiple() ? '' : (sel[0]?.label ?? '');\n });\n\n /**\n * Czy wybrano jakąkolwiek opcję. Publiczne — `kpt-form-field` czyta to przez\n * `KPT_FORM_FIELD_CONTROL`, żeby unieść etykietę Float Label nad wybraną wartość.\n */\n readonly filled = computed(() => this.selectedOptions().length > 0);\n\n protected isSelected(opt: KptOption<T>): boolean {\n return this.selectedValues().includes(opt.value);\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n this.open.update((o) => !o);\n }\n\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n protected pick(opt: KptOption<T>): void {\n if (opt.disabled) return;\n if (this.multiple()) {\n const cur = this.selectedValues();\n this.value.set(this.isSelected(opt) ? cur.filter((v) => v !== opt.value) : [...cur, opt.value]);\n } else {\n this.value.set(opt.value);\n this.close();\n }\n }\n\n protected removeChip(opt: KptOption<T>, event: Event): void {\n event.stopPropagation();\n this.value.set(this.selectedValues().filter((v) => v !== opt.value));\n }\n\n protected onFilterInput(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n this.activeIndex.set(-1);\n }\n\n // ── Klawiatura ──\n protected onTriggerKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (!this.open()) this.toggleOpen();\n } else if (event.key === 'Escape') {\n this.close();\n }\n }\n\n protected onPanelKeydown(event: KeyboardEvent): void {\n const opts = this.filteredOptions();\n if (event.key === 'Escape') {\n event.preventDefault();\n this.close();\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.activeIndex.set(Math.min(this.activeIndex() + 1, opts.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.activeIndex.set(Math.max(this.activeIndex() - 1, 0));\n } else if (event.key === 'Enter') {\n event.preventDefault();\n const opt = opts[this.activeIndex()];\n if (opt) this.pick(opt);\n }\n }\n}\n","/*\n * Re-eksport pomocników `Intl` z `@konce-pt/i18n` — nazwy dni i miesięcy\n * wyliczane z bieżącego locale. Ścieżka zachowana dla kalendarzy\n * (`kpt-datepicker`, `kpt-date-range`), które importują ją względnie.\n */\n\nexport { monthNames, weekdayNames } from '@konce-pt/i18n';\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n input,\n model,\n numberAttribute,\n signal,\n} from '@angular/core';\nimport {\n from12h,\n handAngle,\n handIsInner,\n hourFromAngle,\n hourMarks,\n minuteFromAngle,\n minuteMarks,\n pad,\n parseTime,\n type KptClockMark,\n} from '@konce-pt/datetime';\n\n/**\n * Tarcza zegara (wybór godziny) — dwa etapy: godziny → minuty, klik lub przeciąganie.\n * Format 12/24h (`hourFormat`); w 24h dodatkowy wewnętrzny pierścień 13–00, w 12h AM/PM.\n * Wartość `HH:mm` (zawsze 24h). Używana przez `kpt-datepicker` i `kpt-date-range`.\n *\n * @example\n * <kpt-clock [(value)]=\"time\" [hourFormat]=\"12\" [minuteStep]=\"5\" />\n */\n@Component({\n selector: 'kpt-clock',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-clock\">\n <div class=\"kpt-clock__time\">\n <button type=\"button\" class=\"kpt-clock__seg\" [class.is-active]=\"clockPhase() === 'hours'\" (click)=\"setPhase('hours')\">{{ hourLabel() }}</button>\n <span class=\"kpt-clock__colon\">:</span>\n <button type=\"button\" class=\"kpt-clock__seg\" [class.is-active]=\"clockPhase() === 'minutes'\" (click)=\"setPhase('minutes')\">{{ minuteLabel() }}</button>\n @if (hourFormat() === 12) {\n <div class=\"kpt-clock__ampm\">\n <button type=\"button\" [class.is-active]=\"ampm() === 'AM'\" (click)=\"setAmpm('AM')\">AM</button>\n <button type=\"button\" [class.is-active]=\"ampm() === 'PM'\" (click)=\"setAmpm('PM')\">PM</button>\n </div>\n }\n </div>\n <div\n class=\"kpt-clock__face\"\n #face\n (pointerdown)=\"onDialPointer($event, face)\"\n (pointermove)=\"onDialPointer($event, face)\"\n (pointerup)=\"onDialUp()\"\n >\n <span class=\"kpt-clock__center\"></span>\n <span\n class=\"kpt-clock__hand\"\n [class.kpt-clock__hand--inner]=\"handInner()\"\n [style.transform]=\"'rotate(' + handAngle() + 'deg)'\"\n ></span>\n @if (clockPhase() === 'hours') {\n @for (mark of hourMarks(); track mark.value) {\n <button\n type=\"button\"\n class=\"kpt-clock__num\"\n [class.kpt-clock__num--inner]=\"mark.inner\"\n [class.kpt-clock__num--selected]=\"mark.selected\"\n [style.left.%]=\"mark.x\"\n [style.top.%]=\"mark.y\"\n (click)=\"pickHour(mark)\"\n >{{ mark.label }}</button>\n }\n } @else {\n @for (mark of minuteMarks(); track mark.value) {\n <button\n type=\"button\"\n class=\"kpt-clock__num\"\n [class.kpt-clock__num--selected]=\"mark.selected\"\n [style.left.%]=\"mark.x\"\n [style.top.%]=\"mark.y\"\n (click)=\"pickMinute(mark)\"\n >{{ mark.label }}</button>\n }\n }\n </div>\n </div>\n `,\n styleUrl: './clock.component.scss',\n host: { class: 'kpt-clock-host' },\n})\nexport class KptClock {\n readonly value = model<string>('');\n readonly hourFormat = input(24, { transform: numberAttribute });\n readonly minuteStep = input(1, { transform: numberAttribute });\n\n protected readonly hour = signal(0);\n protected readonly minute = signal(0);\n protected readonly clockPhase = signal<'hours' | 'minutes'>('hours');\n\n constructor() {\n // Synchronizacja wartości zewnętrznej → stan tarczy (zapis idempotentny, bez pętli).\n effect(() => {\n const t = parseTime(this.value());\n this.hour.set(t?.h ?? 0);\n this.minute.set(t?.m ?? 0);\n });\n }\n\n private emit(): void {\n this.value.set(`${pad(this.hour())}:${pad(this.minute())}`);\n }\n\n protected readonly ampm = computed<'AM' | 'PM'>(() => (this.hour() < 12 ? 'AM' : 'PM'));\n protected readonly hour12 = computed(() => {\n const h = this.hour() % 12;\n return h === 0 ? 12 : h;\n });\n protected readonly hourLabel = computed(() =>\n this.hourFormat() === 12 ? String(this.hour12()) : pad(this.hour()),\n );\n protected readonly minuteLabel = computed(() => pad(this.minute()));\n\n /** Znaczniki tarczy — jeden pierścień w 12h, dwa w 24h (patrz `@konce-pt/datetime`). */\n protected readonly hourMarks = computed<KptClockMark[]>(() =>\n hourMarks(this.hour(), this.hourFormat() === 12 ? 12 : 24),\n );\n protected readonly minuteMarks = computed<KptClockMark[]>(() => minuteMarks(this.minute()));\n\n protected readonly handAngle = computed(() => handAngle(this.hour(), this.minute(), this.clockPhase()));\n protected readonly handInner = computed(() =>\n handIsInner(this.hour(), this.hourFormat() === 12 ? 12 : 24, this.clockPhase()),\n );\n\n protected setPhase(phase: 'hours' | 'minutes'): void {\n this.clockPhase.set(phase);\n }\n protected setAmpm(target: 'AM' | 'PM'): void {\n this.hour.set(from12h(this.hour12(), target));\n this.emit();\n }\n protected pickHour(mark: KptClockMark): void {\n this.hour.set(mark.value);\n this.clockPhase.set('minutes');\n this.emit();\n }\n protected pickMinute(mark: KptClockMark): void {\n this.minute.set(mark.value);\n this.emit();\n }\n\n protected onDialPointer(event: PointerEvent, face: HTMLElement): void {\n if (event.type === 'pointerdown') face.setPointerCapture(event.pointerId);\n else if (!(event.buttons & 1)) return;\n const rect = face.getBoundingClientRect();\n const dx = event.clientX - (rect.left + rect.width / 2);\n const dy = event.clientY - (rect.top + rect.height / 2);\n let deg = (Math.atan2(dx, -dy) * 180) / Math.PI;\n if (deg < 0) deg += 360;\n if (this.clockPhase() === 'hours') {\n const radiusRatio = Math.hypot(dx, dy) / (rect.width / 2);\n this.hour.set(hourFromAngle(deg, radiusRatio, this.hourFormat() === 12 ? 12 : 24, this.hour()));\n } else {\n this.minute.set(minuteFromAngle(deg, this.minuteStep()));\n }\n this.emit();\n }\n\n protected onDialUp(): void {\n if (this.clockPhase() === 'hours') this.clockPhase.set('minutes');\n }\n}\n","<div\n class=\"kpt-datepicker\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-datepicker--open]=\"open()\"\n [class.kpt-datepicker--disabled]=\"disabled()\"\n [class.kpt-datepicker--invalid]=\"showInvalid()\"\n [attr.aria-disabled]=\"disabled() || null\"\n [attr.aria-label]=\"ariaLabel()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-datepicker__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-datepicker__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-datepicker__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-datepicker__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon\n class=\"kpt-datepicker__icon\"\n [name]=\"selectionMode() === 'time' ? 'clock' : 'calendar'\"\n />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div class=\"kpt-calendar\" [class.kpt-calendar--clock]=\"showClock()\" (keydown.escape)=\"close()\">\n @if (showClock()) {\n @if (selectionMode() === 'datetime') {\n <div class=\"kpt-calendar__header\">\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"backToCalendar()\" [attr.aria-label]=\"i18n.t('datepicker.calendar')\"><kpt-icon name=\"chevron-left\" /></button>\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.time') }}</span>\n </div>\n }\n <kpt-clock [(value)]=\"timeStr\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <!-- Nagłówek wspólny dla czterech poziomów: różni je tylko treść tytułu. -->\n <div class=\"kpt-calendar__header\">\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageBack()\" (click)=\"pagePrev()\" [attr.aria-label]=\"navPrevLabel()\"><kpt-icon name=\"chevron-left\" /></button>\n }\n <span class=\"kpt-calendar__titles\">\n @switch (panelView()) {\n @case ('day') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('month')\" [attr.aria-label]=\"i18n.t('datepicker.chooseMonth')\">{{ monthName() }}</button>\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n @case ('month') {\n @if (selectionMode() === 'month') {\n <span class=\"kpt-calendar__title\">{{ i18n.t('datepicker.month') }}</span>\n } @else {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('year')\" [attr.aria-label]=\"i18n.t('datepicker.chooseYear')\">{{ viewYear() }}</button>\n }\n }\n @case ('year') {\n <button type=\"button\" class=\"kpt-calendar__title-btn\" (click)=\"goTo('decade')\" [attr.aria-label]=\"i18n.t('datepicker.chooseDecade')\">{{ yearRangeLabel() }}</button>\n }\n @case ('decade') {\n <span class=\"kpt-calendar__title\">{{ decadeRangeLabel() }}</span>\n }\n }\n </span>\n @if (hasNav()) {\n <button type=\"button\" class=\"kpt-calendar__nav\" [disabled]=\"!canPageForward()\" (click)=\"pageNext()\" [attr.aria-label]=\"navNextLabel()\"><kpt-icon name=\"chevron-right\" /></button>\n }\n </div>\n\n @switch (panelView()) {\n @case ('day') {\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of weeks(); track $index) {\n @for (cell of week; track cell.iso) {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--selected]=\"cell.selected\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n </div>\n }\n @default {\n <div class=\"kpt-calendar__grid kpt-calendar__grid--cells\" [class.kpt-calendar__grid--decades]=\"panelView() === 'decade'\">\n @for (cell of levelCells(); track cell.label) {\n <button\n type=\"button\"\n class=\"kpt-calendar__cell\"\n [class.kpt-calendar__cell--selected]=\"cell.selected\"\n [class.kpt-calendar__cell--current]=\"cell.current\"\n [disabled]=\"cell.disabled\"\n [attr.aria-pressed]=\"cell.selected\"\n (click)=\"selectCell(cell)\"\n >{{ cell.label }}</button>\n }\n </div>\n }\n }\n\n @if (selectionMode() === 'datetime') {\n <button type=\"button\" class=\"kpt-calendar__timebar\" (click)=\"openClock()\">\n <kpt-icon name=\"clock\" />\n <span>{{ timeBarLabel() }}</span>\n </button>\n }\n }\n @if (hasFooter()) {\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport {\n KPT_CALENDAR_LEVELS,\n buildDayGrid,\n buildDecadeCells,\n buildMonthCells,\n buildYearCells,\n canPageBack,\n canPageForward,\n centuryStart,\n commitLevelFor,\n decadeStart,\n formatDate,\n formatTime,\n initialPage,\n pad,\n pageBy,\n parseDateTime,\n parseTime,\n resolveStartView,\n selectedYearMonth,\n toIso,\n type KptCalendarPage,\n type KptCalendarView,\n type KptDateSelectionMode,\n type KptDayCell,\n type KptGridCell,\n} from '@konce-pt/datetime';\nimport { KptButton } from '../button/button.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { monthNames, weekdayNames } from '../i18n/intl';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptClock } from './clock.component';\n\n/**\n * Granulacja wyboru i poziom panelu — nazwy zostają w publicznym API biblioteki, a definicje\n * mieszkają w `@konce-pt/datetime`, wspólnym rdzeniu obu portów.\n */\nexport type KptDatepickerMode = KptDateSelectionMode;\nexport type KptDatepickerView = KptCalendarView;\n\n/**\n * Wybór daty/godziny z własnym kalendarzem (CDK Overlay), Signal Forms.\n * Granulacja przez `selectionMode`: data, miesiąc+rok, rok, miesiąc, data+godzina, sama godzina.\n * Panel jest stosem widoków dekady → lata → miesiące → dni: klik w komórkę schodzi poziom niżej,\n * klik w tytuł wchodzi poziom wyżej. Poziom startowy ustawia `startView` (data urodzenia:\n * `startView=\"decade\"`); domyślnie startuje na poziomie, na którym tryb zatwierdza wartość.\n * Godzina na tarczy zegara (dwa etapy: godziny → minuty), format 12/24h przez `hourFormat`.\n * Format wartości zależy od trybu: 'RRRR-MM-DD' / 'RRRR-MM' / 'RRRR' / 'MM'\n * / 'RRRR-MM-DDTHH:mm' (datetime) / 'HH:mm' (time). Czas przechowywany zawsze 24h.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-datepicker [formField]=\"f.birthDate\" startView=\"decade\" minDate=\"1900-01-01\" />\n * <kpt-datepicker selectionMode=\"datetime\" [hourFormat]=\"12\" [(value)]=\"meetingAt\" />\n * <kpt-datepicker selectionMode=\"time\" [(value)]=\"alarm\" />\n */\n@Component({\n selector: 'kpt-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n host: { class: 'kpt-datepicker-host' },\n})\nexport class KptDatepicker implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n readonly placeholder = input('');\n /** Nazwa dostępna, gdy pola nie opisuje `<label for>` (np. dwa pola w jednym wierszu). */\n readonly ariaLabel = input<string | null>(null);\n readonly displayFormat = input<'pl' | 'iso'>('pl');\n /** Granulacja wyboru. */\n readonly selectionMode = input<KptDatepickerMode>('date');\n /**\n * Poziom, od którego otwiera się panel. `null` = poziom zatwierdzania danego trybu\n * (dni dla 'date'). Przycięcie do zakresu trybu robi `resolveStartView` z `@konce-pt/datetime`:\n * `startView=\"day\"` w trybie 'year' jest podnoszony do 'year', a tryb 'month' zostaje na swoim\n * poziomie, bo nie ma po czym nawigować.\n */\n readonly startView = input<KptDatepickerView | null>(null);\n /** Prezentacja miesiąca w trybie 'month': słownie ('long') lub liczbą ('number'). */\n readonly monthDisplay = input<'long' | 'number'>('long');\n /** Format godziny: 24 lub 12 (z AM/PM). */\n readonly hourFormat = input(24, { transform: numberAttribute });\n /** Krok minut (snap na tarczy). */\n readonly minuteStep = input(1, { transform: numberAttribute });\n readonly minDate = input<string | null>(null);\n readonly maxDate = input<string | null>(null);\n\n protected readonly effectivePlaceholder = computed(() => {\n if (this.placeholder()) return this.placeholder();\n const iso = this.displayFormat() === 'iso';\n const time = this.hourFormat() === 12 ? '--:-- --' : '--:--';\n switch (this.selectionMode()) {\n case 'monthYear': return iso ? 'RRRR-MM' : 'MM.RRRR';\n case 'year': return 'RRRR';\n case 'month': return this.monthDisplay() === 'number' ? 'MM' : this.i18n.t('datepicker.month');\n case 'time': return time;\n case 'datetime': return `${iso ? 'RRRR-MM-DD' : 'DD.MM.RRRR'} ${time}`;\n default: return iso ? 'RRRR-MM-DD' : 'DD.MM.RRRR';\n }\n });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly weekdays = computed(() => weekdayNames(this.i18n.locale()));\n private readonly months = computed(() => monthNames(this.i18n.locale()));\n /**\n * Stan kalendarza (dwukierunkowy). Pozwala otworzyć go z zewnątrz i — co ważniejsze — wiedzieć,\n * kiedy user skończył wybierać. `touch` się do tego nie nadaje: leci też z blur triggera.\n */\n readonly open = model(false);\n private readonly today = new Date();\n private readonly view = signal<KptCalendarPage>({ y: this.today.getFullYear(), m: this.today.getMonth() });\n /** Aktualny poziom stosu widoków panelu. */\n protected readonly panelView = signal<KptDatepickerView>('day');\n\n /** Poziom, na którym klik w komórkę zatwierdza wartość zamiast schodzić niżej. */\n protected readonly commitLevel = computed<KptDatepickerView>(() => commitLevelFor(this.selectionMode()));\n\n // ── Stan czasu (bufor 'HH:mm', 24h) ──\n protected readonly timeStr = signal('');\n protected readonly dtView = signal<'calendar' | 'clock'>('calendar');\n private readonly pendingDate = signal('');\n /** Tarcza zamiast siatek: tryb 'time' zawsze, 'datetime' po wejściu w pasek czasu. */\n protected readonly showClock = computed(\n () => this.selectionMode() === 'time' || (this.selectionMode() === 'datetime' && this.dtView() === 'clock'),\n );\n protected readonly hasFooter = computed(\n () => this.selectionMode() === 'time' || this.selectionMode() === 'datetime',\n );\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // Kalendarz może zostać otwarty także z zewnątrz (`[open]`), nie tylko klikiem w trigger —\n // widok i bufor czasu ustawiamy więc przy każdym otwarciu, nie w `toggleOpen()`.\n effect(() => {\n const isOpen = this.open();\n untracked(() => {\n if (!isOpen) return;\n this.view.set(initialPage(this.value(), this.selectionMode(), this.today));\n this.panelView.set(resolveStartView(this.selectionMode(), this.startView()));\n this.syncTimeFromValue();\n this.dtView.set(this.selectionMode() === 'time' ? 'clock' : 'calendar');\n });\n });\n }\n\n protected readonly viewYear = computed(() => this.view().y);\n protected readonly monthName = computed(() => this.months()[this.view().m]);\n protected readonly yearRangeLabel = computed(\n () => `${decadeStart(this.view().y)} – ${decadeStart(this.view().y) + 9}`,\n );\n protected readonly decadeRangeLabel = computed(\n () => `${centuryStart(this.view().y)} – ${centuryStart(this.view().y) + 119}`,\n );\n\n /** Tryb 'month' nie ma po czym nawigować — siatka miesięcy jest kompletna. */\n protected readonly hasNav = computed(() => this.selectionMode() !== 'month');\n protected readonly navPrevLabel = computed(() => {\n switch (this.panelView()) {\n case 'month': return this.i18n.t('datepicker.prevYear');\n case 'year': return this.i18n.t('datepicker.prevYears');\n case 'decade': return this.i18n.t('datepicker.prevDecades');\n default: return this.i18n.t('datepicker.prevMonth');\n }\n });\n protected readonly navNextLabel = computed(() => {\n switch (this.panelView()) {\n case 'month': return this.i18n.t('datepicker.nextYear');\n case 'year': return this.i18n.t('datepicker.nextYears');\n case 'decade': return this.i18n.t('datepicker.nextDecades');\n default: return this.i18n.t('datepicker.nextMonth');\n }\n });\n\n /** Strzałka gaśnie, gdy cała sąsiednia strona wypada poza zakres (logika w `@konce-pt/datetime`). */\n protected readonly canPageBack = computed(() => canPageBack(this.view(), this.panelView(), this.minDate()));\n protected readonly canPageForward = computed(() =>\n canPageForward(this.view(), this.panelView(), this.maxDate()),\n );\n\n /** Etykieta czasu na pasku trybu datetime (uwzględnia AM/PM). */\n protected readonly timeBarLabel = computed(() => {\n const t = parseTime(this.timeStr());\n return formatTime(t?.h ?? 0, t?.m ?? 0, this.hourFormat() === 12 ? 12 : 24);\n });\n\n /**\n * Tekst w triggerze. Każdy tryb ma własny format wartości, więc `display` tylko rozdziela\n * robotę — formatowanie siedzi w metodach `display*` niżej. Wartość niepasująca do formatu\n * trybu daje pusty string (trigger nie pokazuje śmieci, np. po ręcznej podmianie modelu).\n */\n protected readonly display = computed(() => {\n const v = this.value();\n if (!v) return '';\n const iso = this.displayFormat() === 'iso';\n switch (this.selectionMode()) {\n case 'monthYear':\n return this.displayMonthYear(v, iso);\n case 'year':\n return /^\\d{4}$/.test(v) ? v : '';\n case 'month':\n return this.displayMonth(v);\n case 'time':\n return this.displayTime(v);\n case 'datetime':\n return this.displayDateTime(v, iso);\n default:\n return this.displayDate(v, iso);\n }\n });\n\n private displayMonthYear(v: string, iso: boolean): string {\n const m = /^(\\d{4})-(\\d{2})$/.exec(v);\n if (!m) return '';\n return iso ? v : `${m[2]}.${m[1]}`;\n }\n private displayMonth(v: string): string {\n const m = /^(\\d{2})$/.exec(v);\n if (!m) return '';\n return this.monthDisplay() === 'number' ? m[1] : (this.months()[+m[1] - 1] ?? '');\n }\n private displayTime(v: string): string {\n const t = parseTime(v);\n return t ? formatTime(t.h, t.m, this.hourFormat() === 12 ? 12 : 24) : '';\n }\n private displayDateTime(v: string, iso: boolean): string {\n const dt = parseDateTime(v);\n if (!dt) return '';\n const sep = iso ? 'T' : ' ';\n return `${formatDate(dt.date, iso ? 'iso' : 'pl')}${sep}${formatTime(dt.h, dt.m, this.hourFormat() === 12 ? 12 : 24)}`;\n }\n private displayDate(v: string, iso: boolean): string {\n return formatDate(v, iso ? 'iso' : 'pl');\n }\n\n // ── Siatka dni (tryby 'date' / 'datetime') ──\n private readonly selectedDateIso = computed(() =>\n this.selectionMode() === 'datetime' ? this.pendingDate() : this.value(),\n );\n protected readonly weeks = computed<KptDayCell[][]>(() =>\n buildDayGrid({\n page: this.view(),\n selectedIso: this.selectedDateIso(),\n todayIso: toIso(this.today),\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n }),\n );\n\n /** Rok/miesiąc bieżącej wartości — zaznaczenie w siatkach wyższych poziomów. */\n private readonly selectedYM = computed(() =>\n selectedYearMonth(this.selectedDateIso(), this.selectionMode()),\n );\n\n // ── Siatki poziomów (miesiące, lata, dekady) ──\n protected readonly monthCells = computed<KptGridCell[]>(() =>\n buildMonthCells({\n year: this.view().y,\n monthNames: this.months(),\n selected: this.selectedYM(),\n today: this.today,\n monthOnly: this.selectionMode() === 'month',\n numeric: this.monthDisplay() === 'number',\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n }),\n );\n protected readonly yearCells = computed<KptGridCell[]>(() =>\n buildYearCells({\n year: this.view().y,\n selected: this.selectedYM(),\n today: this.today,\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n }),\n );\n protected readonly decadeCells = computed<KptGridCell[]>(() =>\n buildDecadeCells({\n year: this.view().y,\n selected: this.selectedYM(),\n today: this.today,\n minDate: this.minDate(),\n maxDate: this.maxDate(),\n }),\n );\n\n /** Komórki bieżącego poziomu — siatka miesięcy/lat/dekad ma jeden wspólny markup. */\n protected readonly levelCells = computed<KptGridCell[]>(() => {\n switch (this.panelView()) {\n case 'year':\n return this.yearCells();\n case 'decade':\n return this.decadeCells();\n default:\n return this.monthCells();\n }\n });\n\n private syncTimeFromValue(): void {\n const mode = this.selectionMode();\n if (mode === 'time') {\n const t = parseTime(this.value());\n this.timeStr.set(t ? `${pad(t.h)}:${pad(t.m)}` : '00:00');\n } else if (mode === 'datetime') {\n const dt = parseDateTime(this.value());\n this.timeStr.set(dt ? `${pad(dt.h)}:${pad(dt.m)}` : '00:00');\n this.pendingDate.set(dt?.date ?? '');\n }\n }\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n this.open.update((o) => !o);\n }\n\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n // ── Wybór data/miesiąc/rok ──\n protected selectDay(cell: KptDayCell): void {\n if (cell.disabled) return;\n if (this.selectionMode() === 'datetime') {\n this.pendingDate.set(cell.iso);\n return; // czas jeszcze do wyboru\n }\n this.value.set(cell.iso);\n this.close();\n }\n /**\n * Klik w komórkę siatki: na poziomie zatwierdzania ustawia wartość i zamyka panel,\n * wyżej — przestawia widok i schodzi poziom niżej.\n */\n protected selectCell(cell: KptGridCell): void {\n if (cell.disabled) return;\n const level = this.panelView();\n if (level === this.commitLevel()) {\n this.value.set(level === 'year' ? String(cell.y) : this.monthValue(cell));\n this.close();\n return;\n }\n this.view.update(({ m }) => ({ y: cell.y, m: level === 'month' ? cell.m : m }));\n this.panelView.set(KPT_CALENDAR_LEVELS[KPT_CALENDAR_LEVELS.indexOf(level) - 1]!);\n }\n\n private monthValue(cell: KptGridCell): string {\n const mm = pad(cell.m + 1);\n return this.selectionMode() === 'month' ? mm : `${cell.y}-${mm}`;\n }\n\n /** Klik w tytuł — wejście poziom wyżej w stosie widoków. */\n protected goTo(level: KptDatepickerView): void {\n this.panelView.set(level);\n }\n\n // ── Zegar (delegowany do kpt-clock przez timeStr) ──\n protected openClock(): void {\n this.dtView.set('clock');\n }\n protected backToCalendar(): void {\n this.dtView.set('calendar');\n }\n\n protected commit(): void {\n const time = this.timeStr() || '00:00';\n if (this.selectionMode() === 'time') {\n this.value.set(time);\n } else {\n const dt = parseDateTime(this.value());\n const date = this.pendingDate() || dt?.date || toIso(this.today);\n this.value.set(`${date}T${time}`);\n }\n this.close();\n }\n\n /** Strzałki ‹ › — krok zależny od poziomu (miesiąc, rok, dekada, strona dekad). */\n private page(dir: 1 | -1): void {\n this.view.update((page) => pageBy(page, this.panelView(), dir));\n }\n protected pagePrev(): void {\n this.page(-1);\n }\n protected pageNext(): void {\n this.page(1);\n }\n protected clear(event: Event): void {\n event.stopPropagation();\n this.value.set('');\n this.pendingDate.set('');\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole wieloliniowe (textarea) na Signal Forms, z opcjonalnym auto-resize.\n *\n * @example\n * <kpt-textarea [formField]=\"f.notes\" placeholder=\"Notatki…\" autoResize />\n */\n@Component({\n selector: 'kpt-textarea',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <textarea\n #ta\n class=\"kpt-textarea__field\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readonly()\"\n [rows]=\"rows()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n ></textarea>\n `,\n styleUrl: './textarea.component.scss',\n host: { class: 'kpt-textarea-host' },\n})\nexport class KptTextarea implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly placeholder = input('');\n readonly rows = input(3);\n readonly autoResize = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n private readonly ta = viewChild<ElementRef<HTMLTextAreaElement>>('ta');\n\n constructor() {\n afterNextRender(() => {\n if (this.autoResize()) this.resize();\n });\n }\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n if (this.autoResize()) this.resize();\n }\n\n private resize(): void {\n const el = this.ta()?.nativeElement;\n if (!el) return;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n }\n}\n","import { Directive, ElementRef, OnDestroy, booleanAttribute, inject, input } from '@angular/core';\n\nexport type KptTooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Dymek podpowiedzi (tooltip) pokazywany na hover/focus hosta. Lekki — element dodawany\n * do `body` i pozycjonowany względem hosta (działa w trybie zoneless).\n *\n * @example\n * <kpt-button kptTooltip=\"Zapisz zmiany\" kptTooltipPosition=\"bottom\">Zapisz</kpt-button>\n *\n * @example Dymek tylko wtedy, gdy tekst nie mieści się w elemencie:\n * <span class=\"ellipsis\" [kptTooltip]=\"name\" kptTooltipOnlyWhenTruncated>{{ name }}</span>\n */\n@Directive({\n selector: '[kptTooltip]',\n host: {\n '(mouseenter)': 'show()',\n '(mouseleave)': 'hide()',\n '(focus)': 'show()',\n '(blur)': 'hide()',\n },\n})\nexport class KptTooltip implements OnDestroy {\n readonly text = input.required<string>({ alias: 'kptTooltip' });\n readonly position = input<KptTooltipPosition>('top', { alias: 'kptTooltipPosition' });\n /**\n * Pokazuj dymek tylko wtedy, gdy treść nie mieści się w elemencie (jest ucięta\n * wielokropkiem). Dzięki temu podpowiedź nie powtarza tekstu, który i tak widać.\n */\n readonly onlyWhenTruncated = input(false, {\n alias: 'kptTooltipOnlyWhenTruncated',\n transform: booleanAttribute,\n });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private tip?: HTMLElement;\n /** Dymek żyje w `body`, więc przy przewinięciu hosta trzeba go przeliczyć. */\n private readonly follow = () => this.reposition();\n\n protected show(): void {\n if (this.tip || !this.text()) return;\n // Sprawdzamy dopiero teraz, a nie przy renderze: dzięki temu wynik jest zawsze\n // aktualny po zmianie szerokości czy powiększenia, bez żadnych obserwatorów.\n if (this.onlyWhenTruncated() && !this.isTruncated()) return;\n const tip = document.createElement('div');\n tip.className = 'kpt-tooltip';\n tip.setAttribute('role', 'tooltip');\n tip.textContent = this.text();\n tip.style.cssText =\n 'position:fixed;z-index:1400;max-width:16rem;padding:0.35rem 0.6rem;' +\n 'border-radius:var(--kpt-radius-sm,0.25rem);font-size:var(--kpt-font-size-xs,0.75rem);' +\n 'line-height:1.4;background:var(--kpt-color-on-surface);color:var(--kpt-color-surface);' +\n 'box-shadow:var(--kpt-elevation-2);pointer-events:none;opacity:0;transition:opacity 120ms;';\n document.body.appendChild(tip);\n this.tip = tip;\n this.reposition();\n // Faza przechwytywania łapie także przewijanie zagnieżdżonych kontenerów\n // (np. osi roadmapy), bo zdarzenie `scroll` elementu się nie propaguje.\n window.addEventListener('scroll', this.follow, true);\n window.addEventListener('resize', this.follow);\n requestAnimationFrame(() => {\n if (this.tip) this.tip.style.opacity = '1';\n });\n }\n\n protected hide(): void {\n window.removeEventListener('scroll', this.follow, true);\n window.removeEventListener('resize', this.follow);\n this.tip?.remove();\n this.tip = undefined;\n }\n\n /**\n * Czy treść jest przycięta? Sprawdzamy hosta oraz jego bezpośrednie dzieci, bo\n * `text-overflow: ellipsis` siedzi zwykle na wewnętrznym elemencie — a taki element\n * kurczy się do dostępnej szerokości i nie rozpycha rodzica, więc pomiar samego\n * hosta nie wykryłby niczego.\n */\n private isTruncated(): boolean {\n const root = this.host.nativeElement;\n const overflows = (el: Element): boolean =>\n // Tolerancja 1 px pochłania zaokrąglenia subpikselowe przy skalowaniu.\n el.scrollWidth > el.clientWidth + 1 || el.scrollHeight > el.clientHeight + 1;\n return overflows(root) || Array.from(root.children).some(overflows);\n }\n\n private reposition(): void {\n const tip = this.tip;\n if (!tip) return;\n const r = this.host.nativeElement.getBoundingClientRect();\n const t = tip.getBoundingClientRect();\n const gap = 8;\n let top: number;\n let left: number;\n switch (this.position()) {\n case 'bottom':\n top = r.bottom + gap;\n left = r.left + r.width / 2 - t.width / 2;\n break;\n case 'left':\n top = r.top + r.height / 2 - t.height / 2;\n left = r.left - t.width - gap;\n break;\n case 'right':\n top = r.top + r.height / 2 - t.height / 2;\n left = r.right + gap;\n break;\n default:\n top = r.top - t.height - gap;\n left = r.left + r.width / 2 - t.width / 2;\n }\n tip.style.top = `${Math.max(4, top)}px`;\n tip.style.left = `${Math.max(4, left)}px`;\n }\n\n ngOnDestroy(): void {\n this.hide();\n }\n}\n","<div class=\"kpt-rich-text\" [class.kpt-rich-text--invalid]=\"showInvalid()\" [class.kpt-rich-text--disabled]=\"disabled()\">\n <div class=\"kpt-rich-text__toolbar\" role=\"toolbar\">\n @for (section of sections(); track $index; let firstSection = $first) {\n @if (!firstSection) {\n <span class=\"kpt-rich-text__divider\" aria-hidden=\"true\"></span>\n }\n @for (item of section; track item) {\n @switch (item) {\n @case ('heading') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__style\"\n cdkOverlayOrigin\n #styleOrigin=\"cdkOverlayOrigin\"\n [class.is-open]=\"styleOpen()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"aria(item)\"\n [attr.aria-expanded]=\"styleOpen()\"\n [kptTooltip]=\"aria(item)\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openStyle()\"\n >\n <span>{{ styleLabel() }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-rich-text__style-caret\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"styleOrigin\"\n [cdkConnectedOverlayOpen]=\"styleOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeStyle()\"\n (detach)=\"closeStyle()\"\n >\n <ul class=\"kpt-rich-text__style-panel\" role=\"listbox\">\n @for (o of styleOptions(); track o.tag) {\n <li\n class=\"kpt-rich-text__style-opt\"\n [class]=\"'kpt-rich-text__style-opt kpt-rich-text__style-opt--' + o.tag\"\n role=\"option\"\n [attr.aria-selected]=\"currentBlock() === o.tag\"\n [class.is-selected]=\"currentBlock() === o.tag\"\n (click)=\"pickStyle(o.tag)\"\n >{{ o.label }}</li>\n }\n </ul>\n </ng-template>\n }\n @case ('foreColor') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool kpt-rich-text__tool--color\"\n cdkOverlayOrigin\n #foreOrigin=\"cdkOverlayOrigin\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openColor('foreColor')\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"foreOrigin\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'foreColor'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n }\n @case ('backColor') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool kpt-rich-text__tool--color\"\n cdkOverlayOrigin\n #backOrigin=\"cdkOverlayOrigin\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"openColor('backColor')\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"backOrigin\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'backColor'\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n }\n @case ('table') {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool\"\n cdkOverlayOrigin\n #tableOrigin=\"cdkOverlayOrigin\"\n [class.is-active]=\"tableOpen()\"\n [attr.aria-label]=\"aria(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"exec(item)\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"tableOrigin\"\n [cdkConnectedOverlayOpen]=\"tableOpen()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeTable()\"\n (detach)=\"closeTable()\"\n >\n <div class=\"kpt-rt-grid-pop\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-grid\" (mouseleave)=\"gridHover(0, 0)\">\n @for (r of gridRows; track r) {\n <div class=\"kpt-rt-grid__row\">\n @for (c of gridCols; track c) {\n <span\n class=\"kpt-rt-grid__cell\"\n [class.is-on]=\"r <= gridR() && c <= gridC()\"\n (mouseenter)=\"gridHover(r, c)\"\n (click)=\"insertTable(r, c)\"\n ></span>\n }\n </div>\n }\n </div>\n <div class=\"kpt-rt-grid__label\">{{ gridR() }} × {{ gridC() }}</div>\n </div>\n </ng-template>\n }\n @default {\n <button\n type=\"button\"\n class=\"kpt-rich-text__tool\"\n [class.is-active]=\"isActive(item)\"\n [attr.aria-label]=\"aria(item)\"\n [attr.aria-pressed]=\"pressed(item)\"\n [kptTooltip]=\"aria(item)\"\n [disabled]=\"disabled() || !enabled(item)\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"exec(item)\"\n >\n <kpt-icon [name]=\"icon(item)\" />\n </button>\n }\n }\n }\n }\n </div>\n @if (sourceView()) {\n <textarea\n class=\"kpt-rich-text__source\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n spellcheck=\"false\"\n [attr.aria-label]=\"i18n.t('richText.htmlSource')\"\n (input)=\"onSource($event)\"\n (blur)=\"touch.emit()\"\n ></textarea>\n } @else {\n <div\n #editor\n class=\"kpt-rich-text__editor\"\n [attr.contenteditable]=\"disabled() ? 'false' : 'true'\"\n [attr.data-placeholder]=\"placeholder()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n role=\"textbox\"\n aria-multiline=\"true\"\n (input)=\"onInput()\"\n (keydown)=\"onKeydown($event)\"\n (paste)=\"onPaste($event)\"\n (contextmenu)=\"onContextMenu($event)\"\n (mousedown)=\"onEditorMouseDown($event)\"\n (mousemove)=\"onEditorMouseMove($event)\"\n (blur)=\"touch.emit()\"\n ></div>\n }\n\n <!-- Podpowiedzi wzmianek (origin punktowy = miejsce kursora, bo `@` nie ma swojego elementu) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"mentionPoint()\"\n [cdkConnectedOverlayOpen]=\"mentionOpen()\"\n (detach)=\"closeMention()\"\n >\n <ul class=\"kpt-rt-mentions\" role=\"listbox\" [attr.aria-label]=\"i18n.t('richText.mentions')\">\n @for (item of mentionMatches(); track item.id; let index = $index) {\n <li\n class=\"kpt-rt-mentions__item\"\n role=\"option\"\n [attr.aria-selected]=\"index === mentionActive()\"\n [attr.data-active]=\"index === mentionActive() ? '' : null\"\n (mousedown)=\"$event.preventDefault(); insertMention(item)\"\n (mouseenter)=\"mentionActive.set(index)\"\n >\n <span class=\"kpt-rt-mentions__label\">{{ item.label }}</span>\n @if (item.kind) {\n <span class=\"kpt-rt-mentions__kind\">{{ item.kind }}</span>\n }\n </li>\n }\n </ul>\n </ng-template>\n\n <!-- Menu kontekstowe tabeli (origin punktowy = pozycja kursora) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"menuOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeMenu()\"\n (detach)=\"closeMenu()\"\n >\n <div class=\"kpt-rt-menu\" (contextmenu)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.column') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertColumn('left')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertLeft') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertColumn('right')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertRight') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"toggleHeaderColumn()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.headerColumn') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"deleteColumn()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteColumn') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.row') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertRow('above')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertAbove') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"insertRow('below')\"><kpt-icon name=\"plus\" /> {{ i18n.t('richText.menu.insertBelow') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"toggleHeaderRow()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.headerRow') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"deleteRow()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteRow') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <div class=\"kpt-rt-menu__group\">{{ i18n.t('richText.menu.cell') }}</div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"openCellBg()\"><kpt-icon name=\"palette\" /> {{ i18n.t('richText.menu.cellBackground') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('left')\"><kpt-icon name=\"align-left\" /> {{ i18n.t('richText.menu.alignLeft') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('center')\"><kpt-icon name=\"align-center\" /> {{ i18n.t('richText.menu.alignCenter') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"alignCell('right')\"><kpt-icon name=\"align-right\" /> {{ i18n.t('richText.menu.alignRight') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" [class.is-disabled]=\"!canMerge()\" (click)=\"mergeCells()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.mergeCells') }}</button>\n <button type=\"button\" class=\"kpt-rt-menu__item\" [class.is-disabled]=\"!canSplit()\" (click)=\"splitCell()\"><kpt-icon name=\"grip-vertical\" /> {{ i18n.t('richText.menu.splitCell') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item\" (click)=\"openBorder()\"><kpt-icon name=\"table\" /> {{ i18n.t('richText.menu.border') }}</button>\n <div class=\"kpt-rt-menu__sep\"></div>\n <button type=\"button\" class=\"kpt-rt-menu__item kpt-rt-menu__item--danger\" (click)=\"deleteTable()\"><kpt-icon name=\"trash\" /> {{ i18n.t('richText.menu.deleteTable') }}</button>\n </div>\n </ng-template>\n\n <!-- Popover obramowania (tabela / komórka) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"borderOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeBorder()\"\n (detach)=\"closeBorder()\"\n >\n <div class=\"kpt-rt-border\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rt-border__seg\">\n <button type=\"button\" [class.is-active]=\"borderTarget() === 'table'\" (click)=\"borderTarget.set('table')\">{{ i18n.t('richText.border.table') }}</button>\n <button type=\"button\" [class.is-active]=\"borderTarget() === 'cell'\" (click)=\"borderTarget.set('cell')\">{{ i18n.t('richText.border.cell') }}</button>\n </div>\n <div class=\"kpt-rt-border__widths\">\n <button type=\"button\" (click)=\"setBorderWidth('none')\">{{ i18n.t('richText.border.none') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('thin')\">{{ i18n.t('richText.border.thin') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('medium')\">{{ i18n.t('richText.border.medium') }}</button>\n <button type=\"button\" (click)=\"setBorderWidth('thick')\">{{ i18n.t('richText.border.thick') }}</button>\n </div>\n <div class=\"kpt-rich-text__swatches\">\n @for (c of swatches; track c) {\n <button type=\"button\" class=\"kpt-rich-text__swatch\" [style.background]=\"c\" [attr.aria-label]=\"c\" (click)=\"setBorderColor(c)\"></button>\n }\n </div>\n <label class=\"kpt-rich-text__picker\">\n <span>{{ i18n.t('richText.border.customColor') }}</span>\n <input type=\"color\" (input)=\"onBorderColorInput($event)\" />\n </label>\n </div>\n </ng-template>\n\n <!-- Popover koloru tła komórki (z menu kontekstowego) -->\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"menuPoint()\"\n [cdkConnectedOverlayOpen]=\"colorOpen() && colorKind() === 'cellBg'\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeColor()\"\n (detach)=\"closeColor()\"\n >\n <ng-container [ngTemplateOutlet]=\"paletteTpl\" />\n </ng-template>\n</div>\n\n<ng-template #paletteTpl>\n <div class=\"kpt-rich-text__palette\" (mousedown)=\"$event.preventDefault()\">\n <div class=\"kpt-rich-text__swatches\">\n @for (c of swatches; track c) {\n <button\n type=\"button\"\n class=\"kpt-rich-text__swatch\"\n [style.background]=\"c\"\n [attr.aria-label]=\"c\"\n (click)=\"applyColor(c)\"\n ></button>\n }\n </div>\n <label class=\"kpt-rich-text__picker\">\n <span>{{ i18n.t('richText.paletteCustom') }}</span>\n <input type=\"color\" (input)=\"onColorInput($event)\" />\n </label>\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KPT_MENTION_LIMIT, filterMentions, mentionQuery, type KptMentionItem } from '@konce-pt/mention';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport { KptTooltip } from '../tooltip/tooltip.directive';\n\nexport type KptRichTool =\n | 'copy' | 'paste' | 'pasteText'\n | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol'\n | 'indent' | 'outdent'\n | 'foreColor' | 'backColor'\n | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify'\n | 'link' | 'table' | 'clear' | 'html';\n\n/** Pasek: płaska lista narzędzi lub grupy (sekcje rozdzielone separatorem). */\nexport type KptRichToolbar = readonly KptRichTool[] | readonly (readonly KptRichTool[])[];\n\nconst ICON: Record<KptRichTool, KptIconName> = {\n copy: 'copy',\n paste: 'clipboard',\n pasteText: 'clipboard-text',\n heading: 'code', // nieużywane (heading renderuje select)\n bold: 'bold',\n italic: 'italic',\n underline: 'underline',\n strike: 'strikethrough',\n ul: 'list',\n ol: 'list-numbers',\n indent: 'indent-increase',\n outdent: 'indent-decrease',\n foreColor: 'palette',\n backColor: 'highlight',\n alignLeft: 'align-left',\n alignCenter: 'align-center',\n alignRight: 'align-right',\n alignJustify: 'align-justified',\n link: 'link',\n table: 'table',\n clear: 'clear-formatting',\n html: 'code',\n};\n\n/** Narzędzia zwykłe → komenda execCommand + nazwa queryCommandState (dla stanu aktywnego). */\nconst COMMAND: Partial<Record<KptRichTool, string>> = {\n bold: 'bold',\n italic: 'italic',\n underline: 'underline',\n strike: 'strikeThrough',\n ul: 'insertUnorderedList',\n ol: 'insertOrderedList',\n alignLeft: 'justifyLeft',\n alignCenter: 'justifyCenter',\n alignRight: 'justifyRight',\n alignJustify: 'justifyFull',\n clear: 'removeFormat',\n};\n\nconst SWATCHES = [\n '#000000', '#434343', '#666666', '#999999', '#b7b7b7', '#cccccc', '#ffffff',\n '#e11d48', '#ea580c', '#ca8a04', '#16a34a', '#0891b2', '#2563eb', '#7c3aed',\n];\n\nconst DEFAULT_TOOLBAR: KptRichTool[][] = [\n ['copy', 'paste', 'pasteText'],\n ['heading', 'bold', 'italic', 'underline', 'strike', 'ul', 'ol', 'indent', 'outdent'],\n ['foreColor', 'backColor'],\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\n ['link', 'table', 'clear', 'html'],\n];\n\n// Allowlisty sanityzacji wklejanego HTML.\nconst ALLOWED_TAGS = new Set([\n 'P', 'BR', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'B', 'STRONG', 'I', 'EM', 'U', 'S', 'STRIKE',\n 'UL', 'OL', 'LI', 'A', 'SPAN', 'DIV', 'BLOCKQUOTE', 'FONT',\n 'TABLE', 'THEAD', 'TBODY', 'TFOOT', 'TR', 'TD', 'TH', 'COLGROUP', 'COL', 'CAPTION',\n]);\nconst ALLOWED_STYLES = new Set([\n 'color', 'background-color', 'text-align', 'font-weight', 'font-style', 'text-decoration',\n 'width', 'height', 'border', 'border-color', 'border-width', 'border-style', 'vertical-align',\n]);\n/*\n * `data-mention` i `contenteditable` są tu dla wzmianek: identyfikator musi przeżyć zapis treści,\n * a `contenteditable=\"false\"` trzyma wzmiankę jako jeden kawałek, w którego środku nie da się\n * pisać. Oba atrybuty są bierne — nie wykonują niczego i nie wskazują zasobów, więc wpuszczenie\n * ich nie otwiera nowej furtki.\n */\nconst ALLOWED_ATTRS = new Set([\n 'colspan', 'rowspan', 'span', 'width', 'class', 'target', 'rel', 'title',\n 'data-mention', 'contenteditable',\n]);\n/** Pozycja komórki w siatce (uwzględnia colspan/rowspan). */\ntype GridPos = Map<HTMLTableCellElement, { r: number; c: number; rowspan: number; colspan: number }>;\n/** Prostokąt siatki: wiersze `r0..r1`, kolumny `c0..c1` (włącznie). */\ninterface Bounds {\n r0: number;\n c0: number;\n r1: number;\n c1: number;\n}\n\n// Schematy URL dopuszczone w `href` wstawianym narzędziem „link\" (blocklista jest obchodzalna).\nconst SAFE_URL_SCHEME = /^(https?:|mailto:|tel:)/i;\nconst HAS_URL_SCHEME = /^[a-z][a-z0-9+.-]*:/i;\n\n/**\n * Lekki edytor tekstu sformatowanego (contenteditable) z konfigurowalnym paskiem sekcji.\n * Narzędzia: schowek (kopiuj / wklej / wklej bez formatowania), styl (nagłówki H1–H6 / paragraf),\n * bold/italic/underline/strike/ul/ol, kolor tekstu i tła (popover), wyrównania, link, czyszczenie.\n * `toolbar` przyjmuje płaską listę lub grupy (sekcje). Wartość = HTML. Signal Forms.\n * Wymaga stylów overlay CDK (popover kolorów): `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-rich-text [formField]=\"f.body\" />\n * <kpt-rich-text [(value)]=\"v\" [toolbar]=\"[['bold','italic'],['ul','ol'],['link']]\" />\n */\n@Component({\n selector: 'kpt-rich-text',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon, CdkOverlayOrigin, CdkConnectedOverlay, NgTemplateOutlet, KptTooltip],\n templateUrl: './rich-text.component.html',\n styleUrl: './rich-text.component.scss',\n host: { class: 'kpt-rich-text-host' },\n})\nexport class KptRichText implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly toolbar = input<KptRichToolbar>(DEFAULT_TOOLBAR);\n readonly placeholder = input('');\n /** Maksymalna głębokość zagnieżdżenia list (Tab / „Dodaj wcięcie\"). */\n readonly maxListLevel = input(6, { transform: numberAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n /**\n * Pozycje do podpowiedzi wzmianek. Pusta lista wyłącza mechanizm: `@` zostaje wtedy zwykłym\n * znakiem, bo nie ma czego podpowiadać.\n */\n readonly mentions = input<readonly KptMentionItem[]>([]);\n /** Ile podpowiedzi naraz. */\n readonly mentionLimit = input(KPT_MENTION_LIMIT, { transform: numberAttribute });\n\n readonly touch = output<void>();\n /** Wstawiona wzmianka — moment na powiadomienie osoby albo dopięcie powiązania. */\n readonly mentioned = output<KptMentionItem>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly swatches = SWATCHES;\n private readonly editor = viewChild<ElementRef<HTMLElement>>('editor');\n private savedRange: Range | null = null;\n\n // ── Wzmianki (`@`) ──\n protected readonly mentionOpen = signal(false);\n protected readonly mentionMatches = signal<readonly KptMentionItem[]>([]);\n protected readonly mentionActive = signal(0);\n /** Zaczepienie listy w miejscu kursora — punkt, nie element, bo `@` nie ma własnego elementu. */\n protected readonly mentionPoint = signal<{ x: number; y: number }>({ x: 0, y: 0 });\n /** Węzeł tekstowy i zakres zapytania `@…`, który podmieni wybrana pozycja. */\n private mentionRange: { node: Text; start: number; end: number } | null = null;\n\n protected readonly colorOpen = signal(false);\n protected readonly colorKind = signal<'foreColor' | 'backColor' | 'cellBg'>('foreColor');\n protected readonly sourceView = signal(false);\n protected readonly styleOpen = signal(false);\n\n // ── Tabele ──\n protected readonly tableOpen = signal(false); // popover siatki wstawiania\n protected readonly gridR = signal(0);\n protected readonly gridC = signal(0);\n protected readonly gridRows = Array.from({ length: 8 }, (_, i) => i + 1);\n protected readonly gridCols = Array.from({ length: 8 }, (_, i) => i + 1);\n protected readonly menuOpen = signal(false); // menu kontekstowe\n protected readonly menuPoint = signal<{ x: number; y: number }>({ x: 0, y: 0 });\n protected readonly borderOpen = signal(false);\n protected readonly borderTarget = signal<'table' | 'cell'>('table');\n private ctxCell: HTMLTableCellElement | null = null;\n private resize: { col: HTMLTableColElement; startX: number; startW: number } | null = null;\n // Zaznaczanie wielu komórek\n protected readonly selCount = signal(0);\n private selCells = new Set<HTMLTableCellElement>();\n private selAnchor: HTMLTableCellElement | null = null;\n private selecting = false;\n private canSplitCtx = false;\n\n protected readonly styleOptions = computed<{ tag: string; label: string }[]>(() => [\n { tag: 'p', label: this.i18n.t('richText.styleNormal') },\n { tag: 'h1', label: this.i18n.t('richText.styleHeading', { level: 1 }) },\n { tag: 'h2', label: this.i18n.t('richText.styleHeading', { level: 2 }) },\n { tag: 'h3', label: this.i18n.t('richText.styleHeading', { level: 3 }) },\n { tag: 'h4', label: this.i18n.t('richText.styleHeading', { level: 4 }) },\n { tag: 'h5', label: this.i18n.t('richText.styleHeading', { level: 5 }) },\n { tag: 'h6', label: this.i18n.t('richText.styleHeading', { level: 6 }) },\n ]);\n protected readonly styleLabel = computed(\n () => this.styleOptions().find((o) => o.tag === this.currentBlock())?.label ?? this.i18n.t('richText.styleNormal'),\n );\n protected readonly activeCmds = signal<Set<string>>(new Set());\n protected readonly canIndent = signal(false);\n protected readonly canOutdent = signal(false);\n protected readonly currentBlock = signal<string>('p');\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n /** Sekcje paska (normalizacja płaskiej listy do jednej grupy). */\n protected readonly sections = computed<KptRichTool[][]>(() => {\n const t = this.toolbar();\n if (t.length === 0) return [];\n return Array.isArray(t[0]) ? (t as KptRichTool[][]) : [t as KptRichTool[]];\n });\n\n constructor() {\n // Synchronizuj tylko przy zmianie zewnętrznej (bez resetu kursora podczas pisania).\n // Porównanie `el.innerHTML !== v` działa na SUROWEJ wartości modelu (tej samej, którą ustawia\n // `onInput()`), więc pisanie w edytorze nadal nie odpala tej gałęzi — sanityzacja włącza się\n // wyłącznie przy zewnętrznym zapisie `value` (init, `[(value)]` z aplikacji, `onSource()`).\n effect(() => {\n const el = this.editor()?.nativeElement;\n const v = this.value();\n if (el && el.innerHTML !== v) el.innerHTML = this.sanitizeHtml(v);\n });\n\n // Odzwierciedlenie stanu aktywnego narzędzi na podstawie zaznaczenia.\n const onSel = () => {\n this.refreshState();\n // Kursor może odjechać od `@` także bez pisania (klik, strzałki) — wtedy podpowiedzi\n // muszą zniknąć, inaczej Enter wstawiłby wzmiankę w zupełnie innym miejscu.\n this.syncMention();\n };\n const onMove = (e: MouseEvent) => this.onResizeMove(e);\n const onUp = () => this.onResizeEnd();\n document.addEventListener('selectionchange', onSel);\n document.addEventListener('mousemove', onMove);\n document.addEventListener('mouseup', onUp);\n inject(DestroyRef).onDestroy(() => {\n document.removeEventListener('selectionchange', onSel);\n document.removeEventListener('mousemove', onMove);\n document.removeEventListener('mouseup', onUp);\n });\n }\n\n protected icon(item: KptRichTool): KptIconName {\n return ICON[item];\n }\n protected aria(item: KptRichTool): string {\n return this.i18n.t(`richText.${item}`);\n }\n protected isActive(item: KptRichTool): boolean {\n if (item === 'html') return this.sourceView();\n const cmd = COMMAND[item];\n return !!cmd && this.activeCmds().has(cmd);\n }\n /** `aria-pressed` tylko dla przełączników — wcięcia są akcjami, nie stanem. */\n protected pressed(item: KptRichTool): boolean | null {\n return item === 'indent' || item === 'outdent' ? null : this.isActive(item);\n }\n /** Wcięcia są aktywne wyłącznie tam, gdzie faktycznie coś zrobią (kursor w liście). */\n protected enabled(item: KptRichTool): boolean {\n if (item === 'indent') return this.canIndent();\n if (item === 'outdent') return this.canOutdent();\n return true;\n }\n\n private inEditor(): boolean {\n const el = this.editor()?.nativeElement;\n const sel = window.getSelection();\n return !!el && !!sel && sel.rangeCount > 0 && el.contains(sel.anchorNode);\n }\n\n /**\n * Jedyne wywołanie `document.execCommand` w komponencie. API jest formalnie deprecated, ale nie\n * ma zamiennika: to jedyny sposób formatowania, który trafia do natywnego stosu undo przeglądarki\n * (Ctrl+Z). Własna implementacja komend wymagałaby własnej historii — czyli przepisania edytora.\n */\n private legacyExec(cmd: string, value?: string): boolean {\n return document.execCommand(cmd, false, value); // NOSONAR: brak zamiennika, patrz JSDoc\n }\n /** Stan komendy dla podświetlenia narzędzi; nieobsługiwana komenda → `false`. */\n private legacyState(cmd: string): boolean {\n try {\n return document.queryCommandState(cmd); // NOSONAR: brak zamiennika, patrz `legacyExec`\n } catch {\n return false;\n }\n }\n\n /** Komendy aktywne dla bieżącego zaznaczenia (podświetlenie narzędzi). */\n private activeCommands(): Set<string> {\n const active = new Set<string>();\n for (const cmd of Object.values(COMMAND)) {\n if (cmd && cmd !== 'removeFormat' && this.legacyState(cmd)) active.add(cmd);\n }\n return active;\n }\n\n /** Tag bloku, w którym stoi kursor (dla selecta stylu); domyślnie paragraf. */\n private blockTag(): string {\n let node = window.getSelection()?.anchorNode as HTMLElement | null;\n while (node && node !== this.editor()?.nativeElement) {\n const tag = node.tagName?.toLowerCase();\n if (tag && /^(h[1-6]|p|blockquote)$/.test(tag)) return tag;\n node = node.parentElement;\n }\n return 'p';\n }\n\n private refreshState(): void {\n if (this.disabled() || !this.inEditor()) return;\n this.activeCmds.set(this.activeCommands());\n // Stan wcięć — te same warunki, których użyje sama operacja.\n const items = this.listItems();\n this.canIndent.set(items.some((li) => this.canIndentItem(li)));\n this.canOutdent.set(items.some((li) => this.canOutdentItem(li)));\n this.currentBlock.set(this.blockTag());\n }\n\n protected onInput(): void {\n const el = this.editor()?.nativeElement;\n if (el) this.value.set(el.innerHTML);\n this.syncMention();\n }\n protected onSource(event: Event): void {\n this.value.set((event.target as HTMLTextAreaElement).value);\n }\n\n private focusEditor(): void {\n this.editor()?.nativeElement.focus();\n }\n private saveSelection(): void {\n const sel = window.getSelection();\n this.savedRange = sel && sel.rangeCount > 0 ? sel.getRangeAt(0).cloneRange() : null;\n }\n private restoreSelection(): void {\n const sel = window.getSelection();\n if (this.savedRange && sel) {\n sel.removeAllRanges();\n sel.addRange(this.savedRange);\n }\n }\n\n protected exec(item: KptRichTool): void {\n if (this.disabled()) return;\n if (item === 'html') {\n this.sourceView.update((v) => !v);\n return;\n }\n if (item === 'table') {\n this.saveSelection();\n this.tableOpen.set(true);\n return;\n }\n this.focusEditor();\n switch (item) {\n case 'link': {\n const url = window.prompt(this.i18n.t('richText.linkPrompt'));\n if (url) {\n const safe = this.sanitizeUrl(url);\n if (safe) this.legacyExec('createLink', safe);\n }\n break;\n }\n case 'copy':\n void this.copySelection();\n return;\n case 'paste':\n void this.pasteRich();\n return;\n case 'pasteText':\n void this.pastePlain();\n return;\n case 'indent':\n case 'outdent':\n this.shiftItems(item);\n return; // shiftItems sam odświeża wartość i stan\n default: {\n const cmd = COMMAND[item];\n if (cmd) this.legacyExec(cmd);\n }\n }\n this.onInput();\n this.refreshState();\n }\n\n // ── Listy: wcięcia (Tab / narzędzia „Dodaj/Usuń wcięcie\") ──\n\n /** Najbliższy punkt listy zawierający węzeł (tylko wewnątrz edytora). */\n private closestItem(node: Node | null): HTMLLIElement | null {\n const editor = this.editor()?.nativeElement;\n const el = node instanceof Element ? node : (node?.parentElement ?? null);\n const li = el?.closest('li') ?? null;\n return li instanceof HTMLLIElement && editor?.contains(li) ? li : null;\n }\n\n /** Poziom punktu w obrębie edytora (1 = najwyższy). */\n private level(li: HTMLLIElement): number {\n const editor = this.editor()?.nativeElement;\n let depth = 1;\n let parent = li.parentElement?.closest('li') ?? null;\n while (parent && editor?.contains(parent)) {\n depth++;\n parent = parent.parentElement?.closest('li') ?? null;\n }\n return depth;\n }\n\n /** Najgłębszy poziom w poddrzewie punktu — wcięcie przenosi podpunkty razem z rodzicem. */\n private deepest(li: HTMLLIElement): number {\n const base = this.level(li);\n let max = base;\n for (const nested of li.querySelectorAll('li')) max = Math.max(max, this.level(nested));\n return max;\n }\n\n private canIndentItem(li: HTMLLIElement): boolean {\n return li.previousElementSibling instanceof HTMLLIElement && this.deepest(li) < this.maxListLevel();\n }\n private canOutdentItem(li: HTMLLIElement): boolean {\n return li.parentElement?.parentElement instanceof HTMLLIElement;\n }\n\n /**\n * Punkty listy objęte zaznaczeniem. Przy zaznaczeniu wielu punktów operujemy na ich wspólnym\n * poziomie zagnieżdżenia — inaczej podpunkt dostałby wcięcie dwa razy (raz sam, raz z rodzicem).\n */\n private listItems(): HTMLLIElement[] {\n const editor = this.editor()?.nativeElement;\n const sel = window.getSelection();\n if (!editor || !sel || sel.rangeCount === 0) return [];\n const range = sel.getRangeAt(0);\n if (!editor.contains(range.commonAncestorContainer)) return [];\n const start = this.closestItem(range.startContainer);\n const end = this.closestItem(range.endContainer);\n if (!start) return [];\n if (!end || start === end) return [start];\n // Podnieś głębszy koniec, aż oba będą rodzeństwem w tej samej liście.\n let a: HTMLLIElement | null = start;\n let b: HTMLLIElement | null = end;\n while (a && b && a.parentElement !== b.parentElement) {\n if (this.level(a) >= this.level(b)) a = this.closestItem(a.parentElement);\n else b = this.closestItem(b.parentElement);\n }\n if (!a || !b || !a.parentElement) return [start];\n const siblings = [...a.parentElement.children].filter((el): el is HTMLLIElement => el instanceof HTMLLIElement);\n const from = siblings.indexOf(a);\n const to = siblings.indexOf(b);\n if (from < 0 || to < 0) return [start];\n return siblings.slice(Math.min(from, to), Math.max(from, to) + 1);\n }\n\n /** Zagnieżdża punkt w podliście poprzedniego punktu (poprawne `li > ul > li`). */\n private indentItem(li: HTMLLIElement): boolean {\n if (!this.canIndentItem(li)) return false;\n const prev = li.previousElementSibling as HTMLLIElement;\n let sub: Element | null = prev.lastElementChild;\n if (!(sub instanceof HTMLUListElement || sub instanceof HTMLOListElement)) {\n sub = document.createElement(li.parentElement?.tagName ?? 'UL'); // ta sama numeracja co poziom wyżej\n prev.append(sub);\n }\n sub.append(li);\n return true;\n }\n\n /** Wyciąga punkt poziom wyżej; rodzeństwo po nim trafia do jego podlisty (kolejność bez zmian). */\n private outdentItem(li: HTMLLIElement): boolean {\n const list = li.parentElement;\n const host = list?.parentElement;\n if (!list || !(host instanceof HTMLLIElement)) return false;\n const children = [...list.children];\n const after = children.slice(children.indexOf(li) + 1);\n if (after.length > 0) {\n let own: Element | null = li.lastElementChild;\n if (!(own instanceof HTMLUListElement || own instanceof HTMLOListElement)) {\n own = document.createElement(list.tagName);\n li.append(own);\n }\n own.append(...after);\n }\n host.after(li);\n if (list.children.length === 0) list.remove();\n return true;\n }\n\n /** Zwraca `true`, gdy DOM faktycznie się zmienił — od tego zależy `preventDefault()` dla Taba. */\n private shiftItems(dir: 'indent' | 'outdent'): boolean {\n if (this.disabled()) return false;\n const items = this.listItems();\n if (items.length === 0) return false;\n // Migawka granic kursora: przy usunięciu węzła spec DOM przestawia *żywy* Range na starego\n // rodzica, więc `saveSelection()` wyprowadziłby kursor poza przenoszony punkt. Same węzły\n // jadą razem z `li`, więc odtwarzamy z nich zaznaczenie po mutacji.\n const sel = window.getSelection();\n const range = sel && sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\n const caret = range\n ? { sc: range.startContainer, so: range.startOffset, ec: range.endContainer, eo: range.endOffset }\n : null;\n // Outdent od końca — inaczej `host.after()` odwróciłby kolejność przenoszonych punktów.\n const order = dir === 'outdent' ? [...items].reverse() : items;\n let changed = false;\n for (const li of order) {\n const done = dir === 'indent' ? this.indentItem(li) : this.outdentItem(li);\n changed = done || changed;\n }\n if (!changed) return false;\n if (caret && sel && caret.sc.isConnected && caret.ec.isConnected) {\n try {\n const restored = document.createRange();\n restored.setStart(caret.sc, caret.so);\n restored.setEnd(caret.ec, caret.eo);\n sel.removeAllRanges();\n sel.addRange(restored);\n } catch {\n /* offset przestał pasować po przeniesieniu rodzeństwa — zostaw kursor tam, gdzie jest */\n }\n }\n this.onInput();\n this.refreshState();\n return true;\n }\n\n /**\n * Tab: wcięcie w liście, przeskok komórki w tabeli (lista w komórce ma pierwszeństwo; gdy nie da\n * się już wciąć — przechodzimy do sąsiedniej komórki). Poza nimi i na krawędziach zostawiamy Tab\n * natywny — inaczej edytor byłby pułapką klawiaturową (WCAG 2.1.2).\n */\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n // Podpowiedzi wzmianek przechwytują klawiaturę jako pierwsze: Tab i Enter znaczą w nich\n // co innego niż w samym edytorze.\n if (this.mentionOpen() && this.onMentionKeydown(event)) return;\n if (event.key !== 'Tab' || event.ctrlKey || event.altKey || event.metaKey) return;\n if (this.shiftItems(event.shiftKey ? 'outdent' : 'indent')) {\n event.preventDefault();\n return;\n }\n const node = window.getSelection()?.anchorNode ?? null;\n const el = node instanceof Element ? node : (node?.parentElement ?? null);\n const cell = el?.closest('td, th') as HTMLTableCellElement | null;\n if (cell && this.editor()?.nativeElement.contains(cell) && this.moveCell(cell, event.shiftKey)) {\n event.preventDefault();\n }\n }\n\n /** Przeskok do sąsiedniej komórki z zaznaczeniem jej treści; `false` = koniec tabeli. */\n private moveCell(cell: HTMLTableCellElement, back: boolean): boolean {\n const table = cell.closest('table');\n if (!table) return false;\n const cells = [...table.querySelectorAll('td, th')];\n const next = cells[cells.indexOf(cell) + (back ? -1 : 1)];\n if (!next) return false;\n const range = document.createRange();\n range.selectNodeContents(next);\n const sel = window.getSelection();\n sel?.removeAllRanges();\n sel?.addRange(range);\n this.clearSelection();\n this.refreshState();\n return true;\n }\n\n // ── Styl bloku (dropdown w stylu kpt-select, z podglądem wielkości) ──\n protected openStyle(): void {\n if (this.disabled()) return;\n this.saveSelection();\n this.styleOpen.set(true);\n }\n protected closeStyle(): void {\n this.styleOpen.set(false);\n }\n protected pickStyle(tag: string): void {\n this.styleOpen.set(false);\n this.focusEditor();\n this.restoreSelection();\n this.legacyExec('formatBlock', `<${tag}>`);\n this.onInput();\n this.refreshState();\n }\n\n // ── Kolory ──\n protected openColor(kind: 'foreColor' | 'backColor'): void {\n if (this.disabled()) return;\n this.saveSelection();\n this.colorKind.set(kind);\n this.colorOpen.set(true);\n }\n protected closeColor(): void {\n this.colorOpen.set(false);\n }\n protected applyColor(color: string): void {\n this.colorOpen.set(false);\n if (this.colorKind() === 'cellBg') {\n for (const cell of this.activeCells()) cell.style.backgroundColor = color;\n this.onInput();\n return;\n }\n this.focusEditor();\n this.restoreSelection();\n if (this.colorKind() === 'foreColor') {\n this.legacyExec('foreColor', color);\n } else if (!this.legacyExec('hiliteColor', color)) {\n this.legacyExec('backColor', color);\n }\n this.onInput();\n }\n protected onColorInput(event: Event): void {\n this.applyColor((event.target as HTMLInputElement).value);\n }\n\n // ── Schowek ──\n /** Kopiowanie przez async Clipboard API (jak wklejanie); fallback na starą komendę. */\n private async copySelection(): Promise<void> {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0 || sel.isCollapsed) return;\n const holder = document.createElement('div');\n holder.append(sel.getRangeAt(0).cloneContents());\n try {\n await navigator.clipboard.write([\n new ClipboardItem({\n 'text/html': new Blob([holder.innerHTML], { type: 'text/html' }),\n 'text/plain': new Blob([sel.toString()], { type: 'text/plain' }),\n }),\n ]);\n } catch {\n this.legacyExec('copy'); // brak uprawnień / starsza przeglądarka\n }\n }\n\n private async pasteRich(): Promise<void> {\n try {\n const items = await navigator.clipboard.read();\n for (const it of items) {\n if (it.types.includes('text/html')) {\n const blob = await it.getType('text/html');\n const html = this.sanitizeHtml(await blob.text());\n this.focusEditor();\n this.legacyExec('insertHTML', html);\n this.onInput();\n return;\n }\n }\n const text = await navigator.clipboard.readText();\n this.focusEditor();\n this.legacyExec('insertText', text);\n this.onInput();\n } catch {\n /* brak uprawnień / brak API — ignoruj */\n }\n }\n private async pastePlain(): Promise<void> {\n try {\n const text = await navigator.clipboard.readText();\n this.focusEditor();\n this.legacyExec('insertText', text);\n this.onInput();\n } catch {\n /* brak uprawnień / brak API — ignoruj */\n }\n }\n\n /** Natywne wklejanie — oczyść (bez śmieci z Worda/WWW). */\n protected onPaste(event: ClipboardEvent): void {\n if (this.disabled()) return;\n const html = event.clipboardData?.getData('text/html');\n const text = event.clipboardData?.getData('text/plain') ?? '';\n event.preventDefault();\n if (html) {\n this.legacyExec('insertHTML', this.sanitizeHtml(html));\n } else {\n this.legacyExec('insertText', text);\n }\n this.onInput();\n }\n\n // ── Tabele: wstawianie ──\n protected closeTable(): void {\n this.tableOpen.set(false);\n this.gridR.set(0);\n this.gridC.set(0);\n }\n protected gridHover(r: number, c: number): void {\n this.gridR.set(r);\n this.gridC.set(c);\n }\n protected insertTable(rows: number, cols: number): void {\n this.closeTable();\n this.focusEditor();\n this.restoreSelection();\n const w = (100 / cols).toFixed(4);\n const col = `<col style=\"width:${w}%\">`;\n const cell = '<td><br></td>';\n const row = `<tr>${cell.repeat(cols)}</tr>`;\n const colgroup = `<colgroup>${col.repeat(cols)}</colgroup>`;\n const body = `<tbody>${row.repeat(rows)}</tbody>`;\n const table = `<table class=\"kpt-rt-table\">${colgroup}${body}</table>`;\n this.legacyExec('insertHTML', `${table}<p><br></p>`);\n this.onInput();\n }\n\n // ── Tabele: menu kontekstowe ──\n protected onContextMenu(event: MouseEvent): void {\n if (this.disabled()) return;\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n const editor = this.editor()?.nativeElement;\n if (!cell || !editor?.contains(cell)) return; // poza tabelą → natywne menu\n event.preventDefault();\n this.ctxCell = cell;\n this.canSplitCtx = (cell.colSpan || 1) > 1 || (cell.rowSpan || 1) > 1;\n this.menuPoint.set({ x: event.clientX, y: event.clientY });\n this.menuOpen.set(true);\n }\n protected closeMenu(): void {\n this.menuOpen.set(false);\n }\n\n private ctxTable(): HTMLTableElement | null {\n return this.ctxCell?.closest('table') ?? null;\n }\n private afterTableOp(): void {\n this.menuOpen.set(false);\n this.onInput();\n }\n\n protected insertColumn(dir: 'left' | 'right'): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex + (dir === 'right' ? 1 : 0);\n for (const tr of Array.from(table.rows)) {\n const td = document.createElement('td');\n td.innerHTML = '<br>';\n tr.insertBefore(td, tr.cells[idx] ?? null);\n }\n const colgroup = table.querySelector('colgroup');\n if (colgroup) {\n const col = document.createElement('col');\n colgroup.insertBefore(col, colgroup.children[idx] ?? null);\n this.normalizeColWidths(table);\n }\n this.afterTableOp();\n }\n protected deleteColumn(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex;\n if ((table.rows[0]?.cells.length ?? 0) <= 1) {\n table.remove();\n this.afterTableOp();\n return;\n }\n for (const tr of Array.from(table.rows)) tr.cells[idx]?.remove();\n table.querySelector('colgroup')?.children[idx]?.remove();\n this.normalizeColWidths(table);\n this.afterTableOp();\n }\n protected insertRow(dir: 'above' | 'below'): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const tr = cell.parentElement as HTMLTableRowElement;\n const cols = tr.cells.length;\n const newRow = document.createElement('tr');\n newRow.innerHTML = Array.from({ length: cols }, () => '<td><br></td>').join('');\n tr.parentElement?.insertBefore(newRow, dir === 'below' ? tr.nextSibling : tr);\n this.afterTableOp();\n }\n protected deleteRow(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n if (table.rows.length <= 1) {\n table.remove();\n this.afterTableOp();\n return;\n }\n (cell.parentElement as HTMLTableRowElement).remove();\n this.afterTableOp();\n }\n /** Zamień komórki wiersza między `<td>` a `<th>` (wiersz nagłówka). */\n protected toggleHeaderRow(): void {\n const cell = this.ctxCell;\n if (!cell) return;\n const tr = cell.parentElement as HTMLTableRowElement;\n const toHeader = tr.cells[0]?.tagName !== 'TH';\n for (const c of Array.from(tr.cells)) this.swapCellTag(c, toHeader ? 'th' : 'td');\n this.ctxCell = null; // komórki zostały podmienione\n this.afterTableOp();\n }\n /** Zamień komórki kolumny między `<td>` a `<th>` (kolumna nagłówka). */\n protected toggleHeaderColumn(): void {\n const cell = this.ctxCell;\n const table = this.ctxTable();\n if (!cell || !table) return;\n const idx = cell.cellIndex;\n const toHeader = cell.tagName !== 'TH';\n for (const tr of Array.from(table.rows)) {\n const c = tr.cells[idx];\n if (c) this.swapCellTag(c, toHeader ? 'th' : 'td');\n }\n this.ctxCell = null;\n this.afterTableOp();\n }\n private swapCellTag(cell: HTMLTableCellElement, tag: 'td' | 'th'): void {\n if (cell.tagName.toLowerCase() === tag) return;\n const el = document.createElement(tag);\n for (const a of Array.from(cell.attributes)) el.setAttribute(a.name, a.value);\n el.append(...Array.from(cell.childNodes));\n cell.replaceWith(el);\n }\n protected deleteTable(): void {\n this.ctxTable()?.remove();\n this.afterTableOp();\n }\n protected alignCell(a: 'left' | 'center' | 'right'): void {\n for (const cell of this.activeCells()) cell.style.textAlign = a;\n this.afterTableOp();\n }\n /** Komórki objęte operacją: zaznaczenie (jeśli jest) lub bieżąca komórka menu. */\n private activeCells(): HTMLTableCellElement[] {\n if (this.selCells.size) return [...this.selCells];\n return this.ctxCell ? [this.ctxCell] : [];\n }\n protected openCellBg(): void {\n this.menuOpen.set(false);\n this.colorKind.set('cellBg');\n this.colorOpen.set(true);\n }\n\n // ── Obramowanie (tabela / komórka) ──\n protected openBorder(): void {\n this.menuOpen.set(false);\n this.borderOpen.set(true);\n }\n protected closeBorder(): void {\n this.borderOpen.set(false);\n }\n private borderCells(): HTMLTableCellElement[] {\n if (this.borderTarget() === 'cell') return this.activeCells();\n const table = this.ctxTable();\n return table ? (Array.from(table.querySelectorAll('td, th')) as HTMLTableCellElement[]) : [];\n }\n protected setBorderWidth(w: 'none' | 'thin' | 'medium' | 'thick'): void {\n const px: Record<string, string> = { thin: '1px', medium: '2px', thick: '3px' };\n for (const cell of this.borderCells()) {\n if (w === 'none') {\n cell.style.borderStyle = 'none';\n cell.style.borderWidth = '';\n } else {\n cell.style.borderStyle = 'solid';\n cell.style.borderWidth = px[w];\n }\n }\n this.onInput();\n }\n protected setBorderColor(color: string): void {\n for (const cell of this.borderCells()) {\n cell.style.borderColor = color;\n if (!cell.style.borderStyle || cell.style.borderStyle === 'none') cell.style.borderStyle = 'solid';\n if (!cell.style.borderWidth) cell.style.borderWidth = '1px';\n }\n this.onInput();\n }\n protected onBorderColorInput(event: Event): void {\n this.setBorderColor((event.target as HTMLInputElement).value);\n }\n private normalizeColWidths(table: HTMLTableElement): void {\n const cols = Array.from(table.querySelectorAll('col'));\n const w = (100 / cols.length).toFixed(4);\n for (const col of cols) (col as HTMLElement).style.width = `${w}%`;\n }\n\n // ── Tabele: resize kolumn + zaznaczanie komórek ──\n protected onEditorMouseDown(event: MouseEvent): void {\n if (this.disabled() || event.button !== 0) return; // tylko lewy przycisk\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n if (!cell) {\n this.clearSelection();\n return;\n }\n const rect = cell.getBoundingClientRect();\n if (event.clientX >= rect.right - 6) {\n // Strefa przy prawej krawędzi → resize kolumny.\n const table = cell.closest('table');\n const col = table?.querySelectorAll('col')[cell.cellIndex] as HTMLTableColElement | undefined;\n if (col) {\n event.preventDefault();\n this.resize = { col, startX: event.clientX, startW: col.getBoundingClientRect().width };\n return;\n }\n }\n // Start zaznaczania (potwierdzone dopiero przy ruchu).\n this.clearSelection();\n this.selAnchor = cell;\n this.selecting = false;\n }\n protected onEditorMouseMove(event: MouseEvent): void {\n const cell = (event.target as HTMLElement).closest('td, th') as HTMLTableCellElement | null;\n const editor = this.editor()?.nativeElement;\n if (!editor) return;\n const near = !!cell && event.clientX >= cell.getBoundingClientRect().right - 6;\n editor.classList.toggle('is-col-resize', near || !!this.resize);\n }\n private onResizeMove(event: MouseEvent): void {\n if (this.resize) {\n const w = Math.max(32, this.resize.startW + (event.clientX - this.resize.startX));\n this.resize.col.style.width = `${w}px`;\n return;\n }\n // Przeciąganie zaznaczenia komórek.\n if (!this.selAnchor || !(event.buttons & 1)) return;\n const target = event.target;\n if (!(target instanceof Element)) return;\n const focus = target.closest('td, th') as HTMLTableCellElement | null;\n if (focus?.closest('table') !== this.selAnchor.closest('table')) return;\n if (focus === this.selAnchor && !this.selecting) return;\n this.selecting = true;\n event.preventDefault();\n window.getSelection()?.removeAllRanges();\n this.selectRegion(this.selAnchor, focus);\n }\n private onResizeEnd(): void {\n if (this.resize) {\n this.resize = null;\n this.onInput();\n }\n if (this.selAnchor && !this.selecting) this.clearSelection(); // zwykły klik\n this.selAnchor = null;\n this.selecting = false;\n }\n\n // ── Macierz siatki (uwzględnia colspan/rowspan) ──\n private buildGrid(table: HTMLTableElement): { grid: HTMLTableCellElement[][]; pos: GridPos } {\n const grid: HTMLTableCellElement[][] = [];\n const pos: GridPos = new Map();\n const rows = Array.from(table.rows);\n rows.forEach((tr, r) => {\n grid[r] ??= [];\n let c = 0;\n for (const cell of Array.from(tr.cells)) {\n while (grid[r][c]) c++; // pomiń zajęte przez rowspan wyżej\n const colspan = cell.colSpan || 1;\n const rowspan = cell.rowSpan || 1;\n pos.set(cell, { r, c, rowspan, colspan });\n for (let dr = 0; dr < rowspan; dr++) {\n grid[r + dr] ??= [];\n for (let dc = 0; dc < colspan; dc++) grid[r + dr][c + dc] = cell;\n }\n c += colspan;\n }\n });\n return { grid, pos };\n }\n\n /** Jeden przebieg rozszerzania granic o komórki wystające poza region; `true` = coś się zmieniło. */\n private growBounds(grid: HTMLTableCellElement[][], pos: GridPos, b: Bounds): boolean {\n let changed = false;\n for (const cell of this.cellsInRegion(grid, b)) {\n const p = pos.get(cell)!;\n if (p.r < b.r0) { b.r0 = p.r; changed = true; }\n if (p.c < b.c0) { b.c0 = p.c; changed = true; }\n if (p.r + p.rowspan - 1 > b.r1) { b.r1 = p.r + p.rowspan - 1; changed = true; }\n if (p.c + p.colspan - 1 > b.c1) { b.c1 = p.c + p.colspan - 1; changed = true; }\n }\n return changed;\n }\n\n /** Komórki leżące w prostokącie siatki (scalone trafiają raz — to `Set`). */\n private cellsInRegion(grid: HTMLTableCellElement[][], b: Bounds): Set<HTMLTableCellElement> {\n const set = new Set<HTMLTableCellElement>();\n for (let r = b.r0; r <= b.r1; r++) {\n for (let c = b.c0; c <= b.c1; c++) {\n const cell = grid[r]?.[c];\n if (cell) set.add(cell);\n }\n }\n return set;\n }\n\n private selectRegion(anchor: HTMLTableCellElement, focus: HTMLTableCellElement): void {\n const table = anchor.closest('table') as HTMLTableElement | null;\n if (!table) return;\n const { grid, pos } = this.buildGrid(table);\n const a = pos.get(anchor);\n const f = pos.get(focus);\n if (!a || !f) return;\n const bounds: Bounds = {\n r0: Math.min(a.r, f.r),\n c0: Math.min(a.c, f.c),\n r1: Math.max(a.r + a.rowspan - 1, f.r + f.rowspan - 1),\n c1: Math.max(a.c + a.colspan - 1, f.c + f.colspan - 1),\n };\n // Rozszerzaj, aż region w pełni obejmie scalone komórki na brzegach.\n while (this.growBounds(grid, pos, bounds)) {\n /* granice rosną do skutku */\n }\n const set = this.cellsInRegion(grid, bounds);\n this.clearSelection();\n for (const cell of set) cell.classList.add('kpt-rt-cell-sel');\n this.selCells = set;\n this.selCount.set(set.size);\n }\n\n private clearSelection(): void {\n for (const cell of this.selCells) cell.classList.remove('kpt-rt-cell-sel');\n this.selCells = new Set();\n this.selCount.set(0);\n }\n\n // ── Scalanie / dzielenie ──\n protected mergeCells(): void {\n if (this.selCells.size < 2) return;\n const cells = [...this.selCells];\n const table = cells[0].closest('table') as HTMLTableElement;\n const { pos } = this.buildGrid(table);\n let r0 = Infinity, c0 = Infinity, r1 = -1, c1 = -1;\n for (const cell of cells) {\n const p = pos.get(cell)!;\n r0 = Math.min(r0, p.r); c0 = Math.min(c0, p.c);\n r1 = Math.max(r1, p.r + p.rowspan - 1); c1 = Math.max(c1, p.c + p.colspan - 1);\n }\n const topLeft = cells.find((cell) => { const p = pos.get(cell)!; return p.r === r0 && p.c === c0; }) ?? cells[0];\n // Przenieś niepustą treść pozostałych komórek do górnej-lewej.\n for (const cell of cells) {\n if (cell === topLeft) continue;\n const html = cell.innerHTML.trim();\n if (html && html !== '<br>') topLeft.innerHTML += ` ${html}`;\n cell.remove();\n }\n const colspan = c1 - c0 + 1;\n const rowspan = r1 - r0 + 1;\n if (colspan > 1) topLeft.colSpan = colspan; else topLeft.removeAttribute('colspan');\n if (rowspan > 1) topLeft.rowSpan = rowspan; else topLeft.removeAttribute('rowspan');\n this.clearSelection();\n this.menuOpen.set(false);\n this.onInput();\n }\n protected splitCell(): void {\n const cell = this.ctxCell;\n if (!cell) return;\n const table = cell.closest('table') as HTMLTableElement;\n const { pos } = this.buildGrid(table);\n const p = pos.get(cell);\n if (!p || (p.colspan <= 1 && p.rowspan <= 1)) return;\n const tag = cell.tagName.toLowerCase();\n cell.removeAttribute('colspan');\n cell.removeAttribute('rowspan');\n // Uzupełnij brakujące pozycje siatki pustymi komórkami (dla każdego pokrytego wiersza).\n for (let dr = 0; dr < p.rowspan; dr++) {\n const count = dr === 0 ? p.colspan - 1 : p.colspan; // origin zostaje w pierwszym wierszu\n if (count <= 0) continue;\n const row = table.rows[p.r + dr];\n const before = this.cellBeforeGridCol(row, p.c, table);\n for (let i = 0; i < count; i++) {\n const el = document.createElement(tag);\n el.innerHTML = '<br>';\n if (before) before.before(el);\n else row.append(el); // brak komórki o większym origin-col → na koniec wiersza\n }\n }\n this.menuOpen.set(false);\n this.onInput();\n }\n /** Komórka w wierszu, przed którą wstawić (pierwsza o origin-col > gridCol), lub null (na koniec). */\n private cellBeforeGridCol(row: HTMLTableRowElement, gridCol: number, table: HTMLTableElement): HTMLTableCellElement | null {\n const { pos } = this.buildGrid(table);\n for (const cell of Array.from(row.cells)) {\n const p = pos.get(cell);\n if (p && p.c > gridCol) return cell;\n }\n return null;\n }\n protected canMerge(): boolean {\n return this.selCells.size >= 2;\n }\n protected canSplit(): boolean {\n return this.canSplitCtx;\n }\n\n /**\n * Waliduje URL z narzędzia „link\" (blocklista jest obchodzalna, np. `javascript:`).\n * Brak schematu → dopisz `https://` (spójne z zachowaniem `normalizeUrl` w mapie); `#`/`/`\n * przechodzą bez zmian; schemat spoza `SAFE_URL_SCHEME` → `null` (link nie zostaje wstawiony).\n */\n // ── Wzmianki (`@`) ──\n\n /**\n * Sprawdza, czy kursor stoi w zapytaniu `@…`, i ustawia listę podpowiedzi.\n *\n * Zapytanie liczymy z **węzła tekstowego**, nie z całego HTML-a: w treści siedzą tagi, a `@`\n * ma widzieć tylko to, co użytkownik naprawdę napisał w tym miejscu. Rozpoznanie zostawiamy\n * `mentionQuery()` z `@konce-pt/mention` — te same reguły działają w obu portach i w zwykłym\n * polu tekstowym.\n */\n private syncMention(): void {\n if (this.disabled() || !this.mentions().length) return this.closeMention();\n\n const selection = window.getSelection();\n const node = selection?.anchorNode;\n if (!selection?.isCollapsed || !(node instanceof Text) || !this.inEditor()) return this.closeMention();\n\n const query = mentionQuery(node.data, selection.anchorOffset);\n if (!query) return this.closeMention();\n\n const matches = filterMentions(this.mentions(), query.query, this.mentionLimit());\n if (!matches.length) return this.closeMention();\n\n this.mentionRange = { node, start: query.start, end: query.end };\n this.mentionMatches.set(matches);\n this.mentionActive.set(0);\n this.mentionPoint.set(this.caretPoint(node, query.end));\n this.mentionOpen.set(true);\n }\n\n /** Punkt pod kursorem — lista podpowiedzi zaczepia się o niego, bo `@` nie ma swojego elementu. */\n private caretPoint(node: Text, offset: number): { x: number; y: number } {\n const range = document.createRange();\n range.setStart(node, Math.min(offset, node.length));\n range.collapse(true);\n const rect = range.getBoundingClientRect();\n // Zwinięty zakres na początku wiersza potrafi dać zerowy prostokąt — wtedy bierzemy\n // krawędź samego edytora, żeby lista nie wylądowała w rogu ekranu.\n if (rect.width === 0 && rect.height === 0) {\n const fallback = this.editor()?.nativeElement.getBoundingClientRect();\n return { x: fallback?.left ?? 0, y: fallback?.top ?? 0 };\n }\n return { x: rect.left, y: rect.bottom };\n }\n\n /** Klawiatura listy podpowiedzi; `true` = zdarzenie obsłużone i edytor go już nie zobaczy. */\n private onMentionKeydown(event: KeyboardEvent): boolean {\n const count = this.mentionMatches().length;\n if (!count) return false;\n\n switch (event.key) {\n case 'ArrowDown':\n this.mentionActive.update((index) => (index + 1) % count);\n break;\n case 'ArrowUp':\n this.mentionActive.update((index) => (index - 1 + count) % count);\n break;\n case 'Enter':\n case 'Tab': {\n const item = this.mentionMatches()[this.mentionActive()];\n if (!item) return false;\n this.insertMention(item);\n break;\n }\n case 'Escape':\n this.closeMention();\n break;\n default:\n return false;\n }\n\n event.preventDefault();\n return true;\n }\n\n /**\n * Wstawia wzmiankę w miejsce zapytania `@…`.\n *\n * Wzmianka jest elementem, nie samym tekstem: `data-mention` niesie identyfikator, który\n * przeżyje zmianę nazwy, a `contenteditable=\"false\"` trzyma ją w jednym kawałku — bez tego\n * kursor wchodziłby w środek nazwiska i psuł zapis. Spacja po wzmiance daje gdzie postawić\n * kursor: bez niej nie da się wyjść poza element, który nie jest edytowalny.\n */\n protected insertMention(item: KptMentionItem): void {\n const target = this.mentionRange;\n if (!target) return;\n\n const range = document.createRange();\n range.setStart(target.node, target.start);\n range.setEnd(target.node, Math.min(target.end, target.node.length));\n range.deleteContents();\n\n const element = document.createElement('span');\n element.className = 'kpt-mention';\n element.dataset['mention'] = item.id;\n element.setAttribute('contenteditable', 'false');\n element.textContent = '@' + item.label;\n\n const space = document.createTextNode(' ');\n range.insertNode(space);\n range.insertNode(element);\n\n const after = document.createRange();\n after.setStartAfter(space);\n after.collapse(true);\n const selection = window.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(after);\n\n this.closeMention();\n this.onInput();\n this.mentioned.emit(item);\n }\n\n protected closeMention(): void {\n this.mentionRange = null;\n this.mentionMatches.set([]);\n if (this.mentionOpen()) this.mentionOpen.set(false);\n }\n\n private sanitizeUrl(url: string): string | null {\n const trimmed = url.trim().replace(/[\\x00-\\x1f]/g, '');\n if (!trimmed) return null;\n if (trimmed.startsWith('#') || trimmed.startsWith('/')) return trimmed;\n if (!HAS_URL_SCHEME.test(trimmed)) return `https://${trimmed}`;\n return SAFE_URL_SCHEME.test(trimmed) ? trimmed : null;\n }\n\n private sanitizeHtml(html: string): string {\n const tpl = document.createElement('template');\n tpl.innerHTML = html;\n for (const el of Array.from(tpl.content.querySelectorAll('*'))) this.sanitizeElement(el);\n return tpl.innerHTML;\n }\n\n /** Tag spoza allowlisty rozwijamy do dzieci; atrybuty czyścimy po kolei. */\n private sanitizeElement(el: Element): void {\n if (!ALLOWED_TAGS.has(el.tagName)) {\n el.replaceWith(...Array.from(el.childNodes));\n return;\n }\n for (const attr of Array.from(el.attributes)) this.sanitizeAttribute(el, attr);\n }\n\n private sanitizeAttribute(el: Element, attr: Attr): void {\n const name = attr.name.toLowerCase();\n if (name.startsWith('on')) {\n el.removeAttribute(attr.name);\n } else if (name === 'href' || name === 'src') {\n // Usuń znaki kontrolne przed testem schematu — przeglądarka i tak je ignoruje przy\n // parsowaniu URL-a (WHATWG URL spec), więc `jav\\tascript:` obchodziłby sam blocklisting.\n if (/^\\s*javascript:/i.test(attr.value.replace(/[\\x00-\\x1f]/g, ''))) el.removeAttribute(attr.name);\n } else if (name === 'style') {\n const kept = this.sanitizeStyleAttr(attr.value);\n if (kept) el.setAttribute('style', kept);\n else el.removeAttribute('style');\n } else if (!ALLOWED_ATTRS.has(name) && name !== 'color') {\n el.removeAttribute(attr.name);\n }\n }\n\n /** Deklaracje `style` z allowlisty; `null`, gdy nie zostaje nic. */\n private sanitizeStyleAttr(value: string): string | null {\n const kept = value\n .split(';')\n .map((decl) => decl.trim())\n .filter((decl) => ALLOWED_STYLES.has(decl.split(':')[0]?.trim().toLowerCase()));\n return kept.length ? kept.join('; ') : null;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/** Wartość suwaka: pojedyncza liczba lub para `[min, max]` w trybie `range`. */\nexport type KptSliderValue = number | [number, number];\n\n/**\n * Suwak wartości (slider) na Signal Forms.\n * W trybie `range` udostępnia dwa uchwyty, a wartość jest parą `[min, max]`.\n *\n * Pod `[formField]` zakres bierze się ze schematu (`min(path.volume, 0)`,\n * `max(path.volume, 100)`) — `[min]`/`[max]` obok `[formField]` to błąd kompilacji.\n * Tryb `range` (wartość `[number, number]`) łączy się więc tylko z `[(value)]`.\n *\n * @example\n * <kpt-slider [formField]=\"f.volume\" [step]=\"5\" showValue />\n * <kpt-slider [(value)]=\"volume\" [min]=\"0\" [max]=\"100\" [step]=\"5\" showValue />\n * <kpt-slider range [(value)]=\"zakres\" [min]=\"0\" [max]=\"100\" showValue />\n */\n@Component({\n selector: 'kpt-slider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (range()) {\n <div class=\"kpt-slider__range\">\n <div class=\"kpt-slider__rail\"></div>\n <div class=\"kpt-slider__fill\" [style.left.%]=\"lowPct()\" [style.right.%]=\"100 - highPct()\"></div>\n <input\n class=\"kpt-slider__thumb kpt-slider__thumb--low\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"low()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"'Minimum'\"\n (input)=\"setLow(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n <input\n class=\"kpt-slider__thumb kpt-slider__thumb--high\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"high()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"'Maksimum'\"\n (input)=\"setHigh(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n </div>\n @if (showValue()) {\n <span class=\"kpt-slider__value\">{{ low() }}–{{ high() }}</span>\n }\n } @else {\n <input\n class=\"kpt-slider__input\"\n type=\"range\"\n [min]=\"minN()\"\n [max]=\"maxN()\"\n [step]=\"step()\"\n [value]=\"single()\"\n [disabled]=\"disabled()\"\n [style.--_pct.%]=\"highPct()\"\n (input)=\"value.set(+$any($event.target).value)\"\n (change)=\"touch.emit()\"\n />\n @if (showValue()) {\n <span class=\"kpt-slider__value\">{{ single() }}</span>\n }\n }\n `,\n styleUrl: './slider.component.scss',\n host: { class: 'kpt-slider-host' },\n})\nexport class KptSlider implements FormValueControl<KptSliderValue> {\n readonly value = model<KptSliderValue>(0);\n /** Tryb zakresu: dwa uchwyty; wartość jako para `[min, max]`. */\n readonly range = input(false, { transform: booleanAttribute });\n // Typ zgodny z FormValueControl<KptSliderValue> (FormField może zsync-ować walidatory min/max).\n // W praktyce zawsze liczby — do matematyki/szablonu używamy skalarnych `minN`/`maxN`.\n readonly min = input<KptSliderValue | undefined>(0);\n readonly max = input<KptSliderValue | undefined>(100);\n readonly step = input(1);\n readonly showValue = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n // Skalarne granice do szablonu i obliczeń (min/max są typowane szeroko dla FormValueControl).\n private toNum(v: KptSliderValue | undefined, fallback: number): number {\n return typeof v === 'number' ? v : fallback;\n }\n protected readonly minN = computed(() => this.toNum(this.min(), 0));\n protected readonly maxN = computed(() => this.toNum(this.max(), 100));\n\n /** Bieżąca para `[low, high]` — również dla trybu pojedynczego (low = min). */\n private readonly pair = computed<[number, number]>(() => {\n const v = this.value();\n if (Array.isArray(v)) return [v[0], v[1]];\n return [this.minN(), v];\n });\n protected readonly single = computed(() => {\n const v = this.value();\n return Array.isArray(v) ? v[1] : v;\n });\n protected readonly low = computed(() => this.pair()[0]);\n protected readonly high = computed(() => this.pair()[1]);\n\n protected setLow(v: number): void {\n const [, hi] = this.pair();\n this.value.set([Math.min(v, hi), hi]);\n }\n protected setHigh(v: number): void {\n const [lo] = this.pair();\n this.value.set([lo, Math.max(v, lo)]);\n }\n\n private pct(val: number): number {\n const mn = this.minN();\n const mx = this.maxN();\n const range = mx - mn;\n return range <= 0 ? 0 : ((val - mn) / range) * 100;\n }\n protected readonly lowPct = computed(() => this.pct(this.low()));\n protected readonly highPct = computed(() => this.pct(this.high()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Ocena gwiazdkami (rating) na Signal Forms.\n *\n * @example\n * <kpt-rating [formField]=\"f.score\" [count]=\"5\" />\n * <kpt-rating [value]=\"4\" readonly />\n */\n@Component({\n selector: 'kpt-rating',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-rating\" role=\"slider\" [attr.aria-valuenow]=\"value()\" [attr.aria-valuemax]=\"count()\">\n @for (star of stars(); track star) {\n <button\n type=\"button\"\n class=\"kpt-rating__star\"\n [class.is-filled]=\"star <= (hover() || value())\"\n [disabled]=\"readonly() || disabled()\"\n (click)=\"pick(star)\"\n (mouseenter)=\"hover.set(star)\"\n (mouseleave)=\"hover.set(0)\"\n [attr.aria-label]=\"i18n.t('rating.star', { value: star, max: count() })\"\n ><kpt-icon name=\"star\" /></button>\n }\n </div>\n `,\n styleUrl: './rating.component.scss',\n host: { class: 'kpt-rating-host' },\n})\nexport class KptRating implements FormValueControl<number> {\n readonly value = model<number>(0);\n /** Liczba gwiazdek. */\n readonly count = input(5);\n readonly readonly = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n\n protected readonly hover = signal(0);\n protected readonly stars = computed(() => Array.from({ length: this.count() }, (_, i) => i + 1));\n\n protected pick(star: number): void {\n if (this.readonly() || this.disabled()) return;\n this.value.set(this.value() === star ? 0 : star);\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Wgrywanie plików (drag-drop + wybór). Wartość = File[]. Signal Forms.\n *\n * @example\n * <kpt-file-upload [formField]=\"f.files\" accept=\"image/*\" multiple />\n */\n@Component({\n selector: 'kpt-file-upload',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div\n class=\"kpt-file-upload__zone\"\n [class.is-dragover]=\"dragover()\"\n [class.is-disabled]=\"disabled()\"\n (click)=\"fileInput.click()\"\n (dragover)=\"onDragOver($event)\"\n (dragleave)=\"dragover.set(false)\"\n (drop)=\"onDrop($event)\"\n >\n <input #fileInput type=\"file\" hidden [accept]=\"accept()\" [multiple]=\"multiple()\" (change)=\"onSelect($event)\" />\n <kpt-icon name=\"upload\" class=\"kpt-file-upload__icon\" />\n <div class=\"kpt-file-upload__text\" [innerHTML]=\"i18n.t('fileUpload.hint')\"></div>\n @if (accept()) { <div class=\"kpt-file-upload__hint\">{{ accept() }}</div> }\n </div>\n\n @if (value().length) {\n <ul class=\"kpt-file-upload__list\">\n @for (file of value(); track file.name) {\n <li class=\"kpt-file-upload__file\">\n <kpt-icon name=\"photo\" />\n <span class=\"kpt-file-upload__name\">{{ file.name }}</span>\n <span class=\"kpt-file-upload__size\">{{ size(file) }}</span>\n <button type=\"button\" class=\"kpt-file-upload__remove\" (click)=\"remove(file, $event)\" [attr.aria-label]=\"i18n.t('fileUpload.remove')\"><kpt-icon name=\"trash\" /></button>\n </li>\n }\n </ul>\n }\n `,\n styleUrl: './file-upload.component.scss',\n host: { class: 'kpt-file-upload-host' },\n})\nexport class KptFileUpload implements FormValueControl<File[]> {\n readonly value = model<File[]>([]);\n readonly accept = input('');\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly dragover = signal(false);\n\n protected onSelect(event: Event): void {\n const input = event.target as HTMLInputElement;\n this.addFiles(input.files);\n input.value = '';\n }\n protected onDragOver(event: DragEvent): void {\n event.preventDefault();\n if (!this.disabled()) this.dragover.set(true);\n }\n protected onDrop(event: DragEvent): void {\n event.preventDefault();\n this.dragover.set(false);\n if (!this.disabled()) this.addFiles(event.dataTransfer?.files);\n }\n private addFiles(list: FileList | null | undefined): void {\n if (!list?.length) return;\n const arr = Array.from(list);\n this.value.set(this.multiple() ? [...this.value(), ...arr] : arr.slice(0, 1));\n this.touch.emit();\n }\n protected remove(file: File, event: Event): void {\n event.stopPropagation();\n this.value.set(this.value().filter((f) => f !== file));\n }\n protected size(file: File): string {\n const kb = file.size / 1024;\n return kb < 1024 ? `${kb.toFixed(0)} KB` : `${(kb / 1024).toFixed(1)} MB`;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Wybór koloru (swatch + hex + presety) na Signal Forms. Wartość = hex, np. '#3b82f6'.\n *\n * @example\n * <kpt-color-picker [formField]=\"f.brand\" />\n */\n@Component({\n selector: 'kpt-color-picker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-color-picker\">\n <label class=\"kpt-color-picker__swatch\" [style.background-color]=\"value()\">\n <input\n type=\"color\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n (input)=\"value.set($any($event.target).value)\"\n (blur)=\"touch.emit()\"\n />\n </label>\n <input\n type=\"text\"\n class=\"kpt-color-picker__hex\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n maxlength=\"7\"\n (input)=\"onHex($event)\"\n (blur)=\"touch.emit()\"\n />\n <div class=\"kpt-color-picker__presets\">\n @for (color of presets(); track color) {\n <button\n type=\"button\"\n class=\"kpt-color-picker__preset\"\n [class.is-active]=\"color === value()\"\n [style.background-color]=\"color\"\n [disabled]=\"disabled()\"\n (click)=\"value.set(color)\"\n [attr.aria-label]=\"color\"\n ></button>\n }\n </div>\n </div>\n `,\n styleUrl: './color-picker.component.scss',\n host: { class: 'kpt-color-picker-host' },\n})\nexport class KptColorPicker implements FormValueControl<string> {\n readonly value = model<string>('#3b82f6');\n readonly presets = input<readonly string[]>([\n '#ef4444', '#f59e0b', '#10b981', '#3b82f6', '#8b5cf6', '#ec4899', '#111827', '#ffffff',\n ]);\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n protected onHex(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n }\n}\n","<div\n class=\"kpt-date-range\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n role=\"button\"\n tabindex=\"0\"\n [class.kpt-date-range--open]=\"open()\"\n [class.kpt-date-range--disabled]=\"disabled()\"\n [class.kpt-date-range--invalid]=\"showInvalid()\"\n (click)=\"toggleOpen()\"\n (keydown.enter)=\"toggleOpen()\"\n (blur)=\"touch.emit()\"\n>\n @if (display()) {\n <span class=\"kpt-date-range__value\">{{ display() }}</span>\n } @else {\n <span class=\"kpt-date-range__placeholder\">{{ effectivePlaceholder() }}</span>\n }\n <span class=\"kpt-date-range__spacer\"></span>\n @if (display()) {\n <button type=\"button\" class=\"kpt-date-range__clear\" (click)=\"clear($event)\" [attr.aria-label]=\"i18n.t('common.clear')\"><kpt-icon name=\"x\" /></button>\n }\n <kpt-icon class=\"kpt-date-range__icon\" name=\"calendar\" />\n</div>\n\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n>\n <div\n class=\"kpt-calendar\"\n [class.kpt-calendar--clock]=\"mode() === 'time'\"\n [class.kpt-calendar--range]=\"mode() !== 'time'\"\n [class.kpt-calendar--multi]=\"multi() && mode() !== 'time'\"\n (keydown.escape)=\"close()\"\n >\n @if (mode() === 'time') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.from') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.to') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n } @else {\n <div class=\"kpt-calendar__panels\">\n @for (panel of panels(); track panel.key; let first = $first, last = $last) {\n <div class=\"kpt-calendar__panel\">\n <!-- Strzałki tylko na skrajnych panelach; puste sloty trzymają tytuł na środku. -->\n <div class=\"kpt-calendar__header\">\n @if (first) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"prevMonth()\" [attr.aria-label]=\"i18n.t('datepicker.prevMonth')\"><kpt-icon name=\"chevron-left\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n <span class=\"kpt-calendar__title\">{{ panel.label }}</span>\n @if (last) {\n <button type=\"button\" class=\"kpt-calendar__nav\" (click)=\"nextMonth()\" [attr.aria-label]=\"i18n.t('datepicker.nextMonth')\"><kpt-icon name=\"chevron-right\" /></button>\n } @else {\n <span class=\"kpt-calendar__nav-slot\"></span>\n }\n </div>\n <div class=\"kpt-calendar__weekdays\">\n @for (wd of weekdays(); track wd) {\n <span class=\"kpt-calendar__weekday\">{{ wd }}</span>\n }\n </div>\n <div class=\"kpt-calendar__grid\">\n @for (week of panel.weeks; track $index) {\n @for (cell of week; track cell.iso) {\n @if (cell.blank) {\n <span class=\"kpt-calendar__day kpt-calendar__day--blank\"></span>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-calendar__day\"\n [class.kpt-calendar__day--muted]=\"!cell.inMonth\"\n [class.kpt-calendar__day--today]=\"cell.today\"\n [class.kpt-calendar__day--range]=\"cell.inRange\"\n [class.kpt-calendar__day--range-start]=\"cell.rangeStart\"\n [class.kpt-calendar__day--range-end]=\"cell.rangeEnd\"\n [class.kpt-calendar__day--selected]=\"cell.isStart || cell.isEnd\"\n (click)=\"selectDay(cell)\"\n >{{ cell.day }}</button>\n }\n }\n }\n </div>\n </div>\n }\n </div>\n\n @if (mode() === 'datetime') {\n <div class=\"kpt-range-tabs\">\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'start'\" (click)=\"timeEnd.set('start')\">{{ i18n.t('dateRange.fromTime') }}</button>\n <button type=\"button\" [class.is-active]=\"timeEnd() === 'end'\" (click)=\"timeEnd.set('end')\">{{ i18n.t('dateRange.toTime') }}</button>\n </div>\n @if (timeEnd() === 'start') {\n <kpt-clock [value]=\"startTime()\" (valueChange)=\"startTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n } @else {\n <kpt-clock [value]=\"endTime()\" (valueChange)=\"endTime.set($event)\" [hourFormat]=\"hourFormat()\" [minuteStep]=\"minuteStep()\" />\n }\n <div class=\"kpt-calendar__footer\">\n <kpt-button size=\"sm\" (click)=\"commit()\">{{ i18n.t('common.done') }}</kpt-button>\n </div>\n }\n }\n </div>\n</ng-template>\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport {\n buildRangeGrid,\n clampVisibleMonths,\n datePart,\n formatDate,\n formatTime,\n pad,\n parseTime,\n pickRangeDay,\n timePart,\n toIso,\n type KptCalendarPage,\n type KptDateRangeMode,\n type KptDateRangeValue,\n type KptMonthPanel,\n type KptRangeDayCell,\n} from '@konce-pt/datetime';\nimport { KptButton } from '../button/button.component';\nimport { KptClock } from '../datepicker/clock.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { monthNames, weekdayNames } from '../i18n/intl';\nimport { KptIcon } from '../icon/icon.component';\n\n// Kształt wartości i granulacja zakresu żyją w `@konce-pt/datetime` — tu tylko re-eksport,\n// żeby publiczne API biblioteki się nie zmieniło.\nexport type { KptDateRangeMode, KptDateRangeValue };\n\n/**\n * Wybór zakresu dat z kalendarzem (CDK Overlay), Signal Forms.\n * `mode`: 'date' (domyślnie), 'datetime' (data+godzina, tarcza zegara), 'time' (sama godzina).\n * `visibleMonths` pokazuje kilka miesięcy obok siebie (typowo 2) — zakres podświetla się\n * ciągłym pasmem przez wszystkie panele.\n * Wartość: `{ start, end }` — daty 'RRRR-MM-DD', datetime 'RRRR-MM-DDTHH:mm', godziny 'HH:mm'.\n * Wymaga `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-date-range [formField]=\"f.period\" />\n * <kpt-date-range [visibleMonths]=\"2\" [(value)]=\"period\" />\n * <kpt-date-range mode=\"datetime\" [hourFormat]=\"12\" [(value)]=\"span\" />\n * <kpt-date-range mode=\"time\" [(value)]=\"hours\" />\n */\n@Component({\n selector: 'kpt-date-range',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon, KptButton, KptClock],\n templateUrl: './date-range.component.html',\n styleUrl: './date-range.component.scss',\n host: { class: 'kpt-date-range-host' },\n})\nexport class KptDateRange implements FormValueControl<KptDateRangeValue> {\n readonly value = model<KptDateRangeValue>({ start: '', end: '' });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n /** Placeholder; bez wartości używa i18n (`dateRange.placeholder`). */\n readonly placeholder = input<string>();\n readonly displayFormat = input<'pl' | 'iso'>('pl');\n readonly mode = input<KptDateRangeMode>('date');\n /** Liczba miesięcy obok siebie (1–3; domyślnie 1). Ignorowana w trybie 'time'. */\n readonly visibleMonths = input(1, { transform: numberAttribute });\n readonly hourFormat = input(24, { transform: numberAttribute });\n readonly minuteStep = input(1, { transform: numberAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly weekdays = computed(() => weekdayNames(this.i18n.locale()));\n private readonly months = computed(() => monthNames(this.i18n.locale()));\n protected readonly effectivePlaceholder = computed(() => this.placeholder() ?? this.i18n.t('dateRange.placeholder'));\n protected readonly open = signal(false);\n private readonly today = new Date();\n private readonly view = signal<KptCalendarPage>({ y: this.today.getFullYear(), m: this.today.getMonth() });\n\n // ── Bufory czasu (tryby datetime/time) ──\n protected readonly startTime = signal('');\n protected readonly endTime = signal('');\n protected readonly timeEnd = signal<'start' | 'end'>('start'); // który koniec edytuje tarcza\n // Daty zakresu (część kalendarzowa dla datetime — bez czasu)\n private readonly startDate = signal('');\n private readonly endDate = signal('');\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected readonly panelCount = computed(() => clampVisibleMonths(this.visibleMonths()));\n protected readonly multi = computed(() => this.panelCount() > 1);\n\n private fmtDate(iso: string): string {\n return formatDate(iso, this.displayFormat());\n }\n private fmtTime(hhmm: string): string {\n const t = parseTime(hhmm);\n return t ? formatTime(t.h, t.m, this.hourFormat() === 12 ? 12 : 24) : '';\n }\n\n protected readonly display = computed(() => {\n const { start, end } = this.value();\n if (!start) return '';\n const mode = this.mode();\n if (mode === 'time') {\n return end ? `${this.fmtTime(start)} – ${this.fmtTime(end)}` : `${this.fmtTime(start)} – …`;\n }\n if (mode === 'datetime') {\n const one = (v: string): string => {\n const d = this.fmtDate(datePart(v));\n const t = this.fmtTime(timePart(v));\n return t ? `${d} ${t}` : d;\n };\n return end ? `${one(start)} – ${one(end)}` : `${one(start)} – …`;\n }\n return end ? `${this.fmtDate(start)} – ${this.fmtDate(end)}` : `${this.fmtDate(start)} – …`;\n });\n\n /**\n * Panele miesięcy. Przy kilku panelach dni sąsiednich miesięcy są wygaszane do pustych slotów:\n * inaczej ta sama data byłaby klikalna dwa razy (jako „wyszarzona\" w jednym panelu i właściwa\n * w drugim) i pasmo zakresu malowałoby się w obu miejscach.\n */\n protected readonly panels = computed<KptMonthPanel[]>(() => {\n const { y, m } = this.view();\n const datetime = this.mode() === 'datetime';\n return Array.from({ length: this.panelCount() }, (_, i) => {\n const first = new Date(y, m + i, 1);\n const py = first.getFullYear();\n const pm = first.getMonth();\n return {\n key: `${py}-${pad(pm + 1)}`,\n label: `${this.months()[pm]} ${py}`,\n weeks: buildRangeGrid({\n page: { y: py, m: pm },\n start: datetime ? this.startDate() : this.value().start,\n end: datetime ? this.endDate() : this.value().end,\n todayIso: toIso(this.today),\n // Przy kilku panelach dni sąsiednich miesięcy stają się pustymi slotami — inaczej ta\n // sama data byłaby klikalna dwa razy, a pasmo malowałoby się w obu miejscach.\n hideOutside: this.multi(),\n }),\n };\n });\n });\n\n protected toggleOpen(): void {\n if (this.disabled()) return;\n if (!this.open()) {\n const { start, end } = this.value();\n const base = datePart(start) || toIso(this.today);\n const d = new Date(base);\n this.view.set({ y: d.getFullYear(), m: d.getMonth() });\n if (this.mode() === 'datetime') {\n this.startDate.set(datePart(start));\n this.endDate.set(datePart(end));\n this.startTime.set(timePart(start) || '00:00');\n this.endTime.set(timePart(end) || '00:00');\n } else if (this.mode() === 'time') {\n this.startTime.set(/^\\d{2}:\\d{2}$/.test(start) ? start : '00:00');\n this.endTime.set(/^\\d{2}:\\d{2}$/.test(end) ? end : '00:00');\n }\n this.timeEnd.set('start');\n }\n this.open.update((o) => !o);\n }\n protected close(): void {\n if (!this.open()) return;\n this.open.set(false);\n this.touch.emit();\n }\n\n protected selectDay(cell: KptRangeDayCell): void {\n if (cell.blank || cell.disabled) return;\n if (this.mode() === 'datetime') {\n // Część kalendarzowa czeka na godziny — wartość powstaje dopiero przy „Gotowe\".\n const next = pickRangeDay({ start: this.startDate(), end: this.endDate() }, cell.iso);\n this.startDate.set(next.start);\n this.endDate.set(next.end);\n return;\n }\n const next = pickRangeDay(this.value(), cell.iso);\n this.value.set(next);\n if (next.end) this.close();\n }\n\n protected commit(): void {\n if (this.mode() === 'time') {\n const s = this.startTime() || '00:00';\n const e = this.endTime() || '00:00';\n // Normalizacja kolejności (start ≤ end).\n this.value.set(s <= e ? { start: s, end: e } : { start: e, end: s });\n } else if (this.mode() === 'datetime') {\n const sd = this.startDate();\n const ed = this.endDate() || sd;\n if (!sd) {\n this.close();\n return;\n }\n const start = `${sd}T${this.startTime() || '00:00'}`;\n const end = `${ed}T${this.endTime() || '00:00'}`;\n this.value.set(start <= end ? { start, end } : { start: end, end: start });\n }\n this.close();\n }\n\n protected prevMonth(): void {\n this.view.update(({ y, m }) => (m === 0 ? { y: y - 1, m: 11 } : { y, m: m - 1 }));\n }\n protected nextMonth(): void {\n this.view.update(({ y, m }) => (m === 11 ? { y: y + 1, m: 0 } : { y, m: m + 1 }));\n }\n protected clear(event: Event): void {\n event.stopPropagation();\n this.value.set({ start: '', end: '' });\n this.startDate.set('');\n this.endDate.set('');\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Pole liczbowe ze strzałkami krokowania na Signal Forms. Wartość = number | null.\n * `showButtons=\"false\"` chowa strzałki — wariant do zakresów „od–do\", gdzie krokowanie\n * nie ma sensu, a pole ma wyglądać jak zwykłe `kpt-input` obok.\n *\n * Pod `[formField]` granic NIE bindujemy w szablonie — `[min]`/`[max]` obok `[formField]`\n * to błąd kompilacji. Deklaruje je schemat (`min(path.qty, 0)`, `max(path.qty, 99)`),\n * a dyrektywa `FormField` sama wstrzykuje je w wejścia `min`/`max`.\n *\n * @example\n * <kpt-input-number [formField]=\"f.qty\" [step]=\"1\" />\n * <kpt-input-number [(value)]=\"qty\" [min]=\"0\" [max]=\"99\" suffix=\" szt.\" />\n * <kpt-input-number [formField]=\"f.priceFrom\" [showButtons]=\"false\" suffix=\" zł\" />\n */\n@Component({\n selector: 'kpt-input-number',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div\n class=\"kpt-input-number\"\n [class.kpt-input-number--disabled]=\"disabled()\"\n [class.kpt-input-number--invalid]=\"showInvalid()\"\n [class.kpt-input-number--plain]=\"!showButtons()\"\n >\n @if (showButtons()) {\n <button type=\"button\" class=\"kpt-input-number__btn\" [disabled]=\"disabled() || !canDec()\" (click)=\"step_(-1)\" [attr.aria-label]=\"i18n.t('inputNumber.decrement')\"><kpt-icon name=\"minus\" /></button>\n }\n <input\n class=\"kpt-input-number__input\"\n type=\"text\"\n inputmode=\"decimal\"\n [value]=\"display()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n />\n @if (showButtons()) {\n <button type=\"button\" class=\"kpt-input-number__btn\" [disabled]=\"disabled() || !canInc()\" (click)=\"step_(1)\" [attr.aria-label]=\"i18n.t('inputNumber.increment')\"><kpt-icon name=\"plus\" /></button>\n }\n </div>\n `,\n styleUrl: './input-number.component.scss',\n host: { class: 'kpt-input-number-host' },\n})\nexport class KptInputNumber implements FormValueControl<number | null> {\n readonly value = model<number | null>(null);\n readonly min = input<number | undefined>(undefined);\n readonly max = input<number | undefined>(undefined);\n readonly step = input(1);\n readonly placeholder = input('');\n readonly suffix = input('');\n /** Pokaż przyciski krokowania. `false` daje samo pole — wariant do zakresów „od–do\". */\n readonly showButtons = input(true, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n\n protected readonly display = computed(() => {\n const v = this.value();\n if (v === null || v === undefined || Number.isNaN(v)) return '';\n return `${v}${this.suffix()}`;\n });\n protected readonly canInc = computed(() => {\n const mx = this.max();\n return mx === undefined || (this.value() ?? -Infinity) < mx;\n });\n protected readonly canDec = computed(() => {\n const mn = this.min();\n return mn === undefined || (this.value() ?? Infinity) > mn;\n });\n\n protected onInput(event: Event): void {\n const raw = (event.target as HTMLInputElement).value.replace(this.suffix(), '').replace(',', '.').trim();\n if (raw === '') {\n this.value.set(null);\n return;\n }\n const n = Number(raw);\n if (!Number.isNaN(n)) this.value.set(this.clamp(n));\n }\n\n protected step_(dir: 1 | -1): void {\n const base = this.value() ?? this.min() ?? 0;\n this.value.set(this.clamp(base + dir * this.step()));\n this.touch.emit();\n }\n\n private clamp(n: number): number {\n const mn = this.min();\n const mx = this.max();\n if (mn !== undefined && n < mn) return mn;\n if (mx !== undefined && n > mx) return mx;\n return n;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nlet nextUniqueId = 0;\n\ninterface Strength {\n score: 0 | 1 | 2 | 3 | 4;\n label: string;\n}\n\n/**\n * Pole hasła z przełącznikiem widoczności i opcjonalnym miernikiem siły. Signal Forms.\n *\n * @example\n * <kpt-password [formField]=\"f.password\" feedback />\n */\n@Component({\n selector: 'kpt-password',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-password\" [class.kpt-password--disabled]=\"disabled()\" [class.kpt-password--invalid]=\"showInvalid()\">\n <input\n class=\"kpt-password__input\"\n [id]=\"id()\"\n [type]=\"visible() ? 'text' : 'password'\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder()\"\n [attr.autocomplete]=\"autocomplete()\"\n (input)=\"value.set($any($event.target).value)\"\n (blur)=\"touch.emit()\"\n />\n <button type=\"button\" class=\"kpt-password__toggle\" [disabled]=\"disabled()\" (click)=\"visible.set(!visible())\" [attr.aria-label]=\"visible() ? i18n.t('password.hide') : i18n.t('password.show')\">\n <kpt-icon [name]=\"visible() ? 'eye-off' : 'eye'\" />\n </button>\n </div>\n @if (feedback() && value()) {\n <div class=\"kpt-password__meter\" [attr.data-score]=\"strength().score\">\n <div class=\"kpt-password__bars\">\n @for (i of [0,1,2,3]; track i) {\n <span class=\"kpt-password__bar\" [class.is-on]=\"i < strength().score\"></span>\n }\n </div>\n <span class=\"kpt-password__hint\">{{ strength().label }}</span>\n </div>\n }\n `,\n styleUrl: './password.component.scss',\n host: { class: 'kpt-password-host' },\n})\nexport class KptPassword implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly placeholder = input('');\n /** Id natywnego pola — pozwala związać etykietę przez `kpt-form-field [controlId]`. */\n readonly id = input<string>(`kpt-password-${++nextUniqueId}`);\n /**\n * Podpowiedź autouzupełniania. Rejestracja i reset hasła wymagają `new-password` — inaczej\n * menedżer haseł podstawia stare hasło zamiast zaproponować nowe.\n */\n readonly autocomplete = input<string | null>('current-password');\n readonly feedback = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(false);\n\n protected readonly strength = computed<Strength>(() => {\n const v = this.value();\n let s = 0;\n if (v.length >= 8) s++;\n if (/[A-Z]/.test(v) && /[a-z]/.test(v)) s++;\n if (/\\d/.test(v)) s++;\n if (/[^A-Za-z0-9]/.test(v)) s++;\n const score = Math.min(s, 4) as Strength['score'];\n return { score, label: this.i18n.messages().password.strength[score] };\n });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole kodu jednorazowego (OTP/PIN) — N osobnych pól, autofocus i wklejanie. Signal Forms.\n * Wartość = string (sklejone znaki).\n *\n * @example\n * <kpt-input-otp [formField]=\"f.code\" [length]=\"6\" integerOnly />\n */\n@Component({\n selector: 'kpt-input-otp',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-input-otp\" [class.kpt-input-otp--invalid]=\"showInvalid()\">\n @for (i of slots(); track i) {\n <input\n class=\"kpt-input-otp__cell\"\n type=\"text\"\n [attr.inputmode]=\"integerOnly() ? 'numeric' : 'text'\"\n maxlength=\"1\"\n [value]=\"charAt(i)\"\n [disabled]=\"disabled()\"\n (input)=\"onInput(i, $event)\"\n (keydown)=\"onKeydown(i, $event)\"\n (paste)=\"onPaste($event)\"\n (focus)=\"$any($event.target).select()\"\n />\n }\n </div>\n `,\n styleUrl: './input-otp.component.scss',\n host: { class: 'kpt-input-otp-host' },\n})\nexport class KptInputOtp implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly length = input(6);\n readonly integerOnly = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly slots = computed(() => Array.from({ length: this.length() }, (_, i) => i));\n\n protected charAt(i: number): string {\n return this.value()[i] ?? '';\n }\n\n protected onInput(i: number, event: Event): void {\n const el = event.target as HTMLInputElement;\n let ch = el.value.slice(-1);\n if (this.integerOnly() && !/\\d/.test(ch)) ch = '';\n this.setChar(i, ch);\n el.value = this.charAt(i); // sync DOM z modelem — kasuje odrzucony/znormalizowany znak\n if (ch) this.focusSibling(el, 1);\n }\n\n protected onKeydown(i: number, event: KeyboardEvent): void {\n const el = event.target as HTMLInputElement;\n if (event.key === 'Backspace' && !this.charAt(i)) {\n this.focusSibling(el, -1);\n } else if (event.key === 'ArrowLeft') {\n this.focusSibling(el, -1);\n } else if (event.key === 'ArrowRight') {\n this.focusSibling(el, 1);\n }\n }\n\n protected onPaste(event: ClipboardEvent): void {\n event.preventDefault();\n let text = event.clipboardData?.getData('text') ?? '';\n if (this.integerOnly()) text = text.replace(/\\D/g, '');\n this.value.set(text.slice(0, this.length()));\n this.touch.emit();\n }\n\n private setChar(i: number, ch: string): void {\n const arr = this.value().padEnd(this.length(), ' ').split('');\n arr[i] = ch || ' ';\n this.value.set(arr.join('').replace(/ +$/, ''));\n }\n\n private focusSibling(el: HTMLInputElement, dir: 1 | -1): void {\n const target = dir === 1 ? el.nextElementSibling : el.previousElementSibling;\n (target as HTMLInputElement | null)?.focus();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptChip } from '../chip/chip.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Pole tagów — dodawanie Enter/przecinkiem, usuwanie Backspace/×. Signal Forms.\n * Wartość = string[].\n *\n * @example\n * <kpt-chips-input [formField]=\"f.tags\" placeholder=\"Dodaj tag…\" />\n */\n@Component({\n selector: 'kpt-chips-input',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptChip],\n template: `\n <div class=\"kpt-chips-input\" [class.kpt-chips-input--disabled]=\"disabled()\" [class.kpt-chips-input--invalid]=\"showInvalid()\">\n @for (chip of value(); track $index) {\n <kpt-chip variant=\"primary\" [removable]=\"!disabled()\" (removed)=\"removeAt($index)\">{{ chip }}</kpt-chip>\n }\n <input\n class=\"kpt-chips-input__field\"\n type=\"text\"\n [placeholder]=\"value().length ? '' : effectivePlaceholder()\"\n [disabled]=\"disabled()\"\n (keydown)=\"onKeydown($event)\"\n (blur)=\"commit($any($event.target)); touch.emit()\"\n />\n </div>\n `,\n styleUrl: './chips-input.component.scss',\n host: { class: 'kpt-chips-input-host' },\n})\nexport class KptChipsInput implements FormValueControl<string[]> {\n readonly value = model<string[]>([]);\n /** Placeholder; bez wartości używa i18n (`chipsInput.placeholder`). */\n readonly placeholder = input<string>();\n readonly allowDuplicates = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectivePlaceholder = computed(() => this.placeholder() ?? this.i18n.t('chipsInput.placeholder'));\n\n protected onKeydown(event: KeyboardEvent): void {\n const el = event.target as HTMLInputElement;\n if (event.key === 'Enter' || event.key === ',') {\n event.preventDefault();\n this.commit(el);\n } else if (event.key === 'Backspace' && el.value === '' && this.value().length) {\n this.removeAt(this.value().length - 1);\n }\n }\n\n protected commit(el: HTMLInputElement): void {\n const text = el.value.trim();\n if (!text) return;\n if (this.allowDuplicates() || !this.value().includes(text)) {\n this.value.set([...this.value(), text]);\n }\n el.value = '';\n }\n\n protected removeAt(index: number): void {\n this.value.set(this.value().filter((_, i) => i !== index));\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\nconst TOKENS: Record<string, RegExp> = {\n '9': /\\d/,\n a: /[a-zA-Z]/,\n '*': /[a-zA-Z0-9]/,\n};\n\n/**\n * Pole z maską znakową na Signal Forms. Tokeny maski: `9`=cyfra, `a`=litera, `*`=alfanumeryczny.\n * Pozostałe znaki maski to literały (np. spacje, nawiasy, myślniki).\n *\n * @example\n * <kpt-input-mask [formField]=\"f.phone\" mask=\"(999) 999-99-99\" />\n */\n@Component({\n selector: 'kpt-input-mask',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <input\n class=\"kpt-input-mask__input\"\n type=\"text\"\n [class.kpt-input-mask--invalid]=\"showInvalid()\"\n [value]=\"value()\"\n [disabled]=\"disabled()\"\n [placeholder]=\"placeholder() || mask()\"\n (input)=\"onInput($event)\"\n (blur)=\"touch.emit()\"\n />\n `,\n styleUrl: './input-mask.component.scss',\n host: { class: 'kpt-input-mask-host' },\n})\nexport class KptInputMask implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly mask = input('');\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected onInput(event: Event): void {\n const el = event.target as HTMLInputElement;\n const formatted = this.applyMask(el.value);\n this.value.set(formatted);\n el.value = formatted;\n }\n\n private applyMask(raw: string): string {\n const mask = this.mask();\n if (!mask) return raw;\n // Zbierz same znaczące znaki z wejścia (pomiń literały maski).\n const chars = raw.split('');\n let ci = 0;\n let out = '';\n for (let mi = 0; mi < mask.length && ci < chars.length; ) {\n const token = mask[mi];\n const rule = TOKENS[token];\n if (rule) {\n // szukaj kolejnego pasującego znaku z wejścia\n while (ci < chars.length && !rule.test(chars[ci])) ci++;\n if (ci >= chars.length) break;\n out += chars[ci];\n ci++;\n mi++;\n } else {\n out += token;\n mi++;\n }\n }\n return out;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output, signal } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptOption } from '../shared/types';\n\n/**\n * Lista wyboru (listbox) na Signal Forms. Pojedynczy lub wielokrotny wybór, opcjonalny filtr.\n * Wartość: `T` (single) lub `T[]` (multiple).\n *\n * @example\n * <kpt-listbox [formField]=\"f.role\" [options]=\"roles\" filter />\n * <kpt-listbox [(value)]=\"tags\" [options]=\"tagOptions\" multiple />\n */\n@Component({\n selector: 'kpt-listbox',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-listbox\" [class.kpt-listbox--invalid]=\"showInvalid()\" role=\"listbox\" [attr.aria-multiselectable]=\"multiple()\">\n @if (filter()) {\n <div class=\"kpt-listbox__filter\">\n <kpt-icon name=\"search\" />\n <input type=\"text\" [attr.placeholder]=\"i18n.t('listbox.search')\" [value]=\"query()\" (input)=\"query.set($any($event.target).value)\" />\n </div>\n }\n <div class=\"kpt-listbox__items\">\n @for (opt of visible(); track opt.value) {\n <button\n type=\"button\"\n role=\"option\"\n class=\"kpt-listbox__item\"\n [class.is-selected]=\"isSelected(opt.value)\"\n [attr.aria-selected]=\"isSelected(opt.value)\"\n [disabled]=\"disabled() || opt.disabled\"\n (click)=\"toggle(opt.value)\"\n >\n <span>{{ opt.label }}</span>\n @if (isSelected(opt.value)) { <kpt-icon name=\"check\" /> }\n </button>\n } @empty {\n <div class=\"kpt-listbox__empty\">{{ i18n.t('listbox.empty') }}</div>\n }\n </div>\n </div>\n `,\n styleUrl: './listbox.component.scss',\n host: { class: 'kpt-listbox-host' },\n})\nexport class KptListbox<T = unknown> implements FormValueControl<T | T[] | null> {\n readonly value = model<T | T[] | null>(null);\n readonly options = input<readonly KptOption<T>[]>([]);\n readonly multiple = input(false, { transform: booleanAttribute });\n readonly filter = input(false, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly query = signal('');\n protected readonly visible = computed(() => {\n const q = this.query().trim().toLowerCase();\n return q ? this.options().filter((o) => o.label.toLowerCase().includes(q)) : this.options();\n });\n\n protected isSelected(v: T): boolean {\n const cur = this.value();\n return this.multiple() ? Array.isArray(cur) && cur.includes(v) : cur === v;\n }\n\n protected toggle(v: T): void {\n if (this.multiple()) {\n const cur = (Array.isArray(this.value()) ? this.value() : []) as T[];\n this.value.set(cur.includes(v) ? cur.filter((x) => x !== v) : [...cur, v]);\n } else {\n this.value.set(this.value() === v ? null : v);\n }\n this.touch.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, booleanAttribute, computed, inject, input, model, output } from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\nconst TAU = Math.PI * 2;\nconst GAP = Math.PI / 4; // przerwa u dołu (kąt „otwarcia\" łuku)\n\n/**\n * Pokrętło (knob) — wybór wartości po łuku, myszką lub strzałkami. Signal Forms.\n *\n * Pod `[formField]` zakres bierze się ze schematu (`min(path.level, 0)`,\n * `max(path.level, 100)`) — `[min]`/`[max]` obok `[formField]` to błąd kompilacji.\n *\n * @example\n * <kpt-knob [formField]=\"f.level\" [step]=\"1\" />\n * <kpt-knob [(value)]=\"level\" [min]=\"0\" [max]=\"100\" [step]=\"1\" />\n */\n@Component({\n selector: 'kpt-knob',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div\n class=\"kpt-knob\"\n role=\"slider\"\n tabindex=\"0\"\n [attr.aria-valuemin]=\"min()\"\n [attr.aria-valuemax]=\"max()\"\n [attr.aria-valuenow]=\"value()\"\n [attr.aria-disabled]=\"disabled()\"\n (pointerdown)=\"onPointer($event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <svg [attr.viewBox]=\"'0 0 ' + size() + ' ' + size()\" [style.width.px]=\"size()\" [style.height.px]=\"size()\">\n <path class=\"kpt-knob__range\" [attr.d]=\"rangePath()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" stroke-linecap=\"round\" />\n <path class=\"kpt-knob__value\" [attr.d]=\"valuePath()\" fill=\"none\" [attr.stroke-width]=\"stroke()\" stroke-linecap=\"round\" />\n @if (showValue()) {\n <text class=\"kpt-knob__text\" [attr.x]=\"size() / 2\" [attr.y]=\"size() / 2\" text-anchor=\"middle\" dominant-baseline=\"central\">{{ value() }}{{ suffix() }}</text>\n }\n </svg>\n </div>\n `,\n styleUrl: './knob.component.scss',\n host: { class: 'kpt-knob-host' },\n})\nexport class KptKnob implements FormValueControl<number> {\n private readonly host = inject(ElementRef<HTMLElement>);\n\n readonly value = model<number>(0);\n readonly min = input<number | undefined>(0);\n readonly max = input<number | undefined>(100);\n readonly step = input(1);\n readonly size = input(96);\n readonly stroke = input(10);\n readonly suffix = input('');\n readonly showValue = input(true, { transform: booleanAttribute });\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n readonly touch = output<void>();\n\n private readonly startAngle = Math.PI / 2 + GAP;\n private readonly sweep = TAU - GAP * 2;\n\n protected readonly rangePath = computed(() => this.arc(0, 1));\n protected readonly valuePath = computed(() => this.arc(0, this.ratio()));\n\n private ratio(): number {\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n const range = mx - mn;\n return range <= 0 ? 0 : (this.value() - mn) / range;\n }\n\n private arc(from: number, to: number): string {\n const s = this.size();\n const r = (s - this.stroke()) / 2;\n const cx = s / 2;\n const cy = s / 2;\n const a0 = this.startAngle + this.sweep * from;\n const a1 = this.startAngle + this.sweep * Math.max(from, to);\n const x0 = cx + r * Math.cos(a0);\n const y0 = cy + r * Math.sin(a0);\n const x1 = cx + r * Math.cos(a1);\n const y1 = cy + r * Math.sin(a1);\n const large = a1 - a0 > Math.PI ? 1 : 0;\n if (Math.abs(a1 - a0) < 1e-4) return `M ${x0} ${y0}`;\n return `M ${x0} ${y0} A ${r} ${r} 0 ${large} 1 ${x1} ${y1}`;\n }\n\n protected onPointer(event: PointerEvent): void {\n if (this.disabled()) return;\n const update = (e: PointerEvent) => this.setFromPoint(e.clientX, e.clientY);\n update(event);\n const move = (e: PointerEvent) => update(e);\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n this.touch.emit();\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n\n private setFromPoint(clientX: number, clientY: number): void {\n const rect = (this.host.nativeElement.querySelector('svg') as SVGElement).getBoundingClientRect();\n const cx = rect.left + rect.width / 2;\n const cy = rect.top + rect.height / 2;\n let a = Math.atan2(clientY - cy, clientX - cx) - this.startAngle;\n a = ((a % TAU) + TAU) % TAU;\n if (a > this.sweep + GAP) a = a > this.sweep + GAP / 2 ? 0 : this.sweep;\n const ratio = Math.min(1, Math.max(0, a / this.sweep));\n this.applyRatio(ratio);\n }\n\n private applyRatio(ratio: number): void {\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n const step = this.step();\n const raw = mn + ratio * (mx - mn);\n const snapped = Math.round(raw / step) * step;\n this.value.set(Math.min(mx, Math.max(mn, snapped)));\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n if (this.disabled()) return;\n const mn = this.min() ?? 0;\n const mx = this.max() ?? 100;\n let next = this.value();\n if (event.key === 'ArrowUp' || event.key === 'ArrowRight') next += this.step();\n else if (event.key === 'ArrowDown' || event.key === 'ArrowLeft') next -= this.step();\n else if (event.key === 'Home') next = mn;\n else if (event.key === 'End') next = mx;\n else return;\n event.preventDefault();\n this.value.set(Math.min(mx, Math.max(mn, next)));\n this.touch.emit();\n }\n}\n","@if (header()) {\n <div class=\"kpt-card__header\">{{ header() }}</div>\n}\n<div class=\"kpt-card__body\" [class.kpt-card__body--flush]=\"flush()\">\n <ng-content />\n</div>\n<ng-content select=\"[kptCardFooter]\" />\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport type KptCardVariant = 'elevated' | 'outlined';\n\n/**\n * Karta Koncept UI — powierzchnia z wyniesieniem (elevated) lub obramowaniem (outlined).\n * Opcjonalny nagłówek przez `header`; treść przez projekcję. Stopkę wstaw z atrybutem\n * `kptCardFooter`. Dla bogatych układów (media/profil) ustaw `flush` (body bez paddingu)\n * i użyj reużywalnych klas: `kpt-card__media`, `__lead`, `__title`, `__subtitle`,\n * `__section`, `__tags`, `__meta`, `__avatar`, `__actions`.\n *\n * @example\n * <kpt-card header=\"Ustawienia\">\n * <p>Treść karty…</p>\n * <div kptCardFooter><kpt-button>Zapisz</kpt-button></div>\n * </kpt-card>\n */\n@Component({\n selector: 'kpt-card',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n host: {\n class: 'kpt-card',\n '[attr.data-variant]': 'variant()',\n },\n})\nexport class KptCard {\n /** Wariant wizualny. */\n readonly variant = input<KptCardVariant>('elevated');\n /** Opcjonalny tekst nagłówka. */\n readonly header = input<string>('');\n /** Body bez wewnętrznego paddingu — dla układów zarządzających własnymi sekcjami. */\n readonly flush = input(false, { transform: booleanAttribute });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\n\nexport type KptDividerOrientation = 'horizontal' | 'vertical';\n\n/**\n * Separator Koncept UI (linia pozioma lub pionowa). Kolor z `--kpt-color-border`.\n *\n * @example\n * <kpt-divider />\n * <kpt-divider orientation=\"vertical\" />\n * <kpt-divider inset />\n */\n@Component({\n selector: 'kpt-divider',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: '',\n styleUrl: './divider.component.scss',\n host: {\n class: 'kpt-divider',\n role: 'separator',\n '[attr.aria-orientation]': 'orientation()',\n '[attr.data-orientation]': 'orientation()',\n '[class.kpt-divider--inset]': 'inset()',\n },\n})\nexport class KptDivider {\n /** Orientacja linii. */\n readonly orientation = input<KptDividerOrientation>('horizontal');\n /** Wcięcie (odstęp od krawędzi kontenera). */\n readonly inset = input(false, { transform: booleanAttribute });\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';\r\n\r\n/**\r\n * Górny pasek (toolbar) — pozioma belka na treść aplikacji (logo, akcje).\r\n * Elementowi z atrybutem `kptToolbarSpacer` nadaj elastyczny odstęp, aby rozepchnąć zawartość.\r\n * Poniżej breakpointa `sm` pasek sam zbiega się do niższej wysokości i węższych marginesów.\r\n *\r\n * @example\r\n * <kpt-toolbar elevated>\r\n * <strong>Koncept UI</strong>\r\n * <span kptToolbarSpacer></span>\r\n * <kpt-button variant=\"text\">Wyloguj</kpt-button>\r\n * </kpt-toolbar>\r\n */\r\n@Component({\r\n selector: 'kpt-toolbar',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n template: '<ng-content />',\r\n styleUrl: './toolbar.component.scss',\r\n host: {\r\n class: 'kpt-toolbar',\r\n '[class.kpt-toolbar--elevated]': 'elevated()',\r\n '[attr.data-wrap]': \"wrap() ? '' : null\",\r\n },\r\n})\r\nexport class KptToolbar {\r\n /** Dodaje cień (wyniesienie) pod paskiem. */\r\n readonly elevated = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Pozwala zawartości paska zawinąć się do kolejnych wierszy, gdy zabraknie miejsca.\r\n * Opcjonalne, bo zawijanie zmienia zachowanie `kptToolbarSpacer` — w jednowierszowym\r\n * pasku rozpycha on treść, a w zawijanym potrafi zepchnąć resztę do nowego wiersza.\r\n */\r\n readonly wrap = input(false, { transform: booleanAttribute });\r\n}\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Panel boczny (sidenav) — stylowany kontener nawigacji, zwykle umieszczany w slocie\n * `kptShellSidenav` komponentu `kpt-app-shell`.\n *\n * Treść domyślna ląduje w obszarze przewijanym. Element opatrzony atrybutem `kptSidenavFooter`\n * trafia do stopki stojącej **poza** tym obszarem, więc zostaje przyklejony do dołu panelu\n * niezależnie od długości nawigacji (blok użytkownika, wersja aplikacji, przełącznik motywu).\n *\n * @example\n * <kpt-sidenav kptShellSidenav>\n * <a href=\"#\">Pulpit</a>\n * <a href=\"#\">Ustawienia</a>\n * <div kptSidenavFooter>\n * <kpt-avatar name=\"Anna Kowalska\" size=\"sm\" />\n * </div>\n * </kpt-sidenav>\n */\n@Component({\n selector: 'kpt-sidenav',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n // Catch-all `<ng-content />` ma w projekcji najniższy priorytet, więc element z atrybutem\n // `kptSidenavFooter` trafia do stopki mimo tego, że slot domyślny stoi wyżej w szablonie.\n template: '<div class=\"kpt-sidenav__scroll\"><ng-content /></div><ng-content select=\"[kptSidenavFooter]\" />',\n styleUrl: './sidenav.component.scss',\n host: { class: 'kpt-sidenav' },\n})\nexport class KptSidenav {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptBreakpointObserver } from '../breakpoint/breakpoint.service';\nimport type { KptBreakpoint } from '../breakpoint/breakpoints.generated';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Zachowanie panelu bocznego:\n * - `auto` — zależne od szerokości okna (domyślne),\n * - `side` — zawsze zadokowany, rozpycha treść,\n * - `over` — zawsze nakładka nad treścią.\n */\nexport type KptSidenavMode = 'side' | 'over' | 'auto';\n\n/**\n * Szkielet aplikacji: pasek u góry, panel boczny i treść. Sloty projekcji:\n * `[kptShellToolbar]`, `[kptShellSidenav]` oraz treść domyślna.\n *\n * Domyślny tryb `auto` jest responsywny bez konfiguracji: od `sidenavBreakpoint` w górę\n * panel jest zadokowany, poniżej zachowuje się jak nakładka ze scrimem i startuje zamknięty.\n * Opcjonalny `sidenavRailBreakpoint` wstawia między te pasma szynę ikon.\n *\n * O układzie decyduje wyłącznie CSS — nic nie migocze przed hydracją i nic nie zależy od\n * `matchMedia`. JavaScript odpowiada tylko za to, KTÓRY stan przełącza przycisk.\n *\n * Panel ma dwa niezależne stany otwarcia (`sidenavOpen` dla układu zadokowanego,\n * `sidenavCompactOpen` dla nakładki), więc intencja z desktopu przeżywa zwężenie\n * i ponowne rozszerzenie okna.\n *\n * @example\n * <kpt-app-shell [(sidenavOpen)]=\"navOpen\">\n * <kpt-toolbar kptShellToolbar>\n * <button kptShellNavToggle type=\"button\"><kpt-icon name=\"menu\" /></button>\n * </kpt-toolbar>\n * <kpt-sidenav kptShellSidenav>…</kpt-sidenav>\n * <router-outlet />\n * </kpt-app-shell>\n */\n@Component({\n selector: 'kpt-app-shell',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n templateUrl: './app-shell.component.html',\n styleUrl: './app-shell.component.scss',\n host: {\n class: 'kpt-app-shell',\n '[attr.data-sidenav-mode]': 'sidenavMode()',\n '[attr.data-sidenav-breakpoint]': 'sidenavBreakpoint()',\n '[attr.data-sidenav-rail]': 'sidenavRailBreakpoint()',\n '[class.kpt-app-shell--nav-open]': 'sidenavOpen()',\n '[class.kpt-app-shell--nav-compact-open]': 'sidenavCompactOpen()',\n '(document:keydown.escape)': 'onEscape()',\n },\n})\nexport class KptAppShell {\n private static nextId = 0;\n\n private readonly breakpoints = inject(KptBreakpointObserver);\n private readonly i18n = inject(KptI18n);\n\n /** Czy panel jest otwarty w układzie zadokowanym (oraz w wymuszonym trybie `over`). */\n readonly sidenavOpen = model(true);\n\n /**\n * Czy nakładka jest wysunięta w trybie `auto` poniżej `sidenavBreakpoint`.\n *\n * Celowo osobny od `sidenavOpen`: gdyby oba układy dzieliły jeden model, wejście na wąski\n * ekran musiałoby nadpisać stan konsumenta, a powrót na szeroki nie miałby czego przywrócić.\n */\n readonly sidenavCompactOpen = model(false);\n\n /** `auto` przełącza układ na breakpoincie; `side`/`over` wymuszają go niezależnie od szerokości. */\n readonly sidenavMode = input<KptSidenavMode>('auto');\n\n /** Od tego breakpointa w górę tryb `auto` dokuje panel; poniżej robi z niego nakładkę. */\n readonly sidenavBreakpoint = input<KptBreakpoint>('lg');\n\n /**\n * Włącza szynę ikon w paśmie od `sidenavBreakpoint` do tego breakpointa: zamknięty panel\n * nie chowa się wtedy całkowicie, tylko zwęża do `--kpt-sidenav-rail-width`. Powyżej tego\n * progu zamknięcie znów chowa panel w całości. Wartość musi być wyższa niż `sidenavBreakpoint`.\n * `null` (domyślnie) wyłącza szynę.\n */\n readonly sidenavRailBreakpoint = input<KptBreakpoint | null>(null);\n\n /** Etykieta dostępności panelu; puste = `appShell.navigation` ze słownika. */\n readonly sidenavLabel = input('');\n\n /** Identyfikator panelu dla `aria-controls` przycisku przełączającego. */\n readonly sidenavId = `kpt-app-shell-nav-${KptAppShell.nextId++}`;\n\n /** Czy panel zachowuje się TERAZ jak nakładka nad treścią. */\n readonly isOverlay = computed(() => {\n const mode = this.sidenavMode();\n if (mode === 'over') return true;\n if (mode === 'side') return false;\n return !this.breakpoints.up(this.sidenavBreakpoint())();\n });\n\n /** Efektywny stan otwarcia — ten, który obowiązuje w bieżącym układzie. */\n readonly isSidenavOpen = computed(() =>\n this.usesCompactState() ? this.sidenavCompactOpen() : this.sidenavOpen(),\n );\n\n protected readonly navLabel = computed(() => this.sidenavLabel() || this.i18n.t('appShell.navigation'));\n\n /** Scrim blokuje wskaźnik, ale nie klawiaturę — treść pod nakładką nie może łapać fokusu. */\n protected readonly contentInert = computed(() => this.isOverlay() && this.isSidenavOpen());\n\n constructor() {\n // Wyjście z nakładki chowa ją na wejściu: inaczej wróciłaby otwarta przy kolejnym\n // zwężeniu okna, mimo że użytkownik jej wtedy nie otwierał.\n effect(() => {\n if (!this.isOverlay()) this.sidenavCompactOpen.set(false);\n });\n }\n\n /** Przełącza panel — trafia w stan właściwy dla bieżącego układu. */\n toggleSidenav(): void {\n this.setSidenavOpen(!this.isSidenavOpen());\n }\n\n /** Otwiera panel w bieżącym układzie. */\n openSidenav(): void {\n this.setSidenavOpen(true);\n }\n\n /** Zamyka panel w bieżącym układzie. */\n closeSidenav(): void {\n this.setSidenavOpen(false);\n }\n\n protected onScrimClick(): void {\n // Scrim jest klikalny tylko wtedy, gdy CSS uczynił go widocznym — nie trzeba sprawdzać trybu.\n this.closeSidenav();\n }\n\n protected onEscape(): void {\n if (this.isOverlay() && this.isSidenavOpen()) this.closeSidenav();\n }\n\n private usesCompactState(): boolean {\n return this.sidenavMode() === 'auto' && this.isOverlay();\n }\n\n private setSidenavOpen(open: boolean): void {\n if (this.usesCompactState()) this.sidenavCompactOpen.set(open);\n else this.sidenavOpen.set(open);\n }\n}\n","<ng-content select=\"[kptShellToolbar]\" />\n\n<div class=\"kpt-app-shell__body\">\n <aside\n class=\"kpt-app-shell__sidenav\"\n role=\"navigation\"\n tabindex=\"-1\"\n [id]=\"sidenavId\"\n [attr.aria-label]=\"navLabel()\"\n >\n <ng-content select=\"[kptShellSidenav]\" />\n </aside>\n\n <!--\n Scrim jest zawsze w DOM, a jego widocznością steruje wyłącznie CSS. Dzięki temu nakładka\n wygląda poprawnie już na pierwszej klatce — także przed hydracją i przy wyłączonym JS.\n -->\n <div class=\"kpt-app-shell__scrim\" aria-hidden=\"true\" (click)=\"onScrimClick()\"></div>\n\n <main class=\"kpt-app-shell__content\" [attr.inert]=\"contentInert() ? '' : null\">\n <ng-content />\n </main>\n</div>\n","import { Directive, ElementRef, afterRenderEffect, computed, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptAppShell } from './app-shell.component';\n\n/**\n * Przycisk przełączający panel boczny `kpt-app-shell`. Umieść go w slocie\n * `[kptShellToolbar]` — dyrektywa sama odnajdzie shell w drzewie deklaracji.\n *\n * Trafia w stan właściwy dla bieżącego układu (zadokowany albo nakładka), więc jeden\n * przycisk obsługuje desktop i wąski ekran. Bez tej dyrektywy aplikacja musiałaby sama\n * wstrzyknąć `KptBreakpointObserver` i rozstrzygnąć, który z dwóch modeli przełączyć.\n *\n * Atrybuty ARIA nigdy nie lądują na hoście komponentu opakowującego — na elemencie bez roli\n * naruszałyby `aria-allowed-attr`. Na natywnym `<button>`/`<a>` nakłada je wiązanie hosta;\n * gdy hostem jest komponent (np. `kpt-icon-button`), dyrektywa schodzi z nimi na jego\n * wewnętrzną kontrolkę. Etykietę w tym drugim przypadku podaje sam komponent (`ariaLabel`),\n * więc jej tutaj nie ruszamy, żeby nie nadpisać wyboru aplikacji.\n *\n * @example\n * <button kptShellNavToggle type=\"button\"><kpt-icon name=\"menu\" /></button>\n * <kpt-icon-button kptShellNavToggle ariaLabel=\"Menu\"><kpt-icon name=\"menu\" /></kpt-icon-button>\n */\n@Directive({\n selector: '[kptShellNavToggle]',\n host: {\n '(click)': 'shell.toggleSidenav()',\n '[attr.aria-expanded]': 'ariaExpanded()',\n '[attr.aria-controls]': 'ariaControls()',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class KptShellNavToggle {\n /** Własna etykieta przycisku; puste = `appShell.toggleNavigation` ze słownika. */\n readonly label = input('', { alias: 'kptShellNavToggle' });\n\n protected readonly shell = inject(KptAppShell);\n\n private readonly i18n = inject(KptI18n);\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly isNativeControl = /^(?:BUTTON|A)$/.test(this.host.nativeElement.tagName);\n\n protected readonly ariaExpanded = computed(() =>\n this.isNativeControl ? String(this.shell.isSidenavOpen()) : null,\n );\n\n protected readonly ariaControls = computed(() => (this.isNativeControl ? this.shell.sidenavId : null));\n\n protected readonly ariaLabel = computed(() =>\n this.isNativeControl ? this.label() || this.i18n.t('appShell.toggleNavigation') : null,\n );\n\n constructor() {\n if (this.isNativeControl) return;\n\n // Host jest komponentem — kontrolka z rolą przycisku siedzi w jego szablonie. Musi to być\n // efekt porenderowy: w chwili konstrukcji dyrektywy widok dziecka jeszcze nie istnieje,\n // a `aria-expanded` ma być poprawne już przy pierwszym odczycie przez czytnik ekranu.\n afterRenderEffect(() => {\n const control = this.host.nativeElement.querySelector('button, a');\n if (!control) return;\n control.setAttribute('aria-expanded', String(this.shell.isSidenavOpen()));\n control.setAttribute('aria-controls', this.shell.sidenavId);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n effect,\n inject,\n input,\n numberAttribute,\n signal,\n viewChild,\n} from '@angular/core';\nimport {\n KPT_BACKDROP_MAX_DPR,\n KPT_BACKDROP_MAX_STEP,\n KPT_SIGNAL_GRID_CELL,\n KPT_SIGNAL_GRID_DENSITY,\n KPT_SIGNAL_GRID_FALLOFF,\n KPT_SIGNAL_GRID_GAP,\n KPT_WAVE_AMPLITUDE,\n KPT_WAVE_BAND,\n KPT_WAVE_ROTATION,\n adaptBackdropValue,\n createBackdropRenderer,\n observeBackdropTheme,\n readBackdropInk,\n readBackdropLead,\n readBackdropSurface,\n resolveBackdropColors,\n} from '@konce-pt/backdrop';\nimport type {\n KptBackdropAnchor,\n KptBackdropEffect,\n KptBackdropInk,\n KptBackdropRenderer,\n} from '@konce-pt/backdrop';\n\n/**\n * Dekoracyjna warstwa tła dla sekcji: komponent obejmuje treść i maluje pod nią animowany canvas.\n * Sięga się po niego tam, gdzie płaska powierzchnia wygląda na niedokończoną, a wideo albo duży\n * obraz kosztowałyby transfer i nie poszłyby za motywem.\n *\n * Komponent jest opakowaniem: canvas leży pod spodem, a treść z `ng-content` idzie warstwę wyżej\n * i zachowuje się zwyczajnie. Rysowanie stoi, gdy nie ma czego oglądać — sekcja poza ekranem,\n * karta w tle, `paused`, `speed` równe zeru albo ograniczony ruch w systemie; wtedy zostaje jedna\n * statyczna klatka zamiast pustki, bo efekt jest częścią kompozycji, nie ozdobą.\n *\n * Dwa efekty: `signal-grid` (drobna siatka migoczących kwadratów, gęsta przy jednej krawędzi)\n * i `wave` (jedna miękka wstęga światła z barwami przesuwającymi się wzdłuż niej). Każdy czyta\n * własny zestaw wejść — pozostałe po prostu go nie dotyczą.\n *\n * Sam komponent to cykl życia; rysowanie i cała matematyka siedzą w `@konce-pt/backdrop`,\n * wspólnym z portem Reacta.\n *\n * @example\n * <kpt-backdrop effect=\"wave\" [rotation]=\"18\" [colors]=\"['#5b8af2', '#a86df2', '#f25b9e']\">\n * <h1>Zbuduj aplikację od pierwszego promptu</h1>\n * <kpt-button>Zacznij</kpt-button>\n * </kpt-backdrop>\n */\n@Component({\n selector: 'kpt-backdrop',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <canvas #canvas class=\"kpt-backdrop__canvas\" aria-hidden=\"true\"></canvas>\n <div class=\"kpt-backdrop__content\"><ng-content /></div>\n `,\n styleUrl: './backdrop.component.scss',\n host: {\n class: 'kpt-backdrop-host',\n '[attr.data-effect]': 'effect()',\n '[style.background]': 'surface()',\n '[style.color]': 'ink().color || null',\n '[attr.data-tone]': 'ink().tone || null',\n },\n})\nexport class KptBackdrop {\n /** Rysowany efekt. */\n readonly effect = input<KptBackdropEffect>('signal-grid');\n /** Tło sekcji. Puste bierze `--kpt-color-surface`. */\n readonly background = input<string>('');\n /** Tempo; 1 to spokojne tempo obu efektów, 0 zatrzymuje obraz. */\n readonly speed = input(1, { transform: numberAttribute });\n /** Ziarno losowania — ta sama wartość daje ten sam układ kwadratów i ten sam przebieg wstęgi. */\n readonly seed = input(0, { transform: numberAttribute });\n /** Zatrzymuje animację, zostawiając ostatnią klatkę. */\n readonly paused = input(false, { transform: booleanAttribute });\n /**\n * Przenosi barwy wpisane na sztywno na powierzchnię bieżącego motywu: czerń dobrana do białego\n * tła staje się bielą, gdy tło jest ciemne. Rusza wyłącznie jasność — odcień i nasycenie\n * zostają, więc barwa marki nie zmienia się w inną barwę.\n *\n * Dotyczy `color`, `colors` i `background`, ale tylko wtedy, gdy podano je literałem. Wejście\n * puste bierze token, a zapis z `var()` sam po token sięga — jedno i drugie już idzie za motywem\n * i adaptacja odwróciłaby je drugi raz.\n */\n readonly adaptive = input(false, { transform: booleanAttribute });\n\n /**\n * `signal-grid`: kolor kwadratów — dowolny zapis CSS, także sięgający po tokeny, np.\n * `color-mix(in oklab, #5b8af2, var(--kpt-color-surface) 30%)`. Taki zapis przelicza się przy\n * zmianie motywu; literał zostaje literałem. Puste bierze `--kpt-color-primary`.\n */\n readonly color = input<string>('');\n /** `signal-grid`: przy której krawędzi siatka jest najgęstsza. */\n readonly anchor = input<KptBackdropAnchor>('right');\n /** `signal-grid`: bok kwadratu (px). */\n readonly cell = input(KPT_SIGNAL_GRID_CELL, { transform: numberAttribute });\n /** `signal-grid`: odstęp między kwadratami (px). */\n readonly gap = input(KPT_SIGNAL_GRID_GAP, { transform: numberAttribute });\n /** `signal-grid`: udział zapalonych komórek przy kotwicy, 0–1. */\n readonly density = input(KPT_SIGNAL_GRID_DENSITY, { transform: numberAttribute });\n /** `signal-grid`: jak szybko siatka gaśnie ku przeciwnej krawędzi. */\n readonly falloff = input(KPT_SIGNAL_GRID_FALLOFF, { transform: numberAttribute });\n\n /**\n * `wave`: rampa barw, po której przesuwa się wstęga — każdy przystanek dowolnym zapisem CSS.\n * Zamknięta w pętlę, więc ostatnia barwa wraca do pierwszej. Pusta bierze `--kpt-color-primary`\n * i dwie barwy wyprowadzone z niego obrotem odcienia — paleta biblioteki jest neutralna, więc\n * domyślna wstęga jest jednobarwna i przygaszona. Po kolory sięga się tu, nie do tokenów\n * statusowych. Zapis może sięgać po tokeny i wtedy idzie za motywem. Przystanek, którego\n * przeglądarka nie uznaje za kolor, wypada z rampy; gdy wypadną wszystkie, zostaje rampa\n * domyślna.\n */\n readonly colors = input<readonly string[]>([]);\n /** `wave`: kąt, pod jakim prąd przecina kadr (stopnie); 0 to poziomo w prawo. */\n readonly rotation = input(KPT_WAVE_ROTATION, { transform: numberAttribute });\n /** `wave`: szerokość wstęgi jako ułamek wysokości kadru. */\n readonly band = input(KPT_WAVE_BAND, { transform: numberAttribute });\n /** `wave`: jak mocno faluje linia środkowa. Zero zatrzymuje falowanie, nie barwy. */\n readonly amplitude = input(KPT_WAVE_AMPLITUDE, { transform: numberAttribute });\n\n private readonly canvas = viewChild.required<ElementRef<HTMLCanvasElement>>('canvas');\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private context: CanvasRenderingContext2D | null = null;\n private renderer: KptBackdropRenderer | null = null;\n private width = 0;\n private height = 0;\n /**\n * Czas animacji w sekundach. Rośnie o krok przemnożony przez `speed`, więc ruch suwaka\n * prędkości przyspiesza obraz zamiast go przeskakiwać.\n */\n private clock = 0;\n private last = 0;\n private raf = 0;\n private onScreen = true;\n private reduced = false;\n private ready = false;\n /** Kolor wiodący, z którym zbudowany jest bieżący renderer — punkt odniesienia dla zmiany motywu. */\n private lead = '';\n /** Ostatnio zgłoszony zestaw odrzuconych barw — żeby nie powtarzać tego samego ostrzeżenia. */\n private reported = '';\n /** Tło po adaptacji. Puste znaczy „nie ma czego podmieniać\" i wtedy liczy się samo `background`. */\n private readonly adapted = signal('');\n\n /** Tło malowane na hoście: po adaptacji, jeśli jest, inaczej to, co podano. */\n protected readonly surface = computed(() => (this.adapted() || this.background()) || null);\n\n /**\n * Ton i kolor treści dobrane do malowanego tła. Puste znaczy „sekcja nie ma własnego tła\"\n * i wtedy treść zostaje przy `--kpt-color-on-surface` ze stylu.\n */\n protected readonly ink = signal<KptBackdropInk>({ tone: '', color: '' });\n\n private resize?: ResizeObserver;\n private intersect?: IntersectionObserver;\n private unwatchTheme?: () => void;\n private motion?: MediaQueryList;\n\n constructor() {\n // Każda zmiana wejść buduje renderer od nowa — zamiast doklejać do istniejącego ścieżki\n // „co się zmieniło\". Przed pierwszym renderem wystarczy, że sygnały zostaną odczytane;\n // sama budowa dzieje się w afterNextRender.\n effect(() => {\n this.effect();\n this.color();\n this.anchor();\n this.cell();\n this.gap();\n this.density();\n this.falloff();\n this.colors();\n this.rotation();\n this.band();\n this.amplitude();\n this.seed();\n // Tło nie jest wejściem renderera, ale adaptacja je przelicza — stąd odczyt obu.\n this.adaptive();\n this.background();\n if (!this.ready) return;\n this.build();\n this.paint();\n });\n\n // Prędkość i pauza nie ruszają renderera, decydują tylko o tym, czy pętla ma chodzić.\n effect(() => {\n this.speed();\n this.paused();\n if (this.ready) this.sync();\n });\n\n afterNextRender(() => {\n const canvas = this.canvas().nativeElement;\n this.context = canvas.getContext('2d');\n if (!this.context) return;\n this.ready = true;\n\n this.watchSize(canvas);\n this.watchVisibility();\n this.watchMotion();\n this.watchTheme();\n\n this.measure();\n this.build();\n this.paint();\n this.sync();\n });\n\n inject(DestroyRef).onDestroy(() => this.teardown());\n }\n\n /** Nowy przebieg efektu przy tym samym rozmiarze i tych samych wejściach. */\n reseed(): void {\n if (!this.ready) return;\n this.measure();\n this.build();\n this.paint();\n }\n\n private readonly tick = (now: number): void => {\n const step = this.last === 0 ? 0 : Math.min(now - this.last, KPT_BACKDROP_MAX_STEP);\n this.last = now;\n this.clock += (step / 1000) * this.speed();\n this.paint();\n this.raf = requestAnimationFrame(this.tick);\n };\n\n private paint(): void {\n if (this.context) this.renderer?.draw(this.context, this.clock);\n }\n\n private build(): void {\n this.renderer?.dispose();\n const scope = this.canvas().nativeElement;\n const adaptive = this.adaptive();\n const { color, colors, invalid } = resolveBackdropColors(scope, this.color(), this.colors(), adaptive);\n this.lead = color;\n this.adapted.set(adaptive ? adaptBackdropValue(this.background(), readBackdropSurface(scope)) : '');\n // Ton liczymy z tła, które sekcja naprawdę pomaluje — czyli już po adaptacji.\n this.ink.set(readBackdropInk(scope, this.adapted() || this.background()));\n this.reportInvalid(invalid);\n this.renderer = createBackdropRenderer({\n effect: this.effect(),\n color,\n colors,\n anchor: this.anchor(),\n cell: this.cell(),\n gap: this.gap(),\n density: this.density(),\n falloff: this.falloff(),\n rotation: this.rotation(),\n band: this.band(),\n amplitude: this.amplitude(),\n seed: this.seed(),\n });\n this.renderer.resize(this.width, this.height);\n }\n\n /**\n * Ostrzeżenie o przystankach rampy, których przeglądarka nie uznała za kolor.\n *\n * `build()` chodzi przy każdej zmianie wejść, więc ciągnięcie suwaka nad wadliwą rampą zasypałoby\n * konsolę tym samym zdaniem — zgłaszamy dopiero zestaw inny niż poprzednio.\n */\n private reportInvalid(invalid: readonly string[]): void {\n const key = invalid.join(', ');\n if (key === this.reported) return;\n this.reported = key;\n if (key !== '' && typeof ngDevMode !== 'undefined' && ngDevMode) {\n console.warn(`[kpt-backdrop] Pominięto barwy, których przeglądarka nie rozpoznaje: ${key}`);\n }\n }\n\n private measure(): void {\n const canvas = this.canvas().nativeElement;\n const rect = canvas.getBoundingClientRect();\n const dpr = Math.min(globalThis.devicePixelRatio || 1, KPT_BACKDROP_MAX_DPR);\n this.width = Math.round(rect.width);\n this.height = Math.round(rect.height);\n canvas.width = Math.round(this.width * dpr);\n canvas.height = Math.round(this.height * dpr);\n // Zapis width/height zeruje kontekst, więc skala musi wrócić po każdym pomiarze.\n this.context?.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n\n private sync(): void {\n const running = this.raf !== 0;\n const should = this.ready && this.onScreen && !this.paused() && !this.reduced && this.speed() > 0;\n if (should && !running) {\n this.last = 0;\n this.raf = requestAnimationFrame(this.tick);\n } else if (!should && running) {\n cancelAnimationFrame(this.raf);\n this.raf = 0;\n }\n }\n\n private watchSize(canvas: HTMLCanvasElement): void {\n this.resize = new ResizeObserver(() => {\n const rect = canvas.getBoundingClientRect();\n if (Math.round(rect.width) === this.width && Math.round(rect.height) === this.height) return;\n this.measure();\n // Sam rozmiar nie zmienia ustawień, więc renderer zostaje — przelicza tylko geometrię.\n this.renderer?.resize(this.width, this.height);\n this.paint();\n });\n this.resize.observe(canvas);\n }\n\n /** Sekcja poza ekranem i karta w tle to ten sam przypadek: nie ma czego oglądać. */\n private watchVisibility(): void {\n this.intersect = new IntersectionObserver((entries) => {\n this.onScreen = entries.some((entry) => entry.isIntersecting) && !document.hidden;\n this.sync();\n });\n this.intersect.observe(this.host.nativeElement);\n document.addEventListener('visibilitychange', this.onTabSwitch);\n }\n\n private readonly onTabSwitch = (): void => {\n this.onScreen = !document.hidden;\n this.sync();\n };\n\n private watchMotion(): void {\n this.motion = matchMedia('(prefers-reduced-motion: reduce)');\n this.reduced = this.motion.matches;\n this.motion.addEventListener('change', this.onMotionChange);\n }\n\n private readonly onMotionChange = (event: MediaQueryListEvent): void => {\n this.reduced = event.matches;\n this.sync();\n this.paint();\n };\n\n private watchTheme(): void {\n this.unwatchTheme = observeBackdropTheme(this.host.nativeElement, this.refreshColors);\n }\n\n /**\n * Zmiana motywu przestawia tokeny, a kolory renderera są już wyliczone — trzeba je odczytać\n * na nowo. Nasłuch trafia też w zmiany niezwiązane z barwą (klasa nakładki na `<html>`, dowolne\n * nadpisanie inline u przodka), więc renderer przebudowuje się dopiero wtedy, gdy odczyt\n * naprawdę dał inny kolor.\n */\n /**\n * Kolor wiodący liczony dokładnie tak, jak liczy go `build()` — inaczej strażnik porównywałby\n * wartość sprzed adaptacji z zapamiętaną po adaptacji i przebudowywałby renderer bez przerwy.\n */\n private leadNow(): string {\n const scope = this.canvas().nativeElement;\n const color = this.adaptive() ? adaptBackdropValue(this.color(), readBackdropSurface(scope)) : this.color();\n return readBackdropLead(scope, color);\n }\n\n private readonly refreshColors = (): void => {\n if (!this.ready) return;\n if (this.leadNow() === this.lead) return;\n this.build();\n this.paint();\n };\n\n private teardown(): void {\n if (this.raf) cancelAnimationFrame(this.raf);\n this.raf = 0;\n this.renderer?.dispose();\n this.renderer = null;\n this.resize?.disconnect();\n this.intersect?.disconnect();\n this.unwatchTheme?.();\n this.motion?.removeEventListener('change', this.onMotionChange);\n document.removeEventListener('visibilitychange', this.onTabSwitch);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\n\nexport type KptAlertVariant = 'info' | 'success' | 'warning' | 'danger';\n\n/**\n * Komunikat inline (alert). Warianty info/success/warning/danger, opcjonalny tytuł i zamykanie.\n *\n * @example\n * <kpt-alert variant=\"success\" title=\"Zapisano\">Zmiany zostały zapisane.</kpt-alert>\n */\n@Component({\n selector: 'kpt-alert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-alert\" [attr.data-variant]=\"variant()\" role=\"alert\">\n <kpt-icon class=\"kpt-alert__icon\" [name]=\"iconName()\" />\n <div class=\"kpt-alert__content\">\n @if (title()) {\n <div class=\"kpt-alert__title\">{{ title() }}</div>\n }\n <div class=\"kpt-alert__message\"><ng-content /></div>\n </div>\n @if (dismissible()) {\n <button class=\"kpt-alert__close\" type=\"button\" (click)=\"dismiss()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n `,\n styleUrl: './alert.component.scss',\n host: { class: 'kpt-alert-host', '[hidden]': '!visible()' },\n})\nexport class KptAlert {\n readonly variant = input<KptAlertVariant>('info');\n readonly title = input('');\n readonly dismissible = input(false, { transform: booleanAttribute });\n readonly closed = output<void>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(true);\n\n protected iconName(): KptIconName {\n return { info: 'info', success: 'circle-check', warning: 'alert-triangle', danger: 'circle-x' }[\n this.variant()\n ] as KptIconName;\n }\n protected dismiss(): void {\n this.visible.set(false);\n this.closed.emit();\n }\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon przycisku jednego dostawcy logowania w `kpt-auth`. Kontekst: `$implicit` =\n * obiekt dostawcy, `select` = funkcja zgłaszająca wybór (emituje `providerSelect`).\n *\n * Przydatne, gdy logo marki nie przechodzi przez rejestr ikon (gradienty i `fill-rule` są\n * wycinane przy sanityzacji) albo gdy przycisk ma mieć inny układ niż wbudowany.\n *\n * @example\n * <kpt-auth [providers]=\"providers\">\n * <ng-template kptAuthProvider=\"google\" let-p let-select=\"select\">\n * <button type=\"button\" class=\"my-google\" (click)=\"select()\">\n * <img src=\"/google.svg\" alt=\"\" /> {{ p.label }}\n * </button>\n * </ng-template>\n * </kpt-auth>\n */\n@Directive({\n selector: 'ng-template[kptAuthProvider]',\n})\nexport class KptAuthProviderDef {\n /** Identyfikator dostawcy, dla którego obowiązuje szablon. */\n readonly kptAuthProvider = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","<div class=\"kpt-auth\">\n <div class=\"kpt-auth__card\">\n <!--\n W drzewie żyje wyłącznie formularz aktywnego trybu. Dzięki temu nie ma elementów\n niewidocznych, ale wciąż fokusowalnych — najczęstsza wada ekranów logowania z animacją,\n w których oba formularze zostają w DOM i wygasza się je samą przezroczystością.\n -->\n <div class=\"kpt-auth__form-side\">\n <div class=\"kpt-auth__inner\" [attr.data-mode]=\"mode()\">\n <div class=\"kpt-auth__brand\"><ng-content select=\"[kptAuthBrand]\" /></div>\n\n <h2 #heading class=\"kpt-auth__title\" [id]=\"headingId()\" [attr.data-mode]=\"mode()\" tabindex=\"-1\">\n {{ title() }}\n </h2>\n <p class=\"kpt-auth__subtitle\">{{ subtitle() }}</p>\n\n @if (error()) {\n <kpt-alert variant=\"danger\">{{ error() }}</kpt-alert>\n }\n @if (notice()) {\n <kpt-alert variant=\"success\">{{ notice() }}</kpt-alert>\n }\n\n @switch (mode()) {\n @case ('signIn') {\n <form class=\"kpt-auth__form\" [formRoot]=\"signInForm\" (submit)=\"onSignIn()\" [attr.aria-labelledby]=\"ids.signIn\">\n <kpt-form-field [label]=\"i18n.t('auth.email')\" [error]=\"signInEmailError()\" required [controlId]=\"ids.email\">\n <kpt-input\n [formField]=\"signInForm.email\"\n type=\"email\"\n autocomplete=\"email\"\n [id]=\"ids.email\"\n [placeholder]=\"i18n.t('auth.emailPlaceholder')\"\n />\n </kpt-form-field>\n\n <kpt-form-field [label]=\"i18n.t('auth.password')\" [error]=\"signInPasswordError()\" required [controlId]=\"ids.password\">\n <kpt-password [formField]=\"signInForm.password\" autocomplete=\"current-password\" [id]=\"ids.password\" />\n </kpt-form-field>\n\n <ng-content select=\"[kptAuthFields]\" />\n\n <div class=\"kpt-auth__row\">\n @if (showRemember()) {\n <kpt-checkbox [formField]=\"signInForm.remember\" [label]=\"i18n.t('auth.remember')\" />\n } @else {\n <span></span>\n }\n <button type=\"button\" class=\"kpt-auth__link\" (click)=\"setMode('forgot')\">\n {{ i18n.t('auth.forgotLink') }}\n </button>\n </div>\n\n <kpt-button type=\"submit\" fullWidth [loading]=\"busy()\" [disabled]=\"signInInvalid()\">\n {{ i18n.t('auth.signInSubmit') }}\n </kpt-button>\n </form>\n }\n\n @case ('signUp') {\n <form class=\"kpt-auth__form\" [formRoot]=\"signUpForm\" (submit)=\"onSignUp()\" [attr.aria-labelledby]=\"ids.signUp\">\n @if (showName()) {\n <kpt-form-field [label]=\"i18n.t('auth.name')\" [error]=\"signUpNameError()\" required [controlId]=\"ids.name\">\n <kpt-input [formField]=\"signUpForm.name\" autocomplete=\"name\" [id]=\"ids.name\" />\n </kpt-form-field>\n }\n\n <kpt-form-field [label]=\"i18n.t('auth.email')\" [error]=\"signUpEmailError()\" required [controlId]=\"ids.regEmail\">\n <kpt-input\n [formField]=\"signUpForm.email\"\n type=\"email\"\n autocomplete=\"email\"\n [id]=\"ids.regEmail\"\n [placeholder]=\"i18n.t('auth.emailPlaceholder')\"\n />\n </kpt-form-field>\n\n <kpt-form-field\n [label]=\"i18n.t('auth.password')\"\n [error]=\"signUpPasswordError()\"\n [hint]=\"i18n.t('auth.passwordHint', { min: 8 })\"\n required\n [controlId]=\"ids.regPassword\"\n >\n <kpt-password [formField]=\"signUpForm.password\" autocomplete=\"new-password\" feedback [id]=\"ids.regPassword\" />\n </kpt-form-field>\n\n <kpt-form-field [label]=\"i18n.t('auth.confirmPassword')\" [error]=\"signUpConfirmError()\" required [controlId]=\"ids.regConfirm\">\n <kpt-password [formField]=\"signUpForm.confirm\" autocomplete=\"new-password\" [id]=\"ids.regConfirm\" />\n </kpt-form-field>\n\n <ng-content select=\"[kptAuthFields]\" />\n\n @if (requireTerms()) {\n <kpt-form-field [error]=\"signUpTermsError()\">\n <kpt-checkbox [formField]=\"signUpForm.terms\" [label]=\"i18n.t('auth.terms')\" />\n </kpt-form-field>\n }\n\n <kpt-button type=\"submit\" fullWidth [loading]=\"busy()\" [disabled]=\"signUpInvalid()\">\n {{ i18n.t('auth.signUpSubmit') }}\n </kpt-button>\n </form>\n }\n\n @case ('forgot') {\n <form class=\"kpt-auth__form\" [formRoot]=\"resetForm\" (submit)=\"onReset()\" [attr.aria-labelledby]=\"ids.forgot\">\n <kpt-form-field [label]=\"i18n.t('auth.email')\" [error]=\"resetEmailError()\" required [controlId]=\"ids.resetEmail\">\n <kpt-input\n [formField]=\"resetForm.email\"\n type=\"email\"\n autocomplete=\"email\"\n [id]=\"ids.resetEmail\"\n [placeholder]=\"i18n.t('auth.emailPlaceholder')\"\n />\n </kpt-form-field>\n\n <kpt-button type=\"submit\" fullWidth [loading]=\"busy()\" [disabled]=\"resetInvalid()\">\n {{ i18n.t('auth.resetSubmit') }}\n </kpt-button>\n <button type=\"button\" class=\"kpt-auth__link kpt-auth__link--center\" (click)=\"setMode('signIn')\">\n {{ i18n.t('auth.backToSignIn') }}\n </button>\n </form>\n }\n }\n\n @if (mode() !== 'forgot') {\n <div class=\"kpt-auth__sso\"><ng-content select=\"[kptAuthSso]\" /></div>\n\n @if (providers().length > 0) {\n <div class=\"kpt-auth__separator\" role=\"separator\" [attr.aria-label]=\"i18n.t('auth.orContinueWith')\">\n <span class=\"kpt-auth__separator-text\">{{ i18n.t('auth.orContinueWith') }}</span>\n </div>\n\n <div class=\"kpt-auth__providers\" [attr.data-layout]=\"providerLayout()\">\n @for (provider of providers(); track provider.id) {\n @if (templateFor(provider); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl\" [ngTemplateOutletContext]=\"providerContext(provider)\" />\n } @else {\n <button\n type=\"button\"\n class=\"kpt-auth__provider\"\n [disabled]=\"busy()\"\n [attr.aria-label]=\"i18n.t('auth.continueWith', { provider: provider.label })\"\n (click)=\"selectProvider(provider)\"\n >\n @if (provider.iconUrl) {\n <img class=\"kpt-auth__provider-logo\" [src]=\"provider.iconUrl\" alt=\"\" />\n } @else if (provider.icon) {\n <kpt-icon class=\"kpt-auth__provider-logo\" [name]=\"provider.icon\" />\n }\n <span class=\"kpt-auth__provider-label\">{{ provider.label }}</span>\n @if (provider.description && providerLayout() === 'list') {\n <span class=\"kpt-auth__provider-desc\">{{ provider.description }}</span>\n }\n </button>\n }\n }\n </div>\n }\n\n <p class=\"kpt-auth__switch\">\n {{ signUpActive() ? i18n.t('auth.haveAccount') : i18n.t('auth.noAccount') }}\n <button type=\"button\" class=\"kpt-auth__link\" (click)=\"setMode(signUpActive() ? 'signIn' : 'signUp')\">\n {{ signUpActive() ? i18n.t('auth.signInSwitch') : i18n.t('auth.signUpSwitch') }}\n </button>\n </p>\n }\n\n <div class=\"kpt-auth__footer\"><ng-content select=\"[kptAuthFooter]\" /></div>\n </div>\n </div>\n\n <aside class=\"kpt-auth__promo\">\n <div class=\"kpt-auth__promo-inner\">\n @if (promoHeading()) {\n <p class=\"kpt-auth__promo-title\">{{ promoHeading() }}</p>\n }\n @if (promoBody()) {\n <p class=\"kpt-auth__promo-text\">{{ promoBody() }}</p>\n }\n <ng-content select=\"[kptAuthPromo]\" />\n @if (mode() !== 'forgot') {\n <kpt-button class=\"kpt-auth__promo-cta\" variant=\"outline\" (click)=\"setMode(promoMode())\">\n {{ promoMode() === 'signUp' ? i18n.t('auth.signUpSwitch') : i18n.t('auth.signInSwitch') }}\n </kpt-button>\n }\n </div>\n </aside>\n </div>\n</div>\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Injector,\n ViewEncapsulation,\n afterNextRender,\n booleanAttribute,\n computed,\n contentChildren,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { FormField, FormRoot, email, form, minLength, required, submit, validateTree } from '@angular/forms/signals';\nimport { KptAlert } from '../alert/alert.component';\nimport { KptButton } from '../button/button.component';\nimport { KptCheckbox } from '../checkbox/checkbox.component';\nimport { KptFormField } from '../form-field/form-field.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptInput } from '../input/input.component';\nimport { KptPassword } from '../password/password.component';\nimport { KptAuthProviderDef } from './auth-provider.directive';\nimport type {\n KptAuthLayout,\n KptAuthMode,\n KptAuthProvider,\n KptAuthProviderLayout,\n KptAuthResetValue,\n KptAuthSignInValue,\n KptAuthSignUpValue,\n} from './auth.types';\n\n/** Minimalna długość hasła w rejestracji. */\nconst MIN_PASSWORD = 8;\n\nlet nextUniqueId = 0;\n\n/**\n * Ekran uwierzytelniania: logowanie, rejestracja i odzyskiwanie hasła w jednym komponencie,\n * z panelem promocyjnym i listą dostawców zewnętrznych (OAuth/SSO).\n *\n * Komponent jest prezentacyjny — nie woła API ani nie nawiguje. Wywołania backendu podpina\n * aplikacja pod `signIn` / `signUp` / `resetPassword` / `providerSelect`, a stan operacji\n * podaje z powrotem przez `busy`, `error` i `notice`.\n *\n * Układ `slider` przesuwa panel promocyjny nad formularzami przy zmianie trybu; `split`\n * zostawia go nieruchomo i przełącza sam formularz. Poniżej breakpointu `md` oba układy\n * schodzą do jednej kolumny.\n *\n * @example\n * <kpt-auth\n * [providers]=\"[{ id: 'google', label: 'Google', icon: 'brand-google' }]\"\n * [busy]=\"loading()\"\n * [error]=\"serverError()\"\n * (signIn)=\"login($event)\"\n * (providerSelect)=\"oauth($event.id)\"\n * >\n * <img kptAuthBrand src=\"/logo.svg\" alt=\"Konce\" />\n * <div kptAuthPromo><h3>Witaj ponownie</h3><p>Zaloguj się, by wrócić do pracy.</p></div>\n * </kpt-auth>\n */\n@Component({\n selector: 'kpt-auth',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormField,\n FormRoot,\n KptAlert,\n KptButton,\n KptCheckbox,\n KptFormField,\n KptIcon,\n KptInput,\n KptPassword,\n NgTemplateOutlet,\n ],\n templateUrl: './auth.component.html',\n styleUrl: './auth.component.scss',\n host: {\n class: 'kpt-auth-host',\n '[attr.data-layout]': 'layout()',\n '[attr.data-mode]': 'mode()',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptAuth {\n /** Aktywny tryb ekranu (dwukierunkowy — aplikacja może go wymusić po nawigacji). */\n readonly mode = model<KptAuthMode>('signIn');\n /** Układ: przesuwany panel promocyjny albo nieruchomy split-screen. */\n readonly layout = input<KptAuthLayout>('slider');\n /** Dostawcy logowania zewnętrznego. */\n readonly providers = input<readonly KptAuthProvider[]>([]);\n /** Układ przycisków dostawców: lista pełnej szerokości albo siatka ikon. */\n readonly providerLayout = input<KptAuthProviderLayout>('list');\n /** Pole „imię i nazwisko\" w rejestracji. */\n readonly showName = input(true, { transform: booleanAttribute });\n /** Wymagana zgoda na regulamin w rejestracji. */\n readonly requireTerms = input(true, { transform: booleanAttribute });\n /** Przełącznik „zapamiętaj mnie\" przy logowaniu. */\n readonly showRemember = input(true, { transform: booleanAttribute });\n /** Operacja w toku — przyciski w stanie ładowania, pola zablokowane. */\n readonly busy = input(false, { transform: booleanAttribute });\n /** Komunikat błędu z serwera (np. „nieprawidłowe dane logowania\"). */\n readonly error = input<string | null>(null);\n /** Komunikat powodzenia (np. „wysłaliśmy link na podany adres\"). */\n readonly notice = input<string | null>(null);\n /**\n * Tytuł panelu promocyjnego. `null` (domyślnie) = tekst z i18n zależny od trybu,\n * `''` = brak tytułu (miejsce dla slotu `[kptAuthPromo]`).\n */\n readonly promoTitle = input<string | null>(null);\n /** Tekst panelu promocyjnego; zasady jak w `promoTitle`. */\n readonly promoText = input<string | null>(null);\n /** Animacja przejścia między trybami. */\n readonly animated = input(true, { transform: booleanAttribute });\n /** Czas animacji w ms. */\n readonly animationDuration = input(320, { transform: numberAttribute });\n\n readonly signIn = output<KptAuthSignInValue>();\n readonly signUp = output<KptAuthSignUpValue>();\n readonly resetPassword = output<KptAuthResetValue>();\n readonly providerSelect = output<KptAuthProvider>();\n\n protected readonly i18n = inject(KptI18n);\n private readonly injector = inject(Injector);\n private readonly uid = ++nextUniqueId;\n\n /** Nagłówek panelu dostaje fokus po zmianie trybu — inaczej zmiana nie zostaje ogłoszona. */\n private readonly headings = viewChildren<ElementRef<HTMLElement>>('heading');\n private readonly providerDefs = contentChildren(KptAuthProviderDef);\n\n protected readonly ids = {\n signIn: `kpt-auth-${this.uid}-signin`,\n signUp: `kpt-auth-${this.uid}-signup`,\n forgot: `kpt-auth-${this.uid}-forgot`,\n email: `kpt-auth-${this.uid}-email`,\n password: `kpt-auth-${this.uid}-password`,\n name: `kpt-auth-${this.uid}-name`,\n regEmail: `kpt-auth-${this.uid}-reg-email`,\n regPassword: `kpt-auth-${this.uid}-reg-password`,\n regConfirm: `kpt-auth-${this.uid}-reg-confirm`,\n resetEmail: `kpt-auth-${this.uid}-reset-email`,\n };\n\n /** W trybie `signUp` formularz i panel promocyjny zamieniają się stronami. */\n protected readonly signUpActive = computed(() => this.mode() === 'signUp');\n\n protected readonly headingId = computed(() => this.ids[this.mode()]);\n protected readonly title = computed(() => this.i18n.t(`auth.${this.mode()}Title`));\n protected readonly subtitle = computed(() => this.i18n.t(`auth.${this.mode()}Subtitle`));\n /** Panel promocyjny zachęca do trybu przeciwnego do bieżącego. */\n protected readonly promoMode = computed<KptAuthMode>(() => (this.signUpActive() ? 'signIn' : 'signUp'));\n protected readonly promoHeading = computed(() => {\n const custom = this.promoTitle();\n return custom === null ? this.i18n.t(`auth.promo.${this.promoMode()}Title`) : custom;\n });\n protected readonly promoBody = computed(() => {\n const custom = this.promoText();\n return custom === null ? this.i18n.t(`auth.promo.${this.promoMode()}Text`) : custom;\n });\n\n // ── Formularze (po jednym na tryb; walidatory bezwarunkowe) ──\n private readonly signInModel = signal<KptAuthSignInValue>({ email: '', password: '', remember: false });\n protected readonly signInForm = form(this.signInModel, (p) => {\n required(p.email);\n email(p.email);\n required(p.password);\n });\n\n private readonly signUpModel = signal({ name: '', email: '', password: '', confirm: '', terms: false });\n protected readonly signUpForm = form(this.signUpModel, (p) => {\n // `when` zależy od konfiguracji komponentu (czy pole w ogóle istnieje), nie od stanu UI —\n // ukryte pole nie może blokować formularza, a `valid()` nadal mówi prawdę.\n required(p.name, { when: () => this.showName() });\n required(p.email);\n email(p.email);\n required(p.password);\n minLength(p.password, MIN_PASSWORD);\n required(p.terms, { when: () => this.requireTerms() });\n // Zgodność haseł jako błąd pola „powtórz hasło\" — walidacja par idzie przez validateTree.\n validateTree(p, (ctx) => {\n const pass = ctx.valueOf(p.password);\n const confirm = ctx.valueOf(p.confirm);\n if (!confirm || pass === confirm) return null;\n return { kind: 'mismatch', fieldTree: ctx.fieldTreeOf(p.confirm) };\n });\n });\n\n private readonly resetModel = signal<KptAuthResetValue>({ email: '' });\n protected readonly resetForm = form(this.resetModel, (p) => {\n required(p.email);\n email(p.email);\n });\n\n protected readonly signInInvalid = computed(() => this.signInForm().invalid());\n protected readonly signUpInvalid = computed(() => this.signUpForm().invalid());\n protected readonly resetInvalid = computed(() => this.resetForm().invalid());\n\n protected readonly signInEmailError = computed(() => this.errorText(this.signInForm.email().errors(), this.signInForm.email().touched()));\n protected readonly signInPasswordError = computed(() => this.errorText(this.signInForm.password().errors(), this.signInForm.password().touched()));\n protected readonly signUpNameError = computed(() => this.errorText(this.signUpForm.name().errors(), this.signUpForm.name().touched()));\n protected readonly signUpEmailError = computed(() => this.errorText(this.signUpForm.email().errors(), this.signUpForm.email().touched()));\n protected readonly signUpPasswordError = computed(() => this.errorText(this.signUpForm.password().errors(), this.signUpForm.password().touched()));\n protected readonly signUpConfirmError = computed(() => this.errorText(this.signUpForm.confirm().errors(), this.signUpForm.confirm().touched()));\n protected readonly signUpTermsError = computed(() => this.errorText(this.signUpForm.terms().errors(), this.signUpForm.terms().touched()));\n protected readonly resetEmailError = computed(() => this.errorText(this.resetForm.email().errors(), this.resetForm.email().touched()));\n\n /**\n * Komunikat błędu składamy z `kind` w chwili renderowania, a nie w walidatorze — dzięki temu\n * zmiana języka w runtime przerysowuje komunikaty (walidatory tworzą się raz, przy starcie).\n * Bramka „nie strasz czerwienią świeżego pola\" żyje tu, w prezentacji.\n */\n private errorText(errors: readonly { kind: string }[], touched: boolean): string | null {\n if (!touched || errors.length === 0) return null;\n switch (errors[0].kind) {\n case 'required':\n return this.i18n.t('auth.errorRequired');\n case 'email':\n return this.i18n.t('auth.errorEmail');\n case 'minLength':\n return this.i18n.t('auth.errorMinLength', { min: MIN_PASSWORD });\n case 'mismatch':\n return this.i18n.t('auth.errorMismatch');\n default:\n return this.i18n.t('auth.errorInvalid');\n }\n }\n\n // ── Tryby ──\n protected setMode(mode: KptAuthMode): void {\n if (mode === this.mode()) return;\n this.mode.set(mode);\n // Fokus na nagłówku nowego trybu: bez tego czytnik nie ogłosi zmiany, a fokus zostaje\n // na przycisku, który właśnie zjechał z ekranu. Musi to być `afterNextRender` —\n // mikrozadanie wykonałoby się jeszcze przed przerysowaniem, na starym nagłówku.\n afterNextRender(\n () => {\n const heading = this.headings().find((h) => h.nativeElement.dataset['mode'] === mode);\n heading?.nativeElement.focus();\n },\n { injector: this.injector },\n );\n }\n\n // ── Submit ──\n protected onSignIn(): void {\n void submit(this.signInForm, {\n action: async () => {\n this.signIn.emit({ ...this.signInModel() });\n },\n });\n }\n protected onSignUp(): void {\n void submit(this.signUpForm, {\n action: async () => {\n const { name, email: mail, password, terms } = this.signUpModel();\n this.signUp.emit({ name, email: mail, password, terms });\n },\n });\n }\n protected onReset(): void {\n void submit(this.resetForm, {\n action: async () => {\n this.resetPassword.emit({ ...this.resetModel() });\n },\n });\n }\n\n // ── Dostawcy ──\n protected templateFor(provider: KptAuthProvider) {\n return this.providerDefs().find((def) => def.kptAuthProvider() === provider.id)?.template ?? null;\n }\n protected selectProvider(provider: KptAuthProvider): void {\n if (this.busy()) return;\n this.providerSelect.emit(provider);\n }\n /** Kontekst szablonu własnego dostawcy: `$implicit` = dostawca, `select` = zgłoszenie wyboru. */\n protected providerContext(provider: KptAuthProvider): { $implicit: KptAuthProvider; select: () => void } {\n return { $implicit: provider, select: () => this.selectProvider(provider) };\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Panel z nagłówkiem i opcjonalnym zwijaniem. Akcje nagłówka: atrybut `kptPanelActions`.\n *\n * @example\n * <kpt-panel header=\"Ustawienia\" toggleable>Treść…</kpt-panel>\n */\n@Component({\n selector: 'kpt-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-panel\">\n <div class=\"kpt-panel__header\">\n <span class=\"kpt-panel__title\">{{ header() }}</span>\n <span class=\"kpt-panel__actions\"><ng-content select=\"[kptPanelActions]\" /></span>\n @if (toggleable()) {\n <button type=\"button\" class=\"kpt-panel__toggle\" (click)=\"collapsed.set(!collapsed())\" [attr.aria-expanded]=\"!collapsed()\" [attr.aria-label]=\"i18n.t('panel.toggle')\">\n <kpt-icon [name]=\"collapsed() ? 'chevron-down' : 'chevron-up'\" />\n </button>\n }\n </div>\n <div\n class=\"kpt-panel__collapse\"\n [class.is-open]=\"!collapsed()\"\n [attr.inert]=\"collapsed() ? '' : null\"\n [attr.aria-hidden]=\"collapsed()\"\n >\n <div class=\"kpt-panel__collapse-inner\">\n <div class=\"kpt-panel__body\"><ng-content /></div>\n </div>\n </div>\n </div>\n `,\n styleUrl: './panel.component.scss',\n host: {\n 'class': 'kpt-panel-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptPanel {\n readonly header = input('');\n readonly toggleable = input(false, { transform: booleanAttribute });\n readonly collapsed = model(false);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input, model } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Grupa pól z legendą (fieldset), opcjonalnie zwijana.\n *\n * @example\n * <kpt-fieldset legend=\"Dane osobowe\" toggleable>…</kpt-fieldset>\n */\n@Component({\n selector: 'kpt-fieldset',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <fieldset class=\"kpt-fieldset\">\n <legend class=\"kpt-fieldset__legend\">\n @if (toggleable()) {\n <button type=\"button\" class=\"kpt-fieldset__toggle\" (click)=\"collapsed.set(!collapsed())\" [attr.aria-expanded]=\"!collapsed()\">\n <kpt-icon [name]=\"collapsed() ? 'chevron-down' : 'chevron-up'\" />\n <span>{{ legend() }}</span>\n </button>\n } @else {\n <span>{{ legend() }}</span>\n }\n </legend>\n <div\n class=\"kpt-fieldset__collapse\"\n [class.is-open]=\"!collapsed()\"\n [attr.inert]=\"collapsed() ? '' : null\"\n [attr.aria-hidden]=\"collapsed()\"\n >\n <div class=\"kpt-fieldset__collapse-inner\">\n <div class=\"kpt-fieldset__body\"><ng-content /></div>\n </div>\n </div>\n </fieldset>\n `,\n styleUrl: './fieldset.component.scss',\n host: {\n 'class': 'kpt-fieldset-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n },\n})\nexport class KptFieldset {\n readonly legend = input('');\n readonly toggleable = input(false, { transform: booleanAttribute });\n readonly collapsed = model(false);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, computed, inject, input, model } from '@angular/core';\n\nexport type KptSplitterOrientation = 'horizontal' | 'vertical';\n\n/**\n * Splitter — dwa panele z przeciąganym uchwytem. Panele przez sloty `[kptSplitStart]` i `[kptSplitEnd]`.\n * `horizontal` = panele obok siebie, `vertical` = jeden pod drugim.\n *\n * @example\n * <kpt-splitter orientation=\"horizontal\" [(startSize)]=\"size\">\n * <div kptSplitStart>Lewy</div>\n * <div kptSplitEnd>Prawy</div>\n * </kpt-splitter>\n */\n@Component({\n selector: 'kpt-splitter',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-splitter\" [attr.data-orientation]=\"orientation()\">\n <div class=\"kpt-splitter__pane\" [style.flex-basis.%]=\"startSize()\"><ng-content select=\"[kptSplitStart]\" /></div>\n <div\n class=\"kpt-splitter__gutter\"\n role=\"separator\"\n tabindex=\"0\"\n [attr.aria-orientation]=\"orientation()\"\n [attr.aria-valuenow]=\"startSize()\"\n (pointerdown)=\"onPointer($event)\"\n (keydown)=\"onKeydown($event)\"\n ></div>\n <div class=\"kpt-splitter__pane\" [style.flex-basis.%]=\"endSize()\"><ng-content select=\"[kptSplitEnd]\" /></div>\n </div>\n `,\n styleUrl: './splitter.component.scss',\n host: { class: 'kpt-splitter-host' },\n})\nexport class KptSplitter {\n private readonly host = inject(ElementRef<HTMLElement>);\n readonly orientation = input<KptSplitterOrientation>('horizontal');\n /** Rozmiar pierwszego panelu w procentach (0–100). */\n readonly startSize = model(50);\n readonly minSize = input(10);\n\n protected readonly endSize = computed(() => 100 - this.startSize());\n\n protected onPointer(event: PointerEvent): void {\n event.preventDefault();\n const container = this.host.nativeElement.querySelector('.kpt-splitter') as HTMLElement;\n const move = (e: PointerEvent) => {\n const rect = container.getBoundingClientRect();\n const pct =\n this.orientation() === 'horizontal'\n ? ((e.clientX - rect.left) / rect.width) * 100\n : ((e.clientY - rect.top) / rect.height) * 100;\n this.setSize(pct);\n };\n const up = () => {\n window.removeEventListener('pointermove', move);\n window.removeEventListener('pointerup', up);\n };\n window.addEventListener('pointermove', move);\n window.addEventListener('pointerup', up);\n }\n\n protected onKeydown(event: KeyboardEvent): void {\n const dir = event.key === 'ArrowLeft' || event.key === 'ArrowUp' ? -2 : event.key === 'ArrowRight' || event.key === 'ArrowDown' ? 2 : 0;\n if (!dir) return;\n event.preventDefault();\n this.setSize(this.startSize() + dir);\n }\n\n private setSize(pct: number): void {\n const min = this.minSize();\n this.startSize.set(Math.min(100 - min, Math.max(min, Math.round(pct))));\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, afterNextRender, inject, input, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Przycisk „do góry\" — pojawia się po przewinięciu ponad `threshold` px.\n * Domyślnie działa na oknie; `target` przyjmuje selektor przewijanego elementu.\n *\n * @example\n * <kpt-scroll-top [threshold]=\"300\" />\n */\n@Component({\n selector: 'kpt-scroll-top',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <button\n type=\"button\"\n class=\"kpt-scroll-top\"\n [class.is-visible]=\"visible()\"\n (click)=\"scrollUp()\"\n [attr.aria-label]=\"i18n.t('scrollTop.label')\"\n [attr.tabindex]=\"visible() ? 0 : -1\"\n ><kpt-icon name=\"arrow-up\" /></button>\n `,\n styleUrl: './scroll-top.component.scss',\n host: { class: 'kpt-scroll-top-host' },\n})\nexport class KptScrollTop {\n readonly threshold = input(300);\n readonly target = input<string | null>(null);\n\n protected readonly i18n = inject(KptI18n);\n protected readonly visible = signal(false);\n private scroller: HTMLElement | Window = window;\n\n constructor() {\n afterNextRender(() => {\n const sel = this.target();\n this.scroller = sel ? document.querySelector<HTMLElement>(sel) ?? window : window;\n const onScroll = () => this.visible.set(this.currentTop() > this.threshold());\n this.scroller.addEventListener('scroll', onScroll, { passive: true });\n onScroll();\n });\n }\n\n private currentTop(): number {\n return this.scroller === window ? window.scrollY : (this.scroller as HTMLElement).scrollTop;\n }\n\n protected scrollUp(): void {\n if (this.scroller === window) window.scrollTo({ top: 0, behavior: 'smooth' });\n else (this.scroller as HTMLElement).scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Obraz z opcjonalnym podglądem pełnoekranowym (zoom).\n *\n * @example\n * <kpt-image src=\"/foto.jpg\" alt=\"Zdjęcie\" preview width=\"240px\" />\n */\n@Component({\n selector: 'kpt-image',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-image\" [class.kpt-image--preview]=\"preview()\" [style.width]=\"width()\" (click)=\"openPreview()\">\n <img class=\"kpt-image__img\" [src]=\"src()\" [alt]=\"alt()\" />\n @if (preview()) {\n <div class=\"kpt-image__mask\" aria-hidden=\"true\"><kpt-icon name=\"zoom-in\" /></div>\n }\n </div>\n\n @if (open()) {\n <div class=\"kpt-image__overlay\" (click)=\"close()\">\n <button type=\"button\" class=\"kpt-image__close\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n <img class=\"kpt-image__full\" [src]=\"src()\" [alt]=\"alt()\" (click)=\"$event.stopPropagation()\" />\n </div>\n }\n `,\n styleUrl: './image.component.scss',\n host: { class: 'kpt-image-host' },\n})\nexport class KptImage {\n readonly src = input.required<string>();\n readonly alt = input('');\n readonly width = input<string | null>(null);\n readonly preview = input(false, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly open = signal(false);\n\n protected openPreview(): void {\n if (this.preview()) this.open.set(true);\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\n\nexport interface KptMeterItem {\n label: string;\n value: number;\n color?: string;\n}\n\n/**\n * Wielosegmentowy miernik (meter group) z opcjonalną legendą.\n *\n * @example\n * <kpt-meter-group [values]=\"[{label:'Użyte', value:70}, {label:'Wolne', value:30}]\" />\n */\n@Component({\n selector: 'kpt-meter-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-meter-group\">\n <div class=\"kpt-meter-group__track\" role=\"meter\" [attr.aria-valuenow]=\"sum()\" [attr.aria-valuemax]=\"max()\">\n @for (item of values(); track $index; let i = $index) {\n <span\n class=\"kpt-meter-group__segment\"\n [style.width.%]=\"percent(item)\"\n [style.background-color]=\"item.color || fallback(i)\"\n [attr.title]=\"item.label\"\n ></span>\n }\n </div>\n @if (showLegend()) {\n <ul class=\"kpt-meter-group__legend\">\n @for (item of values(); track $index; let i = $index) {\n <li class=\"kpt-meter-group__legend-item\">\n <span class=\"kpt-meter-group__dot\" [style.background-color]=\"item.color || fallback(i)\"></span>\n <span>{{ item.label }}</span>\n <span class=\"kpt-meter-group__val\">{{ round(percent(item)) }}%</span>\n </li>\n }\n </ul>\n }\n </div>\n `,\n styleUrl: './meter-group.component.scss',\n host: { class: 'kpt-meter-group-host' },\n})\nexport class KptMeterGroup {\n readonly values = input<readonly KptMeterItem[]>([]);\n /** Suma odniesienia; domyślnie suma wartości (100%). */\n readonly max = input<number | undefined>(undefined);\n readonly showLegend = input(true, { transform: booleanAttribute });\n\n private readonly palette = ['var(--kpt-color-primary)', 'var(--kpt-color-info)', 'var(--kpt-color-success)', 'var(--kpt-color-warning)', 'var(--kpt-color-danger)'];\n\n protected readonly sum = computed(() => this.values().reduce((a, v) => a + v.value, 0));\n\n protected total(): number {\n return this.max() ?? (this.sum() || 1);\n }\n protected percent(item: KptMeterItem): number {\n return (item.value / this.total()) * 100;\n }\n protected fallback(i: number): string {\n return this.palette[i % this.palette.length];\n }\n protected round(n: number): number {\n return Math.round(n);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\nimport { KptAvatar, type KptAvatarSize } from '../avatar/avatar.component';\n\nexport interface KptAvatarItem {\n name?: string;\n src?: string;\n icon?: string;\n}\n\n/**\n * Grupa nakładających się awatarów z licznikiem „+N\". Buduje na `kpt-avatar`.\n *\n * @example\n * <kpt-avatar-group [avatars]=\"team\" [max]=\"4\" />\n */\n@Component({\n selector: 'kpt-avatar-group',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptAvatar],\n template: `\n <div class=\"kpt-avatar-group\" [attr.data-size]=\"size()\">\n @for (a of shown(); track $index) {\n <span class=\"kpt-avatar-group__item\">\n <kpt-avatar [name]=\"a.name || ''\" [src]=\"a.src || null\" [icon]=\"a.icon || null\" [size]=\"size()\" />\n </span>\n }\n @if (overflow() > 0) {\n <span class=\"kpt-avatar-group__item kpt-avatar-group__more\" [attr.data-size]=\"size()\">+{{ overflow() }}</span>\n }\n </div>\n `,\n styleUrl: './avatar-group.component.scss',\n host: { class: 'kpt-avatar-group-host' },\n})\nexport class KptAvatarGroup {\n readonly avatars = input<readonly KptAvatarItem[]>([]);\n readonly max = input(4);\n readonly size = input<KptAvatarSize>('md');\n\n protected readonly shown = computed(() => this.avatars().slice(0, this.max()));\n protected readonly overflow = computed(() => Math.max(0, this.avatars().length - this.max()));\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Stan pusty (empty state) — ikona, tytuł, opis i opcjonalne akcje (projekcja).\n *\n * @example\n * <kpt-empty icon=\"search\" title=\"Brak wyników\" description=\"Zmień kryteria wyszukiwania.\">\n * <kpt-button>Wyczyść filtry</kpt-button>\n * </kpt-empty>\n */\n@Component({\n selector: 'kpt-empty',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-empty\">\n @if (icon()) { <div class=\"kpt-empty__icon\"><kpt-icon [name]=\"icon()!\" /></div> }\n @if (title()) { <p class=\"kpt-empty__title\">{{ title() }}</p> }\n @if (description()) { <p class=\"kpt-empty__desc\">{{ description() }}</p> }\n <div class=\"kpt-empty__actions\"><ng-content /></div>\n </div>\n `,\n styleUrl: './empty.component.scss',\n host: { class: 'kpt-empty-host' },\n})\nexport class KptEmpty {\n readonly icon = input<string | null>('info-circle');\n readonly title = input('');\n readonly description = input('');\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, booleanAttribute, input, viewChild } from '@angular/core';\n\n/**\n * Pojedyncza zakładka. Umieszczaj w `kpt-tabs`. Treść renderowana leniwie (gdy aktywna).\n *\n * @example\n * <kpt-tab label=\"Ogólne\">…treść…</kpt-tab>\n */\n@Component({\n selector: 'kpt-tab',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template><ng-content /></ng-template>`,\n})\nexport class KptTab {\n readonly label = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly content = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChildren,\n input,\n model,\n signal,\n viewChildren,\n} from '@angular/core';\nimport { KptTab } from './tab.component';\n\n/**\n * Zakładki (tabs) — przełączanie widoków. Treść zakładek renderowana leniwie.\n *\n * @example\n * <kpt-tabs [(activeIndex)]=\"tab\">\n * <kpt-tab label=\"Ogólne\">…</kpt-tab>\n * <kpt-tab label=\"Zaawansowane\">…</kpt-tab>\n * </kpt-tabs>\n */\n@Component({\n selector: 'kpt-tabs',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet],\n template: `\n <div class=\"kpt-tabs__header\" role=\"tablist\">\n @for (tab of tabs(); track $index; let i = $index) {\n <button\n #tabBtn\n type=\"button\"\n class=\"kpt-tabs__tab\"\n role=\"tab\"\n [class.is-active]=\"i === activeIndex()\"\n [disabled]=\"tab.disabled()\"\n [attr.aria-selected]=\"i === activeIndex()\"\n (click)=\"select(i)\"\n >{{ tab.label() }}</button>\n }\n <span class=\"kpt-tabs__ink\" [style.width.px]=\"inkW()\" [style.transform]=\"'translateX(' + inkX() + 'px)'\"></span>\n </div>\n <div class=\"kpt-tabs__body\" role=\"tabpanel\">\n @for (tab of activePanels(); track activeIndex()) {\n <div class=\"kpt-tabs__panel\"><ng-container [ngTemplateOutlet]=\"tab.content()\" /></div>\n }\n </div>\n `,\n styleUrl: './tabs.component.scss',\n host: {\n 'class': 'kpt-tabs-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n '[style.--kpt-anim-dir]': 'direction()',\n '(window:resize)': 'measureInk()',\n },\n})\nexport class KptTabs {\n protected readonly tabs = contentChildren(KptTab);\n readonly activeIndex = model(0);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n private readonly tabBtns = viewChildren<ElementRef<HTMLButtonElement>>('tabBtn');\n protected readonly inkX = signal(0);\n protected readonly inkW = signal(0);\n protected readonly direction = signal(1);\n\n protected readonly activeTab = computed(() => this.tabs()[this.activeIndex()]);\n protected readonly activePanels = computed(() => {\n const tab = this.activeTab();\n return tab ? [tab] : [];\n });\n\n constructor() {\n afterRenderEffect(() => this.measureInk());\n }\n\n protected measureInk(): void {\n const btn = this.tabBtns()[this.activeIndex()]?.nativeElement;\n if (!btn) return;\n this.inkX.set(btn.offsetLeft);\n this.inkW.set(btn.offsetWidth);\n }\n\n protected select(index: number): void {\n if (this.tabs()[index]?.disabled()) return;\n this.direction.set(index >= this.activeIndex() ? 1 : -1);\n this.activeIndex.set(index);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptAccordion } from './accordion.component';\n\n/**\n * Panel akordeonu. Umieszczaj w `kpt-accordion`. Stan `expanded` jest dwukierunkowy.\n */\n@Component({\n selector: 'kpt-accordion-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-accordion-panel\" [class.is-open]=\"expanded()\">\n <button\n type=\"button\"\n class=\"kpt-accordion-panel__header\"\n [attr.aria-expanded]=\"expanded()\"\n [disabled]=\"disabled()\"\n (click)=\"toggle()\"\n >\n <span class=\"kpt-accordion-panel__title\">{{ title() }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-accordion-panel__chevron\" [class.is-open]=\"expanded()\" />\n </button>\n <div\n class=\"kpt-accordion-panel__collapse\"\n [class.is-open]=\"expanded()\"\n [attr.inert]=\"expanded() ? null : ''\"\n [attr.aria-hidden]=\"!expanded()\"\n >\n <div class=\"kpt-accordion-panel__collapse-inner\">\n <div class=\"kpt-accordion-panel__body\"><ng-content /></div>\n </div>\n </div>\n </div>\n `,\n styleUrl: './accordion-panel.component.scss',\n host: {\n 'class': 'kpt-accordion-panel-host',\n '[style.--kpt-anim-duration]': 'animMs()',\n },\n})\nexport class KptAccordionPanel {\n readonly title = input.required<string>();\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly expanded = model(false);\n\n private readonly accordion = inject(KptAccordion, { optional: true });\n\n protected readonly animMs = computed(() => {\n const on = this.accordion?.animated() ?? true;\n const d = this.accordion?.animationDuration() ?? 500;\n return (on ? d : 0) + 'ms';\n });\n\n protected toggle(): void {\n if (this.disabled()) return;\n const willOpen = !this.expanded();\n this.expanded.set(willOpen);\n if (willOpen) this.accordion?.onOpen(this);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, contentChildren, input } from '@angular/core';\nimport { KptAccordionPanel } from './accordion-panel.component';\n\n/**\n * Akordeon — grupa rozwijanych paneli. `multi` pozwala otworzyć wiele naraz.\n *\n * @example\n * <kpt-accordion>\n * <kpt-accordion-panel title=\"Sekcja 1\">…</kpt-accordion-panel>\n * <kpt-accordion-panel title=\"Sekcja 2\">…</kpt-accordion-panel>\n * </kpt-accordion>\n */\n@Component({\n selector: 'kpt-accordion',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<ng-content />`,\n styleUrl: './accordion.component.scss',\n host: { class: 'kpt-accordion-host' },\n})\nexport class KptAccordion {\n readonly multi = input(false, { transform: booleanAttribute });\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n private readonly panels = contentChildren(KptAccordionPanel);\n\n /** Wywoływane przez panel przy otwarciu — zamyka pozostałe, gdy nie `multi`. */\n onOpen(opened: KptAccordionPanel): void {\n if (this.multi()) return;\n for (const panel of this.panels()) {\n if (panel !== opened) panel.expanded.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, input } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptBreadcrumbItem {\n label: string;\n url?: string;\n}\n\n/**\n * Ścieżka nawigacji (breadcrumbs).\n *\n * @example\n * <kpt-breadcrumb [items]=\"[{label:'Start',url:'/'},{label:'Ustawienia'}]\" />\n */\n@Component({\n selector: 'kpt-breadcrumb',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <nav class=\"kpt-breadcrumb\" [attr.aria-label]=\"i18n.t('breadcrumb.label')\">\n @for (item of items(); track $index; let last = $last) {\n @if (item.url && !last) {\n <a class=\"kpt-breadcrumb__link\" [href]=\"item.url\">{{ item.label }}</a>\n } @else {\n <span class=\"kpt-breadcrumb__current\" [attr.aria-current]=\"last ? 'page' : null\">{{ item.label }}</span>\n }\n @if (!last) {\n <kpt-icon name=\"chevron-right\" class=\"kpt-breadcrumb__sep\" />\n }\n }\n </nav>\n `,\n styleUrl: './breadcrumb.component.scss',\n host: { class: 'kpt-breadcrumb-host' },\n})\nexport class KptBreadcrumb {\n readonly items = input<readonly KptBreadcrumbItem[]>([]);\n protected readonly i18n = inject(KptI18n);\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, input, viewChild } from '@angular/core';\n\n/**\n * Krok w `kpt-stepper`. Treść renderowana leniwie (gdy krok aktywny).\n *\n * @example\n * <kpt-step label=\"Konto\">…</kpt-step>\n */\n@Component({\n selector: 'kpt-step',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `<ng-template><ng-content /></ng-template>`,\n})\nexport class KptStep {\n readonly label = input.required<string>();\n readonly content = viewChild.required(TemplateRef);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n contentChildren,\n input,\n model,\n signal,\n} from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptStep } from './step.component';\n\n/**\n * Kreator kroków (stepper). Nagłówek z numerowanymi krokami + aktywna treść.\n * Metody `next()`/`prev()`/`goTo()` do sterowania (np. z przycisków).\n *\n * @example\n * <kpt-stepper #s [(activeIndex)]=\"step\">\n * <kpt-step label=\"Konto\">…<kpt-button (click)=\"s.next()\">Dalej</kpt-button></kpt-step>\n * <kpt-step label=\"Profil\">…</kpt-step>\n * </kpt-stepper>\n */\n@Component({\n selector: 'kpt-stepper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <ol class=\"kpt-stepper__header\">\n @for (step of steps(); track $index; let i = $index, last = $last) {\n <li class=\"kpt-stepper__step\" [class.is-active]=\"i === activeIndex()\" [class.is-done]=\"i < activeIndex()\">\n <button type=\"button\" class=\"kpt-stepper__marker\" (click)=\"goTo(i)\" [attr.aria-current]=\"i === activeIndex() ? 'step' : null\">\n @if (i < activeIndex()) { <kpt-icon name=\"check\" /> } @else { {{ i + 1 }} }\n </button>\n <span class=\"kpt-stepper__label\">{{ step.label() }}</span>\n @if (!last) { <span class=\"kpt-stepper__connector\"></span> }\n </li>\n }\n </ol>\n <div class=\"kpt-stepper__body\">\n @for (step of activePanels(); track activeIndex()) {\n <div class=\"kpt-stepper__panel\"><ng-container [ngTemplateOutlet]=\"step.content()\" /></div>\n }\n </div>\n `,\n styleUrl: './stepper.component.scss',\n host: {\n 'class': 'kpt-stepper-host',\n '[style.--kpt-anim-duration]': \"(animated() ? animationDuration() : 0) + 'ms'\",\n '[style.--kpt-anim-dir]': 'direction()',\n },\n})\nexport class KptStepper {\n protected readonly steps = contentChildren(KptStep);\n readonly activeIndex = model(0);\n readonly animated = input(true, { transform: booleanAttribute });\n readonly animationDuration = input(500);\n\n protected readonly direction = signal(1);\n protected readonly activeStep = computed(() => this.steps()[this.activeIndex()]);\n protected readonly activePanels = computed(() => {\n const step = this.activeStep();\n return step ? [step] : [];\n });\n\n goTo(index: number): void {\n const next = Math.max(0, Math.min(index, this.steps().length - 1));\n this.direction.set(next >= this.activeIndex() ? 1 : -1);\n this.activeIndex.set(next);\n }\n next(): void {\n this.direction.set(1);\n this.activeIndex.update((i) => Math.min(i + 1, this.steps().length - 1));\n }\n prev(): void {\n this.direction.set(-1);\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n}\n","<div class=\"kpt-paginator__size\">\n <label>\n {{ i18n.t('paginator.rowsPerPage') }}\n <select class=\"kpt-paginator__select\" [value]=\"pageSize()\" (change)=\"onSizeChange($event)\">\n @for (opt of sizeOptions(); track opt) {\n <option [value]=\"opt\" [selected]=\"opt === pageSize()\">{{ opt }}</option>\n }\n </select>\n </label>\n</div>\n\n<span class=\"kpt-paginator__range\">{{ rangeLabel() }}</span>\n\n<div class=\"kpt-paginator__nav\">\n <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"!canPrev()\" (click)=\"prev()\" [attr.aria-label]=\"i18n.t('paginator.prevPage')\"><kpt-icon name=\"chevron-left\" /></kpt-button>\n <kpt-button variant=\"outline\" size=\"sm\" [disabled]=\"!canNext()\" (click)=\"next()\" [attr.aria-label]=\"i18n.t('paginator.nextPage')\"><kpt-icon name=\"chevron-right\" /></kpt-button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n model,\n} from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Paginator Koncept UI. Sterowany sygnałami; `pageIndex` i `pageSize` są dwukierunkowe.\n *\n * @example\n * <kpt-paginator [length]=\"total()\" [(pageIndex)]=\"page\" [(pageSize)]=\"size\" />\n */\n@Component({\n selector: 'kpt-paginator',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptButton, KptIcon],\n templateUrl: './paginator.component.html',\n styleUrl: './paginator.component.scss',\n host: { class: 'kpt-paginator' },\n})\nexport class KptPaginator {\n /** Łączna liczba elementów. */\n readonly length = input.required<number>();\n /** Rozmiar strony (dwukierunkowe). */\n readonly pageSize = model<number>(10);\n /** Indeks strony od 0 (dwukierunkowe). */\n readonly pageIndex = model<number>(0);\n /** Dostępne rozmiary strony. */\n readonly pageSizeOptions = input<readonly number[]>([5, 10, 20, 50]);\n\n protected readonly i18n = inject(KptI18n);\n\n /**\n * Opcje selecta: `pageSizeOptions` uzupełnione o bieżący `pageSize`. Bez tego rozmiar spoza\n * listy (np. `[pageSize]=\"8\"` przy domyślnych opcjach) nie ma odpowiadającej opcji — select\n * pokazuje pierwszą pozycję i cicho kłamie o stanie, po którym tabela naprawdę stronicuje.\n */\n protected readonly sizeOptions = computed(() => {\n const options = this.pageSizeOptions();\n const size = this.pageSize();\n return options.includes(size) ? options : [...options, size].sort((a, b) => a - b);\n });\n\n readonly totalPages = computed(() => Math.max(1, Math.ceil(this.length() / this.pageSize())));\n readonly rangeStart = computed(() => (this.length() === 0 ? 0 : this.pageIndex() * this.pageSize() + 1));\n readonly rangeEnd = computed(() => Math.min(this.length(), (this.pageIndex() + 1) * this.pageSize()));\n protected readonly rangeLabel = computed(() =>\n this.i18n.t('paginator.range', { start: this.rangeStart(), end: this.rangeEnd(), total: this.length() }),\n );\n readonly canPrev = computed(() => this.pageIndex() > 0);\n readonly canNext = computed(() => this.pageIndex() < this.totalPages() - 1);\n\n constructor() {\n // Utrzymuj poprawny indeks, gdy zmieni się długość lub rozmiar strony.\n effect(() => {\n const max = this.totalPages() - 1;\n if (this.pageIndex() > max) {\n this.pageIndex.set(max);\n }\n });\n }\n\n prev(): void {\n if (this.canPrev()) this.pageIndex.update((i) => i - 1);\n }\n next(): void {\n if (this.canNext()) this.pageIndex.update((i) => i + 1);\n }\n onSizeChange(event: Event): void {\n this.pageSize.set(+(event.target as HTMLSelectElement).value);\n this.pageIndex.set(0);\n }\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon komórki dla kolumny `kpt-data-table`. Kontekst: `$implicit` = wiersz,\n * `value` = wartość pola.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\">\n * <ng-template kptCell=\"status\" let-row let-value=\"value\">\n * <span class=\"badge\">{{ value }}</span>\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptCell]',\n})\nexport class KptCellDef {\n /** Nazwa pola kolumny, dla której obowiązuje szablon. */\n readonly kptCell = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject, input } from '@angular/core';\n\n/**\n * Własny szablon edytora komórki dla kolumny `kpt-data-table` (gdy wbudowane typy\n * `KptColumnEdit.type` nie wystarczają). Kontekst: `$implicit` = bieżąca wartość edycji,\n * `row` = wiersz, `commit(value)` = zatwierdź wartość i zamknij edytor, `cancel()` = odrzuć.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\">\n * <ng-template kptCellEdit=\"team\" let-value let-commit=\"commit\">\n * <my-custom-picker [value]=\"value\" (valueChange)=\"commit($event)\" />\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptCellEdit]',\n})\nexport class KptCellEditDef {\n /** Nazwa pola kolumny, dla której obowiązuje szablon edytora. */\n readonly kptCellEdit = input.required<string>();\n readonly template = inject(TemplateRef);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n/**\n * Szablon rozwijanego wiersza (row detail) dla `kpt-data-table`. Renderowany pod\n * wierszem po rozwinięciu. Kontekst: `$implicit` = wiersz. Wymaga `expandable`.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\" expandable>\n * <ng-template kptRowDetail let-row>\n * <div class=\"szczegoly\">{{ row.opis }}</div>\n * </ng-template>\n * </kpt-data-table>\n */\n@Directive({\n selector: 'ng-template[kptRowDetail]',\n})\nexport class KptRowDetailDef {\n readonly template = inject(TemplateRef);\n}\n","@if (filterable() || exportable()) {\n <div class=\"kpt-data-table__toolbar\">\n @if (filterable()) {\n <input\n class=\"kpt-data-table__filter\"\n type=\"search\"\n [attr.placeholder]=\"i18n.t('dataTable.search')\"\n [value]=\"filterText()\"\n (input)=\"onFilter($event)\"\n />\n }\n @if (exportable()) {\n <kpt-button variant=\"outline\" size=\"sm\" (click)=\"exportCsv()\">{{ i18n.t('dataTable.exportCsv') }}</kpt-button>\n }\n </div>\n}\n\n<div class=\"kpt-data-table__scroll\" #scrollEl [style.max-height]=\"scrollHeight()\" (scroll)=\"onScroll($event)\">\n <table\n class=\"kpt-data-table__table\"\n [class.kpt-data-table__table--frozen]=\"hasFrozen()\"\n [class.kpt-data-table__table--virtual]=\"virtualScroll()\"\n >\n <thead #theadEl>\n @if (hasColumnFilters() && filterRowPosition() === 'top') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n <tr>\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() === 'multiple') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"pageAllSelected()\"\n [indeterminate]=\"pageSomeSelected()\"\n (change)=\"toggleAllOnPage()\"\n [attr.aria-label]=\"i18n.t('dataTable.selectAll')\"\n />\n </th>\n } @else if (selectable() === 'single') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [attr.draggable]=\"isColDraggable(col) ? true : null\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__th--sortable]=\"col.sortable\"\n [class.kpt-data-table__th--draggable]=\"isColDraggable(col)\"\n [class.kpt-data-table__th--dragover]=\"dragField() !== null && dragField() !== col.field && !col.frozen\"\n [attr.aria-sort]=\"ariaSort(col)\"\n (click)=\"toggleSort(col)\"\n (dragstart)=\"onColDragStart(col.field, $event)\"\n (dragover)=\"reorderable() ? onColDragOver(col.field, $event) : null\"\n (drop)=\"reorderable() ? onColDrop(col.field, $event) : null\"\n (dragend)=\"onColDragEnd()\"\n >\n @if (isColDraggable(col)) {\n <kpt-icon class=\"kpt-data-table__grip\" name=\"grip-vertical\" />\n }\n <span>{{ col.header }}</span>\n @if (col.sortable) {\n <kpt-icon\n class=\"kpt-data-table__sort\"\n [class.kpt-data-table__sort--active]=\"ariaSort(col) !== 'none'\"\n [name]=\"sortIconName(col)\"\n />\n }\n </th>\n }\n </tr>\n @if (hasColumnFilters() && filterRowPosition() === 'bottom') {\n <ng-container [ngTemplateOutlet]=\"filterRowTpl\" />\n }\n </thead>\n <tbody>\n @if (loading()) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ i18n.t('dataTable.loading') }}</td></tr>\n } @else if (displayCount() === 0) {\n <tr><td class=\"kpt-data-table__state\" [attr.colspan]=\"colspan()\">{{ emptyText() }}</td></tr>\n } @else if (virtualScroll()) {\n @if (topPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"topPad()\"></td></tr>\n }\n @for (row of virtualRows(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n @if (bottomPad() > 0) {\n <tr class=\"kpt-data-table__spacer\" aria-hidden=\"true\"><td [attr.colspan]=\"colspan()\" [style.height.px]=\"bottomPad()\"></td></tr>\n }\n } @else {\n @for (row of paged(); track trackRow(row)) {\n <ng-container [ngTemplateOutlet]=\"rowTpl\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n }\n }\n </tbody>\n @if (hasSummary() && !loading() && displayCount() > 0) {\n <tfoot>\n <tr class=\"kpt-data-table__summary\">\n @if (summaryLabelSpan() > 0) {\n <th\n class=\"kpt-data-table__summary-label\"\n [attr.colspan]=\"summaryLabelSpan()\"\n [class.kpt-data-table__cell--frozen]=\"hasFrozen()\"\n [style.left.px]=\"hasFrozen() ? 0 : null\"\n >\n {{ summaryLabelText() }}\n </th>\n }\n @for (col of visibleOrderedColumns(); track col.field; let i = $index) {\n @if (i >= summaryStartIndex()) {\n <td\n [attr.data-align]=\"col.align ?? 'end'\"\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n {{ summaryText(col.field) }}\n </td>\n }\n }\n </tr>\n </tfoot>\n }\n </table>\n</div>\n\n<ng-template #rowTpl let-row>\n <tr\n [class.kpt-data-table__row--selected]=\"isSelected(row)\"\n [class.kpt-data-table__row--expanded]=\"hasRowDetail() && isExpanded(row)\"\n [style.height.px]=\"virtualScroll() ? rowHeight() : null\"\n (click)=\"onRowClick(row)\"\n >\n @if (hasRowDetail()) {\n <td class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\">\n <button\n type=\"button\"\n class=\"kpt-data-table__expander-btn\"\n [class.kpt-data-table__expander-btn--open]=\"isExpanded(row)\"\n [attr.aria-expanded]=\"isExpanded(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.expandRow')\"\n (click)=\"$event.stopPropagation(); toggleExpand(row)\"\n >\n <kpt-icon name=\"chevron-right\" />\n </button>\n </td>\n }\n @if (selectable() !== 'none') {\n <td class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleRow(row)\"\n [attr.aria-label]=\"i18n.t('dataTable.selectRow')\"\n />\n </td>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <td\n [attr.data-align]=\"col.align ?? 'start'\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n [class.kpt-data-table__cell--editable]=\"isEditable(col) && !isEditingCell(row, col.field)\"\n [attr.tabindex]=\"isEditable(col) && !isEditingCell(row, col.field) ? 0 : null\"\n [attr.aria-label]=\"isEditable(col) && !isEditingCell(row, col.field) ? i18n.t('dataTable.editCell', { column: col.header }) : null\"\n (click)=\"isEditable(col) ? startEdit(row, col, $event) : null\"\n (keydown.enter)=\"isEditable(col) && !isEditingCell(row, col.field) ? startEdit(row, col, $event) : null\"\n >\n @if (isEditingCell(row, col.field)) {\n <div\n class=\"kpt-data-table__editor\"\n #editorHost\n (click)=\"$event.stopPropagation()\"\n (focusout)=\"onEditorFocusOut($event)\"\n >\n @if (cellEditTemplate(col.field); as etpl) {\n <ng-container\n [ngTemplateOutlet]=\"etpl\"\n [ngTemplateOutletContext]=\"{ $implicit: editingValue(), row, commit: commitEditValue, cancel: cancelEdit }\"\n />\n } @else {\n @switch (col.edit?.type) {\n @case ('text') {\n <kpt-input\n [value]=\"$any(editingValue()) ?? ''\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('number') {\n <kpt-input-number\n [value]=\"$any(editingValue())\"\n [min]=\"col.edit.min\"\n [max]=\"col.edit.max\"\n [step]=\"col.edit.step ?? 1\"\n (valueChange)=\"editingValue.set($event)\"\n (keydown.enter)=\"commitEdit()\"\n (keydown.escape)=\"cancelEdit()\"\n />\n }\n @case ('date') {\n <kpt-datepicker\n [value]=\"$any(editingValue()) ?? ''\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n @case ('multiselect') {\n <kpt-select\n multiple\n filter\n [options]=\"col.edit.options ?? []\"\n [placeholder]=\"col.edit.placeholder ?? ''\"\n [value]=\"editingValue()\"\n (valueChange)=\"editingValue.set($event)\"\n [open]=\"editorPanelOpen()\"\n (openChange)=\"onEditorPanelToggle($event)\"\n />\n }\n }\n }\n </div>\n } @else if (cellTemplate(col.field); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: row, value: getValue(row, col.field) }\"\n />\n } @else {\n {{ getValue(row, col.field) }}\n }\n </td>\n }\n </tr>\n @if (hasRowDetail() && isExpanded(row) && !virtualScroll()) {\n <tr class=\"kpt-data-table__detail-row\">\n <td class=\"kpt-data-table__detail\" [attr.colspan]=\"colspan()\">\n <ng-container [ngTemplateOutlet]=\"rowDetailTpl()\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n </td>\n </tr>\n }\n</ng-template>\n\n<ng-template #filterRowTpl>\n <tr class=\"kpt-data-table__filter-row\">\n @if (hasRowDetail()) {\n <th class=\"kpt-data-table__expander\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"expanderStickyLeft()\"></th>\n }\n @if (selectable() !== 'none') {\n <th class=\"kpt-data-table__checkbox\" [class.kpt-data-table__cell--frozen]=\"hasFrozen()\" [style.left.px]=\"checkboxStickyLeft()\"></th>\n }\n @for (col of visibleOrderedColumns(); track col.field) {\n <th\n [style.width]=\"col.width\"\n [style.left.px]=\"frozenLeft(col.field)\"\n [attr.data-align]=\"col.align ?? 'start'\"\n [class.kpt-data-table__cell--frozen]=\"isFrozen(col.field)\"\n >\n @switch (col.filter?.type) {\n @case ('text') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"search\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"setColumnFilter(col.field, $any($event.target).value)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('number') {\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"col.filter.placeholder || ''\"\n [attr.aria-label]=\"i18n.t('dataTable.filter', { column: col.header })\"\n [value]=\"$any(columnFilters()[col.field]) || ''\"\n (input)=\"onNumberFilter(col.field, $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n }\n @case ('select') {\n <kpt-select\n [options]=\"col.filter.options || []\"\n [multiple]=\"!!col.filter.multiple\"\n filter\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.all')\"\n [value]=\"columnFilters()[col.field] ?? null\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n @case ('numberRange') {\n <div class=\"kpt-data-table__frange\">\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.min')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMin', { column: col.header })\"\n [value]=\"rangeVal(col.field).min\"\n (input)=\"setRangeFilter(col.field, 'min', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n <input\n class=\"kpt-data-table__fcell\"\n type=\"text\"\n inputmode=\"numeric\"\n [attr.placeholder]=\"i18n.t('dataTable.max')\"\n [attr.aria-label]=\"i18n.t('dataTable.filterMax', { column: col.header })\"\n [value]=\"rangeVal(col.field).max\"\n (input)=\"setRangeFilter(col.field, 'max', $event)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n }\n @case ('slider') {\n <div class=\"kpt-data-table__fslider\" (click)=\"$event.stopPropagation()\">\n <kpt-slider\n range\n [min]=\"col.filter.min ?? 0\"\n [max]=\"col.filter.max ?? 100\"\n [step]=\"col.filter.step ?? 1\"\n [value]=\"sliderVal(col)\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n showValue\n />\n </div>\n }\n @case ('dateRange') {\n <kpt-date-range\n [placeholder]=\"col.filter.placeholder || i18n.t('dataTable.dateRange')\"\n [value]=\"$any(columnFilters()[col.field]) || { start: '', end: '' }\"\n (valueChange)=\"setColumnFilter(col.field, $event)\"\n />\n }\n }\n </th>\n }\n </tr>\n</ng-template>\n\n@if (pageSize() > 0 && !virtualScroll()) {\n <div class=\"kpt-data-table__pager\">\n <ng-content select=\"[kptPaginatorActions]\" />\n <kpt-paginator\n [length]=\"filteredCount()\"\n [pageIndex]=\"pageIndex()\"\n (pageIndexChange)=\"pageIndex.set($event)\"\n [pageSize]=\"pageSizeState()\"\n (pageSizeChange)=\"pageSizeState.set($event)\"\n [pageSizeOptions]=\"pageSizeOptions()\"\n />\n </div>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n contentChildren,\n effect,\n inject,\n input,\n linkedSignal,\n model,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptDateRange } from '../date-range/date-range.component';\nimport { KptDatepicker } from '../datepicker/datepicker.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport { KptInput } from '../input/input.component';\nimport { KptInputNumber } from '../input-number/input-number.component';\nimport { KptPaginator } from '../paginator/paginator.component';\nimport { KptSelect } from '../select/select.component';\nimport { KptSlider } from '../slider/slider.component';\nimport type { KptOption } from '../shared/types';\nimport { KptCellDef } from './cell.directive';\nimport { KptCellEditDef } from './cell-edit.directive';\nimport {\n aggregate,\n escapeCsvCell,\n isEmptyFilterValue,\n matchesColumnFilter,\n toText,\n type KptColumnFilter,\n type KptColumnSummary,\n} from '@konce-pt/table';\nimport { KptRowDetailDef } from './row-detail.directive';\n\n// Rdzeń tabeli (filtry, agregacje, CSV) mieszka w `@konce-pt/table`; re-eksport trzyma\n// publiczne API biblioteki bez zmian.\nexport type { KptColumnFilter, KptColumnFilterType, KptColumnSummary, KptSummaryFn } from '@konce-pt/table';\n\n/** Rodzaj kontrolki edycji inline komórki. */\nexport type KptColumnEditType = 'text' | 'number' | 'date' | 'select' | 'multiselect';\n\nexport interface KptColumnEdit {\n type: KptColumnEditType;\n /** Opcje dla `type: 'select'` / `'multiselect'`. */\n options?: readonly KptOption<unknown>[];\n placeholder?: string;\n /** Dla `type: 'number'`. */\n min?: number;\n max?: number;\n step?: number;\n}\n\nexport interface KptColumn {\n /** Nazwa pola w wierszu. */\n field: string;\n /** Nagłówek kolumny. */\n header: string;\n /** Czy kolumna jest sortowalna. */\n sortable?: boolean;\n /** Wyrównanie zawartości. */\n align?: 'start' | 'center' | 'end';\n /** Szerokość kolumny (np. '10rem', '20%'). Wymagane dla kolumn zamrożonych. */\n width?: string;\n /** Zamrożenie (sticky) — obsługiwane dla wiodących, sąsiadujących kolumn. */\n frozen?: boolean;\n /** Filtr kolumny w wierszu nagłówka (input/number/select/zakres dat). */\n filter?: KptColumnFilter;\n /** Włącza edycję inline (klik w komórkę zamienia wartość na kontrolkę tego typu). */\n edit?: KptColumnEdit;\n /** Włącza agregację tej kolumny w wierszu podsumowania (`<tfoot>`, nad paginatorem). */\n summary?: KptColumnSummary;\n}\n\n/** Zdarzenie po zatwierdzeniu edycji komórki. */\nexport interface KptCellEditEvent<T> {\n /** Wiersz sprzed zmiany. */\n row: T;\n field: string;\n /** Nowa wartość. */\n value: unknown;\n /** Wiersz po scaleniu ze zmienioną wartością — gotowe body PUT/PATCH. */\n updatedRow: T;\n}\n\nconst REM_PX = 16;\nconst CHECKBOX_FROZEN_W = 3; // rem\nconst EXPANDER_FROZEN_W = 2.5; // rem\n\n/** Edytory renderujące panel w CDK Overlay — otwierane od razu i zatwierdzane na zamknięciu panelu. */\nconst OVERLAY_EDITORS: ReadonlySet<KptColumnEditType> = new Set(['date', 'select', 'multiselect']);\n\n/** Tablice (multiselect) porównujemy po zawartości, resztę po referencji. */\nfunction sameEditValue(a: unknown, b: unknown): boolean {\n if (a === b) return true;\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((v, i) => v === b[i]);\n }\n return false;\n}\n\ntype SortDir = 'asc' | 'desc' | null;\n\n/** Stan przekazywany w trybie lazy przy każdej zmianie sortowania/filtra/strony. */\nexport interface KptTableLazyState {\n pageIndex: number;\n pageSize: number;\n sortField: string | null;\n sortDir: SortDir;\n filter: string;\n /** Wartości filtrów per kolumna (pole → wartość kontrolki). */\n columnFilters: Record<string, unknown>;\n}\n\n/**\n * Flagowa tabela danych Koncept UI: kolumny konfiguracją, sortowanie,\n * filtr globalny, paginacja, zaznaczanie wierszy i własne szablony komórek (`kptCell`).\n * Sygnałowa, OnPush. Stylowanie tokenami `--kpt-table-*`.\n *\n * @example\n * <kpt-data-table [columns]=\"cols\" [data]=\"rows\" filterable [pageSize]=\"10\"\n * selectable=\"multiple\" rowKey=\"id\" [(selection)]=\"picked\">\n * <!-- Kontekst szablonu komórki: $implicit = wiersz, value = wartość pola. -->\n * <ng-template kptCell=\"status\" let-row let-value=\"value\">\n * <span class=\"badge\" [title]=\"row.name\">{{ value }}</span>\n * </ng-template>\n * </kpt-data-table>\n */\n@Component({\n selector: 'kpt-data-table',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n KptButton,\n KptIcon,\n KptPaginator,\n KptSelect,\n KptDateRange,\n KptSlider,\n KptInput,\n KptInputNumber,\n KptDatepicker,\n ],\n templateUrl: './data-table.component.html',\n styleUrl: './data-table.component.scss',\n host: {\n 'class': 'kpt-data-table',\n '[style.--kpt-thead-offset]': \"theadOffset() + 'px'\",\n },\n})\nexport class KptDataTable<T = Record<string, unknown>> {\n // ── Wejścia ──\n readonly columns = input.required<readonly KptColumn[]>();\n readonly data = input<readonly T[]>([]);\n readonly filterable = input(false, { transform: booleanAttribute });\n /** Pozycja wiersza filtrów kolumn względem etykiet: nad ('top') lub pod ('bottom'). */\n readonly filterRowPosition = input<'top' | 'bottom'>('bottom');\n /** Rozmiar strony; 0 wyłącza paginację. */\n readonly pageSize = input(0);\n readonly pageSizeOptions = input<readonly number[]>([5, 10, 20, 50]);\n readonly selectable = input<'none' | 'single' | 'multiple'>('none');\n readonly loading = input(false, { transform: booleanAttribute });\n /** Komunikat pustej tabeli; bez wartości używa i18n (`dataTable.empty`). */\n readonly emptyMessage = input<string>();\n /** Pole identyfikujące wiersz (dla zaznaczania). Bez niego — porównanie po referencji. */\n readonly rowKey = input<string | null>(null);\n /** Wysokość przewijalnego obszaru (np. '400px'); sticky header pozostaje widoczny. */\n readonly scrollHeight = input<string | null>(null);\n /** Wirtualizacja wierszy dla dużych zbiorów (renderuje tylko widoczne). Wymaga `scrollHeight`. */\n readonly virtualScroll = input(false, { transform: booleanAttribute });\n /** Wysokość wiersza w px (stała, wymagana przy virtualScroll). */\n readonly rowHeight = input(41);\n /** Umożliwia przestawianie kolumn metodą przeciągnij-i-upuść. */\n readonly reorderable = input(false, { transform: booleanAttribute });\n /** Pokazuje przycisk eksportu do CSV. */\n readonly exportable = input(false, { transform: booleanAttribute });\n /** Nazwa pliku eksportu CSV. */\n readonly exportFilename = input('export.csv');\n /** Tryb serwerowy: bez filtrowania/sortowania/paginacji po stronie klienta. */\n readonly lazy = input(false, { transform: booleanAttribute });\n /** Łączna liczba rekordów (wymagane w trybie lazy dla paginacji). */\n readonly totalRecords = input<number | null>(null);\n /** Rozwijane wiersze: dodaje kolumnę z przełącznikiem i renderuje szablon `kptRowDetail`. */\n readonly expandable = input(false, { transform: booleanAttribute });\n /** Zezwala na rozwinięcie wielu wierszy naraz (domyślnie tak). */\n readonly multiExpand = input(true, { transform: booleanAttribute });\n /** Etykieta wiersza podsumowania; bez wartości używa i18n (`dataTable.total`). */\n readonly summaryLabel = input<string>();\n /**\n * Gotowe wartości podsumowania (pole → wartość). Nadpisują wyliczenia po stronie klienta,\n * a w trybie `lazy` są ich jedynym źródłem (tabela ma wtedy tylko bieżącą stronę).\n */\n readonly summaryValues = input<Record<string, unknown> | null>(null);\n\n // ── Model / zdarzenia ──\n readonly selection = model<T[]>([]);\n /** Rozwinięte wiersze (dwukierunkowo). */\n readonly expandedRows = model<T[]>([]);\n /**\n * Pola (`KptColumn.field`) aktualnie ukrytych kolumn (dwukierunkowo). Sam komponent nie\n * dostarcza UI do zarządzania tym stanem — to hak do podpięcia zewnętrznego przełącznika\n * kolumn (patrz przykład „Dostosowywanie kolumn\" w playground).\n */\n readonly hiddenFields = model<readonly string[]>([]);\n readonly rowClick = output<T>();\n /** Emitowane w trybie lazy przy zmianie sortowania/filtra/strony. */\n readonly lazyLoad = output<KptTableLazyState>();\n /** Emitowane po zatwierdzeniu edycji komórki (tylko gdy wartość faktycznie się zmieniła). */\n readonly cellEdit = output<KptCellEditEvent<T>>();\n\n protected readonly i18n = inject(KptI18n);\n /** Komunikat pustej tabeli (input albo domyślny z i18n). */\n protected readonly emptyText = computed(() => this.emptyMessage() ?? this.i18n.t('dataTable.empty'));\n\n /** Kolumny w bieżącej kolejności (po ewentualnym przestawieniu). */\n protected readonly orderedColumns = linkedSignal<readonly KptColumn[]>(() => this.columns());\n /** Kolumny w bieżącej kolejności, bez tych ukrytych przez `hiddenFields` — do renderowania i eksportu. */\n protected readonly visibleOrderedColumns = computed(() =>\n this.orderedColumns().filter((c) => !this.hiddenFields().includes(c.field)),\n );\n\n // ── Wirtualizacja (ręczne okno wierszy) ──\n private readonly scrollEl = viewChild<ElementRef<HTMLElement>>('scrollEl');\n protected readonly scrollTop = signal(0);\n protected readonly viewportHeight = signal(400);\n private readonly buffer = 6;\n\n // ── Sticky offset drugiego wiersza nagłówka (etykiety + filtry) ──\n private readonly theadEl = viewChild<ElementRef<HTMLTableSectionElement>>('theadEl');\n protected readonly theadOffset = signal(0);\n\n // ── Edycja inline komórek ──\n protected readonly editingCell = signal<{ row: T; field: string } | null>(null);\n protected readonly editingValue = signal<unknown>(null);\n /** Czy panel edytora overlayowego (date/select/multiselect) jest otwarty. */\n protected readonly editorPanelOpen = signal(false);\n private readonly editorHost = viewChild<ElementRef<HTMLElement>>('editorHost');\n\n constructor() {\n // Tryb lazy: przy każdej zmianie stanu poproś rodzica o dane.\n effect(() => {\n if (!this.lazy()) return;\n this.lazyLoad.emit({\n pageIndex: this.pageIndex(),\n pageSize: this.pageSizeState(),\n sortField: this.sortField(),\n sortDir: this.sortDir(),\n filter: this.filterText(),\n columnFilters: this.columnFilters(),\n });\n });\n\n // Zmierz wysokość viewportu dla wirtualizacji.\n afterNextRender(() => {\n const el = this.scrollEl()?.nativeElement;\n if (el) this.viewportHeight.set(el.clientHeight);\n });\n\n // Zmierz wysokość pierwszego wiersza nagłówka → offset sticky drugiego wiersza.\n afterRenderEffect(() => {\n this.filterRowPosition();\n this.hasColumnFilters();\n this.visibleOrderedColumns();\n const first = this.theadEl()?.nativeElement?.rows?.[0];\n if (first) this.theadOffset.set(first.offsetHeight);\n });\n\n // Wejście w edycję komórki → przenieś fokus na jej edytor.\n afterRenderEffect(() => {\n if (!this.editingCell()) return;\n this.editorHost()\n ?.nativeElement.querySelector<HTMLElement>('input, .kpt-select, [tabindex]')\n ?.focus();\n });\n }\n\n protected onScroll(event: Event): void {\n if (!this.virtualScroll()) return;\n const el = event.target as HTMLElement;\n this.scrollTop.set(el.scrollTop);\n this.viewportHeight.set(el.clientHeight);\n }\n\n protected readonly virtualStart = computed(() =>\n Math.max(0, Math.floor(this.scrollTop() / this.rowHeight()) - this.buffer),\n );\n protected readonly virtualEnd = computed(() => {\n const total = this.sorted().length;\n const count = Math.ceil(this.viewportHeight() / this.rowHeight()) + this.buffer * 2;\n return Math.min(total, this.virtualStart() + count);\n });\n protected readonly virtualRows = computed(() => this.sorted().slice(this.virtualStart(), this.virtualEnd()));\n protected readonly topPad = computed(() => this.virtualStart() * this.rowHeight());\n protected readonly bottomPad = computed(() => (this.sorted().length - this.virtualEnd()) * this.rowHeight());\n\n // ── Przestawianie kolumn (natywny HTML5 drag-and-drop; działa w trybie zoneless) ──\n /**\n * Pole przeciąganej kolumny (nie indeks — przy ukrytych kolumnach `$index` z pętli\n * `visibleOrderedColumns()` nie odpowiada pozycji w pełnej `orderedColumns()`).\n */\n protected readonly dragField = signal<string | null>(null);\n\n /** Kolumna przeciągalna tylko gdy `reorderable` i nie jest zamrożona (frozen musi zostać wiodąca). */\n protected isColDraggable(col: KptColumn): boolean {\n return this.reorderable() && !col.frozen;\n }\n /** Liczba wiodących widocznych kolumn zamrożonych — poza nie wolno upuszczać ani ich przesuwać. */\n private frozenLeadCount(): number {\n let n = 0;\n for (const col of this.visibleOrderedColumns()) {\n if (col.frozen) n++;\n else break;\n }\n return n;\n }\n\n protected onColDragStart(field: string, event: DragEvent): void {\n const col = this.orderedColumns().find((c) => c.field === field);\n if (col?.frozen) return; // frozen nieprzeciągalne\n this.dragField.set(field);\n event.dataTransfer?.setData('text/plain', field);\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n }\n protected onColDragOver(field: string, event: DragEvent): void {\n // Zezwól na upuszczenie tylko poza obszarem kolumn zamrożonych.\n const visIndex = this.visibleOrderedColumns().findIndex((c) => c.field === field);\n if (this.dragField() !== null && visIndex >= this.frozenLeadCount()) event.preventDefault();\n }\n protected onColDrop(field: string, event: DragEvent): void {\n event.preventDefault();\n const from = this.dragField();\n if (from === null || from === field) return;\n const visIndex = this.visibleOrderedColumns().findIndex((c) => c.field === field);\n if (visIndex < this.frozenLeadCount()) return; // nie wsuwaj przed/pomiędzy kolumny zamrożone\n const cols = [...this.orderedColumns()];\n const fromIdx = cols.findIndex((c) => c.field === from);\n const toIdx = cols.findIndex((c) => c.field === field);\n if (fromIdx === -1 || toIdx === -1) return;\n const [moved] = cols.splice(fromIdx, 1);\n cols.splice(toIdx, 0, moved);\n this.orderedColumns.set(cols);\n this.dragField.set(null);\n }\n protected onColDragEnd(): void {\n this.dragField.set(null);\n }\n\n exportCsv(): void {\n const cols = this.visibleOrderedColumns();\n const rows = this.lazy() ? this.data() : this.sorted();\n const header = cols.map((c) => escapeCsvCell(c.header)).join(';');\n const body = rows\n .map((row) => cols.map((c) => escapeCsvCell((row as Record<string, unknown>)[c.field])).join(';'))\n .join('\\n');\n // BOM () — poprawne polskie znaki w Excelu.\n const csv = `${header}\\n${body}`;\n const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = this.exportFilename();\n link.click();\n URL.revokeObjectURL(url);\n }\n\n // ── Szablony komórek ──\n private readonly cellDefs = contentChildren(KptCellDef);\n private readonly cellMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellDefs()) map.set(def.kptCell(), def.template);\n return map;\n });\n protected cellTemplate(field: string): TemplateRef<unknown> | null {\n return this.cellMap().get(field) ?? null;\n }\n\n // ── Własne edytory komórek (furtka poza wbudowane typy `column.edit.type`) ──\n private readonly cellEditDefs = contentChildren(KptCellEditDef);\n private readonly cellEditMap = computed(() => {\n const map = new Map<string, TemplateRef<unknown>>();\n for (const def of this.cellEditDefs()) map.set(def.kptCellEdit(), def.template);\n return map;\n });\n protected cellEditTemplate(field: string): TemplateRef<unknown> | null {\n return this.cellEditMap().get(field) ?? null;\n }\n\n // ── Edycja inline komórek ──\n protected isEditable(col: KptColumn): boolean {\n return !!col.edit || !!this.cellEditTemplate(col.field);\n }\n protected isEditingCell(row: T, field: string): boolean {\n const e = this.editingCell();\n return !!e && e.field === field && this.sameRow(e.row, row);\n }\n protected startEdit(row: T, col: KptColumn, event: Event): void {\n event.stopPropagation();\n if (!this.isEditable(col) || this.isEditingCell(row, col.field)) return;\n this.editingCell.set({ row, field: col.field });\n this.editingValue.set(this.getValue(row, col.field));\n // Edytory na overlayu otwieramy od razu. To nie kosmetyka: backdrop CDK sprawia, że każdy klik\n // poza edytorem zamyka panel, a więc zatwierdza i zamyka edycję — bez tego edytor z zamkniętym\n // panelem potrafiłby zostać otwarty w nieskończoność.\n const type = col.edit?.type;\n this.editorPanelOpen.set(!!type && OVERLAY_EDITORS.has(type));\n }\n /**\n * Panel edytora zamknięty (wybór, klik poza, Esc) → zatwierdź. Celowo NIE wieszamy tego na\n * `touch`: ten leci też z blur triggera, czyli już przy naciśnięciu myszy na opcji w panelu —\n * edytor ginąłby, zanim kliknięcie zdąży wybrać wartość.\n */\n protected onEditorPanelToggle(open: boolean): void {\n this.editorPanelOpen.set(open);\n if (!open) this.commitEdit();\n }\n /**\n * Edytory bez overlaya (text/number, własne `kptCellEdit`) zatwierdza dopiero wyjście fokusu\n * **poza cały edytor**. Nie wystarczy `touch`/blur samej kontrolki: `kpt-input-number` ma\n * fokusowalne strzałki `+`/`-` obok pola (i dodatkowo emituje `touch` w `step_()`), więc każde\n * kliknięcie strzałki zamykałoby edycję, zanim zdąży zmienić wartość.\n */\n protected onEditorFocusOut(event: FocusEvent): void {\n if (this.editorPanelOpen()) return; // edytory overlayowe zatwierdza zamknięcie panelu\n const host = this.editorHost()?.nativeElement;\n const next = event.relatedTarget as Node | null;\n if (host && next && host.contains(next)) return; // fokus został w edytorze (np. strzałki +/-)\n this.commitEdit();\n }\n /** Zatwierdza bieżącą edycję — emituje `cellEdit` tylko gdy wartość faktycznie się zmieniła. */\n protected commitEdit(): void {\n const editing = this.editingCell();\n if (!editing) return;\n const { row, field } = editing;\n const value = this.editingValue();\n this.editingCell.set(null);\n this.editorPanelOpen.set(false);\n if (sameEditValue(value, this.getValue(row, field))) return;\n const updatedRow = { ...(row as Record<string, unknown>), [field]: value } as T;\n this.cellEdit.emit({ row, field, value, updatedRow });\n }\n /** Dla własnych szablonów (`kptCellEdit`): ustaw wartość i od razu zatwierdź. */\n protected readonly commitEditValue = (value: unknown): void => {\n this.editingValue.set(value);\n this.commitEdit();\n };\n protected cancelEdit(): void {\n this.editingCell.set(null);\n this.editorPanelOpen.set(false);\n }\n\n // ── Rozwijane wiersze ──\n private readonly rowDetailDef = contentChild(KptRowDetailDef);\n protected readonly rowDetailTpl = computed(() => this.rowDetailDef()?.template ?? null);\n /** Kolumna z przełącznikiem widoczna, gdy włączono `expandable` i podano szablon `kptRowDetail`. */\n protected readonly hasRowDetail = computed(() => this.expandable() && !!this.rowDetailDef());\n protected isExpanded(row: T): boolean {\n return this.expandedRows().some((r) => this.sameRow(r, row));\n }\n protected toggleExpand(row: T): void {\n if (this.isExpanded(row)) {\n this.expandedRows.set(this.expandedRows().filter((r) => !this.sameRow(r, row)));\n } else {\n this.expandedRows.set(this.multiExpand() ? [...this.expandedRows(), row] : [row]);\n }\n }\n\n // ── Stan ──\n protected readonly filterText = signal('');\n protected readonly columnFilters = signal<Record<string, unknown>>({});\n protected readonly sortField = signal<string | null>(null);\n protected readonly sortDir = signal<SortDir>(null);\n protected readonly pageIndex = signal(0);\n protected readonly pageSizeState = linkedSignal(() => this.pageSize() || 10);\n\n protected readonly hasColumnFilters = computed(() => this.columns().some((c) => c.filter));\n\n // ── Filtry kolumn ──\n protected setColumnFilter(field: string, value: unknown): void {\n this.columnFilters.update((cur) => ({ ...cur, [field]: value }));\n this.pageIndex.set(0);\n }\n /** Input liczbowy — pozostaw tylko cyfry i zsynchronizuj DOM z wartością. */\n protected onNumberFilter(field: string, event: Event): void {\n const el = event.target as HTMLInputElement;\n const digits = el.value.replace(/\\D/g, '');\n el.value = digits;\n this.setColumnFilter(field, digits);\n }\n /** Bieżąca wartość filtra zakresu liczbowego (min/max) dla kolumny. */\n protected rangeVal(field: string): { min: string; max: string } {\n const v = this.columnFilters()[field] as { min?: string; max?: string } | undefined;\n return { min: v?.min ?? '', max: v?.max ?? '' };\n }\n /** Aktualizuj jedną granicę zakresu (min/max), pozostawiając tylko cyfry. */\n protected setRangeFilter(field: string, bound: 'min' | 'max', event: Event): void {\n const el = event.target as HTMLInputElement;\n const digits = el.value.replace(/\\D/g, '');\n el.value = digits;\n this.setColumnFilter(field, { ...this.rangeVal(field), [bound]: digits });\n }\n /** Bieżąca para `[lo, hi]` filtra suwakowego dla kolumny (domyślnie pełen zakres). */\n protected sliderVal(col: KptColumn): [number, number] {\n const mn = col.filter?.min ?? 0;\n const mx = col.filter?.max ?? 100;\n const v = this.columnFilters()[col.field] as [number, number] | undefined;\n return v ?? [mn, mx];\n }\n\n /** Semantyka dopasowania siedzi w `@konce-pt/table` — tu zostaje tylko spięcie ze stanem. */\n private matchesColumnFilters(row: T): boolean {\n const filters = this.columnFilters();\n const cells = row as Record<string, unknown>;\n return this.columns().every((col) => {\n const filter = col.filter;\n if (!filter) return true;\n const value = filters[col.field];\n if (isEmptyFilterValue(value)) return true;\n return matchesColumnFilter(filter, cells[col.field], value);\n });\n }\n\n // ── Potok przetwarzania danych ──\n private readonly filtered = computed(() => {\n const query = this.filterText().trim().toLowerCase();\n const cols = this.columns();\n let rows = this.data();\n if (query) {\n rows = rows.filter((row) =>\n cols.some((col) => toText((row as Record<string, unknown>)[col.field]).toLowerCase().includes(query)),\n );\n }\n if (this.hasColumnFilters()) {\n rows = rows.filter((row) => this.matchesColumnFilters(row));\n }\n return rows;\n });\n\n private readonly sorted = computed(() => {\n const field = this.sortField();\n const dir = this.sortDir();\n const rows = this.filtered();\n if (!field || !dir) return rows;\n const sign = dir === 'asc' ? 1 : -1;\n return [...rows].sort((a, b) => {\n const av = (a as Record<string, unknown>)[field];\n const bv = (b as Record<string, unknown>)[field];\n if (av == null) return 1;\n if (bv == null) return -1;\n if (typeof av === 'number' && typeof bv === 'number') return (av - bv) * sign;\n return toText(av).localeCompare(toText(bv)) * sign;\n });\n });\n\n protected readonly filteredCount = computed(() =>\n this.lazy() ? (this.totalRecords() ?? this.data().length) : this.filtered().length,\n );\n\n protected readonly paged = computed(() => {\n if (this.lazy()) return this.data();\n const rows = this.sorted();\n if (this.pageSize() <= 0) return rows;\n const size = this.pageSizeState();\n const start = this.pageIndex() * size;\n return rows.slice(start, start + size);\n });\n\n /** Wiodące kolumny systemowe (rozwijanie + zaznaczanie) — poza `visibleOrderedColumns()`. */\n private readonly leadingCells = computed(\n () => (this.selectable() !== 'none' ? 1 : 0) + (this.hasRowDetail() ? 1 : 0),\n );\n protected readonly colspan = computed(() => this.visibleOrderedColumns().length + this.leadingCells());\n protected readonly displayCount = computed(() =>\n this.virtualScroll() ? this.sorted().length : this.paged().length,\n );\n\n // ── Wiersz podsumowania (tfoot) ──\n /** Etykieta wiersza podsumowania (input albo domyślna z i18n). */\n protected readonly summaryLabelText = computed(() => this.summaryLabel() ?? this.i18n.t('dataTable.total'));\n /**\n * Zbiór do agregacji: wszystkie wiersze po filtrach (a więc ze wszystkich stron — `paged()`\n * tnie dopiero po tym kroku). Przy `lazy` tabela ma tylko bieżącą stronę, więc nie liczy nic\n * sama — jedynym źródłem jest wtedy `summaryValues`.\n */\n private readonly summarySource = computed(() =>\n this.lazy() ? [] : (this.filtered() as readonly Record<string, unknown>[]),\n );\n /** Pola z podsumowaniem: kolumny z `summary` (tylko widoczne) + klucze podane w `summaryValues`. */\n private readonly summaryFields = computed(() => {\n const cols = this.visibleOrderedColumns();\n const overrides = this.summaryValues() ?? {};\n return cols.filter((c) => c.summary || c.field in overrides).map((c) => c.field);\n });\n protected readonly hasSummary = computed(() => this.summaryFields().length > 0);\n /** Indeks pierwszej podsumowywanej kolumny — do niej scala się etykieta. */\n protected readonly summaryStartIndex = computed(() => {\n const first = this.summaryFields()[0];\n return first === undefined ? -1 : this.visibleOrderedColumns().findIndex((c) => c.field === first);\n });\n /**\n * Colspan komórki z etykietą: kolumny systemowe + kolumny przed pierwszą podsumowywaną.\n * Zero (pierwsza widoczna kolumna jest liczona) = etykieta nie ma się gdzie zmieścić i nie\n * renderuje się wcale.\n */\n protected readonly summaryLabelSpan = computed(() => this.leadingCells() + this.summaryStartIndex());\n /** Gotowe teksty komórek podsumowania (pole → tekst); pusty string dla braku wartości. */\n private readonly summaryTexts = computed(() => {\n const rows = this.summarySource();\n const overrides = this.summaryValues() ?? {};\n const map = new Map<string, string>();\n for (const col of this.visibleOrderedColumns()) {\n const summary = col.summary;\n // Gotowa wartość z `summaryValues` wygrywa z wyliczeniem — i wystarcza sama w sobie.\n if (col.field in overrides) {\n map.set(col.field, this.formatSummary(overrides[col.field], summary?.format));\n continue;\n }\n if (!summary) continue;\n const raw =\n typeof summary.fn === 'function' ? summary.fn(rows) : aggregate(rows, col.field, summary.fn);\n map.set(col.field, this.formatSummary(raw, summary.format));\n }\n return map;\n });\n private formatSummary(raw: unknown, format?: KptColumnSummary['format']): string {\n return format ? format(raw) : toText(raw);\n }\n protected summaryText(field: string): string {\n return this.summaryTexts().get(field) ?? '';\n }\n\n // ── Kolumny zamrożone (sticky, wiodące) ──\n private parseWidthPx(width?: string): number {\n if (!width) return 8 * REM_PX;\n const n = Number.parseFloat(width);\n if (Number.isNaN(n)) return 8 * REM_PX;\n return width.trim().endsWith('px') ? n : n * REM_PX;\n }\n /** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */\n /** Suma szerokości wiodących kolumn systemowych (rozwijanie + zaznaczanie) w px. */\n private readonly leadingStickyWidth = computed(() => {\n let acc = 0;\n if (this.hasRowDetail()) acc += EXPANDER_FROZEN_W * REM_PX;\n if (this.selectable() !== 'none') acc += CHECKBOX_FROZEN_W * REM_PX;\n return acc;\n });\n private readonly frozenOffsets = computed(() => {\n const map = new Map<string, number>();\n let acc = this.leadingStickyWidth();\n for (const col of this.visibleOrderedColumns()) {\n if (!col.frozen) break; // tylko wiodące, sąsiadujące\n map.set(col.field, acc);\n acc += this.parseWidthPx(col.width);\n }\n return map;\n });\n protected readonly hasFrozen = computed(() => this.frozenOffsets().size > 0);\n /** Sticky-left kolumny rozwijania (px) — 0, gdy tabela ma kolumny zamrożone. */\n protected readonly expanderStickyLeft = computed(() => (this.hasFrozen() ? 0 : null));\n /** Sticky-left kolumny zaznaczania (px) — za kolumną rozwijania, jeśli obecna. */\n protected readonly checkboxStickyLeft = computed(() => {\n if (!this.hasFrozen()) return null;\n return this.hasRowDetail() ? EXPANDER_FROZEN_W * REM_PX : 0;\n });\n protected frozenLeft(field: string): number | null {\n return this.frozenOffsets().get(field) ?? null;\n }\n protected isFrozen(field: string): boolean {\n return this.frozenOffsets().has(field);\n }\n\n // ── Sortowanie ──\n protected toggleSort(col: KptColumn): void {\n if (!col.sortable) return;\n if (this.sortField() !== col.field) {\n this.sortField.set(col.field);\n this.sortDir.set('asc');\n return;\n }\n const dir = this.sortDir();\n if (dir === 'asc') this.sortDir.set('desc');\n else if (dir === 'desc') {\n this.sortField.set(null);\n this.sortDir.set(null);\n } else this.sortDir.set('asc');\n }\n protected sortIconName(col: KptColumn): KptIconName {\n return this.sortField() === col.field && this.sortDir() === 'asc' ? 'chevron-up' : 'chevron-down';\n }\n protected ariaSort(col: KptColumn): 'ascending' | 'descending' | 'none' {\n if (this.sortField() !== col.field || !this.sortDir()) return 'none';\n return this.sortDir() === 'asc' ? 'ascending' : 'descending';\n }\n\n // ── Filtrowanie ──\n protected onFilter(event: Event): void {\n this.filterText.set((event.target as HTMLInputElement).value);\n this.pageIndex.set(0);\n }\n\n // ── Zaznaczanie ──\n private sameRow(a: T, b: T): boolean {\n const key = this.rowKey();\n if (key) return (a as Record<string, unknown>)[key] === (b as Record<string, unknown>)[key];\n return a === b;\n }\n protected isSelected(row: T): boolean {\n return this.selection().some((r) => this.sameRow(r, row));\n }\n protected toggleRow(row: T): void {\n const mode = this.selectable();\n if (mode === 'none') return;\n if (mode === 'single') {\n this.selection.set(this.isSelected(row) ? [] : [row]);\n return;\n }\n const current = this.selection();\n this.selection.set(\n this.isSelected(row) ? current.filter((r) => !this.sameRow(r, row)) : [...current, row],\n );\n }\n protected readonly pageAllSelected = computed(() => {\n const page = this.paged();\n return page.length > 0 && page.every((r) => this.isSelected(r));\n });\n protected readonly pageSomeSelected = computed(() => {\n const page = this.paged();\n return page.some((r) => this.isSelected(r)) && !this.pageAllSelected();\n });\n protected toggleAllOnPage(): void {\n const page = this.paged();\n if (this.pageAllSelected()) {\n this.selection.set(this.selection().filter((r) => !page.some((pr) => this.sameRow(pr, r))));\n } else {\n const toAdd = page.filter((r) => !this.isSelected(r));\n this.selection.set([...this.selection(), ...toAdd]);\n }\n }\n\n // ── Wiersze ──\n protected onRowClick(row: T): void {\n this.rowClick.emit(row);\n }\n protected getValue(row: T, field: string): unknown {\n return (row as Record<string, unknown>)[field];\n }\n protected trackRow = (row: T): unknown => {\n const key = this.rowKey();\n return key ? (row as Record<string, unknown>)[key] : row;\n };\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model, output, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptTreeNode<T = unknown> {\n label: string;\n value?: T;\n icon?: string;\n children?: readonly KptTreeNode<T>[];\n expanded?: boolean;\n disabled?: boolean;\n}\n\n/**\n * Drzewo hierarchiczne (rozwijanie, zaznaczanie, ikony). Dane przez `nodes`.\n *\n * @example\n * <kpt-tree [nodes]=\"tree\" selectable [(selected)]=\"node\" (nodeClick)=\"open($event)\" />\n */\n@Component({\n selector: 'kpt-tree',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <ul class=\"kpt-tree\" role=\"tree\">\n <ng-container [ngTemplateOutlet]=\"nodeTpl\" [ngTemplateOutletContext]=\"{ $implicit: nodes(), level: 0 }\" />\n </ul>\n\n <ng-template #nodeTpl let-list let-level=\"level\">\n @for (node of list; track node) {\n <li class=\"kpt-tree__node\" role=\"treeitem\" [attr.aria-expanded]=\"has(node) ? isOpen(node) : null\">\n <div\n class=\"kpt-tree__row\"\n [class.is-selected]=\"isSelected(node)\"\n [class.is-disabled]=\"node.disabled\"\n [style.padding-inline-start.rem]=\"0.5 + level * 1.1\"\n (click)=\"onRow(node)\"\n >\n @if (has(node)) {\n <button type=\"button\" class=\"kpt-tree__toggle\" (click)=\"toggle(node, $event)\" [attr.aria-label]=\"isOpen(node) ? i18n.t('tree.collapse') : i18n.t('tree.expand')\">\n <kpt-icon name=\"chevron-right\" class=\"kpt-tree__chevron\" [class.is-open]=\"isOpen(node)\" />\n </button>\n } @else {\n <span class=\"kpt-tree__spacer\"></span>\n }\n @if (node.icon) { <kpt-icon [name]=\"node.icon\" class=\"kpt-tree__icon\" /> }\n <span class=\"kpt-tree__label\">{{ node.label }}</span>\n </div>\n @if (has(node) && isOpen(node)) {\n <ul role=\"group\">\n <ng-container [ngTemplateOutlet]=\"nodeTpl\" [ngTemplateOutletContext]=\"{ $implicit: node.children, level: level + 1 }\" />\n </ul>\n }\n </li>\n }\n </ng-template>\n `,\n styleUrl: './tree.component.scss',\n host: { class: 'kpt-tree-host' },\n})\nexport class KptTree<T = unknown> {\n readonly nodes = input<readonly KptTreeNode<T>[]>([]);\n readonly selectable = input(false, { transform: booleanAttribute });\n readonly selected = model<KptTreeNode<T> | null>(null);\n readonly nodeClick = output<KptTreeNode<T>>();\n\n protected readonly i18n = inject(KptI18n);\n private readonly version = signal(0);\n\n protected has(node: KptTreeNode<T>): boolean {\n return !!node.children?.length;\n }\n protected isOpen(node: KptTreeNode<T>): boolean {\n this.version();\n return !!node.expanded;\n }\n protected isSelected(node: KptTreeNode<T>): boolean {\n return this.selected() === node;\n }\n protected toggle(node: KptTreeNode<T>, event: Event): void {\n event.stopPropagation();\n node.expanded = !node.expanded;\n this.version.update((v) => v + 1);\n }\n protected onRow(node: KptTreeNode<T>): void {\n if (node.disabled) return;\n if (this.selectable()) this.selected.set(node);\n else if (this.has(node)) {\n node.expanded = !node.expanded;\n this.version.update((v) => v + 1);\n }\n this.nodeClick.emit(node);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptTimelineItem {\n title: string;\n description?: string;\n time?: string;\n icon?: string;\n variant?: 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';\n}\n\n/**\n * Oś czasu (timeline) — pionowa lista zdarzeń z markerami.\n *\n * @example\n * <kpt-timeline [items]=\"[{title:'Utworzono', time:'10:00', variant:'success', icon:'check'}]\" />\n */\n@Component({\n selector: 'kpt-timeline',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <ol class=\"kpt-timeline\">\n @for (item of items(); track $index) {\n <li class=\"kpt-timeline__item\">\n <div class=\"kpt-timeline__marker\" [attr.data-variant]=\"item.variant ?? 'primary'\">\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n </div>\n <div class=\"kpt-timeline__content\">\n <div class=\"kpt-timeline__header\">\n <span class=\"kpt-timeline__title\">{{ item.title }}</span>\n @if (item.time) { <span class=\"kpt-timeline__time\">{{ item.time }}</span> }\n </div>\n @if (item.description) { <p class=\"kpt-timeline__desc\">{{ item.description }}</p> }\n </div>\n </li>\n }\n </ol>\n `,\n styleUrl: './timeline.component.scss',\n host: { class: 'kpt-timeline-host' },\n})\nexport class KptTimeline {\n readonly items = input<readonly KptTimelineItem[]>([]);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, contentChild, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Karuzela slajdów. Dane przez `items`, szablon slajdu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-carousel [items]=\"photos\">\n * <ng-template let-photo><img [src]=\"photo\" style=\"width:100%\" /></ng-template>\n * </kpt-carousel>\n */\n@Component({\n selector: 'kpt-carousel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-carousel\">\n <div class=\"kpt-carousel__viewport\">\n <div class=\"kpt-carousel__track\" [style.transform]=\"'translateX(-' + activeIndex() * 100 + '%)'\">\n @for (item of items(); track $index) {\n <div class=\"kpt-carousel__slide\">\n <ng-container [ngTemplateOutlet]=\"slideTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: $index }\" />\n </div>\n }\n </div>\n </div>\n\n <button class=\"kpt-carousel__nav kpt-carousel__nav--prev\" type=\"button\" (click)=\"prev()\" [disabled]=\"activeIndex() === 0\" [attr.aria-label]=\"i18n.t('common.previous')\">\n <kpt-icon name=\"chevron-left\" />\n </button>\n <button class=\"kpt-carousel__nav kpt-carousel__nav--next\" type=\"button\" (click)=\"next()\" [disabled]=\"activeIndex() >= items().length - 1\" [attr.aria-label]=\"i18n.t('common.next')\">\n <kpt-icon name=\"chevron-right\" />\n </button>\n\n <div class=\"kpt-carousel__dots\">\n @for (item of items(); track $index; let i = $index) {\n <button\n type=\"button\"\n class=\"kpt-carousel__dot\"\n [class.is-active]=\"i === activeIndex()\"\n (click)=\"goTo(i)\"\n [attr.aria-label]=\"i18n.t('carousel.slide', { index: i + 1 })\"\n ></button>\n }\n </div>\n </div>\n `,\n styleUrl: './carousel.component.scss',\n host: { class: 'kpt-carousel-host' },\n})\nexport class KptCarousel<T = unknown> {\n readonly items = input<readonly T[]>([]);\n readonly activeIndex = model(0);\n protected readonly i18n = inject(KptI18n);\n protected readonly slideTpl = contentChild.required(TemplateRef);\n\n next(): void {\n this.activeIndex.update((i) => Math.min(i + 1, this.items().length - 1));\n }\n prev(): void {\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n goTo(index: number): void {\n this.activeIndex.set(index);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, booleanAttribute, computed, contentChild, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptPaginator } from '../paginator/paginator.component';\n\n/**\n * DataView — prezentacja listy elementów w układzie lista/siatka, z opcjonalną paginacją.\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n *\n * @example\n * <kpt-data-view [items]=\"products\" [pageSize]=\"6\">\n * <ng-template let-p><div>{{ p.name }}</div></ng-template>\n * </kpt-data-view>\n */\n@Component({\n selector: 'kpt-data-view',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon, KptPaginator],\n template: `\n <div class=\"kpt-data-view\">\n <div class=\"kpt-data-view__toolbar\">\n <div class=\"kpt-data-view__count\">{{ i18n.t('dataView.count', { count: items().length }) }}</div>\n <div class=\"kpt-data-view__controls\">\n @if (showColumns()) {\n <div class=\"kpt-data-view__columns\" role=\"group\" [attr.aria-label]=\"i18n.t('dataView.columns')\">\n @for (n of gridColumnsOptions(); track n) {\n <button type=\"button\" [class.is-active]=\"gridColumns() === n\" [attr.aria-pressed]=\"gridColumns() === n\" (click)=\"gridColumns.set(n)\"><kpt-icon name=\"grid-dots\" />{{ n }}</button>\n }\n </div>\n }\n <div class=\"kpt-data-view__switch\">\n <button type=\"button\" [class.is-active]=\"layout() === 'list'\" [attr.aria-pressed]=\"layout() === 'list'\" (click)=\"layout.set('list')\" [attr.aria-label]=\"i18n.t('dataView.list')\"><kpt-icon name=\"list\" /></button>\n <button type=\"button\" [class.is-active]=\"layout() === 'grid'\" [attr.aria-pressed]=\"layout() === 'grid'\" (click)=\"layout.set('grid')\" [attr.aria-label]=\"i18n.t('dataView.grid')\"><kpt-icon name=\"layout-grid\" /></button>\n </div>\n </div>\n </div>\n\n <div\n class=\"kpt-data-view__content\"\n [attr.data-layout]=\"layout()\"\n [attr.data-columns]=\"gridColumns() ? '' : null\"\n [style.--_min]=\"gridMinWidth()\"\n [style.--_cols]=\"gridColumns() || null\"\n >\n @for (item of pageItems(); track $index) {\n <div class=\"kpt-data-view__item\">\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: $index }\" />\n </div>\n } @empty {\n <div class=\"kpt-data-view__empty\">{{ i18n.t('dataView.empty') }}</div>\n }\n </div>\n\n @if (showPager()) {\n <kpt-paginator [length]=\"items().length\" [(pageIndex)]=\"pageIndex\" [(pageSize)]=\"pageSize\" [pageSizeOptions]=\"pagerSizeOptions()\" />\n }\n </div>\n `,\n styleUrl: './data-view.component.scss',\n host: { class: 'kpt-data-view-host' },\n})\nexport class KptDataView<T = unknown> {\n readonly items = input<readonly T[]>([]);\n readonly layout = model<'list' | 'grid'>('grid');\n /** Rozmiar strony (dwukierunkowy — select paginatora go zmienia); 0 wyłącza stronicowanie. */\n readonly pageSize = model(0);\n /** Rozmiary do wyboru w paginatorze. Pusta lista = select z jedną, bieżącą wartością. */\n readonly pageSizeOptions = input<readonly number[]>([]);\n /**\n * Liczba kolumn siatki jako SUFIT, nie sztywna liczba; 0 = tyle, ile się zmieści.\n * Dwukierunkowa, bo pasek gęstości w toolbarze ją zmienia.\n */\n readonly gridColumns = model(0);\n /** Wartości w pasku gęstości. Mniej niż dwie = paska nie ma po co pokazywać. */\n readonly gridColumnsOptions = input<readonly number[]>([]);\n /** Najwęższa sensowna karta — poniżej tego siatka zdejmuje kolumnę, zamiast ściskać. */\n readonly gridMinWidth = input('10rem');\n readonly paginated = input(true, { transform: booleanAttribute });\n protected readonly i18n = inject(KptI18n);\n protected readonly itemTpl = contentChild.required(TemplateRef);\n protected readonly pageIndex = model(0);\n\n /** Pasek gęstości ma sens tylko w siatce i tylko wtedy, gdy jest w czym wybierać. */\n protected readonly showColumns = computed(() => this.layout() === 'grid' && this.gridColumnsOptions().length > 1);\n\n /** Opcje selecta: własna lista albo — gdy pusta — sam bieżący rozmiar. */\n protected readonly pagerSizeOptions = computed(() => {\n const options = this.pageSizeOptions();\n return options.length ? options : [this.pageSize()];\n });\n\n /**\n * Pager zostaje na ekranie także wtedy, gdy wszystko mieści się na jednej stronie, o ile jest\n * w czym wybierać. Bez tego wybranie największego rozmiaru chowa select, którym użytkownik\n * właśnie się posłużył — i nie ma jak wrócić do mniejszego.\n */\n protected readonly showPager = computed(\n () =>\n this.paginated() &&\n this.pageSize() > 0 &&\n (this.items().length > this.pageSize() || this.pagerSizeOptions().length > 1),\n );\n protected readonly pageItems = computed(() => {\n const size = this.pageSize();\n if (!this.paginated() || size <= 0) return this.items();\n const start = this.pageIndex() * size;\n return this.items().slice(start, start + size);\n });\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, type ModelSignal, TemplateRef, ViewEncapsulation, type WritableSignal, booleanAttribute, computed, contentChild, inject, input, model, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/** Strona listy — źródłowa (lewa) albo docelowa (prawa). */\ntype KptPickListSide = 'source' | 'target';\n\n/**\n * PickList — transfer elementów między dwiema listami (źródło ↔ cel).\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n * Dwuklik przerzuca pojedynczy element na drugą stronę; z `dragdrop` dochodzi przeciąganie\n * (porządkowanie wewnątrz panelu i przenoszenie na konkretną pozycję drugiego panelu).\n *\n * @example\n * <kpt-pick-list [(source)]=\"available\" [(target)]=\"selected\" sourceHeader=\"Dostępne\" targetHeader=\"Wybrane\" dragdrop>\n * <ng-template let-item>{{ item.name }}</ng-template>\n * </kpt-pick-list>\n */\n@Component({\n selector: 'kpt-pick-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-pick-list\">\n <ng-container [ngTemplateOutlet]=\"col\" [ngTemplateOutletContext]=\"{ side: 'source' }\" />\n\n <div class=\"kpt-pick-list__controls\">\n <button type=\"button\" (click)=\"move('source', true)\" [attr.aria-label]=\"i18n.t('pickList.moveAllRight')\"><kpt-icon name=\"chevron-right\" /><kpt-icon name=\"chevron-right\" /></button>\n <button type=\"button\" (click)=\"move('source', false)\" [attr.aria-label]=\"i18n.t('pickList.moveRight')\"><kpt-icon name=\"chevron-right\" /></button>\n <button type=\"button\" (click)=\"move('target', false)\" [attr.aria-label]=\"i18n.t('pickList.moveLeft')\"><kpt-icon name=\"chevron-left\" /></button>\n <button type=\"button\" (click)=\"move('target', true)\" [attr.aria-label]=\"i18n.t('pickList.moveAllLeft')\"><kpt-icon name=\"chevron-left\" /><kpt-icon name=\"chevron-left\" /></button>\n </div>\n\n <ng-container [ngTemplateOutlet]=\"col\" [ngTemplateOutletContext]=\"{ side: 'target' }\" />\n </div>\n\n <ng-template #col let-side=\"side\">\n <div class=\"kpt-pick-list__col\">\n <div class=\"kpt-pick-list__header\">{{ headerOf(side) }}</div>\n <ul\n class=\"kpt-pick-list__items\"\n [class.is-dragover]=\"listOver() === side\"\n (dragover)=\"onListDragOver(side, $event)\"\n (dragleave)=\"listOver.set(null)\"\n (drop)=\"onListDrop(side, $event)\"\n >\n @for (item of listOf(side); track $index; let i = $index) {\n <li\n class=\"kpt-pick-list__item\"\n [class.is-selected]=\"selectionOf(side).has(item)\"\n [class.is-dragging]=\"isDragging(side, i)\"\n [class.kpt-pick-list__item--draggable]=\"dragdrop()\"\n [class.kpt-pick-list__item--dragover]=\"isOver(side, i)\"\n [attr.draggable]=\"dragdrop() ? true : null\"\n (click)=\"toggle(side, item)\"\n (dblclick)=\"moveOne(side, item)\"\n (dragstart)=\"onDragStart(side, i, $event)\"\n (dragover)=\"onDragOver(side, i, $event)\"\n (dragleave)=\"over.set(null)\"\n (drop)=\"onDrop(side, i, $event)\"\n (dragend)=\"clearDrag()\"\n >\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item }\" />\n </li>\n }\n </ul>\n </div>\n </ng-template>\n `,\n styleUrl: './pick-list.component.scss',\n host: { class: 'kpt-pick-list-host' },\n})\nexport class KptPickList<T = unknown> {\n readonly source = model<T[]>([]);\n readonly target = model<T[]>([]);\n /** Nagłówek listy źródłowej; bez wartości używa i18n (`pickList.available`). */\n readonly sourceHeader = input<string>();\n /** Nagłówek listy docelowej; bez wartości używa i18n (`pickList.selected`). */\n readonly targetHeader = input<string>();\n /** Umożliwia porządkowanie i przenoszenie elementów metodą przeciągnij-i-upuść. */\n readonly dragdrop = input(false, { transform: booleanAttribute });\n protected readonly itemTpl = contentChild.required(TemplateRef);\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectiveSourceHeader = computed(() => this.sourceHeader() ?? this.i18n.t('pickList.available'));\n protected readonly effectiveTargetHeader = computed(() => this.targetHeader() ?? this.i18n.t('pickList.selected'));\n protected readonly selSource = signal<Set<T>>(new Set());\n protected readonly selTarget = signal<Set<T>>(new Set());\n\n /** Przeciągany element — strona i pozycja w jej tablicy. */\n protected readonly drag = signal<{ side: KptPickListSide; index: number } | null>(null);\n /** Element pod kursorem — rysuje wskaźnik miejsca upuszczenia. */\n protected readonly over = signal<{ side: KptPickListSide; index: number } | null>(null);\n /** Panel, nad którego pustym obszarem jest kursor — upuszczenie tam dopina na koniec. */\n protected readonly listOver = signal<KptPickListSide | null>(null);\n\n protected listOf(side: KptPickListSide): T[] {\n return side === 'source' ? this.source() : this.target();\n }\n protected selectionOf(side: KptPickListSide): Set<T> {\n return side === 'source' ? this.selSource() : this.selTarget();\n }\n protected headerOf(side: KptPickListSide): string {\n return side === 'source' ? this.effectiveSourceHeader() : this.effectiveTargetHeader();\n }\n protected isDragging(side: KptPickListSide, index: number): boolean {\n const d = this.drag();\n return d !== null && d.side === side && d.index === index;\n }\n protected isOver(side: KptPickListSide, index: number): boolean {\n const o = this.over();\n return o !== null && o.side === side && o.index === index && !this.isDragging(side, index);\n }\n\n private modelOf(side: KptPickListSide): ModelSignal<T[]> {\n return side === 'source' ? this.source : this.target;\n }\n private selectionSignal(side: KptPickListSide): WritableSignal<Set<T>> {\n return side === 'source' ? this.selSource : this.selTarget;\n }\n private other(side: KptPickListSide): KptPickListSide {\n return side === 'source' ? 'target' : 'source';\n }\n\n protected toggle(side: KptPickListSide, item: T): void {\n const sig = this.selectionSignal(side);\n const next = new Set(sig());\n if (next.has(item)) next.delete(item);\n else next.add(item);\n sig.set(next);\n }\n\n protected move(from: KptPickListSide, all: boolean): void {\n const fromModel = this.modelOf(from);\n const toModel = this.modelOf(this.other(from));\n const sel = this.selectionSignal(from);\n const moving = all ? fromModel() : fromModel().filter((i) => sel().has(i));\n if (!moving.length) return;\n fromModel.set(fromModel().filter((i) => !moving.includes(i)));\n toModel.set([...toModel(), ...moving]);\n sel.set(new Set());\n }\n\n /** Dwuklik: przenosi wyłącznie klikniętą pozycję, niezależnie od zaznaczenia. */\n protected moveOne(from: KptPickListSide, item: T): void {\n const index = this.listOf(from).indexOf(item);\n if (index === -1) return;\n const to = this.other(from);\n this.transfer(from, index, to, this.listOf(to).length);\n }\n\n protected onDragStart(side: KptPickListSide, index: number, event: DragEvent): void {\n if (!this.dragdrop()) return;\n this.drag.set({ side, index });\n event.dataTransfer?.setData('text/plain', String(index));\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n }\n\n protected onDragOver(side: KptPickListSide, index: number, event: DragEvent): void {\n if (this.drag() === null) return;\n // Zatrzymujemy propagację, żeby `<ul>` nie uznał, że kursor jest nad pustym obszarem.\n event.preventDefault();\n event.stopPropagation();\n this.over.set({ side, index });\n this.listOver.set(null);\n }\n\n protected onDrop(side: KptPickListSide, index: number, event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n const from = this.drag();\n this.clearDrag();\n if (from === null) return;\n if (from.side !== side) {\n this.transfer(from.side, from.index, side, index);\n return;\n }\n if (from.index === index) return;\n // Indeks celu liczony na tablicy sprzed usunięcia — element ląduje na pozycji tego,\n // na który go upuszczono (ten sam wzór co przestawianie kolumn w kpt-data-table).\n const arr = [...this.listOf(side)];\n const [moved] = arr.splice(from.index, 1);\n arr.splice(index, 0, moved);\n this.modelOf(side).set(arr);\n }\n\n protected onListDragOver(side: KptPickListSide, event: DragEvent): void {\n if (this.drag() === null) return;\n event.preventDefault();\n this.listOver.set(side);\n this.over.set(null);\n }\n\n protected onListDrop(side: KptPickListSide, event: DragEvent): void {\n event.preventDefault();\n const from = this.drag();\n this.clearDrag();\n if (from === null) return;\n if (from.side !== side) {\n this.transfer(from.side, from.index, side, this.listOf(side).length);\n return;\n }\n const arr = [...this.listOf(side)];\n const [moved] = arr.splice(from.index, 1);\n arr.push(moved);\n this.modelOf(side).set(arr);\n }\n\n protected clearDrag(): void {\n this.drag.set(null);\n this.over.set(null);\n this.listOver.set(null);\n }\n\n /** Przenosi jeden element między panelami, wstawiając go pod wskazanym indeksem. */\n private transfer(fromSide: KptPickListSide, fromIndex: number, toSide: KptPickListSide, toIndex: number): void {\n const fromArr = [...this.listOf(fromSide)];\n const [moved] = fromArr.splice(fromIndex, 1);\n if (moved === undefined) return;\n const toArr = [...this.listOf(toSide)];\n toArr.splice(toIndex, 0, moved);\n this.modelOf(fromSide).set(fromArr);\n this.modelOf(toSide).set(toArr);\n // Element opuszcza panel — jego zaznaczenie po tamtej stronie przestaje cokolwiek znaczyć.\n const sel = this.selectionSignal(fromSide);\n if (sel().has(moved)) {\n const next = new Set(sel());\n next.delete(moved);\n sel.set(next);\n }\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, booleanAttribute, contentChild, inject, input, model, signal } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * OrderList — lista z ręcznym porządkowaniem elementów (w górę/dół).\n * Szablon elementu przez projekcję `<ng-template let-item>`.\n * Z `dragdrop` pozycje przestawia się także przeciąganiem.\n *\n * @example\n * <kpt-order-list [(items)]=\"tasks\" header=\"Kolejność\" dragdrop>\n * <ng-template let-item>{{ item.name }}</ng-template>\n * </kpt-order-list>\n */\n@Component({\n selector: 'kpt-order-list',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptIcon],\n template: `\n <div class=\"kpt-order-list\">\n <div class=\"kpt-order-list__controls\">\n <button type=\"button\" (click)=\"moveSelected(-1)\" [disabled]=\"selected() === null\" [attr.aria-label]=\"i18n.t('orderList.up')\"><kpt-icon name=\"arrow-up\" /></button>\n <button type=\"button\" (click)=\"moveSelected(1)\" [disabled]=\"selected() === null\" [attr.aria-label]=\"i18n.t('orderList.down')\"><kpt-icon name=\"arrow-down\" /></button>\n </div>\n <div class=\"kpt-order-list__panel\">\n @if (header()) { <div class=\"kpt-order-list__header\">{{ header() }}</div> }\n <ul\n class=\"kpt-order-list__items\"\n [class.is-dragover]=\"listOver()\"\n (dragover)=\"onListDragOver($event)\"\n (dragleave)=\"listOver.set(false)\"\n (drop)=\"onListDrop($event)\"\n >\n @for (item of items(); track $index; let i = $index) {\n <li\n class=\"kpt-order-list__item\"\n [class.is-selected]=\"selected() === i\"\n [class.is-dragging]=\"dragIndex() === i\"\n [class.kpt-order-list__item--draggable]=\"dragdrop()\"\n [class.kpt-order-list__item--dragover]=\"overIndex() === i && dragIndex() !== i\"\n [attr.draggable]=\"dragdrop() ? true : null\"\n (click)=\"selected.set(i)\"\n (dragstart)=\"onDragStart(i, $event)\"\n (dragover)=\"onDragOver(i, $event)\"\n (dragleave)=\"overIndex.set(null)\"\n (drop)=\"onDrop(i, $event)\"\n (dragend)=\"clearDrag()\"\n >\n <ng-container [ngTemplateOutlet]=\"itemTpl()\" [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\" />\n </li>\n }\n </ul>\n </div>\n </div>\n `,\n styleUrl: './order-list.component.scss',\n host: { class: 'kpt-order-list-host' },\n})\nexport class KptOrderList<T = unknown> {\n readonly items = model<T[]>([]);\n readonly header = input('');\n /** Umożliwia przestawianie pozycji metodą przeciągnij-i-upuść. */\n readonly dragdrop = input(false, { transform: booleanAttribute });\n protected readonly i18n = inject(KptI18n);\n protected readonly itemTpl = contentChild.required(TemplateRef);\n protected readonly selected = signal<number | null>(null);\n\n /** Indeks przeciąganej pozycji; `null` gdy nic nie jest przeciągane. */\n protected readonly dragIndex = signal<number | null>(null);\n /** Indeks pozycji pod kursorem — rysuje wskaźnik miejsca upuszczenia. */\n protected readonly overIndex = signal<number | null>(null);\n /** Kursor nad pustym obszarem listy — upuszczenie tam dopina na koniec. */\n protected readonly listOver = signal(false);\n\n protected moveSelected(dir: -1 | 1): void {\n const i = this.selected();\n if (i === null) return;\n const j = i + dir;\n const arr = [...this.items()];\n if (j < 0 || j >= arr.length) return;\n [arr[i], arr[j]] = [arr[j], arr[i]];\n this.items.set(arr);\n this.selected.set(j);\n }\n\n protected onDragStart(index: number, event: DragEvent): void {\n if (!this.dragdrop()) return;\n this.dragIndex.set(index);\n event.dataTransfer?.setData('text/plain', String(index));\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'move';\n }\n\n protected onDragOver(index: number, event: DragEvent): void {\n if (this.dragIndex() === null) return;\n // Zatrzymujemy propagację, żeby `<ul>` nie uznał, że kursor jest nad pustym obszarem.\n event.preventDefault();\n event.stopPropagation();\n this.overIndex.set(index);\n this.listOver.set(false);\n }\n\n protected onDrop(index: number, event: DragEvent): void {\n event.preventDefault();\n event.stopPropagation();\n const from = this.dragIndex();\n this.clearDrag();\n if (from === null || from === index) return;\n // Indeks celu liczony na tablicy sprzed usunięcia — element ląduje na pozycji tego,\n // na który go upuszczono (ten sam wzór co przestawianie kolumn w kpt-data-table).\n const arr = [...this.items()];\n const [moved] = arr.splice(from, 1);\n arr.splice(index, 0, moved);\n this.items.set(arr);\n this.selected.set(index);\n }\n\n protected onListDragOver(event: DragEvent): void {\n if (this.dragIndex() === null) return;\n event.preventDefault();\n this.listOver.set(true);\n this.overIndex.set(null);\n }\n\n protected onListDrop(event: DragEvent): void {\n event.preventDefault();\n const from = this.dragIndex();\n this.clearDrag();\n if (from === null) return;\n const arr = [...this.items()];\n const [moved] = arr.splice(from, 1);\n arr.push(moved);\n this.items.set(arr);\n this.selected.set(arr.length - 1);\n }\n\n protected clearDrag(): void {\n this.dragIndex.set(null);\n this.overIndex.set(null);\n this.listOver.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport interface KptGalleriaItem {\n src: string;\n thumbnail?: string;\n alt?: string;\n}\n\n/**\n * Galleria — duży podgląd obrazu z paskiem miniatur i nawigacją.\n *\n * @example\n * <kpt-galleria [items]=\"photos\" [(activeIndex)]=\"idx\" />\n */\n@Component({\n selector: 'kpt-galleria',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-galleria\">\n <div class=\"kpt-galleria__stage\">\n <button type=\"button\" class=\"kpt-galleria__nav kpt-galleria__nav--prev\" (click)=\"prev()\" [disabled]=\"activeIndex() === 0\" [attr.aria-label]=\"i18n.t('common.previous')\"><kpt-icon name=\"chevron-left\" /></button>\n @if (current(); as item) {\n <img class=\"kpt-galleria__image\" [src]=\"item.src\" [alt]=\"item.alt || ''\" />\n }\n <button type=\"button\" class=\"kpt-galleria__nav kpt-galleria__nav--next\" (click)=\"next()\" [disabled]=\"activeIndex() >= items().length - 1\" [attr.aria-label]=\"i18n.t('common.next')\"><kpt-icon name=\"chevron-right\" /></button>\n </div>\n\n @if (showThumbnails()) {\n <div class=\"kpt-galleria__thumbs\">\n @for (item of items(); track $index; let i = $index) {\n <button type=\"button\" class=\"kpt-galleria__thumb\" [class.is-active]=\"i === activeIndex()\" (click)=\"activeIndex.set(i)\" [attr.aria-label]=\"i18n.t('galleria.image', { index: i + 1 })\">\n <img [src]=\"item.thumbnail || item.src\" [alt]=\"item.alt || ''\" />\n </button>\n }\n </div>\n }\n </div>\n `,\n styleUrl: './galleria.component.scss',\n host: { class: 'kpt-galleria-host' },\n})\nexport class KptGalleria {\n readonly items = input<readonly KptGalleriaItem[]>([]);\n readonly activeIndex = model(0);\n readonly showThumbnails = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n protected readonly current = computed(() => this.items()[this.activeIndex()] ?? null);\n\n protected next(): void {\n this.activeIndex.update((i) => Math.min(i + 1, this.items().length - 1));\n }\n protected prev(): void {\n this.activeIndex.update((i) => Math.max(i - 1, 0));\n }\n}\n","import { OverlayContainer } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject,\n input,\n model,\n viewChild,\n} from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\n/**\n * Okno modalne na natywnym `<dialog>` (focus trap, ESC, backdrop w standardzie).\n * Sterowane sygnałem `open` (dwukierunkowe). Stopkę wstaw z atrybutem `kptDialogFooter`.\n *\n * @example\n * <kpt-dialog [(open)]=\"confirmOpen\" header=\"Usunąć?\">\n * Tej operacji nie można cofnąć.\n * <div kptDialogFooter>\n * <kpt-button variant=\"text\" (click)=\"confirmOpen.set(false)\">Anuluj</kpt-button>\n * <kpt-button variant=\"danger\" (click)=\"remove()\">Usuń</kpt-button>\n * </div>\n * </kpt-dialog>\n */\n@Component({\n selector: 'kpt-dialog',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <dialog #dlg class=\"kpt-dialog\" (close)=\"open.set(false)\" (cancel)=\"onCancel($event)\">\n @if (header()) {\n <div class=\"kpt-dialog__header\">\n <h2 class=\"kpt-dialog__title\">{{ header() }}</h2>\n @if (dismissible()) {\n <button class=\"kpt-dialog__close\" type=\"button\" (click)=\"open.set(false)\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n }\n <div class=\"kpt-dialog__body\"><ng-content /></div>\n <ng-content select=\"[kptDialogFooter]\" />\n </dialog>\n `,\n styleUrl: './dialog.component.scss',\n host: { class: 'kpt-dialog-host' },\n})\nexport class KptDialog {\n /** Otwarcie okna (dwukierunkowe). */\n readonly open = model(false);\n readonly header = input('');\n /** Pozwala zamknąć klawiszem Esc / przyciskiem ×. */\n readonly dismissible = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n private readonly dialogRef = viewChild<ElementRef<HTMLDialogElement>>('dlg');\n private readonly overlayContainer = inject(OverlayContainer);\n\n /** Miejsce, z którego zabraliśmy kontener overlayów — żeby go tam oddać. */\n private overlayHome: HTMLElement | null = null;\n\n constructor() {\n effect(() => {\n const el = this.dialogRef()?.nativeElement;\n if (!el) return;\n if (this.open() && !el.open) {\n el.showModal();\n this.adoptOverlayContainer(el);\n } else if (!this.open() && el.open) {\n el.close();\n this.releaseOverlayContainer();\n }\n });\n\n // Zamknięcie przez `close`/`cancel` też przechodzi tędy, ale zniszczenie komponentu\n // z otwartym oknem już nie — kontener musi wrócić na miejsce niezależnie od drogi.\n inject(DestroyRef).onDestroy(() => this.releaseOverlayContainer());\n }\n\n /**\n * Przenosi kontener CDK Overlay do wnętrza `<dialog>` na czas, gdy okno jest otwarte.\n *\n * `showModal()` wynosi okno do **warstwy szczytowej** przeglądarki, a ta jest ponad\n * całym drzewem dokumentu — żaden `z-index` tego nie przebije. Kontener overlayów\n * wisi na `<body>`, więc panele `kpt-select`, `kpt-datepicker`, `kpt-autocomplete`\n * czy `kpt-menu` otwierałyby się NIEWIDOCZNE, schowane za tłem okna.\n */\n private adoptOverlayContainer(dialog: HTMLDialogElement): void {\n const container = this.overlayContainer.getContainerElement();\n if (container.parentElement === dialog) return;\n this.overlayHome = container.parentElement;\n dialog.appendChild(container);\n }\n\n private releaseOverlayContainer(): void {\n if (!this.overlayHome) return;\n // `getContainerElement()` nie tworzy nowego kontenera — zwraca ten sam, który zabraliśmy.\n this.overlayHome.appendChild(this.overlayContainer.getContainerElement());\n this.overlayHome = null;\n }\n\n protected onCancel(event: Event): void {\n if (!this.dismissible()) {\n event.preventDefault();\n return;\n }\n this.open.set(false);\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport type { KptAlertVariant } from '../alert/alert.component';\n\nexport interface KptToast {\n id: number;\n message: string;\n title?: string;\n variant: KptAlertVariant;\n /** Czas życia w ms; 0 = bez auto-zamykania. */\n duration: number;\n}\n\nexport type KptToastOptions = Partial<Omit<KptToast, 'id' | 'message'>>;\n\n/**\n * Serwis powiadomień (toastów). Wstrzyknij i wywołuj `show`/`success`/`error`/...;\n * umieść `<kpt-toast-container />` raz w aplikacji, aby je renderować.\n */\n@Injectable({ providedIn: 'root' })\nexport class KptToastService {\n private readonly _toasts = signal<KptToast[]>([]);\n readonly toasts = this._toasts.asReadonly();\n private seq = 0;\n\n show(message: string, options: KptToastOptions = {}): number {\n const id = ++this.seq;\n const toast: KptToast = { id, message, variant: 'info', duration: 4000, ...options };\n this._toasts.update((list) => [...list, toast]);\n if (toast.duration > 0) {\n setTimeout(() => this.dismiss(id), toast.duration);\n }\n return id;\n }\n\n info(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'info' });\n }\n success(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'success' });\n }\n warning(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'warning' });\n }\n error(message: string, options?: KptToastOptions): number {\n return this.show(message, { ...options, variant: 'danger' });\n }\n\n dismiss(id: number): void {\n this._toasts.update((list) => list.filter((t) => t.id !== id));\n }\n clear(): void {\n this._toasts.set([]);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, inject } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptIconName } from '../icon/icons';\nimport type { KptAlertVariant } from '../alert/alert.component';\nimport { KptToastService } from './toast.service';\n\n/**\n * Kontener renderujący toasty z `KptToastService`. Umieść raz w aplikacji\n * (np. w komponencie głównym): `<kpt-toast-container />`.\n */\n@Component({\n selector: 'kpt-toast-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-toast-container\" aria-live=\"polite\" aria-atomic=\"false\">\n @for (toast of toasts(); track toast.id) {\n <div class=\"kpt-toast\" [attr.data-variant]=\"toast.variant\" role=\"status\">\n <kpt-icon class=\"kpt-toast__icon\" [name]=\"icon(toast.variant)\" />\n <div class=\"kpt-toast__content\">\n @if (toast.title) {\n <div class=\"kpt-toast__title\">{{ toast.title }}</div>\n }\n <div class=\"kpt-toast__message\">{{ toast.message }}</div>\n </div>\n <button class=\"kpt-toast__close\" type=\"button\" (click)=\"dismiss(toast.id)\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n </div>\n }\n </div>\n `,\n styleUrl: './toast-container.component.scss',\n host: { class: 'kpt-toast-container-host' },\n})\nexport class KptToastContainer {\n private readonly service = inject(KptToastService);\n protected readonly i18n = inject(KptI18n);\n protected readonly toasts = this.service.toasts;\n\n protected dismiss(id: number): void {\n this.service.dismiss(id);\n }\n protected icon(variant: KptAlertVariant): KptIconName {\n return { info: 'info', success: 'circle-check', warning: 'alert-triangle', danger: 'circle-x' }[\n variant\n ] as KptIconName;\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n ViewEncapsulation,\n afterRenderEffect,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge, type KptBadgeVariant } from '../badge/badge.component';\nimport { KptIcon } from '../icon/icon.component';\n\n/** Awatar wiersza nagłówkowego — te same dane, które przyjmuje `kpt-avatar`. */\nexport interface KptMenuItemAvatar {\n src?: string;\n name?: string;\n icon?: string;\n}\n\nexport interface KptMenuItem<T = unknown> {\n label?: string;\n value?: T;\n icon?: string;\n /** Druga linia tekstu: e-mail, rola, opis akcji. */\n description?: string;\n /** Odznaka po prawej stronie pozycji (licznik lub krótka etykieta). */\n badge?: string | number;\n /** Wariant odznaki — domyślnie `primary`. */\n badgeVariant?: KptBadgeVariant;\n /** Awatar po lewej — typowo w wierszu nagłówka menu użytkownika. */\n avatar?: KptMenuItemAvatar;\n /**\n * Wiersz nagłówkowy: nieklikalny blok tekstu zamiast pozycji menu. Mieści dane zalogowanego\n * użytkownika (`avatar` + `label` + `description`) albo opis funkcji menu.\n */\n header?: boolean;\n disabled?: boolean;\n danger?: boolean;\n separator?: boolean;\n /** Pozycje podrzędne (menubar / megamenu). */\n items?: readonly KptMenuItem<T>[];\n /** Adres odnośnika (menubar / megamenu). */\n url?: string;\n}\n\n/**\n * Menu rozwijane (dropdown) na CDK Overlay. Trigger przez projekcję, pozycje przez `items`.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-menu [items]=\"items\" (selected)=\"onSelect($event)\">\n * <kpt-button variant=\"outline\">Opcje</kpt-button>\n * </kpt-menu>\n */\n@Component({\n selector: 'kpt-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptAvatar, KptBadge, KptIcon],\n template: `\n <span class=\"kpt-menu__trigger\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"toggle()\">\n <ng-content />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"kpt-menu__panel\" role=\"menu\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-menu__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-menu__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-menu__text\">\n @if (item.label) { <span class=\"kpt-menu__label\">{{ item.label }}</span> }\n @if (item.description) { <span class=\"kpt-menu__description\">{{ item.description }}</span> }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-menu__item\"\n role=\"menuitem\"\n [class.kpt-menu__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-menu__text\">\n <span class=\"kpt-menu__label\">{{ item.label }}</span>\n @if (item.description) { <span class=\"kpt-menu__description\">{{ item.description }}</span> }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge class=\"kpt-menu__badge\" [value]=\"item.badge\" [variant]=\"item.badgeVariant ?? 'primary'\" />\n }\n </button>\n }\n }\n </div>\n </ng-template>\n `,\n styleUrl: './menu.component.scss',\n host: { class: 'kpt-menu-host' },\n})\nexport class KptMenu<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n /**\n * Czy panel jest otwarty (dwukierunkowe). Publiczne, bo aplikacja bywa właścicielem tego\n * stanu — zamknięcie menu po nawigacji albo otwarcie go skrótem klawiaturowym nie da się\n * wyrazić przez samo `(selected)`. Port React ma tu `open`/`defaultOpen`/`onOpenChange`.\n */\n readonly open = model(false);\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n constructor() {\n // ARIA idzie na kontrolkę wewnątrz slotu, nie na `.kpt-menu__trigger`. Trigger to zwykły\n // `<span>` opakowujący rzutowaną treść — zwykle `kpt-button` z prawdziwym `<button>`.\n // Nadanie mu `role=\"button\"` zrobiłoby zagnieżdżoną kontrolkę i drugi tab stop, a atrybuty\n // stanu wylądowałyby na elemencie bez roli (naruszenie `aria-allowed-attr`).\n afterRenderEffect(() => {\n const control = this.host.nativeElement.querySelector(\n '.kpt-menu__trigger button, .kpt-menu__trigger a, .kpt-menu__trigger [role=\"button\"]',\n );\n if (!control) return;\n control.setAttribute('aria-haspopup', 'menu');\n control.setAttribute('aria-expanded', String(this.open()));\n });\n }\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, signal } from '@angular/core';\n\n/**\n * Popover — dowolna treść w dymku na CDK Overlay (bogatszy niż tooltip). Slot triggera:\n * atrybut `kptPopoverTrigger`; reszta treści trafia do panelu.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-popover>\n * <kpt-button kptPopoverTrigger variant=\"outline\">Szczegóły</kpt-button>\n * <div>Bogata treść popovera…</div>\n * </kpt-popover>\n */\n@Component({\n selector: 'kpt-popover',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <span class=\"kpt-popover__trigger\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\" (click)=\"toggle()\">\n <ng-content select=\"[kptPopoverTrigger]\" />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div class=\"kpt-popover__panel\" role=\"dialog\">\n <ng-content />\n </div>\n </ng-template>\n `,\n styleUrl: './popover.component.scss',\n host: { class: 'kpt-popover-host' },\n})\nexport class KptPopover {\n readonly placement = input<'bottom' | 'top'>('bottom');\n\n protected readonly open = signal(false);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 6 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -6 },\n ];\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n Directive,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n forwardRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n} from '@angular/core';\n\n/** Z której strony triggera wychodzi karta. */\nexport type KptPeekPlacement = 'top' | 'bottom';\n\n/** Licznik identyfikatorów paneli — `aria-controls` musi wskazywać unikatowy element. */\nlet nextId = 0;\n\nconst BELOW: ConnectedPosition = { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 8 };\nconst ABOVE: ConnectedPosition = { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -8 };\n\n/**\n * Trigger karty podglądu. Kładzie się na tym, co ma być zaczepieniem — najczęściej na wzmiance\n * w tekście, ale równie dobrze na awatarze, chipie czy zwykłym linku.\n *\n * Nasłuch siedzi tutaj, a nie na hoście `kpt-peek`: host obejmuje po otwarciu także panel,\n * więc opóźnienia liczyłyby się od złego elementu.\n */\n@Directive({\n selector: '[kptPeekTrigger]',\n host: {\n class: 'kpt-peek__trigger',\n '(mouseenter)': 'peek.hoverIn()',\n '(mouseleave)': 'peek.hoverOut()',\n '(focus)': 'peek.focusIn()',\n '(blur)': 'peek.focusOut()',\n '(click)': 'peek.pin()',\n '[attr.aria-expanded]': 'peek.isOpen()',\n '[attr.aria-controls]': 'peek.isOpen() ? peek.panelId : null',\n },\n})\nexport class KptPeekTrigger {\n readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n protected readonly peek = inject<KptPeek>(forwardRef(() => KptPeek));\n}\n\n/**\n * Karta podglądu pod kursorem — treść powiązana z tym, na co się patrzy, bez opuszczania tekstu.\n * Tym różni się od sąsiadów: `kptTooltip` niesie sam tekst i nie da się w nim kliknąć,\n * a `kpt-popover` otwiera dopiero klik i zasłania stronę backdropem.\n *\n * Hover pokazuje kartę po `openDelay`, zjazd kursora chowa ją po `closeDelay` — kursor musi mieć\n * czas przejechać z triggera na kartę, więc najazd na kartę anuluje zamknięcie. Fokus otwiera\n * kartę od razu (klawiatura nie przejeżdża po elementach przypadkiem), a klik, Enter albo dotyk\n * **przypina** ją: karta zostaje mimo zjazdu kursora, a fokus wchodzi do środka. To jedyna droga\n * do treści karty tam, gdzie hovera nie ma w ogóle.\n *\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-peek>\n * <a kptPeekTrigger href=\"/ludzie/anna\">@Anna Kowalska</a>\n * <kpt-card>Profil, projekty, kontakt…</kpt-card>\n * </kpt-peek>\n */\n@Component({\n selector: 'kpt-peek',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <span class=\"kpt-peek__origin\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\">\n <ng-content select=\"[kptPeekTrigger]\" />\n </span>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"positions()\"\n (overlayOutsideClick)=\"close()\"\n (detach)=\"close()\"\n >\n <div\n #panel\n class=\"kpt-peek__panel\"\n role=\"dialog\"\n tabindex=\"-1\"\n [id]=\"panelId\"\n [attr.aria-label]=\"label() || triggerText()\"\n [attr.data-pinned]=\"pinned() ? '' : null\"\n (mouseenter)=\"hoverIn()\"\n (mouseleave)=\"hoverOut()\"\n (focusin)=\"focusIn()\"\n (focusout)=\"focusOut()\"\n (keydown.escape)=\"dismiss()\"\n >\n <ng-content />\n </div>\n </ng-template>\n `,\n styleUrl: './peek.component.scss',\n host: { class: 'kpt-peek-host' },\n})\nexport class KptPeek {\n /** Z której strony wychodzi karta; przy braku miejsca CDK i tak ją odwróci. */\n readonly placement = input<KptPeekPlacement>('bottom');\n /** Zwłoka otwarcia po najechaniu (ms) — bez niej karty mrugają przy przejeżdżaniu przez tekst. */\n readonly openDelay = input(300, { transform: numberAttribute });\n /** Zwłoka zamknięcia po zjeździe kursora (ms) — tyle jest na przejazd z triggera na kartę. */\n readonly closeDelay = input(200, { transform: numberAttribute });\n /** Wyłączona karta nie otwiera się wcale; trigger zostaje zwykłym linkiem czy przyciskiem. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Nazwa karty dla czytnika ekranu; bez niej bierze się tekst triggera. */\n readonly label = input<string>('');\n\n /** Otwarcie i zamknięcie karty — na `opened` aplikacja może dociągnąć dane. */\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n readonly panelId = `kpt-peek-${(nextId += 1)}`;\n\n private readonly panel = viewChild<ElementRef<HTMLElement>>('panel');\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private readonly open = signal(false);\n /** Przypięta karta zostaje po zjeździe kursora — przypina ją klik, Enter albo dotyk. */\n private readonly pinnedState = signal(false);\n private timer?: ReturnType<typeof setTimeout>;\n\n readonly isOpen = computed(() => this.open());\n readonly pinned = computed(() => this.pinnedState());\n\n protected readonly positions = computed<ConnectedPosition[]>(() =>\n this.placement() === 'top' ? [ABOVE, BELOW] : [BELOW, ABOVE],\n );\n\n constructor() {\n inject(DestroyRef).onDestroy(() => this.stopTimer());\n }\n\n /** Najazd kursora — na trigger albo na samą kartę. */\n hoverIn(): void {\n if (this.disabled()) return;\n this.schedule(() => this.show(), this.open() ? 0 : this.openDelay());\n }\n\n /** Zjazd kursora; przypiętej karty nie rusza, bo tę zamyka dopiero Escape albo klik obok. */\n hoverOut(): void {\n if (this.pinnedState()) return;\n this.schedule(() => this.close(), this.closeDelay());\n }\n\n /** Fokus otwiera bez zwłoki — klawiatura nie przejeżdża po elementach przypadkiem. */\n focusIn(): void {\n if (this.disabled()) return;\n this.schedule(() => this.show(), 0);\n }\n\n /** Wyjście fokusu poza kartę i trigger zamyka ją także wtedy, gdy była przypięta. */\n focusOut(): void {\n // Sprawdzenie po klatce: w chwili `blur` `document.activeElement` to jeszcze `body`,\n // więc przejście Tabem z triggera do karty wyglądałoby jak wyjście na zewnątrz.\n this.schedule(() => {\n const active = document.activeElement;\n if (this.host.nativeElement.contains(active)) return;\n if (this.panel()?.nativeElement.contains(active)) return;\n this.close();\n }, 0);\n }\n\n /** Klik, Enter albo dotyk: karta zostaje i przyjmuje fokus. */\n pin(): void {\n if (this.disabled()) return;\n this.pinnedState.set(true);\n this.show();\n // Panel powstaje dopiero po przerysowaniu overlaya, więc fokus idzie w następnej klatce.\n setTimeout(() => this.panel()?.nativeElement.focus({ preventScroll: true }));\n }\n\n /** Escape: zamyka i oddaje fokus tam, skąd karta wyszła. */\n dismiss(): void {\n const trigger = this.host.nativeElement.querySelector<HTMLElement>('.kpt-peek__trigger');\n this.close();\n trigger?.focus({ preventScroll: true });\n }\n\n close(): void {\n this.stopTimer();\n this.pinnedState.set(false);\n if (!this.open()) return;\n this.open.set(false);\n this.closed.emit();\n }\n\n /** Tekst triggera jako nazwa karty — `role=\"dialog\"` bez nazwy nic czytnikowi nie mówi. */\n protected triggerText(): string {\n return this.host.nativeElement.querySelector('.kpt-peek__trigger')?.textContent?.trim() ?? '';\n }\n\n private show(): void {\n if (this.open()) return;\n this.open.set(true);\n this.opened.emit();\n }\n\n private schedule(action: () => void, delay: number): void {\n this.stopTimer();\n if (delay <= 0) {\n action();\n return;\n }\n this.timer = setTimeout(action, delay);\n }\n\n private stopTimer(): void {\n if (this.timer) clearTimeout(this.timer);\n this.timer = undefined;\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, input } from '@angular/core';\nimport type { KptMentionItem } from '@konce-pt/mention';\nimport { KptPeek, KptPeekTrigger, type KptPeekPlacement } from '../peek/peek.component';\n\n/**\n * Wzmianka w tekście — `@ktoś` albo `@coś` jako element, na który da się najechać i zobaczyć\n * kartę podglądu z resztą powiązań. Treść karty daje aplikacja przez projekcję: biblioteka\n * nie wie, czym jest wzmiankowana rzecz, a osoba, zadanie i dokument wyglądają inaczej.\n *\n * Bez rzutowanej treści wzmianka zostaje samym napisem z podkreśleniem: nie ma czego pokazać,\n * więc trigger nie udaje, że coś się pod nim kryje.\n *\n * Trigger jest `<button>`, a nie `<span>`: karta otwiera się też z klawiatury i dotyku\n * (przypięcie), a to wymaga elementu, na który da się wejść Tabem. Z `href` staje się linkiem,\n * bo wtedy klik prowadzi gdzieś naprawdę.\n *\n * @example\n * <kpt-mention id=\"anna.k\" label=\"Anna Kowalska\">\n * <kpt-card>Profil, projekty, kontakt…</kpt-card>\n * </kpt-mention>\n */\n@Component({\n selector: 'kpt-mention',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptPeek, KptPeekTrigger],\n template: `\n @if (disabled()) {\n <!-- Bez karty wzmianka nie udaje kontrolki: zostaje wyróżnionym napisem, którego nie ma\n po co dotykać Tabem. -->\n <span class=\"kpt-mention\" data-plain [attr.data-kind]=\"resolvedKind() || null\">{{ display() }}</span>\n } @else {\n <kpt-peek [placement]=\"placement()\" [openDelay]=\"openDelay()\" [label]=\"display()\">\n @if (href(); as url) {\n <a kptPeekTrigger class=\"kpt-mention\" [attr.href]=\"url\" [attr.data-kind]=\"resolvedKind() || null\">\n {{ display() }}\n </a>\n } @else {\n <button type=\"button\" kptPeekTrigger class=\"kpt-mention\" [attr.data-kind]=\"resolvedKind() || null\">\n {{ display() }}\n </button>\n }\n\n <ng-content />\n </kpt-peek>\n }\n `,\n styleUrl: './mention.component.scss',\n host: { class: 'kpt-mention-host' },\n})\nexport class KptMention {\n /** Cała pozycja naraz. Pojedyncze inputy poniżej mają nad nią priorytet. */\n readonly item = input<KptMentionItem | null>(null);\n /** Identyfikator zapisany w treści — nie zmienia się przy zmianie nazwy. */\n readonly id = input<string>('');\n /** Nazwa do pokazania; bez niej bierze się ją z `item`, a w ostateczności z `id`. */\n readonly label = input<string>('');\n /** Rodzaj (osoba, zadanie, dokument) — ląduje w `data-kind`, więc da się go ostylować. */\n readonly kind = input<string>('');\n /** Znak przed nazwą. Pusty łańcuch zostawia samą nazwę. */\n readonly prefix = input('@');\n /** Adres, pod który prowadzi klik. Bez niego wzmianka jest przyciskiem otwierającym kartę. */\n readonly href = input<string | null>(null);\n readonly placement = input<KptPeekPlacement>('bottom');\n readonly openDelay = input(300);\n /** Wyłączona wzmianka nie otwiera karty — zostaje samym napisem. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n protected readonly resolvedKind = computed(() => this.kind() || this.item()?.kind || '');\n protected readonly display = computed(\n () => this.prefix() + (this.label() || this.item()?.label || this.id() || this.item()?.id || ''),\n );\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, computed, contentChild, input } from '@angular/core';\nimport { parseMentionText, type KptMentionItem, type KptMentionSegment } from '@konce-pt/mention';\nimport { KptMention } from './mention.component';\nimport type { KptPeekPlacement } from '../peek/peek.component';\n\n/**\n * Akapit ze wzmiankami — tekst wchodzi jako zwykły napis, a `@wzmianki` wychodzą z niego jako\n * elementy z kartą podglądu. Rozbiciem zajmuje się `parseMentionText()` z `@konce-pt/mention`\n * (czysty TS z testami), więc oba porty czytają tę samą treść tak samo.\n *\n * Wzmianek nie renderujemy z HTML-a: treść zostaje tekstem, a wzmianka jest elementem, który\n * biblioteka sama zbudowała. Aplikacja nie musi więc przepuszczać przez sanitizer czegoś,\n * co i tak pochodzi od jej użytkowników.\n *\n * Kartę daje szablon w środku — kontekst dostaje pozycję jako `$implicit` oraz `id` i `label`,\n * bo wzmianka do czegoś, czego nie ma już na liście, też musi się wyrenderować.\n *\n * @example\n * <kpt-mentions [text]=\"note\" [items]=\"people\">\n * <ng-template let-item let-label=\"label\">\n * <kpt-card>{{ item?.data?.role ?? label }}</kpt-card>\n * </ng-template>\n * </kpt-mentions>\n */\n@Component({\n selector: 'kpt-mentions',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [NgTemplateOutlet, KptMention],\n template: `@for (segment of segments(); track $index) {\n @if (segment.kind === 'text') {\n <span class=\"kpt-mentions__text\">{{ segment.text }}</span>\n } @else {\n <kpt-mention\n [id]=\"segment.id\"\n [label]=\"segment.label\"\n [kind]=\"segment.item?.kind ?? ''\"\n [prefix]=\"prefix()\"\n [placement]=\"placement()\"\n [disabled]=\"!cardTpl()\"\n >\n @if (cardTpl(); as tpl) {\n <ng-container\n [ngTemplateOutlet]=\"tpl\"\n [ngTemplateOutletContext]=\"{ $implicit: segment.item, id: segment.id, label: segment.label }\"\n />\n }\n </kpt-mention>\n }\n }`,\n styleUrl: './mention.component.scss',\n host: { class: 'kpt-mentions-host' },\n})\nexport class KptMentions<T = unknown> {\n /** Treść z wzmiankami: `@id` albo `@[Nazwa ze spacją](id)`. */\n readonly text = input<string>('');\n /** Pozycje, po których rozwiązują się identyfikatory. Nieznane `id` zostaje etykietą. */\n readonly items = input<readonly KptMentionItem<T>[]>([]);\n /** Znak przed nazwą we wzmiance. */\n readonly prefix = input('@');\n readonly placement = input<KptPeekPlacement>('bottom');\n\n /** Szablon karty; bez niego wzmianki są samym napisem, bo nie ma czego pokazać. */\n protected readonly cardTpl = contentChild(TemplateRef);\n\n protected readonly segments = computed<KptMentionSegment<T>[]>(() =>\n parseMentionText(this.text(), this.items()),\n );\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n booleanAttribute,\n computed,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport type { FormValueControl } from '@angular/forms/signals';\n\n/**\n * Pole z podpowiedziami (autocomplete) na CDK Overlay, Signal Forms. Wartość = wpisany tekst.\n * Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-autocomplete [formField]=\"f.city\" [options]=\"cities\" placeholder=\"Miasto…\" />\n */\n@Component({\n selector: 'kpt-autocomplete',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay],\n template: `\n <input\n class=\"kpt-autocomplete__input\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n type=\"text\"\n [value]=\"value()\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [attr.aria-invalid]=\"showInvalid() ? 'true' : null\"\n role=\"combobox\"\n [attr.aria-expanded]=\"open()\"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeydown($event)\"\n />\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"open() && filtered().length > 0\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayWidth]=\"origin.elementRef.nativeElement.offsetWidth\"\n >\n <ul class=\"kpt-autocomplete__panel\" role=\"listbox\">\n @for (opt of filtered(); track opt; let i = $index) {\n <li\n class=\"kpt-autocomplete__option\"\n role=\"option\"\n [class.is-active]=\"i === activeIndex()\"\n (mousedown)=\"$event.preventDefault(); pick(opt)\"\n (mouseenter)=\"activeIndex.set(i)\"\n >{{ opt }}</li>\n }\n </ul>\n </ng-template>\n `,\n styleUrl: './autocomplete.component.scss',\n host: { class: 'kpt-autocomplete-host' },\n})\nexport class KptAutocomplete implements FormValueControl<string> {\n readonly value = model<string>('');\n readonly options = input<readonly string[]>([]);\n readonly placeholder = input('');\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly invalid = input(false, { transform: booleanAttribute });\n readonly touched = input(false, { transform: booleanAttribute });\n\n /** Stan nieprawidłowy pokazujemy dopiero po dotknięciu pola — jak natywne `:user-invalid`. */\n protected readonly showInvalid = computed(() => this.invalid() && this.touched());\n\n readonly touch = output<void>();\n\n protected readonly open = signal(false);\n protected readonly activeIndex = signal(-1);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected readonly filtered = computed(() => {\n const q = this.value().trim().toLowerCase();\n const opts = this.options();\n return q ? opts.filter((o) => o.toLowerCase().includes(q)) : opts;\n });\n\n protected onInput(event: Event): void {\n this.value.set((event.target as HTMLInputElement).value);\n this.open.set(true);\n this.activeIndex.set(-1);\n }\n protected onFocus(): void {\n this.open.set(true);\n }\n protected onBlur(): void {\n this.open.set(false);\n this.touch.emit();\n }\n protected pick(opt: string): void {\n this.value.set(opt);\n this.open.set(false);\n }\n protected onKeydown(event: KeyboardEvent): void {\n const opts = this.filtered();\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n this.open.set(true);\n this.activeIndex.set(Math.min(this.activeIndex() + 1, opts.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n this.activeIndex.set(Math.max(this.activeIndex() - 1, 0));\n } else if (event.key === 'Enter') {\n const opt = opts[this.activeIndex()];\n if (opt) {\n event.preventDefault();\n this.pick(opt);\n }\n } else if (event.key === 'Escape') {\n this.open.set(false);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\n\nexport type KptDrawerPosition = 'left' | 'right' | 'top' | 'bottom';\n\n/**\n * Panel wysuwany (drawer / off-canvas) sterowany sygnałem `open`. Niezależny od app-shell.\n *\n * @example\n * <kpt-drawer [(open)]=\"menuOpen\" position=\"right\" header=\"Filtry\">\n * Treść panelu…\n * </kpt-drawer>\n */\n@Component({\n selector: 'kpt-drawer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptIcon],\n template: `\n <div class=\"kpt-drawer__backdrop\" [class.is-open]=\"open()\" (click)=\"onBackdrop()\"></div>\n <aside\n class=\"kpt-drawer__panel\"\n [attr.data-position]=\"position()\"\n [class.is-open]=\"open()\"\n role=\"dialog\"\n aria-modal=\"true\"\n (keydown.escape)=\"close()\"\n tabindex=\"-1\"\n >\n @if (header() || dismissible()) {\n <div class=\"kpt-drawer__header\">\n <span class=\"kpt-drawer__title\">{{ header() }}</span>\n @if (dismissible()) {\n <button type=\"button\" class=\"kpt-drawer__close\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"><kpt-icon name=\"x\" /></button>\n }\n </div>\n }\n <div class=\"kpt-drawer__body\"><ng-content /></div>\n </aside>\n `,\n styleUrl: './drawer.component.scss',\n host: { class: 'kpt-drawer-host' },\n})\nexport class KptDrawer {\n readonly open = model(false);\n readonly position = input<KptDrawerPosition>('left');\n readonly header = input('');\n readonly dismissible = input(true, { transform: booleanAttribute });\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n\n protected onBackdrop(): void {\n if (this.closeOnBackdrop()) this.close();\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptAvatar } from '../avatar/avatar.component';\nimport { KptBadge } from '../badge/badge.component';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Menu kontekstowe (PPM) na obszarze projekcji. Panel pozycjonowany do kursora.\n *\n * @example\n * <kpt-context-menu [items]=\"items\" (selected)=\"onSelect($event)\">\n * <div class=\"obszar\">Kliknij prawym przyciskiem</div>\n * </kpt-context-menu>\n */\n@Component({\n selector: 'kpt-context-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptAvatar, KptBadge, KptIcon],\n template: `\n <div class=\"kpt-context-menu__area\" (contextmenu)=\"onContext($event)\">\n <ng-content />\n </div>\n\n @if (open()) {\n <div class=\"kpt-context-menu__backdrop\" (click)=\"close()\" (contextmenu)=\"$event.preventDefault(); close()\"></div>\n <div class=\"kpt-context-menu__panel\" role=\"menu\" [style.left.px]=\"x()\" [style.top.px]=\"y()\">\n @for (item of items(); track $index) {\n @if (item.separator) {\n <div class=\"kpt-context-menu__separator\" role=\"separator\"></div>\n } @else if (item.header) {\n <div class=\"kpt-context-menu__header\" role=\"presentation\">\n @if (item.avatar) {\n <kpt-avatar\n [src]=\"item.avatar.src ?? null\"\n [name]=\"item.avatar.name ?? ''\"\n [icon]=\"item.avatar.icon ?? null\"\n size=\"sm\"\n />\n } @else if (item.icon) {\n <kpt-icon [name]=\"item.icon\" />\n }\n <span class=\"kpt-context-menu__text\">\n @if (item.label) { <span class=\"kpt-context-menu__label\">{{ item.label }}</span> }\n @if (item.description) {\n <span class=\"kpt-context-menu__description\">{{ item.description }}</span>\n }\n </span>\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-context-menu__item\"\n role=\"menuitem\"\n [class.kpt-context-menu__item--danger]=\"item.danger\"\n [disabled]=\"item.disabled\"\n (click)=\"pick(item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span class=\"kpt-context-menu__text\">\n <span class=\"kpt-context-menu__label\">{{ item.label }}</span>\n @if (item.description) {\n <span class=\"kpt-context-menu__description\">{{ item.description }}</span>\n }\n </span>\n @if (item.badge !== undefined && item.badge !== null) {\n <kpt-badge\n class=\"kpt-context-menu__badge\"\n [value]=\"item.badge\"\n [variant]=\"item.badgeVariant ?? 'primary'\"\n />\n }\n </button>\n }\n }\n </div>\n }\n `,\n styleUrl: './context-menu.component.scss',\n host: { class: 'kpt-context-menu-host' },\n})\nexport class KptContextMenu<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly open = signal(false);\n protected readonly x = signal(0);\n protected readonly y = signal(0);\n\n protected onContext(event: MouseEvent): void {\n event.preventDefault();\n this.x.set(event.clientX);\n this.y.set(event.clientY);\n this.open.set(true);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Pozioma belka menu z rozwijanymi pod-menu. Pozycje bez `items` działają jak akcje/linki.\n * Pod-menu renderowane przez CDK Overlay (doczepiane do `body`), więc nie są przycinane\n * przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:\n * `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-menubar [items]=\"items\" (selected)=\"onSelect($event)\" />\n */\n@Component({\n selector: 'kpt-menubar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n template: `\n <nav class=\"kpt-menubar\" role=\"menubar\">\n @for (item of items(); track $index; let i = $index) {\n <div class=\"kpt-menubar__group\">\n <button\n type=\"button\"\n class=\"kpt-menubar__top\"\n role=\"menuitem\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n [class.is-open]=\"openIndex() === i\"\n [disabled]=\"item.disabled\"\n (click)=\"toggle(i, item)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span>{{ item.label }}</span>\n @if (item.items?.length) { <kpt-icon name=\"chevron-down\" class=\"kpt-menubar__caret\" /> }\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openIndex() === i && !!item.items?.length\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAll()\"\n (detach)=\"closeAll()\"\n >\n <div class=\"kpt-menubar__dropdown\" role=\"menu\">\n @for (sub of item.items; track $index) {\n @if (sub.separator) {\n <div class=\"kpt-menubar__separator\" role=\"separator\"></div>\n } @else {\n <button\n type=\"button\"\n class=\"kpt-menubar__item\"\n role=\"menuitem\"\n [class.kpt-menubar__item--danger]=\"sub.danger\"\n [disabled]=\"sub.disabled\"\n (click)=\"pick(sub)\"\n >\n @if (sub.icon) { <kpt-icon [name]=\"sub.icon\" /> }\n <span>{{ sub.label }}</span>\n </button>\n }\n }\n </div>\n </ng-template>\n </div>\n }\n </nav>\n `,\n styleUrl: './menubar.component.scss',\n host: { class: 'kpt-menubar-host' },\n})\nexport class KptMenubar<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly openIndex = signal<number | null>(null);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected toggle(i: number, item: KptMenuItem<T>): void {\n if (item.disabled) return;\n if (item.items?.length) {\n this.openIndex.update((cur) => (cur === i ? null : i));\n } else {\n this.selected.emit(item);\n this.closeAll();\n }\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.closeAll();\n }\n protected closeAll(): void {\n this.openIndex.set(null);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, type ConnectedPosition } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output, signal } from '@angular/core';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\n/**\n * Mega-menu — pozioma belka z szerokim, wielokolumnowym panelem.\n * Struktura: pozycja górna → `items` (kolumny) → każda kolumna `items` (odnośniki).\n * Panel renderowany przez CDK Overlay (doczepiony do `body`), więc nie jest przycinany\n * przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:\n * `import '@angular/cdk/overlay-prebuilt.css';`\n *\n * @example\n * <kpt-megamenu [items]=\"items\" (selected)=\"onSelect($event)\" />\n */\n@Component({\n selector: 'kpt-megamenu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, KptIcon],\n template: `\n <nav class=\"kpt-megamenu\" role=\"menubar\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\">\n @for (item of items(); track $index; let i = $index) {\n <button\n type=\"button\"\n class=\"kpt-megamenu__top\"\n role=\"menuitem\"\n [class.is-open]=\"openIndex() === i\"\n (click)=\"toggle(i)\"\n >\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n <span>{{ item.label }}</span>\n <kpt-icon name=\"chevron-down\" class=\"kpt-megamenu__caret\" />\n </button>\n }\n </nav>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"openIndex() !== null\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (backdropClick)=\"closeAll()\"\n (detach)=\"closeAll()\"\n >\n <div class=\"kpt-megamenu__panel\" role=\"menu\">\n @for (col of activeColumns(); track $index) {\n <div class=\"kpt-megamenu__column\">\n @if (col.label) { <div class=\"kpt-megamenu__col-title\">{{ col.label }}</div> }\n @for (link of col.items ?? []; track $index) {\n <button type=\"button\" class=\"kpt-megamenu__link\" [disabled]=\"link.disabled\" (click)=\"pick(link)\">\n @if (link.icon) { <kpt-icon [name]=\"link.icon\" /> }\n <span>{{ link.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n </ng-template>\n `,\n styleUrl: './megamenu.component.scss',\n host: { class: 'kpt-megamenu-host' },\n})\nexport class KptMegamenu<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly openIndex = signal<number | null>(null);\n protected readonly positions: ConnectedPosition[] = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n ];\n\n protected activeColumns(): readonly KptMenuItem<T>[] {\n const i = this.openIndex();\n return i === null ? [] : this.items()[i]?.items ?? [];\n }\n\n protected toggle(i: number): void {\n this.openIndex.update((cur) => (cur === i ? null : i));\n }\n protected pick(link: KptMenuItem<T>): void {\n if (link.disabled) return;\n this.selected.emit(link);\n this.closeAll();\n }\n protected closeAll(): void {\n this.openIndex.set(null);\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\nexport interface KptConfirmOptions {\n message: string;\n header?: string;\n acceptLabel?: string;\n rejectLabel?: string;\n /** Wariant przycisku akceptacji. */\n variant?: 'filled' | 'danger';\n icon?: string;\n}\n\nexport interface KptConfirmRequest extends KptConfirmOptions {\n id: number;\n resolve: (accepted: boolean) => void;\n}\n\n/**\n * Serwis potwierdzeń. Wstrzyknij i wywołaj `confirm(...)` (zwraca Promise<boolean>);\n * umieść `<kpt-confirm-container />` raz w aplikacji.\n *\n * @example\n * if (await confirm.confirm({ message: 'Usunąć rekord?', variant: 'danger' })) { ... }\n */\n@Injectable({ providedIn: 'root' })\nexport class KptConfirmService {\n private readonly _current = signal<KptConfirmRequest | null>(null);\n readonly current = this._current.asReadonly();\n private seq = 0;\n\n confirm(options: KptConfirmOptions): Promise<boolean> {\n return new Promise<boolean>((resolve) => {\n this._current.set({ id: ++this.seq, ...options, resolve });\n });\n }\n\n accept(): void {\n this._current()?.resolve(true);\n this._current.set(null);\n }\n reject(): void {\n this._current()?.resolve(false);\n this._current.set(null);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from '@angular/core';\nimport { KptButton } from '../button/button.component';\nimport { KptDialog } from '../dialog/dialog.component';\nimport { KptIcon } from '../icon/icon.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptConfirmService } from './confirm.service';\n\n/**\n * Kontener potwierdzeń — renderuje aktywne żądanie z `KptConfirmService` na `kpt-dialog`.\n * Umieść raz w aplikacji (np. obok `<kpt-toast-container />`).\n */\n@Component({\n selector: 'kpt-confirm-container',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptDialog, KptButton, KptIcon],\n template: `\n <kpt-dialog [open]=\"isOpen()\" (openChange)=\"onOpenChange($event)\" [header]=\"req()?.header ?? i18n.t('confirm.header')\">\n <div class=\"kpt-confirm__body\">\n @if (req()?.icon) { <kpt-icon [name]=\"req()!.icon!\" class=\"kpt-confirm__icon\" [attr.data-variant]=\"req()?.variant ?? 'filled'\" /> }\n <p class=\"kpt-confirm__message\">{{ req()?.message }}</p>\n </div>\n <div kptDialogFooter>\n <kpt-button variant=\"text\" (click)=\"service.reject()\">{{ req()?.rejectLabel ?? i18n.t('confirm.reject') }}</kpt-button>\n <kpt-button [variant]=\"req()?.variant ?? 'filled'\" (click)=\"service.accept()\">{{ req()?.acceptLabel ?? i18n.t('confirm.accept') }}</kpt-button>\n </div>\n </kpt-dialog>\n `,\n styleUrl: './confirm-container.component.scss',\n host: { class: 'kpt-confirm-container-host' },\n})\nexport class KptConfirmContainer {\n protected readonly i18n = inject(KptI18n);\n protected readonly service = inject(KptConfirmService);\n protected readonly req = this.service.current;\n protected readonly isOpen = computed(() => this.req() !== null);\n\n protected onOpenChange(open: boolean): void {\n if (!open) this.service.reject();\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, inject, input, model } from '@angular/core';\nimport { KptI18n } from '../i18n/i18n.service';\n\n/**\n * Arkusz wysuwany z dołu ekranu (bottom sheet). Sterowany sygnałem `open`.\n *\n * @example\n * <kpt-bottom-sheet [(open)]=\"sheetOpen\" header=\"Udostępnij\">\n * Treść arkusza…\n * </kpt-bottom-sheet>\n */\n@Component({\n selector: 'kpt-bottom-sheet',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-bottom-sheet__backdrop\" [class.is-open]=\"open()\" (click)=\"onBackdrop()\"></div>\n <div class=\"kpt-bottom-sheet__panel\" [class.is-open]=\"open()\" role=\"dialog\" aria-modal=\"true\" (keydown.escape)=\"close()\" tabindex=\"-1\">\n <button type=\"button\" class=\"kpt-bottom-sheet__handle\" (click)=\"close()\" [attr.aria-label]=\"i18n.t('common.close')\"></button>\n @if (header()) { <div class=\"kpt-bottom-sheet__header\">{{ header() }}</div> }\n <div class=\"kpt-bottom-sheet__body\"><ng-content /></div>\n </div>\n `,\n styleUrl: './bottom-sheet.component.scss',\n host: { class: 'kpt-bottom-sheet-host' },\n})\nexport class KptBottomSheet {\n readonly open = model(false);\n readonly header = input('');\n readonly closeOnBackdrop = input(true, { transform: booleanAttribute });\n\n protected readonly i18n = inject(KptI18n);\n\n protected onBackdrop(): void {\n if (this.closeOnBackdrop()) this.close();\n }\n protected close(): void {\n this.open.set(false);\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input, output, signal } from '@angular/core';\nimport { KptFab } from '../fab/fab.component';\nimport { KptI18n } from '../i18n/i18n.service';\nimport { KptIcon } from '../icon/icon.component';\nimport type { KptMenuItem } from '../menu/menu.component';\n\nexport type KptSpeedDialDirection = 'up' | 'down' | 'left' | 'right';\n\n/**\n * Speed dial — FAB rozwijający zestaw akcji. Buduje na `kpt-fab`.\n *\n * @example\n * <kpt-speed-dial [items]=\"actions\" direction=\"up\" (selected)=\"onAction($event)\" />\n */\n@Component({\n selector: 'kpt-speed-dial',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptFab, KptIcon],\n template: `\n <div class=\"kpt-speed-dial\" [attr.data-direction]=\"direction()\" [class.is-open]=\"open()\">\n <div class=\"kpt-speed-dial__actions\">\n @for (item of items(); track $index) {\n <button type=\"button\" class=\"kpt-speed-dial__action\" [disabled]=\"item.disabled\" (click)=\"pick(item)\" [attr.aria-label]=\"item.label\">\n @if (item.icon) { <kpt-icon [name]=\"item.icon\" /> }\n @if (item.label) { <span class=\"kpt-speed-dial__label\">{{ item.label }}</span> }\n </button>\n }\n </div>\n <kpt-fab [ariaLabel]=\"open() ? i18n.t('common.close') : effectiveAriaLabel()\" (click)=\"toggle()\">\n <span class=\"kpt-speed-dial__trigger-icon\"><kpt-icon [name]=\"icon()\" /></span>\n </kpt-fab>\n </div>\n @if (open()) { <div class=\"kpt-speed-dial__backdrop\" (click)=\"close()\"></div> }\n `,\n styleUrl: './speed-dial.component.scss',\n host: { class: 'kpt-speed-dial-host' },\n})\nexport class KptSpeedDial<T = unknown> {\n readonly items = input<readonly KptMenuItem<T>[]>([]);\n readonly direction = input<KptSpeedDialDirection>('up');\n readonly icon = input('plus');\n /** Etykieta a11y FAB (stan zamknięty); bez wartości używa i18n (`speedDial.actions`). */\n readonly ariaLabel = input<string>();\n readonly selected = output<KptMenuItem<T>>();\n\n protected readonly i18n = inject(KptI18n);\n protected readonly effectiveAriaLabel = computed(() => this.ariaLabel() ?? this.i18n.t('speedDial.actions'));\n protected readonly open = signal(false);\n\n protected toggle(): void {\n this.open.update((o) => !o);\n }\n protected close(): void {\n this.open.set(false);\n }\n protected pick(item: KptMenuItem<T>): void {\n if (item.disabled) return;\n this.selected.emit(item);\n this.close();\n }\n}\n","/*\n * Public API — @konce-pt/angular\n * Komponenty Koncept UI dla Angular 22 (sygnały, Signal Forms).\n */\nexport { KptButton } from './lib/button/button.component';\nexport type { KptButtonVariant, KptButtonSize } from './lib/button/button.component';\nexport { KptIconButton } from './lib/icon-button/icon-button.component';\nexport { KptButtonGroup } from './lib/button-group/button-group.component';\nexport { KptFab } from './lib/fab/fab.component';\nexport { KptSplitButton } from './lib/split-button/split-button.component';\n\nexport { KptIcon } from './lib/icon/icon.component';\nexport { KptIconRegistry, renderKptIconSvg } from './lib/icon/icon-registry';\nexport type { KptIconName } from './lib/icon/icons';\nexport { provideKptIcons } from './lib/icon/icon-provider';\nexport type { KptIconDef, KptIconInput } from '@konce-pt/icons';\n\n// Breakpointy\nexport { KptBreakpointObserver } from './lib/breakpoint/breakpoint.service';\nexport { KPT_BREAKPOINTS } from './lib/breakpoint/breakpoints.generated';\nexport type { KptBreakpoint } from './lib/breakpoint/breakpoints.generated';\n\n// i18n\nexport { provideKptI18n } from './lib/i18n/i18n.provider';\nexport { KptI18n } from './lib/i18n/i18n.service';\nexport type { KptI18nConfig, DeepPartial } from './lib/i18n/i18n.token';\nexport { KPT_I18N_CONFIG } from './lib/i18n/i18n.token';\nexport { KPT_MESSAGES_EN, KPT_MESSAGES_PL } from './lib/i18n/messages';\nexport type { KptMessages, KptLocale } from './lib/i18n/messages';\n\n// Wyświetlanie / statusy\nexport { KptBadge } from './lib/badge/badge.component';\nexport type { KptBadgeSize, KptBadgeVariant } from './lib/badge/badge.component';\nexport { KptChip } from './lib/chip/chip.component';\nexport type { KptChipTextTransform, KptChipVariant } from './lib/chip/chip.component';\nexport { KptAvatar } from './lib/avatar/avatar.component';\nexport type { KptAvatarSize, KptAvatarShape } from './lib/avatar/avatar.component';\nexport { KptSpinner } from './lib/spinner/spinner.component';\nexport { KptProgress } from './lib/progress/progress.component';\nexport type { KptProgressVariant } from './lib/progress/progress.component';\nexport { KptSkeleton } from './lib/skeleton/skeleton.component';\nexport type { KptSkeletonVariant } from './lib/skeleton/skeleton.component';\n\nexport { KptFormField } from './lib/form-field/form-field.component';\nexport { KPT_FORM_FIELD_CONTROL } from './lib/form-field/form-field-control';\nexport type { KptFormFieldControl } from './lib/form-field/form-field-control';\n\nexport { KptInput } from './lib/input/input.component';\nexport type { KptInputType } from './lib/input/input.component';\n\nexport { KptCheckbox } from './lib/checkbox/checkbox.component';\nexport { KptSwitch } from './lib/switch/switch.component';\nexport { KptSwitchGroup } from './lib/switch-group/switch-group.component';\nexport { KptRadioGroup } from './lib/radio-group/radio-group.component';\nexport { KptSelect } from './lib/select/select.component';\nexport { KptDatepicker } from './lib/datepicker/datepicker.component';\nexport type { KptDatepickerMode, KptDatepickerView } from './lib/datepicker/datepicker.component';\nexport { KptClock } from './lib/datepicker/clock.component';\nexport { KptTextarea } from './lib/textarea/textarea.component';\nexport { KptRichText } from './lib/rich-text/rich-text.component';\nexport type { KptRichTool, KptRichToolbar } from './lib/rich-text/rich-text.component';\nexport { KptSlider, type KptSliderValue } from './lib/slider/slider.component';\nexport { KptRating } from './lib/rating/rating.component';\nexport { KptFileUpload } from './lib/file-upload/file-upload.component';\nexport { KptColorPicker } from './lib/color-picker/color-picker.component';\nexport { KptDateRange } from './lib/date-range/date-range.component';\nexport type { KptDateRangeValue } from './lib/date-range/date-range.component';\nexport { KptInputNumber } from './lib/input-number/input-number.component';\nexport { KptPassword } from './lib/password/password.component';\nexport { KptInputOtp } from './lib/input-otp/input-otp.component';\nexport { KptChipsInput } from './lib/chips-input/chips-input.component';\nexport { KptInputMask } from './lib/input-mask/input-mask.component';\nexport { KptListbox } from './lib/listbox/listbox.component';\nexport { KptKnob } from './lib/knob/knob.component';\nexport type { KptOption } from './lib/shared/types';\n\n// Layout\nexport { KptCard } from './lib/card/card.component';\nexport type { KptCardVariant } from './lib/card/card.component';\nexport { KptDivider } from './lib/divider/divider.component';\nexport type { KptDividerOrientation } from './lib/divider/divider.component';\nexport { KptToolbar } from './lib/toolbar/toolbar.component';\nexport { KptSidenav } from './lib/sidenav/sidenav.component';\nexport { KptAppShell } from './lib/app-shell/app-shell.component';\nexport type { KptSidenavMode } from './lib/app-shell/app-shell.component';\nexport { KptShellNavToggle } from './lib/app-shell/shell-nav-toggle.directive';\nexport { KptBackdrop } from './lib/backdrop/backdrop.component';\n\n// Rdzeń animowanego tła (pure TS) — siatka, wstęga, barwy i renderery obu efektów.\nexport type {\n KptBackdropAnchor,\n KptBackdropEffect,\n KptBackdropRenderOptions,\n KptBackdropRenderer,\n KptOklab,\n KptRgb,\n KptSignalGridCell,\n KptSignalGridFrame,\n KptSignalGridOptions,\n KptWaveOptions,\n KptWaveSettings,\n} from '@konce-pt/backdrop';\nexport {\n KPT_SIGNAL_GRID_CELL,\n KPT_SIGNAL_GRID_DENSITY,\n KPT_SIGNAL_GRID_FALLOFF,\n KPT_SIGNAL_GRID_GAP,\n KPT_WAVE_AMPLITUDE,\n KPT_WAVE_BAND,\n KPT_WAVE_RESOLUTION,\n KPT_WAVE_ROTATION,\n buildSignalGrid,\n createBackdropRenderer,\n mixOklch,\n readCssColor,\n resolveWave,\n shiftHue,\n signalGridAlpha,\n signalGridDensity,\n waveIntensity,\n waveRamp,\n} from '@konce-pt/backdrop';\nexport { KptAuth } from './lib/auth/auth.component';\nexport { KptAuthProviderDef } from './lib/auth/auth-provider.directive';\nexport type {\n KptAuthLayout,\n KptAuthMode,\n KptAuthProvider,\n KptAuthProviderLayout,\n KptAuthResetValue,\n KptAuthSignInValue,\n KptAuthSignUpValue,\n} from './lib/auth/auth.types';\nexport { KptPanel } from './lib/panel/panel.component';\nexport { KptFieldset } from './lib/fieldset/fieldset.component';\nexport { KptSplitter } from './lib/splitter/splitter.component';\nexport type { KptSplitterOrientation } from './lib/splitter/splitter.component';\nexport { KptScrollTop } from './lib/scroll-top/scroll-top.component';\nexport { KptImage } from './lib/image/image.component';\nexport { KptMeterGroup } from './lib/meter-group/meter-group.component';\nexport type { KptMeterItem } from './lib/meter-group/meter-group.component';\nexport { KptAvatarGroup } from './lib/avatar-group/avatar-group.component';\nexport type { KptAvatarItem } from './lib/avatar-group/avatar-group.component';\nexport { KptEmpty } from './lib/empty/empty.component';\n\n// Nawigacja\nexport { KptTabs } from './lib/tabs/tabs.component';\nexport { KptTab } from './lib/tabs/tab.component';\nexport { KptAccordion } from './lib/accordion/accordion.component';\nexport { KptAccordionPanel } from './lib/accordion/accordion-panel.component';\nexport { KptBreadcrumb } from './lib/breadcrumb/breadcrumb.component';\nexport type { KptBreadcrumbItem } from './lib/breadcrumb/breadcrumb.component';\nexport { KptStepper } from './lib/stepper/stepper.component';\nexport { KptStep } from './lib/stepper/step.component';\n\n// Dane\nexport { KptPaginator } from './lib/paginator/paginator.component';\nexport { KptDataTable } from './lib/data-table/data-table.component';\nexport type {\n KptColumn,\n KptTableLazyState,\n KptColumnFilter,\n KptColumnFilterType,\n KptColumnEdit,\n KptColumnEditType,\n KptCellEditEvent,\n KptColumnSummary,\n KptSummaryFn,\n} from './lib/data-table/data-table.component';\nexport { KptCellDef } from './lib/data-table/cell.directive';\nexport { KptCellEditDef } from './lib/data-table/cell-edit.directive';\nexport { KptRowDetailDef } from './lib/data-table/row-detail.directive';\nexport { KptTree } from './lib/tree/tree.component';\nexport type { KptTreeNode } from './lib/tree/tree.component';\nexport { KptTimeline } from './lib/timeline/timeline.component';\nexport type { KptTimelineItem } from './lib/timeline/timeline.component';\nexport { KptCarousel } from './lib/carousel/carousel.component';\nexport { KptDataView } from './lib/data-view/data-view.component';\nexport { KptPickList } from './lib/pick-list/pick-list.component';\nexport { KptOrderList } from './lib/order-list/order-list.component';\nexport { KptGalleria } from './lib/galleria/galleria.component';\nexport type { KptGalleriaItem } from './lib/galleria/galleria.component';\n\n// Feedback\nexport { KptAlert } from './lib/alert/alert.component';\nexport type { KptAlertVariant } from './lib/alert/alert.component';\nexport { KptDialog } from './lib/dialog/dialog.component';\nexport { KptToastService } from './lib/toast/toast.service';\nexport type { KptToast, KptToastOptions } from './lib/toast/toast.service';\nexport { KptToastContainer } from './lib/toast/toast-container.component';\nexport { KptTooltip } from './lib/tooltip/tooltip.directive';\nexport type { KptTooltipPosition } from './lib/tooltip/tooltip.directive';\nexport { KptMenu } from './lib/menu/menu.component';\nexport type { KptMenuItem } from './lib/menu/menu.component';\nexport { KptPopover } from './lib/popover/popover.component';\nexport { KptPeek, KptPeekTrigger } from './lib/peek/peek.component';\nexport type { KptPeekPlacement } from './lib/peek/peek.component';\nexport { KptMention } from './lib/mention/mention.component';\nexport { KptMentions } from './lib/mention/mentions.component';\n\n// Rdzeń wzmianek (pure TS) — parsowanie treści, zapytanie przy kursorze i dopasowanie podpowiedzi.\nexport type { KptMentionItem, KptMentionQuery, KptMentionSegment } from '@konce-pt/mention';\nexport {\n KPT_MENTION_LIMIT,\n applyMention,\n collectMentions,\n filterMentions,\n foldMentionText,\n mentionQuery,\n mentionToken,\n parseMentionText,\n} from '@konce-pt/mention';\nexport { KptAutocomplete } from './lib/autocomplete/autocomplete.component';\nexport { KptDrawer } from './lib/drawer/drawer.component';\nexport type { KptDrawerPosition } from './lib/drawer/drawer.component';\nexport { KptContextMenu } from './lib/context-menu/context-menu.component';\nexport { KptMenubar } from './lib/menubar/menubar.component';\nexport { KptMegamenu } from './lib/megamenu/megamenu.component';\nexport { KptConfirmService } from './lib/confirm/confirm.service';\nexport type { KptConfirmOptions, KptConfirmRequest } from './lib/confirm/confirm.service';\nexport { KptConfirmContainer } from './lib/confirm/confirm-container.component';\nexport { KptBottomSheet } from './lib/bottom-sheet/bottom-sheet.component';\nexport { KptSpeedDial } from './lib/speed-dial/speed-dial.component';\nexport type { KptSpeedDialDirection } from './lib/speed-dial/speed-dial.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","_forTrack0","nextUniqueId","_forTrack1","_c1","_c2"],"mappings":"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"}
|