@bsginstitute/bsg-integra 0.0.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/index.d.ts ADDED
@@ -0,0 +1,2464 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnInit, ElementRef, AfterContentInit, ChangeDetectorRef, AfterViewInit, OnDestroy } from '@angular/core';
3
+ import { VariantProps } from 'class-variance-authority';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
6
+ import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
7
+
8
+ /**
9
+ * Accordion container variants
10
+ *
11
+ * Controls the overall accordion container layout and typography
12
+ */
13
+ declare const accordionVariants: (props?: ({
14
+ variant?: "default" | "bordered" | "elevated" | null | undefined;
15
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
16
+ /**
17
+ * Accordion item variants
18
+ *
19
+ * Controls the individual accordion item styles
20
+ */
21
+ declare const accordionItemVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
22
+ /**
23
+ * Accordion trigger variants
24
+ *
25
+ * Controls the clickable header button
26
+ */
27
+ declare const accordionTriggerVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
28
+ /**
29
+ * Accordion content variants
30
+ *
31
+ * Controls the collapsible content area
32
+ */
33
+ declare const accordionContentVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
34
+
35
+ type AccordionVariant = 'default' | 'bordered' | 'elevated';
36
+ type AccordionType = 'single' | 'multiple';
37
+ type AccordionVariantsProps = VariantProps<typeof accordionVariants>;
38
+ /**
39
+ * Accordion Component - Container for accordion items
40
+ *
41
+ * Following shadcn/ui pattern:
42
+ * ```html
43
+ * <bsg-accordion [type]="'single'" [collapsible]="true">
44
+ * <bsg-accordion-item value="item-1">
45
+ * <bsg-accordion-trigger>Trigger text</bsg-accordion-trigger>
46
+ * <bsg-accordion-content>Content here</bsg-accordion-content>
47
+ * </bsg-accordion-item>
48
+ * </bsg-accordion>
49
+ * ```
50
+ */
51
+ declare class AccordionComponent implements OnInit {
52
+ /** Accordion variant */
53
+ readonly variant: _angular_core.InputSignal<AccordionVariant>;
54
+ /** Type: 'single' allows one item open, 'multiple' allows multiple */
55
+ readonly type: _angular_core.InputSignal<AccordionType>;
56
+ /** If type is 'single', allows collapsing the open item */
57
+ readonly collapsible: _angular_core.InputSignal<boolean>;
58
+ /** Additional CSS classes */
59
+ readonly className: _angular_core.InputSignal<string | undefined>;
60
+ /** Default value(s) - item value(s) to be open by default */
61
+ readonly defaultValue: _angular_core.InputSignal<string | string[] | undefined>;
62
+ private readonly openItems;
63
+ readonly containerClasses: _angular_core.Signal<string>;
64
+ ngOnInit(): void;
65
+ isItemOpen(value: string): boolean;
66
+ toggleItem(value: string): void;
67
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionComponent, never>;
68
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionComponent, "bsg-accordion", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
69
+ }
70
+
71
+ /**
72
+ * AccordionItem Component - Individual accordion item container
73
+ *
74
+ * Usage:
75
+ * ```html
76
+ * <bsg-accordion-item value="item-1">
77
+ * <bsg-accordion-trigger>Question?</bsg-accordion-trigger>
78
+ * <bsg-accordion-content>Answer</bsg-accordion-content>
79
+ * </bsg-accordion-item>
80
+ * ```
81
+ */
82
+ declare class AccordionItemComponent {
83
+ /** Unique value for this accordion item */
84
+ readonly value: _angular_core.InputSignal<string>;
85
+ /** Additional CSS classes */
86
+ readonly className: _angular_core.InputSignal<string | undefined>;
87
+ readonly accordion: AccordionComponent;
88
+ readonly itemClasses: _angular_core.Signal<string>;
89
+ isOpen(): boolean;
90
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionItemComponent, never>;
91
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionItemComponent, "bsg-accordion-item", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
92
+ }
93
+
94
+ /**
95
+ * AccordionTrigger Component - Clickable header for accordion items
96
+ *
97
+ * Usage:
98
+ * ```html
99
+ * <bsg-accordion-trigger>
100
+ * Click me to expand
101
+ * </bsg-accordion-trigger>
102
+ * ```
103
+ */
104
+ declare class AccordionTriggerComponent {
105
+ /** Additional CSS classes */
106
+ readonly className: _angular_core.InputSignal<string | undefined>;
107
+ readonly item: AccordionItemComponent;
108
+ readonly accordion: AccordionComponent;
109
+ readonly triggerClasses: _angular_core.Signal<string>;
110
+ readonly chevronClasses: _angular_core.Signal<string>;
111
+ isOpen(): boolean;
112
+ toggle(): void;
113
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionTriggerComponent, never>;
114
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionTriggerComponent, "bsg-accordion-trigger", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
115
+ }
116
+
117
+ /**
118
+ * AccordionContent Component - Collapsible content area
119
+ *
120
+ * Usage:
121
+ * ```html
122
+ * <bsg-accordion-content>
123
+ * Your content here
124
+ * </bsg-accordion-content>
125
+ * ```
126
+ */
127
+ declare class AccordionContentComponent {
128
+ /** Additional CSS classes */
129
+ readonly className: _angular_core.InputSignal<string | undefined>;
130
+ readonly item: AccordionItemComponent;
131
+ readonly contentClasses: _angular_core.Signal<string>;
132
+ isOpen(): boolean;
133
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionContentComponent, never>;
134
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionContentComponent, "bsg-accordion-content", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
135
+ }
136
+
137
+ /**
138
+ * Alert container variants
139
+ *
140
+ * Controls the overall alert container layout and colors
141
+ */
142
+ declare const alertVariants: (props?: ({
143
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | null | undefined;
144
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
145
+ /**
146
+ * Alert icon variants
147
+ *
148
+ * Controls the alert icon styles
149
+ */
150
+ declare const alertIconVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
151
+ /**
152
+ * Alert content variants
153
+ *
154
+ * Controls the alert content text area
155
+ */
156
+ declare const alertContentVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
157
+ /**
158
+ * Alert close button variants
159
+ *
160
+ * Controls the dismissible close button
161
+ */
162
+ declare const alertCloseVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
163
+
164
+ type AlertVariant = 'default' | 'info' | 'success' | 'warning' | 'destructive';
165
+ type AlertVariantsProps = VariantProps<typeof alertVariants>;
166
+ /**
167
+ * Alert Component - Display contextual feedback messages
168
+ *
169
+ * Usage:
170
+ * ```html
171
+ * <bsg-alert [variant]="'success'" [dismissible]="true" [content]="'Success message!'" />
172
+ * ```
173
+ */
174
+ declare class AlertComponent {
175
+ /** Alert variant */
176
+ readonly variant: _angular_core.InputSignal<AlertVariant>;
177
+ /** Whether the alert can be dismissed */
178
+ readonly dismissible: _angular_core.InputSignal<boolean>;
179
+ /** Alert message content */
180
+ readonly content: _angular_core.InputSignal<string>;
181
+ /** Additional CSS classes */
182
+ readonly className: _angular_core.InputSignal<string | undefined>;
183
+ /** Dismiss event */
184
+ readonly dismiss: _angular_core.OutputEmitterRef<void>;
185
+ /** Internal dismissed state */
186
+ protected readonly dismissed: _angular_core.WritableSignal<boolean>;
187
+ readonly alertClasses: _angular_core.Signal<string>;
188
+ readonly iconClasses: _angular_core.Signal<string>;
189
+ readonly contentClasses: _angular_core.Signal<string>;
190
+ readonly closeClasses: _angular_core.Signal<string>;
191
+ readonly iconColor: _angular_core.Signal<string>;
192
+ handleDismiss(): void;
193
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AlertComponent, never>;
194
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertComponent, "bsg-alert", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
195
+ }
196
+
197
+ /**
198
+ * Avatar container variants
199
+ *
200
+ * Controls the avatar size and base styles
201
+ */
202
+ declare const avatarVariants: (props?: ({
203
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
204
+ type?: "default" | "fallback" | "image" | null | undefined;
205
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
206
+ /**
207
+ * Avatar initials variants
208
+ *
209
+ * Controls the initials text styles for fallback type
210
+ */
211
+ declare const avatarInitialsVariants: (props?: ({
212
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
213
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
214
+ /**
215
+ * Avatar icon variants
216
+ *
217
+ * Controls the SVG icon styles for default type
218
+ */
219
+ declare const avatarIconVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
220
+ /**
221
+ * Avatar image variants
222
+ *
223
+ * Controls the img element styles for image type
224
+ */
225
+ declare const avatarImgVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
226
+
227
+ type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
228
+ type AvatarType = 'default' | 'fallback';
229
+ type AvatarVariantsProps = VariantProps<typeof avatarVariants>;
230
+ /**
231
+ * Avatar Component - Display user profile images, icons, or initials
232
+ *
233
+ * Usage:
234
+ * ```html
235
+ * <!-- With image -->
236
+ * <bsg-avatar [image]="'path/to/image.jpg'" [size]="'lg'" />
237
+ *
238
+ * <!-- With initials -->
239
+ * <bsg-avatar [type]="'fallback'" [initials]="'JD'" [size]="'md'" />
240
+ *
241
+ * <!-- Default icon -->
242
+ * <bsg-avatar [size]="'sm'" />
243
+ * ```
244
+ */
245
+ declare class AvatarComponent {
246
+ /** Avatar size */
247
+ readonly size: _angular_core.InputSignal<AvatarSize>;
248
+ /** Avatar type */
249
+ readonly type: _angular_core.InputSignal<AvatarType>;
250
+ /** Initials text (only for fallback type) */
251
+ readonly initials: _angular_core.InputSignal<string>;
252
+ /** Image URL (only for default type) */
253
+ readonly image: _angular_core.InputSignal<string>;
254
+ /** Additional CSS classes */
255
+ readonly className: _angular_core.InputSignal<string | undefined>;
256
+ readonly avatarClasses: _angular_core.Signal<string>;
257
+ readonly avatarImageClasses: _angular_core.Signal<string>;
258
+ readonly initialsClasses: _angular_core.Signal<string>;
259
+ readonly iconClasses: _angular_core.Signal<string>;
260
+ readonly imgClasses: _angular_core.Signal<string>;
261
+ readonly dimensions: _angular_core.Signal<number>;
262
+ readonly iconViewBox: _angular_core.Signal<string>;
263
+ readonly iconCenter: _angular_core.Signal<number>;
264
+ readonly headCenterY: _angular_core.Signal<number>;
265
+ readonly headRadius: _angular_core.Signal<number>;
266
+ readonly bodyPath: _angular_core.Signal<string>;
267
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarComponent, never>;
268
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarComponent, "bsg-avatar", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "image": { "alias": "image"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
269
+ }
270
+
271
+ type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline' | 'success';
272
+ type BadgeSize = 'dot' | 'default' | 'large';
273
+ type BadgeLayout = 'text' | 'text-icon';
274
+ /**
275
+ * Badge Component
276
+ *
277
+ * A badge component for displaying status indicators, counters, and labels.
278
+ *
279
+ * Usage:
280
+ * ```html
281
+ * <bsg-badge variant="default" size="default" value="10"></bsg-badge>
282
+ * <bsg-badge variant="success" size="dot"></bsg-badge>
283
+ * <bsg-badge variant="destructive" size="large" layout="text-icon" value="Alert"></bsg-badge>
284
+ * ```
285
+ */
286
+ declare class BadgeComponent {
287
+ /** Badge semantic variant */
288
+ readonly variant: _angular_core.InputSignal<BadgeVariant>;
289
+ /** Badge size */
290
+ readonly size: _angular_core.InputSignal<BadgeSize>;
291
+ /** Badge layout type */
292
+ readonly layout: _angular_core.InputSignal<BadgeLayout>;
293
+ /** Badge value/content */
294
+ readonly value: _angular_core.InputSignal<string | number>;
295
+ /** Additional CSS classes */
296
+ readonly className: _angular_core.InputSignal<string | undefined>;
297
+ /** Computed aria-label for accessibility */
298
+ readonly ariaLabel: _angular_core.Signal<string>;
299
+ /** Computed badge classes */
300
+ readonly badgeClasses: _angular_core.Signal<string>;
301
+ /** Computed icon classes */
302
+ readonly iconClasses: _angular_core.Signal<string>;
303
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeComponent, never>;
304
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "bsg-badge", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
305
+ }
306
+
307
+ declare const badgeVariants: (props?: ({
308
+ variant?: "default" | "success" | "destructive" | "secondary" | "outline" | null | undefined;
309
+ size?: "default" | "dot" | "large" | null | undefined;
310
+ layout?: "text" | "text-icon" | null | undefined;
311
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
312
+ type BadgeVariantsProps = VariantProps<typeof badgeVariants>;
313
+ declare const badgeIconVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
314
+ type BadgeIconVariantsProps = VariantProps<typeof badgeIconVariants>;
315
+
316
+ /**
317
+ * Button variants
318
+ *
319
+ * Controls the button styles including size, variant, shape, and state
320
+ */
321
+ declare const buttonVariants: (props?: ({
322
+ size?: "sm" | "md" | "lg" | null | undefined;
323
+ variant?: "default" | "destructive" | "secondary" | "outline" | "ghost" | "link" | null | undefined;
324
+ shape?: "rectangular" | "pill" | "icon" | "icon-text" | "icon-only" | null | undefined;
325
+ disabled?: boolean | null | undefined;
326
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
327
+ /**
328
+ * Button icon variants
329
+ *
330
+ * Controls the icon styling within buttons
331
+ */
332
+ declare const buttonIconVariants: (props?: ({
333
+ position?: "left" | "right" | "center" | null | undefined;
334
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
335
+ /**
336
+ * Button label variants
337
+ *
338
+ * Controls the label text styling
339
+ */
340
+ declare const buttonLabelVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
341
+ /**
342
+ * Button icon-only wrapper variants
343
+ *
344
+ * Controls the icon wrapper for icon-only buttons
345
+ */
346
+ declare const buttonIconOnlyVariants: (props?: ({
347
+ size?: "sm" | "md" | "lg" | null | undefined;
348
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
349
+
350
+ type ButtonSize = 'sm' | 'md' | 'lg';
351
+ type ButtonVariant = 'default' | 'secondary' | 'outline' | 'ghost' | 'link' | 'destructive';
352
+ type ButtonShape = 'rectangular' | 'pill' | 'icon' | 'icon-text' | 'icon-only';
353
+ type IconName = 'check' | 'chevron-left' | 'chevron-right' | 'chevron-up' | 'chevron-down' | 'none';
354
+ type ButtonVariantsProps = VariantProps<typeof buttonVariants>;
355
+ /**
356
+ * Button Component - Interactive button with multiple variants
357
+ *
358
+ * Following shadcn/ui pattern:
359
+ * ```html
360
+ * <bsg-button
361
+ * [variant]="'default'"
362
+ * [size]="'md'"
363
+ * [shape]="'rectangular'"
364
+ * [label]="'Click me'"
365
+ * (Click)="onClick()"
366
+ * />
367
+ * ```
368
+ */
369
+ declare class ButtonComponent {
370
+ private sanitizer;
371
+ constructor(sanitizer: DomSanitizer);
372
+ /** Size of the button */
373
+ readonly size: _angular_core.InputSignal<ButtonSize>;
374
+ /** Visual variant of the button */
375
+ readonly variant: _angular_core.InputSignal<ButtonVariant>;
376
+ /** Shape of the button */
377
+ readonly shape: _angular_core.InputSignal<ButtonShape>;
378
+ /** Button label text */
379
+ readonly label: _angular_core.InputSignal<string>;
380
+ /** Show icon */
381
+ readonly icon: _angular_core.InputSignal<boolean>;
382
+ /** Icon position (left or right) */
383
+ readonly iconPosition: _angular_core.InputSignal<"left" | "right">;
384
+ /** Icon name for icon-only buttons */
385
+ readonly iconName: _angular_core.InputSignal<IconName>;
386
+ /** Disabled state */
387
+ readonly disabled: _angular_core.InputSignal<boolean>;
388
+ /** Additional CSS classes */
389
+ readonly className: _angular_core.InputSignal<string | undefined>;
390
+ /** Click event emitter */
391
+ readonly Click: _angular_core.OutputEmitterRef<Event>;
392
+ readonly isDisabled: _angular_core.Signal<boolean>;
393
+ readonly buttonClasses: _angular_core.Signal<string>;
394
+ iconClasses(position: 'left' | 'right' | 'center'): string;
395
+ readonly labelClasses: _angular_core.Signal<string>;
396
+ readonly iconOnlyClasses: _angular_core.Signal<string>;
397
+ readonly iconColor: _angular_core.Signal<"#2563EB" | "#7C3AED" | "#1E293B" | "white">;
398
+ getIconSvg(iconName: string): SafeHtml;
399
+ handleClick(event: Event): void;
400
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
401
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "bsg-button", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "iconName": { "alias": "iconName"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "Click": "Click"; }, never, never, true, never>;
402
+ }
403
+
404
+ /**
405
+ * Card container variants
406
+ *
407
+ * Controls the overall card container layout and styling
408
+ */
409
+ declare const cardVariants: (props?: ({
410
+ variant?: "default" | null | undefined;
411
+ contentVariant?: "default" | "metric" | "infoDate" | "infoCurrency" | "placeholder" | null | undefined;
412
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
413
+ /**
414
+ * Card header row variants
415
+ *
416
+ * Controls the header row layout
417
+ */
418
+ declare const cardHeaderRowVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
419
+ /**
420
+ * Card header variants
421
+ *
422
+ * Controls the header text styling
423
+ */
424
+ declare const cardHeaderVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
425
+ /**
426
+ * Card info icon variants
427
+ *
428
+ * Controls the info icon styling
429
+ */
430
+ declare const cardInfoIconVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
431
+ /**
432
+ * Card action icon variants
433
+ *
434
+ * Controls the action icon styling (phone, etc.)
435
+ */
436
+ declare const cardActionIconVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
437
+ /**
438
+ * Card value variants
439
+ *
440
+ * Controls the main value styling
441
+ */
442
+ declare const cardValueVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
443
+ /**
444
+ * Card helper row variants
445
+ *
446
+ * Controls the helper row layout
447
+ */
448
+ declare const cardHelperRowVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
449
+ /**
450
+ * Card helper variants
451
+ *
452
+ * Controls the helper text styling (percentage change)
453
+ */
454
+ declare const cardHelperVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
455
+ /**
456
+ * Card helper description variants
457
+ *
458
+ * Controls the helper description text styling
459
+ */
460
+ declare const cardHelperDescriptionVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
461
+ /**
462
+ * Card metric title variants
463
+ *
464
+ * Controls the metric title styling
465
+ */
466
+ declare const cardMetricTitleVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
467
+ /**
468
+ * Card metric value variants
469
+ *
470
+ * Controls the metric value styling
471
+ */
472
+ declare const cardMetricValueVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
473
+ /**
474
+ * Card info label variants
475
+ *
476
+ * Controls the info label styling (for infoDate)
477
+ */
478
+ declare const cardInfoLabelVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
479
+ /**
480
+ * Card info text variants
481
+ *
482
+ * Controls the info text styling (for infoDate)
483
+ */
484
+ declare const cardInfoTextVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
485
+ /**
486
+ * Card currency label variants
487
+ *
488
+ * Controls the currency label styling
489
+ */
490
+ declare const cardCurrencyLabelVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
491
+ /**
492
+ * Card currency content variants
493
+ *
494
+ * Controls the currency content row layout
495
+ */
496
+ declare const cardCurrencyContentVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
497
+ /**
498
+ * Card currency icon variants
499
+ *
500
+ * Controls the currency icon styling
501
+ */
502
+ declare const cardCurrencyIconVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
503
+ /**
504
+ * Card currency text variants
505
+ *
506
+ * Controls the currency text styling
507
+ */
508
+ declare const cardCurrencyTextVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
509
+ /**
510
+ * Slot header/body/footer variants (estilo shadcn)
511
+ * Son “wrappers” que te permiten componer cards personalizadas.
512
+ */
513
+ declare const cardSlotHeaderVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
514
+ declare const cardSlotBodyVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
515
+ declare const cardSlotFooterVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
516
+
517
+ type CardVariant = 'default';
518
+ type CardContentVariant = 'default' | 'metric' | 'infoDate' | 'infoCurrency' | 'placeholder';
519
+ type CardVariantsProps = VariantProps<typeof cardVariants>;
520
+ /**
521
+ * Slots estilo shadcn:
522
+ * <bsg-card-header>, <bsg-card-body>, <bsg-card-footer>
523
+ */
524
+ declare class CardHeaderComponent {
525
+ readonly className: _angular_core.InputSignal<string | undefined>;
526
+ readonly classes: _angular_core.Signal<string>;
527
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardHeaderComponent, never>;
528
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardHeaderComponent, "bsg-card-header", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
529
+ }
530
+ declare class CardBodyComponent {
531
+ readonly className: _angular_core.InputSignal<string | undefined>;
532
+ readonly classes: _angular_core.Signal<string>;
533
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardBodyComponent, never>;
534
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardBodyComponent, "bsg-card-body", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
535
+ }
536
+ declare class CardFooterComponent {
537
+ readonly className: _angular_core.InputSignal<string | undefined>;
538
+ readonly classes: _angular_core.Signal<string>;
539
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardFooterComponent, never>;
540
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardFooterComponent, "bsg-card-footer", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
541
+ }
542
+ /**
543
+ * Card Component - Container
544
+ */
545
+ declare class CardComponent {
546
+ private sanitizer;
547
+ constructor(sanitizer: DomSanitizer);
548
+ readonly variant: _angular_core.InputSignal<"default">;
549
+ readonly contentVariant: _angular_core.InputSignal<CardContentVariant>;
550
+ readonly className: _angular_core.InputSignal<string | undefined>;
551
+ readonly metricTitle: _angular_core.InputSignal<string>;
552
+ readonly metricValue: _angular_core.InputSignal<string | number>;
553
+ readonly dateLabel: _angular_core.InputSignal<string>;
554
+ readonly dateText: _angular_core.InputSignal<string>;
555
+ readonly currencyLabel: _angular_core.InputSignal<string>;
556
+ readonly currencyText: _angular_core.InputSignal<string>;
557
+ readonly header: _angular_core.InputSignal<string>;
558
+ readonly value: _angular_core.InputSignal<string | number>;
559
+ readonly helper: _angular_core.InputSignal<string>;
560
+ readonly icon: _angular_core.InputSignal<string>;
561
+ readonly helperDescription: _angular_core.InputSignal<string>;
562
+ readonly slotHeaders: _angular_core.Signal<readonly CardHeaderComponent[]>;
563
+ readonly slotBodies: _angular_core.Signal<readonly CardBodyComponent[]>;
564
+ readonly slotFooters: _angular_core.Signal<readonly CardFooterComponent[]>;
565
+ readonly hasSlots: _angular_core.Signal<boolean>;
566
+ readonly cardClasses: _angular_core.Signal<string>;
567
+ readonly headerRowClasses: _angular_core.Signal<string>;
568
+ readonly headerClasses: _angular_core.Signal<string>;
569
+ readonly infoIconClasses: _angular_core.Signal<string>;
570
+ readonly actionIconClasses: _angular_core.Signal<string>;
571
+ readonly valueClasses: _angular_core.Signal<string>;
572
+ readonly helperRowClasses: _angular_core.Signal<string>;
573
+ readonly helperClasses: _angular_core.Signal<string>;
574
+ readonly helperDescriptionClasses: _angular_core.Signal<string>;
575
+ readonly metricTitleClasses: _angular_core.Signal<string>;
576
+ readonly metricValueClasses: _angular_core.Signal<string>;
577
+ readonly infoLabelClasses: _angular_core.Signal<string>;
578
+ readonly infoTextClasses: _angular_core.Signal<string>;
579
+ readonly currencyLabelClasses: _angular_core.Signal<string>;
580
+ readonly currencyContentClasses: _angular_core.Signal<string>;
581
+ readonly currencyIconClasses: _angular_core.Signal<string>;
582
+ readonly currencyTextClasses: _angular_core.Signal<string>;
583
+ getCurrencyIcon(): SafeHtml;
584
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardComponent, never>;
585
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardComponent, "bsg-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "contentVariant": { "alias": "contentVariant"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "metricTitle": { "alias": "metricTitle"; "required": false; "isSignal": true; }; "metricValue": { "alias": "metricValue"; "required": false; "isSignal": true; }; "dateLabel": { "alias": "dateLabel"; "required": false; "isSignal": true; }; "dateText": { "alias": "dateText"; "required": false; "isSignal": true; }; "currencyLabel": { "alias": "currencyLabel"; "required": false; "isSignal": true; }; "currencyText": { "alias": "currencyText"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "helper": { "alias": "helper"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "helperDescription": { "alias": "helperDescription"; "required": false; "isSignal": true; }; }, {}, ["slotHeaders", "slotBodies", "slotFooters"], ["bsg-card-header", "bsg-card-body", "bsg-card-footer"], true, never>;
586
+ }
587
+
588
+ declare const carouselContainerVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
589
+ declare const carouselRootVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
590
+ declare const carouselViewportVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
591
+ declare const carouselTrackVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
592
+ /**
593
+ * Flechas circulares reales (no “se deforman”)
594
+ * Chevron centrado (solo 1 svg)
595
+ */
596
+ declare const carouselArrowVariants: (props?: ({
597
+ direction?: "prev" | "next" | null | undefined;
598
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
599
+ declare const carouselChevronVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
600
+ declare const carouselIndicatorsVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
601
+ declare const carouselIndicatorVariants: (props?: ({
602
+ active?: boolean | null | undefined;
603
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
604
+
605
+ type CarouselArrowVariantsProps = VariantProps<typeof carouselArrowVariants>;
606
+ type CarouselIndicatorVariantsProps = VariantProps<typeof carouselIndicatorVariants>;
607
+ declare class CarouselItemComponent {
608
+ elementRef: ElementRef;
609
+ constructor(elementRef: ElementRef);
610
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CarouselItemComponent, never>;
611
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CarouselItemComponent, "bsg-carousel-item", never, {}, {}, never, ["*"], true, never>;
612
+ }
613
+ declare class CarouselComponent implements AfterContentInit {
614
+ private cdr;
615
+ private elementRef;
616
+ readonly itemsPerView: _angular_core.InputSignal<number>;
617
+ readonly showArrows: _angular_core.InputSignal<boolean>;
618
+ readonly showIndicators: _angular_core.InputSignal<boolean>;
619
+ readonly loop: _angular_core.InputSignal<boolean>;
620
+ readonly className: _angular_core.InputSignal<string | undefined>;
621
+ readonly items: _angular_core.Signal<readonly CarouselItemComponent[]>;
622
+ readonly viewportElement: _angular_core.Signal<ElementRef<any> | undefined>;
623
+ readonly trackElement: _angular_core.Signal<ElementRef<any> | undefined>;
624
+ readonly currentIndex: _angular_core.WritableSignal<number>;
625
+ readonly totalItems: _angular_core.WritableSignal<number>;
626
+ readonly gap: _angular_core.WritableSignal<number>;
627
+ private document;
628
+ constructor(cdr: ChangeDetectorRef, elementRef: ElementRef);
629
+ ngAfterContentInit(): void;
630
+ readonly pages: _angular_core.Signal<number[]>;
631
+ readonly maxIndex: _angular_core.Signal<number>;
632
+ /**
633
+ * ✅ Movimiento por PÁGINA (corrige tu bug):
634
+ * Antes movías por 1 item (itemWidth+gap) pero tu maxIndex era por páginas.
635
+ */
636
+ readonly translateX: _angular_core.Signal<string>;
637
+ readonly containerClasses: _angular_core.Signal<string>;
638
+ readonly rootClasses: _angular_core.Signal<string>;
639
+ readonly viewportClasses: _angular_core.Signal<string>;
640
+ readonly trackClasses: _angular_core.Signal<string>;
641
+ readonly indicatorsClasses: _angular_core.Signal<string>;
642
+ readonly chevronClasses: _angular_core.Signal<string>;
643
+ arrowClasses(direction: 'prev' | 'next'): string;
644
+ indicatorClasses(active: boolean): string;
645
+ private refreshMeasurements;
646
+ private updateGapFromTrack;
647
+ next(): void;
648
+ previous(): void;
649
+ goToSlide(index: number): void;
650
+ onResize(): void;
651
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CarouselComponent, never>;
652
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CarouselComponent, "bsg-carousel", never, { "itemsPerView": { "alias": "itemsPerView"; "required": false; "isSignal": true; }; "showArrows": { "alias": "showArrows"; "required": false; "isSignal": true; }; "showIndicators": { "alias": "showIndicators"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, ["items"], ["*"], true, never>;
653
+ }
654
+
655
+ declare const checkboxVariants: (props?: ({
656
+ size?: "default" | "sm" | "lg" | null | undefined;
657
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
658
+ type CheckboxSize = VariantProps<typeof checkboxVariants>['size'];
659
+ declare class CheckboxComponent implements ControlValueAccessor {
660
+ inputId: _angular_core.InputSignal<string | undefined>;
661
+ disabled: _angular_core.InputSignal<boolean>;
662
+ required: _angular_core.InputSignal<boolean>;
663
+ ariaInvalid: _angular_core.InputSignal<boolean | undefined>;
664
+ size: _angular_core.InputSignal<"default" | "sm" | "lg" | null | undefined>;
665
+ className: _angular_core.InputSignal<string | undefined>;
666
+ get hostClasses(): string;
667
+ checked: _angular_core.WritableSignal<boolean>;
668
+ disabledState: _angular_core.WritableSignal<boolean>;
669
+ private onChangeCallback;
670
+ private onTouchedCallback;
671
+ get computedClasses(): string;
672
+ get iconSize(): string;
673
+ onCheckboxChange(event: Event): void;
674
+ onTouched(): void;
675
+ writeValue(value: boolean): void;
676
+ registerOnChange(fn: (value: boolean) => void): void;
677
+ registerOnTouched(fn: () => void): void;
678
+ setDisabledState(isDisabled: boolean): void;
679
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
680
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "bsg-checkbox", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "ariaInvalid": { "alias": "ariaInvalid"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
681
+ }
682
+
683
+ /**
684
+ * Collapsible Component - Following shadcn/ui pattern
685
+ *
686
+ * A component that can be expanded or collapsed.
687
+ * Based on Radix UI Collapsible primitive.
688
+ *
689
+ * @example
690
+ * ```html
691
+ * <bsg-collapsible [open]="isOpen" (openChange)="isOpen = $event">
692
+ * <button bsgCollapsibleTrigger>Toggle</button>
693
+ * <bsg-collapsible-content>
694
+ * Hidden content here
695
+ * </bsg-collapsible-content>
696
+ * </bsg-collapsible>
697
+ * ```
698
+ */
699
+ declare class CollapsibleComponent implements AfterContentInit {
700
+ /** Whether the collapsible is open (controlled mode) */
701
+ readonly open: _angular_core.InputSignal<boolean | undefined>;
702
+ /** Default open state (uncontrolled mode) */
703
+ readonly defaultOpen: _angular_core.InputSignal<boolean>;
704
+ /** Whether the collapsible is disabled */
705
+ readonly disabled: _angular_core.InputSignal<boolean>;
706
+ /** Additional CSS classes */
707
+ readonly className: _angular_core.InputSignal<string | undefined>;
708
+ /** Emits when open state changes */
709
+ readonly openChange: _angular_core.OutputEmitterRef<boolean>;
710
+ private readonly _isOpen;
711
+ readonly isOpen: _angular_core.Signal<boolean>;
712
+ readonly dataState: _angular_core.Signal<"open" | "closed">;
713
+ readonly containerClasses: _angular_core.Signal<string>;
714
+ constructor();
715
+ ngAfterContentInit(): void;
716
+ /**
717
+ * Toggle the collapsible state
718
+ */
719
+ toggle(): void;
720
+ /**
721
+ * Set the collapsible state
722
+ */
723
+ setOpen(open: boolean): void;
724
+ onKeydown(event: KeyboardEvent): void;
725
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CollapsibleComponent, never>;
726
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CollapsibleComponent, "bsg-collapsible", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
727
+ }
728
+
729
+ /**
730
+ * CollapsibleTrigger Directive - Following shadcn/ui pattern
731
+ *
732
+ * Directive that makes an element toggle the parent collapsible.
733
+ *
734
+ * @example
735
+ * ```html
736
+ * <bsg-collapsible>
737
+ * <button bsgCollapsibleTrigger>Toggle</button>
738
+ * <bsg-collapsible-content>Content</bsg-collapsible-content>
739
+ * </bsg-collapsible>
740
+ * ```
741
+ */
742
+ declare class CollapsibleTriggerDirective {
743
+ private readonly collapsible;
744
+ /** Whether the trigger is disabled independently */
745
+ readonly disabled: _angular_core.InputSignal<boolean>;
746
+ readonly isDisabled: _angular_core.Signal<boolean>;
747
+ readonly isExpanded: _angular_core.Signal<boolean>;
748
+ readonly dataState: _angular_core.Signal<"open" | "closed">;
749
+ onClick(event: MouseEvent): void;
750
+ onKeydown(event: KeyboardEvent): void;
751
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CollapsibleTriggerDirective, never>;
752
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CollapsibleTriggerDirective, "[bsgCollapsibleTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
753
+ }
754
+
755
+ /**
756
+ * CollapsibleContent Component - Following shadcn/ui pattern
757
+ *
758
+ * The content that is shown/hidden when the collapsible is toggled.
759
+ * Includes animation support.
760
+ *
761
+ * @example
762
+ * ```html
763
+ * <bsg-collapsible>
764
+ * <button bsgCollapsibleTrigger>Toggle</button>
765
+ * <bsg-collapsible-content>
766
+ * This content will be animated in/out
767
+ * </bsg-collapsible-content>
768
+ * </bsg-collapsible>
769
+ * ```
770
+ */
771
+ declare class CollapsibleContentComponent implements AfterViewInit, OnDestroy {
772
+ private readonly collapsible;
773
+ private readonly elementRef;
774
+ /** Additional CSS classes */
775
+ readonly className: _angular_core.InputSignal<string | undefined>;
776
+ /** Force mount (always render even when closed) */
777
+ readonly forceMount: _angular_core.InputSignal<boolean>;
778
+ private readonly _contentHeight;
779
+ private readonly _shouldRender;
780
+ private animationTimeout;
781
+ readonly isOpen: _angular_core.Signal<boolean>;
782
+ readonly dataState: _angular_core.Signal<"open" | "closed">;
783
+ readonly isHidden: _angular_core.Signal<boolean>;
784
+ readonly shouldRender: _angular_core.Signal<boolean>;
785
+ readonly contentHeight: _angular_core.Signal<string>;
786
+ readonly contentClasses: _angular_core.Signal<string>;
787
+ constructor();
788
+ ngAfterViewInit(): void;
789
+ ngOnDestroy(): void;
790
+ private measureHeight;
791
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CollapsibleContentComponent, never>;
792
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CollapsibleContentComponent, "bsg-collapsible-content", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; "forceMount": { "alias": "forceMount"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
793
+ }
794
+
795
+ type DialogSize = 'sm' | 'md' | 'lg';
796
+ type DialogHeaderTone = 'brand' | 'info' | 'secondary';
797
+ /**
798
+ * Dialog Component
799
+ *
800
+ * A modal dialog component with multiple sizes and header tones.
801
+ *
802
+ * Usage:
803
+ * ```html
804
+ * <bsg-dialog [open]="isOpen" size="md" headerTone="brand" (closeDialog)="onClose()">
805
+ * <div dialog-header>Dialog Title</div>
806
+ * <div dialog-body>Dialog content goes here</div>
807
+ * <div dialog-footer>
808
+ * <button>Cancel</button>
809
+ * <button>Confirm</button>
810
+ * </div>
811
+ * </bsg-dialog>
812
+ * ```
813
+ */
814
+ declare class DialogComponent {
815
+ /** Controls dialog visibility */
816
+ readonly open: _angular_core.InputSignal<boolean>;
817
+ /** Dialog size */
818
+ readonly size: _angular_core.InputSignal<DialogSize>;
819
+ /** Header tone/theme */
820
+ readonly headerTone: _angular_core.InputSignal<DialogHeaderTone>;
821
+ /** Enable scrollable body */
822
+ readonly scrollable: _angular_core.InputSignal<boolean>;
823
+ /** Allow dismissing via ESC or backdrop click */
824
+ readonly dismissible: _angular_core.InputSignal<boolean>;
825
+ /** Whether footer content is present */
826
+ readonly hasFooter: _angular_core.InputSignal<boolean>;
827
+ /** Additional CSS classes */
828
+ readonly className: _angular_core.InputSignal<string | undefined>;
829
+ /** Close event */
830
+ readonly closeDialog: _angular_core.OutputEmitterRef<void>;
831
+ readonly overlayClasses: _angular_core.Signal<string>;
832
+ readonly contentClasses: _angular_core.Signal<string>;
833
+ readonly headerClasses: _angular_core.Signal<string>;
834
+ readonly bodyClasses: _angular_core.Signal<string>;
835
+ readonly footerClasses: _angular_core.Signal<string>;
836
+ onOverlayClick(): void;
837
+ close(): void;
838
+ onEscapeKey(event: Event): void;
839
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogComponent, never>;
840
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogComponent, "bsg-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "headerTone": { "alias": "headerTone"; "required": false; "isSignal": true; }; "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "hasFooter": { "alias": "hasFooter"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "closeDialog": "closeDialog"; }, never, ["[dialog-header]", "[dialog-body]", "[dialog-footer]"], true, never>;
841
+ }
842
+
843
+ /**
844
+ * Dialog overlay variants
845
+ *
846
+ * Controls the backdrop/overlay layer
847
+ */
848
+ declare const dialogOverlayVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
849
+ /**
850
+ * Dialog content variants
851
+ *
852
+ * Controls the main dialog container
853
+ */
854
+ declare const dialogContentVariants: (props?: ({
855
+ size?: "sm" | "md" | "lg" | null | undefined;
856
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
857
+ type DialogContentVariantsProps = VariantProps<typeof dialogContentVariants>;
858
+ /**
859
+ * Dialog header variants
860
+ *
861
+ * Controls the header section with tone variants
862
+ */
863
+ declare const dialogHeaderVariants: (props?: ({
864
+ tone?: "info" | "secondary" | "brand" | null | undefined;
865
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
866
+ type DialogHeaderVariantsProps = VariantProps<typeof dialogHeaderVariants>;
867
+ /**
868
+ * Dialog body variants
869
+ *
870
+ * Controls the body/content section
871
+ */
872
+ declare const dialogBodyVariants: (props?: ({
873
+ scrollable?: boolean | null | undefined;
874
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
875
+ type DialogBodyVariantsProps = VariantProps<typeof dialogBodyVariants>;
876
+ /**
877
+ * Dialog footer variants
878
+ *
879
+ * Controls the footer section with actions
880
+ */
881
+ declare const dialogFooterVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
882
+
883
+ declare const inputVariants: (props?: ({
884
+ size?: "default" | "sm" | "lg" | null | undefined;
885
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
886
+ type InputSize = VariantProps<typeof inputVariants>['size'];
887
+ declare class InputComponent implements ControlValueAccessor, Validator {
888
+ type: _angular_core.InputSignal<string>;
889
+ placeholder: _angular_core.InputSignal<string>;
890
+ disabled: _angular_core.InputSignal<boolean>;
891
+ required: _angular_core.InputSignal<boolean>;
892
+ readonly: _angular_core.InputSignal<boolean>;
893
+ ariaInvalid: _angular_core.InputSignal<boolean | undefined>;
894
+ size: _angular_core.InputSignal<"default" | "sm" | "lg" | null | undefined>;
895
+ className: _angular_core.InputSignal<string | undefined>;
896
+ get hostClasses(): string;
897
+ value: _angular_core.WritableSignal<string>;
898
+ disabledState: _angular_core.WritableSignal<boolean>;
899
+ private onChangeCallback;
900
+ private onTouchedCallback;
901
+ get computedClasses(): string;
902
+ onInput(event: Event): void;
903
+ onTouched(): void;
904
+ onFocus(): void;
905
+ writeValue(value: string): void;
906
+ registerOnChange(fn: (value: string) => void): void;
907
+ registerOnTouched(fn: () => void): void;
908
+ setDisabledState(isDisabled: boolean): void;
909
+ validate(control: AbstractControl): ValidationErrors | null;
910
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputComponent, never>;
911
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputComponent, "bsg-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "ariaInvalid": { "alias": "ariaInvalid"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
912
+ }
913
+
914
+ /**
915
+ * Label Component
916
+ *
917
+ * A simple text label component following shadcn/ui pattern.
918
+ *
919
+ * Usage:
920
+ * ```html
921
+ * <bsg-label text="My Label"></bsg-label>
922
+ * <bsg-label text="Custom styled" className="font-bold"></bsg-label>
923
+ * ```
924
+ */
925
+ declare class LabelComponent {
926
+ /** Label text content */
927
+ readonly text: _angular_core.InputSignal<string>;
928
+ /** Additional CSS classes */
929
+ readonly className: _angular_core.InputSignal<string | undefined>;
930
+ /** Computed classes combining variants and custom className */
931
+ readonly computedClasses: _angular_core.Signal<string>;
932
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LabelComponent, never>;
933
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LabelComponent, "bsg-label", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
934
+ }
935
+
936
+ /**
937
+ * Label variants
938
+ *
939
+ * Controls the label text styling
940
+ */
941
+ declare const labelVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
942
+
943
+ /**
944
+ * Radio wrapper variants
945
+ *
946
+ * Controls the overall radio button container layout and sizing
947
+ */
948
+ declare const radioWrapperVariants: (props?: ({
949
+ size?: "sm" | "md" | null | undefined;
950
+ state?: "default" | "disabled" | "hover" | "checked" | "focus" | null | undefined;
951
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
952
+ /**
953
+ * Radio focus ring variants
954
+ *
955
+ * Controls the outer focus ring that appears in focus state
956
+ */
957
+ declare const radioFocusRingVariants: (props?: ({
958
+ size?: "sm" | "md" | null | undefined;
959
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
960
+ /**
961
+ * Radio outer circle variants
962
+ *
963
+ * Controls the main outer circle of the radio button
964
+ */
965
+ declare const radioOuterVariants: (props?: ({
966
+ size?: "sm" | "md" | null | undefined;
967
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
968
+ /**
969
+ * Radio inner dot variants
970
+ *
971
+ * Controls the inner checked indicator dot
972
+ */
973
+ declare const radioInnerVariants: (props?: ({
974
+ size?: "sm" | "md" | null | undefined;
975
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
976
+
977
+ type RadioSize = 'sm' | 'md';
978
+ type RadioState = 'default' | 'hover' | 'checked' | 'disabled' | 'focus';
979
+ type RadioWrapperVariantsProps = VariantProps<typeof radioWrapperVariants>;
980
+ type RadioFocusRingVariantsProps = VariantProps<typeof radioFocusRingVariants>;
981
+ type RadioOuterVariantsProps = VariantProps<typeof radioOuterVariants>;
982
+ type RadioInnerVariantsProps = VariantProps<typeof radioInnerVariants>;
983
+ /**
984
+ * Radio Component - Custom radio button with various states
985
+ *
986
+ * Usage:
987
+ * ```html
988
+ * <bsg-radio [size]="'md'" [state]="'default'" [checked]="false"></bsg-radio>
989
+ * ```
990
+ */
991
+ declare class RadioComponent {
992
+ /** Radio size */
993
+ readonly size: _angular_core.InputSignal<RadioSize>;
994
+ /** Radio state (external input) */
995
+ readonly state: _angular_core.InputSignal<RadioState>;
996
+ /** Checked state (external input) */
997
+ readonly checked: _angular_core.InputSignal<boolean>;
998
+ /** Additional CSS classes for wrapper */
999
+ readonly className: _angular_core.InputSignal<string | undefined>;
1000
+ /** Emits when state changes */
1001
+ readonly stateChange: _angular_core.OutputEmitterRef<RadioState>;
1002
+ /** Emits when checked state changes */
1003
+ readonly checkedChange: _angular_core.OutputEmitterRef<boolean>;
1004
+ /** Emits when value changes */
1005
+ readonly valueChange: _angular_core.OutputEmitterRef<boolean>;
1006
+ private readonly internalState;
1007
+ private readonly internalChecked;
1008
+ constructor();
1009
+ readonly currentState: _angular_core.Signal<RadioState>;
1010
+ readonly currentChecked: _angular_core.Signal<boolean>;
1011
+ readonly wrapperClasses: _angular_core.Signal<string>;
1012
+ readonly focusRingClasses: _angular_core.Signal<string>;
1013
+ readonly outerClasses: _angular_core.Signal<string>;
1014
+ readonly innerClasses: _angular_core.Signal<string>;
1015
+ readonly outerSize: _angular_core.Signal<16 | 20>;
1016
+ readonly innerSize: _angular_core.Signal<14 | 10>;
1017
+ readonly focusRingSize: _angular_core.Signal<26 | 22>;
1018
+ readonly outerStrokeColor: _angular_core.Signal<"#7C3AED" | "#64748B" | "#8B5CF6">;
1019
+ readonly outerFillColor: _angular_core.Signal<"none" | "#64748B">;
1020
+ readonly focusRingColor: _angular_core.Signal<"#7C3AED" | "#9333EA">;
1021
+ handleClick(): void;
1022
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioComponent, never>;
1023
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "bsg-radio", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "stateChange": "stateChange"; "checkedChange": "checkedChange"; "valueChange": "valueChange"; }, never, never, true, never>;
1024
+ }
1025
+
1026
+ /**
1027
+ * Radio Group container variants
1028
+ *
1029
+ * Controls the overall radio group layout, orientation, and spacing
1030
+ */
1031
+ declare const radioGroupVariants: (props?: ({
1032
+ orientation?: "horizontal" | "vertical" | null | undefined;
1033
+ size?: "sm" | "md" | null | undefined;
1034
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1035
+ /**
1036
+ * Radio Option variants (container for radio + label)
1037
+ *
1038
+ * Controls the layout and spacing between radio button and its label
1039
+ */
1040
+ declare const radioOptionVariants: (props?: ({
1041
+ size?: "sm" | "md" | null | undefined;
1042
+ disabled?: boolean | null | undefined;
1043
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1044
+ /**
1045
+ * Radio Label variants
1046
+ *
1047
+ * Controls the text styling for radio button labels
1048
+ */
1049
+ declare const radioLabelVariants: (props?: ({
1050
+ size?: "sm" | "md" | null | undefined;
1051
+ disabled?: boolean | null | undefined;
1052
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1053
+
1054
+ type RadioGroupOrientation = 'horizontal' | 'vertical';
1055
+ interface RadioGroupOption {
1056
+ value: string;
1057
+ label: string;
1058
+ disabled?: boolean;
1059
+ }
1060
+ type RadioGroupVariantsProps = VariantProps<typeof radioGroupVariants>;
1061
+ type RadioOptionVariantsProps = VariantProps<typeof radioOptionVariants>;
1062
+ type RadioLabelVariantsProps = VariantProps<typeof radioLabelVariants>;
1063
+ /**
1064
+ * RadioGroup Component - Container for radio button options
1065
+ *
1066
+ * Usage:
1067
+ * ```html
1068
+ * <bsg-radio-group
1069
+ * [options]="myOptions"
1070
+ * [selectedValue]="selectedVal"
1071
+ * (valueChange)="onValueChange($event)"
1072
+ * ></bsg-radio-group>
1073
+ * ```
1074
+ */
1075
+ declare class RadioGroupComponent {
1076
+ /** Size of the radio buttons */
1077
+ readonly size: _angular_core.InputSignal<RadioSize>;
1078
+ /** Layout orientation */
1079
+ readonly orientation: _angular_core.InputSignal<RadioGroupOrientation>;
1080
+ /** List of options */
1081
+ readonly options: _angular_core.InputSignal<RadioGroupOption[]>;
1082
+ /** Currently selected value (external input) */
1083
+ readonly selectedValue: _angular_core.InputSignal<string>;
1084
+ /** Additional CSS classes */
1085
+ readonly className: _angular_core.InputSignal<string | undefined>;
1086
+ /** Value change event */
1087
+ readonly valueChange: _angular_core.OutputEmitterRef<string>;
1088
+ /** Selection change event */
1089
+ readonly selectionChange: _angular_core.OutputEmitterRef<RadioGroupOption>;
1090
+ private readonly internalSelectedValue;
1091
+ constructor();
1092
+ readonly currentSelectedValue: _angular_core.Signal<string>;
1093
+ readonly groupClasses: _angular_core.Signal<string>;
1094
+ getOptionClasses(option: RadioGroupOption): string;
1095
+ getLabelClasses(option: RadioGroupOption): string;
1096
+ getRadioState(value: string, disabled?: boolean): 'default' | 'checked' | 'disabled';
1097
+ selectOption(value: string): void;
1098
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioGroupComponent, never>;
1099
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioGroupComponent, "bsg-radio-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "selectedValue": { "alias": "selectedValue"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
1100
+ }
1101
+
1102
+ /**
1103
+ * Select wrapper variants
1104
+ *
1105
+ * Controls the overall select container layout
1106
+ */
1107
+ declare const selectWrapperVariants: (props?: ({
1108
+ size?: "sm" | "md" | "lg" | null | undefined;
1109
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1110
+ /**
1111
+ * Select trigger variants
1112
+ *
1113
+ * Controls the clickable select button
1114
+ */
1115
+ declare const selectTriggerVariants: (props?: ({
1116
+ size?: "sm" | "md" | "lg" | null | undefined;
1117
+ state?: "default" | "disabled" | "hover" | "focus" | "error" | null | undefined;
1118
+ open?: boolean | null | undefined;
1119
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1120
+ /**
1121
+ * Select value variants
1122
+ *
1123
+ * Controls the selected value text display
1124
+ */
1125
+ declare const selectValueVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1126
+ /**
1127
+ * Select icon variants
1128
+ *
1129
+ * Controls the chevron icon
1130
+ */
1131
+ declare const selectIconVariants: (props?: ({
1132
+ open?: boolean | null | undefined;
1133
+ state?: "default" | "disabled" | "hover" | "focus" | "error" | null | undefined;
1134
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1135
+ /**
1136
+ * Select dropdown variants
1137
+ *
1138
+ * Controls the dropdown menu container
1139
+ */
1140
+ declare const selectDropdownVariants: (props?: ({
1141
+ size?: "sm" | "md" | "lg" | null | undefined;
1142
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1143
+ /**
1144
+ * Select option variants
1145
+ *
1146
+ * Controls individual dropdown options
1147
+ */
1148
+ declare const selectOptionVariants: (props?: ({
1149
+ selected?: boolean | null | undefined;
1150
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1151
+ /**
1152
+ * Select error message variants
1153
+ *
1154
+ * Controls the error message text
1155
+ */
1156
+ declare const selectErrorVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1157
+
1158
+ type SelectSize = 'sm' | 'md' | 'lg';
1159
+ type SelectState = 'default' | 'hover' | 'focus' | 'disabled' | 'error';
1160
+ interface SelectOption {
1161
+ value: string;
1162
+ label: string;
1163
+ }
1164
+ type SelectTriggerVariantsProps = VariantProps<typeof selectTriggerVariants>;
1165
+ /**
1166
+ * Select Component - Custom dropdown select
1167
+ *
1168
+ * Following shadcn/ui pattern:
1169
+ * ```html
1170
+ * <bsg-select
1171
+ * [options]="options"
1172
+ * [placeholder]="'Select an option'"
1173
+ * (selectionChange)="onSelect($event)"
1174
+ * />
1175
+ * ```
1176
+ */
1177
+ declare class SelectComponent {
1178
+ /** Size of the select */
1179
+ readonly size: _angular_core.InputSignal<SelectSize>;
1180
+ /** Current state */
1181
+ readonly state: _angular_core.InputSignal<SelectState>;
1182
+ /** List of options */
1183
+ readonly options: _angular_core.InputSignal<SelectOption[]>;
1184
+ /** Currently selected value */
1185
+ readonly selectedValue: _angular_core.InputSignal<string>;
1186
+ /** Placeholder text */
1187
+ readonly placeholder: _angular_core.InputSignal<string>;
1188
+ /** Error message (shown when state is 'error') */
1189
+ readonly errorMessage: _angular_core.InputSignal<string>;
1190
+ /** Additional CSS classes for wrapper */
1191
+ readonly className: _angular_core.InputSignal<string | undefined>;
1192
+ /** Value change event */
1193
+ readonly valueChange: _angular_core.OutputEmitterRef<string>;
1194
+ /** Selection change event */
1195
+ readonly selectionChange: _angular_core.OutputEmitterRef<SelectOption>;
1196
+ /** Open state change event */
1197
+ readonly openChange: _angular_core.OutputEmitterRef<boolean>;
1198
+ private readonly _isOpen;
1199
+ private readonly _internalSelectedValue;
1200
+ constructor();
1201
+ readonly isOpen: _angular_core.Signal<boolean>;
1202
+ readonly currentSelectedValue: _angular_core.Signal<string>;
1203
+ readonly wrapperClasses: _angular_core.Signal<string>;
1204
+ readonly triggerClasses: _angular_core.Signal<string>;
1205
+ readonly valueClasses: _angular_core.Signal<string>;
1206
+ readonly iconClasses: _angular_core.Signal<string>;
1207
+ readonly dropdownClasses: _angular_core.Signal<string>;
1208
+ readonly errorClasses: _angular_core.Signal<string>;
1209
+ readonly selectedLabel: _angular_core.Signal<string>;
1210
+ getOptionClasses(value: string): string;
1211
+ toggleDropdown(): void;
1212
+ selectOption(option: SelectOption): void;
1213
+ onDocumentClick(event: MouseEvent): void;
1214
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent, never>;
1215
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "bsg-select", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "selectedValue": { "alias": "selectedValue"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "selectionChange": "selectionChange"; "openChange": "openChange"; }, never, never, true, never>;
1216
+ }
1217
+
1218
+ type SidebarState = 'expanded' | 'collapsed';
1219
+ type SidebarSide = 'left' | 'right';
1220
+ type SidebarVariant = 'sidebar' | 'floating' | 'inset';
1221
+ type SidebarCollapsible = 'offcanvas' | 'icon' | 'none';
1222
+ /**
1223
+ * Sidebar Service - Manages sidebar state following shadcn pattern
1224
+ *
1225
+ * This service provides reactive state management for the sidebar component,
1226
+ * similar to React's useSidebar hook in shadcn/ui.
1227
+ */
1228
+ declare class SidebarService {
1229
+ private readonly _state;
1230
+ private readonly _open;
1231
+ private readonly _openMobile;
1232
+ private readonly _isMobile;
1233
+ readonly side: _angular_core.WritableSignal<SidebarSide>;
1234
+ readonly variant: _angular_core.WritableSignal<SidebarVariant>;
1235
+ readonly collapsible: _angular_core.WritableSignal<SidebarCollapsible>;
1236
+ readonly SIDEBAR_WIDTH = "16rem";
1237
+ readonly SIDEBAR_WIDTH_MOBILE = "18rem";
1238
+ readonly SIDEBAR_WIDTH_ICON = "3rem";
1239
+ readonly SIDEBAR_KEYBOARD_SHORTCUT = "b";
1240
+ readonly state: _angular_core.Signal<SidebarState>;
1241
+ readonly open: _angular_core.Signal<boolean>;
1242
+ readonly openMobile: _angular_core.Signal<boolean>;
1243
+ readonly isMobile: _angular_core.Signal<boolean>;
1244
+ /**
1245
+ * Set sidebar open state
1246
+ */
1247
+ setOpen(open: boolean): void;
1248
+ /**
1249
+ * Set mobile sidebar open state
1250
+ */
1251
+ setOpenMobile(open: boolean): void;
1252
+ /**
1253
+ * Toggle sidebar state
1254
+ */
1255
+ toggle(): void;
1256
+ /**
1257
+ * Set mobile detection
1258
+ */
1259
+ setIsMobile(isMobile: boolean): void;
1260
+ /**
1261
+ * Configure sidebar
1262
+ */
1263
+ configure(config: {
1264
+ side?: SidebarSide;
1265
+ variant?: SidebarVariant;
1266
+ collapsible?: SidebarCollapsible;
1267
+ defaultOpen?: boolean;
1268
+ }): void;
1269
+ /**
1270
+ * Initialize from stored state (cookie)
1271
+ */
1272
+ initializeFromStorage(): void;
1273
+ /**
1274
+ * Persist state to cookie
1275
+ */
1276
+ private persistState;
1277
+ /**
1278
+ * Get stored state from cookie
1279
+ */
1280
+ private getStoredState;
1281
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarService, never>;
1282
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SidebarService>;
1283
+ }
1284
+
1285
+ /**
1286
+ * SidebarProvider Component - Following shadcn/ui pattern
1287
+ *
1288
+ * Wraps the sidebar and provides context for state management.
1289
+ * Must wrap both Sidebar and SidebarInset components.
1290
+ *
1291
+ * @example
1292
+ * ```html
1293
+ * <bsg-sidebar-provider [defaultOpen]="true">
1294
+ * <bsg-sidebar>
1295
+ * <!-- sidebar content -->
1296
+ * </bsg-sidebar>
1297
+ * <bsg-sidebar-inset>
1298
+ * <!-- main content -->
1299
+ * </bsg-sidebar-inset>
1300
+ * </bsg-sidebar-provider>
1301
+ * ```
1302
+ */
1303
+ declare class SidebarProviderComponent implements OnInit, OnDestroy {
1304
+ protected readonly sidebarService: SidebarService;
1305
+ private readonly platformId;
1306
+ /** Default open state */
1307
+ readonly defaultOpen: _angular_core.InputSignal<boolean>;
1308
+ /** Open state (controlled mode) */
1309
+ readonly open: _angular_core.InputSignal<boolean | undefined>;
1310
+ /** Emits when open state changes */
1311
+ readonly openChange: _angular_core.OutputEmitterRef<boolean>;
1312
+ /** Additional CSS classes */
1313
+ readonly className: _angular_core.InputSignal<string | undefined>;
1314
+ /** Custom styles */
1315
+ readonly style: _angular_core.InputSignal<Record<string, string> | undefined>;
1316
+ private mediaQueryList;
1317
+ readonly providerClasses: _angular_core.Signal<string>;
1318
+ readonly providerStyles: _angular_core.Signal<{
1319
+ '--sidebar-width': string;
1320
+ '--sidebar-width-icon': string;
1321
+ }>;
1322
+ constructor();
1323
+ ngOnInit(): void;
1324
+ ngOnDestroy(): void;
1325
+ handleKeydown(event: KeyboardEvent): void;
1326
+ private setupMobileDetection;
1327
+ private handleMediaChange;
1328
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarProviderComponent, never>;
1329
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarProviderComponent, "bsg-sidebar-provider", never, { "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; }, never, ["*"], true, never>;
1330
+ }
1331
+
1332
+ /**
1333
+ * Sidebar CSS Variables (following shadcn pattern)
1334
+ * These should be defined in your global CSS:
1335
+ *
1336
+ * :root {
1337
+ * --sidebar-width: 16rem;
1338
+ * --sidebar-width-icon: 3rem;
1339
+ * --sidebar: oklch(0.985 0 0);
1340
+ * --sidebar-foreground: oklch(0.145 0 0);
1341
+ * --sidebar-primary: oklch(0.205 0 0);
1342
+ * --sidebar-primary-foreground: oklch(0.985 0 0);
1343
+ * --sidebar-accent: oklch(0.97 0 0);
1344
+ * --sidebar-accent-foreground: oklch(0.205 0 0);
1345
+ * --sidebar-border: oklch(0.922 0 0);
1346
+ * --sidebar-ring: oklch(0.708 0 0);
1347
+ * }
1348
+ */
1349
+ /**
1350
+ * Sidebar Provider wrapper variants
1351
+ */
1352
+ declare const sidebarProviderVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1353
+ /**
1354
+ * Sidebar container variants (following shadcn pattern)
1355
+ */
1356
+ declare const sidebarVariants: (props?: ({
1357
+ collapsible?: "icon" | "none" | "offcanvas" | null | undefined;
1358
+ side?: "left" | "right" | null | undefined;
1359
+ variant?: "sidebar" | "floating" | "inset" | null | undefined;
1360
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1361
+ /**
1362
+ * Sidebar wrapper (outermost container) - Fixed positioning wrapper
1363
+ */
1364
+ declare const sidebarWrapperVariants: (props?: ({
1365
+ side?: "left" | "right" | null | undefined;
1366
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1367
+ /**
1368
+ * Sidebar header variants
1369
+ */
1370
+ declare const sidebarHeaderVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1371
+ /**
1372
+ * Sidebar content variants
1373
+ */
1374
+ declare const sidebarContentVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1375
+ /**
1376
+ * Sidebar footer variants
1377
+ */
1378
+ declare const sidebarFooterVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1379
+ /**
1380
+ * Sidebar group variants
1381
+ */
1382
+ declare const sidebarGroupVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1383
+ /**
1384
+ * Sidebar group label variants
1385
+ */
1386
+ declare const sidebarGroupLabelVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1387
+ /**
1388
+ * Sidebar group action variants
1389
+ */
1390
+ declare const sidebarGroupActionVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1391
+ /**
1392
+ * Sidebar group content variants
1393
+ */
1394
+ declare const sidebarGroupContentVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1395
+ /**
1396
+ * Sidebar menu variants
1397
+ */
1398
+ declare const sidebarMenuVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1399
+ /**
1400
+ * Sidebar menu item variants
1401
+ */
1402
+ declare const sidebarMenuItemVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1403
+ /**
1404
+ * Sidebar menu button variants (main CVA definition following shadcn)
1405
+ */
1406
+ declare const sidebarMenuButtonVariants: (props?: ({
1407
+ variant?: "default" | "outline" | null | undefined;
1408
+ size?: "default" | "sm" | "lg" | null | undefined;
1409
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1410
+ /**
1411
+ * Sidebar menu action variants
1412
+ */
1413
+ declare const sidebarMenuActionVariants: (props?: ({
1414
+ showOnHover?: boolean | null | undefined;
1415
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1416
+ /**
1417
+ * Sidebar menu badge variants
1418
+ */
1419
+ declare const sidebarMenuBadgeVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1420
+ /**
1421
+ * Sidebar menu skeleton variants
1422
+ */
1423
+ declare const sidebarMenuSkeletonVariants: (props?: ({
1424
+ showIcon?: boolean | null | undefined;
1425
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1426
+ /**
1427
+ * Sidebar menu sub (submenu container)
1428
+ */
1429
+ declare const sidebarMenuSubVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1430
+ /**
1431
+ * Sidebar menu sub item variants
1432
+ */
1433
+ declare const sidebarMenuSubItemVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1434
+ /**
1435
+ * Sidebar menu sub button variants
1436
+ */
1437
+ declare const sidebarMenuSubButtonVariants: (props?: ({
1438
+ size?: "sm" | "md" | null | undefined;
1439
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1440
+ /**
1441
+ * Sidebar separator variants
1442
+ */
1443
+ declare const sidebarSeparatorVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1444
+ /**
1445
+ * Sidebar trigger button variants
1446
+ */
1447
+ declare const sidebarTriggerVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1448
+ /**
1449
+ * Sidebar rail variants (hover area to expand)
1450
+ */
1451
+ declare const sidebarRailVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1452
+ /**
1453
+ * Sidebar inset variants (main content area)
1454
+ */
1455
+ declare const sidebarInsetVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1456
+ /**
1457
+ * Sidebar chevron icon variants
1458
+ */
1459
+ declare const sidebarChevronVariants: (props?: ({
1460
+ open?: boolean | null | undefined;
1461
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
1462
+
1463
+ /**
1464
+ * Sidebar Component - Following shadcn/ui pattern
1465
+ *
1466
+ * The main sidebar container component that handles the visual structure.
1467
+ * Must be used inside a SidebarProvider.
1468
+ *
1469
+ * @example
1470
+ * ```html
1471
+ * <bsg-sidebar-provider>
1472
+ * <bsg-sidebar side="left" variant="sidebar" collapsible="icon">
1473
+ * <bsg-sidebar-header>
1474
+ * <!-- header content -->
1475
+ * </bsg-sidebar-header>
1476
+ * <bsg-sidebar-content>
1477
+ * <!-- main sidebar content -->
1478
+ * </bsg-sidebar-content>
1479
+ * <bsg-sidebar-footer>
1480
+ * <!-- footer content -->
1481
+ * </bsg-sidebar-footer>
1482
+ * </bsg-sidebar>
1483
+ * </bsg-sidebar-provider>
1484
+ * ```
1485
+ */
1486
+ declare class SidebarComponent {
1487
+ protected readonly sidebarService: SidebarService;
1488
+ /** Which side the sidebar is on */
1489
+ readonly side: _angular_core.InputSignal<SidebarSide>;
1490
+ /** Visual variant */
1491
+ readonly variant: _angular_core.InputSignal<SidebarVariant>;
1492
+ /** Collapsible behavior */
1493
+ readonly collapsible: _angular_core.InputSignal<SidebarCollapsible>;
1494
+ /** Additional CSS classes for wrapper */
1495
+ readonly className: _angular_core.InputSignal<string | undefined>;
1496
+ /** Additional CSS classes for inner sidebar */
1497
+ readonly sidebarClassName: _angular_core.InputSignal<string | undefined>;
1498
+ readonly wrapperClasses: _angular_core.Signal<string>;
1499
+ readonly sidebarClasses: _angular_core.Signal<string>;
1500
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarComponent, never>;
1501
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarComponent, "bsg-sidebar", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "sidebarClassName": { "alias": "sidebarClassName"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1502
+ }
1503
+
1504
+ /**
1505
+ * SidebarHeader Component - Following shadcn/ui pattern
1506
+ *
1507
+ * Container for header content in the sidebar (logo, branding, etc.)
1508
+ *
1509
+ * @example
1510
+ * ```html
1511
+ * <bsg-sidebar-header>
1512
+ * <div class="flex items-center gap-2">
1513
+ * <img src="logo.svg" alt="Logo" />
1514
+ * <span>My App</span>
1515
+ * </div>
1516
+ * </bsg-sidebar-header>
1517
+ * ```
1518
+ */
1519
+ declare class SidebarHeaderComponent {
1520
+ /** Additional CSS classes */
1521
+ readonly className: _angular_core.InputSignal<string | undefined>;
1522
+ readonly headerClasses: _angular_core.Signal<string>;
1523
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarHeaderComponent, never>;
1524
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarHeaderComponent, "bsg-sidebar-header", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1525
+ }
1526
+
1527
+ /**
1528
+ * SidebarContent Component - Following shadcn/ui pattern
1529
+ *
1530
+ * Scrollable container for the main sidebar content.
1531
+ *
1532
+ * @example
1533
+ * ```html
1534
+ * <bsg-sidebar-content>
1535
+ * <bsg-sidebar-group>
1536
+ * <!-- group content -->
1537
+ * </bsg-sidebar-group>
1538
+ * </bsg-sidebar-content>
1539
+ * ```
1540
+ */
1541
+ declare class SidebarContentComponent {
1542
+ /** Additional CSS classes */
1543
+ readonly className: _angular_core.InputSignal<string | undefined>;
1544
+ readonly contentClasses: _angular_core.Signal<string>;
1545
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarContentComponent, never>;
1546
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarContentComponent, "bsg-sidebar-content", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1547
+ }
1548
+
1549
+ /**
1550
+ * SidebarFooter Component - Following shadcn/ui pattern
1551
+ *
1552
+ * Container for footer content in the sidebar (user info, settings, etc.)
1553
+ *
1554
+ * @example
1555
+ * ```html
1556
+ * <bsg-sidebar-footer>
1557
+ * <bsg-sidebar-menu>
1558
+ * <bsg-sidebar-menu-item>
1559
+ * <bsg-sidebar-menu-button>
1560
+ * <span>Settings</span>
1561
+ * </bsg-sidebar-menu-button>
1562
+ * </bsg-sidebar-menu-item>
1563
+ * </bsg-sidebar-menu>
1564
+ * </bsg-sidebar-footer>
1565
+ * ```
1566
+ */
1567
+ declare class SidebarFooterComponent {
1568
+ /** Additional CSS classes */
1569
+ readonly className: _angular_core.InputSignal<string | undefined>;
1570
+ readonly footerClasses: _angular_core.Signal<string>;
1571
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarFooterComponent, never>;
1572
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarFooterComponent, "bsg-sidebar-footer", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1573
+ }
1574
+
1575
+ /**
1576
+ * SidebarGroup Component - Following shadcn/ui pattern
1577
+ *
1578
+ * Groups related menu items together with an optional label.
1579
+ *
1580
+ * @example
1581
+ * ```html
1582
+ * <bsg-sidebar-group>
1583
+ * <bsg-sidebar-group-label>Projects</bsg-sidebar-group-label>
1584
+ * <bsg-sidebar-group-content>
1585
+ * <bsg-sidebar-menu>
1586
+ * <!-- menu items -->
1587
+ * </bsg-sidebar-menu>
1588
+ * </bsg-sidebar-group-content>
1589
+ * </bsg-sidebar-group>
1590
+ * ```
1591
+ */
1592
+ declare class SidebarGroupComponent {
1593
+ /** Additional CSS classes */
1594
+ readonly className: _angular_core.InputSignal<string | undefined>;
1595
+ readonly groupClasses: _angular_core.Signal<string>;
1596
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarGroupComponent, never>;
1597
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarGroupComponent, "bsg-sidebar-group", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1598
+ }
1599
+
1600
+ /**
1601
+ * SidebarGroupLabel Component - Following shadcn/ui pattern
1602
+ *
1603
+ * Label for a sidebar group. Automatically hides when sidebar is collapsed.
1604
+ *
1605
+ * @example
1606
+ * ```html
1607
+ * <bsg-sidebar-group>
1608
+ * <bsg-sidebar-group-label>Projects</bsg-sidebar-group-label>
1609
+ * <bsg-sidebar-group-content>
1610
+ * <!-- content -->
1611
+ * </bsg-sidebar-group-content>
1612
+ * </bsg-sidebar-group>
1613
+ * ```
1614
+ */
1615
+ declare class SidebarGroupLabelComponent {
1616
+ /** Additional CSS classes */
1617
+ readonly className: _angular_core.InputSignal<string | undefined>;
1618
+ readonly labelClasses: _angular_core.Signal<string>;
1619
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarGroupLabelComponent, never>;
1620
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarGroupLabelComponent, "bsg-sidebar-group-label", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1621
+ }
1622
+
1623
+ /**
1624
+ * SidebarGroupContent Component - Following shadcn/ui pattern
1625
+ *
1626
+ * Container for the content within a sidebar group.
1627
+ *
1628
+ * @example
1629
+ * ```html
1630
+ * <bsg-sidebar-group>
1631
+ * <bsg-sidebar-group-label>Projects</bsg-sidebar-group-label>
1632
+ * <bsg-sidebar-group-content>
1633
+ * <bsg-sidebar-menu>
1634
+ * <!-- menu items -->
1635
+ * </bsg-sidebar-menu>
1636
+ * </bsg-sidebar-group-content>
1637
+ * </bsg-sidebar-group>
1638
+ * ```
1639
+ */
1640
+ declare class SidebarGroupContentComponent {
1641
+ /** Additional CSS classes */
1642
+ readonly className: _angular_core.InputSignal<string | undefined>;
1643
+ readonly contentClasses: _angular_core.Signal<string>;
1644
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarGroupContentComponent, never>;
1645
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarGroupContentComponent, "bsg-sidebar-group-content", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1646
+ }
1647
+
1648
+ /**
1649
+ * SidebarGroupAction Component - Following shadcn/ui pattern
1650
+ *
1651
+ * Action button positioned in the group header (e.g., "Add" button).
1652
+ *
1653
+ * @example
1654
+ * ```html
1655
+ * <bsg-sidebar-group>
1656
+ * <bsg-sidebar-group-label>Projects</bsg-sidebar-group-label>
1657
+ * <bsg-sidebar-group-action title="Add Project" (actionClick)="addProject()">
1658
+ * <svg><!-- plus icon --></svg>
1659
+ * </bsg-sidebar-group-action>
1660
+ * <bsg-sidebar-group-content>
1661
+ * <!-- content -->
1662
+ * </bsg-sidebar-group-content>
1663
+ * </bsg-sidebar-group>
1664
+ * ```
1665
+ */
1666
+ declare class SidebarGroupActionComponent {
1667
+ /** Title/tooltip for the action button */
1668
+ readonly title: _angular_core.InputSignal<string>;
1669
+ /** Additional CSS classes */
1670
+ readonly className: _angular_core.InputSignal<string | undefined>;
1671
+ /** Emits when action is clicked */
1672
+ readonly actionClick: _angular_core.OutputEmitterRef<MouseEvent>;
1673
+ readonly actionClasses: _angular_core.Signal<string>;
1674
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarGroupActionComponent, never>;
1675
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarGroupActionComponent, "bsg-sidebar-group-action", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; }, never, ["*"], true, never>;
1676
+ }
1677
+
1678
+ /**
1679
+ * SidebarMenu Component - Following shadcn/ui pattern
1680
+ *
1681
+ * Container for menu items. Renders as a ul element.
1682
+ *
1683
+ * @example
1684
+ * ```html
1685
+ * <bsg-sidebar-menu>
1686
+ * <bsg-sidebar-menu-item>
1687
+ * <bsg-sidebar-menu-button>Home</bsg-sidebar-menu-button>
1688
+ * </bsg-sidebar-menu-item>
1689
+ * <bsg-sidebar-menu-item>
1690
+ * <bsg-sidebar-menu-button>Settings</bsg-sidebar-menu-button>
1691
+ * </bsg-sidebar-menu-item>
1692
+ * </bsg-sidebar-menu>
1693
+ * ```
1694
+ */
1695
+ declare class SidebarMenuComponent {
1696
+ /** Additional CSS classes */
1697
+ readonly className: _angular_core.InputSignal<string | undefined>;
1698
+ readonly menuClasses: _angular_core.Signal<string>;
1699
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarMenuComponent, never>;
1700
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarMenuComponent, "bsg-sidebar-menu", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1701
+ }
1702
+
1703
+ /**
1704
+ * SidebarMenuItem Component - Following shadcn/ui pattern
1705
+ *
1706
+ * Container for a single menu item. Renders as an li element.
1707
+ *
1708
+ * @example
1709
+ * ```html
1710
+ * <bsg-sidebar-menu>
1711
+ * <bsg-sidebar-menu-item>
1712
+ * <bsg-sidebar-menu-button>
1713
+ * <svg><!-- icon --></svg>
1714
+ * <span>Home</span>
1715
+ * </bsg-sidebar-menu-button>
1716
+ * </bsg-sidebar-menu-item>
1717
+ * </bsg-sidebar-menu>
1718
+ * ```
1719
+ */
1720
+ declare class SidebarMenuItemComponent {
1721
+ /** Additional CSS classes */
1722
+ readonly className: _angular_core.InputSignal<string | undefined>;
1723
+ readonly itemClasses: _angular_core.Signal<string>;
1724
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarMenuItemComponent, never>;
1725
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarMenuItemComponent, "bsg-sidebar-menu-item", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1726
+ }
1727
+
1728
+ type SidebarMenuButtonVariantsProps = VariantProps<typeof sidebarMenuButtonVariants>;
1729
+ /**
1730
+ * SidebarMenuButton Component - Following shadcn/ui pattern
1731
+ *
1732
+ * Interactive button for menu items. Supports variants for size and style.
1733
+ *
1734
+ * @example
1735
+ * ```html
1736
+ * <bsg-sidebar-menu-button
1737
+ * [isActive]="true"
1738
+ * variant="default"
1739
+ * size="default"
1740
+ * (buttonClick)="navigate()"
1741
+ * >
1742
+ * <svg><!-- icon --></svg>
1743
+ * <span>Home</span>
1744
+ * </bsg-sidebar-menu-button>
1745
+ * ```
1746
+ */
1747
+ declare class SidebarMenuButtonComponent {
1748
+ /** Whether the button is active */
1749
+ readonly isActive: _angular_core.InputSignal<boolean>;
1750
+ /** Visual variant */
1751
+ readonly variant: _angular_core.InputSignal<"default" | "outline">;
1752
+ /** Size variant */
1753
+ readonly size: _angular_core.InputSignal<"default" | "sm" | "lg">;
1754
+ /** Disabled state */
1755
+ readonly disabled: _angular_core.InputSignal<boolean>;
1756
+ /** Additional CSS classes */
1757
+ readonly className: _angular_core.InputSignal<string | undefined>;
1758
+ /** Tooltip text (for collapsed state) */
1759
+ readonly tooltip: _angular_core.InputSignal<string | undefined>;
1760
+ /** Emits when button is clicked */
1761
+ readonly buttonClick: _angular_core.OutputEmitterRef<MouseEvent>;
1762
+ readonly buttonClasses: _angular_core.Signal<string>;
1763
+ handleClick(event: MouseEvent): void;
1764
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarMenuButtonComponent, never>;
1765
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarMenuButtonComponent, "bsg-sidebar-menu-button", never, { "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; }, never, ["*"], true, never>;
1766
+ }
1767
+
1768
+ type SidebarMenuActionVariantsProps = VariantProps<typeof sidebarMenuActionVariants>;
1769
+ /**
1770
+ * SidebarMenuAction Component - Following shadcn/ui pattern
1771
+ *
1772
+ * Action button that appears alongside menu items (e.g., more options).
1773
+ *
1774
+ * @example
1775
+ * ```html
1776
+ * <bsg-sidebar-menu-item>
1777
+ * <bsg-sidebar-menu-button>Project</bsg-sidebar-menu-button>
1778
+ * <bsg-sidebar-menu-action [showOnHover]="true" (actionClick)="openMenu()">
1779
+ * <svg><!-- more icon --></svg>
1780
+ * </bsg-sidebar-menu-action>
1781
+ * </bsg-sidebar-menu-item>
1782
+ * ```
1783
+ */
1784
+ declare class SidebarMenuActionComponent {
1785
+ /** Show only on hover */
1786
+ readonly showOnHover: _angular_core.InputSignal<boolean>;
1787
+ /** Additional CSS classes */
1788
+ readonly className: _angular_core.InputSignal<string | undefined>;
1789
+ /** Emits when action is clicked */
1790
+ readonly actionClick: _angular_core.OutputEmitterRef<MouseEvent>;
1791
+ readonly actionClasses: _angular_core.Signal<string>;
1792
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarMenuActionComponent, never>;
1793
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarMenuActionComponent, "bsg-sidebar-menu-action", never, { "showOnHover": { "alias": "showOnHover"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "actionClick": "actionClick"; }, never, ["*"], true, never>;
1794
+ }
1795
+
1796
+ /**
1797
+ * SidebarMenuBadge Component - Following shadcn/ui pattern
1798
+ *
1799
+ * Badge that appears alongside menu items (e.g., notification count).
1800
+ *
1801
+ * @example
1802
+ * ```html
1803
+ * <bsg-sidebar-menu-item>
1804
+ * <bsg-sidebar-menu-button>
1805
+ * <svg><!-- icon --></svg>
1806
+ * <span>Inbox</span>
1807
+ * </bsg-sidebar-menu-button>
1808
+ * <bsg-sidebar-menu-badge>5</bsg-sidebar-menu-badge>
1809
+ * </bsg-sidebar-menu-item>
1810
+ * ```
1811
+ */
1812
+ declare class SidebarMenuBadgeComponent {
1813
+ /** Additional CSS classes */
1814
+ readonly className: _angular_core.InputSignal<string | undefined>;
1815
+ readonly badgeClasses: _angular_core.Signal<string>;
1816
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarMenuBadgeComponent, never>;
1817
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarMenuBadgeComponent, "bsg-sidebar-menu-badge", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1818
+ }
1819
+
1820
+ /**
1821
+ * SidebarMenuSub Component - Following shadcn/ui pattern
1822
+ *
1823
+ * Container for submenu items. Used for nested navigation.
1824
+ *
1825
+ * @example
1826
+ * ```html
1827
+ * <bsg-sidebar-menu-item>
1828
+ * <bsg-sidebar-menu-button>Parent</bsg-sidebar-menu-button>
1829
+ * <bsg-sidebar-menu-sub>
1830
+ * <bsg-sidebar-menu-sub-item>
1831
+ * <bsg-sidebar-menu-sub-button>Child 1</bsg-sidebar-menu-sub-button>
1832
+ * </bsg-sidebar-menu-sub-item>
1833
+ * <bsg-sidebar-menu-sub-item>
1834
+ * <bsg-sidebar-menu-sub-button>Child 2</bsg-sidebar-menu-sub-button>
1835
+ * </bsg-sidebar-menu-sub-item>
1836
+ * </bsg-sidebar-menu-sub>
1837
+ * </bsg-sidebar-menu-item>
1838
+ * ```
1839
+ */
1840
+ declare class SidebarMenuSubComponent {
1841
+ /** Additional CSS classes */
1842
+ readonly className: _angular_core.InputSignal<string | undefined>;
1843
+ readonly subMenuClasses: _angular_core.Signal<string>;
1844
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarMenuSubComponent, never>;
1845
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarMenuSubComponent, "bsg-sidebar-menu-sub", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1846
+ }
1847
+
1848
+ /**
1849
+ * SidebarMenuSubItem Component - Following shadcn/ui pattern
1850
+ *
1851
+ * Container for a single submenu item. Renders as an li element.
1852
+ *
1853
+ * @example
1854
+ * ```html
1855
+ * <bsg-sidebar-menu-sub>
1856
+ * <bsg-sidebar-menu-sub-item>
1857
+ * <bsg-sidebar-menu-sub-button>
1858
+ * <span>Child Item</span>
1859
+ * </bsg-sidebar-menu-sub-button>
1860
+ * </bsg-sidebar-menu-sub-item>
1861
+ * </bsg-sidebar-menu-sub>
1862
+ * ```
1863
+ */
1864
+ declare class SidebarMenuSubItemComponent {
1865
+ /** Additional CSS classes */
1866
+ readonly className: _angular_core.InputSignal<string | undefined>;
1867
+ readonly itemClasses: _angular_core.Signal<string>;
1868
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarMenuSubItemComponent, never>;
1869
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarMenuSubItemComponent, "bsg-sidebar-menu-sub-item", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1870
+ }
1871
+
1872
+ type SidebarMenuSubButtonVariantsProps = VariantProps<typeof sidebarMenuSubButtonVariants>;
1873
+ /**
1874
+ * SidebarMenuSubButton Component - Following shadcn/ui pattern
1875
+ *
1876
+ * Interactive button for submenu items.
1877
+ *
1878
+ * @example
1879
+ * ```html
1880
+ * <bsg-sidebar-menu-sub-button
1881
+ * [isActive]="true"
1882
+ * size="md"
1883
+ * (buttonClick)="navigate()"
1884
+ * >
1885
+ * <span>Child Item</span>
1886
+ * </bsg-sidebar-menu-sub-button>
1887
+ * ```
1888
+ */
1889
+ declare class SidebarMenuSubButtonComponent {
1890
+ /** Whether the button is active */
1891
+ readonly isActive: _angular_core.InputSignal<boolean>;
1892
+ /** Size variant */
1893
+ readonly size: _angular_core.InputSignal<"sm" | "md">;
1894
+ /** Disabled state */
1895
+ readonly disabled: _angular_core.InputSignal<boolean>;
1896
+ /** Additional CSS classes */
1897
+ readonly className: _angular_core.InputSignal<string | undefined>;
1898
+ /** Emits when button is clicked */
1899
+ readonly buttonClick: _angular_core.OutputEmitterRef<MouseEvent>;
1900
+ readonly buttonClasses: _angular_core.Signal<string>;
1901
+ handleClick(event: MouseEvent): void;
1902
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarMenuSubButtonComponent, never>;
1903
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarMenuSubButtonComponent, "bsg-sidebar-menu-sub-button", never, { "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; }, never, ["*"], true, never>;
1904
+ }
1905
+
1906
+ /**
1907
+ * SidebarSeparator Component - Following shadcn/ui pattern
1908
+ *
1909
+ * Visual separator between menu items or groups.
1910
+ *
1911
+ * @example
1912
+ * ```html
1913
+ * <bsg-sidebar-menu>
1914
+ * <bsg-sidebar-menu-item>...</bsg-sidebar-menu-item>
1915
+ * <bsg-sidebar-separator />
1916
+ * <bsg-sidebar-menu-item>...</bsg-sidebar-menu-item>
1917
+ * </bsg-sidebar-menu>
1918
+ * ```
1919
+ */
1920
+ declare class SidebarSeparatorComponent {
1921
+ /** Additional CSS classes */
1922
+ readonly className: _angular_core.InputSignal<string | undefined>;
1923
+ readonly separatorClasses: _angular_core.Signal<string>;
1924
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarSeparatorComponent, never>;
1925
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarSeparatorComponent, "bsg-sidebar-separator", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1926
+ }
1927
+
1928
+ /**
1929
+ * SidebarTrigger Component - Following shadcn/ui pattern
1930
+ *
1931
+ * Button to toggle the sidebar open/closed state.
1932
+ *
1933
+ * @example
1934
+ * ```html
1935
+ * <header>
1936
+ * <bsg-sidebar-trigger />
1937
+ * <h1>My App</h1>
1938
+ * </header>
1939
+ * ```
1940
+ */
1941
+ declare class SidebarTriggerComponent {
1942
+ protected readonly sidebarService: SidebarService;
1943
+ /** Additional CSS classes */
1944
+ readonly className: _angular_core.InputSignal<string | undefined>;
1945
+ /** Whether the trigger has projected content */
1946
+ hasContent: boolean;
1947
+ readonly triggerClasses: _angular_core.Signal<string>;
1948
+ toggle(): void;
1949
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarTriggerComponent, never>;
1950
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarTriggerComponent, "bsg-sidebar-trigger", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1951
+ }
1952
+
1953
+ /**
1954
+ * SidebarRail Component - Following shadcn/ui pattern
1955
+ *
1956
+ * Hover/click area on the edge of the sidebar to toggle collapse.
1957
+ *
1958
+ * @example
1959
+ * ```html
1960
+ * <bsg-sidebar>
1961
+ * <bsg-sidebar-content>...</bsg-sidebar-content>
1962
+ * <bsg-sidebar-rail />
1963
+ * </bsg-sidebar>
1964
+ * ```
1965
+ */
1966
+ declare class SidebarRailComponent {
1967
+ protected readonly sidebarService: SidebarService;
1968
+ /** Additional CSS classes */
1969
+ readonly className: _angular_core.InputSignal<string | undefined>;
1970
+ readonly railClasses: _angular_core.Signal<string>;
1971
+ toggle(): void;
1972
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarRailComponent, never>;
1973
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarRailComponent, "bsg-sidebar-rail", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1974
+ }
1975
+
1976
+ /**
1977
+ * SidebarInset Component - Following shadcn/ui pattern
1978
+ *
1979
+ * Main content area that sits alongside the sidebar.
1980
+ * Adjusts its margins based on sidebar state.
1981
+ *
1982
+ * @example
1983
+ * ```html
1984
+ * <bsg-sidebar-provider>
1985
+ * <bsg-sidebar>...</bsg-sidebar>
1986
+ * <bsg-sidebar-inset>
1987
+ * <header>
1988
+ * <bsg-sidebar-trigger />
1989
+ * </header>
1990
+ * <main>
1991
+ * <!-- page content -->
1992
+ * </main>
1993
+ * </bsg-sidebar-inset>
1994
+ * </bsg-sidebar-provider>
1995
+ * ```
1996
+ */
1997
+ declare class SidebarInsetComponent {
1998
+ /** Additional CSS classes */
1999
+ readonly className: _angular_core.InputSignal<string | undefined>;
2000
+ readonly insetClasses: _angular_core.Signal<string>;
2001
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarInsetComponent, never>;
2002
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarInsetComponent, "bsg-sidebar-inset", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2003
+ }
2004
+
2005
+ /**
2006
+ * Skeleton variants
2007
+ */
2008
+ declare const skeletonVariants: (props?: ({
2009
+ type?: "text" | "rectangular" | "circular" | null | undefined;
2010
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2011
+
2012
+ type SkeletonType = 'text' | 'circular' | 'rectangular';
2013
+ type SkeletonVariantsProps = VariantProps<typeof skeletonVariants>;
2014
+ declare class SkeletonComponent {
2015
+ /** Skeleton type */
2016
+ readonly type: _angular_core.InputSignal<SkeletonType>;
2017
+ /** Width (auto, px, %, rem, etc.) */
2018
+ readonly width: _angular_core.InputSignal<string | number>;
2019
+ /** Height (auto, px, %, rem, etc.) */
2020
+ readonly height: _angular_core.InputSignal<string | number>;
2021
+ /** Additional CSS classes */
2022
+ readonly className: _angular_core.InputSignal<string | undefined>;
2023
+ /** Computed skeleton classes */
2024
+ readonly skeletonClasses: _angular_core.Signal<string>;
2025
+ /** Computed width */
2026
+ readonly computedWidth: _angular_core.Signal<string | undefined>;
2027
+ /** Computed height */
2028
+ readonly computedHeight: _angular_core.Signal<string | undefined>;
2029
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonComponent, never>;
2030
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonComponent, "bsg-skeleton", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2031
+ }
2032
+
2033
+ /**
2034
+ * Switch root variants
2035
+ *
2036
+ * Based on shadcn/ui Switch component
2037
+ * Controls the main switch button/track element
2038
+ */
2039
+ declare const switchRootVariants: (props?: ({
2040
+ checked?: boolean | null | undefined;
2041
+ disabled?: boolean | null | undefined;
2042
+ size?: "default" | "sm" | "lg" | null | undefined;
2043
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2044
+ /**
2045
+ * Switch thumb variants
2046
+ *
2047
+ * Controls the circular toggle indicator
2048
+ */
2049
+ declare const switchThumbVariants: (props?: ({
2050
+ checked?: boolean | null | undefined;
2051
+ size?: "default" | "sm" | "lg" | null | undefined;
2052
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2053
+
2054
+ type SwitchSize = 'sm' | 'default' | 'lg';
2055
+ type SwitchVariantsProps = VariantProps<typeof switchRootVariants>;
2056
+ /**
2057
+ * Switch Component - Toggle control based on shadcn/ui
2058
+ *
2059
+ * A control that allows the user to toggle between checked and not checked.
2060
+ *
2061
+ * Usage:
2062
+ * ```html
2063
+ * <bsg-switch [(checked)]="isEnabled" />
2064
+ * <bsg-switch [checked]="value" (checkedChange)="onToggle($event)" />
2065
+ * <bsg-switch [disabled]="true" />
2066
+ * <bsg-switch size="lg" />
2067
+ * ```
2068
+ */
2069
+ declare class SwitchComponent {
2070
+ /** Whether the switch is in the checked (on) state - supports two-way binding */
2071
+ readonly checked: _angular_core.ModelSignal<boolean>;
2072
+ /** Whether the switch is disabled and non-interactive */
2073
+ readonly disabled: _angular_core.InputSignal<boolean>;
2074
+ /** Size variant of the switch */
2075
+ readonly size: _angular_core.InputSignal<SwitchSize>;
2076
+ /** Additional CSS classes */
2077
+ readonly className: _angular_core.InputSignal<string | undefined>;
2078
+ /** Event emitted when the switch state changes */
2079
+ readonly checkedChange: _angular_core.OutputEmitterRef<boolean>;
2080
+ readonly rootClasses: _angular_core.Signal<string>;
2081
+ readonly thumbClasses: _angular_core.Signal<string>;
2082
+ /** Toggle the switch state */
2083
+ toggle(): void;
2084
+ /** Handle keyboard events (space and enter) */
2085
+ onKeydown(event: Event): void;
2086
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchComponent, never>;
2087
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "bsg-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "checkedChange": "checkedChange"; }, never, never, true, never>;
2088
+ }
2089
+
2090
+ declare const textareaVariants: (props?: ({
2091
+ size?: "default" | "sm" | "lg" | null | undefined;
2092
+ resize?: "none" | "horizontal" | "vertical" | "both" | null | undefined;
2093
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2094
+ type TextareaSize = VariantProps<typeof textareaVariants>['size'];
2095
+ type TextareaResize = VariantProps<typeof textareaVariants>['resize'];
2096
+ declare class TextareaComponent implements ControlValueAccessor, Validator {
2097
+ placeholder: _angular_core.InputSignal<string>;
2098
+ disabled: _angular_core.InputSignal<boolean>;
2099
+ required: _angular_core.InputSignal<boolean>;
2100
+ readonly: _angular_core.InputSignal<boolean>;
2101
+ rows: _angular_core.InputSignal<number>;
2102
+ ariaInvalid: _angular_core.InputSignal<boolean | undefined>;
2103
+ size: _angular_core.InputSignal<"default" | "sm" | "lg" | null | undefined>;
2104
+ resize: _angular_core.InputSignal<"none" | "horizontal" | "vertical" | "both" | null | undefined>;
2105
+ className: _angular_core.InputSignal<string | undefined>;
2106
+ get hostClasses(): string;
2107
+ value: _angular_core.WritableSignal<string>;
2108
+ disabledState: _angular_core.WritableSignal<boolean>;
2109
+ private onChangeCallback;
2110
+ private onTouchedCallback;
2111
+ get computedClasses(): string;
2112
+ onInput(event: Event): void;
2113
+ onTouched(): void;
2114
+ onFocus(): void;
2115
+ writeValue(value: string): void;
2116
+ registerOnChange(fn: (value: string) => void): void;
2117
+ registerOnTouched(fn: () => void): void;
2118
+ setDisabledState(isDisabled: boolean): void;
2119
+ validate(control: AbstractControl): ValidationErrors | null;
2120
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextareaComponent, never>;
2121
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextareaComponent, "bsg-textarea", never, { "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "ariaInvalid": { "alias": "ariaInvalid"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2122
+ }
2123
+
2124
+ /**
2125
+ * TimePicker field container variants
2126
+ *
2127
+ * Controls the outer container including label and error
2128
+ */
2129
+ declare const timepickerFieldVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2130
+ /**
2131
+ * TimePicker label variants
2132
+ */
2133
+ declare const timepickerLabelVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2134
+ /**
2135
+ * TimePicker wrapper variants
2136
+ *
2137
+ * Controls the input wrapper with size and state variants
2138
+ */
2139
+ declare const timepickerWrapperVariants: (props?: ({
2140
+ size?: "sm" | "md" | "lg" | null | undefined;
2141
+ state?: "default" | "disabled" | "hover" | "focus" | "error" | null | undefined;
2142
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2143
+ /**
2144
+ * TimePicker input field variants
2145
+ */
2146
+ declare const timepickerInputVariants: (props?: ({
2147
+ state?: "default" | "disabled" | "hover" | "focus" | "error" | null | undefined;
2148
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2149
+ /**
2150
+ * TimePicker icon button variants
2151
+ */
2152
+ declare const timepickerIconButtonVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2153
+ /**
2154
+ * TimePicker dropdown variants
2155
+ */
2156
+ declare const timepickerDropdownVariants: (props?: ({
2157
+ size?: "sm" | "md" | "lg" | null | undefined;
2158
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2159
+ /**
2160
+ * TimePicker selection area variants
2161
+ */
2162
+ declare const timepickerSelectionAreaVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2163
+ /**
2164
+ * TimePicker column variants
2165
+ */
2166
+ declare const timepickerColumnVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2167
+ /**
2168
+ * TimePicker column header variants
2169
+ */
2170
+ declare const timepickerColumnHeaderVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2171
+ /**
2172
+ * TimePicker list variants
2173
+ */
2174
+ declare const timepickerListVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2175
+ /**
2176
+ * TimePicker option variants
2177
+ */
2178
+ declare const timepickerOptionVariants: (props?: ({
2179
+ selected?: boolean | null | undefined;
2180
+ disabled?: boolean | null | undefined;
2181
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2182
+ /**
2183
+ * TimePicker separator variants
2184
+ */
2185
+ declare const timepickerSeparatorVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2186
+ /**
2187
+ * TimePicker actions container variants
2188
+ */
2189
+ declare const timepickerActionsVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2190
+ /**
2191
+ * TimePicker action button variants
2192
+ */
2193
+ declare const timepickerActionButtonVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2194
+ /**
2195
+ * TimePicker error message variants
2196
+ */
2197
+ declare const timepickerErrorMessageVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2198
+
2199
+ type TimePickerSize = 'sm' | 'md' | 'lg';
2200
+ type TimePickerState = 'default' | 'hover' | 'focus' | 'disabled' | 'error';
2201
+ type TimePickerWrapperVariantsProps = VariantProps<typeof timepickerWrapperVariants>;
2202
+ /**
2203
+ * TimePicker Component
2204
+ *
2205
+ * A time selection component with dropdown for hours and minutes.
2206
+ *
2207
+ * Following shadcn/ui pattern:
2208
+ * ```html
2209
+ * <bsg-timepicker
2210
+ * [size]="'md'"
2211
+ * [value]="'14:30'"
2212
+ * [label]="'Select time'"
2213
+ * (valueChange)="onTimeChange($event)"
2214
+ * />
2215
+ * ```
2216
+ */
2217
+ declare class TimePickerComponent implements OnInit {
2218
+ private readonly elementRef;
2219
+ /** Size of the input */
2220
+ readonly size: _angular_core.InputSignal<TimePickerSize>;
2221
+ /** Current state */
2222
+ readonly state: _angular_core.InputSignal<TimePickerState>;
2223
+ /** Selected time in HH:mm format */
2224
+ readonly value: _angular_core.InputSignal<string>;
2225
+ /** Placeholder text */
2226
+ readonly placeholder: _angular_core.InputSignal<string>;
2227
+ /** Optional label */
2228
+ readonly label: _angular_core.InputSignal<string>;
2229
+ /** Error message */
2230
+ readonly errorMessage: _angular_core.InputSignal<string>;
2231
+ /** Minimum time (HH:mm format) */
2232
+ readonly minTime: _angular_core.InputSignal<string>;
2233
+ /** Maximum time (HH:mm format) */
2234
+ readonly maxTime: _angular_core.InputSignal<string>;
2235
+ /** Step for minutes */
2236
+ readonly stepMinutes: _angular_core.InputSignal<number>;
2237
+ /** Additional CSS classes */
2238
+ readonly className: _angular_core.InputSignal<string | undefined>;
2239
+ /** Value change event */
2240
+ readonly valueChange: _angular_core.OutputEmitterRef<string>;
2241
+ /** Selection change event */
2242
+ readonly selectionChange: _angular_core.OutputEmitterRef<{
2243
+ hour: number;
2244
+ minute: number;
2245
+ }>;
2246
+ /** Open state change event */
2247
+ readonly openChange: _angular_core.OutputEmitterRef<boolean>;
2248
+ hoursList: ElementRef | undefined;
2249
+ minutesList: ElementRef | undefined;
2250
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
2251
+ readonly selectedHour: _angular_core.WritableSignal<number>;
2252
+ readonly selectedMinute: _angular_core.WritableSignal<number>;
2253
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
2254
+ readonly internalValue: _angular_core.WritableSignal<string>;
2255
+ readonly errorMessageId: string;
2256
+ constructor();
2257
+ readonly availableHours: number[];
2258
+ readonly availableMinutes: _angular_core.Signal<number[]>;
2259
+ readonly timeValue: _angular_core.Signal<string>;
2260
+ readonly displayState: _angular_core.Signal<TimePickerState>;
2261
+ readonly fieldClasses: _angular_core.Signal<string>;
2262
+ readonly labelClasses: _angular_core.Signal<string>;
2263
+ readonly wrapperClasses: _angular_core.Signal<string>;
2264
+ readonly inputClasses: _angular_core.Signal<string>;
2265
+ readonly iconButtonClasses: _angular_core.Signal<string>;
2266
+ readonly dropdownClasses: _angular_core.Signal<string>;
2267
+ readonly selectionAreaClasses: _angular_core.Signal<string>;
2268
+ readonly columnClasses: _angular_core.Signal<string>;
2269
+ readonly columnHeaderClasses: _angular_core.Signal<string>;
2270
+ readonly listClasses: _angular_core.Signal<string>;
2271
+ readonly separatorClasses: _angular_core.Signal<string>;
2272
+ readonly actionsClasses: _angular_core.Signal<string>;
2273
+ readonly actionButtonClasses: _angular_core.Signal<string>;
2274
+ readonly errorMessageClasses: _angular_core.Signal<string>;
2275
+ readonly iconColor: _angular_core.Signal<"#DC2626" | "#64748B">;
2276
+ getOptionClasses(selected: boolean, disabled: boolean): string;
2277
+ ngOnInit(): void;
2278
+ parseTime(time: string): {
2279
+ hour: number;
2280
+ minute: number;
2281
+ };
2282
+ formatNumber(value: number): string;
2283
+ isHourDisabled(hour: number): boolean;
2284
+ isMinuteDisabled(minute: number): boolean;
2285
+ selectHour(hour: number): void;
2286
+ selectMinute(minute: number): void;
2287
+ selectNow(): void;
2288
+ clearTime(): void;
2289
+ updateTimeValue(): void;
2290
+ toggleDropdown(): void;
2291
+ openDropdown(): void;
2292
+ closeDropdown(): void;
2293
+ onFocus(): void;
2294
+ onBlur(): void;
2295
+ onDocumentClick(event: MouseEvent): void;
2296
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimePickerComponent, never>;
2297
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimePickerComponent, "bsg-timepicker", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "minTime": { "alias": "minTime"; "required": false; "isSignal": true; }; "maxTime": { "alias": "maxTime"; "required": false; "isSignal": true; }; "stepMinutes": { "alias": "stepMinutes"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "selectionChange": "selectionChange"; "openChange": "openChange"; }, never, never, true, never>;
2298
+ }
2299
+
2300
+ /**
2301
+ * Toast container variants
2302
+ *
2303
+ * Controls the overall toast container styles
2304
+ */
2305
+ declare const toastVariants: (props?: ({
2306
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | null | undefined;
2307
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2308
+ /**
2309
+ * Toast accent variants
2310
+ *
2311
+ * Controls the left accent bar
2312
+ */
2313
+ declare const toastAccentVariants: (props?: ({
2314
+ variant?: "default" | "info" | "success" | "warning" | "destructive" | null | undefined;
2315
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2316
+ /**
2317
+ * Toast icon variants
2318
+ *
2319
+ * Controls the icon styling
2320
+ */
2321
+ declare const toastIconVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2322
+ /**
2323
+ * Toast content variants
2324
+ *
2325
+ * Controls the text content area
2326
+ */
2327
+ declare const toastContentVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2328
+ /**
2329
+ * Toast close button variants
2330
+ *
2331
+ * Controls the close/dismiss button
2332
+ */
2333
+ declare const toastCloseVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2334
+
2335
+ type ToastVariant = 'default' | 'info' | 'success' | 'warning' | 'destructive';
2336
+ type ToastVariantsProps = VariantProps<typeof toastVariants>;
2337
+ /**
2338
+ * Toast Component
2339
+ *
2340
+ * A notification component for displaying brief messages to users.
2341
+ *
2342
+ * Following shadcn/ui pattern:
2343
+ * ```html
2344
+ * <bsg-toast
2345
+ * variant="success"
2346
+ * content="Operation completed successfully"
2347
+ * [dismissible]="true"
2348
+ * (dismiss)="onDismiss()"
2349
+ * />
2350
+ * ```
2351
+ */
2352
+ declare class ToastComponent {
2353
+ /** Toast variant */
2354
+ readonly variant: _angular_core.InputSignal<ToastVariant>;
2355
+ /** Whether the toast can be dismissed */
2356
+ readonly dismissible: _angular_core.InputSignal<boolean>;
2357
+ /** Toast message content */
2358
+ readonly content: _angular_core.InputSignal<string>;
2359
+ /** Additional CSS classes for the toast container */
2360
+ readonly className: _angular_core.InputSignal<string | undefined>;
2361
+ /** Dismiss event */
2362
+ readonly dismiss: _angular_core.OutputEmitterRef<void>;
2363
+ /** Internal dismissed state */
2364
+ readonly dismissed: _angular_core.WritableSignal<boolean>;
2365
+ readonly toastClasses: _angular_core.Signal<string>;
2366
+ readonly accentClasses: _angular_core.Signal<string>;
2367
+ readonly iconClasses: _angular_core.Signal<string>;
2368
+ readonly contentClasses: _angular_core.Signal<string>;
2369
+ readonly closeClasses: _angular_core.Signal<string>;
2370
+ readonly iconColor: _angular_core.Signal<string>;
2371
+ dismissToast(): void;
2372
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
2373
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "bsg-toast", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
2374
+ }
2375
+
2376
+ /**
2377
+ * Tooltip trigger variants
2378
+ *
2379
+ * Controls the wrapper element that triggers the tooltip
2380
+ */
2381
+ declare const tooltipTriggerVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
2382
+ /**
2383
+ * Tooltip content variants
2384
+ *
2385
+ * Controls the floating tooltip overlay
2386
+ */
2387
+ declare const tooltipContentVariants: (props?: ({
2388
+ placement?: "left" | "right" | "top" | "bottom" | null | undefined;
2389
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2390
+ /**
2391
+ * Tooltip arrow variants
2392
+ *
2393
+ * Controls the arrow/pointer element
2394
+ */
2395
+ declare const tooltipArrowVariants: (props?: ({
2396
+ placement?: "left" | "right" | "top" | "bottom" | null | undefined;
2397
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
2398
+
2399
+ type TooltipPlacement = 'top' | 'right' | 'bottom' | 'left';
2400
+ type TooltipContentVariantsProps = VariantProps<typeof tooltipContentVariants>;
2401
+ /**
2402
+ * Tooltip Component
2403
+ *
2404
+ * A floating label that appears on hover/focus to provide additional information.
2405
+ *
2406
+ * Following shadcn/ui pattern:
2407
+ * ```html
2408
+ * <bsg-tooltip content="Tooltip text" placement="top">
2409
+ * <button>Hover me</button>
2410
+ * </bsg-tooltip>
2411
+ * ```
2412
+ */
2413
+ declare class TooltipComponent implements AfterContentInit {
2414
+ private cdr;
2415
+ /** Tooltip content text */
2416
+ readonly content: _angular_core.InputSignal<string>;
2417
+ /** Tooltip placement */
2418
+ readonly placement: _angular_core.InputSignal<TooltipPlacement>;
2419
+ /** Whether the tooltip is disabled */
2420
+ readonly disabled: _angular_core.InputSignal<boolean>;
2421
+ /** Additional CSS classes for the trigger */
2422
+ readonly triggerClassName: _angular_core.InputSignal<string | undefined>;
2423
+ /** Additional CSS classes for the content */
2424
+ readonly contentClassName: _angular_core.InputSignal<string | undefined>;
2425
+ triggerElement: ElementRef;
2426
+ tooltipElement: ElementRef;
2427
+ readonly tooltipId: string;
2428
+ readonly isVisible: _angular_core.WritableSignal<boolean>;
2429
+ private justClicked;
2430
+ private isMouseHovering;
2431
+ private hideTimeout;
2432
+ readonly triggerClasses: _angular_core.Signal<string>;
2433
+ readonly contentClasses: _angular_core.Signal<string>;
2434
+ readonly arrowClasses: _angular_core.Signal<string>;
2435
+ constructor(cdr: ChangeDetectorRef);
2436
+ ngAfterContentInit(): void;
2437
+ /**
2438
+ * Handle mouse enter: show tooltip
2439
+ */
2440
+ onMouseEnter(): void;
2441
+ /**
2442
+ * Handle mouse leave: hide tooltip
2443
+ */
2444
+ onMouseLeave(): void;
2445
+ /**
2446
+ * Handle focus: show tooltip only if triggered by keyboard
2447
+ */
2448
+ onFocus(): void;
2449
+ /**
2450
+ * Handle blur: hide tooltip
2451
+ */
2452
+ onBlur(): void;
2453
+ /**
2454
+ * Track mouse down to detect click-triggered focus
2455
+ */
2456
+ onMouseDown(): void;
2457
+ private show;
2458
+ private hide;
2459
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
2460
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "bsg-tooltip", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "triggerClassName": { "alias": "triggerClassName"; "required": false; "isSignal": true; }; "contentClassName": { "alias": "contentClassName"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2461
+ }
2462
+
2463
+ export { AccordionComponent, AccordionContentComponent, AccordionItemComponent, AccordionTriggerComponent, AlertComponent, AvatarComponent, BadgeComponent, ButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CarouselComponent, CarouselItemComponent, CheckboxComponent, CollapsibleComponent, CollapsibleContentComponent, CollapsibleTriggerDirective, DialogComponent, InputComponent, LabelComponent, RadioComponent, RadioGroupComponent, SelectComponent, SidebarComponent, SidebarContentComponent, SidebarFooterComponent, SidebarGroupActionComponent, SidebarGroupComponent, SidebarGroupContentComponent, SidebarGroupLabelComponent, SidebarHeaderComponent, SidebarInsetComponent, SidebarMenuActionComponent, SidebarMenuBadgeComponent, SidebarMenuButtonComponent, SidebarMenuComponent, SidebarMenuItemComponent, SidebarMenuSubButtonComponent, SidebarMenuSubComponent, SidebarMenuSubItemComponent, SidebarProviderComponent, SidebarRailComponent, SidebarSeparatorComponent, SidebarService, SidebarTriggerComponent, SkeletonComponent, SwitchComponent, TextareaComponent, TimePickerComponent, ToastComponent, TooltipComponent, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, accordionVariants, alertCloseVariants, alertContentVariants, alertIconVariants, alertVariants, avatarIconVariants, avatarImgVariants, avatarInitialsVariants, avatarVariants, badgeIconVariants, badgeVariants, buttonIconOnlyVariants, buttonIconVariants, buttonLabelVariants, buttonVariants, cardActionIconVariants, cardCurrencyContentVariants, cardCurrencyIconVariants, cardCurrencyLabelVariants, cardCurrencyTextVariants, cardHeaderRowVariants, cardHeaderVariants, cardHelperDescriptionVariants, cardHelperRowVariants, cardHelperVariants, cardInfoIconVariants, cardInfoLabelVariants, cardInfoTextVariants, cardMetricTitleVariants, cardMetricValueVariants, cardSlotBodyVariants, cardSlotFooterVariants, cardSlotHeaderVariants, cardValueVariants, cardVariants, carouselArrowVariants, carouselChevronVariants, carouselContainerVariants, carouselIndicatorVariants, carouselIndicatorsVariants, carouselRootVariants, carouselTrackVariants, carouselViewportVariants, checkboxVariants, dialogBodyVariants, dialogContentVariants, dialogFooterVariants, dialogHeaderVariants, dialogOverlayVariants, inputVariants, labelVariants, radioFocusRingVariants, radioGroupVariants, radioInnerVariants, radioLabelVariants, radioOptionVariants, radioOuterVariants, radioWrapperVariants, selectDropdownVariants, selectErrorVariants, selectIconVariants, selectOptionVariants, selectTriggerVariants, selectValueVariants, selectWrapperVariants, sidebarChevronVariants, sidebarContentVariants, sidebarFooterVariants, sidebarGroupActionVariants, sidebarGroupContentVariants, sidebarGroupLabelVariants, sidebarGroupVariants, sidebarHeaderVariants, sidebarInsetVariants, sidebarMenuActionVariants, sidebarMenuBadgeVariants, sidebarMenuButtonVariants, sidebarMenuItemVariants, sidebarMenuSkeletonVariants, sidebarMenuSubButtonVariants, sidebarMenuSubItemVariants, sidebarMenuSubVariants, sidebarMenuVariants, sidebarProviderVariants, sidebarRailVariants, sidebarSeparatorVariants, sidebarTriggerVariants, sidebarVariants, sidebarWrapperVariants, skeletonVariants, switchRootVariants, switchThumbVariants, textareaVariants, timepickerActionButtonVariants, timepickerActionsVariants, timepickerColumnHeaderVariants, timepickerColumnVariants, timepickerDropdownVariants, timepickerErrorMessageVariants, timepickerFieldVariants, timepickerIconButtonVariants, timepickerInputVariants, timepickerLabelVariants, timepickerListVariants, timepickerOptionVariants, timepickerSelectionAreaVariants, timepickerSeparatorVariants, timepickerWrapperVariants, toastAccentVariants, toastCloseVariants, toastContentVariants, toastIconVariants, toastVariants, tooltipArrowVariants, tooltipContentVariants, tooltipTriggerVariants };
2464
+ export type { AccordionType, AccordionVariant, AccordionVariantsProps, AlertVariant, AlertVariantsProps, AvatarSize, AvatarType, AvatarVariantsProps, BadgeIconVariantsProps, BadgeLayout, BadgeSize, BadgeVariant, BadgeVariantsProps, ButtonShape, ButtonSize, ButtonVariant, ButtonVariantsProps, CardContentVariant, CardVariant, CardVariantsProps, CarouselArrowVariantsProps, CarouselIndicatorVariantsProps, CheckboxSize, DialogBodyVariantsProps, DialogContentVariantsProps, DialogHeaderTone, DialogHeaderVariantsProps, DialogSize, IconName, InputSize, RadioFocusRingVariantsProps, RadioGroupOption, RadioGroupOrientation, RadioGroupVariantsProps, RadioInnerVariantsProps, RadioLabelVariantsProps, RadioOptionVariantsProps, RadioOuterVariantsProps, RadioSize, RadioState, RadioWrapperVariantsProps, SelectOption, SelectSize, SelectState, SelectTriggerVariantsProps, SidebarCollapsible, SidebarMenuActionVariantsProps, SidebarMenuButtonVariantsProps, SidebarMenuSubButtonVariantsProps, SidebarSide, SidebarState, SidebarVariant, SkeletonType, SkeletonVariantsProps, SwitchSize, SwitchVariantsProps, TextareaResize, TextareaSize, TimePickerSize, TimePickerState, TimePickerWrapperVariantsProps, ToastVariant, ToastVariantsProps, TooltipContentVariantsProps, TooltipPlacement };