@colletdev/angular 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +60 -0
  2. package/package.json +43 -0
  3. package/src/accordion.component.ts +97 -0
  4. package/src/activity-group.component.ts +61 -0
  5. package/src/alert.component.ts +75 -0
  6. package/src/autocomplete.component.ts +196 -0
  7. package/src/avatar.component.ts +59 -0
  8. package/src/backdrop.component.ts +51 -0
  9. package/src/badge.component.ts +67 -0
  10. package/src/breadcrumb.component.ts +77 -0
  11. package/src/button.component.ts +74 -0
  12. package/src/card.component.ts +72 -0
  13. package/src/carousel.component.ts +96 -0
  14. package/src/chat-input.component.ts +116 -0
  15. package/src/checkbox.component.ts +121 -0
  16. package/src/code-block.component.ts +67 -0
  17. package/src/collapsible.component.ts +72 -0
  18. package/src/date-picker.component.ts +159 -0
  19. package/src/dialog.component.ts +67 -0
  20. package/src/drawer.component.ts +67 -0
  21. package/src/fab.component.ts +70 -0
  22. package/src/file-upload.component.ts +77 -0
  23. package/src/index.ts +99 -0
  24. package/src/listbox.component.ts +121 -0
  25. package/src/menu.component.ts +99 -0
  26. package/src/message-bubble.component.ts +67 -0
  27. package/src/message-group.component.ts +77 -0
  28. package/src/message-part.component.ts +47 -0
  29. package/src/pagination.component.ts +67 -0
  30. package/src/popover.component.ts +77 -0
  31. package/src/profile-menu.component.ts +87 -0
  32. package/src/progress.component.ts +60 -0
  33. package/src/radio-group.component.ts +138 -0
  34. package/src/scrollbar.component.ts +59 -0
  35. package/src/search-bar.component.ts +127 -0
  36. package/src/select.component.ts +181 -0
  37. package/src/sidebar.component.ts +91 -0
  38. package/src/skeleton.component.ts +57 -0
  39. package/src/slider.component.ts +134 -0
  40. package/src/speed-dial.component.ts +100 -0
  41. package/src/spinner.component.ts +53 -0
  42. package/src/split-button.component.ts +97 -0
  43. package/src/stepper.component.ts +83 -0
  44. package/src/switch.component.ts +123 -0
  45. package/src/table.component.ts +219 -0
  46. package/src/tabs.component.ts +82 -0
  47. package/src/text-input.component.ts +158 -0
  48. package/src/text.component.ts +73 -0
  49. package/src/thinking.component.ts +57 -0
  50. package/src/toast.component.ts +72 -0
  51. package/src/toggle-group.component.ts +123 -0
  52. package/src/tooltip.component.ts +61 -0
  53. package/src/types.ts +334 -0
@@ -0,0 +1,72 @@
1
+ // Auto-generated by scripts/generate-angular.mjs — DO NOT EDIT
2
+ // Angular wrapper for <cx-collapsible>
3
+ import {
4
+ Component,
5
+ CUSTOM_ELEMENTS_SCHEMA,
6
+ ChangeDetectionStrategy,
7
+ ChangeDetectorRef,
8
+ ElementRef,
9
+ ViewChild,
10
+ Input,
11
+ Output,
12
+ EventEmitter,
13
+ AfterViewInit,
14
+ } from '@angular/core';
15
+ import type { CollapsibleDetail } from './types.js';
16
+
17
+ @Component({
18
+ selector: 'cx-collapsible[collet]',
19
+ standalone: true,
20
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
21
+ changeDetection: ChangeDetectionStrategy.OnPush,
22
+ template: `
23
+ <cx-collapsible
24
+ [attr.id]="id"
25
+ [attr.label]="label"
26
+ [attr.trigger-html]="triggerHtml"
27
+ [attr.open]="open || null"
28
+ [attr.icon]="icon"
29
+ [attr.no-icon]="noIcon || null"
30
+ [attr.size]="size"
31
+ [attr.disabled]="disabled || null"
32
+ #el
33
+ ><ng-content />
34
+ <ng-content select="[slot=trigger]" /></cx-collapsible>
35
+ `,
36
+ })
37
+ export class CxCollapsible implements AfterViewInit {
38
+ @ViewChild('el', { static: true }) el!: ElementRef<HTMLElement>;
39
+
40
+ @Input() id?: string = undefined;
41
+ @Input() label?: string = undefined;
42
+ @Input() triggerHtml?: string = undefined;
43
+ @Input() open?: boolean = undefined;
44
+ @Input() icon?: string = undefined;
45
+ @Input() noIcon?: boolean = undefined;
46
+ @Input() size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = undefined;
47
+ @Input() disabled?: boolean = undefined;
48
+
49
+ @Output() cxChange = new EventEmitter<CustomEvent<CollapsibleDetail>>();
50
+
51
+ constructor(private c: ChangeDetectorRef) {
52
+ c.detach();
53
+ }
54
+
55
+ ngAfterViewInit(): void {
56
+ this.el.nativeElement.addEventListener('cx-change', (e: Event) => {
57
+ this.cxChange.emit(e as CustomEvent);
58
+ });
59
+ }
60
+
61
+
62
+
63
+ /** Expands the collapsible content. */
64
+ doOpen(): void { (this.el.nativeElement as any).open(); }
65
+
66
+ /** Collapses the content. */
67
+ close(): void { (this.el.nativeElement as any).close(); }
68
+
69
+ /** Toggles the collapsible state. */
70
+ toggle(): void { (this.el.nativeElement as any).toggle(); }
71
+
72
+ }
@@ -0,0 +1,159 @@
1
+ // Auto-generated by scripts/generate-angular.mjs — DO NOT EDIT
2
+ // Angular wrapper for <cx-date-picker>
3
+ import {
4
+ Component,
5
+ CUSTOM_ELEMENTS_SCHEMA,
6
+ ChangeDetectionStrategy,
7
+ ChangeDetectorRef,
8
+ ElementRef,
9
+ ViewChild,
10
+ Input,
11
+ Output,
12
+ EventEmitter,
13
+ OnChanges,
14
+ SimpleChanges,
15
+ AfterViewInit,
16
+ forwardRef,
17
+ } from '@angular/core';
18
+ import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
19
+ import type { FocusDetail, InputDetail, KeyboardDetail } from './types.js';
20
+
21
+ @Component({
22
+ selector: 'cx-date-picker[collet]',
23
+ standalone: true,
24
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
25
+ changeDetection: ChangeDetectionStrategy.OnPush,
26
+ providers: [{
27
+ provide: NG_VALUE_ACCESSOR,
28
+ useExisting: forwardRef(() => CxDatePicker),
29
+ multi: true,
30
+ }],
31
+ template: `
32
+ <cx-date-picker
33
+ [attr.id]="id"
34
+ [attr.label]="label"
35
+ [attr.variant]="variant"
36
+ [attr.shape]="shape"
37
+ [attr.size]="size"
38
+ [attr.selected]="selected"
39
+ [attr.min]="min"
40
+ [attr.max]="max"
41
+ [disabled-dates]="_serialize_disabledDates()"
42
+ [attr.format]="format"
43
+ [attr.first-day]="firstDay"
44
+ [attr.placeholder]="placeholder"
45
+ [attr.helper-text]="helperText"
46
+ [attr.error]="error"
47
+ [attr.disabled]="disabled || null"
48
+ [attr.required]="required || null"
49
+ [attr.readonly]="readonly || null"
50
+ [attr.name]="name"
51
+ #el
52
+ ><ng-content /></cx-date-picker>
53
+ `,
54
+ })
55
+ export class CxDatePicker implements AfterViewInit, OnChanges, ControlValueAccessor {
56
+ @ViewChild('el', { static: true }) el!: ElementRef<HTMLElement>;
57
+
58
+ @Input() id?: string = undefined;
59
+ @Input() label!: string;
60
+ @Input() variant?: 'outline' | 'filled' | 'ghost' = undefined;
61
+ @Input() shape?: 'sharp' | 'rounded' = undefined;
62
+ @Input() size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = undefined;
63
+ @Input() selected?: string = undefined;
64
+ @Input() min?: string = undefined;
65
+ @Input() max?: string = undefined;
66
+ @Input() disabledDates?: string[] | string = undefined;
67
+ @Input() format?: 'iso' | 'us-short' | 'eu-short' | 'eu-dot' = undefined;
68
+ @Input() firstDay?: 'monday' | 'sunday' = undefined;
69
+ @Input() placeholder?: string = undefined;
70
+ @Input() helperText?: string = undefined;
71
+ @Input() error?: string = undefined;
72
+ @Input() disabled?: boolean = undefined;
73
+ @Input() required?: boolean = undefined;
74
+ @Input() readonly?: boolean = undefined;
75
+ @Input() name?: string = undefined;
76
+
77
+ @Output() cxInput = new EventEmitter<CustomEvent<InputDetail>>();
78
+ @Output() cxChange = new EventEmitter<CustomEvent<InputDetail>>();
79
+ @Output() cxFocus = new EventEmitter<CustomEvent<FocusDetail>>();
80
+ @Output() cxBlur = new EventEmitter<CustomEvent<FocusDetail>>();
81
+ @Output() cxKeydown = new EventEmitter<CustomEvent<KeyboardDetail>>();
82
+ @Output() cxKeyup = new EventEmitter<CustomEvent<KeyboardDetail>>();
83
+
84
+ constructor(private c: ChangeDetectorRef) {
85
+ c.detach();
86
+ }
87
+
88
+ ngAfterViewInit(): void {
89
+ this.el.nativeElement.addEventListener('cx-input', (e: Event) => {
90
+ this.cxInput.emit(e as CustomEvent);
91
+ });
92
+ this.el.nativeElement.addEventListener('cx-change', (e: Event) => {
93
+ this.cxChange.emit(e as CustomEvent);
94
+ });
95
+ this.el.nativeElement.addEventListener('cx-focus', (e: Event) => {
96
+ this.cxFocus.emit(e as CustomEvent);
97
+ });
98
+ this.el.nativeElement.addEventListener('cx-blur', (e: Event) => {
99
+ this.cxBlur.emit(e as CustomEvent);
100
+ });
101
+ this.el.nativeElement.addEventListener('cx-keydown', (e: Event) => {
102
+ this.cxKeydown.emit(e as CustomEvent);
103
+ });
104
+ this.el.nativeElement.addEventListener('cx-keyup', (e: Event) => {
105
+ this.cxKeyup.emit(e as CustomEvent);
106
+ });
107
+ // CVA: sync CE value changes back to Angular forms
108
+ this.el.nativeElement.addEventListener('cx-change', (e: Event) => {
109
+ this._onChange((e as CustomEvent).detail?.value);
110
+ });
111
+ this.el.nativeElement.addEventListener('focusout', () => {
112
+ this._onTouched();
113
+ });
114
+ }
115
+
116
+ ngOnChanges(changes: SimpleChanges): void {
117
+ if (changes['disabledDates'] && this.el) {
118
+ const val = this.disabledDates;
119
+ if (val != null) {
120
+ this.el.nativeElement.setAttribute('disabled-dates', typeof val === 'object' ? JSON.stringify(val) : String(val));
121
+ } else {
122
+ this.el.nativeElement.removeAttribute('disabled-dates');
123
+ }
124
+ }
125
+ }
126
+
127
+ _serialize_disabledDates(): string | null {
128
+ const val = this.disabledDates;
129
+ if (val == null) return null;
130
+ return typeof val === 'object' ? JSON.stringify(val) : String(val);
131
+ }
132
+
133
+ /** Opens the calendar panel. */
134
+ open(): void { (this.el.nativeElement as any).open(); }
135
+
136
+ /** Closes the calendar panel. */
137
+ close(): void { (this.el.nativeElement as any).close(); }
138
+
139
+ /** Focuses the trigger button. */
140
+ focus(): void { (this.el.nativeElement as any).focus(); }
141
+
142
+ // ── ControlValueAccessor ──
143
+ private _onChange: (value: any) => void = () => {};
144
+ private _onTouched: () => void = () => {};
145
+
146
+ writeValue(value: any): void {
147
+ if (this.el) (this.el.nativeElement as any).value = value ?? '';
148
+ }
149
+
150
+ registerOnChange(fn: (value: any) => void): void { this._onChange = fn; }
151
+ registerOnTouched(fn: () => void): void { this._onTouched = fn; }
152
+
153
+ setDisabledState(isDisabled: boolean): void {
154
+ if (this.el) {
155
+ if (isDisabled) this.el.nativeElement.setAttribute('disabled', '');
156
+ else this.el.nativeElement.removeAttribute('disabled');
157
+ }
158
+ }
159
+ }
@@ -0,0 +1,67 @@
1
+ // Auto-generated by scripts/generate-angular.mjs — DO NOT EDIT
2
+ // Angular wrapper for <cx-dialog>
3
+ import {
4
+ Component,
5
+ CUSTOM_ELEMENTS_SCHEMA,
6
+ ChangeDetectionStrategy,
7
+ ChangeDetectorRef,
8
+ ElementRef,
9
+ ViewChild,
10
+ Input,
11
+ Output,
12
+ EventEmitter,
13
+ AfterViewInit,
14
+ } from '@angular/core';
15
+ import type { CloseDetail } from './types.js';
16
+
17
+ @Component({
18
+ selector: 'cx-dialog[collet]',
19
+ standalone: true,
20
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
21
+ changeDetection: ChangeDetectionStrategy.OnPush,
22
+ template: `
23
+ <cx-dialog
24
+ [attr.id]="id"
25
+ [attr.title]="title"
26
+ [attr.variant]="variant"
27
+ [attr.description]="description"
28
+ [attr.size]="size"
29
+ [attr.close-button]="closeButton"
30
+ [attr.drawer]="drawer"
31
+ #el
32
+ ><ng-content />
33
+ <ng-content select="[slot=footer]" /></cx-dialog>
34
+ `,
35
+ })
36
+ export class CxDialog implements AfterViewInit {
37
+ @ViewChild('el', { static: true }) el!: ElementRef<HTMLElement>;
38
+
39
+ @Input() id?: string = undefined;
40
+ @Input() title?: string = undefined;
41
+ @Input() variant?: 'standard' | 'alert' = undefined;
42
+ @Input() description?: string = undefined;
43
+ @Input() size?: 'sm' | 'md' | 'lg' | 'xl' | 'full' = undefined;
44
+ @Input() closeButton?: string = undefined;
45
+ @Input() drawer?: string = undefined;
46
+
47
+ @Output() cxClose = new EventEmitter<CustomEvent<CloseDetail>>();
48
+
49
+ constructor(private c: ChangeDetectorRef) {
50
+ c.detach();
51
+ }
52
+
53
+ ngAfterViewInit(): void {
54
+ this.el.nativeElement.addEventListener('cx-close', (e: Event) => {
55
+ this.cxClose.emit(e as CustomEvent);
56
+ });
57
+ }
58
+
59
+
60
+
61
+ /** Opens the dialog modal with entrance animation. */
62
+ open(): void { (this.el.nativeElement as any).open(); }
63
+
64
+ /** Closes the dialog modal with exit animation. */
65
+ close(): void { (this.el.nativeElement as any).close(); }
66
+
67
+ }
@@ -0,0 +1,67 @@
1
+ // Auto-generated by scripts/generate-angular.mjs — DO NOT EDIT
2
+ // Angular wrapper for <cx-drawer>
3
+ import {
4
+ Component,
5
+ CUSTOM_ELEMENTS_SCHEMA,
6
+ ChangeDetectionStrategy,
7
+ ChangeDetectorRef,
8
+ ElementRef,
9
+ ViewChild,
10
+ Input,
11
+ Output,
12
+ EventEmitter,
13
+ AfterViewInit,
14
+ } from '@angular/core';
15
+ import type { CloseDetail } from './types.js';
16
+
17
+ @Component({
18
+ selector: 'cx-drawer[collet]',
19
+ standalone: true,
20
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
21
+ changeDetection: ChangeDetectionStrategy.OnPush,
22
+ template: `
23
+ <cx-drawer
24
+ [attr.id]="id"
25
+ [attr.title]="title"
26
+ [attr.description]="description"
27
+ [attr.side]="side"
28
+ [attr.size]="size"
29
+ [attr.shape]="shape"
30
+ [attr.close-button]="closeButton"
31
+ #el
32
+ ><ng-content />
33
+ <ng-content select="[slot=footer]" /></cx-drawer>
34
+ `,
35
+ })
36
+ export class CxDrawer implements AfterViewInit {
37
+ @ViewChild('el', { static: true }) el!: ElementRef<HTMLElement>;
38
+
39
+ @Input() id?: string = undefined;
40
+ @Input() title?: string = undefined;
41
+ @Input() description?: string = undefined;
42
+ @Input() side?: 'left' | 'right' | 'top' | 'bottom' = undefined;
43
+ @Input() size?: 'sm' | 'md' | 'lg' | 'xl' | 'full' = undefined;
44
+ @Input() shape?: 'sharp' | 'rounded' | 'pill' = undefined;
45
+ @Input() closeButton?: string = undefined;
46
+
47
+ @Output() cxClose = new EventEmitter<CustomEvent<CloseDetail>>();
48
+
49
+ constructor(private c: ChangeDetectorRef) {
50
+ c.detach();
51
+ }
52
+
53
+ ngAfterViewInit(): void {
54
+ this.el.nativeElement.addEventListener('cx-close', (e: Event) => {
55
+ this.cxClose.emit(e as CustomEvent);
56
+ });
57
+ }
58
+
59
+
60
+
61
+ /** Opens the drawer panel with slide-in animation. */
62
+ open(): void { (this.el.nativeElement as any).open(); }
63
+
64
+ /** Closes the drawer panel with slide-out animation. */
65
+ close(): void { (this.el.nativeElement as any).close(); }
66
+
67
+ }
@@ -0,0 +1,70 @@
1
+ // Auto-generated by scripts/generate-angular.mjs — DO NOT EDIT
2
+ // Angular wrapper for <cx-fab>
3
+ import {
4
+ Component,
5
+ CUSTOM_ELEMENTS_SCHEMA,
6
+ ChangeDetectionStrategy,
7
+ ChangeDetectorRef,
8
+ ElementRef,
9
+ ViewChild,
10
+ Input,
11
+ Output,
12
+ EventEmitter,
13
+ AfterViewInit,
14
+ } from '@angular/core';
15
+ import type { ClickDetail } from './types.js';
16
+
17
+ @Component({
18
+ selector: 'cx-fab[collet]',
19
+ standalone: true,
20
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
21
+ changeDetection: ChangeDetectionStrategy.OnPush,
22
+ template: `
23
+ <cx-fab
24
+ [attr.icon]="icon"
25
+ [attr.label]="label"
26
+ [attr.aria-label]="ariaLabel"
27
+ [attr.variant]="variant"
28
+ [attr.intent]="intent"
29
+ [attr.shape]="shape"
30
+ [attr.size]="size"
31
+ [attr.disabled]="disabled || null"
32
+ [attr.has-popup]="hasPopup || null"
33
+ [attr.expanded]="expanded || null"
34
+ [attr.controls]="controls"
35
+ #el
36
+ ><ng-content /></cx-fab>
37
+ `,
38
+ })
39
+ export class CxFab implements AfterViewInit {
40
+ @ViewChild('el', { static: true }) el!: ElementRef<HTMLElement>;
41
+
42
+ @Input() icon?: string = undefined;
43
+ @Input() label?: string = undefined;
44
+ @Input() ariaLabel?: string = undefined;
45
+ @Input() variant?: 'filled' | 'outline' | 'ghost' = undefined;
46
+ @Input() intent?: 'neutral' | 'primary' | 'info' | 'success' | 'warning' | 'danger' = undefined;
47
+ @Input() shape?: 'rounded' | 'pill' = undefined;
48
+ @Input() size?: 'sm' | 'md' | 'lg' = undefined;
49
+ @Input() disabled?: boolean = undefined;
50
+ @Input() hasPopup?: boolean = undefined;
51
+ @Input() expanded?: boolean = undefined;
52
+ @Input() controls?: string = undefined;
53
+
54
+ @Output() cxClick = new EventEmitter<CustomEvent<ClickDetail>>();
55
+
56
+ constructor(private c: ChangeDetectorRef) {
57
+ c.detach();
58
+ }
59
+
60
+ ngAfterViewInit(): void {
61
+ this.el.nativeElement.addEventListener('cx-click', (e: Event) => {
62
+ this.cxClick.emit(e as CustomEvent);
63
+ });
64
+ }
65
+
66
+
67
+
68
+
69
+
70
+ }
@@ -0,0 +1,77 @@
1
+ // Auto-generated by scripts/generate-angular.mjs — DO NOT EDIT
2
+ // Angular wrapper for <cx-file-upload>
3
+ import {
4
+ Component,
5
+ CUSTOM_ELEMENTS_SCHEMA,
6
+ ChangeDetectionStrategy,
7
+ ChangeDetectorRef,
8
+ ElementRef,
9
+ ViewChild,
10
+ Input,
11
+ Output,
12
+ EventEmitter,
13
+ AfterViewInit,
14
+ } from '@angular/core';
15
+
16
+ @Component({
17
+ selector: 'cx-file-upload[collet]',
18
+ standalone: true,
19
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
20
+ changeDetection: ChangeDetectionStrategy.OnPush,
21
+ template: `
22
+ <cx-file-upload
23
+ [attr.id]="id"
24
+ [attr.label]="label"
25
+ [attr.mode]="mode"
26
+ [attr.variant]="variant"
27
+ [attr.shape]="shape"
28
+ [attr.size]="size"
29
+ [attr.disabled]="disabled || null"
30
+ [attr.multiple]="multiple || null"
31
+ [attr.accept]="accept"
32
+ [attr.max-size]="maxSize"
33
+ [attr.heading]="heading"
34
+ [attr.browse-text]="browseText"
35
+ [attr.hint]="hint"
36
+ [attr.capture]="capture"
37
+ [attr.preview]="preview || null"
38
+ #el
39
+ ><ng-content /></cx-file-upload>
40
+ `,
41
+ })
42
+ export class CxFileUpload implements AfterViewInit {
43
+ @ViewChild('el', { static: true }) el!: ElementRef<HTMLElement>;
44
+
45
+ @Input() id?: string = undefined;
46
+ @Input() label?: string = undefined;
47
+ @Input() mode?: 'inline' | 'overlay' = undefined;
48
+ @Input() variant?: 'outline' | 'filled' | 'subtle' = undefined;
49
+ @Input() shape?: 'sharp' | 'rounded' | 'pill' = undefined;
50
+ @Input() size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = undefined;
51
+ @Input() disabled?: boolean = undefined;
52
+ @Input() multiple?: boolean = undefined;
53
+ @Input() accept?: string = undefined;
54
+ @Input() maxSize?: number = undefined;
55
+ @Input() heading?: string = undefined;
56
+ @Input() browseText?: string = undefined;
57
+ @Input() hint?: string = undefined;
58
+ @Input() capture?: string = undefined;
59
+ @Input() preview?: boolean = undefined;
60
+
61
+ @Output() cxChange = new EventEmitter<CustomEvent>();
62
+
63
+ constructor(private c: ChangeDetectorRef) {
64
+ c.detach();
65
+ }
66
+
67
+ ngAfterViewInit(): void {
68
+ this.el.nativeElement.addEventListener('cx-change', (e: Event) => {
69
+ this.cxChange.emit(e as CustomEvent);
70
+ });
71
+ }
72
+
73
+
74
+
75
+
76
+
77
+ }
package/src/index.ts ADDED
@@ -0,0 +1,99 @@
1
+ // Auto-generated by scripts/generate-angular.mjs — DO NOT EDIT
2
+ // Angular wrappers for Collet Custom Elements.
3
+ // Each wrapper is a standalone component with:
4
+ // - Typed @Input() props with union literals
5
+ // - Typed @Output() EventEmitters for custom events
6
+ // - ControlValueAccessor for form-associated components
7
+ // - OnPush change detection with detached ChangeDetectorRef
8
+ //
9
+ // Usage:
10
+ // import { CxButton, CxTextInput } from '@colletdev/angular';
11
+ //
12
+ // @Component({
13
+ // imports: [CxButton, CxTextInput],
14
+ // template: `<cx-button collet variant="filled" label="Click" />`
15
+ // })
16
+ import '@colletdev/core';
17
+
18
+ // Re-export init and types from core
19
+ export { init, componentNames } from '@colletdev/core';
20
+ export type { InitOptions, ComponentName } from '@colletdev/core';
21
+
22
+ // Structured prop types
23
+ export type {
24
+ SelectOption, OptionGroup,
25
+ TabItem,
26
+ TableColumn, TableCell, TableRow, SortState, PaginationConfig, FooterRow, EmptyStateConfig,
27
+ AccordionItem,
28
+ MenuEntry, MenuRadioItem,
29
+ SidebarNavItem, SidebarGroup,
30
+ BreadcrumbItem,
31
+ RadioOption,
32
+ ToggleItem,
33
+ SplitMenuEntry,
34
+ SpeedDialAction,
35
+ CarouselSlide,
36
+ MessageGroupPart,
37
+ StepperStep,
38
+ } from './types.js';
39
+
40
+ // Event detail types
41
+ export type {
42
+ InputDetail, SelectDetail, CheckedDetail, SliderDetail,
43
+ ToggleDetail, AccordionDetail, CollapsibleDetail,
44
+ MenuActionDetail, MenuChangeDetail,
45
+ SortDetail, TableSelectDetail, TableExpandDetail, PageDetail,
46
+ NavigateDetail, ClickDetail, CloseDetail, DismissDetail,
47
+ FocusDetail, KeyboardDetail,
48
+ CarouselDetail, FileChangeDetail, FileInfo,
49
+ } from './types.js';
50
+
51
+ export { CxAccordion } from './accordion.component.js';
52
+ export { CxActivityGroup } from './activity-group.component.js';
53
+ export { CxAlert } from './alert.component.js';
54
+ export { CxAutocomplete } from './autocomplete.component.js';
55
+ export { CxAvatar } from './avatar.component.js';
56
+ export { CxBackdrop } from './backdrop.component.js';
57
+ export { CxBadge } from './badge.component.js';
58
+ export { CxBreadcrumb } from './breadcrumb.component.js';
59
+ export { CxButton } from './button.component.js';
60
+ export { CxCard } from './card.component.js';
61
+ export { CxCarousel } from './carousel.component.js';
62
+ export { CxChatInput } from './chat-input.component.js';
63
+ export { CxCheckbox } from './checkbox.component.js';
64
+ export { CxCodeBlock } from './code-block.component.js';
65
+ export { CxCollapsible } from './collapsible.component.js';
66
+ export { CxDatePicker } from './date-picker.component.js';
67
+ export { CxDialog } from './dialog.component.js';
68
+ export { CxDrawer } from './drawer.component.js';
69
+ export { CxFab } from './fab.component.js';
70
+ export { CxFileUpload } from './file-upload.component.js';
71
+ export { CxListbox } from './listbox.component.js';
72
+ export { CxMenu } from './menu.component.js';
73
+ export { CxMessageBubble } from './message-bubble.component.js';
74
+ export { CxMessageGroup } from './message-group.component.js';
75
+ export { CxMessagePart } from './message-part.component.js';
76
+ export { CxPagination } from './pagination.component.js';
77
+ export { CxPopover } from './popover.component.js';
78
+ export { CxProfileMenu } from './profile-menu.component.js';
79
+ export { CxProgress } from './progress.component.js';
80
+ export { CxRadioGroup } from './radio-group.component.js';
81
+ export { CxScrollbar } from './scrollbar.component.js';
82
+ export { CxSearchBar } from './search-bar.component.js';
83
+ export { CxSelect } from './select.component.js';
84
+ export { CxSidebar } from './sidebar.component.js';
85
+ export { CxSkeleton } from './skeleton.component.js';
86
+ export { CxSlider } from './slider.component.js';
87
+ export { CxSpeedDial } from './speed-dial.component.js';
88
+ export { CxSpinner } from './spinner.component.js';
89
+ export { CxSplitButton } from './split-button.component.js';
90
+ export { CxStepper } from './stepper.component.js';
91
+ export { CxSwitch } from './switch.component.js';
92
+ export { CxTable } from './table.component.js';
93
+ export { CxTabs } from './tabs.component.js';
94
+ export { CxText } from './text.component.js';
95
+ export { CxTextInput } from './text-input.component.js';
96
+ export { CxThinking } from './thinking.component.js';
97
+ export { CxToast } from './toast.component.js';
98
+ export { CxToggleGroup } from './toggle-group.component.js';
99
+ export { CxTooltip } from './tooltip.component.js';