@tolle_/tolle-ui 0.0.18-beta → 0.0.21-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/esm2022/lib/alert.component.mjs +116 -0
  2. package/esm2022/lib/avatar-fallback.component.mjs +19 -0
  3. package/esm2022/lib/avatar.component.mjs +86 -0
  4. package/esm2022/lib/badge.component.mjs +4 -4
  5. package/esm2022/lib/breadcrumb-item.component.mjs +19 -0
  6. package/esm2022/lib/breadcrumb-link.component.mjs +60 -0
  7. package/esm2022/lib/breadcrumb-separator.component.mjs +23 -0
  8. package/esm2022/lib/breadcrumb.component.mjs +28 -0
  9. package/esm2022/lib/button.component.mjs +20 -24
  10. package/esm2022/lib/card.component.mjs +3 -3
  11. package/esm2022/lib/data-table.component.mjs +1 -1
  12. package/esm2022/lib/date-picker.component.mjs +2 -2
  13. package/esm2022/lib/date-range-picker.component.mjs +1 -1
  14. package/esm2022/lib/empty-state.component.mjs +111 -0
  15. package/esm2022/lib/input.component.mjs +125 -32
  16. package/esm2022/lib/masked-input.component.mjs +210 -46
  17. package/esm2022/lib/multi-select.component.mjs +1 -1
  18. package/esm2022/lib/otp-group.component.mjs +15 -0
  19. package/esm2022/lib/otp-slot.component.mjs +74 -0
  20. package/esm2022/lib/otp.component.mjs +127 -0
  21. package/esm2022/lib/popover-content.component.mjs +44 -0
  22. package/esm2022/lib/popover.component.mjs +105 -0
  23. package/esm2022/lib/radio-group.component.mjs +78 -0
  24. package/esm2022/lib/radio-item.component.mjs +112 -0
  25. package/esm2022/lib/radio-service.mjs +23 -0
  26. package/esm2022/lib/select.component.mjs +38 -9
  27. package/esm2022/lib/textarea.component.mjs +130 -26
  28. package/esm2022/lib/theme.service.mjs +227 -56
  29. package/esm2022/public-api.mjs +16 -1
  30. package/esm2022/tolle-ui.mjs +5 -0
  31. package/fesm2022/{tolle_-tolle-ui.mjs → tolle-ui.mjs} +1730 -201
  32. package/fesm2022/tolle-ui.mjs.map +1 -0
  33. package/lib/alert.component.d.ts +25 -0
  34. package/lib/avatar-fallback.component.d.ts +5 -0
  35. package/lib/avatar.component.d.ts +17 -0
  36. package/lib/breadcrumb-item.component.d.ts +5 -0
  37. package/lib/breadcrumb-link.component.d.ts +6 -0
  38. package/lib/breadcrumb-separator.component.d.ts +5 -0
  39. package/lib/breadcrumb.component.d.ts +8 -0
  40. package/lib/button.component.d.ts +1 -4
  41. package/lib/empty-state.component.d.ts +20 -0
  42. package/lib/input.component.d.ts +11 -3
  43. package/lib/masked-input.component.d.ts +14 -1
  44. package/lib/otp-group.component.d.ts +5 -0
  45. package/lib/otp-slot.component.d.ts +13 -0
  46. package/lib/otp.component.d.ts +21 -0
  47. package/lib/popover-content.component.d.ts +8 -0
  48. package/lib/popover.component.d.ts +19 -0
  49. package/lib/radio-group.component.d.ts +23 -0
  50. package/lib/radio-item.component.d.ts +22 -0
  51. package/lib/radio-service.d.ts +11 -0
  52. package/lib/select.component.d.ts +1 -0
  53. package/lib/textarea.component.d.ts +8 -1
  54. package/lib/theme.service.d.ts +37 -3
  55. package/package.json +7 -6
  56. package/preset.js +47 -33
  57. package/public-api.d.ts +15 -0
  58. package/theme.css +208 -163
  59. package/esm2022/tolle_-tolle-ui.mjs +0 -5
  60. package/fesm2022/tolle_-tolle-ui.mjs.map +0 -1
@@ -0,0 +1,116 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from './utils/cn';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ const alertVariants = cva("relative w-full rounded-lg border p-4 transition-all duration-300 [&>i~div]:pl-7 [&>i]:absolute [&>i]:left-4 [&>i]:top-4 [&>i]:text-foreground", {
8
+ variants: {
9
+ variant: {
10
+ default: "bg-background text-foreground",
11
+ destructive: "border-destructive/50 text-destructive dark:border-destructive [&>i]:text-destructive",
12
+ success: "border-emerald-500/50 text-emerald-700 dark:text-emerald-400 [&>i]:text-emerald-600",
13
+ warning: "border-amber-500/50 text-amber-700 dark:text-amber-400 [&>i]:text-amber-600",
14
+ },
15
+ },
16
+ defaultVariants: {
17
+ variant: "default",
18
+ },
19
+ });
20
+ export class AlertComponent {
21
+ variant = 'default';
22
+ title;
23
+ class = '';
24
+ dismissible = false;
25
+ onClose = new EventEmitter();
26
+ dismissed = false;
27
+ isDismissing = false;
28
+ alertVariants = alertVariants;
29
+ cn = cn;
30
+ dismiss() {
31
+ this.isDismissing = true;
32
+ // Wait for animation to finish before removing from DOM
33
+ setTimeout(() => {
34
+ this.dismissed = true;
35
+ this.onClose.emit();
36
+ }, 300);
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AlertComponent, isStandalone: true, selector: "tolle-alert", inputs: { variant: "variant", title: "title", class: "class", dismissible: "dismissible" }, outputs: { onClose: "onClose" }, ngImport: i0, template: `
40
+ <div
41
+ *ngIf="!dismissed"
42
+ [class]="cn(alertVariants({ variant }), class)"
43
+ [class.opacity-0]="isDismissing"
44
+ [class.scale-95]="isDismissing"
45
+ role="alert"
46
+ >
47
+ <ng-content select="[icon]"></ng-content>
48
+
49
+ <button
50
+ *ngIf="dismissible"
51
+ (click)="dismiss()"
52
+ class="absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 group-hover:opacity-100"
53
+ [class.opacity-100]="dismissible"
54
+ >
55
+ <i class="ri-close-line text-lg"></i>
56
+ </button>
57
+
58
+ <div>
59
+ <h5 *ngIf="title" class="mb-1 font-medium leading-none tracking-tight">
60
+ {{ title }}
61
+ </h5>
62
+ <div class="text-sm [&_p]:leading-relaxed">
63
+ <ng-content></ng-content>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertComponent, decorators: [{
70
+ type: Component,
71
+ args: [{
72
+ selector: 'tolle-alert',
73
+ standalone: true,
74
+ imports: [CommonModule],
75
+ template: `
76
+ <div
77
+ *ngIf="!dismissed"
78
+ [class]="cn(alertVariants({ variant }), class)"
79
+ [class.opacity-0]="isDismissing"
80
+ [class.scale-95]="isDismissing"
81
+ role="alert"
82
+ >
83
+ <ng-content select="[icon]"></ng-content>
84
+
85
+ <button
86
+ *ngIf="dismissible"
87
+ (click)="dismiss()"
88
+ class="absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 group-hover:opacity-100"
89
+ [class.opacity-100]="dismissible"
90
+ >
91
+ <i class="ri-close-line text-lg"></i>
92
+ </button>
93
+
94
+ <div>
95
+ <h5 *ngIf="title" class="mb-1 font-medium leading-none tracking-tight">
96
+ {{ title }}
97
+ </h5>
98
+ <div class="text-sm [&_p]:leading-relaxed">
99
+ <ng-content></ng-content>
100
+ </div>
101
+ </div>
102
+ </div>
103
+ `,
104
+ }]
105
+ }], propDecorators: { variant: [{
106
+ type: Input
107
+ }], title: [{
108
+ type: Input
109
+ }], class: [{
110
+ type: Input
111
+ }], dismissible: [{
112
+ type: Input
113
+ }], onClose: [{
114
+ type: Output
115
+ }] } });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9hbGVydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFFaEMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUN2QixnSkFBZ0osRUFDaEo7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsK0JBQStCO1lBQ3hDLFdBQVcsRUFBRSx1RkFBdUY7WUFDcEcsT0FBTyxFQUFFLHFGQUFxRjtZQUM5RixPQUFPLEVBQUUsNkVBQTZFO1NBQ3ZGO0tBQ0Y7SUFDRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsU0FBUztLQUNuQjtDQUNGLENBQ0YsQ0FBQztBQXNDRixNQUFNLE9BQU8sY0FBYztJQUNoQixPQUFPLEdBQTZCLFNBQVMsQ0FBQztJQUM5QyxLQUFLLENBQVU7SUFDZixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFNUIsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFN0MsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRVgsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUM5QixFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRWxCLE9BQU87UUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6Qix3REFBd0Q7UUFDeEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzt3R0FyQlUsY0FBYzs0RkFBZCxjQUFjLG9NQTlCZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCVCwyREE3QlMsWUFBWTs7NEZBK0JYLGNBQWM7a0JBbEMxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQ7aUJBQ0Y7OEJBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmNvbnN0IGFsZXJ0VmFyaWFudHMgPSBjdmEoXG4gIFwicmVsYXRpdmUgdy1mdWxsIHJvdW5kZWQtbGcgYm9yZGVyIHAtNCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgWyY+aX5kaXZdOnBsLTcgWyY+aV06YWJzb2x1dGUgWyY+aV06bGVmdC00IFsmPmldOnRvcC00IFsmPmldOnRleHQtZm9yZWdyb3VuZFwiLFxuICB7XG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IHtcbiAgICAgICAgZGVmYXVsdDogXCJiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBkZXN0cnVjdGl2ZTogXCJib3JkZXItZGVzdHJ1Y3RpdmUvNTAgdGV4dC1kZXN0cnVjdGl2ZSBkYXJrOmJvcmRlci1kZXN0cnVjdGl2ZSBbJj5pXTp0ZXh0LWRlc3RydWN0aXZlXCIsXG4gICAgICAgIHN1Y2Nlc3M6IFwiYm9yZGVyLWVtZXJhbGQtNTAwLzUwIHRleHQtZW1lcmFsZC03MDAgZGFyazp0ZXh0LWVtZXJhbGQtNDAwIFsmPmldOnRleHQtZW1lcmFsZC02MDBcIixcbiAgICAgICAgd2FybmluZzogXCJib3JkZXItYW1iZXItNTAwLzUwIHRleHQtYW1iZXItNzAwIGRhcms6dGV4dC1hbWJlci00MDAgWyY+aV06dGV4dC1hbWJlci02MDBcIixcbiAgICAgIH0sXG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IFwiZGVmYXVsdFwiLFxuICAgIH0sXG4gIH1cbik7XG5cbnR5cGUgQWxlcnRWYXJpYW50cyA9IFZhcmlhbnRQcm9wczx0eXBlb2YgYWxlcnRWYXJpYW50cz47XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWFsZXJ0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhZGlzbWlzc2VkXCJcbiAgICAgIFtjbGFzc109XCJjbihhbGVydFZhcmlhbnRzKHsgdmFyaWFudCB9KSwgY2xhc3MpXCJcbiAgICAgIFtjbGFzcy5vcGFjaXR5LTBdPVwiaXNEaXNtaXNzaW5nXCJcbiAgICAgIFtjbGFzcy5zY2FsZS05NV09XCJpc0Rpc21pc3NpbmdcIlxuICAgICAgcm9sZT1cImFsZXJ0XCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaWNvbl1cIj48L25nLWNvbnRlbnQ+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJkaXNtaXNzaWJsZVwiXG4gICAgICAgIChjbGljayk9XCJkaXNtaXNzKClcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTIgdG9wLTIgcm91bmRlZC1tZCBwLTEgdGV4dC1mb3JlZ3JvdW5kLzUwIG9wYWNpdHktMCB0cmFuc2l0aW9uLW9wYWNpdHkgaG92ZXI6dGV4dC1mb3JlZ3JvdW5kIGZvY3VzOm9wYWNpdHktMTAwIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwXCJcbiAgICAgICAgW2NsYXNzLm9wYWNpdHktMTAwXT1cImRpc21pc3NpYmxlXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJyaS1jbG9zZS1saW5lIHRleHQtbGdcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdj5cbiAgICAgICAgPGg1ICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cIm1iLTEgZm9udC1tZWRpdW0gbGVhZGluZy1ub25lIHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAge3sgdGl0bGUgfX1cbiAgICAgICAgPC9oNT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc20gWyZfcF06bGVhZGluZy1yZWxheGVkXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6IEFsZXJ0VmFyaWFudHNbJ3ZhcmlhbnQnXSA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGlzbWlzc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgb25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBkaXNtaXNzZWQgPSBmYWxzZTtcbiAgaXNEaXNtaXNzaW5nID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIGFsZXJ0VmFyaWFudHMgPSBhbGVydFZhcmlhbnRzO1xuICBwcm90ZWN0ZWQgY24gPSBjbjtcblxuICBkaXNtaXNzKCkge1xuICAgIHRoaXMuaXNEaXNtaXNzaW5nID0gdHJ1ZTtcbiAgICAvLyBXYWl0IGZvciBhbmltYXRpb24gdG8gZmluaXNoIGJlZm9yZSByZW1vdmluZyBmcm9tIERPTVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kaXNtaXNzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcbiAgICB9LCAzMDApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AvatarFallbackComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarFallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AvatarFallbackComponent, isStandalone: true, selector: "tolle-avatar-fallback", ngImport: i0, template: `
6
+ <div class="flex h-full w-full items-center justify-center bg-muted text-muted-foreground font-medium uppercase">
7
+ <ng-content></ng-content>
8
+ </div>
9
+ `, isInline: true, styles: [""] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarFallbackComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'tolle-avatar-fallback', standalone: true, imports: [], template: `
14
+ <div class="flex h-full w-full items-center justify-center bg-muted text-muted-foreground font-medium uppercase">
15
+ <ng-content></ng-content>
16
+ </div>
17
+ ` }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWZhbGxiYWNrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYXZhdGFyLWZhbGxiYWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWExQyxNQUFNLE9BQU8sdUJBQXVCO3dHQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QixpRkFQeEI7Ozs7R0FJVDs7NEZBR1UsdUJBQXVCO2tCQVhuQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsRUFBRSxZQUNEOzs7O0dBSVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtYXZhdGFyLWZhbGxiYWNrJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYmctbXV0ZWQgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGZvbnQtbWVkaXVtIHVwcGVyY2FzZVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IGBgXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhckZhbGxiYWNrQ29tcG9uZW50IHtcblxufVxuIl19
@@ -0,0 +1,86 @@
1
+ import { Component, Input, HostBinding } from '@angular/core';
2
+ import { cn } from './utils/cn';
3
+ import { NgIf } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ export class AvatarComponent {
6
+ cdr;
7
+ src;
8
+ alt = '';
9
+ size = 'default';
10
+ shape = 'circle';
11
+ // We remove @Input() class because standard class="" attributes
12
+ // on the tag will now work automatically with the host bindings.
13
+ isLoading = true;
14
+ hasError = false;
15
+ constructor(cdr) {
16
+ this.cdr = cdr;
17
+ }
18
+ onLoad() {
19
+ this.isLoading = false;
20
+ this.cdr.detectChanges();
21
+ }
22
+ onError() {
23
+ this.isLoading = false;
24
+ this.hasError = true;
25
+ this.cdr.detectChanges();
26
+ }
27
+ // Apply styles directly to the <tolle-avatar> tag
28
+ get hostClasses() {
29
+ return cn(
30
+ // Layout & Shape
31
+ "relative flex shrink-0 overflow-hidden bg-muted", this.shape === 'circle' ? 'rounded-full' : 'rounded-md',
32
+ // Sizes
33
+ this.size === 'sm' && "h-8 w-8 text-xs", this.size === 'default' && "h-10 w-10", this.size === 'lg' && "h-16 w-16 text-lg", this.size === 'xl' && "h-24 w-24 text-xl");
34
+ }
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AvatarComponent, isStandalone: true, selector: "tolle-avatar", inputs: { src: "src", alt: "alt", size: "size", shape: "shape" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: `
37
+ <!-- Image Layer -->
38
+ <img *ngIf="src && !hasError"
39
+ [src]="src"
40
+ [alt]="alt"
41
+ (load)="onLoad()"
42
+ (error)="onError()"
43
+ [class.opacity-0]="isLoading"
44
+ class="h-full w-full object-cover transition-opacity duration-300" />
45
+
46
+ <!-- Fallback Layer -->
47
+ <div *ngIf="hasError || !src || isLoading" class="flex h-full w-full items-center justify-center bg-muted">
48
+ <ng-content></ng-content>
49
+ </div>
50
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarComponent, decorators: [{
53
+ type: Component,
54
+ args: [{
55
+ selector: 'tolle-avatar',
56
+ standalone: true,
57
+ imports: [NgIf],
58
+ template: `
59
+ <!-- Image Layer -->
60
+ <img *ngIf="src && !hasError"
61
+ [src]="src"
62
+ [alt]="alt"
63
+ (load)="onLoad()"
64
+ (error)="onError()"
65
+ [class.opacity-0]="isLoading"
66
+ class="h-full w-full object-cover transition-opacity duration-300" />
67
+
68
+ <!-- Fallback Layer -->
69
+ <div *ngIf="hasError || !src || isLoading" class="flex h-full w-full items-center justify-center bg-muted">
70
+ <ng-content></ng-content>
71
+ </div>
72
+ `
73
+ }]
74
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { src: [{
75
+ type: Input
76
+ }], alt: [{
77
+ type: Input
78
+ }], size: [{
79
+ type: Input
80
+ }], shape: [{
81
+ type: Input
82
+ }], hostClasses: [{
83
+ type: HostBinding,
84
+ args: ['class']
85
+ }] } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYXZhdGFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQXNCdkMsTUFBTSxPQUFPLGVBQWU7SUFZTjtJQVhYLEdBQUcsQ0FBVTtJQUNiLEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakIsSUFBSSxHQUFtQyxTQUFTLENBQUM7SUFDakQsS0FBSyxHQUF3QixRQUFRLENBQUM7SUFFL0MsZ0VBQWdFO0lBQ2hFLGlFQUFpRTtJQUVqRSxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ2pCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFakIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFBRyxDQUFDO0lBRTlDLE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsa0RBQWtEO0lBQ2xELElBQ0ksV0FBVztRQUNiLE9BQU8sRUFBRTtRQUNQLGlCQUFpQjtRQUNqQixpREFBaUQsRUFDakQsSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUV2RCxRQUFRO1FBQ1IsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksaUJBQWlCLEVBQ3ZDLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLFdBQVcsRUFDdEMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksbUJBQW1CLEVBQ3pDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLG1CQUFtQixDQUMxQyxDQUFDO0lBQ0osQ0FBQzt3R0F2Q1UsZUFBZTs0RkFBZixlQUFlLGlNQWhCaEI7Ozs7Ozs7Ozs7Ozs7O0dBY1QsNERBZlMsSUFBSTs7NEZBaUJILGVBQWU7a0JBcEIzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDO29CQUNmLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjVDtpQkFDRjtzRkFFVSxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBdUJGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RvbGxlLWF2YXRhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tIEltYWdlIExheWVyIC0tPlxuICAgIDxpbWcgKm5nSWY9XCJzcmMgJiYgIWhhc0Vycm9yXCJcbiAgICAgICAgIFtzcmNdPVwic3JjXCJcbiAgICAgICAgIFthbHRdPVwiYWx0XCJcbiAgICAgICAgIChsb2FkKT1cIm9uTG9hZCgpXCJcbiAgICAgICAgIChlcnJvcik9XCJvbkVycm9yKClcIlxuICAgICAgICAgW2NsYXNzLm9wYWNpdHktMF09XCJpc0xvYWRpbmdcIlxuICAgICAgICAgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlciB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMzAwXCIgLz5cblxuICAgIDwhLS0gRmFsbGJhY2sgTGF5ZXIgLS0+XG4gICAgPGRpdiAqbmdJZj1cImhhc0Vycm9yIHx8ICFzcmMgfHwgaXNMb2FkaW5nXCIgY2xhc3M9XCJmbGV4IGgtZnVsbCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLW11dGVkXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgQXZhdGFyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc3JjPzogc3RyaW5nO1xuICBASW5wdXQoKSBhbHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2RlZmF1bHQnIHwgJ2xnJyB8ICd4bCcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHNoYXBlOiAnY2lyY2xlJyB8ICdzcXVhcmUnID0gJ2NpcmNsZSc7XG5cbiAgLy8gV2UgcmVtb3ZlIEBJbnB1dCgpIGNsYXNzIGJlY2F1c2Ugc3RhbmRhcmQgY2xhc3M9XCJcIiBhdHRyaWJ1dGVzXG4gIC8vIG9uIHRoZSB0YWcgd2lsbCBub3cgd29yayBhdXRvbWF0aWNhbGx5IHdpdGggdGhlIGhvc3QgYmluZGluZ3MuXG5cbiAgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgaGFzRXJyb3IgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgb25Mb2FkKCkge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25FcnJvcigpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8vIEFwcGx5IHN0eWxlcyBkaXJlY3RseSB0byB0aGUgPHRvbGxlLWF2YXRhcj4gdGFnXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgLy8gTGF5b3V0ICYgU2hhcGVcbiAgICAgIFwicmVsYXRpdmUgZmxleCBzaHJpbmstMCBvdmVyZmxvdy1oaWRkZW4gYmctbXV0ZWRcIixcbiAgICAgIHRoaXMuc2hhcGUgPT09ICdjaXJjbGUnID8gJ3JvdW5kZWQtZnVsbCcgOiAncm91bmRlZC1tZCcsXG5cbiAgICAgIC8vIFNpemVzXG4gICAgICB0aGlzLnNpemUgPT09ICdzbScgJiYgXCJoLTggdy04IHRleHQteHNcIixcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmIFwiaC0xMCB3LTEwXCIsXG4gICAgICB0aGlzLnNpemUgPT09ICdsZycgJiYgXCJoLTE2IHctMTYgdGV4dC1sZ1wiLFxuICAgICAgdGhpcy5zaXplID09PSAneGwnICYmIFwiaC0yNCB3LTI0IHRleHQteGxcIlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -13,7 +13,7 @@ export class BadgeComponent {
13
13
  get computedClass() {
14
14
  return cn(
15
15
  // Base styles - Pills are always rounded-full
16
- 'inline-flex items-center justify-center rounded-full border px-2 py-0.5 font-medium transition-colors gap-1',
16
+ 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 font-medium transition-colors gap-1',
17
17
  // Variants (Google Dark Mode theme)
18
18
  this.variant === 'default' && 'border-transparent bg-primary text-primary-foreground', this.variant === 'secondary' && 'border-transparent bg-secondary text-secondary-foreground', this.variant === 'outline' && 'text-foreground border-border bg-transparent', this.variant === 'destructive' && 'border-transparent bg-destructive text-destructive-foreground',
19
19
  // Sizing
@@ -31,7 +31,7 @@ export class BadgeComponent {
31
31
  <button
32
32
  *ngIf="removable"
33
33
  (click)="onRemove.emit($event)"
34
- class="ml-1 -mr-1 rounded-full p-0.5 hover:bg-foreground/20 transition-colors outline-none focus:ring-1 focus:ring-ring"
34
+ class="ml-1 -mr-1 rounded-md p-0.5 hover:bg-foreground/20 transition-colors outline-none focus:ring-1 focus:ring-ring"
35
35
  >
36
36
  <i class="ri-close-line text-[1.1em]"></i>
37
37
  </button>
@@ -55,7 +55,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
55
55
  <button
56
56
  *ngIf="removable"
57
57
  (click)="onRemove.emit($event)"
58
- class="ml-1 -mr-1 rounded-full p-0.5 hover:bg-foreground/20 transition-colors outline-none focus:ring-1 focus:ring-ring"
58
+ class="ml-1 -mr-1 rounded-md p-0.5 hover:bg-foreground/20 transition-colors outline-none focus:ring-1 focus:ring-ring"
59
59
  >
60
60
  <i class="ri-close-line text-[1.1em]"></i>
61
61
  </button>
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
73
73
  }], onRemove: [{
74
74
  type: Output
75
75
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBd0JoQyxNQUFNLE9BQU8sY0FBYztJQUNoQixPQUFPLEdBQXdELFNBQVMsQ0FBQztJQUN6RSxJQUFJLEdBQTRCLFNBQVMsQ0FBQztJQUMxQyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsZ0NBQWdDO0lBQ25ELEtBQUssR0FBRyxFQUFFLENBQUM7SUFFVixRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUVqQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRTNCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRTtRQUNQLDhDQUE4QztRQUM5Qyw2R0FBNkc7UUFFN0csb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLHVEQUF1RCxFQUNyRixJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSwyREFBMkQsRUFDM0YsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksOENBQThDLEVBQzVFLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxJQUFJLCtEQUErRDtRQUVqRyxTQUFTO1FBQ1QsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUkseUJBQXlCLEVBQy9DLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLHVCQUF1QixFQUM3QyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxTQUFTLEVBRXBDLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7d0dBNUJVLGNBQWM7NEZBQWQsY0FBYyxnTUFsQmY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQsMkRBakJTLFlBQVk7OzRGQW1CWCxjQUFjO2tCQXRCMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUO2lCQUNGOzhCQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtYmFkZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjb21wdXRlZENsYXNzXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHJlZml4XVwiPjwvbmctY29udGVudD5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJyZW1vdmFibGVcIlxuICAgICAgICAoY2xpY2spPVwib25SZW1vdmUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJtbC0xIC1tci0xIHJvdW5kZWQtZnVsbCBwLTAuNSBob3ZlcjpiZy1mb3JlZ3JvdW5kLzIwIHRyYW5zaXRpb24tY29sb3JzIG91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1yaW5nXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJyaS1jbG9zZS1saW5lIHRleHQtWzEuMWVtXVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBCYWRnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHZhcmlhbnQ6ICdkZWZhdWx0JyB8ICdzZWNvbmRhcnknIHwgJ291dGxpbmUnIHwgJ2Rlc3RydWN0aXZlJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgc2l6ZTogJ3hzJyB8ICdzbScgfCAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHJlbW92YWJsZSA9IGZhbHNlOyAvLyBUb2dnbGUgdGhlIFwiUGlsbFwiIHJlbW92ZSBpY29uXG4gIEBJbnB1dCgpIGNsYXNzID0gJyc7XG5cbiAgQE91dHB1dCgpIG9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjbiA9IGNuO1xuXG4gIGdldCBjb21wdXRlZENsYXNzKCkge1xuICAgIHJldHVybiBjbihcbiAgICAgIC8vIEJhc2Ugc3R5bGVzIC0gUGlsbHMgYXJlIGFsd2F5cyByb3VuZGVkLWZ1bGxcbiAgICAgICdpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJvcmRlciBweC0yIHB5LTAuNSBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyBnYXAtMScsXG5cbiAgICAgIC8vIFZhcmlhbnRzIChHb29nbGUgRGFyayBNb2RlIHRoZW1lKVxuICAgICAgdGhpcy52YXJpYW50ID09PSAnZGVmYXVsdCcgJiYgJ2JvcmRlci10cmFuc3BhcmVudCBiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kJyxcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ3NlY29uZGFyeScgJiYgJ2JvcmRlci10cmFuc3BhcmVudCBiZy1zZWNvbmRhcnkgdGV4dC1zZWNvbmRhcnktZm9yZWdyb3VuZCcsXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lJyAmJiAndGV4dC1mb3JlZ3JvdW5kIGJvcmRlci1ib3JkZXIgYmctdHJhbnNwYXJlbnQnLFxuICAgICAgdGhpcy52YXJpYW50ID09PSAnZGVzdHJ1Y3RpdmUnICYmICdib3JkZXItdHJhbnNwYXJlbnQgYmctZGVzdHJ1Y3RpdmUgdGV4dC1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kJyxcblxuICAgICAgLy8gU2l6aW5nXG4gICAgICB0aGlzLnNpemUgPT09ICd4cycgJiYgJ3B4LTEuNSBweS0wIHRleHQtWzEwcHhdJyxcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3NtJyAmJiAncHgtMiBweS0wIHRleHQtWzExcHhdJyxcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ2RlZmF1bHQnICYmICd0ZXh0LXhzJyxcblxuICAgICAgdGhpcy5jbGFzc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7O0FBd0JoQyxNQUFNLE9BQU8sY0FBYztJQUNoQixPQUFPLEdBQXdELFNBQVMsQ0FBQztJQUN6RSxJQUFJLEdBQTRCLFNBQVMsQ0FBQztJQUMxQyxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsZ0NBQWdDO0lBQ25ELEtBQUssR0FBRyxFQUFFLENBQUM7SUFFVixRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztJQUVqQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBRTNCLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRTtRQUNQLDhDQUE4QztRQUM5QywyR0FBMkc7UUFFM0csb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLHVEQUF1RCxFQUNyRixJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsSUFBSSwyREFBMkQsRUFDM0YsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksOENBQThDLEVBQzVFLElBQUksQ0FBQyxPQUFPLEtBQUssYUFBYSxJQUFJLCtEQUErRDtRQUVqRyxTQUFTO1FBQ1QsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUkseUJBQXlCLEVBQy9DLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLHVCQUF1QixFQUM3QyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxTQUFTLEVBRXBDLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7d0dBNUJVLGNBQWM7NEZBQWQsY0FBYyxnTUFsQmY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQsMkRBakJTLFlBQVk7OzRGQW1CWCxjQUFjO2tCQXRCMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUO2lCQUNGOzhCQUVVLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY24gfSBmcm9tICcuL3V0aWxzL2NuJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtYmFkZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJjb21wdXRlZENsYXNzXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHJlZml4XVwiPjwvbmctY29udGVudD5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJyZW1vdmFibGVcIlxuICAgICAgICAoY2xpY2spPVwib25SZW1vdmUuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgY2xhc3M9XCJtbC0xIC1tci0xIHJvdW5kZWQtbWQgcC0wLjUgaG92ZXI6YmctZm9yZWdyb3VuZC8yMCB0cmFuc2l0aW9uLWNvbG9ycyBvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0xIGZvY3VzOnJpbmctcmluZ1wiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwicmktY2xvc2UtbGluZSB0ZXh0LVsxLjFlbV1cIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSB2YXJpYW50OiAnZGVmYXVsdCcgfCAnc2Vjb25kYXJ5JyB8ICdvdXRsaW5lJyB8ICdkZXN0cnVjdGl2ZScgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHNpemU6ICd4cycgfCAnc20nIHwgJ2RlZmF1bHQnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSByZW1vdmFibGUgPSBmYWxzZTsgLy8gVG9nZ2xlIHRoZSBcIlBpbGxcIiByZW1vdmUgaWNvblxuICBASW5wdXQoKSBjbGFzcyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBvblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY24gPSBjbjtcblxuICBnZXQgY29tcHV0ZWRDbGFzcygpIHtcbiAgICByZXR1cm4gY24oXG4gICAgICAvLyBCYXNlIHN0eWxlcyAtIFBpbGxzIGFyZSBhbHdheXMgcm91bmRlZC1mdWxsXG4gICAgICAnaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIHB4LTIgcHktMC41IGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzIGdhcC0xJyxcblxuICAgICAgLy8gVmFyaWFudHMgKEdvb2dsZSBEYXJrIE1vZGUgdGhlbWUpXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdkZWZhdWx0JyAmJiAnYm9yZGVyLXRyYW5zcGFyZW50IGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQnLFxuICAgICAgdGhpcy52YXJpYW50ID09PSAnc2Vjb25kYXJ5JyAmJiAnYm9yZGVyLXRyYW5zcGFyZW50IGJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kJyxcbiAgICAgIHRoaXMudmFyaWFudCA9PT0gJ291dGxpbmUnICYmICd0ZXh0LWZvcmVncm91bmQgYm9yZGVyLWJvcmRlciBiZy10cmFuc3BhcmVudCcsXG4gICAgICB0aGlzLnZhcmlhbnQgPT09ICdkZXN0cnVjdGl2ZScgJiYgJ2JvcmRlci10cmFuc3BhcmVudCBiZy1kZXN0cnVjdGl2ZSB0ZXh0LWRlc3RydWN0aXZlLWZvcmVncm91bmQnLFxuXG4gICAgICAvLyBTaXppbmdcbiAgICAgIHRoaXMuc2l6ZSA9PT0gJ3hzJyAmJiAncHgtMS41IHB5LTAgdGV4dC1bMTBweF0nLFxuICAgICAgdGhpcy5zaXplID09PSAnc20nICYmICdweC0yIHB5LTAgdGV4dC1bMTFweF0nLFxuICAgICAgdGhpcy5zaXplID09PSAnZGVmYXVsdCcgJiYgJ3RleHQteHMnLFxuXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,19 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BreadcrumbItemComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BreadcrumbItemComponent, isStandalone: true, selector: "tolle-breadcrumb-item", ngImport: i0, template: `
6
+ <li class="inline-flex items-center gap-1.5">
7
+ <ng-content></ng-content>
8
+ </li>
9
+ `, isInline: true, styles: [""] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbItemComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'tolle-breadcrumb-item', standalone: true, imports: [], template: `
14
+ <li class="inline-flex items-center gap-1.5">
15
+ <ng-content></ng-content>
16
+ </li>
17
+ ` }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYnJlYWRjcnVtYi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWExQyxNQUFNLE9BQU8sdUJBQXVCO3dHQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QixpRkFQeEI7Ozs7R0FJVDs7NEZBR1UsdUJBQXVCO2tCQVhuQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsRUFBRSxZQUNEOzs7O0dBSVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtYnJlYWRjcnVtYi1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGxpIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjVcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2xpPlxuICBgLFxuICBzdHlsZXM6IGBgXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJJdGVtQ29tcG9uZW50IHtcblxufVxuIl19
@@ -0,0 +1,60 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class BreadcrumbLinkComponent {
5
+ active = false;
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BreadcrumbLinkComponent, isStandalone: true, selector: "tolle-breadcrumb-link", inputs: { active: "active" }, ngImport: i0, template: `
8
+ <ng-template #content>
9
+ <ng-content></ng-content>
10
+ </ng-template>
11
+
12
+ <ng-container *ngIf="active; else linkTemplate">
13
+ <span
14
+ role="link"
15
+ aria-disabled="true"
16
+ aria-current="page"
17
+ class="font-normal text-foreground"
18
+ >
19
+ <ng-container *ngTemplateOutlet="content"></ng-container>
20
+ </span>
21
+ </ng-container>
22
+
23
+ <ng-template #linkTemplate>
24
+ <div class="transition-colors hover:text-foreground cursor-pointer">
25
+ <ng-container *ngTemplateOutlet="content"></ng-container>
26
+ </div>
27
+ </ng-template>
28
+ `, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbLinkComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'tolle-breadcrumb-link', standalone: true, imports: [
33
+ NgIf,
34
+ NgTemplateOutlet
35
+ ], template: `
36
+ <ng-template #content>
37
+ <ng-content></ng-content>
38
+ </ng-template>
39
+
40
+ <ng-container *ngIf="active; else linkTemplate">
41
+ <span
42
+ role="link"
43
+ aria-disabled="true"
44
+ aria-current="page"
45
+ class="font-normal text-foreground"
46
+ >
47
+ <ng-container *ngTemplateOutlet="content"></ng-container>
48
+ </span>
49
+ </ng-container>
50
+
51
+ <ng-template #linkTemplate>
52
+ <div class="transition-colors hover:text-foreground cursor-pointer">
53
+ <ng-container *ngTemplateOutlet="content"></ng-container>
54
+ </div>
55
+ </ng-template>
56
+ ` }]
57
+ }], propDecorators: { active: [{
58
+ type: Input
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYnJlYWRjcnVtYi1saW5rLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBaUN2RCxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLE1BQU0sR0FBWSxLQUFLLENBQUM7d0dBRHRCLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLCtHQXhCeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVCwwRUF4QkMsSUFBSSw2RkFDSixnQkFBZ0I7OzRGQTBCUCx1QkFBdUI7a0JBL0JuQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1A7d0JBQ1AsSUFBSTt3QkFDSixnQkFBZ0I7cUJBQ2pCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDs4QkFJUSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1icmVhZGNydW1iLWxpbmsnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0XG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlOyBlbHNlIGxpbmtUZW1wbGF0ZVwiPlxuICAgICAgPHNwYW5cbiAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICBhcmlhLWRpc2FibGVkPVwidHJ1ZVwiXG4gICAgICAgIGFyaWEtY3VycmVudD1cInBhZ2VcIlxuICAgICAgICBjbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtZm9yZWdyb3VuZFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2xpbmtUZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2l0aW9uLWNvbG9ycyBob3Zlcjp0ZXh0LWZvcmVncm91bmQgY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIHN0eWxlczogYGBcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYkxpbmtDb21wb25lbnQge1xuICBASW5wdXQoKSBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class BreadcrumbSeparatorComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BreadcrumbSeparatorComponent, isStandalone: true, selector: "tolle-breadcrumb-separator", ngImport: i0, template: `
6
+ <li role="presentation" aria-hidden="true" class="[&>i]:size-3.5">
7
+ <ng-content>
8
+ <i class="ri-arrow-right-s-line"></i>
9
+ </ng-content>
10
+ </li>
11
+ `, isInline: true, styles: [""] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbSeparatorComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'tolle-breadcrumb-separator', standalone: true, imports: [], template: `
16
+ <li role="presentation" aria-hidden="true" class="[&>i]:size-3.5">
17
+ <ng-content>
18
+ <i class="ri-arrow-right-s-line"></i>
19
+ </ng-content>
20
+ </li>
21
+ ` }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1zZXBhcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9sbGUvc3JjL2xpYi9icmVhZGNydW1iLXNlcGFyYXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFlMUMsTUFBTSxPQUFPLDRCQUE0Qjt3R0FBNUIsNEJBQTRCOzRGQUE1Qiw0QkFBNEIsc0ZBVDdCOzs7Ozs7R0FNVDs7NEZBR1UsNEJBQTRCO2tCQWJ4QyxTQUFTOytCQUNFLDRCQUE0QixjQUMxQixJQUFJLFdBQ1AsRUFBRSxZQUNEOzs7Ozs7R0FNVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1icmVhZGNydW1iLXNlcGFyYXRvcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxsaSByb2xlPVwicHJlc2VudGF0aW9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJbJj5pXTpzaXplLTMuNVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+XG4gICAgICAgIDxpIGNsYXNzPVwicmktYXJyb3ctcmlnaHQtcy1saW5lXCI+PC9pPlxuICAgICAgPC9uZy1jb250ZW50PlxuICAgIDwvbGk+XG4gIGAsXG4gIHN0eWxlczogYGBcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYlNlcGFyYXRvckNvbXBvbmVudCB7XG5cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { cn } from "./utils/cn";
3
+ import * as i0 from "@angular/core";
4
+ export class BreadcrumbComponent {
5
+ class = '';
6
+ cn = cn;
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: BreadcrumbComponent, isStandalone: true, selector: "tolle-breadcrumb", inputs: { class: "class" }, ngImport: i0, template: `
9
+ <nav aria-label="breadcrumb" [class]="cn('flex flex-wrap items-center break-words text-sm text-muted-foreground', class)">
10
+ <ol class="flex flex-wrap items-center gap-1.5 break-words">
11
+ <ng-content></ng-content>
12
+ </ol>
13
+ </nav>
14
+ `, isInline: true, styles: [""] });
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'tolle-breadcrumb', standalone: true, imports: [], template: `
19
+ <nav aria-label="breadcrumb" [class]="cn('flex flex-wrap items-center break-words text-sm text-muted-foreground', class)">
20
+ <ol class="flex flex-wrap items-center gap-1.5 break-words">
21
+ <ng-content></ng-content>
22
+ </ol>
23
+ </nav>
24
+ ` }]
25
+ }], propDecorators: { class: [{
26
+ type: Input
27
+ }] } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90b2xsZS9zcmMvbGliL2JyZWFkY3J1bWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBZWhDLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNsQixFQUFFLEdBQUcsRUFBRSxDQUFDO3dHQUZQLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHdHQVRwQjs7Ozs7O0dBTVQ7OzRGQUdVLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLEVBQUUsWUFDRDs7Ozs7O0dBTVQ7OEJBSVEsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNuIH0gZnJvbSBcIi4vdXRpbHMvY25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtYnJlYWRjcnVtYicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuYXYgYXJpYS1sYWJlbD1cImJyZWFkY3J1bWJcIiBbY2xhc3NdPVwiY24oJ2ZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBicmVhay13b3JkcyB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsIGNsYXNzKVwiPlxuICAgICAgPG9sIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC0xLjUgYnJlYWstd29yZHNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9vbD5cbiAgICA8L25hdj5cbiAgYCxcbiAgc3R5bGVzOiBgYFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBwcm90ZWN0ZWQgY24gPSBjbjtcbn1cbiJdfQ==
@@ -4,56 +4,48 @@ import { cva } from 'class-variance-authority';
4
4
  import { cn } from './utils/cn';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
- const buttonVariants = cva("inline-flex items-center justify-center rounded-md text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background active:scale-[0.98]", {
7
+ const buttonVariants = cva("tolle-button-base inline-flex items-center justify-center rounded-md text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background active:scale-[0.98]", {
8
8
  variants: {
9
9
  variant: {
10
10
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
11
11
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
12
- outline: "border border-input hover:bg-accent hover:text-accent-foreground",
12
+ outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",
13
13
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
14
14
  ghost: "hover:bg-accent hover:text-accent-foreground",
15
- link: "underline-offset-4 hover:underline text-primary",
15
+ link: "text-primary underline-offset-4 hover:underline",
16
16
  },
17
17
  size: {
18
18
  default: "h-10 px-4 py-2",
19
19
  xs: "h-8 px-2 py-1 text-xs",
20
20
  sm: "h-9 rounded-md px-3",
21
21
  lg: "h-11 rounded-md px-8",
22
- // RESTORED: Square icon button variants
23
22
  "icon-xs": "h-8 w-8",
24
23
  "icon-sm": "h-9 w-9",
25
24
  icon: "h-10 w-10",
26
25
  "icon-lg": "h-11 w-11",
27
26
  },
28
- block: { true: "w-full flex" },
29
- busy: { true: "relative !cursor-wait !pointer-events-none" }
27
+ busy: { true: "tolle-button--busy relative !cursor-wait !pointer-events-none" }
30
28
  },
31
29
  defaultVariants: {
32
30
  variant: "default",
33
31
  size: "default",
34
- block: false,
35
32
  },
36
33
  });
37
34
  export class ButtonComponent {
38
35
  class = '';
39
36
  variant = 'default';
40
37
  size = 'default';
41
- block = false;
42
38
  disabled = false;
43
39
  busy = false;
44
- readonly = false;
45
40
  get computedClass() {
46
41
  return cn(buttonVariants({
47
42
  variant: this.variant,
48
43
  size: this.size,
49
- block: this.block,
50
44
  busy: this.busy
51
- }),
52
- // Adds 'size-icon-sm', 'size-xs', etc. for the CSS selectors to work
53
- 'size-' + this.size, this.class);
45
+ }), this.class);
54
46
  }
55
47
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "tolle-button", inputs: { class: "class", variant: "variant", size: "size", block: "block", disabled: "disabled", busy: "busy", readonly: "readonly" }, ngImport: i0, template: `
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonComponent, isStandalone: true, selector: "tolle-button", inputs: { class: "class", variant: "variant", size: "size", disabled: "disabled", busy: "busy" }, host: { classAttribute: "tolle-button-wrapper inline-block align-middle" }, ngImport: i0, template: `
57
49
  <button
58
50
  [class]="computedClass"
59
51
  [disabled]="disabled || busy"
@@ -66,15 +58,19 @@ export class ButtonComponent {
66
58
  </svg>
67
59
  </div>
68
60
 
69
- <span class="flex items-center justify-center w-full h-full" [class.invisible]="busy">
61
+ <span class="flex items-center justify-center w-full h-full pointer-events-none" [class.invisible]="busy">
70
62
  <ng-content></ng-content>
71
63
  </span>
72
64
  </button>
73
- `, isInline: true, styles: [":host{display:inline-block}:host(.w-full){display:block}:host ::ng-deep i{display:inline-flex;align-items:center;justify-content:center;line-height:1}:host-context(.size-xs) ::ng-deep i,:host-context(.size-icon-xs) ::ng-deep i,:host-context(.size-sm) ::ng-deep i,:host-context(.size-icon-sm) ::ng-deep i{font-size:1rem}:host-context(.size-default) ::ng-deep i,:host-context(.size-icon) ::ng-deep i,:host-context(.size-lg) ::ng-deep i,:host-context(.size-icon-lg) ::ng-deep i{font-size:1.2rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
65
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
74
66
  }
75
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonComponent, decorators: [{
76
68
  type: Component,
77
- args: [{ selector: 'tolle-button', standalone: true, imports: [CommonModule], template: `
69
+ args: [{
70
+ selector: 'tolle-button',
71
+ standalone: true,
72
+ imports: [CommonModule],
73
+ template: `
78
74
  <button
79
75
  [class]="computedClass"
80
76
  [disabled]="disabled || busy"
@@ -87,24 +83,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
87
83
  </svg>
88
84
  </div>
89
85
 
90
- <span class="flex items-center justify-center w-full h-full" [class.invisible]="busy">
86
+ <span class="flex items-center justify-center w-full h-full pointer-events-none" [class.invisible]="busy">
91
87
  <ng-content></ng-content>
92
88
  </span>
93
89
  </button>
94
- `, styles: [":host{display:inline-block}:host(.w-full){display:block}:host ::ng-deep i{display:inline-flex;align-items:center;justify-content:center;line-height:1}:host-context(.size-xs) ::ng-deep i,:host-context(.size-icon-xs) ::ng-deep i,:host-context(.size-sm) ::ng-deep i,:host-context(.size-icon-sm) ::ng-deep i{font-size:1rem}:host-context(.size-default) ::ng-deep i,:host-context(.size-icon) ::ng-deep i,:host-context(.size-lg) ::ng-deep i,:host-context(.size-icon-lg) ::ng-deep i{font-size:1.2rem}\n"] }]
90
+ `,
91
+ host: {
92
+ 'class': 'tolle-button-wrapper inline-block align-middle'
93
+ }
94
+ }]
95
95
  }], propDecorators: { class: [{
96
96
  type: Input
97
97
  }], variant: [{
98
98
  type: Input
99
99
  }], size: [{
100
100
  type: Input
101
- }], block: [{
102
- type: Input
103
101
  }], disabled: [{
104
102
  type: Input
105
103
  }], busy: [{
106
104
  type: Input
107
- }], readonly: [{
108
- type: Input
109
105
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFFaEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUN4Qix1UkFBdVIsRUFDdlI7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsd0RBQXdEO1lBQ2pFLFdBQVcsRUFBRSxvRUFBb0U7WUFDakYsT0FBTyxFQUFFLGtFQUFrRTtZQUMzRSxTQUFTLEVBQUUsOERBQThEO1lBQ3pFLEtBQUssRUFBRSw4Q0FBOEM7WUFDckQsSUFBSSxFQUFFLGlEQUFpRDtTQUN4RDtRQUNELElBQUksRUFBRTtZQUNKLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsRUFBRSxFQUFFLHVCQUF1QjtZQUMzQixFQUFFLEVBQUUscUJBQXFCO1lBQ3pCLEVBQUUsRUFBRSxzQkFBc0I7WUFDMUIsd0NBQXdDO1lBQ3hDLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFNBQVMsRUFBRSxXQUFXO1NBQ3ZCO1FBQ0QsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtRQUM5QixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsNENBQTRDLEVBQUU7S0FDN0Q7SUFDRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsU0FBUztRQUNsQixJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxLQUFLO0tBQ2I7Q0FDRixDQUNGLENBQUM7QUFzREYsTUFBTSxPQUFPLGVBQWU7SUFDakIsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixPQUFPLEdBQTJCLFNBQVMsQ0FBQztJQUM1QyxJQUFJLEdBQXdCLFNBQVMsQ0FBQztJQUN0QyxLQUFLLEdBQVksS0FBSyxDQUFDO0lBQ3ZCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsSUFBSSxHQUFZLEtBQUssQ0FBQztJQUN0QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRW5DLElBQUksYUFBYTtRQUNmLE9BQU8sRUFBRSxDQUNQLGNBQWMsQ0FBQztZQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7UUFDRixxRUFBcUU7UUFDckUsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQ25CLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7d0dBckJVLGVBQWU7NEZBQWYsZUFBZSxnTkE5Q2hCOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVCx1akJBbEJTLFlBQVk7OzRGQStDWCxlQUFlO2tCQWxEM0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUOzhCQThCUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5JztcbmltcG9ydCB7IGNuIH0gZnJvbSAnLi91dGlscy9jbic7XG5cbmNvbnN0IGJ1dHRvblZhcmlhbnRzID0gY3ZhKFxuICBcImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW0gdHJhbnNpdGlvbi1hbGwgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yIGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIGFjdGl2ZTpzY2FsZS1bMC45OF1cIixcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIGRlZmF1bHQ6IFwiYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1wcmltYXJ5LzkwXCIsXG4gICAgICAgIGRlc3RydWN0aXZlOiBcImJnLWRlc3RydWN0aXZlIHRleHQtZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZCBob3ZlcjpiZy1kZXN0cnVjdGl2ZS85MFwiLFxuICAgICAgICBvdXRsaW5lOiBcImJvcmRlciBib3JkZXItaW5wdXQgaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmRcIixcbiAgICAgICAgc2Vjb25kYXJ5OiBcImJnLXNlY29uZGFyeSB0ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5kIGhvdmVyOmJnLXNlY29uZGFyeS84MFwiLFxuICAgICAgICBnaG9zdDogXCJob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZFwiLFxuICAgICAgICBsaW5rOiBcInVuZGVybGluZS1vZmZzZXQtNCBob3Zlcjp1bmRlcmxpbmUgdGV4dC1wcmltYXJ5XCIsXG4gICAgICB9LFxuICAgICAgc2l6ZToge1xuICAgICAgICBkZWZhdWx0OiBcImgtMTAgcHgtNCBweS0yXCIsXG4gICAgICAgIHhzOiBcImgtOCBweC0yIHB5LTEgdGV4dC14c1wiLFxuICAgICAgICBzbTogXCJoLTkgcm91bmRlZC1tZCBweC0zXCIsXG4gICAgICAgIGxnOiBcImgtMTEgcm91bmRlZC1tZCBweC04XCIsXG4gICAgICAgIC8vIFJFU1RPUkVEOiBTcXVhcmUgaWNvbiBidXR0b24gdmFyaWFudHNcbiAgICAgICAgXCJpY29uLXhzXCI6IFwiaC04IHctOFwiLFxuICAgICAgICBcImljb24tc21cIjogXCJoLTkgdy05XCIsXG4gICAgICAgIGljb246IFwiaC0xMCB3LTEwXCIsXG4gICAgICAgIFwiaWNvbi1sZ1wiOiBcImgtMTEgdy0xMVwiLFxuICAgICAgfSxcbiAgICAgIGJsb2NrOiB7IHRydWU6IFwidy1mdWxsIGZsZXhcIiB9LFxuICAgICAgYnVzeTogeyB0cnVlOiBcInJlbGF0aXZlICFjdXJzb3Itd2FpdCAhcG9pbnRlci1ldmVudHMtbm9uZVwiIH1cbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogXCJkZWZhdWx0XCIsXG4gICAgICBzaXplOiBcImRlZmF1bHRcIixcbiAgICAgIGJsb2NrOiBmYWxzZSxcbiAgICB9LFxuICB9XG4pO1xuXG5leHBvcnQgdHlwZSBCdXR0b25Qcm9wcyA9IFZhcmlhbnRQcm9wczx0eXBlb2YgYnV0dG9uVmFyaWFudHM+O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b2xsZS1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uXG4gICAgICBbY2xhc3NdPVwiY29tcHV0ZWRDbGFzc1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgYnVzeVwiXG4gICAgICBbYXR0ci5hcmlhLWJ1c3ldPVwiYnVzeVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImJ1c3lcIiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImFuaW1hdGUtc3BpbiBoLTUgdy01IHRleHQtY3VycmVudFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwib3BhY2l0eS0yNVwiIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjEwXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiNFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDxwYXRoIGNsYXNzPVwib3BhY2l0eS03NVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBkPVwiTTQgMTJhOCA4IDAgMDE4LThWMEM1LjM3MyAwIDAgNS4zNzMgMCAxMmg0em0yIDUuMjkxQTcuOTYyIDcuOTYyIDAgMDE0IDEySDBjMCAzLjA0MiAxLjEzNSA1LjgyNCAzIDcuOTM4bDMtMi42NDd6XCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8c3BhbiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHctZnVsbCBoLWZ1bGxcIiBbY2xhc3MuaW52aXNpYmxlXT1cImJ1c3lcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3QgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICA6aG9zdCgudy1mdWxsKSB7IGRpc3BsYXk6IGJsb2NrOyB9XG5cbiAgICAvKiBDZW50ZXJpbmcgYW5kIFJlc2V0dGluZyBmb3IgaWNvbnMgKi9cbiAgICA6aG9zdCA6Om5nLWRlZXAgaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cblxuICAgIC8qIE1BVENISU5HIFlPVVIgdGhlbWUuY3NzIExPR0lDOiBSZXNwb25zaXZlIGljb24gc2l6aW5nICovXG4gICAgOmhvc3QtY29udGV4dCguc2l6ZS14cykgOjpuZy1kZWVwIGksXG4gICAgOmhvc3QtY29udGV4dCguc2l6ZS1pY29uLXhzKSA6Om5nLWRlZXAgaSxcbiAgICA6aG9zdC1jb250ZXh0KC5zaXplLXNtKSA6Om5nLWRlZXAgaSxcbiAgICA6aG9zdC1jb250ZXh0KC5zaXplLWljb24tc20pIDo6bmctZGVlcCBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgLyogMTZweCAqL1xuICAgIH1cblxuICAgIDpob3N0LWNvbnRleHQoLnNpemUtZGVmYXVsdCkgOjpuZy1kZWVwIGksXG4gICAgOmhvc3QtY29udGV4dCguc2l6ZS1pY29uKSA6Om5nLWRlZXAgaSxcbiAgICA6aG9zdC1jb250ZXh0KC5zaXplLWxnKSA6Om5nLWRlZXAgaSxcbiAgICA6aG9zdC1jb250ZXh0KC5zaXplLWljb24tbGcpIDo6bmctZGVlcCBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOyAvKiB+MTktMjBweCAqL1xuICAgIH1cbiAgYF1cbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB2YXJpYW50OiBCdXR0b25Qcm9wc1sndmFyaWFudCddID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzaXplOiBCdXR0b25Qcm9wc1snc2l6ZSddID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBibG9jazogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBidXN5OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgYnV0dG9uVmFyaWFudHMoe1xuICAgICAgICB2YXJpYW50OiB0aGlzLnZhcmlhbnQsXG4gICAgICAgIHNpemU6IHRoaXMuc2l6ZSxcbiAgICAgICAgYmxvY2s6IHRoaXMuYmxvY2ssXG4gICAgICAgIGJ1c3k6IHRoaXMuYnVzeVxuICAgICAgfSksXG4gICAgICAvLyBBZGRzICdzaXplLWljb24tc20nLCAnc2l6ZS14cycsIGV0Yy4gZm9yIHRoZSBDU1Mgc2VsZWN0b3JzIHRvIHdvcmtcbiAgICAgICdzaXplLScgKyB0aGlzLnNpemUsXG4gICAgICB0aGlzLmNsYXNzXG4gICAgKTtcbiAgfVxufVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RvbGxlL3NyYy9saWIvYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBcUIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFFaEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUN4Qix5U0FBeVMsRUFDelM7SUFDRSxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsd0RBQXdEO1lBQ2pFLFdBQVcsRUFBRSxvRUFBb0U7WUFDakYsT0FBTyxFQUFFLGlGQUFpRjtZQUMxRixTQUFTLEVBQUUsOERBQThEO1lBQ3pFLEtBQUssRUFBRSw4Q0FBOEM7WUFDckQsSUFBSSxFQUFFLGlEQUFpRDtTQUN4RDtRQUNELElBQUksRUFBRTtZQUNKLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsRUFBRSxFQUFFLHVCQUF1QjtZQUMzQixFQUFFLEVBQUUscUJBQXFCO1lBQ3pCLEVBQUUsRUFBRSxzQkFBc0I7WUFDMUIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsSUFBSSxFQUFFLFdBQVc7WUFDakIsU0FBUyxFQUFFLFdBQVc7U0FDdkI7UUFDRCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsK0RBQStELEVBQUU7S0FDaEY7SUFDRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsU0FBUztRQUNsQixJQUFJLEVBQUUsU0FBUztLQUNoQjtDQUNGLENBQ0YsQ0FBQztBQThCRixNQUFNLE9BQU8sZUFBZTtJQUNqQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLE9BQU8sR0FBMkIsU0FBUyxDQUFDO0lBQzVDLElBQUksR0FBd0IsU0FBUyxDQUFDO0lBQ3RDLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsSUFBSSxHQUFZLEtBQUssQ0FBQztJQUUvQixJQUFJLGFBQWE7UUFDZixPQUFPLEVBQUUsQ0FDUCxjQUFjLENBQUM7WUFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUMsRUFDRixJQUFJLENBQUMsS0FBSyxDQUNYLENBQUM7SUFDSixDQUFDO3dHQWhCVSxlQUFlOzRGQUFmLGVBQWUsc1BBdEJoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQsMkRBbEJTLFlBQVk7OzRGQXVCWCxlQUFlO2tCQTFCM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCVDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osT0FBTyxFQUFFLGdEQUFnRDtxQkFDMUQ7aUJBQ0Y7OEJBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gJ2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eSc7XG5pbXBvcnQgeyBjbiB9IGZyb20gJy4vdXRpbHMvY24nO1xuXG5jb25zdCBidXR0b25WYXJpYW50cyA9IGN2YShcbiAgXCJ0b2xsZS1idXR0b24tYmFzZSBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1tZCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tYWxsIGZvY3VzLXZpc2libGU6b3V0bGluZS1ub25lIGZvY3VzLXZpc2libGU6cmluZy0yIGZvY3VzLXZpc2libGU6cmluZy1yaW5nIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtMiBkaXNhYmxlZDpvcGFjaXR5LTUwIGRpc2FibGVkOnBvaW50ZXItZXZlbnRzLW5vbmUgcmluZy1vZmZzZXQtYmFja2dyb3VuZCBhY3RpdmU6c2NhbGUtWzAuOThdXCIsXG4gIHtcbiAgICB2YXJpYW50czoge1xuICAgICAgdmFyaWFudDoge1xuICAgICAgICBkZWZhdWx0OiBcImJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgaG92ZXI6YmctcHJpbWFyeS85MFwiLFxuICAgICAgICBkZXN0cnVjdGl2ZTogXCJiZy1kZXN0cnVjdGl2ZSB0ZXh0LWRlc3RydWN0aXZlLWZvcmVncm91bmQgaG92ZXI6YmctZGVzdHJ1Y3RpdmUvOTBcIixcbiAgICAgICAgb3V0bGluZTogXCJib3JkZXIgYm9yZGVyLWlucHV0IGJnLXRyYW5zcGFyZW50IGhvdmVyOmJnLWFjY2VudCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kXCIsXG4gICAgICAgIHNlY29uZGFyeTogXCJiZy1zZWNvbmRhcnkgdGV4dC1zZWNvbmRhcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1zZWNvbmRhcnkvODBcIixcbiAgICAgICAgZ2hvc3Q6IFwiaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmRcIixcbiAgICAgICAgbGluazogXCJ0ZXh0LXByaW1hcnkgdW5kZXJsaW5lLW9mZnNldC00IGhvdmVyOnVuZGVybGluZVwiLFxuICAgICAgfSxcbiAgICAgIHNpemU6IHtcbiAgICAgICAgZGVmYXVsdDogXCJoLTEwIHB4LTQgcHktMlwiLFxuICAgICAgICB4czogXCJoLTggcHgtMiBweS0xIHRleHQteHNcIixcbiAgICAgICAgc206IFwiaC05IHJvdW5kZWQtbWQgcHgtM1wiLFxuICAgICAgICBsZzogXCJoLTExIHJvdW5kZWQtbWQgcHgtOFwiLFxuICAgICAgICBcImljb24teHNcIjogXCJoLTggdy04XCIsXG4gICAgICAgIFwiaWNvbi1zbVwiOiBcImgtOSB3LTlcIixcbiAgICAgICAgaWNvbjogXCJoLTEwIHctMTBcIixcbiAgICAgICAgXCJpY29uLWxnXCI6IFwiaC0xMSB3LTExXCIsXG4gICAgICB9LFxuICAgICAgYnVzeTogeyB0cnVlOiBcInRvbGxlLWJ1dHRvbi0tYnVzeSByZWxhdGl2ZSAhY3Vyc29yLXdhaXQgIXBvaW50ZXItZXZlbnRzLW5vbmVcIiB9XG4gICAgfSxcbiAgICBkZWZhdWx0VmFyaWFudHM6IHtcbiAgICAgIHZhcmlhbnQ6IFwiZGVmYXVsdFwiLFxuICAgICAgc2l6ZTogXCJkZWZhdWx0XCIsXG4gICAgfSxcbiAgfVxuKTtcblxuZXhwb3J0IHR5cGUgQnV0dG9uUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIGJ1dHRvblZhcmlhbnRzPjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndG9sbGUtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGJ1dHRvblxuICAgICAgW2NsYXNzXT1cImNvbXB1dGVkQ2xhc3NcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGJ1c3lcIlxuICAgICAgW2F0dHIuYXJpYS1idXN5XT1cImJ1c3lcIlxuICAgID5cbiAgICAgIDxkaXYgKm5nSWY9XCJidXN5XCIgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgIDxzdmcgY2xhc3M9XCJhbmltYXRlLXNwaW4gaC01IHctNSB0ZXh0LWN1cnJlbnRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgPGNpcmNsZSBjbGFzcz1cIm9wYWNpdHktMjVcIiBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCIxMFwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjRcIj48L2NpcmNsZT5cbiAgICAgICAgICA8cGF0aCBjbGFzcz1cIm9wYWNpdHktNzVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk00IDEyYTggOCAwIDAxOC04VjBDNS4zNzMgMCAwIDUuMzczIDAgMTJoNHptMiA1LjI5MUE3Ljk2MiA3Ljk2MiAwIDAxNCAxMkgwYzAgMy4wNDIgMS4xMzUgNS44MjQgMyA3LjkzOGwzLTIuNjQ3elwiPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgaC1mdWxsIHBvaW50ZXItZXZlbnRzLW5vbmVcIiBbY2xhc3MuaW52aXNpYmxlXT1cImJ1c3lcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICBgLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ3RvbGxlLWJ1dHRvbi13cmFwcGVyIGlubGluZS1ibG9jayBhbGlnbi1taWRkbGUnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB2YXJpYW50OiBCdXR0b25Qcm9wc1sndmFyaWFudCddID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzaXplOiBCdXR0b25Qcm9wc1snc2l6ZSddID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBidXN5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IGNvbXB1dGVkQ2xhc3MoKSB7XG4gICAgcmV0dXJuIGNuKFxuICAgICAgYnV0dG9uVmFyaWFudHMoe1xuICAgICAgICB2YXJpYW50OiB0aGlzLnZhcmlhbnQsXG4gICAgICAgIHNpemU6IHRoaXMuc2l6ZSxcbiAgICAgICAgYnVzeTogdGhpcy5idXN5XG4gICAgICB9KSxcbiAgICAgIHRoaXMuY2xhc3NcbiAgICApO1xuICB9XG59XG4iXX0=