cerxos-ui 0.0.3 → 0.0.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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, OnDestroy, ElementRef, Renderer2 } from '@angular/core';
2
+ import { EventEmitter, OnChanges, AfterViewInit, OnDestroy, SimpleChanges, TemplateRef, ElementRef, Renderer2 } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
 
5
5
  declare class CerxosUi {
@@ -22,6 +22,33 @@ declare class CxsAlertComponent {
22
22
  static ɵcmp: i0.ɵɵComponentDeclaration<CxsAlertComponent, "cxs-alert", never, { "variant": { "alias": "variant"; "required": false; }; "title": { "alias": "title"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
23
23
  }
24
24
 
25
+ type CxsAccordionSpacing = 'sm' | 'md' | 'lg';
26
+ declare class CxsAccordionComponent {
27
+ spacing: CxsAccordionSpacing;
28
+ get accordionClass(): string;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsAccordionComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsAccordionComponent, "cxs-accordion", never, { "spacing": { "alias": "spacing"; "required": false; }; }, {}, never, ["*"], true, never>;
31
+ }
32
+
33
+ type CxsAccordionItemSize = 'sm' | 'md' | 'lg';
34
+ declare class CxsAccordionItemComponent {
35
+ private static nextId;
36
+ title?: string;
37
+ expanded: boolean;
38
+ disabled: boolean;
39
+ size: CxsAccordionItemSize;
40
+ expandedChange: EventEmitter<boolean>;
41
+ readonly buttonId: string;
42
+ readonly contentId: string;
43
+ get itemClass(): string;
44
+ get headerClass(): string;
45
+ get contentClass(): string;
46
+ get iconClass(): string;
47
+ toggle(): void;
48
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsAccordionItemComponent, never>;
49
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsAccordionItemComponent, "cxs-accordion-item", never, { "title": { "alias": "title"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "expandedChange": "expandedChange"; }, never, ["[cxsAccordionTitle]", "*"], true, never>;
50
+ }
51
+
25
52
  type CxsBadgeVariant = 'primary' | 'neutral' | 'danger';
26
53
  type CxsBadgeSize = 'sm' | 'md';
27
54
  declare class CxsBadgeComponent {
@@ -32,6 +59,31 @@ declare class CxsBadgeComponent {
32
59
  static ɵcmp: i0.ɵɵComponentDeclaration<CxsBadgeComponent, "cxs-badge", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, ["*"], true, never>;
33
60
  }
34
61
 
62
+ type CxsAvatarSize = 'sm' | 'md' | 'lg';
63
+ type CxsAvatarShape = 'circle' | 'square';
64
+ declare class CxsAvatarComponent {
65
+ private readonly hostClass;
66
+ private _src?;
67
+ set src(value: string | undefined);
68
+ get src(): string | undefined;
69
+ name?: string;
70
+ alt?: string;
71
+ size: CxsAvatarSize;
72
+ shape: CxsAvatarShape;
73
+ imageError: boolean;
74
+ constructor(hostClass: string | null);
75
+ get avatarClass(): string;
76
+ get fallbackClass(): string;
77
+ get altText(): string;
78
+ get fallbackLabel(): string;
79
+ get fallbackText(): string;
80
+ get showImage(): boolean;
81
+ onImageError(): void;
82
+ private getInitials;
83
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsAvatarComponent, [{ attribute: "class"; }]>;
84
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsAvatarComponent, "cxs-avatar", never, { "src": { "alias": "src"; "required": false; }; "name": { "alias": "name"; "required": false; }; "alt": { "alias": "alt"; "required": false; }; "size": { "alias": "size"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; }, {}, never, never, true, never>;
85
+ }
86
+
35
87
  type CxsBreadcrumbSize = 'sm' | 'md' | 'lg';
36
88
  type CxsBreadcrumbVariant = 'default' | 'muted';
37
89
  interface CxsBreadcrumbItem {
@@ -73,7 +125,7 @@ declare class CxsButtonComponent {
73
125
  get isDisabled(): boolean;
74
126
  get buttonClass(): string;
75
127
  static ɵfac: i0.ɵɵFactoryDeclaration<CxsButtonComponent, [{ attribute: "class"; }]>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<CxsButtonComponent, "cxs-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, ["*"], true, never>;
128
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsButtonComponent, "cxs-button", never, { "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "type": { "alias": "type"; "required": false; }; }, {}, never, ["[cxsButtonIcon]", "*"], true, never>;
77
129
  }
78
130
 
79
131
  type CxsCardVariant = 'surface' | 'muted' | 'outline';
@@ -121,6 +173,250 @@ declare class CxsCheckboxComponent implements ControlValueAccessor {
121
173
  static ɵcmp: i0.ɵɵComponentDeclaration<CxsCheckboxComponent, "cxs-checkbox", never, { "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>;
122
174
  }
123
175
 
176
+ interface CxsCarouselItem {
177
+ title?: string;
178
+ description?: string;
179
+ image?: string;
180
+ alt?: string;
181
+ }
182
+ declare class CxsCarouselComponent implements OnChanges, AfterViewInit, OnDestroy {
183
+ private readonly hostClass;
184
+ items: CxsCarouselItem[];
185
+ activeIndex: number;
186
+ autoplay: boolean;
187
+ interval: number;
188
+ loop: boolean;
189
+ showControls: boolean;
190
+ showIndicators: boolean;
191
+ ariaLabel: string;
192
+ activeIndexChange: EventEmitter<number>;
193
+ private timerId;
194
+ constructor(hostClass: string | null);
195
+ ngOnChanges(changes: SimpleChanges): void;
196
+ ngAfterViewInit(): void;
197
+ ngOnDestroy(): void;
198
+ get wrapperClass(): string;
199
+ get trackStyle(): string;
200
+ get trackClass(): string;
201
+ get slideClass(): string;
202
+ get imageClass(): string;
203
+ get contentClass(): string;
204
+ get controlClass(): string;
205
+ get indicatorContainerClass(): string;
206
+ indicatorClass(isActive: boolean): string;
207
+ previous(): void;
208
+ next(): void;
209
+ goTo(index: number): void;
210
+ private normalizeIndex;
211
+ private clampIndex;
212
+ private resetAutoplay;
213
+ private clearAutoplay;
214
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsCarouselComponent, [{ attribute: "class"; }]>;
215
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsCarouselComponent, "cxs-carousel", never, { "items": { "alias": "items"; "required": false; }; "activeIndex": { "alias": "activeIndex"; "required": false; }; "autoplay": { "alias": "autoplay"; "required": false; }; "interval": { "alias": "interval"; "required": false; }; "loop": { "alias": "loop"; "required": false; }; "showControls": { "alias": "showControls"; "required": false; }; "showIndicators": { "alias": "showIndicators"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "activeIndexChange": "activeIndexChange"; }, never, never, true, never>;
216
+ }
217
+
218
+ type CxsDataTableAlign = 'left' | 'center' | 'right';
219
+ type CxsDataTableSortDirection = 'asc' | 'desc';
220
+ type CxsDataTableFilterType = 'text' | 'select' | 'number';
221
+ type CxsDataTablePin = 'left' | 'right';
222
+ interface CxsDataTableColumn {
223
+ key: string;
224
+ label: string;
225
+ align?: CxsDataTableAlign;
226
+ width?: string;
227
+ sortable?: boolean;
228
+ filterable?: boolean;
229
+ filterType?: CxsDataTableFilterType;
230
+ filterOptions?: Array<{
231
+ label: string;
232
+ value: string;
233
+ }>;
234
+ resizable?: boolean;
235
+ pinned?: CxsDataTablePin;
236
+ visible?: boolean;
237
+ minWidth?: number;
238
+ headerClass?: string;
239
+ cellClass?: string;
240
+ formatter?: (value: unknown, row: Record<string, unknown>) => string;
241
+ }
242
+ interface CxsDataTableSort {
243
+ key: string;
244
+ direction: CxsDataTableSortDirection;
245
+ }
246
+ declare class CxsDataTableComponent implements OnChanges {
247
+ private readonly hostClass;
248
+ columns: CxsDataTableColumn[];
249
+ data: Array<Record<string, unknown>>;
250
+ caption?: string;
251
+ ariaLabel: string;
252
+ striped: boolean;
253
+ bordered: boolean;
254
+ compact: boolean;
255
+ loading: boolean;
256
+ emptyMessage: string;
257
+ emptyCell: string;
258
+ pageSize: number;
259
+ pageIndex: number;
260
+ pageSizeOptions: number[];
261
+ showPagination: boolean;
262
+ showPageSize: boolean;
263
+ manualPagination: boolean;
264
+ total?: number;
265
+ sortKey?: string;
266
+ sortDirection: CxsDataTableSortDirection;
267
+ manualSort: boolean;
268
+ showToolbar: boolean;
269
+ showFilters: boolean;
270
+ showColumnVisibility: boolean;
271
+ showGlobalSearch: boolean;
272
+ manualFilter: boolean;
273
+ selectable: boolean;
274
+ rowKey: string;
275
+ selectedKeys: Array<string | number>;
276
+ bulkActions: Array<{
277
+ id: string;
278
+ label: string;
279
+ }>;
280
+ pageChange: EventEmitter<number>;
281
+ pageSizeChange: EventEmitter<number>;
282
+ sortChange: EventEmitter<CxsDataTableSort>;
283
+ filterChange: EventEmitter<{
284
+ global: string;
285
+ columns: Record<string, string>;
286
+ }>;
287
+ selectionChange: EventEmitter<(string | number)[]>;
288
+ bulkAction: EventEmitter<{
289
+ id: string;
290
+ selected: Array<Record<string, unknown>>;
291
+ }>;
292
+ private readonly cellTemplates?;
293
+ protected currentPage: number;
294
+ protected currentPageSize: number;
295
+ protected globalFilter: string;
296
+ protected columnFilters: Record<string, string>;
297
+ protected columnVisibility: Record<string, boolean>;
298
+ protected columnWidths: Record<string, string>;
299
+ protected isResizing: boolean;
300
+ protected resizingColumn?: string;
301
+ protected pinnedOffsetsLeft: Record<string, number>;
302
+ protected pinnedOffsetsRight: Record<string, number>;
303
+ protected filtersOpen: boolean;
304
+ private resizeStartX;
305
+ private resizeStartWidth;
306
+ constructor(hostClass: string | null);
307
+ ngOnChanges(changes: SimpleChanges): void;
308
+ get wrapperClass(): string;
309
+ get tableClass(): string;
310
+ get headerRowClass(): string;
311
+ get bodyRowClass(): string;
312
+ get emptyRowClass(): string;
313
+ get paginationClass(): string;
314
+ get pageButtonClass(): string;
315
+ get pageSelectClass(): string;
316
+ get toolbarClass(): string;
317
+ get toolbarGroupClass(): string;
318
+ get toolbarInputClass(): string;
319
+ get toolbarButtonClass(): string;
320
+ get bulkBarClass(): string;
321
+ get resizeHandleClass(): string;
322
+ get colSpan(): number;
323
+ get totalItems(): number;
324
+ get totalPages(): number;
325
+ get pageLabel(): string;
326
+ get displayRows(): Array<Record<string, unknown>>;
327
+ get visibleColumns(): CxsDataTableColumn[];
328
+ get selectedCount(): number;
329
+ get allVisibleSelected(): boolean;
330
+ get someVisibleSelected(): boolean;
331
+ headerCellClass(column: CxsDataTableColumn): string;
332
+ headerButtonClass(): string;
333
+ headerFilterInputClass(): string;
334
+ bodyCellClass(column: CxsDataTableColumn): string;
335
+ cellTemplate(columnKey: string): TemplateRef<CxsDataTableCellContext> | null;
336
+ cellValue(row: Record<string, unknown>, column: CxsDataTableColumn): string;
337
+ columnWidth(column: CxsDataTableColumn): string | null;
338
+ columnMinWidth(column: CxsDataTableColumn): string | null;
339
+ pinnedStyle(column: CxsDataTableColumn): Record<string, string> | null;
340
+ pinnedLeft(column: CxsDataTableColumn): string | null;
341
+ pinnedRight(column: CxsDataTableColumn): string | null;
342
+ pinnedClass(column: CxsDataTableColumn): string;
343
+ ariaSort(column: CxsDataTableColumn): 'ascending' | 'descending' | 'none' | null;
344
+ onSort(column: CxsDataTableColumn): void;
345
+ goToPage(page: number): void;
346
+ nextPage(): void;
347
+ previousPage(): void;
348
+ onPageSizeChange(value: string): void;
349
+ onGlobalFilterChange(value: string): void;
350
+ onColumnFilterChange(columnKey: string, value: string): void;
351
+ columnFilterValue(columnKey: string): string;
352
+ toggleColumnVisibility(columnKey: string): void;
353
+ toggleSelectAll(): void;
354
+ toggleRowSelection(row: Record<string, unknown>): void;
355
+ isSelected(row: Record<string, unknown>): boolean;
356
+ runBulkAction(actionId: string): void;
357
+ onResizeStart(event: MouseEvent, column: CxsDataTableColumn): void;
358
+ private getSortedData;
359
+ private getFilteredData;
360
+ private emitFilterChange;
361
+ private initializeVisibility;
362
+ private initializeWidths;
363
+ private updatePinnedOffsets;
364
+ private getWidthValue;
365
+ private rowIdentifier;
366
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsDataTableComponent, [{ attribute: "class"; }]>;
367
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsDataTableComponent, "cxs-data-table", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "striped": { "alias": "striped"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "emptyCell": { "alias": "emptyCell"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "pageIndex": { "alias": "pageIndex"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "showPagination": { "alias": "showPagination"; "required": false; }; "showPageSize": { "alias": "showPageSize"; "required": false; }; "manualPagination": { "alias": "manualPagination"; "required": false; }; "total": { "alias": "total"; "required": false; }; "sortKey": { "alias": "sortKey"; "required": false; }; "sortDirection": { "alias": "sortDirection"; "required": false; }; "manualSort": { "alias": "manualSort"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "showFilters": { "alias": "showFilters"; "required": false; }; "showColumnVisibility": { "alias": "showColumnVisibility"; "required": false; }; "showGlobalSearch": { "alias": "showGlobalSearch"; "required": false; }; "manualFilter": { "alias": "manualFilter"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "rowKey": { "alias": "rowKey"; "required": false; }; "selectedKeys": { "alias": "selectedKeys"; "required": false; }; "bulkActions": { "alias": "bulkActions"; "required": false; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; "sortChange": "sortChange"; "filterChange": "filterChange"; "selectionChange": "selectionChange"; "bulkAction": "bulkAction"; }, ["cellTemplates"], never, true, never>;
368
+ }
369
+
370
+ interface CxsDataTableCellContext {
371
+ $implicit: Record<string, unknown>;
372
+ value: unknown;
373
+ column: CxsDataTableColumn;
374
+ }
375
+ declare class CxsDataTableCellDirective {
376
+ readonly template: TemplateRef<CxsDataTableCellContext>;
377
+ columnKey: string;
378
+ constructor(template: TemplateRef<CxsDataTableCellContext>);
379
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsDataTableCellDirective, never>;
380
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CxsDataTableCellDirective, "[cxsDataTableCell]", never, { "columnKey": { "alias": "cxsDataTableCell"; "required": false; }; }, {}, never, never, true, never>;
381
+ }
382
+
383
+ type CxsDialogSize = 'sm' | 'md' | 'lg';
384
+ type CxsDialogCloseReason = 'dismiss' | 'backdrop' | 'escape';
385
+ declare class CxsDialogComponent implements OnChanges, AfterViewInit {
386
+ private readonly hostClass;
387
+ private static nextId;
388
+ open: boolean;
389
+ title?: string;
390
+ description?: string;
391
+ ariaLabel: string;
392
+ size: CxsDialogSize;
393
+ dismissible: boolean;
394
+ closeOnBackdrop: boolean;
395
+ closeOnEscape: boolean;
396
+ openChange: EventEmitter<boolean>;
397
+ closed: EventEmitter<CxsDialogCloseReason>;
398
+ private readonly dialogPanel?;
399
+ readonly titleId: string;
400
+ readonly descriptionId: string;
401
+ constructor(hostClass: string | null);
402
+ ngOnChanges(changes: SimpleChanges): void;
403
+ ngAfterViewInit(): void;
404
+ get overlayClass(): string;
405
+ get panelClass(): string;
406
+ get titleClass(): string;
407
+ get descriptionClass(): string;
408
+ get bodyClass(): string;
409
+ get actionsClass(): string;
410
+ get closeButtonClass(): string;
411
+ get ariaLabelValue(): string | null;
412
+ requestClose(reason: CxsDialogCloseReason): void;
413
+ onBackdropClick(event: MouseEvent): void;
414
+ onKeydown(event: KeyboardEvent): void;
415
+ private focusPanelSoon;
416
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsDialogComponent, [{ attribute: "class"; }]>;
417
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsDialogComponent, "cxs-dialog", never, { "open": { "alias": "open"; "required": false; }; "title": { "alias": "title"; "required": false; }; "description": { "alias": "description"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; }; }, { "openChange": "openChange"; "closed": "closed"; }, never, ["*", "[cxsDialogActions]"], true, never>;
418
+ }
419
+
124
420
  type CxsDatepickerVariant = 'outline' | 'filled';
125
421
  type CxsDatepickerSize = 'sm' | 'md' | 'lg';
126
422
  type CxsCalendarDay = {
@@ -158,12 +454,18 @@ declare class CxsDatepickerComponent implements ControlValueAccessor {
158
454
  displayMonth: Date;
159
455
  calendarDays: CxsCalendarDay[];
160
456
  readonly weekDayLabels: string[];
457
+ readonly monthOptions: {
458
+ value: number;
459
+ label: string;
460
+ }[];
161
461
  get isDisabled(): boolean;
162
462
  get panelId(): string;
163
463
  get inputClass(): string;
164
464
  get popoverClass(): string;
165
465
  get navButtonClass(): string;
466
+ get selectClass(): string;
166
467
  get displayMonthLabel(): string;
468
+ get yearOptions(): number[];
167
469
  writeValue(value: string | null): void;
168
470
  registerOnChange(fn: (value: string) => void): void;
169
471
  registerOnTouched(fn: () => void): void;
@@ -175,6 +477,8 @@ declare class CxsDatepickerComponent implements ControlValueAccessor {
175
477
  toggle(): void;
176
478
  prevMonth(): void;
177
479
  nextMonth(): void;
480
+ onMonthChange(event: Event): void;
481
+ onYearChange(event: Event): void;
178
482
  dayButtonClass(day: CxsCalendarDay): string;
179
483
  onDocumentClick(event: MouseEvent): void;
180
484
  onEscape(): void;
@@ -225,6 +529,39 @@ declare class CxsInputComponent implements ControlValueAccessor {
225
529
  static ɵcmp: i0.ɵɵComponentDeclaration<CxsInputComponent, "cxs-input", never, { "value": { "alias": "value"; "required": false; }; "type": { "alias": "type"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "inputmode": { "alias": "inputmode"; "required": false; }; "spellcheck": { "alias": "spellcheck"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
226
530
  }
227
531
 
532
+ type CxsMenubarSize = 'sm' | 'md' | 'lg';
533
+ type CxsMenubarVariant = 'default' | 'surface';
534
+ interface CxsMenubarItem {
535
+ label: string;
536
+ href?: string;
537
+ target?: string;
538
+ rel?: string;
539
+ ariaLabel?: string;
540
+ disabled?: boolean;
541
+ active?: boolean;
542
+ }
543
+ declare class CxsMenubarComponent {
544
+ private readonly hostClass;
545
+ items: CxsMenubarItem[];
546
+ ariaLabel: string;
547
+ size: CxsMenubarSize;
548
+ variant: CxsMenubarVariant;
549
+ disabled: boolean;
550
+ itemSelected: EventEmitter<CxsMenubarItem>;
551
+ private readonly menuItems?;
552
+ constructor(hostClass: string | null);
553
+ get menubarClass(): string;
554
+ isItemDisabled(item: CxsMenubarItem): boolean;
555
+ getItemClass(item: CxsMenubarItem): string;
556
+ getItemHref(item: CxsMenubarItem): string | null;
557
+ getItemRel(item: CxsMenubarItem): string | null;
558
+ onItemClick(item: CxsMenubarItem, event: Event): void;
559
+ onKeydown(event: KeyboardEvent): void;
560
+ private getFocusableItems;
561
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsMenubarComponent, [{ attribute: "class"; }]>;
562
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsMenubarComponent, "cxs-menubar", never, { "items": { "alias": "items"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "itemSelected": "itemSelected"; }, never, never, true, never>;
563
+ }
564
+
228
565
  type CxsRadioSize = 'sm' | 'md' | 'lg';
229
566
  type CxsRadioVariant = 'primary' | 'secondary';
230
567
  declare class CxsRadioComponent implements ControlValueAccessor {
@@ -291,6 +628,119 @@ declare class CxsSelectComponent implements ControlValueAccessor {
291
628
  static ɵcmp: i0.ɵɵComponentDeclaration<CxsSelectComponent, "cxs-select", never, { "value": { "alias": "value"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "placeholderValue": { "alias": "placeholderValue"; "required": false; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaDescribedby": { "alias": "ariaDescribedby"; "required": false; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>;
292
629
  }
293
630
 
631
+ type CxsTableAlign = 'left' | 'center' | 'right';
632
+ interface CxsTableColumn {
633
+ key: string;
634
+ label: string;
635
+ align?: CxsTableAlign;
636
+ width?: string;
637
+ headerClass?: string;
638
+ cellClass?: string;
639
+ }
640
+ declare class CxsTableComponent {
641
+ private readonly hostClass;
642
+ columns: CxsTableColumn[];
643
+ data: Array<Record<string, unknown>>;
644
+ caption?: string;
645
+ ariaLabel: string;
646
+ striped: boolean;
647
+ bordered: boolean;
648
+ compact: boolean;
649
+ emptyMessage: string;
650
+ emptyCell: string;
651
+ constructor(hostClass: string | null);
652
+ get wrapperClass(): string;
653
+ get tableClass(): string;
654
+ get headerRowClass(): string;
655
+ get bodyRowClass(): string;
656
+ get emptyRowClass(): string;
657
+ get colSpan(): number;
658
+ headerCellClass(column: CxsTableColumn): string;
659
+ bodyCellClass(column: CxsTableColumn): string;
660
+ cellValue(row: Record<string, unknown>, column: CxsTableColumn): string;
661
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsTableComponent, [{ attribute: "class"; }]>;
662
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsTableComponent, "cxs-table", never, { "columns": { "alias": "columns"; "required": false; }; "data": { "alias": "data"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "striped": { "alias": "striped"; "required": false; }; "bordered": { "alias": "bordered"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "emptyCell": { "alias": "emptyCell"; "required": false; }; }, {}, never, never, true, never>;
663
+ }
664
+
665
+ type CxsToggleSize = 'sm' | 'md' | 'lg';
666
+ declare class CxsToggleComponent {
667
+ private static nextId;
668
+ checked: boolean;
669
+ disabled: boolean;
670
+ size: CxsToggleSize;
671
+ label?: string;
672
+ ariaLabel: string;
673
+ checkedChange: EventEmitter<boolean>;
674
+ readonly labelId: string;
675
+ get wrapperClass(): string;
676
+ get labelClass(): string;
677
+ get trackClass(): string;
678
+ get thumbClass(): string;
679
+ get ariaLabelValue(): string | null;
680
+ toggle(): void;
681
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsToggleComponent, never>;
682
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsToggleComponent, "cxs-toggle", never, { "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "label": { "alias": "label"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
683
+ }
684
+
685
+ type CxsToastVariant = 'info' | 'neutral' | 'danger';
686
+ type CxsToastCloseReason = 'dismiss' | 'timeout';
687
+ type CxsToastPosition = 'bottom-right' | 'bottom' | 'bottom-left' | 'top-right' | 'top' | 'top-left' | 'right' | 'left' | 'center';
688
+ type CxsToastMaxWidth = 'sm' | 'md' | 'lg' | 'xl' | 'none';
689
+ declare class CxsToastComponent implements OnChanges, OnDestroy {
690
+ private readonly hostClass;
691
+ open: boolean;
692
+ title?: string;
693
+ message?: string;
694
+ ariaLabel: string;
695
+ variant: CxsToastVariant;
696
+ dismissible: boolean;
697
+ duration: number;
698
+ position: CxsToastPosition;
699
+ maxWidth: CxsToastMaxWidth;
700
+ openChange: EventEmitter<boolean>;
701
+ dismissed: EventEmitter<CxsToastCloseReason>;
702
+ private timeoutId;
703
+ constructor(hostClass: string | null);
704
+ ngOnChanges(changes: SimpleChanges): void;
705
+ ngOnDestroy(): void;
706
+ get hostClassName(): string;
707
+ get toastClass(): string;
708
+ get titleClass(): string;
709
+ get messageClass(): string;
710
+ get actionsClass(): string;
711
+ get closeButtonClass(): string;
712
+ get role(): 'status' | 'alert';
713
+ get ariaLive(): 'polite' | 'assertive';
714
+ get ariaLabelValue(): string | null;
715
+ requestClose(reason: CxsToastCloseReason): void;
716
+ private resetTimer;
717
+ private clearTimer;
718
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsToastComponent, [{ attribute: "class"; }]>;
719
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsToastComponent, "cxs-toast", never, { "open": { "alias": "open"; "required": false; }; "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; "duration": { "alias": "duration"; "required": false; }; "position": { "alias": "position"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; }, { "openChange": "openChange"; "dismissed": "dismissed"; }, never, ["*", "[cxsToastAction]"], true, never>;
720
+ }
721
+
722
+ type CxsTooltipPosition = 'top' | 'right' | 'bottom' | 'left';
723
+ declare class CxsTooltipComponent {
724
+ private static nextId;
725
+ text: string;
726
+ position: CxsTooltipPosition;
727
+ disabled: boolean;
728
+ open: boolean;
729
+ readonly tooltipId: string;
730
+ get wrapperClass(): string;
731
+ get tooltipClass(): string;
732
+ get describedBy(): string | null;
733
+ show(): void;
734
+ hide(): void;
735
+ onMouseEnter(): void;
736
+ onMouseLeave(): void;
737
+ onFocusIn(): void;
738
+ onFocusOut(): void;
739
+ onKeydown(event: KeyboardEvent): void;
740
+ static ɵfac: i0.ɵɵFactoryDeclaration<CxsTooltipComponent, never>;
741
+ static ɵcmp: i0.ɵɵComponentDeclaration<CxsTooltipComponent, "cxs-tooltip", never, { "text": { "alias": "text"; "required": false; }; "position": { "alias": "position"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, ["*"], true, never>;
742
+ }
743
+
294
744
  type CxsThemeMode = 'light' | 'dark' | 'system';
295
745
  declare class CxsThemeDirective implements OnDestroy {
296
746
  private readonly host;
@@ -311,5 +761,5 @@ declare class CxsThemeDirective implements OnDestroy {
311
761
  static ɵdir: i0.ɵɵDirectiveDeclaration<CxsThemeDirective, "[cxsTheme]", never, { "cxsTheme": { "alias": "cxsTheme"; "required": false; }; "cxsThemeDarkClass": { "alias": "cxsThemeDarkClass"; "required": false; }; }, {}, never, never, true, never>;
312
762
  }
313
763
 
314
- export { CerxosUi, CxsAlertComponent, CxsBadgeComponent, CxsBreadcrumbComponent, CxsButtonComponent, CxsCardComponent, CxsCheckboxComponent, CxsDatepickerComponent, CxsInputComponent, CxsRadioComponent, CxsSelectComponent, CxsThemeDirective };
315
- export type { CxsAlertVariant, CxsBadgeSize, CxsBadgeVariant, CxsBreadcrumbItem, CxsBreadcrumbSize, CxsBreadcrumbVariant, CxsButtonSize, CxsButtonVariant, CxsCardSize, CxsCardVariant, CxsCheckboxSize, CxsDatepickerSize, CxsDatepickerVariant, CxsInputSize, CxsInputType, CxsInputVariant, CxsRadioSize, CxsRadioVariant, CxsSelectSize, CxsSelectVariant, CxsThemeMode };
764
+ export { CerxosUi, CxsAccordionComponent, CxsAccordionItemComponent, CxsAlertComponent, CxsAvatarComponent, CxsBadgeComponent, CxsBreadcrumbComponent, CxsButtonComponent, CxsCardComponent, CxsCarouselComponent, CxsCheckboxComponent, CxsDataTableCellDirective, CxsDataTableComponent, CxsDatepickerComponent, CxsDialogComponent, CxsInputComponent, CxsMenubarComponent, CxsRadioComponent, CxsSelectComponent, CxsTableComponent, CxsThemeDirective, CxsToastComponent, CxsToggleComponent, CxsTooltipComponent };
765
+ export type { CxsAccordionItemSize, CxsAccordionSpacing, CxsAlertVariant, CxsAvatarShape, CxsAvatarSize, CxsBadgeSize, CxsBadgeVariant, CxsBreadcrumbItem, CxsBreadcrumbSize, CxsBreadcrumbVariant, CxsButtonSize, CxsButtonVariant, CxsCardSize, CxsCardVariant, CxsCarouselItem, CxsCheckboxSize, CxsDataTableAlign, CxsDataTableCellContext, CxsDataTableColumn, CxsDataTableFilterType, CxsDataTablePin, CxsDataTableSort, CxsDataTableSortDirection, CxsDatepickerSize, CxsDatepickerVariant, CxsDialogCloseReason, CxsDialogSize, CxsInputSize, CxsInputType, CxsInputVariant, CxsMenubarItem, CxsMenubarSize, CxsMenubarVariant, CxsRadioSize, CxsRadioVariant, CxsSelectSize, CxsSelectVariant, CxsTableAlign, CxsTableColumn, CxsThemeMode, CxsToastCloseReason, CxsToastMaxWidth, CxsToastPosition, CxsToastVariant, CxsToggleSize, CxsTooltipPosition };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cerxos-ui",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.3.0",
6
6
  "@angular/core": "^20.3.0"
@@ -1,3 +1,3 @@
1
- @import "../tokens/theme-default.css";
2
- @import "../tokens/theme-dark.css";
3
- @import "tailwindcss";
1
+ @import "../tokens/theme-default.css";
2
+ @import "../tokens/theme-dark.css";
3
+ @import "tailwindcss";
@@ -1,16 +1,16 @@
1
- .cxs-theme-dark {
2
- color-scheme: dark;
3
- --cxs-color-primary: #22c55e;
4
- --cxs-color-primary-hover: #16a34a;
5
- --cxs-color-primary-ghost: rgba(34, 197, 94, 0.16);
6
- --cxs-color-on-primary: #0b0f0e;
7
- --cxs-color-surface: #0b0f0e;
8
- --cxs-color-surface-hover: #111827;
9
- --cxs-color-on-surface: #e2e8f0;
10
- --cxs-color-on-surface-muted: #94a3b8;
11
- --cxs-color-border: #1f2937;
12
- --cxs-color-danger: #f87171;
13
- --cxs-color-focus: #f59e0b;
14
- --cxs-radius-md: 8px;
15
- --cxs-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
16
- }
1
+ .cxs-theme-dark {
2
+ color-scheme: dark;
3
+ --cxs-color-primary: #22c55e;
4
+ --cxs-color-primary-hover: #16a34a;
5
+ --cxs-color-primary-ghost: rgba(34, 197, 94, 0.16);
6
+ --cxs-color-on-primary: #0b0f0e;
7
+ --cxs-color-surface: #0b0f0e;
8
+ --cxs-color-surface-hover: #111827;
9
+ --cxs-color-on-surface: #e2e8f0;
10
+ --cxs-color-on-surface-muted: #94a3b8;
11
+ --cxs-color-border: #1f2937;
12
+ --cxs-color-danger: #f87171;
13
+ --cxs-color-focus: #f59e0b;
14
+ --cxs-radius-md: 8px;
15
+ --cxs-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
16
+ }
@@ -1,15 +1,15 @@
1
- :root {
2
- --cxs-color-primary: #1f7a4a;
3
- --cxs-color-primary-hover: #17613a;
4
- --cxs-color-primary-ghost: rgba(31, 122, 74, 0.12);
5
- --cxs-color-on-primary: #ffffff;
6
- --cxs-color-surface: #ffffff;
7
- --cxs-color-surface-hover: #f6f8fa;
8
- --cxs-color-on-surface: #0f172a;
9
- --cxs-color-on-surface-muted: #64748b;
10
- --cxs-color-border: #d0d7de;
11
- --cxs-color-danger: #dc2626;
12
- --cxs-color-focus: #f59e0b;
13
- --cxs-radius-md: 8px;
14
- --cxs-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.16);
15
- }
1
+ :root {
2
+ --cxs-color-primary: #1f7a4a;
3
+ --cxs-color-primary-hover: #17613a;
4
+ --cxs-color-primary-ghost: rgba(31, 122, 74, 0.12);
5
+ --cxs-color-on-primary: #ffffff;
6
+ --cxs-color-surface: #ffffff;
7
+ --cxs-color-surface-hover: #f6f8fa;
8
+ --cxs-color-on-surface: #0f172a;
9
+ --cxs-color-on-surface-muted: #64748b;
10
+ --cxs-color-border: #d0d7de;
11
+ --cxs-color-danger: #dc2626;
12
+ --cxs-color-focus: #f59e0b;
13
+ --cxs-radius-md: 8px;
14
+ --cxs-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.16);
15
+ }