@life-cockpit/angular-ui-kit 1.2.2 → 1.3.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@life-cockpit/angular-ui-kit",
3
- "version": "1.2.2",
3
+ "version": "1.3.1",
4
4
  "description": "Life Cockpit Design System - Angular UI component library",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -2,6 +2,7 @@ import * as _angular_core from '@angular/core';
2
2
  import { EventEmitter, ElementRef, OnInit, OnDestroy, AfterViewInit, QueryList, Signal, TemplateRef, AfterContentInit, AfterViewChecked } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
  import { SafeHtml, DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
5
+ import { Observable } from 'rxjs';
5
6
 
6
7
  /**
7
8
  * Do not edit directly, this file was auto-generated.
@@ -5201,6 +5202,8 @@ interface ChatMessage {
5201
5202
  avatar?: string;
5202
5203
  name?: string;
5203
5204
  streaming?: boolean;
5205
+ /** Arbitrary data passed to a custom messageTemplate. */
5206
+ data?: Record<string, unknown>;
5204
5207
  }
5205
5208
  interface ChatSendEvent {
5206
5209
  content: string;
@@ -5224,6 +5227,10 @@ declare class ChatComponent implements AfterViewChecked {
5224
5227
  showTimestamps: _angular_core.InputSignal<boolean>;
5225
5228
  /** Emits when user sends a message. */
5226
5229
  messageSend: _angular_core.OutputEmitterRef<ChatSendEvent>;
5230
+ /** Custom template for rendering message content. Context: { $implicit: ChatMessage } */
5231
+ messageTemplate?: TemplateRef<{
5232
+ $implicit: ChatMessage;
5233
+ }>;
5227
5234
  protected readonly inputValue: _angular_core.WritableSignal<string>;
5228
5235
  private shouldScroll;
5229
5236
  private scrollContainer;
@@ -5235,6 +5242,8 @@ declare class ChatComponent implements AfterViewChecked {
5235
5242
  avatar?: string;
5236
5243
  name?: string;
5237
5244
  streaming?: boolean;
5245
+ /** Arbitrary data passed to a custom messageTemplate. */
5246
+ data?: Record<string, unknown>;
5238
5247
  }[]>;
5239
5248
  ngAfterViewChecked(): void;
5240
5249
  protected onInput(event: Event): void;
@@ -5244,7 +5253,7 @@ declare class ChatComponent implements AfterViewChecked {
5244
5253
  protected trackById(_: number, msg: ChatMessage): string;
5245
5254
  private scrollToBottom;
5246
5255
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChatComponent, never>;
5247
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChatComponent, "lc-chat", never, { "messages": { "alias": "messages"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "isStreaming": { "alias": "isStreaming"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showAvatars": { "alias": "showAvatars"; "required": false; "isSignal": true; }; "showTimestamps": { "alias": "showTimestamps"; "required": false; "isSignal": true; }; }, { "messageSend": "messageSend"; }, never, never, true, never>;
5256
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChatComponent, "lc-chat", never, { "messages": { "alias": "messages"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "isStreaming": { "alias": "isStreaming"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showAvatars": { "alias": "showAvatars"; "required": false; "isSignal": true; }; "showTimestamps": { "alias": "showTimestamps"; "required": false; "isSignal": true; }; }, { "messageSend": "messageSend"; }, ["messageTemplate"], never, true, never>;
5248
5257
  }
5249
5258
 
5250
5259
  type DocumentType = 'pdf' | 'markdown' | 'image' | 'text' | 'code' | 'auto';
@@ -6005,5 +6014,414 @@ declare class RichTextEditorComponent implements ControlValueAccessor, AfterView
6005
6014
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorComponent, "lc-rich-text-editor", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "toolbar": { "alias": "toolbar"; "required": false; "isSignal": true; }; "showWordCount": { "alias": "showWordCount"; "required": false; "isSignal": true; }; }, { "contentChange": "contentChange"; }, never, never, true, never>;
6006
6015
  }
6007
6016
 
6008
- export { AccordionComponent, AlertComponent, AnimationDurationFast, AnimationEasingEaseIn, AnimationEasingEaseInOut, AnimationEasingEaseOut, AreaChartComponent, AvatarComponent, AvatarGroupComponent, BadgeComponent, BarChartComponent, BorderRadius2xl, BorderRadiusFull, BorderRadiusLg, BorderRadiusMd, BorderRadiusNone, BorderRadiusSm, BorderRadiusXl, BreadcrumbsComponent, ButtonComponent, CalendarComponent, CalloutComponent, CardComponent, ChatComponent, CheckboxComponent, ChipComponent, CodeBlockComponent, ColorAccentOrange, ColorAccentPurple, ColorAccentRed, ColorAccentRust, ColorAccentViolet, ColorErrorDark, ColorErrorDefault, ColorErrorLight, ColorInfoDark, ColorInfoDefault, ColorInfoLight, ColorNeutral100, ColorNeutral200, ColorNeutral300, ColorNeutral400, ColorNeutral50, ColorNeutral500, ColorNeutral600, ColorNeutral700, ColorNeutral800, ColorNeutral900, ColorPickerComponent, ColorPrimary100, ColorPrimary200, ColorPrimary300, ColorPrimary400, ColorPrimary50, ColorPrimary500, ColorPrimary600, ColorPrimary700, ColorPrimary800, ColorPrimary900, ColorSecondary100, ColorSecondary200, ColorSecondary300, ColorSecondary400, ColorSecondary50, ColorSecondary500, ColorSecondary600, ColorSecondary700, ColorSecondary800, ColorSecondary900, ColorSuccessDark, ColorSuccessDefault, ColorSuccessLight, ColorWarningDark, ColorWarningDefault, ColorWarningLight, ContainerComponent, DateRangePickerComponent, DatepickerComponent, DependencyViewerComponent, DiffViewerComponent, DividerComponent, DocumentViewerComponent, DonutChartComponent, DrawerComponent, Elevation1, Elevation2, Elevation3, Elevation4, EmailInputComponent, EmptyStateComponent, ErrorDisplayComponent, FieldGroupComponent, FileUploadComponent, FilterBarComponent, FooterComponent, FunnelChartComponent, GalleryComponent, GanttChartComponent, GaugeComponent, HeaderComponent, HeatmapComponent, HeroComponent, IconComponent, InputComponent, KanbanBoardComponent, LineChartComponent, ListComponent, ListItemTemplateDirective, LogoComponent, MenuComponent, ModalComponent, NotificationCenterComponent, NumberInputComponent, PaginationComponent, PasswordInputComponent, PieChartComponent, PopoverComponent, ProgressBarComponent, ProgressRingComponent, RadarChartComponent, RadioComponent, RatingComponent, RichTextEditorComponent, ScatterPlotComponent, SearchInputComponent, SectionComponent, SelectComponent, SidenavComponent, SizeInteractiveLgFontSize, SizeInteractiveLgHeight, SizeInteractiveLgPadding, SizeInteractiveMdFontSize, SizeInteractiveMdHeight, SizeInteractiveMdPadding, SizeInteractiveSmFontSize, SizeInteractiveSmHeight, SizeInteractiveSmPadding, SizeInteractiveXsFontSize, SizeInteractiveXsHeight, SizeInteractiveXsPadding, SizeMinTouchHeight, SizeMinTouchWidth, SkeletonComponent, SliderComponent, SpacerComponent, Spacing0, Spacing05, Spacing1, Spacing10, Spacing11, Spacing12, Spacing14, Spacing15, Spacing16, Spacing2, Spacing25, Spacing3, Spacing35, Spacing4, Spacing5, Spacing6, Spacing7, Spacing8, Spacing9, SparklineComponent, SpinnerComponent, StackComponent, StackedBarChartComponent, StatTrendComponent, StepperComponent, SwitchComponent, TabComponent, TableCellDirective, TableComponent, TabsComponent, TagInputComponent, TextareaComponent, ThemeService, TimelineComponent, ToastComponent, ToastService, ToggleGroupComponent, TooltipContentComponent, TooltipDirective, TypographyComponent, TypographyFontFamilyBase, TypographyFontFamilyMono, TypographyFontSize2xl, TypographyFontSize3xl, TypographyFontSize4xl, TypographyFontSize5xl, TypographyFontSize6xl, TypographyFontSizeBase, TypographyFontSizeLg, TypographyFontSizeSm, TypographyFontSizeXl, TypographyFontSizeXs, TypographyFontWeightBold, TypographyFontWeightMedium, TypographyFontWeightNormal, TypographyFontWeightSemibold, TypographyLineHeightNormal, TypographyLineHeightRelaxed, TypographyLineHeightTight, VerificationCodeInputComponent, WaterfallChartComponent };
6009
- export type { AlertVariant, AreaChartSeries, AvatarGroupItem, AvatarSize, AvatarStatus, BadgeSize, BadgeVariant, BarChartItem, BarChartOrientation, BreadcrumbItem, BreadcrumbSize, ButtonSize, ButtonType, ButtonVariant, CalendarEvent, CalendarView, CalloutVariant, CellEditEvent, ChatMessage, ChatMessageRole, ChatSendEvent, CheckboxSize, ChipSize, ChipVariant, CodeBlockLanguage, ContainerSize, DateRange, DateValue, DependencyDirection, DependencyEdgeDef, DependencyNode, DependencyNodeStatus, DependencyRelation, DiffViewMode, DividerOrientation, DividerSpacing, DividerVariant, DocumentType, DonutChartSize, DonutSegment, DrawerPosition, DrawerSize, EmptyStateSize, ErrorSeverity, FileUploadFile, FilterConfig, FilterOption, FilterValues, FooterLink, FooterSection, FooterVariant, FunnelStep, GalleryItem, GalleryLayout, GallerySize, GanttDependency, GanttTask, GaugeColor, GaugeSize, HeatmapCell, HeroColor, HeroSize, HeroVariant, IconSize, IconVariant, KanbanCard, KanbanColumn, KanbanLabel, KanbanMoveEvent, LineChartSeries, ListItem, ListOrientation, ListSize, ListVariant, MenuItem, ModalSize, NavigationItem, Notification, NotificationPriority, NotificationType, PaginationSize, PasswordRequirement, PasswordStrength, PieChartSize, PieSegment, PopoverPosition, PopoverTrigger, ProgressBarColor, ProgressBarSize, ProgressBarVariant, ProgressRingColor, ProgressRingSize, RadarChartSeries, RadioSize, RatingSize, RichTextEditorMode, ScatterPoint, ScatterSeries, SearchInputSize, SectionBackground, SectionSpacing, SelectOption, SelectOptionGroup, SelectValue, SelectionChangeEvent, SidenavMode, SidenavPosition, SkeletonVariant, SortEvent, SpacerSize, SparklineColor, SparklineCurve, SpinnerSize, StackAlign, StackDirection, StackGap, StackJustify, StackedBarCategory, StackedBarLegend, StackedBarOrientation, StatTrendDirection, StepState, StepperStep, TabOrientation, TableColumn, TableSize, TableVariant, ThemeConfig, ThemeMode, ThemeState, TimelineItem, TimelineOrientation, Toast, ToastAction, ToastConfig, ToastPosition, ToastVariant, ToggleOption, ToolbarAction, ToolbarConfig, TooltipPosition, WaterfallItem };
6017
+ interface MarkdownHeading {
6018
+ level: number;
6019
+ text: string;
6020
+ id: string;
6021
+ }
6022
+ interface MarkdownLinkClick {
6023
+ href: string;
6024
+ event: MouseEvent;
6025
+ }
6026
+ interface MarkdownRendered {
6027
+ headings: MarkdownHeading[];
6028
+ }
6029
+ interface RenderPart {
6030
+ type: 'html' | 'code';
6031
+ index: number;
6032
+ safeHtml?: SafeHtml;
6033
+ code?: string;
6034
+ lang?: string;
6035
+ }
6036
+ /**
6037
+ * Markdown renderer component.
6038
+ *
6039
+ * Renders GitHub-Flavored Markdown (GFM) to sanitized HTML with
6040
+ * optional syntax highlighting via `<lc-code-block>`.
6041
+ *
6042
+ * @example
6043
+ * ```html
6044
+ * <lc-markdown [content]="'# Hello World'" />
6045
+ * <lc-markdown [src]="'/docs/readme.md'" />
6046
+ * ```
6047
+ */
6048
+ declare class MarkdownComponent implements OnDestroy {
6049
+ private readonly sanitizer;
6050
+ private readonly http;
6051
+ private httpSub?;
6052
+ /** URL or path to load markdown from */
6053
+ readonly src: _angular_core.InputSignal<string | undefined>;
6054
+ /** Raw markdown string */
6055
+ readonly content: _angular_core.InputSignal<string | undefined>;
6056
+ /** Display variant */
6057
+ readonly variant: _angular_core.InputSignal<"default" | "compact">;
6058
+ /** Target for links */
6059
+ readonly linkTarget: _angular_core.InputSignal<"_blank" | "_self">;
6060
+ /** Whether to sanitize HTML output */
6061
+ readonly sanitize: _angular_core.InputSignal<boolean>;
6062
+ /** Whether to use code-block for fenced code */
6063
+ readonly syntaxHighlight: _angular_core.InputSignal<boolean>;
6064
+ /** Whether to show anchor links on headings */
6065
+ readonly showHeadingAnchors: _angular_core.InputSignal<boolean>;
6066
+ /** Base URL for resolving relative links/images */
6067
+ readonly baseUrl: _angular_core.InputSignal<string | undefined>;
6068
+ /** Emitted when a link is clicked */
6069
+ readonly linkClick: _angular_core.OutputEmitterRef<MarkdownLinkClick>;
6070
+ /** Emitted after rendering with heading TOC */
6071
+ readonly rendered: _angular_core.OutputEmitterRef<MarkdownRendered>;
6072
+ /** Internal resolved markdown source */
6073
+ protected resolvedMarkdown: _angular_core.WritableSignal<string>;
6074
+ /** Parsed result (computed once from resolvedMarkdown) */
6075
+ private parsed;
6076
+ /** Computed render parts (HTML chunks + code blocks interleaved) */
6077
+ protected renderParts: _angular_core.Signal<RenderPart[]>;
6078
+ protected containerClasses: _angular_core.Signal<string>;
6079
+ private headings;
6080
+ constructor();
6081
+ ngOnDestroy(): void;
6082
+ protected onLinkClick(event: MouseEvent): void;
6083
+ private loadFromUrl;
6084
+ private splitIntoParts;
6085
+ private parseMarkdown;
6086
+ private parseTables;
6087
+ private escapeHtml;
6088
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MarkdownComponent, never>;
6089
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MarkdownComponent, "lc-markdown", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "linkTarget": { "alias": "linkTarget"; "required": false; "isSignal": true; }; "sanitize": { "alias": "sanitize"; "required": false; "isSignal": true; }; "syntaxHighlight": { "alias": "syntaxHighlight"; "required": false; "isSignal": true; }; "showHeadingAnchors": { "alias": "showHeadingAnchors"; "required": false; "isSignal": true; }; "baseUrl": { "alias": "baseUrl"; "required": false; "isSignal": true; }; }, { "linkClick": "linkClick"; "rendered": "rendered"; }, never, never, true, never>;
6090
+ }
6091
+
6092
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error';
6093
+ type LogViewerVariant = 'terminal' | 'log';
6094
+ interface LogLine {
6095
+ text: string;
6096
+ level?: LogLevel;
6097
+ timestamp?: Date;
6098
+ source?: string;
6099
+ meta?: Record<string, unknown>;
6100
+ }
6101
+ /**
6102
+ * Streaming log / terminal viewer component.
6103
+ *
6104
+ * Supports controlled (lines input) and streaming (stream$ observable) modes,
6105
+ * virtualized rendering for large buffers, ANSI color parsing, auto-scroll,
6106
+ * and filtering.
6107
+ *
6108
+ * @example
6109
+ * ```html
6110
+ * <lc-log-viewer [stream$]="logs$" autoScroll height="600px" variant="terminal" />
6111
+ * ```
6112
+ */
6113
+ declare class LogViewerComponent implements AfterViewInit, OnDestroy {
6114
+ scrollContainer?: ElementRef<HTMLElement>;
6115
+ private readonly ngZone;
6116
+ private streamSub?;
6117
+ private scrollListener?;
6118
+ /** Controlled mode: array of log lines */
6119
+ readonly lines: _angular_core.InputSignal<LogLine[]>;
6120
+ /** Streaming mode: observable of log lines */
6121
+ readonly stream$: _angular_core.InputSignal<Observable<LogLine | LogLine[]> | undefined>;
6122
+ /** Maximum lines to keep in buffer */
6123
+ readonly maxLines: _angular_core.InputSignal<number>;
6124
+ /** Auto-scroll to bottom on new lines */
6125
+ readonly autoScroll: _angular_core.InputSignal<boolean>;
6126
+ /** Show timestamps column */
6127
+ readonly showTimestamps: _angular_core.InputSignal<boolean>;
6128
+ /** Show line numbers */
6129
+ readonly showLineNumbers: _angular_core.InputSignal<boolean>;
6130
+ /** Parse ANSI color codes */
6131
+ readonly ansiColors: _angular_core.InputSignal<boolean>;
6132
+ /** Filter by log levels */
6133
+ readonly levelFilter: _angular_core.InputSignal<LogLevel[] | undefined>;
6134
+ /** Search query to highlight */
6135
+ readonly searchQuery: _angular_core.InputSignal<string | undefined>;
6136
+ /** Container height */
6137
+ readonly height: _angular_core.InputSignal<string>;
6138
+ /** Visual variant */
6139
+ readonly variant: _angular_core.InputSignal<LogViewerVariant>;
6140
+ /** Emitted when a line is clicked */
6141
+ readonly lineClick: _angular_core.OutputEmitterRef<LogLine>;
6142
+ /** Emitted on copy all */
6143
+ readonly copyAll: _angular_core.OutputEmitterRef<string>;
6144
+ /** Emitted when scroll state changes */
6145
+ readonly scrollStateChange: _angular_core.OutputEmitterRef<{
6146
+ atBottom: boolean;
6147
+ }>;
6148
+ /** Internal buffer of all lines */
6149
+ protected buffer: _angular_core.WritableSignal<LogLine[]>;
6150
+ /** Whether stream is paused */
6151
+ protected paused: _angular_core.WritableSignal<boolean>;
6152
+ /** Whether user is at bottom of scroll */
6153
+ protected atBottom: _angular_core.WritableSignal<boolean>;
6154
+ /** Internal search input */
6155
+ protected internalSearch: _angular_core.WritableSignal<string>;
6156
+ /** Internal level filter */
6157
+ protected internalLevelFilter: _angular_core.WritableSignal<Set<LogLevel>>;
6158
+ /** Show search bar */
6159
+ protected showSearch: _angular_core.WritableSignal<boolean>;
6160
+ /** Effective search query */
6161
+ protected effectiveSearch: _angular_core.Signal<string>;
6162
+ /** Filtered lines for display */
6163
+ protected filteredLines: _angular_core.Signal<LogLine[]>;
6164
+ /** Visible window of lines (virtualized) */
6165
+ protected scrollTop: _angular_core.WritableSignal<number>;
6166
+ protected readonly LINE_HEIGHT = 22;
6167
+ protected visibleRange: _angular_core.Signal<{
6168
+ start: number;
6169
+ end: number;
6170
+ total: number;
6171
+ totalHeight: number;
6172
+ }>;
6173
+ protected visibleLines: _angular_core.Signal<{
6174
+ _index: number;
6175
+ text: string;
6176
+ level?: LogLevel;
6177
+ timestamp?: Date;
6178
+ source?: string;
6179
+ meta?: Record<string, unknown>;
6180
+ }[]>;
6181
+ protected containerClasses: _angular_core.Signal<string>;
6182
+ /** Line counts per level for toolbar */
6183
+ protected levelCounts: _angular_core.Signal<{
6184
+ debug: number;
6185
+ info: number;
6186
+ warn: number;
6187
+ error: number;
6188
+ }>;
6189
+ constructor();
6190
+ ngAfterViewInit(): void;
6191
+ ngOnDestroy(): void;
6192
+ protected onScroll(): void;
6193
+ protected scrollToBottom(): void;
6194
+ protected togglePause(): void;
6195
+ protected clearBuffer(): void;
6196
+ protected onCopyAll(): Promise<void>;
6197
+ protected toggleSearch(): void;
6198
+ protected toggleLevelFilter(level: LogLevel): void;
6199
+ protected onLineClick(line: LogLine): void;
6200
+ protected onKeydown(event: KeyboardEvent): void;
6201
+ protected formatTimestamp(date?: Date): string;
6202
+ protected parseAnsi(text: string): string;
6203
+ protected highlightSearch(html: string): string;
6204
+ private escapeHtml;
6205
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LogViewerComponent, never>;
6206
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LogViewerComponent, "lc-log-viewer", never, { "lines": { "alias": "lines"; "required": false; "isSignal": true; }; "stream$": { "alias": "stream$"; "required": false; "isSignal": true; }; "maxLines": { "alias": "maxLines"; "required": false; "isSignal": true; }; "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "showTimestamps": { "alias": "showTimestamps"; "required": false; "isSignal": true; }; "showLineNumbers": { "alias": "showLineNumbers"; "required": false; "isSignal": true; }; "ansiColors": { "alias": "ansiColors"; "required": false; "isSignal": true; }; "levelFilter": { "alias": "levelFilter"; "required": false; "isSignal": true; }; "searchQuery": { "alias": "searchQuery"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "lineClick": "lineClick"; "copyAll": "copyAll"; "scrollStateChange": "scrollStateChange"; }, never, never, true, never>;
6207
+ }
6208
+
6209
+ type ConfirmDialogVariant = 'default' | 'destructive' | 'warning';
6210
+ interface RequireTextConfig {
6211
+ prompt: string;
6212
+ expected: string;
6213
+ }
6214
+ /**
6215
+ * Confirm dialog component for confirming user actions.
6216
+ *
6217
+ * Builds on `<lc-modal>` to provide a standardized confirmation pattern
6218
+ * with optional destructive variant and text-matching confirmation.
6219
+ *
6220
+ * @example
6221
+ * ```html
6222
+ * <lc-confirm-dialog
6223
+ * [open]="showConfirm()"
6224
+ * variant="destructive"
6225
+ * title="Delete project?"
6226
+ * message="This cannot be undone."
6227
+ * (confirmed)="onDelete()"
6228
+ * (cancelled)="showConfirm.set(false)"
6229
+ * />
6230
+ * ```
6231
+ */
6232
+ declare class ConfirmDialogComponent {
6233
+ confirmInput?: ElementRef<HTMLInputElement>;
6234
+ /** Whether the dialog is open */
6235
+ readonly open: _angular_core.InputSignal<boolean>;
6236
+ /** Dialog variant */
6237
+ readonly variant: _angular_core.InputSignal<ConfirmDialogVariant>;
6238
+ /** Dialog title */
6239
+ readonly title: _angular_core.InputSignal<string>;
6240
+ /** Dialog message */
6241
+ readonly message: _angular_core.InputSignal<string>;
6242
+ /** Confirm button label */
6243
+ readonly confirmLabel: _angular_core.InputSignal<string>;
6244
+ /** Cancel button label */
6245
+ readonly cancelLabel: _angular_core.InputSignal<string>;
6246
+ /** Icon name (auto-set by variant if not provided) */
6247
+ readonly icon: _angular_core.InputSignal<string | undefined>;
6248
+ /** Require text match to enable confirm */
6249
+ readonly requireText: _angular_core.InputSignal<RequireTextConfig | undefined>;
6250
+ /** Emitted when user confirms */
6251
+ readonly confirmed: _angular_core.OutputEmitterRef<void>;
6252
+ /** Emitted when user cancels */
6253
+ readonly cancelled: _angular_core.OutputEmitterRef<void>;
6254
+ /** Internal text input value */
6255
+ protected inputValue: _angular_core.WritableSignal<string>;
6256
+ /** Resolved icon name */
6257
+ protected resolvedIcon: _angular_core.Signal<string>;
6258
+ /** Resolved icon color */
6259
+ protected iconColor: _angular_core.Signal<"var(--color-error-default, #ef4444)" | "var(--color-warning-default, #f59e0b)" | "var(--color-primary-600, #2563eb)">;
6260
+ /** Confirm button variant */
6261
+ protected confirmButtonVariant: _angular_core.Signal<"primary" | "danger" | "warning">;
6262
+ /** Whether confirm is allowed (text match check) */
6263
+ protected confirmAllowed: _angular_core.Signal<boolean>;
6264
+ constructor();
6265
+ protected onConfirm(): void;
6266
+ protected onCancel(): void;
6267
+ protected onModalClose(): void;
6268
+ protected onInputChange(value: string | number): void;
6269
+ protected onKeydown(event: KeyboardEvent): void;
6270
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmDialogComponent, never>;
6271
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfirmDialogComponent, "lc-confirm-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "message": { "alias": "message"; "required": true; "isSignal": true; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "requireText": { "alias": "requireText"; "required": false; "isSignal": true; }; }, { "confirmed": "confirmed"; "cancelled": "cancelled"; }, never, never, true, never>;
6272
+ }
6273
+
6274
+ interface ConfirmOptions {
6275
+ title: string;
6276
+ message: string;
6277
+ confirmLabel?: string;
6278
+ cancelLabel?: string;
6279
+ variant?: ConfirmDialogVariant;
6280
+ icon?: string;
6281
+ requireText?: RequireTextConfig;
6282
+ }
6283
+ /**
6284
+ * Imperative confirm dialog service.
6285
+ *
6286
+ * @example
6287
+ * ```ts
6288
+ * const ok = await this.confirmService.confirm({
6289
+ * title: 'Delete item?',
6290
+ * message: 'This cannot be undone.',
6291
+ * });
6292
+ * if (ok) { ... }
6293
+ * ```
6294
+ */
6295
+ declare class ConfirmService {
6296
+ private readonly appRef;
6297
+ private readonly injector;
6298
+ /**
6299
+ * Show a confirmation dialog and return a promise that resolves
6300
+ * to true (confirmed) or false (cancelled).
6301
+ */
6302
+ confirm(opts: ConfirmOptions): Promise<boolean>;
6303
+ /**
6304
+ * Show a destructive confirmation dialog.
6305
+ * Shorthand for `confirm({ ...opts, variant: 'destructive' })`.
6306
+ */
6307
+ destructive(opts: Omit<ConfirmOptions, 'variant'>): Promise<boolean>;
6308
+ /**
6309
+ * Show a warning confirmation dialog.
6310
+ * Shorthand for `confirm({ ...opts, variant: 'warning' })`.
6311
+ */
6312
+ warning(opts: Omit<ConfirmOptions, 'variant'>): Promise<boolean>;
6313
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmService, never>;
6314
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ConfirmService>;
6315
+ }
6316
+
6317
+ interface ComboboxOption {
6318
+ value: string;
6319
+ label: string;
6320
+ description?: string;
6321
+ icon?: string;
6322
+ group?: string;
6323
+ disabled?: boolean;
6324
+ }
6325
+ type ComboboxValue = ComboboxOption | ComboboxOption[] | null;
6326
+ type ComboboxSize = 'xs' | 'sm' | 'md' | 'lg';
6327
+ /**
6328
+ * Combobox / async autocomplete component.
6329
+ *
6330
+ * Supports free-text input with sync/async option suggestions,
6331
+ * single/multiple selection, create new entries, and keyboard navigation.
6332
+ *
6333
+ * @example
6334
+ * ```html
6335
+ * <lc-combobox
6336
+ * label="Assign to user"
6337
+ * [loadOptions]="searchUsers"
6338
+ * [(value)]="assignee"
6339
+ * allowCreate
6340
+ * />
6341
+ * ```
6342
+ */
6343
+ declare class ComboboxComponent implements ControlValueAccessor, OnDestroy {
6344
+ inputEl?: ElementRef<HTMLInputElement>;
6345
+ private readonly elRef;
6346
+ private querySubject;
6347
+ private asyncSub?;
6348
+ /** Sync options */
6349
+ readonly options: _angular_core.InputSignal<ComboboxOption[]>;
6350
+ /** Async option loader */
6351
+ readonly loadOptions: _angular_core.InputSignal<((query: string) => Observable<ComboboxOption[]>) | undefined>;
6352
+ /** Debounce for async queries */
6353
+ readonly debounceMs: _angular_core.InputSignal<number>;
6354
+ /** Minimum characters before triggering search */
6355
+ readonly minChars: _angular_core.InputSignal<number>;
6356
+ /** Placeholder text */
6357
+ readonly placeholder: _angular_core.InputSignal<string>;
6358
+ /** Label */
6359
+ readonly label: _angular_core.InputSignal<string | undefined>;
6360
+ /** Helper text */
6361
+ readonly helperText: _angular_core.InputSignal<string | undefined>;
6362
+ /** Error message */
6363
+ readonly error: _angular_core.InputSignal<string | undefined>;
6364
+ /** Disabled state */
6365
+ readonly disabled: _angular_core.InputSignal<boolean>;
6366
+ /** Allow multiple selections */
6367
+ readonly multiple: _angular_core.InputSignal<boolean>;
6368
+ /** Allow creating new entries */
6369
+ readonly allowCreate: _angular_core.InputSignal<boolean>;
6370
+ /** Show loading spinner (controlled) */
6371
+ readonly loading: _angular_core.InputSignal<boolean>;
6372
+ /** Empty state message */
6373
+ readonly emptyMessage: _angular_core.InputSignal<string>;
6374
+ /** Size */
6375
+ readonly size: _angular_core.InputSignal<ComboboxSize>;
6376
+ /** Value change event */
6377
+ readonly valueChange: _angular_core.OutputEmitterRef<ComboboxValue>;
6378
+ /** Query change event */
6379
+ readonly queryChange: _angular_core.OutputEmitterRef<string>;
6380
+ /** Option selected event */
6381
+ readonly optionSelected: _angular_core.OutputEmitterRef<ComboboxOption>;
6382
+ /** Created event (allowCreate) */
6383
+ readonly created: _angular_core.OutputEmitterRef<string>;
6384
+ /** Internal state */
6385
+ protected query: _angular_core.WritableSignal<string>;
6386
+ protected isOpen: _angular_core.WritableSignal<boolean>;
6387
+ protected highlightedIndex: _angular_core.WritableSignal<number>;
6388
+ protected asyncOptions: _angular_core.WritableSignal<ComboboxOption[]>;
6389
+ protected isLoading: _angular_core.WritableSignal<boolean>;
6390
+ /** Selected values */
6391
+ protected selectedSingle: _angular_core.WritableSignal<ComboboxOption | null>;
6392
+ protected selectedMultiple: _angular_core.WritableSignal<ComboboxOption[]>;
6393
+ /** Resolved visible options */
6394
+ protected visibleOptions: _angular_core.Signal<ComboboxOption[]>;
6395
+ /** Grouped options */
6396
+ protected groupedOptions: _angular_core.Signal<{
6397
+ label: string;
6398
+ items: ComboboxOption[];
6399
+ }[]>;
6400
+ /** Flat list for keyboard nav */
6401
+ protected flatOptions: _angular_core.Signal<ComboboxOption[]>;
6402
+ /** Whether to show "Create" option */
6403
+ protected showCreateOption: _angular_core.Signal<boolean>;
6404
+ /** Container classes */
6405
+ protected containerClasses: _angular_core.Signal<string>;
6406
+ private onChange;
6407
+ private onTouched;
6408
+ constructor();
6409
+ ngOnDestroy(): void;
6410
+ writeValue(value: ComboboxValue): void;
6411
+ registerOnChange(fn: (value: ComboboxValue) => void): void;
6412
+ registerOnTouched(fn: () => void): void;
6413
+ setDisabledState(isDisabled: boolean): void;
6414
+ protected onInputChange(event: Event): void;
6415
+ protected onInputFocus(): void;
6416
+ protected onInputBlur(): void;
6417
+ protected onKeydown(event: KeyboardEvent): void;
6418
+ protected selectOption(option: ComboboxOption): void;
6419
+ protected removeSelected(option: ComboboxOption): void;
6420
+ protected onCreateNew(): void;
6421
+ protected onDocumentClick(event: MouseEvent): void;
6422
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ComboboxComponent, never>;
6423
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ComboboxComponent, "lc-combobox", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "loadOptions": { "alias": "loadOptions"; "required": false; "isSignal": true; }; "debounceMs": { "alias": "debounceMs"; "required": false; "isSignal": true; }; "minChars": { "alias": "minChars"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "allowCreate": { "alias": "allowCreate"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "queryChange": "queryChange"; "optionSelected": "optionSelected"; "created": "created"; }, never, never, true, never>;
6424
+ }
6425
+
6426
+ export { AccordionComponent, AlertComponent, AnimationDurationFast, AnimationEasingEaseIn, AnimationEasingEaseInOut, AnimationEasingEaseOut, AreaChartComponent, AvatarComponent, AvatarGroupComponent, BadgeComponent, BarChartComponent, BorderRadius2xl, BorderRadiusFull, BorderRadiusLg, BorderRadiusMd, BorderRadiusNone, BorderRadiusSm, BorderRadiusXl, BreadcrumbsComponent, ButtonComponent, CalendarComponent, CalloutComponent, CardComponent, ChatComponent, CheckboxComponent, ChipComponent, CodeBlockComponent, ColorAccentOrange, ColorAccentPurple, ColorAccentRed, ColorAccentRust, ColorAccentViolet, ColorErrorDark, ColorErrorDefault, ColorErrorLight, ColorInfoDark, ColorInfoDefault, ColorInfoLight, ColorNeutral100, ColorNeutral200, ColorNeutral300, ColorNeutral400, ColorNeutral50, ColorNeutral500, ColorNeutral600, ColorNeutral700, ColorNeutral800, ColorNeutral900, ColorPickerComponent, ColorPrimary100, ColorPrimary200, ColorPrimary300, ColorPrimary400, ColorPrimary50, ColorPrimary500, ColorPrimary600, ColorPrimary700, ColorPrimary800, ColorPrimary900, ColorSecondary100, ColorSecondary200, ColorSecondary300, ColorSecondary400, ColorSecondary50, ColorSecondary500, ColorSecondary600, ColorSecondary700, ColorSecondary800, ColorSecondary900, ColorSuccessDark, ColorSuccessDefault, ColorSuccessLight, ColorWarningDark, ColorWarningDefault, ColorWarningLight, ComboboxComponent, ConfirmDialogComponent, ConfirmService, ContainerComponent, DateRangePickerComponent, DatepickerComponent, DependencyViewerComponent, DiffViewerComponent, DividerComponent, DocumentViewerComponent, DonutChartComponent, DrawerComponent, Elevation1, Elevation2, Elevation3, Elevation4, EmailInputComponent, EmptyStateComponent, ErrorDisplayComponent, FieldGroupComponent, FileUploadComponent, FilterBarComponent, FooterComponent, FunnelChartComponent, GalleryComponent, GanttChartComponent, GaugeComponent, HeaderComponent, HeatmapComponent, HeroComponent, IconComponent, InputComponent, KanbanBoardComponent, LineChartComponent, ListComponent, ListItemTemplateDirective, LogViewerComponent, LogoComponent, MarkdownComponent, MenuComponent, ModalComponent, NotificationCenterComponent, NumberInputComponent, PaginationComponent, PasswordInputComponent, PieChartComponent, PopoverComponent, ProgressBarComponent, ProgressRingComponent, RadarChartComponent, RadioComponent, RatingComponent, RichTextEditorComponent, ScatterPlotComponent, SearchInputComponent, SectionComponent, SelectComponent, SidenavComponent, SizeInteractiveLgFontSize, SizeInteractiveLgHeight, SizeInteractiveLgPadding, SizeInteractiveMdFontSize, SizeInteractiveMdHeight, SizeInteractiveMdPadding, SizeInteractiveSmFontSize, SizeInteractiveSmHeight, SizeInteractiveSmPadding, SizeInteractiveXsFontSize, SizeInteractiveXsHeight, SizeInteractiveXsPadding, SizeMinTouchHeight, SizeMinTouchWidth, SkeletonComponent, SliderComponent, SpacerComponent, Spacing0, Spacing05, Spacing1, Spacing10, Spacing11, Spacing12, Spacing14, Spacing15, Spacing16, Spacing2, Spacing25, Spacing3, Spacing35, Spacing4, Spacing5, Spacing6, Spacing7, Spacing8, Spacing9, SparklineComponent, SpinnerComponent, StackComponent, StackedBarChartComponent, StatTrendComponent, StepperComponent, SwitchComponent, TabComponent, TableCellDirective, TableComponent, TabsComponent, TagInputComponent, TextareaComponent, ThemeService, TimelineComponent, ToastComponent, ToastService, ToggleGroupComponent, TooltipContentComponent, TooltipDirective, TypographyComponent, TypographyFontFamilyBase, TypographyFontFamilyMono, TypographyFontSize2xl, TypographyFontSize3xl, TypographyFontSize4xl, TypographyFontSize5xl, TypographyFontSize6xl, TypographyFontSizeBase, TypographyFontSizeLg, TypographyFontSizeSm, TypographyFontSizeXl, TypographyFontSizeXs, TypographyFontWeightBold, TypographyFontWeightMedium, TypographyFontWeightNormal, TypographyFontWeightSemibold, TypographyLineHeightNormal, TypographyLineHeightRelaxed, TypographyLineHeightTight, VerificationCodeInputComponent, WaterfallChartComponent };
6427
+ export type { AlertVariant, AreaChartSeries, AvatarGroupItem, AvatarSize, AvatarStatus, BadgeSize, BadgeVariant, BarChartItem, BarChartOrientation, BreadcrumbItem, BreadcrumbSize, ButtonSize, ButtonType, ButtonVariant, CalendarEvent, CalendarView, CalloutVariant, CellEditEvent, ChatMessage, ChatMessageRole, ChatSendEvent, CheckboxSize, ChipSize, ChipVariant, CodeBlockLanguage, ComboboxOption, ComboboxSize, ComboboxValue, ConfirmDialogVariant, ConfirmOptions, ContainerSize, DateRange, DateValue, DependencyDirection, DependencyEdgeDef, DependencyNode, DependencyNodeStatus, DependencyRelation, DiffViewMode, DividerOrientation, DividerSpacing, DividerVariant, DocumentType, DonutChartSize, DonutSegment, DrawerPosition, DrawerSize, EmptyStateSize, ErrorSeverity, FileUploadFile, FilterConfig, FilterOption, FilterValues, FooterLink, FooterSection, FooterVariant, FunnelStep, GalleryItem, GalleryLayout, GallerySize, GanttDependency, GanttTask, GaugeColor, GaugeSize, HeatmapCell, HeroColor, HeroSize, HeroVariant, IconSize, IconVariant, KanbanCard, KanbanColumn, KanbanLabel, KanbanMoveEvent, LineChartSeries, ListItem, ListOrientation, ListSize, ListVariant, LogLevel, LogLine, LogViewerVariant, MarkdownHeading, MarkdownLinkClick, MarkdownRendered, MenuItem, ModalSize, NavigationItem, Notification, NotificationPriority, NotificationType, PaginationSize, PasswordRequirement, PasswordStrength, PieChartSize, PieSegment, PopoverPosition, PopoverTrigger, ProgressBarColor, ProgressBarSize, ProgressBarVariant, ProgressRingColor, ProgressRingSize, RadarChartSeries, RadioSize, RatingSize, RenderPart, RequireTextConfig, RichTextEditorMode, ScatterPoint, ScatterSeries, SearchInputSize, SectionBackground, SectionSpacing, SelectOption, SelectOptionGroup, SelectValue, SelectionChangeEvent, SidenavMode, SidenavPosition, SkeletonVariant, SortEvent, SpacerSize, SparklineColor, SparklineCurve, SpinnerSize, StackAlign, StackDirection, StackGap, StackJustify, StackedBarCategory, StackedBarLegend, StackedBarOrientation, StatTrendDirection, StepState, StepperStep, TabOrientation, TableColumn, TableSize, TableVariant, ThemeConfig, ThemeMode, ThemeState, TimelineItem, TimelineOrientation, Toast, ToastAction, ToastConfig, ToastPosition, ToastVariant, ToggleOption, ToolbarAction, ToolbarConfig, TooltipPosition, WaterfallItem };