@lusso/base-ui 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lusso-base-ui.mjs","sources":["../../src/lib/services/current-screen-size.service.ts","../../src/lib/services/sidebar.service.ts","../../src/lib/components/logo/logo.component.ts","../../src/lib/components/logo/logo.component.html","../../src/lib/components/icon/icon.component.ts","../../src/lib/components/icon/icon.component.html","../../src/lib/components/icon/icon.module.ts","../../src/lib/components/avatar/avatar.component.ts","../../src/lib/components/avatar/avatar.component.html","../../src/lib/components/page-base/page-base.component.ts","../../src/lib/components/page-base/page-base.component.html","../../src/lib/components/page-base/page-base-header/page-base-header.component.ts","../../src/lib/components/page-base/page-base-header/page-base-header.component.html","../../src/lib/components/page-base/page-base-footer/page-base-footer.component.ts","../../src/lib/components/page-base/page-base-footer/page-base-footer.component.html","../../src/lib/components/page-base/page-base-body/page-base-body.component.ts","../../src/lib/components/page-base/page-base-body/page-base-body.component.html","../../src/lib/components/card/card.component.ts","../../src/lib/components/card/card.component.html","../../src/lib/components/card/card-body/card-body.component.ts","../../src/lib/components/card/card-body/card-body.component.html","../../src/lib/components/card/card-header/card-header.component.ts","../../src/lib/components/card/card-header/card-header.component.html","../../src/lib/components/card/card-footer/card-footer.component.ts","../../src/lib/components/card/card-footer/card-footer.component.html","../../src/lib/directives/badge/base-badge-addon.directive.ts","../../src/lib/components/badge/badge.component.ts","../../src/lib/components/badge/badge.component.html","../../src/lib/components/button-group/toggle-button.service.ts","../../src/lib/components/button-group/group-button/group-button.component.ts","../../src/lib/components/button-group/group-button/group-button.component.html","../../src/lib/components/button-group/button-group.component.ts","../../src/lib/components/button-group/button-group.component.html","../../src/lib/components/input-group/input-group.component.ts","../../src/lib/components/input-group/input-group.component.html","../../src/lib/components/input-group/label/label.component.ts","../../src/lib/components/input-group/label/label.component.html","../../src/lib/components/input-group/error/error.component.ts","../../src/lib/components/input-group/error/error.component.html","../../src/lib/components/input-group/info-text/info-text.component.ts","../../src/lib/components/input-group/info-text/info-text.component.html","../../src/lib/components/checkbox/checkbox.component.ts","../../src/lib/components/checkbox/checkbox.component.html","../../src/lib/components/radio-group/radio-group.component.ts","../../src/lib/components/radio-group/radio-group.component.html","../../src/lib/components/radio-group/radio-button/radio-button.component.ts","../../src/lib/components/radio-group/radio-button/radio-button.component.html","../../src/lib/components/accordion/accordion-item/accordion-item.component.ts","../../src/lib/components/accordion/accordion-item/accordion-item.component.html","../../src/lib/components/accordion/accordion.component.ts","../../src/lib/components/accordion/accordion.component.html","../../src/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.ts","../../src/lib/components/accordion/accordion-item/accordion-item-header/accordion-item-header.component.html","../../src/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.ts","../../src/lib/components/accordion/accordion-item/accordion-item-body/accordion-item-body.component.html","../../src/lib/components/alert/alert.component.ts","../../src/lib/components/alert/alert.component.html","../../src/lib/components/toggle/toggle.component.ts","../../src/lib/components/toggle/toggle.component.html","../../src/lib/components/breadcrumb/breadcrumb.component.ts","../../src/lib/components/breadcrumb/breadcrumb.component.html","../../src/lib/components/breadcrumb/breadcrumb-item/breadcrumb-item.component.ts","../../src/lib/components/breadcrumb/breadcrumb-item/breadcrumb-item.component.html","../../src/lib/components/tabs/tab-body/tab-body.component.ts","../../src/lib/components/tabs/tab-body/tab-body.component.html","../../src/lib/components/tabs/tab-label/tab-label.component.ts","../../src/lib/components/tabs/tab-label/tab-label.component.html","../../src/lib/components/tabs/tab/tab.component.ts","../../src/lib/components/tabs/tab/tab.component.html","../../src/lib/animations.ts","../../src/lib/components/tabs/tabs.component.ts","../../src/lib/components/tabs/tabs.component.html","../../src/lib/directives/button/base-icon-stroked-button.directive.ts","../../src/lib/components/sidenav/sidenav.component.ts","../../src/lib/components/sidenav/sidenav.component.html","../../src/lib/components/sidenav/sidenav-body/sidenav-body.component.ts","../../src/lib/components/sidenav/sidenav-body/sidenav-body.component.html","../../src/lib/components/sidenav/sidenav-nav/sidenav-nav.component.ts","../../src/lib/components/sidenav/sidenav-nav/sidenav-nav.component.html","../../src/lib/components/alert/alert-actions/alert-actions.component.ts","../../src/lib/components/alert/alert-actions/alert-actions.component.html","../../src/lib/components/nav-list/nav-list.component.ts","../../src/lib/components/nav-list/nav-list.component.html","../../src/lib/components/spinner/spinner.component.ts","../../src/lib/components/spinner/spinner.component.html","../../src/lib/components/spinner/spinner-wrapper/spinner-wrapper.component.ts","../../src/lib/components/spinner/spinner-wrapper/spinner-wrapper.component.html","../../src/lib/components/divider/divider.component.ts","../../src/lib/components/divider/divider.component.html","../../src/lib/components/progress/progress.component.ts","../../src/lib/components/progress/progress.component.html","../../src/lib/directives/scroll-nav/scroll-nav-item.directive.ts","../../src/lib/components/scroll-nav/scroll-nav-content/scroll-nav-content.component.ts","../../src/lib/components/scroll-nav/scroll-nav-content/scroll-nav-content.component.html","../../src/lib/components/scroll-nav/scroll-nav.component.ts","../../src/lib/components/scroll-nav/scroll-nav.component.html","../../src/lib/components/scroll-nav/scroll-nav-sidebar/scroll-nav-sidebar.component.ts","../../src/lib/components/scroll-nav/scroll-nav-sidebar/scroll-nav-sidebar.component.html","../../src/lib/directives/button/base-icon-button.directive.ts","../../src/lib/components/code/code.component.ts","../../src/lib/components/code/code.component.html","../../src/lib/components/drawer/drawer.component.ts","../../src/lib/components/drawer/drawer.component.html","../../src/lib/components/dropdown-menu/dropdown-menu.component.ts","../../src/lib/components/dropdown-menu/dropdown-menu.component.html","../../src/lib/components/dropdown-menu/dropdown-menu-item/dropdown-menu-item.component.ts","../../src/lib/components/dropdown-menu/dropdown-menu-item/dropdown-menu-item.component.html","../../src/lib/components/select/select.component.ts","../../src/lib/components/select/select.component.html","../../src/lib/components/input-spinner/input-spinner.component.ts","../../src/lib/components/input-spinner/input-spinner.component.html","../../src/lib/components/paginator/paginator.component.ts","../../src/lib/components/paginator/paginator.component.html","../../src/lib/components/paginator/p-page/p-page.component.ts","../../src/lib/components/paginator/p-page/p-page.component.html","../../src/lib/directives/input-group/base-input.directive.ts","../../src/lib/components/input-autocomplete/input-autocomplete.component.ts","../../src/lib/components/input-autocomplete/input-autocomplete.component.html","../../src/lib/components/custom-select/custom-select.component.ts","../../src/lib/components/custom-select/custom-select.component.html","../../src/lib/components/calendar/calendar.component.ts","../../src/lib/components/calendar/calendar.component.html","../../src/lib/directives/input-group/base-addon-end.directive.ts","../../src/lib/components/datepicker/datepicker.component.ts","../../src/lib/components/datepicker/datepicker.component.html","../../src/lib/components/date-range-picker/date-range-picker.component.ts","../../src/lib/components/date-range-picker/date-range-picker.component.html","../../src/lib/components/tree/tree.component.ts","../../src/lib/components/tree/tree.component.html","../../src/lib/components/stepper/step/step.component.ts","../../src/lib/directives/button/base-button.directive.ts","../../src/lib/directives/button/base-stroked-button.directive.ts","../../src/lib/components/stepper/stepper.component.ts","../../src/lib/components/stepper/stepper.component.html","../../src/lib/components/star-rating/star-rating.component.ts","../../src/lib/components/star-rating/star-rating.component.html","../../src/lib/components/star-rating/star/star.component.ts","../../src/lib/components/star-rating/star/star.component.html","../../src/lib/components/product-gallery/product-gallery.component.ts","../../src/lib/components/product-gallery/product-gallery.component.html","../../src/lib/directives/tooltip.directive.ts","../../src/lib/directives/container.directive.ts","../../src/lib/directives/base-group-button.directive.ts","../../src/lib/directives/input-group/base-addon-start.directive.ts","../../src/lib/directives/button/base-link.directive.ts","../../src/lib/directives/input-group/base-textarea.directive.ts","../../src/lib/directives/typography/base-heading.directive.ts","../../src/lib/directives/drawer.directive.ts","../../src/lib/directives/dropdown.directive.ts","../../src/lib/directives/base-dropdown-menu-item.directive.ts","../../src/lib/components/slider/slider.directive.ts","../../src/lib/components/slider/gallery-slider.component.ts","../../src/lib/components/slider/gallery-slider.component.html","../../src/lib/directives/click-outside.directive.ts","../../src/lib/components/alert/alert-dismiss.directive.ts","../../src/lib/directives/scroll-to.directive.ts","../../src/lib/directives/badge/base-badge-icon.directive.ts","../../src/lib/directives/code.directive.ts","../../src/lib/directives/base-tab-icon.directive.ts","../../src/lib/directives/base-list-item.directive.ts","../../src/lib/pipes/filter.pipe.ts","../../src/lib/base.module.ts","../../src/lib/components/dialog/dialog-body/dialog-body.component.ts","../../src/lib/components/dialog/dialog-body/dialog-body.component.html","../../src/lib/components/dialog/dialog-context.ts","../../src/lib/components/dialog/dialog-close.directive.ts","../../src/lib/components/dialog/dialog-container/dialog-container.component.ts","../../src/lib/components/dialog/dialog-container/dialog-container.component.html","../../src/lib/components/dialog/dialog-footer/dialog-footer.component.ts","../../src/lib/components/dialog/dialog-footer/dialog-footer.component.html","../../src/lib/components/dialog/dialog-header/dialog-header.component.ts","../../src/lib/components/dialog/dialog-header/dialog-header.component.html","../../src/lib/components/dialog/dialog.service.ts","../../src/lib/components/dialog/dialog/dialog.component.ts","../../src/lib/components/dialog/dialog/dialog.component.html","../../src/lib/components/dialog/dialog.module.ts","../../src/lib/components/scroll-nav/scroll-nav-item/scroll-nav-item.component.ts","../../src/lib/services/theme.service.ts","../../src/lusso-base-ui.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {BreakpointObserver, Breakpoints} from '@angular/cdk/layout';\nimport {OnDestroy} from '@angular/core';\nimport {Subject, BehaviorSubject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CurrentScreenSizeService implements OnDestroy {\n\n toggle() {\n throw new Error('Method not implemented.');\n }\ndestroyed = new Subject<void>();\n currentScreenSize: string;\n\n // Create a map to display breakpoint names for demonstration purposes.\n displayNameMap = new Map([\n [Breakpoints.XSmall, 'XSmall'],\n [Breakpoints.Small, 'Small'],\n [Breakpoints.Medium, 'Medium'],\n [Breakpoints.Large, 'Large'],\n [Breakpoints.XLarge, 'XLarge'],\n ]);\n\n private sizeSubject = new BehaviorSubject<string>('Unknown');\n size$ = this.sizeSubject.asObservable();\n\n constructor(breakpointObserver: BreakpointObserver) {\n breakpointObserver\n .observe([\n Breakpoints.XSmall,\n Breakpoints.Small,\n Breakpoints.Medium,\n Breakpoints.Large,\n Breakpoints.XLarge,\n ])\n .pipe(takeUntil(this.destroyed))\n .subscribe(result => {\n for (const query of Object.keys(result.breakpoints)) {\n if (result.breakpoints[query]) {\n const size = this.displayNameMap.get(query) ?? 'Unknown';\n this.currentScreenSize = size;\n this.sizeSubject.next(size);\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SidebarService {\n private isOpenSubject = new BehaviorSubject<boolean>(true);\n isOpen$ = this.isOpenSubject.asObservable();\n\n get isOpen(): boolean {\n return this.isOpenSubject.value;\n }\n\n toggle() {\n this.isOpenSubject.next(!this.isOpenSubject.value);\n }\n\n setOpen(open: boolean) {\n this.isOpenSubject.next(open);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { CurrentScreenSizeService } from '../../services/current-screen-size.service';\nimport { SidebarService } from '../../services/sidebar.service';\n\n@Component({\n selector: 'base-logo',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './logo.component.html',\n})\nexport class LogoComponent {\n private screenSizeService = inject(CurrentScreenSizeService);\n public sidebarService = inject(SidebarService);\n\n get currentScreenSize(): string {\n return this.screenSizeService.currentScreenSize;\n }\n}\n","<svg\n class=\"h-auto w-76 min-w-76 max-w-76 full-logo fill-slate-700 dark:fill-white {{ !sidebarService.isOpen ? 'hidden' : 'block ml-12' }}\"\n viewBox=\"0 0 103 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M20 40C31.0457 40 40 31.0457 40 20C40 8.9543 31.0457 0 20 0C8.9543 0 0 8.9543 0 20C0 31.0457 8.9543 40 20 40ZM21.0891 28.698C21.7312 29.1076 22.5423 29.3124 23.5224 29.3124C24.6546 29.3124 25.6009 29.0649 26.3613 28.57C27.1386 28.058 27.7216 27.2729 28.1103 26.2148C28.5158 25.1396 28.7186 23.7743 28.7186 22.1188C28.7186 19.6441 28.2877 17.8436 27.4259 16.7172C26.5641 15.5737 25.3221 15.002 23.6998 15.002C22.7535 15.002 21.9762 15.1641 21.3679 15.4884C20.7595 15.8127 20.2864 16.2052 19.9484 16.666H19.771C19.8217 16.3929 19.8639 16.0943 19.8977 15.77C19.9315 15.4287 19.9569 15.0788 19.9738 14.7204C19.9907 14.362 19.9991 14.0292 19.9991 13.722V9.60039H13.0793V11.162H13.1807C13.5355 11.162 13.8566 11.2047 14.1439 11.29C14.4312 11.3753 14.6508 11.5375 14.8029 11.7764C14.9719 12.0153 15.0564 12.3737 15.0564 12.8516V25.7284C15.0564 26.2233 14.9635 26.5988 14.7776 26.8548C14.5917 27.1108 14.3551 27.2815 14.0678 27.3668C13.7975 27.4521 13.5187 27.4948 13.2314 27.4948H13.0793V29.0564H18.4529L19.3908 27.0596H19.5936C19.9653 27.7252 20.4638 28.2713 21.0891 28.698ZM22.9901 26.5988C22.7366 26.9913 22.3987 27.1876 21.9762 27.1876C21.4524 27.1876 21.0468 26.9913 20.7595 26.5988C20.4723 26.2063 20.2695 25.6345 20.1512 24.8836C20.0498 24.1156 19.9991 23.194 19.9991 22.1188C19.9991 20.4121 20.1259 19.1492 20.3793 18.33C20.6497 17.4937 21.1736 17.0756 21.9509 17.0756C22.3902 17.0756 22.7366 17.2633 22.9901 17.6388C23.2605 17.9972 23.4548 18.5519 23.5731 19.3028C23.7083 20.0367 23.7759 20.9668 23.7759 22.0932C23.7759 23.1855 23.7083 24.1156 23.5731 24.8836C23.4548 25.6345 23.2605 26.2063 22.9901 26.5988Z\" />\n\n <path\n d=\"M54.8677 29.848C53.9183 29.848 53.1325 29.6496 52.5104 29.2528C51.9047 28.8394 51.4218 28.3104 51.0617 27.6656H50.8652L49.9567 29.6H44.751V28.0872H44.8983C45.1766 28.0872 45.4467 28.0458 45.7086 27.9632C45.9869 27.8805 46.2161 27.7152 46.3962 27.4672C46.5762 27.2192 46.6663 26.8554 46.6663 26.376V13.9016C46.6663 13.4386 46.5844 13.0914 46.4207 12.86C46.2734 12.6285 46.0606 12.4714 45.7823 12.3888C45.504 12.3061 45.193 12.2648 44.8492 12.2648H44.751V10.752H51.4546V14.7448C51.4546 15.0424 51.4464 15.3648 51.43 15.712C51.4136 16.0592 51.3891 16.3981 51.3563 16.7288C51.3236 17.0429 51.2827 17.3322 51.2336 17.5968H51.4054C51.7329 17.1504 52.1912 16.7701 52.7805 16.456C53.3699 16.1418 54.1229 15.9848 55.0396 15.9848C56.6112 15.9848 57.8144 16.5386 58.6492 17.6464C59.4841 18.7376 59.9016 20.4818 59.9016 22.8792C59.9016 24.4829 59.7051 25.8056 59.3122 26.8472C58.9357 27.8722 58.371 28.6328 57.6179 29.1288C56.8813 29.6082 55.9645 29.848 54.8677 29.848ZM53.3699 27.7896C53.7791 27.7896 54.1065 27.5994 54.3521 27.2192C54.614 26.8389 54.8023 26.285 54.9168 25.5576C55.0478 24.8136 55.1133 23.9125 55.1133 22.8544C55.1133 21.7632 55.0478 20.8621 54.9168 20.1512C54.8023 19.4237 54.614 18.8864 54.3521 18.5392C54.1065 18.1754 53.7709 17.9936 53.3453 17.9936C52.5923 17.9936 52.0848 18.3986 51.8229 19.2088C51.5773 20.0024 51.4546 21.2258 51.4546 22.8792C51.4546 23.9208 51.5037 24.8136 51.6019 25.5576C51.7165 26.285 51.9129 26.8389 52.1912 27.2192C52.4695 27.5994 52.8624 27.7896 53.3699 27.7896Z\" />\n <path\n d=\"M65.8146 29.848C65.1107 29.848 64.464 29.6992 63.8747 29.4016C63.2854 29.104 62.8107 28.6576 62.4505 28.0624C62.1067 27.4506 61.9349 26.6818 61.9349 25.756C61.9349 24.3837 62.385 23.3752 63.2854 22.7304C64.1857 22.0856 65.5445 21.7301 67.3616 21.664L69.3505 21.5896V20.3C69.3505 19.6882 69.3014 19.1922 69.2032 18.812C69.1214 18.4152 68.9822 18.1258 68.7858 17.944C68.6057 17.7456 68.3683 17.6464 68.0737 17.6464C67.8117 17.6464 67.5826 17.7456 67.3861 17.944C67.206 18.1424 67.0587 18.44 66.9441 18.8368C66.8459 19.217 66.7968 19.7048 66.7968 20.3C65.5035 20.3 64.5377 20.1677 63.8993 19.9032C63.2772 19.6386 62.9662 19.1922 62.9662 18.564C62.9662 17.9357 63.2117 17.4314 63.7028 17.0512C64.2103 16.6544 64.8815 16.3733 65.7164 16.208C66.5676 16.0261 67.4925 15.9352 68.4911 15.9352C70.3737 15.9352 71.7815 16.2493 72.7146 16.8776C73.6641 17.4893 74.1388 18.564 74.1388 20.1016V26.3512C74.1388 26.7976 74.1797 27.1448 74.2616 27.3928C74.3598 27.6408 74.5153 27.8226 74.7281 27.9384C74.9409 28.0376 75.2274 28.0872 75.5876 28.0872H75.6858V29.6H70.21L69.5961 28.2112H69.3505C68.9904 28.641 68.6466 28.98 68.3192 29.228C68.0082 29.4594 67.6562 29.6165 67.2633 29.6992C66.8868 29.7984 66.4039 29.848 65.8146 29.848ZM67.7544 27.8392C68.0818 27.8392 68.3683 27.7152 68.6139 27.4672C68.8594 27.2192 69.0477 26.872 69.1786 26.4256C69.3096 25.9792 69.3751 25.4584 69.3751 24.8632V23.1024L68.6139 23.1768C68.1555 23.2098 67.7954 23.3338 67.5334 23.5488C67.2715 23.7472 67.0833 24.0365 66.9687 24.4168C66.8541 24.797 66.7968 25.2682 66.7968 25.8304C66.7968 26.2602 66.8295 26.6322 66.895 26.9464C66.9605 27.244 67.0669 27.4672 67.2142 27.616C67.3616 27.7648 67.5416 27.8392 67.7544 27.8392Z\" />\n <path\n d=\"M82.266 29.848C80.8909 29.848 79.8105 29.7157 79.0247 29.4512C78.2553 29.1866 77.7069 28.8312 77.3795 28.3848C77.0685 27.9218 76.913 27.4258 76.913 26.8968C76.913 26.4173 77.0276 26.037 77.2567 25.756C77.4859 25.4584 77.797 25.2517 78.1899 25.136C78.5827 25.0037 79.0165 24.9376 79.4913 24.9376C79.4913 25.6981 79.6141 26.3098 79.8596 26.7728C80.1052 27.2357 80.4407 27.5746 80.8664 27.7896C81.292 27.988 81.7831 28.0872 82.3397 28.0872C83.1255 28.0872 83.6739 27.9466 83.9849 27.6656C84.3123 27.3845 84.476 27.0621 84.476 26.6984C84.476 26.3842 84.3696 26.1197 84.1568 25.9048C83.944 25.6733 83.6166 25.4666 83.1746 25.2848C82.7489 25.0864 82.2005 24.8962 81.5294 24.7144C80.5308 24.4168 79.6959 24.0861 79.0247 23.7224C78.3699 23.3421 77.8788 22.8792 77.5514 22.3336C77.224 21.7714 77.0603 21.0688 77.0603 20.2256C77.0603 18.7541 77.5842 17.6794 78.6318 17.0016C79.6959 16.3072 81.0956 15.96 82.8308 15.96C83.9603 15.96 84.8607 16.084 85.5319 16.332C86.2194 16.5634 86.7105 16.861 87.0052 17.2248C87.3162 17.5885 87.4717 17.9688 87.4717 18.3656C87.4717 18.9608 87.2589 19.4072 86.8333 19.7048C86.4077 20.0024 85.7283 20.1512 84.7952 20.1512C84.7952 19.341 84.566 18.7293 84.1077 18.316C83.6493 17.8861 83.0845 17.6712 82.4134 17.6712C82.0859 17.6712 81.7831 17.7208 81.5048 17.82C81.2429 17.9026 81.0383 18.0349 80.8909 18.2168C80.7436 18.3821 80.6699 18.6053 80.6699 18.8864C80.6699 19.184 80.7518 19.4485 80.9155 19.68C81.0956 19.8949 81.3984 20.1016 81.824 20.3C82.2496 20.4818 82.839 20.6885 83.592 20.92C84.476 21.1845 85.2536 21.4904 85.9248 21.8376C86.5959 22.1848 87.1116 22.6312 87.4717 23.1768C87.8482 23.7058 88.0365 24.4085 88.0365 25.2848C88.0365 26.6405 87.5536 27.74 86.5877 28.5832C85.6219 29.4264 84.1813 29.848 82.266 29.848Z\" />\n <path\n d=\"M96.4824 29.848C94.1578 29.848 92.4307 29.2528 91.3012 28.0624C90.188 26.8554 89.6314 25.169 89.6314 23.0032C89.6314 20.672 90.2044 18.9112 91.3503 17.7208C92.4962 16.5304 94.1087 15.9352 96.1877 15.9352C98.1194 15.9352 99.6336 16.4477 100.73 17.4728C101.844 18.4813 102.4 19.9693 102.4 21.9368V23.3008H94.4443C94.477 24.3258 94.6162 25.169 94.8617 25.8304C95.1073 26.4917 95.4674 26.9794 95.9421 27.2936C96.4169 27.6077 97.0062 27.7648 97.7101 27.7648C98.2667 27.7648 98.7414 27.6656 99.1343 27.4672C99.5436 27.2688 99.8873 26.996 100.166 26.6488C100.444 26.3016 100.673 25.913 100.853 25.4832C101.164 25.5658 101.418 25.7146 101.614 25.9296C101.827 26.1445 101.934 26.4173 101.934 26.748C101.934 27.244 101.754 27.7317 101.393 28.2112C101.033 28.6906 100.452 29.0874 99.65 29.4016C98.8642 29.6992 97.8083 29.848 96.4824 29.848ZM97.7101 21.54C97.7101 20.7133 97.661 20.0189 97.5628 19.4568C97.4646 18.8946 97.309 18.473 97.0962 18.192C96.8998 17.8944 96.6379 17.7456 96.3105 17.7456C95.9667 17.7456 95.6557 17.8944 95.3774 18.192C95.0991 18.473 94.8781 18.8946 94.7144 19.4568C94.567 20.0189 94.4934 20.7133 94.4934 21.54H97.7101Z\" />\n</svg>\n\n<svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n class=\"logo-only w-full h-full fill-slate-700 dark:fill-white {{ !sidebarService.isOpen ? 'block' : 'hidden' }}\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M20 40C31.0457 40 40 31.0457 40 20C40 8.9543 31.0457 0 20 0C8.9543 0 0 8.9543 0 20C0 31.0457 8.9543 40 20 40ZM21.0891 28.698C21.7312 29.1076 22.5423 29.3124 23.5224 29.3124C24.6546 29.3124 25.6009 29.0649 26.3613 28.57C27.1386 28.058 27.7216 27.2729 28.1103 26.2148C28.5158 25.1396 28.7186 23.7743 28.7186 22.1188C28.7186 19.6441 28.2877 17.8436 27.4259 16.7172C26.5641 15.5737 25.3221 15.002 23.6998 15.002C22.7535 15.002 21.9762 15.1641 21.3679 15.4884C20.7595 15.8127 20.2864 16.2052 19.9484 16.666H19.771C19.8217 16.3929 19.8639 16.0943 19.8977 15.77C19.9315 15.4287 19.9569 15.0788 19.9738 14.7204C19.9907 14.362 19.9991 14.0292 19.9991 13.722V9.60039H13.0793V11.162H13.1807C13.5355 11.162 13.8566 11.2047 14.1439 11.29C14.4312 11.3753 14.6508 11.5375 14.8029 11.7764C14.9719 12.0153 15.0564 12.3737 15.0564 12.8516V25.7284C15.0564 26.2233 14.9635 26.5988 14.7776 26.8548C14.5917 27.1108 14.3551 27.2815 14.0678 27.3668C13.7975 27.4521 13.5187 27.4948 13.2314 27.4948H13.0793V29.0564H18.4529L19.3908 27.0596H19.5936C19.9653 27.7252 20.4638 28.2713 21.0891 28.698ZM22.9901 26.5988C22.7366 26.9913 22.3987 27.1876 21.9762 27.1876C21.4524 27.1876 21.0468 26.9913 20.7595 26.5988C20.4723 26.2063 20.2695 25.6345 20.1512 24.8836C20.0498 24.1156 19.9991 23.194 19.9991 22.1188C19.9991 20.4121 20.1259 19.1492 20.3793 18.33C20.6497 17.4937 21.1736 17.0756 21.9509 17.0756C22.3902 17.0756 22.7366 17.2633 22.9901 17.6388C23.2605 17.9972 23.4548 18.5519 23.5731 19.3028C23.7083 20.0367 23.7759 20.9668 23.7759 22.0932C23.7759 23.1855 23.7083 24.1156 23.5731 24.8836C23.4548 25.6345 23.2605 26.2063 22.9901 26.5988Z\" />\n</svg>","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-icon',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './icon.component.html',\n host: {\n class: 'inline-flex align-middle',\n },\n})\nexport class IconComponent {\n @Input() name = '';\n @Input() path = 'assets/icons.svg';\n @Input() color = '';\n}\n","<svg class=\"w-full h-full\" viewBox=\"0 0 24 24\">\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:space=\"preserve\" attr.xlink:href=\"{{ path }}#{{ name }}\"></use>\n</svg>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from './icon.component';\n\n@NgModule({\n imports: [CommonModule, IconComponent],\n exports: [IconComponent]\n})\nexport class IconModule { }\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { IconModule } from '../icon/icon.module';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\nexport type AvatarShape = 'circle' | 'square';\nexport type AvatarStatus = 'active' | 'inactive';\n\n@Component({\n selector: 'base-avatar',\n standalone: true,\n imports: [CommonModule, IconModule],\n templateUrl: './avatar.component.html',\n host: {\n class: 'flex shrink-0',\n },\n})\nexport class AvatarComponent {\n @Input() avatarUrl = '';\n @Input() shape: AvatarShape = 'square';\n @Input() status?: AvatarStatus;\n @Input() size: AvatarSize = 'md';\n @Input() initials = '';\n\n get containerClasses(): Record<string, boolean> {\n return {\n 'w-24 h-24': this.size === 'xs',\n 'w-32 h-32': this.size === 'sm',\n 'w-40 h-40': this.size === 'md',\n 'w-48 h-48': this.size === 'lg',\n 'w-56 h-56': this.size === 'xl',\n 'w-full h-full': this.size === 'full',\n };\n }\n\n get innerClasses(): string {\n return this.shape === 'circle' ? 'rounded-full' : 'rounded-md';\n }\n\n get statusClasses(): Record<string, boolean> {\n return {\n 'bg-green-500': this.status === 'active',\n 'bg-slate-400': this.status === 'inactive',\n 'bottom-0 right-0': this.shape === 'circle',\n '-bottom-1 -right-1': this.shape !== 'circle',\n };\n }\n}\n","<div class=\"relative inline-flex shrink-0\" [ngClass]=\"containerClasses\" role=\"img\"\n [attr.aria-label]=\"initials ? initials + ' avatar' : 'User avatar'\">\n <div class=\"overflow-hidden w-full h-full bg-slate-200 dark:bg-slate-700 flex justify-center items-center\"\n [ngClass]=\"innerClasses\">\n @if (avatarUrl) {\n <img [src]=\"avatarUrl\" [alt]=\"initials || 'User profile image'\" class=\"w-full h-full object-cover\" />\n } @else if (initials) {\n <span class=\"uppercase text-sm font-medium text-slate-700 dark:text-slate-200\">\n {{ initials }}\n </span>\n } @else {\n <base-icon name=\"user\" class=\"w-1/2 h-1/2 stroke-slate-500 dark:stroke-slate-400\"></base-icon>\n }\n </div>\n\n @if (status) {\n <span class=\"absolute w-3/12 h-3/12 min-w-[8px] min-h-[8px] rounded-full border-2 border-white dark:border-slate-900\"\n [ngClass]=\"statusClasses\" [attr.title]=\"status\"></span>\n }\n</div>","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-page-base',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './page-base.component.html',\n host: {\n class: 'block w-full h-full flex flex-col overflow-hidden'\n }\n})\nexport class PageBaseComponent {}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-page-base-header',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './page-base-header.component.html',\n host: {\n class: 'block w-full border-b border-slate-200 dark:border-slate-800'\n }\n})\nexport class PageBaseHeaderComponent {}\n","<h4\n class=\"h-56 border-b border-slate-300 dark:border-slate-700 px-24 m-0 flex items-center text-xl font-medium\"\n>\n <ng-content></ng-content>\n</h4>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-page-base-footer',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './page-base-footer.component.html',\n host: {\n class: 'block w-full border-t border-slate-200 dark:border-slate-800'\n }\n})\nexport class PageBaseFooterComponent {}\n","<div class=\"p-24 flex justify-end gap-16 border-t border-slate-300 dark:border-slate-700\">\n <button>test</button><button>test</button>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-page-base-body',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './page-base-body.component.html',\n host: {\n class: 'flex-1 overflow-x-hidden overflow-y-auto p-24 md:p-32'\n }\n})\nexport class PageBaseBodyComponent {}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'base-card',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './card.component.html',\n host: {\n class: 'block bg-white dark:bg-slate-800 overflow-hidden rounded-xl border border-slate-200 dark:border-slate-700 not-prose',\n },\n})\nexport class CardComponent {\n @Input() horizontal = false;\n}\n","<div class=\"overflow-hidden rounded-md\" [ngClass]=\"{'flex': horizontal}\">\n <ng-content></ng-content>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-card-body',\n standalone: true,\n templateUrl: './card-body.component.html',\n host: {\n class: 'block p-16 relative overflow-y-auto overflow-x-hidden dark:!text-slate-300',\n },\n})\nexport class CardBodyComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-card-header',\n standalone: true,\n templateUrl: './card-header.component.html',\n host: {\n class: 'flex h-56 font-semibold justify-between items-center border-b border-slate-300 dark:border-slate-700 dark:text-slate-300 dark:bg-slate-800 px-16 not-prose',\n },\n})\nexport class CardHeaderComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-card-footer',\n standalone: true,\n templateUrl: './card-footer.component.html',\n host: {\n class: 'flex border-t border-slate-300 dark:border-slate-700 p-16 dark:text-slate-300',\n },\n})\nexport class CardFooterComponent {}\n","<ng-content></ng-content>\n","import { Directive, ElementRef, Input, Renderer2, OnInit, AfterViewInit } from '@angular/core';\n\n@Directive({\n selector: '[base-badge-addon]',\n standalone: true,\n})\nexport class BaseBadgeAddon implements OnInit, AfterViewInit {\n @Input() color = 'primary';\n @Input() size = 'md';\n @Input() width = '';\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit() {\n // Basic initialization if needed\n }\n\n ngAfterViewInit() {\n this.applyStyles();\n }\n\n private applyStyles() {\n let iconClasses = '';\n let buttonClasses = 'w-16 h-16 rounded-md flex justify-center items-center ';\n\n const colorMap: Record<string, { button: string; icon: string }> = {\n 'primary': { button: 'hover:bg-blue-600 active:bg-blue-700', icon: 'stroke-white' },\n 'success': { button: 'hover:bg-green-600 active:bg-green-700', icon: 'stroke-white' },\n 'danger': { button: 'hover:bg-red-600 active:bg-red-700', icon: 'stroke-white' },\n 'warning': { button: 'hover:bg-orange-600 active:bg-orange-700', icon: 'stroke-white' },\n 'accent': { button: 'hover:bg-purple-600 active:bg-purple-700', icon: 'stroke-white' },\n 'primary-light': { button: 'hover:bg-blue-200 active:bg-blue-300', icon: 'stroke-blue-800' },\n 'success-light': { button: 'hover:bg-green-200 active:bg-green-300', icon: 'stroke-green-800' },\n 'danger-light': { button: 'hover:bg-red-200 active:bg-red-300', icon: 'stroke-red-800' },\n 'warning-light': { button: 'hover:bg-orange-200 active:bg-orange-300', icon: 'stroke-orange-800' },\n 'accent-light': { button: 'hover:bg-purple-200 active:bg-purple-300', icon: 'stroke-purple-800' },\n };\n\n const config = colorMap[this.color] || colorMap['primary'];\n buttonClasses += config.button;\n iconClasses = config.icon;\n\n switch (this.size) {\n case 'sm':\n buttonClasses += ' h-16 w-16';\n iconClasses += ' w-12 h-12 min-w-12 max-w-12';\n break;\n case 'lg':\n case 'xl':\n buttonClasses += ' h-24 w-24';\n iconClasses += ' w-20 h-20 min-w-20 max-w-20';\n break;\n default:\n iconClasses += ' w-12 h-12 min-w-12 max-w-12';\n }\n\n const iconElement = this.el.nativeElement.querySelector('base-icon');\n if (iconElement) {\n this.renderer.setAttribute(iconElement, 'class', iconClasses);\n }\n\n const buttonElement = this.el.nativeElement.querySelector('button');\n if (buttonElement) {\n buttonElement.className += ' ' + buttonClasses;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { BaseBadgeAddon } from '../../directives/badge/base-badge-addon.directive';\n\nexport type BadgeColor = \n | 'primary' | 'danger' | 'success' | 'accent' | 'warning'\n | 'primary-light' | 'danger-light' | 'success-light' | 'accent-light' | 'warning-light';\n\nexport type BadgeSize = 'sm' | 'md' | 'lg' | 'xl';\nexport type BadgeShape = 'rectangular' | 'circle';\n\n@Component({\n selector: 'base-badge',\n standalone: true,\n imports: [CommonModule, BaseBadgeAddon],\n templateUrl: './badge.component.html',\n})\nexport class BadgeComponent {\n @Input() color: BadgeColor = 'primary';\n @Input() size: BadgeSize = 'md';\n @Input() shape: BadgeShape = 'circle';\n\n get badgeClasses(): string[] {\n const classes = [\n 'h-24', 'flex', 'gap-4', 'border', 'border-transparent',\n 'justify-center', 'items-center', 'px-12', '!text-xs',\n 'whitespace-nowrap', 'text-white'\n ];\n\n // Shape\n classes.push(this.shape === 'rectangular' ? 'rounded-md' : 'rounded-full');\n\n // Color\n const colorMap: Record<BadgeColor, string> = {\n 'primary': 'bg-blue-500',\n 'danger': 'bg-red-500',\n 'success': '!bg-green-500',\n 'accent': '!bg-purple-500',\n 'warning': '!bg-orange-500',\n 'primary-light': '!bg-blue-100 !border-blue-400 !text-blue-800',\n 'danger-light': '!bg-red-100 !border-red-400 !text-red-800',\n 'success-light': '!bg-green-100 !border-green-400 !text-green-800',\n 'accent-light': '!bg-purple-100 !border-purple-400 !text-purple-800',\n 'warning-light': '!bg-orange-100 !border-orange-400 !text-orange-800',\n };\n if (colorMap[this.color]) {\n classes.push(colorMap[this.color]);\n }\n\n // Size\n const sizeMap: Record<BadgeSize, string> = {\n 'sm': '!h-20 !text-xs !px-8',\n 'md': '!h-24 !text-sm',\n 'lg': '!h-28 !text-base !px-16',\n 'xl': '!h-32 !text-xl !px-16',\n };\n if (sizeMap[this.size]) {\n classes.push(sizeMap[this.size]);\n }\n\n return classes;\n }\n}\n","<span base-badge-addon [color]=\"color\" [size]=\"size\" [ngClass]=\"badgeClasses\">\n <ng-content></ng-content>\n</span>","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { GroupButtonComponent } from './group-button/group-button.component';\n\n@Injectable()\nexport class ToggleButtonService {\n private selectButton = new Subject<GroupButtonComponent>();\n selectButton$ = this.selectButton.asObservable();\n\n setSelectedButton(value: GroupButtonComponent) {\n this.selectButton.next(value);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, inject } from '@angular/core';\nimport { IconModule } from '../../icon/icon.module';\nimport { ToggleButtonService } from '../toggle-button.service';\n\n@Component({\n selector: 'base-group-button-item',\n standalone: true,\n imports: [CommonModule, IconModule],\n templateUrl: './group-button.component.html',\n host: {\n class: 'border-r border-slate-300 dark:border-slate-700 last-of-type:border-r-0',\n },\n})\nexport class GroupButtonComponent {\n @Input() icon?: string;\n @Input() disabled = false;\n @Input() active = false;\n @Input() value?: any;\n\n private toggleButtonService = inject(ToggleButtonService);\n\n toggle() {\n if (!this.disabled) {\n this.toggleButtonService.setSelectedButton(this);\n }\n }\n}\n","<button\n class=\"flex items-center gap-8 relative text-center justify-center tracking-wide text-slate-800 dark:text-slate-300 h-36 px-16 hover:bg-slate-200 dark:hover:bg-slate-700 active:bg-slate-500 dark:active:bg-slate-600 disabled:hover:bg-transparent disabled:cursor-not-allowed disabled:opacity-50\"\n [ngClass]=\"{ 'bg-slate-200 dark:bg-slate-700': active }\" [disabled]=\"disabled\" (click)=\"toggle()\">\n @if (icon) {\n <base-icon [name]=\"icon\" class=\"w-16 h-16 stroke-slate-800 dark:stroke-slate-100\"></base-icon>\n }\n <ng-content></ng-content>\n</button>","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n forwardRef,\n inject,\n OnDestroy,\n} from '@angular/core';\nimport { GroupButtonComponent } from './group-button/group-button.component';\nimport { ToggleButtonService } from './toggle-button.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'base-button-group',\n standalone: true,\n imports: [],\n templateUrl: './button-group.component.html',\n host: {\n class: 'flex overflow-hidden rounded-md w-fit border border-slate-300 dark:border-slate-700',\n },\n providers: [\n ToggleButtonService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonGroupComponent),\n multi: true,\n },\n ],\n})\nexport class ButtonGroupComponent\n implements AfterContentInit, OnChanges, ControlValueAccessor, OnDestroy\n{\n @Input() ngModel: any;\n @ContentChildren(GroupButtonComponent)\n buttons: QueryList<GroupButtonComponent>;\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n private onChange: (value: any) => void = () => {};\n private onTouched: () => void = () => {};\n private currentValue: any;\n private destroy$ = new Subject<void>();\n\n private toggleButtonService = inject(ToggleButtonService);\n\n constructor() {\n this.toggleButtonService.selectButton$\n .pipe(takeUntil(this.destroy$))\n .subscribe((button: GroupButtonComponent) => {\n this.onButtonClicked(button);\n });\n }\n\n ngAfterContentInit() {\n if (this.currentValue !== undefined) {\n this.selectButtonByValue(this.currentValue);\n }\n\n this.buttons.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.currentValue !== undefined) {\n this.selectButtonByValue(this.currentValue);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['ngModel'] && this.ngModel !== undefined) {\n this.writeValue(this.ngModel);\n }\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n writeValue(value: any): void {\n this.currentValue = value;\n this.selectButtonByValue(value);\n }\n\n registerOnChange(fn: (value: any) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n // Implement if needed\n }\n\n private selectButtonByValue(value: any) {\n if (!this.buttons) return;\n this.buttons.forEach((button) => {\n button.active = button.value === value;\n });\n }\n\n private onButtonClicked(clickedButton: GroupButtonComponent) {\n this.buttons.forEach((button) => (button.active = false));\n clickedButton.active = true;\n this.currentValue = clickedButton.value;\n this.change.emit(clickedButton.value);\n this.onChange(clickedButton.value);\n this.onTouched();\n }\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { Component, ContentChild } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Component({\n selector: 'base-input-group',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './input-group.component.html',\n host: {\n class: 'block w-full',\n },\n})\nexport class InputGroupComponent {\n @ContentChild(NgControl) control?: NgControl;\n\n showErrors(): boolean {\n if (!this.control) return false;\n const { touched, errors } = this.control;\n return !!(touched && errors);\n }\n}\n","<ng-content select=\"base-label\"></ng-content>\n<div\n class=\"flex items-center w-full border border-slate-300 dark:border-slate-700 rounded-lg relative bg-white dark:bg-slate-800 focus-within:!border-slate-500\"\n [ngClass]=\"{ '!border-red-500': showErrors() }\">\n <div class=\"flex items-center empty:hidden\">\n <ng-content select=\"[base-addon-start]\" #addon></ng-content>\n </div>\n <ng-content select=\"datalist\"></ng-content>\n\n <div class=\"text-sm w-full h-full border-0 bg-transparent outline-none flex-1\">\n <ng-content select=\"[base-input]\"></ng-content>\n <ng-content select=\"[base-textarea]\"></ng-content>\n </div>\n <div class=\"flex items-center empty:hidden\">\n <ng-content select=\"[base-addon-end]\"></ng-content>\n </div>\n</div>\n@if (showErrors()) {\n<ng-content select=\"base-error\"></ng-content>\n}\n<ng-content select=\"base-info-text\"></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-label',\n standalone: true,\n templateUrl: './label.component.html',\n host: {\n class: 'block text-sm font-medium text-slate-700 dark:text-slate-300 mb-4',\n },\n})\nexport class LabelComponent {}\n","<label class=\"w-full\">\n <ng-content></ng-content>\n</label>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-error',\n standalone: true,\n templateUrl: './error.component.html',\n host: {\n class: 'block text-xs text-red-500 mt-4',\n },\n})\nexport class ErrorComponent {}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-info-text',\n standalone: true,\n templateUrl: './info-text.component.html',\n host: {\n class: 'block text-xs text-slate-500 dark:text-slate-400 mt-4',\n },\n})\nexport class InfoTextComponent {}\n","<ng-content></ng-content>","import { CommonModule } from '@angular/common';\nimport { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { IconModule } from '../icon/icon.module';\n\nexport type CheckboxColor = 'primary' | 'danger' | 'success' | 'accent' | 'warning';\n\n@Component({\n selector: 'base-checkbox',\n standalone: true,\n imports: [CommonModule, IconModule, FormsModule],\n templateUrl: './checkbox.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() color: CheckboxColor = 'primary';\n @Input() disabled = false;\n @Input() checked = false;\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n get checkboxClasses(): Record<string, boolean> {\n return {\n 'checked:bg-blue-500 checked:border-blue-500 checked:hover:border-blue-600': this.color === 'primary',\n 'checked:bg-red-500 checked:border-red-500 checked:hover:border-red-600': this.color === 'danger',\n 'checked:bg-green-500 checked:border-green-500 checked:hover:border-green-600': this.color === 'success',\n 'checked:bg-purple-500 checked:border-purple-500 checked:hover:border-purple-600': this.color === 'accent',\n 'checked:bg-orange-500 checked:border-orange-500 checked:hover:border-orange-600': this.color === 'warning',\n };\n }\n\n onToggle(event: Event) {\n const input = event.target as HTMLInputElement;\n this.checked = input.checked;\n this.onChange(this.checked);\n this.onTouched();\n }\n\n writeValue(value: any): void {\n this.checked = !!value;\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<label class=\"text-sm font-medium text-slate-700 flex items-start relative\">\n <input type=\"checkbox\"\n class=\"w-16 min-w-16 max-w-16 h-16 appearance-none bg-slate-50 dark:bg-slate-800 border border-slate-300 dark:border-slate-600 hover:border-slate-400 dark:hover:border-slate-500 disabled:hover:border-slate-300 dark:disabled:hover:border-slate-600 disabled:opacity-50 mr-8 rounded cursor-pointer peer mt-4 disabled:hover:cursor-default disabled:checked:cursor-default\"\n [disabled]=\"disabled\" [checked]=\"checked\" [ngClass]=\"checkboxClasses\" (change)=\"onToggle($event)\" />\n <base-icon name=\"checkbox\"\n class=\"w-12 h-12 absolute left-2 invisible peer-checked:visible mt-6 disabled:cursor-default disabled:checked:cursor-default stroke-white\"></base-icon>\n\n <span\n class=\"cursor-pointer peer-disabled:opacity-50 peer-disabled:cursor-default dark:text-slate-200\"><ng-content></ng-content></span>\n</label>","import { Component, InjectionToken, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport const RADIO_GROUP = new InjectionToken<RadioGroupComponent>('RadioGroup');\n\n@Component({\n selector: 'base-radio-group',\n standalone: true,\n imports: [],\n templateUrl: './radio-group.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n { provide: RADIO_GROUP, useExisting: RadioGroupComponent },\n ],\n})\nexport class RadioGroupComponent implements ControlValueAccessor {\n @Input() value: any;\n @Input() disabled = false;\n\n private onChange: (value: any) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n select(value: any) {\n if (!this.disabled) {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n }\n }\n}\n","<ng-content></ng-content>\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, Input, Optional } from '@angular/core';\nimport { RadioGroupComponent, RADIO_GROUP } from '../radio-group.component';\n\nexport type RadioColor = 'primary' | 'danger' | 'success' | 'accent' | 'warning';\n\n@Component({\n selector: 'base-radio-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './radio-button.component.html',\n})\nexport class RadioButtonComponent {\n @Input() name?: string;\n @Input() value: any;\n @Input() color: RadioColor = 'primary';\n @Input() disabled = false;\n\n constructor(\n @Optional() @Inject(RADIO_GROUP) public radioGroup: RadioGroupComponent\n ) {}\n\n get isChecked(): boolean {\n return this.radioGroup ? this.radioGroup.value === this.value : false;\n }\n\n get isDisabled(): boolean {\n return this.disabled || (this.radioGroup ? this.radioGroup.disabled : false);\n }\n\n get radioClasses(): Record<string, boolean> {\n return {\n 'checked:!bg-blue-500 checked:!border-blue-500 checked:hover:!border-blue-600': this.color === 'primary',\n 'checked:!bg-red-500 checked:!border-red-500 checked:hover:!border-red-600': this.color === 'danger',\n 'checked:!bg-green-500 checked:!border-green-500 checked:hover:!border-green-600': this.color === 'success',\n 'checked:!bg-purple-500 checked:!border-purple-500 checked:hover:!border-purple-600': this.color === 'accent',\n 'checked:!bg-orange-400 checked:!border-orange-400 checked:hover:!border-orange-500': this.color === 'warning',\n };\n }\n\n onInputInteraction(event: Event) {\n event.stopPropagation();\n if (this.radioGroup && !this.isDisabled) {\n this.radioGroup.select(this.value);\n }\n }\n}\n","<label class=\"text-sm font-medium text-slate-700 dark:text-slate-300 flex items-start relative\">\n <input type=\"radio\" [name]=\"name\" [disabled]=\"isDisabled\" [checked]=\"isChecked\" (change)=\"onInputInteraction($event)\"\n class=\"w-16 h-16 appearance-none bg-slate-50 dark:bg-slate-600 border mt-2 border-slate-300 dark:border-slate-700 hover:border-slate-400 dark:hover:border-slate-900 disabled:opacity-50 disabled:hover:border-slate-300 dark:disabled:hover:border-slate-700 mr-8 rounded-full cursor-pointer disabled:hover:cursor-default checked:hover:cursor-default transform translate-y-2 peer\"\n [ngClass]=\"radioClasses\" />\n <span class=\"peer-disabled:opacity-50 cursor-pointer peer-checked:cursor-default peer-disabled:cursor-default\">\n <ng-content></ng-content>\n </span>\n\n <span\n class=\"w-8 h-8 bg-white border-2 border-white rounded-full absolute opacity-0 left-4 top-2 transform translate-y-6 peer-checked:opacity-100 cursor-pointer peer-checked:cursor-default peer-disabled:cursor-default\"></span>\n</label>","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { IconModule } from '../../icon/icon.module';\n\n@Component({\n selector: 'base-accordion-item',\n standalone: true,\n imports: [CommonModule, IconModule],\n templateUrl: './accordion-item.component.html',\n host: {\n class: 'flex flex-col h-auto w-full overflow-hidden border-b border-slate-300 dark:border-slate-700 dark:text-slate-200 last-of-type:border-b-0',\n '[class.cursor-not-allowed]': 'disabled',\n '[class.pointer-events-none]': 'disabled',\n '[class.opacity-50]': 'disabled',\n },\n})\nexport class AccordionItemComponent {\n @Input() isOpen = false;\n @Input() disabled = false;\n @Output() toggled = new EventEmitter<boolean>();\n\n toggle(): void {\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n this.toggled.emit(this.isOpen);\n }\n }\n}\n","<div class=\"h-56 flex items-center justify-between px-16 border-slate-300 -mt-1 dark:!border-slate-700 hover:bg-slate-50 dark:hover:bg-slate-900 cursor-pointer last-of-type:border-0 {{\n isOpen ? 'bg-slate-100 hover:bg-slate-100 dark:bg-slate-900 dark:hover:bg-slate-900 border-b' : 'border-b-0'\n }} not-prose\" (click)=\"toggle()\" [attr.aria-expanded]=\"isOpen\" role=\"button\">\n <h4 class=\"flex-1\">\n <ng-content select=\"base-accordion-item-header\"></ng-content>\n </h4>\n <base-icon [name]=\"!isOpen ? 'chevron-down' : 'chevron-up'\"\n class=\"w-16 h-16 min-w-16 stroke-slate-800 dark:stroke-slate-200\"></base-icon>\n</div>\n<div #content class=\"not-prose transition-[max-height] duration-300 overflow-hidden\"\n [style.maxHeight.px]=\"isOpen ? content.scrollHeight : 0\" role=\"region\">\n <ng-content select=\"base-accordion-item-body\"></ng-content>\n</div>","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ContentChildren,\n Input,\n QueryList,\n AfterContentInit,\n OnDestroy,\n} from '@angular/core';\nimport { AccordionItemComponent } from './accordion-item/accordion-item.component';\nimport { Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'base-accordion',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './accordion.component.html',\n host: {\n class: 'overflow-hidden flex flex-col rounded-xl border border-slate-300 dark:border-slate-700',\n },\n})\nexport class AccordionComponent implements AfterContentInit, OnDestroy {\n @Input() multi = false;\n\n @ContentChildren(AccordionItemComponent)\n items!: QueryList<AccordionItemComponent>;\n\n private destroy$ = new Subject<void>();\n private itemToggleDestroy$ = new Subject<void>();\n\n ngAfterContentInit(): void {\n this.items.changes\n .pipe(startWith(this.items), takeUntil(this.destroy$))\n .subscribe((items) => {\n this.setupItems(items);\n });\n }\n\n private setupItems(items: QueryList<AccordionItemComponent>): void {\n this.itemToggleDestroy$.next();\n items.forEach((item) => {\n item.toggled\n .pipe(takeUntil(this.itemToggleDestroy$))\n .subscribe((isOpen) => {\n if (isOpen && !this.multi) {\n this.closeAllExcept(item);\n }\n });\n });\n }\n\n closeAllExcept(exceptItem: AccordionItemComponent): void {\n this.items.forEach((item) => {\n if (item !== exceptItem) {\n item.isOpen = false;\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.itemToggleDestroy$.next();\n this.itemToggleDestroy$.complete();\n }\n}\n","<ng-content></ng-content>\n\n\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-accordion-item-header',\n standalone: true,\n templateUrl: './accordion-item-header.component.html',\n})\nexport class AccordionItemHeaderComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-accordion-item-body',\n standalone: true,\n templateUrl: './accordion-item-body.component.html',\n host: {\n class: '!text-slate-700 dark:!text-slate-300 font-thin block p-16',\n },\n})\nexport class AccordionItemBodyComponent {}\n","<ng-content></ng-content>\n\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, OnDestroy } from '@angular/core';\nimport { IconModule } from '../icon/icon.module';\n\nexport type AlertColor = '' | 'primary' | 'success' | 'danger' | 'accent' | 'warning';\nexport type AlertVariant = 'soft' | 'solid' | 'outline';\n\n@Component({\n selector: 'base-alert',\n standalone: true,\n imports: [CommonModule, IconModule],\n templateUrl: './alert.component.html',\n host: {\n class: 'block',\n '[class.hidden]': 'isClosed',\n 'role': 'alert'\n },\n})\nexport class AlertComponent implements OnInit, OnDestroy {\n @Input() color: AlertColor = '';\n @Input() variant: AlertVariant = 'soft';\n @Input() icon?: string;\n @Input() close = false;\n @Input() duration = 0;\n @Output() closed = new EventEmitter<void>();\n\n isClosed = false;\n private timer?: ReturnType<typeof setTimeout>;\n\n ngOnInit() {\n if (this.duration > 0) {\n this.timer = setTimeout(() => {\n this.handleClose();\n }, this.duration);\n }\n }\n\n ngOnDestroy() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }\n\n handleClose() {\n if (this.isClosed) return;\n this.isClosed = true;\n this.closed.emit();\n }\n\n get alertClasses(): string {\n const base = 'flex flex-col rounded-xl text-sm p-16 gap-12 not-prose border transition-all duration-200';\n const colorMap: Record<AlertVariant, Record<AlertColor, string>> = {\n soft: {\n '': 'bg-slate-100 text-slate-800 border-slate-200 dark:bg-slate-800/50 dark:text-slate-200 dark:border-slate-700',\n primary: 'bg-blue-50 text-blue-800 border-blue-100 dark:bg-blue-900/50 dark:text-blue-200 dark:border-blue-800/70',\n success: 'bg-green-50 text-green-800 border-green-100 dark:bg-green-900/50 dark:text-green-200 dark:border-green-800/70',\n danger: 'bg-red-50 text-red-800 border-red-100 dark:bg-red-900/50 dark:text-red-200 dark:border-red-800/70',\n accent: 'bg-purple-50 text-purple-800 border-purple-100 dark:bg-purple-900/50 dark:text-purple-200 dark:border-purple-800/70',\n warning: 'bg-orange-50 text-orange-800 border-orange-100 dark:bg-orange-900/50 dark:text-orange-200 dark:border-orange-800/70',\n },\n solid: {\n '': 'bg-slate-600 text-white border-slate-700 dark:bg-slate-700 dark:border-slate-600',\n primary: 'bg-blue-600 text-white border-blue-700 dark:bg-blue-700 dark:border-blue-600',\n success: 'bg-green-600 text-white border-green-700 dark:bg-green-700 dark:border-green-600',\n danger: 'bg-red-600 text-white border-red-700 dark:bg-red-700 dark:border-red-600',\n accent: 'bg-purple-600 text-white border-purple-700 dark:bg-purple-700 dark:border-purple-600',\n warning: 'bg-orange-600 text-white border-orange-700 dark:bg-orange-700 dark:border-orange-600',\n },\n outline: {\n '': 'bg-transparent text-slate-800 border-slate-300 dark:text-slate-200 dark:border-slate-600',\n primary: 'bg-transparent text-blue-600 border-blue-300 dark:text-blue-400 dark:border-blue-800',\n success: 'bg-transparent text-green-600 border-green-300 dark:text-green-400 dark:border-green-800',\n danger: 'bg-transparent text-red-600 border-red-300 dark:text-red-400 dark:border-red-800',\n accent: 'bg-transparent text-purple-600 border-purple-300 dark:text-purple-400 dark:border-purple-800',\n warning: 'bg-transparent text-orange-600 border-orange-300 dark:text-orange-400 dark:border-orange-800',\n }\n };\n return `${base} ${colorMap[this.variant][this.color]}`;\n }\n\n get iconClasses(): string {\n const base = 'w-24 h-24 min-w-24';\n if (this.variant === 'solid') return `${base} stroke-white`;\n \n const colorMap: Record<AlertColor, string> = {\n '': 'stroke-slate-700 dark:stroke-slate-300',\n primary: 'stroke-blue-600 dark:stroke-blue-400',\n success: 'stroke-green-600 dark:stroke-green-400',\n danger: 'stroke-red-600 dark:stroke-red-400',\n accent: 'stroke-purple-600 dark:stroke-purple-400',\n warning: 'stroke-orange-600 dark:stroke-orange-400',\n };\n return `${base} ${colorMap[this.color]}`;\n }\n\n get closeButtonClasses(): string {\n const base = 'w-28 h-28 min-w-28 flex justify-center items-center rounded-md -mr-8 -mt-8 transition-colors duration-200';\n if (this.variant === 'solid') return `${base} hover:bg-white/20`;\n\n const hoverMap: Record<AlertColor, string> = {\n '': 'hover:bg-slate-200 dark:hover:bg-slate-700',\n primary: 'hover:bg-blue-100 dark:hover:bg-blue-900/40',\n success: 'hover:bg-green-100 dark:hover:bg-green-900/40',\n danger: 'hover:bg-red-100 dark:hover:bg-red-900/40',\n accent: 'hover:bg-purple-100 dark:hover:bg-purple-900/40',\n warning: 'hover:bg-orange-100 dark:hover:bg-orange-900/40',\n };\n return `${base} ${hoverMap[this.color]}`;\n }\n}\n","<div [class]=\"alertClasses\">\n <div class=\"flex gap-16 items-start\">\n @if (icon) {\n <base-icon [name]=\"icon\" [class]=\"iconClasses\"></base-icon>\n }\n <div class=\"flex-1 mt-2\">\n <ng-content></ng-content>\n </div>\n @if (close) {\n <button [class]=\"closeButtonClasses\" (click)=\"handleClose()\" aria-label=\"Close alert\">\n <base-icon name=\"close\" [class]=\"iconClasses\"></base-icon>\n </button>\n }\n </div>\n <ng-content select=\"base-alert-actions\"></ng-content>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\nexport type ToggleColor = 'primary' | 'danger' | 'success' | 'accent' | 'warning';\nexport type ToggleSize = 'sm' | 'md' | 'lg';\nexport type ToggleShape = 'rounded' | 'square' | 'smooth';\n\n@Component({\n selector: 'base-toggle',\n standalone: true,\n imports: [CommonModule, FormsModule],\n templateUrl: './toggle.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n})\nexport class ToggleComponent implements ControlValueAccessor {\n @Input() color: ToggleColor = 'primary';\n @Input() size: ToggleSize = 'md';\n @Input() shape: ToggleShape = 'smooth';\n @Input() disabled = false;\n @Input() checked = false;\n\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n get containerClasses(): string {\n const base = 'cursor-pointer inline-block relative transition-all duration-300';\n const sizeMap: Record<ToggleSize, string> = {\n 'sm': 'h-20 w-36',\n 'md': 'h-24 w-44',\n 'lg': 'h-28 w-52',\n };\n return `${base} ${sizeMap[this.size] || sizeMap['md']}`;\n }\n\n get trackClasses(): string {\n const base = 'absolute inset-0 bg-slate-200 dark:bg-slate-700 border border-slate-300 dark:border-slate-700 z-0 transition-all duration-300 peer-disabled:opacity-50 peer-disabled:cursor-default';\n \n const shapeMap: Record<ToggleShape, string> = {\n 'rounded': 'rounded-full',\n 'smooth': 'rounded-lg',\n 'square': 'rounded-md',\n };\n\n const colorMap: Record<string, string> = {\n 'primary': 'peer-checked:bg-blue-500 peer-checked:border-blue-500',\n 'danger': 'peer-checked:bg-red-500 peer-checked:border-red-500',\n 'success': 'peer-checked:bg-green-500 peer-checked:border-green-500',\n 'accent': 'peer-checked:bg-purple-500 peer-checked:border-purple-500',\n 'warning': 'peer-checked:bg-orange-500 peer-checked:border-orange-500',\n };\n \n return `${base} ${shapeMap[this.shape] || shapeMap['smooth']} ${colorMap[this.color] || colorMap['primary']}`;\n }\n\n get thumbClasses(): string {\n const base = 'bg-white absolute left-2 top-2 transform transition-all duration-300 peer-disabled:cursor-default';\n \n const shapeMap: Record<ToggleShape, string> = {\n 'rounded': 'rounded-full',\n 'smooth': 'rounded-md',\n 'square': 'rounded',\n };\n\n const sizeMap: Record<ToggleSize, string> = {\n 'sm': 'h-16 w-16 peer-checked:translate-x-16',\n 'md': 'h-20 w-20 peer-checked:translate-x-20',\n 'lg': 'h-24 w-24 peer-checked:translate-x-24',\n };\n\n return `${base} ${shapeMap[this.shape] || shapeMap['smooth']} ${sizeMap[this.size] || sizeMap['md']}`;\n }\n\n onToggle(event: Event) {\n const input = event.target as HTMLInputElement;\n this.checked = input.checked;\n this.onChange(this.checked);\n this.onTouched();\n }\n\n writeValue(value: any): void {\n this.checked = !!value;\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<label [class]=\"containerClasses\">\n <input type=\"checkbox\" class=\"w-0 h-0 opacity-0 peer\" [disabled]=\"disabled\" [checked]=\"checked\"\n (change)=\"onToggle($event)\" />\n <span [class]=\"trackClasses\"></span>\n <span [class]=\"thumbClasses\"></span>\n</label>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-breadcrumb',\n standalone: true,\n templateUrl: './breadcrumb.component.html',\n})\nexport class BreadcrumbComponent {}\n","<nav class=\"inline-flex items-center space-x-4 md:space-x-16\" aria-label=\"Breadcrumb\">\n <ng-content></ng-content>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { IconModule } from '../../icon/icon.module';\n\n@Component({\n selector: 'base-breadcrumb-item',\n standalone: true,\n imports: [CommonModule, IconModule],\n templateUrl: './breadcrumb-item.component.html',\n host: {\n class: 'inline-flex items-center gap-16 after:content-[\"|\"] after:mx-8 last-of-type:after:content-[\"\"] peer pointer-events-none text-sm',\n },\n})\nexport class BreadcrumbItemComponent {\n @Input() icon?: string;\n @Input() link?: string;\n @Input() label = '';\n @Input() separator?: string;\n}\n","<!-- With icon -->\n@if (link && icon) {\n <a\n [href]=\"link\"\n class=\"peer dark:text-slate-200 hover:!text-blue-500 cursor-pointer pointer-events-auto\"\n >\n <label class=\"cursor-pointer\">{{ label }}</label>\n </a>\n <base-icon\n [name]=\"icon\"\n class=\"w-16 h-16 min-w-16 stroke-slate-800 dark:stroke-slate-200 peer-hover:!stroke-blue-500 -mr-6 order-first\"\n ></base-icon>\n}\n\n@if (!link && icon) {\n <label class=\"text-slate-500\">{{ label }}</label>\n <base-icon\n [name]=\"icon\"\n class=\"w-16 h-16 min-w-16 stroke-slate-500 peer-hover:!stroke-blue-500 -mr-6 order-first\"\n ></base-icon>\n}\n<!-- Without icon -->\n@if (link && !icon) {\n <a\n [href]=\"link\"\n class=\"peer hover:text-blue-500 cursor-pointer pointer-events-auto\"\n >\n <label class=\"cursor-pointer\">{{ label }}</label>\n</a>\n}\n\n@if (!link && !icon) {\n <label class=\"text-slate-500 font-light\">{{ label }}</label>\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'base-tab-body',\n standalone: true,\n templateUrl: './tab-body.component.html',\n})\nexport class TabBodyComponent {\n @ViewChild(TemplateRef, { static: true })\n bodyContent!: TemplateRef<any>;\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../../icon/icon.component';\n\n@Component({\n selector: 'base-tab-label',\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: './tab-label.component.html',\n})\nexport class TabLabelComponent {\n // These are set by TabComponent or parent\n icon?: string;\n icon_position?: string;\n isActive = false;\n type?: string;\n\n @ViewChild(TemplateRef, { static: true })\n labelContent!: TemplateRef<any>;\n}\n","<ng-template>\n <div\n class=\"flex items-center whitespace-nowrap \n {{ icon_position === 'top' ? 'flex-col justify-center gap-1' : 'gap-8' }} \n {{ icon_position === 'end' ? 'gap-8 flex-row-reverse' : '' }}\n \"\n >\n @if (icon) {\n <base-icon\n [name]=\"icon\"\n class=\"w-16 h-16 min-w-16 \n {{ isActive ? 'stroke-blue-500' : 'stroke-slate-700' }}\n {{ isActive && type === 'pills' ? '!stroke-white' : '' }}\n \"\n ></base-icon>\n }\n <ng-content></ng-content>\n </div>\n</ng-template>\n","import { Component, ContentChild, Input } from '@angular/core';\nimport { TabBodyComponent } from '../tab-body/tab-body.component';\nimport { TabLabelComponent } from '../tab-label/tab-label.component';\n\n@Component({\n selector: 'base-tab',\n standalone: true,\n templateUrl: './tab.component.html',\n})\nexport class TabComponent {\n @Input() label = '';\n @Input() isActive = false;\n @Input() tabClass = 'cursor-pointer';\n\n @ContentChild(TabBodyComponent) bodyComponent?: TabBodyComponent;\n @ContentChild(TabLabelComponent) labelComponent?: TabLabelComponent;\n}\n","<ng-content></ng-content>\n","import {\n trigger,\n style,\n animate,\n transition\n} from '@angular/animations';\n\nexport const dropdown = trigger('dropdown', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'translateY(15px)',\n }),\n animate(\n '.3s .1s',\n style({\n opacity: 1,\n transform: 'translateY(0)',\n })\n ),\n ]),\n transition(':leave', [\n style({\n opacity: 1,\n }),\n animate(\n '.0s',\n style({\n opacity: 0,\n })\n ),\n ]),\n]);\n\nexport const openClose = trigger('openClose', [\n transition(':enter', [\n style({\n height: '0',\n opacity: '0',\n }),\n animate(\n '.3s',\n style({\n height: 'auto',\n opacity: '100%',\n })\n ),\n ]),\n transition(':leave', [\n style({\n height: 'auto',\n }),\n animate(\n '.3s',\n style({\n height: 0,\n })\n ),\n ]),\n]);\nexport const rotate180 = trigger('rotate180', [\n transition(':enter', [\n style({\n transform: 'rotate(0deg)',\n }),\n animate(\n '.3s',\n style({\n transform: 'rotate(180deg)',\n })\n ),\n ]),\n transition(':leave', [\n style({\n transform: 'rotate(180deg)',\n }),\n animate(\n '.3s',\n style({\n transform: 'rotate(0deg)',\n })\n ),\n ]),\n]);\nexport const tabAnimation = trigger('tabAnimation', [\n transition(':enter', [\n style({\n transform: 'translateX(100%)',\n }),\n animate(\n '.3s',\n style({\n transform: 'translateX(0)',\n })\n ),\n ]),\n transition(':leave', [\n style({\n transform: 'translateX(0)',\n }),\n animate(\n '.3s',\n style({\n transform: 'translateX(-100%)',\n })\n ),\n ]),\n]);\nexport const buttonSlideRightToLeft = trigger('buttonSlideRightToLeft', [\n transition(':enter', [\n style({\n marginRight: '-40px',\n opacity: 0,\n }),\n animate(\n '.3s',\n style({\n marginRight: '0',\n opacity: 1,\n })\n ),\n ]),\n transition(':leave', [\n style({\n marginRight: '0',\n opacity: 1,\n }),\n animate(\n '.3s',\n style({\n marginRight: '-40px',\n opacity: 0,\n })\n ),\n ]),\n]);\n\nexport const slideLeft = trigger('slideLeft', [\n transition(':enter', [\n style({\n marginLeft: '-100%',\n opacity: 0,\n }),\n animate(\n '.3s',\n style({\n marginLeft: '0',\n opacity: 1,\n })\n ),\n ]),\n transition(':leave', [\n style({\n marginLeft: '0',\n opacity: 1,\n }),\n animate(\n '.3s',\n style({\n marginLeft: '-100%',\n opacity: 0,\n })\n ),\n ]),\n]);\nexport const slideRight = trigger('slideRight', [\n transition(':enter', [\n style({\n marginRight: '-100%',\n opacity: 0,\n }),\n animate(\n '.3s',\n style({\n marginRight: '0',\n opacity: 1,\n })\n ),\n ]),\n transition(':leave', [\n style({\n marginRight: '0',\n opacity: 1,\n }),\n animate(\n '.3s',\n style({\n marginRight: '-100%',\n opacity: 0,\n })\n ),\n ]),\n]);\nexport const slideBottom = trigger('slideBottom', [\n transition(':enter', [\n style({\n marginBottom: '-100%',\n opacity: 0,\n }),\n animate(\n '.3s',\n style({\n marginBottom: '0',\n opacity: 1,\n })\n ),\n ]),\n transition(':leave', [\n style({\n marginBottom: '0',\n opacity: 1,\n }),\n animate(\n '.3s',\n style({\n marginBottom: '-100%',\n opacity: 0,\n })\n ),\n ]),\n]);\nexport const slideTop = trigger('slideTop', [\n transition(':enter', [\n style({\n marginTop: '-100%',\n opacity: 0,\n }),\n animate(\n '.3s',\n style({\n marginTop: '0',\n opacity: 1,\n })\n ),\n ]),\n transition(':leave', [\n style({\n marginTop: '0',\n opacity: 1,\n }),\n animate(\n '.3s',\n style({\n marginTop: '-100%',\n opacity: 0,\n })\n ),\n ]),\n]);\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n Input,\n OnChanges,\n Output,\n QueryList,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Observable, Subject } from 'rxjs';\nimport { delay, map, startWith } from 'rxjs/operators';\nimport { TabComponent } from './tab/tab.component';\nimport { tabAnimation } from '../../animations';\n\n@Component({\n selector: 'base-tabs',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './tabs.component.html',\n host: {\n class: 'block',\n },\n animations: [tabAnimation],\n})\nexport class TabsComponent implements AfterContentInit, OnChanges {\n @ContentChildren(TabComponent)\n tabs!: QueryList<TabComponent>;\n\n @Output() tabChanged: Subject<TabComponent> = new Subject();\n tabItems$!: Observable<TabComponent[]>;\n\n @Input() defaultTab = 0;\n @Input() type?: string;\n @Input() position?: string;\n @Input() icon?: string;\n @Input() scrolrestricted = false;\n\n activeTab?: TabComponent;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes['defaultTab'] &&\n !changes['defaultTab'].firstChange &&\n this.tabs\n ) {\n this.selectTab(this.tabs.toArray()[this.defaultTab]);\n }\n }\n\n ngAfterContentInit(): void {\n this.tabItems$ = this.tabs.changes.pipe(\n startWith(this.tabs),\n delay(0),\n map(() => {\n const tabsArray = this.tabs.toArray();\n if (!this.activeTab && tabsArray.length > 0) {\n this.selectTab(tabsArray[this.defaultTab] || tabsArray[0]);\n }\n return tabsArray;\n })\n );\n }\n\n selectTab(tabItem: TabComponent) {\n if (!tabItem || this.activeTab === tabItem) {\n return;\n }\n\n if (this.activeTab) {\n this.activeTab.isActive = false;\n if (this.activeTab.labelComponent) {\n this.activeTab.labelComponent.isActive = false;\n }\n }\n\n this.activeTab = tabItem;\n tabItem.isActive = true;\n\n if (tabItem.labelComponent) {\n tabItem.labelComponent.isActive = true;\n tabItem.labelComponent.type = this.type;\n }\n\n this.tabChanged.next(this.activeTab);\n }\n}\n","<div\n class=\"flex justify-start\"\n [ngClass]=\"{\n 'border-b border-slate-300 dark:border-slate-700': type === 'underline',\n 'bg-slate-100 dark:bg-slate-900': type === 'folder',\n '!justify-start': position === 'left',\n '!justify-center': position === 'center',\n '!justify-end': position === 'right'\n }\"\n >\n @for (item of tabItems$ | async; track item) {\n <div\n class=\"px-32 h-40 flex items-center text-sm bg-transparent whitespace-nowrap {{\n item.tabClass\n }}\"\n (click)=\"selectTab(item)\"\n [ngClass]=\"{\n 'hover:shadow-tab ': type === 'underline',\n '!text-blue-500 shadow-tab-active hover:shadow-tab-active bg-transparent ':\n activeTab === item && type === 'underline',\n 'bg-slate-100 dark:bg-slate-600 dark:text-slate-200 !rounded-md mr-8 last-of-type:mr-0 transition-color duration-300':\n type === 'pills',\n 'text-white !bg-blue-500 rounded-md':\n activeTab === item && type === 'pills',\n 'bg-white dark:bg-slate-800 text-blue-500':\n activeTab === item && type === 'folder',\n 'flex-1 justify-center': position === 'full-width'\n }\"\n >\n @if (item.labelComponent) {\n <ng-container\n *ngTemplateOutlet=\"item.labelComponent.labelContent\"\n ></ng-container>\n }\n @if (!item.labelComponent) {\n {{ item.label }}\n }\n </div>\n }\n</div>\n@if (activeTab && activeTab.bodyComponent) {\n <div\n class=\"\"\n [ngClass]=\"{ 'overflow-hidden': scrolrestricted }\"\n [@tabAnimation]\n >\n @if (activeTab && activeTab.bodyComponent) {\n <div [@tabAnimation]>\n <div\n *ngTemplateOutlet=\"activeTab.bodyComponent.bodyContent\"\n [@tabAnimation]\n ></div>\n </div>\n }\n </div>\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[base-stroked-icon-button]',\n standalone: true,\n})\nexport class IconStrokedButtonDirective implements OnInit {\n @Input() color = 'default';\n @Input() size = 'default';\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n const button = this.el.nativeElement as HTMLElement;\n const icon = button.querySelector('base-icon');\n\n this.renderer.addClass(button, 'flex');\n this.renderer.addClass(button, 'items-center');\n this.renderer.addClass(button, 'justify-center');\n this.renderer.addClass(button, 'relative');\n this.renderer.addClass(button, 'rounded-lg');\n this.renderer.addClass(button, 'border');\n this.renderer.addClass(button, 'transition-all');\n this.renderer.addClass(button, 'duration-200');\n\n this.applyColorStyles(button, icon);\n this.applySizeStyles(button, icon);\n }\n\n private applyColorStyles(button: HTMLElement, icon: Element | null) {\n const colorMap: Record<string, string[]> = {\n primary: [\n 'text-blue-500',\n 'border-blue-500',\n 'hover:bg-blue-50',\n 'hover:text-blue-600',\n 'hover:border-blue-600',\n 'active:bg-blue-100',\n 'disabled:opacity-50',\n ],\n success: [\n 'text-green-500',\n 'border-green-500',\n 'hover:bg-green-50',\n 'hover:text-green-600',\n 'hover:border-green-600',\n 'active:bg-green-100',\n 'disabled:opacity-50',\n ],\n danger: [\n 'text-red-500',\n 'border-red-500',\n 'hover:bg-red-50',\n 'hover:text-red-600',\n 'hover:border-red-600',\n 'active:bg-red-100',\n 'disabled:opacity-50',\n ],\n warning: [\n 'text-orange-500',\n 'border-orange-500',\n 'hover:bg-orange-50',\n 'hover:text-orange-600',\n 'hover:border-orange-600',\n 'active:bg-orange-100',\n 'disabled:opacity-50',\n ],\n accent: [\n 'text-purple-500',\n 'border-purple-500',\n 'hover:bg-purple-50',\n 'hover:text-purple-600',\n 'hover:border-purple-600',\n 'active:bg-purple-100',\n 'disabled:opacity-50',\n ],\n white: [\n 'text-white',\n 'border-white',\n 'hover:bg-white/10',\n 'hover:text-white',\n 'hover:border-white',\n 'active:bg-white/20',\n 'disabled:opacity-50',\n ],\n black: [\n 'text-slate-900',\n 'dark:text-white',\n 'border-slate-900',\n 'dark:border-white',\n 'hover:bg-slate-900/10',\n 'dark:hover:bg-white/10',\n 'hover:text-slate-900',\n 'dark:hover:text-white',\n 'hover:border-slate-900',\n 'dark:hover:border-white',\n 'active:bg-slate-900/20',\n 'dark:active:bg-white/20',\n 'disabled:opacity-50',\n ],\n default: [\n 'text-slate-700',\n 'dark:text-slate-200',\n 'border-slate-300',\n 'dark:border-slate-600',\n 'hover:bg-slate-50',\n 'dark:hover:bg-slate-800',\n 'active:bg-slate-100',\n 'dark:active:bg-slate-900',\n 'disabled:opacity-50',\n ],\n };\n\n const classes = colorMap[this.color] || colorMap['default'];\n classes.forEach((cls) => this.renderer.addClass(button, cls));\n\n if (icon) {\n const strokeMap: Record<string, string[]> = {\n primary: ['stroke-blue-500'],\n success: ['stroke-green-500'],\n danger: ['stroke-red-500'],\n warning: ['stroke-orange-500'],\n accent: ['stroke-purple-500'],\n white: ['stroke-white'],\n black: ['stroke-slate-900', 'dark:stroke-white'],\n default: ['stroke-slate-700', 'dark:stroke-slate-200'],\n };\n \n const iconClasses = strokeMap[this.color] || strokeMap['default'];\n iconClasses.forEach(cls => this.renderer.addClass(icon, cls));\n }\n\n this.renderer.addClass(button, 'disabled:cursor-not-allowed');\n }\n\n private applySizeStyles(button: HTMLElement, icon: Element | null) {\n const sizeMap: Record<string, string[]> = {\n sm: ['!h-28', '!w-28', '!min-w-28', '!max-w-28'],\n lg: ['!h-40', '!w-40', '!min-w-40', '!max-w-40'],\n xl: ['!h-44', '!w-44', '!min-w-44', '!max-w-44'],\n xxl: ['!h-56', '!w-56', '!min-w-56', '!max-w-56'],\n default: ['!h-36', '!w-36', '!min-w-36', '!max-w-36'],\n };\n\n const iconSizeMap: Record<string, string[]> = {\n sm: ['w-12', 'h-12'],\n lg: ['w-24', 'h-24'],\n xl: ['w-24', 'h-24'],\n xxl: ['w-28', 'h-28'],\n default: ['w-20', 'h-20'],\n };\n\n const classes = sizeMap[this.size] || sizeMap['default'];\n classes.forEach((cls) => this.renderer.addClass(button, cls));\n\n if (icon) {\n const iconClasses = iconSizeMap[this.size] || iconSizeMap['default'];\n iconClasses.forEach((cls) => this.renderer.addClass(icon, cls));\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { IconModule } from '../icon/icon.module';\nimport { CurrentScreenSizeService } from '../../services/current-screen-size.service';\nimport { IconStrokedButtonDirective } from '../../directives/button/base-icon-stroked-button.directive';\n\n\n@Component({\n selector: 'base-sidenav',\n standalone: true,\n imports: [CommonModule, IconModule, IconStrokedButtonDirective],\n templateUrl: './sidenav.component.html',\n host: {\n class: 'flex flex-col w-full h-full overflow-hidden',\n },\n})\nexport class SidenavComponent {\n @Input() color?: string;\n navBarOpen = false;\n\n constructor(private screenSizeService: CurrentScreenSizeService) {}\n\n openNavBar() {\n this.navBarOpen = !this.navBarOpen;\n }\n\n onNavClick() {\n const size = this.screenSizeService.currentScreenSize;\n if (size === 'XSmall' || size === 'Small' || size === 'Medium') {\n this.navBarOpen = false;\n }\n }\n}\n","<div\n class=\"flex items-center justify-start h-40 w-full lg:hidden border-b border-slate-200 dark:border-slate-700 px-16 flex-shrink-0\">\n <button base-stroked-icon-button (click)=\"openNavBar()\" size=\"sm\" aria-label=\"Toggle Navigation\">\n <base-icon name=\"more\"></base-icon>\n </button>\n <span class=\"ml-12 font-medium text-slate-700 dark:text-slate-300 text-sm\">Elements</span>\n</div>\n<div class=\"flex flex-1 w-full h-full overflow-hidden relative\">\n <div [ngClass]=\"navBarOpen ? 'ml-0' : '-ml-[240px]'\"\n class=\"lg:ml-0 transition-all duration-300 w-[240px] max-w-[240px] min-w-[240px] py-16 h-full overflow-y-auto border-r border-slate-200 dark:border-slate-700 bg-slate-50 dark:bg-slate-900 flex-shrink-0\"\n (click)=\"onNavClick()\">\n <ng-content select=\"base-sidenav-nav\"></ng-content>\n </div>\n\n <div class=\"flex-1 min-w-full md:min-w-[0] flex flex-col h-full overflow-hidden transition-all duration-300\">\n <ng-content select=\"base-sidenav-body\"></ng-content>\n </div>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-sidenav-body',\n standalone: true,\n templateUrl: './sidenav-body.component.html',\n host: {\n class: 'flex-1 overflow-y-auto overflow-x-auto block h-full',\n },\n})\nexport class SidenavBodyComponent {}\n","\n<ng-content></ng-content>\n\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-sidenav-nav',\n standalone: true,\n templateUrl: './sidenav-nav.component.html',\n host: {\n class: 'w-[240px] min-w-[240px] h-full overflow-y-auto overflow-x-auto',\n },\n})\nexport class SidenavNavComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-alert-actions',\n standalone: true,\n templateUrl: './alert-actions.component.html',\n})\nexport class AlertActionsComponent {}\n","<div class=\"min-w-full flex justify-end gap-8\">\n <ng-content></ng-content>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-nav-list',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './nav-list.component.html',\n host: {\n class: 'block w-full'\n }\n})\nexport class NavListComponent {}\n","<nav class=\"flex flex-col p-24 items-start justify-start not-prose\">\n <ng-content></ng-content>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type SpinnerColor = 'primary' | 'success' | 'danger' | 'warning' | 'accent' | 'inverted';\nexport type SpinnerSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'base-spinner',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './spinner.component.html',\n})\nexport class SpinnerComponent {\n @Input() size: SpinnerSize = 'md';\n @Input() color: SpinnerColor = 'primary';\n\n get spinnerClasses(): string[] {\n const classes = ['border-solid', 'animate-spin', 'rounded-full', 'block'];\n\n // Size\n switch (this.size) {\n case 'sm': classes.push('w-16 h-16 border'); break;\n case 'md': classes.push('w-24 h-24 border-2'); break;\n case 'lg': classes.push('w-40 h-40 border-4'); break;\n case 'xl': classes.push('w-48 h-48 border-[5px]'); break;\n default: classes.push('w-32 h-32 border-[3px]');\n }\n\n // Color\n const colorMap: Record<SpinnerColor, string> = {\n 'primary': 'border-blue-500 border-t-blue-100 border-r-blue-100 border-b-blue-100',\n 'success': 'border-green-500 border-t-green-100 border-r-green-100 border-b-green-100',\n 'danger': 'border-red-500 border-t-red-100 border-r-red-100 border-b-red-100',\n 'warning': 'border-orange-500 border-t-orange-100 border-r-orange-100 border-b-orange-100',\n 'accent': 'border-purple-500 border-t-purple-100 border-r-purple-100 border-b-purple-100',\n 'inverted': 'border-white border-t-white/20 border-r-white/20 border-b-white/20',\n };\n classes.push(colorMap[this.color] || colorMap['primary']);\n\n return classes;\n }\n}","<span [ngClass]=\"spinnerClasses\"></span>","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'base-spinner-wrapper',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './spinner-wrapper.component.html',\n})\nexport class SpinnerWrapperComponent {\n @Input() backdrop: 'dark' | 'light' = 'light';\n}\n","<div\n class=\"w-full h-full flex justify-center items-center absolute left-0 top-0 bottom-0 right-0 z-top \n {{ backdrop === 'dark' ? 'bg-white-90' : 'bg-slate-500-90' }}\"\n>\n <ng-content></ng-content>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'base-divider',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './divider.component.html',\n host: {\n class: 'block',\n },\n})\nexport class DividerComponent {\n @Input() vertical = false;\n}\n","<div class=\"{{ vertical ? 'w-1 h-full' : 'h-1' }} bg-slate-300 dark:bg-slate-700\"></div>","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nexport type ProgressColor = 'primary' | 'success' | 'danger' | 'warning' | 'accent';\nexport type ProgressSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'base-progress',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './progress.component.html',\n})\nexport class ProgressComponent {\n @Input() value = 0;\n @Input() color: ProgressColor = 'primary';\n @Input() size: ProgressSize = 'md';\n\n get containerClasses(): Record<string, boolean> {\n return {\n 'h-4': this.size === 'sm',\n 'h-8': this.size === 'md',\n 'h-12': this.size === 'lg',\n 'h-16': this.size === 'xl',\n };\n }\n\n get barClasses(): Record<string, boolean> {\n return {\n 'bg-blue-500': this.color === 'primary',\n 'bg-green-500': this.color === 'success',\n 'bg-red-500': this.color === 'danger',\n 'bg-orange-500': this.color === 'warning',\n 'bg-purple-500': this.color === 'accent',\n 'h-4': this.size === 'sm',\n 'h-8': this.size === 'md',\n 'h-12': this.size === 'lg',\n 'h-16': this.size === 'xl',\n };\n }\n}\n","<div class=\"w-full bg-slate-200 dark:bg-slate-700 rounded-full\" [ngClass]=\"containerClasses\">\n <div class=\"transition-all duration-300 rounded-full\" [style.width.%]=\"value\" [ngClass]=\"barClasses\"></div>\n</div>","import {\n Directive,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n inject,\n NgZone,\n} from '@angular/core';\n\n@Directive({\n selector: '[base-scroll-nav-item]',\n standalone: true,\n host: {\n '(click)': 'onClick()',\n '[class.scroll-nav-item]': 'true',\n '[class.!text-blue-500]': 'isActive',\n },\n})\nexport class ScrollNavItemDirective {\n @Input('base-scroll-nav-item') public elementId = '';\n \n private _isActive = false;\n private ngZone = inject(NgZone);\n\n @Input() public set isActive(value: boolean) {\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.ngZone.run(() => {\n if (value !== this._isActive) {\n this._isActive = value;\n }\n });\n });\n });\n }\n\n public get isActive(): boolean {\n return this._isActive;\n }\n\n @Output() public clicked = new EventEmitter<ScrollNavItemDirective>();\n\n constructor(public elementRef: ElementRef) {}\n\n public onClick() {\n this.clicked.emit(this);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-scroll-nav-content',\n standalone: true,\n templateUrl: './scroll-nav-content.component.html',\n host: {\n class: 'overflow-y-auto p-16 h-full w-full flex-1',\n },\n})\nexport class ScrollNavContentComponent {}\n","\n<ng-content></ng-content> \n\n","import {\n Component,\n ContentChildren,\n ContentChild,\n QueryList,\n ElementRef,\n AfterViewInit,\n OnDestroy,\n inject,\n PLATFORM_ID,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { ScrollNavItemDirective } from '../../directives/scroll-nav/scroll-nav-item.directive';\nimport { ScrollNavContentComponent } from './scroll-nav-content/scroll-nav-content.component';\nimport { Subject, fromEvent } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'base-scroll-nav',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './scroll-nav.component.html',\n host: {\n class: 'w-full h-full overflow-hidden relative flex',\n },\n})\nexport class ScrollNavComponent implements AfterViewInit, OnDestroy {\n @ContentChild(ScrollNavContentComponent, { read: ElementRef })\n container?: ElementRef;\n\n @ContentChildren(ScrollNavItemDirective, { descendants: true })\n items!: QueryList<ScrollNavItemDirective>;\n\n public percentage = 0;\n private targets: any[] = [];\n private destroy$ = new Subject<void>();\n private selectedItem?: ScrollNavItemDirective;\n private platformId = inject(PLATFORM_ID);\n\n ngAfterViewInit() {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.updateTargets();\n this.updateActiveItem();\n\n this.items.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateTargets();\n this.setupItemListeners();\n });\n\n this.setupItemListeners();\n\n if (this.container) {\n fromEvent(this.container.nativeElement, 'scroll')\n .pipe(takeUntil(this.destroy$), debounceTime(10))\n .subscribe(() => {\n this.updateActiveItem();\n });\n }\n }\n\n private setupItemListeners() {\n this.items.forEach((item) => {\n item.clicked.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.scrollTo(item.elementId);\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private updateTargets() {\n this.targets = this.items.map((item) => {\n const element = document.getElementById(item.elementId);\n if (!element) return { top: 0, bottom: 0 };\n const rect = element.getBoundingClientRect();\n const containerRect = this.container?.nativeElement.getBoundingClientRect() || { top: 0 };\n \n return {\n element: element,\n top: rect.top - containerRect.top + (this.container?.nativeElement.scrollTop || 0),\n bottom: rect.bottom - containerRect.top + (this.container?.nativeElement.scrollTop || 0),\n height: element.offsetHeight,\n };\n });\n }\n\n private updateActiveItem(): void {\n if (!this.container) return;\n\n const scrollTop = this.container.nativeElement.scrollTop;\n const scrollHeight = this.container.nativeElement.scrollHeight;\n const clientHeight = this.container.nativeElement.clientHeight;\n\n this.percentage = scrollTop / (scrollHeight - clientHeight || 1);\n \n const selectionLine = scrollTop + clientHeight * this.percentage;\n let closestDiff = Number.MAX_VALUE;\n let closestItem: ScrollNavItemDirective | undefined;\n\n this.items.forEach((item, index) => {\n const target = this.targets[index];\n if (!target || !target.element) return;\n\n const diff = Math.min(\n Math.abs(target.top - selectionLine),\n Math.abs(target.bottom - selectionLine)\n );\n\n if (diff < closestDiff) {\n closestDiff = diff;\n closestItem = item;\n }\n });\n\n if (closestItem && closestItem !== this.selectedItem) {\n if (this.selectedItem) {\n this.selectedItem.isActive = false;\n }\n this.selectedItem = closestItem;\n this.selectedItem.isActive = true;\n }\n }\n\n private scrollTo(elementId: string) {\n const element = document.getElementById(elementId);\n if (element) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }\n}\n","<ng-content></ng-content>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-scroll-nav-sidebar',\n standalone: true,\n templateUrl: './scroll-nav-sidebar.component.html',\n host: {\n class: 'hidden lg:block w-[280px] min-w-[280px] max-w-[280px] sticky top-0 max-h-full overflow-y-auto overflow-x-hidden p-16',\n },\n})\nexport class ScrollNavSidebarComponent {}\n","<ng-content></ng-content>\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[base-icon-button]',\n standalone: true,\n})\nexport class IconButtonDirective implements OnInit {\n @Input() color = 'default';\n @Input() size = 'default';\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n const button = this.el.nativeElement as HTMLElement;\n const icon = button.querySelector('base-icon');\n\n this.renderer.addClass(button, 'flex');\n this.renderer.addClass(button, 'items-center');\n this.renderer.addClass(button, 'justify-center');\n this.renderer.addClass(button, 'relative');\n this.renderer.addClass(button, 'rounded-lg');\n this.renderer.addClass(button, 'transition-all');\n this.renderer.addClass(button, 'duration-200');\n\n this.applyColorStyles(button, icon);\n this.applySizeStyles(button, icon);\n }\n\n private applyColorStyles(button: HTMLElement, icon: Element | null) {\n const colorMap: Record<string, string[]> = {\n primary: [\n 'bg-blue-500',\n 'hover:bg-blue-600',\n 'active:bg-blue-700',\n 'disabled:bg-blue-300',\n ],\n success: [\n 'bg-green-500',\n 'hover:bg-green-600',\n 'active:bg-green-700',\n 'disabled:bg-green-300',\n ],\n danger: [\n 'bg-red-500',\n 'hover:bg-red-600',\n 'active:bg-red-700',\n 'disabled:bg-red-300',\n ],\n warning: [\n 'bg-orange-500',\n 'hover:bg-orange-600',\n 'active:bg-orange-700',\n 'disabled:bg-orange-300',\n ],\n accent: [\n 'bg-purple-500',\n 'hover:bg-purple-600',\n 'active:bg-purple-700',\n 'disabled:bg-purple-300',\n ],\n white: [\n 'bg-white',\n 'hover:bg-slate-50',\n 'active:bg-slate-100',\n 'disabled:opacity-50',\n ],\n black: [\n 'bg-slate-900',\n 'dark:bg-black',\n 'hover:bg-slate-800',\n 'dark:hover:bg-slate-900',\n 'active:bg-slate-700',\n 'dark:active:bg-slate-800',\n 'disabled:opacity-50',\n ],\n transparent: [\n 'bg-transparent',\n 'hover:bg-slate-100',\n 'dark:hover:bg-slate-800',\n 'active:bg-slate-200',\n 'dark:active:bg-slate-900',\n ],\n default: [\n 'bg-slate-200',\n 'dark:bg-slate-800',\n 'hover:bg-slate-300',\n 'dark:hover:bg-slate-700',\n 'active:bg-slate-400',\n 'dark:active:bg-slate-600',\n ],\n };\n\n const classes = colorMap[this.color] || colorMap['default'];\n classes.forEach((cls) => this.renderer.addClass(button, cls));\n\n if (icon) {\n if (this.color === 'transparent' || this.color === 'default') {\n this.renderer.addClass(icon, 'stroke-slate-700');\n this.renderer.addClass(icon, 'dark:stroke-slate-200');\n } else if (this.color === 'white') {\n this.renderer.addClass(icon, 'stroke-slate-900');\n } else {\n this.renderer.addClass(icon, 'stroke-white');\n }\n }\n\n this.renderer.addClass(button, 'disabled:cursor-not-allowed');\n this.renderer.addClass(button, 'disabled:opacity-50');\n }\n\n private applySizeStyles(button: HTMLElement, icon: Element | null) {\n const sizeMap: Record<string, string[]> = {\n sm: ['!h-28', '!w-28', '!min-w-28', '!max-w-28'],\n lg: ['!h-40', '!w-40', '!min-w-40', '!max-w-40'],\n xl: ['!h-44', '!w-44', '!min-w-44', '!max-w-44'],\n xxl: ['!h-56', '!w-56', '!min-w-56', '!max-w-56'],\n default: ['!h-36', '!w-36', '!min-w-36', '!max-w-36'],\n };\n\n const iconSizeMap: Record<string, string[]> = {\n sm: ['w-16', 'h-16'],\n lg: ['w-24', 'h-24'],\n xl: ['w-24', 'h-24'],\n xxl: ['w-28', 'h-28'],\n default: ['w-20', 'h-20'],\n };\n\n const classes = sizeMap[this.size] || sizeMap['default'];\n classes.forEach((cls) => this.renderer.addClass(button, cls));\n\n if (icon) {\n const iconClasses = iconSizeMap[this.size] || iconSizeMap['default'];\n iconClasses.forEach((cls) => this.renderer.addClass(icon, cls));\n }\n }\n}\n","import { Component, Input, ViewChild, ElementRef, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Clipboard, ClipboardModule } from '@angular/cdk/clipboard';\nimport { buttonSlideRightToLeft, openClose } from '../../animations';\nimport { IconModule } from '../icon/icon.module';\nimport { IconButtonDirective } from '../../directives/button/base-icon-button.directive';\n\n@Component({\n selector: 'base-code',\n standalone: true,\n imports: [CommonModule, IconModule, IconButtonDirective, ClipboardModule],\n templateUrl: './code.component.html',\n animations: [buttonSlideRightToLeft, openClose],\n})\nexport class CodeComponent {\n @Input() language = '';\n @Input() showCode = false;\n\n @ViewChild('content') contentRef?: ElementRef;\n \n private clipboard = inject(Clipboard);\n\n show() {\n this.showCode = !this.showCode;\n }\n\n copyTo() {\n if (this.contentRef) {\n const content = this.contentRef.nativeElement.innerText;\n this.clipboard.copy(content);\n }\n }\n}\n","<div class=\"flex flex-col bg-slate-100 dark:bg-slate-900 rounded-lg overflow-hidden\">\n <div class=\"flex justify-between items-center px-16 py-8\"\n [ngClass]=\"{ 'border-b border-slate-300 dark:border-slate-700': showCode }\">\n <h4 class=\"m-0 text-sm font-semibold\">{{ language }}</h4>\n <div class=\"flex gap-8\">\n <button base-icon-button color=\"transparent\" (click)=\"show()\" title=\"Toggle code\">\n <base-icon name=\"code\"></base-icon>\n </button>\n @if (showCode) {\n <button base-icon-button color=\"transparent\" [@buttonSlideRightToLeft] (click)=\"copyTo()\"\n title=\"Copy to clipboard\">\n <base-icon name=\"copy\"></base-icon>\n </button>\n }\n </div>\n </div>\n @if (showCode) {\n <div #content class=\"max-w-full overflow-hidden p-16 prose font-mono text-sm text-pink-800 dark:text-pink-400\"\n [@openClose]>\n <ng-content></ng-content>\n </div>\n }\n</div>","import {\n Component,\n Output,\n TemplateRef,\n ViewChild,\n EventEmitter,\n Input,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrawerPanel } from './drawer-panel';\nimport {\n slideBottom,\n slideLeft,\n slideRight,\n slideTop,\n} from '../../animations';\nimport { IconModule } from '../icon/icon.module';\nimport { IconButtonDirective } from '../../directives/button/base-icon-button.directive';\n\nexport type DrawerPosition = 'left' | 'right' | 'top' | 'bottom';\nexport type DrawerSize = 'sm' | 'md' | 'lg' | 'xl' | string;\n\n@Component({\n selector: 'base-drawer',\n standalone: true,\n imports: [CommonModule, IconModule, IconButtonDirective],\n templateUrl: './drawer.component.html',\n animations: [slideLeft, slideRight, slideTop, slideBottom],\n})\nexport class DrawerComponent<T> implements DrawerPanel<T> {\n @Input() size: DrawerSize = 'md';\n @Input() position: DrawerPosition = 'right';\n @Input() close = false;\n\n @ViewChild(TemplateRef, { static: true }) templateRef!: TemplateRef<T>;\n @Output() closed = new EventEmitter<void>();\n}\n","<ng-template>\n @if (position === 'left') {\n <div class=\"bg-white dark:bg-slate-800 p-16 fixed top-0 bottom-0 left-0 h-full shadow-lg z-[1000]\" [@slideLeft]\n [ngClass]=\"{\n 'w-200': size === 'sm',\n 'w-280': size === 'md',\n 'w-[40vw]': size === 'lg',\n 'w-[56vw]': size === 'xl'\n }\">\n <div class=\"relative w-full h-full\">\n @if (close) {\n <button base-icon-button color=\"transparent\" size=\"sm\" (click)=\"closed.emit()\"\n class=\"!absolute top-0 right-0 z-10\">\n <base-icon name=\"close\"></base-icon>\n </button>\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n }\n\n @if (position === 'right') {\n <div class=\"bg-white dark:bg-slate-800 p-16 fixed top-0 bottom-0 right-0 h-full shadow-lg z-[1000]\" [@slideRight]\n [ngClass]=\"{\n 'w-200': size === 'sm',\n 'w-280': size === 'md',\n 'w-[40vw]': size === 'lg',\n 'w-[56vw]': size === 'xl'\n }\">\n <div class=\"relative w-full h-full\">\n @if (close) {\n <button base-icon-button color=\"transparent\" size=\"sm\" (click)=\"closed.emit()\"\n class=\"!absolute top-0 right-0 z-10\">\n <base-icon name=\"close\"></base-icon>\n </button>\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n }\n\n @if (position === 'top') {\n <div class=\"bg-white dark:bg-slate-800 p-16 fixed top-0 left-0 right-0 w-screen shadow-lg z-[1000]\" [@slideTop]\n [ngClass]=\"{\n 'h-160': size === 'sm',\n 'h-280': size === 'md',\n 'h-400': size === 'lg',\n 'h-560': size === 'xl'\n }\">\n <div class=\"relative w-full h-full\">\n @if (close) {\n <button base-icon-button color=\"transparent\" size=\"sm\" (click)=\"closed.emit()\"\n class=\"!absolute top-0 right-0 z-10\">\n <base-icon name=\"close\"></base-icon>\n </button>\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n }\n\n @if (position === 'bottom') {\n <div class=\"bg-white dark:bg-slate-800 p-16 fixed bottom-0 left-0 right-0 w-screen shadow-lg z-[1000]\" [@slideBottom]\n [ngClass]=\"{\n 'h-160': size === 'sm',\n 'h-280': size === 'md',\n 'h-400': size === 'lg',\n 'h-560': size === 'xl'\n }\">\n <div class=\"relative w-full h-full\">\n @if (close) {\n <button base-icon-button color=\"transparent\" size=\"sm\" (click)=\"closed.emit()\"\n class=\"!absolute top-0 right-0 z-10\">\n <base-icon name=\"close\"></base-icon>\n </button>\n }\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n }\n\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n</ng-template>","import {\n Component,\n Output,\n TemplateRef,\n ViewChild,\n EventEmitter,\n Input,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DropdownPanel } from './dropdown-panel';\n\n@Component({\n selector: 'base-dropdown-menu',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dropdown-menu.component.html',\n})\nexport class DropdownMenuComponent<T> implements DropdownPanel<T> {\n @Input() size?: string;\n @ViewChild(TemplateRef, { static: true }) templateRef!: TemplateRef<T>;\n @Output() closed = new EventEmitter<void>();\n\n get menuClasses(): string {\n const base = 'bg-white dark:bg-slate-800 rounded-md shadow-xl border border-slate-200 dark:border-slate-700 overflow-hidden min-w-[160px]';\n return this.size ? `${base} w-[${this.size}]` : base;\n }\n}\n","<ng-template>\n <div [ngClass]=\"menuClasses\" role=\"menu\">\n <ng-content></ng-content>\n </div>\n</ng-template>","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-dropdown-menu-item',\n templateUrl: './dropdown-menu-item.component.html',\n standalone: true,\n imports: [CommonModule],\n host: {\n class: 'w-full px-24 h-48 flex items-center text-sm transition-colors duration-200 cursor-pointer hover:bg-slate-100 dark:hover:bg-slate-700 text-slate-600 dark:text-slate-300 whitespace-nowrap not-prose',\n },\n})\nexport class DropdownMenuItemComponent {}\n","<ng-content></ng-content>\n\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IconModule } from '../icon/icon.module';\n\n@Component({\n selector: 'base-select',\n standalone: true,\n imports: [CommonModule, IconModule],\n templateUrl: './select.component.html',\n host: {\n class: 'relative block',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n})\nexport class SelectComponent implements ControlValueAccessor {\n @Input() placeholder = '';\n @Input() disabled = false;\n value: any;\n\n private onChange: (value: any) => void = () => {};\n private onTouched: () => void = () => {};\n\n onSelectChange(event: Event) {\n const select = event.target as HTMLSelectElement;\n this.value = select.value;\n this.onChange(this.value);\n this.onTouched();\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"flex justify-between w-full border border-slate-300 dark:border-slate-700 rounded-lg overflow-hidden relative bg-white dark:bg-slate-800 transition-colors duration-200 focus-within:border-blue-500 h-36 items-center dark:text-white\"\n [ngClass]=\"{'opacity-50 pointer-events-none': disabled}\">\n <select\n class=\"appearance-none bg-transparent border-none w-full h-full z-[2] absolute top-0 left-0 pl-16 pr-32 text-sm focus:outline-none\"\n [disabled]=\"disabled\" [value]=\"value\" (change)=\"onSelectChange($event)\">\n @if (placeholder) {\n <option value=\"\" disabled selected hidden>{{ placeholder }}</option>\n }\n <ng-content></ng-content>\n </select>\n <base-icon name=\"chevron-down\" class=\"ml-auto w-16 h-16 stroke-slate-500 z-[1] mr-12\"></base-icon>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { IconModule } from '../icon/icon.module';\nimport { IconButtonDirective } from '../../directives/button/base-icon-button.directive';\n\n@Component({\n selector: 'base-input-spinner',\n standalone: true,\n imports: [CommonModule, FormsModule, IconModule, IconButtonDirective],\n templateUrl: './input-spinner.component.html',\n host: {\n class: 'block',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputSpinnerComponent),\n multi: true,\n },\n ],\n})\nexport class InputSpinnerComponent implements ControlValueAccessor {\n @Input() disabled = false;\n @Input() classes = '';\n @Input() min = 0;\n @Input() max = Infinity;\n @Input() step = 1;\n\n value = 0;\n\n private onChange: (value: number) => void = () => {};\n private onTouched: () => void = () => {};\n\n writeValue(value: any): void {\n this.value = value || 0;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n updateValue(add: boolean) {\n if (this.disabled) return;\n\n let newValue = this.value;\n if (add) {\n newValue += this.step;\n } else {\n newValue -= this.step;\n }\n\n if (newValue >= this.min && newValue <= this.max) {\n this.value = newValue;\n this.onChange(this.value);\n this.onTouched();\n }\n }\n\n onInputChange(event: Event) {\n const input = event.target as HTMLInputElement;\n let newValue = Number(input.value);\n \n if (!isNaN(newValue)) {\n if (newValue < this.min) newValue = this.min;\n if (newValue > this.max) newValue = this.max;\n \n this.value = newValue;\n this.onChange(this.value);\n this.onTouched();\n } else {\n input.value = this.value.toString();\n }\n }\n}\n","<div\n class=\"flex items-center h-36 border border-slate-200 dark:border-slate-700 rounded-[8px] overflow-hidden bg-white dark:bg-slate-800 transition-colors duration-200 focus-within:border-blue-500\"\n [ngClass]=\"{'opacity-50 pointer-events-none': disabled}\">\n <button base-icon-button color=\"transparent\" size=\"sm\" type=\"button\" class=\"!h-full !w-36\"\n (click)=\"updateValue(false)\" [disabled]=\"disabled || value <= min\">\n <base-icon name=\"minus\" class=\"w-16 h-16 stroke-slate-500\"></base-icon>\n </button>\n\n <input type=\"number\"\n class=\"w-full h-full text-center text-sm bg-transparent border-x border-slate-200 dark:border-slate-700 focus:outline-none dark:text-white [appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none\"\n [value]=\"value\" [min]=\"min\" [max]=\"max\" [step]=\"step\" [disabled]=\"disabled\" (change)=\"onInputChange($event)\" />\n\n <button base-icon-button color=\"transparent\" size=\"sm\" type=\"button\" class=\"!h-full !w-36\" (click)=\"updateValue(true)\"\n [disabled]=\"disabled || value >= max\">\n <base-icon name=\"plus\" class=\"w-16 h-16 stroke-slate-500\"></base-icon>\n </button>\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { IconModule } from '../icon/icon.module';\nimport { IconButtonDirective } from '../../directives/button/base-icon-button.directive';\nimport { SelectComponent } from '../select/select.component';\nimport { InputSpinnerComponent } from '../input-spinner/input-spinner.component';\n\n@Component({\n selector: 'base-paginator',\n standalone: true,\n imports: [\n CommonModule,\n IconModule,\n IconButtonDirective,\n SelectComponent,\n InputSpinnerComponent,\n ],\n templateUrl: './paginator.component.html',\n})\nexport class PaginatorComponent {\n @Input() basePaginator = false;\n @Input() arrows = false;\n \n start = 1;\n end = 125;\n\n decrease() {\n if (this.start < this.end) {\n this.end--;\n this.start++;\n }\n }\n\n increase() {\n if (this.start > 1) {\n this.start--;\n this.end++;\n }\n }\n}\n","@if (basePaginator) {\n<div class=\"sm:flex justify-between items-center gap-16\">\n <base-select class=\"w-96 mb-12 sm:mb-0\">\n <option value=\"10\">10</option>\n <option value=\"25\">25</option>\n <option value=\"50\">50</option>\n <option value=\"100\">100</option>\n </base-select>\n\n <div class=\"sm:flex items-center gap-16\">\n <div class=\"mb-12 sm:mb-0 flex items-center gap-8\">\n <p class=\"text-xs text-slate-500 dark:text-slate-400 whitespace-nowrap\">Go to page</p>\n <base-input-spinner class=\"w-96\"></base-input-spinner>\n </div>\n <div class=\"flex items-center gap-8\">\n <button base-icon-button color=\"transparent\" size=\"sm\" (click)=\"decrease()\" title=\"Previous\">\n <base-icon name=\"chevron-left\" class=\"stroke-blue-600\"></base-icon>\n </button>\n <p class=\"text-xs font-medium dark:text-slate-300\">{{start}} of {{end}}</p>\n <button base-icon-button color=\"transparent\" size=\"sm\" (click)=\"increase()\" title=\"Next\">\n <base-icon name=\"chevron-right\" class=\"stroke-blue-600\"></base-icon>\n </button>\n </div>\n </div>\n</div>\n}\n\n<div class=\"flex justify-center\">\n @if (!basePaginator) {\n <nav aria-label=\"Page navigation\">\n <ul class=\"flex items-center\">\n @if (!arrows) {\n <li>\n <a href=\"javascript:void(0)\"\n class=\"h-36 px-12 flex items-center justify-center border border-slate-300 dark:border-slate-600 text-sm rounded-l-xl hover:bg-slate-50 dark:hover:bg-slate-800 dark:text-slate-300 transition-colors\">Previous</a>\n </li>\n } @else {\n <li>\n <a href=\"javascript:void(0)\"\n class=\"h-36 w-36 flex items-center justify-center border border-slate-300 dark:border-slate-600 rounded-l-xl hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors\">\n <base-icon name=\"chevron-left\" class=\"stroke-slate-800 dark:stroke-slate-100 w-16 h-16\"></base-icon>\n </a>\n </li>\n }\n\n <ng-content select=\"base-p-page\"></ng-content>\n\n @if (arrows) {\n <li>\n <a href=\"javascript:void(0)\"\n class=\"h-36 w-36 flex items-center justify-center border border-slate-300 dark:border-slate-600 rounded-r-xl -ml-px hover:bg-slate-50 dark:hover:bg-slate-800 transition-colors\">\n <base-icon name=\"chevron-right\" class=\"stroke-slate-800 dark:stroke-slate-100 w-16 h-16\"></base-icon>\n </a>\n </li>\n } @else {\n <li>\n <a href=\"javascript:void(0)\"\n class=\"h-36 px-12 flex items-center justify-center border border-slate-300 dark:border-slate-600 text-sm rounded-r-xl -ml-px hover:bg-slate-50 dark:hover:bg-slate-800 dark:text-slate-300 transition-colors\">Next</a>\n </li>\n }\n </ul>\n </nav>\n }\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'base-p-page',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './p-page.component.html',\n})\nexport class PPageComponent {\n @Input() active = false;\n}\n","<li>\n <a href=\"javascript:void(0)\"\n class=\"h-36 w-36 flex items-center justify-center border text-sm transition-colors duration-200 -ml-px\"\n [ngClass]=\"active ? 'border-blue-600 text-white bg-blue-600' : 'border-slate-300 dark:border-slate-600 text-slate-700 dark:text-slate-300 hover:bg-slate-50 dark:hover:bg-slate-800'\">\n <ng-content></ng-content>\n </a>\n</li>","import { style } from '@angular/animations';\nimport { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[base-input]',\n standalone: true,\n host: {\n class: 'w-full outline-0 rounded-lg h-36 px-16 text-sm text-slate-700 dark:text-slate-200 dark:!bg-slate-800 disabled:cursor-not-allowed disabled:text-slate-400 read-only:pointer-events-none read-only:cursor-not-allowed read-only:bg-slate-50 dark:read-only:bg-slate-700 transition-all duration-200 focus:ring-0 focus:outline-none'\n },\n})\nexport class BaseInputDirective implements OnInit {\n private el = inject(ElementRef);\n\n ngOnInit() {\n // Basic initialization if needed, host binding handles classes mostly\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputGroupComponent } from '../input-group/input-group.component';\nimport { BaseInputDirective } from '../../directives/input-group/base-input.directive';\nimport { IconModule } from '../icon/icon.module';\n\n@Component({\n selector: 'base-input-autocomplete',\n standalone: true,\n imports: [CommonModule, InputGroupComponent, BaseInputDirective, IconModule],\n templateUrl: './input-autocomplete.component.html',\n})\nexport class InputAutocompleteComponent implements OnInit {\n @Input() suggestions = '';\n \n list = '';\n id = '';\n\n ngOnInit(): void {\n this.list = this.suggestions;\n this.id = this.suggestions;\n }\n}\n","<base-input-group>\n <input base-input type=\"text\" [attr.list]=\"suggestions\" placeholder=\"Start typing...\">\n <base-icon name=\"chevron-down\" base-addon-end class=\"mr-12 w-16 h-16 stroke-slate-500\"></base-icon>\n <datalist [attr.id]=\"suggestions\">\n <ng-content></ng-content>\n </datalist>\n</base-input-group>","import {\n Component,\n ElementRef,\n ViewChild,\n OnDestroy,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { IconModule } from '../icon/icon.module';\n\n@Component({\n selector: 'base-custom-select',\n standalone: true,\n imports: [CommonModule, FormsModule, IconModule],\n templateUrl: './custom-select.component.html',\n host: {\n class: 'block w-full text-slate-700 dark:text-white',\n '(document:click)': 'handleClickOutside($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CustomSelectComponent),\n multi: true,\n },\n ],\n})\nexport class CustomSelectComponent implements ControlValueAccessor, OnDestroy {\n @Input() label = '';\n @Input() placeholder = 'Select an option';\n @Input() options: any[] = [];\n @Input() displayKey = 'label';\n @Input() valueKey = 'value';\n @Input() disabled = false;\n @Input() multiple = false;\n\n @Output() selectionChange = new EventEmitter<any>();\n\n isOpen = false;\n selectedOption: any = null;\n selectedLabel = '';\n dropdownStyles: any = {};\n @ViewChild('buttonElement') buttonElement!: ElementRef;\n\n private el = inject(ElementRef);\n private onChange: (value: any) => void = () => {};\n private onTouched: () => void = () => {};\n\n toggleDropdown() {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n if (this.isOpen) {\n this.onTouched();\n setTimeout(() => this.calculateDropdownPosition());\n this.addOverlayListeners();\n } else {\n this.removeOverlayListeners();\n }\n }\n\n calculateDropdownPosition() {\n if (!this.isOpen || !this.buttonElement) return;\n\n const rect = this.buttonElement.nativeElement.getBoundingClientRect();\n const dropdownHeight = 240; // max-h-60 is 240px\n const windowHeight = window.innerHeight;\n const spaceBelow = windowHeight - rect.bottom;\n const spaceAbove = rect.top;\n\n let top = rect.bottom + 4;\n let bottom = 'auto';\n\n if (spaceBelow < dropdownHeight && spaceAbove > spaceBelow) {\n // Show above\n top = 'auto';\n bottom = `${windowHeight - rect.top + 4}px`;\n } else {\n top = `${rect.bottom + 4}px`;\n }\n\n this.dropdownStyles = {\n position: 'fixed',\n top: top === 'auto' ? 'auto' : top,\n bottom: bottom,\n left: `${rect.left}px`,\n width: `${rect.width}px`,\n zIndex: 10000\n };\n }\n\n private addOverlayListeners() {\n window.addEventListener('scroll', this.updatePosition, true);\n window.addEventListener('resize', this.updatePosition);\n }\n\n private removeOverlayListeners() {\n window.removeEventListener('scroll', this.updatePosition, true);\n window.removeEventListener('resize', this.updatePosition);\n }\n\n private updatePosition = () => {\n if (this.isOpen) {\n this.calculateDropdownPosition();\n }\n };\n\n selectOption(option: any) {\n const value = this.valueKey ? option[this.valueKey] : option;\n this.writeValue(value);\n this.isOpen = false;\n this.removeOverlayListeners();\n this.onChange(value);\n this.selectionChange.emit(value);\n }\n\n isSelected(option: any): boolean {\n const value = this.valueKey ? option[this.valueKey] : option;\n return value === this.selectedOption;\n }\n\n writeValue(value: any): void {\n this.selectedOption = value;\n this.updateSelectedLabel();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleClickOutside(event: Event) {\n if (!this.el.nativeElement.contains(event.target as Node)) {\n this.isOpen = false;\n this.removeOverlayListeners();\n }\n }\n\n ngOnDestroy() {\n this.removeOverlayListeners();\n }\n\n private updateSelectedLabel() {\n if (this.selectedOption === null || this.selectedOption === undefined) {\n this.selectedLabel = '';\n return;\n }\n\n if (this.options && this.options.length > 0) {\n const found = this.options.find((opt) => {\n const val = this.valueKey ? opt[this.valueKey] : opt;\n return val === this.selectedOption;\n });\n\n if (found) {\n this.selectedLabel = this.displayKey ? found[this.displayKey] : found;\n } else {\n this.selectedLabel = String(this.selectedOption);\n }\n } else {\n this.selectedLabel = String(this.selectedOption);\n }\n }\n}\n","@if (label) {\n<label class=\"block text-sm font-medium mb-1 text-slate-700 dark:text-slate-300\">\n {{ label }}\n</label>\n}\n\n<div class=\"relative\">\n <button #buttonElement type=\"button\" (click)=\"toggleDropdown()\" [disabled]=\"disabled\"\n class=\"relative w-full h-36 pl-16 pr-32 text-left bg-white dark:bg-slate-800 border border-slate-300 dark:border-slate-700 rounded-lg shadow-sm cursor-pointer focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 text-sm transition-all duration-200\"\n [ngClass]=\"{'opacity-50 cursor-not-allowed': disabled}\">\n <span class=\"block truncate\">\n {{ selectedLabel || placeholder }}\n </span>\n <span class=\"absolute inset-y-0 right-0 flex items-center pr-16 pointer-events-none\">\n <base-icon name=\"chevron-down\" class=\"w-16 h-16 stroke-slate-500 transition-transform duration-200\"\n [class.rotate-180]=\"isOpen\"></base-icon>\n </span>\n </button>\n\n @if (isOpen) {\n <div [ngStyle]=\"dropdownStyles\"\n class=\"fixed z-50 bg-white dark:bg-slate-800 border border-slate-300 dark:border-slate-700 rounded-lg shadow-lg max-h-60 overflow-auto focus:outline-none\">\n <ul class=\"py-1 text-sm\">\n @for (option of options; track (valueKey ? option[valueKey] : option)) {\n <li (click)=\"selectOption(option)\"\n class=\"relative cursor-pointer select-none py-8 px-16 hover:bg-slate-100 dark:hover:bg-slate-700 transition-colors duration-150\"\n [ngClass]=\"{\n 'bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400': isSelected(option)\n }\">\n <span class=\"block truncate\" [class.font-semibold]=\"isSelected(option)\">\n {{ displayKey ? option[displayKey] : option }}\n </span>\n\n @if (isSelected(option)) {\n <span class=\"absolute inset-y-0 right-0 flex items-center pr-3 text-blue-600\">\n <base-icon name=\"check\" class=\"w-4 h-4 stroke-current\"></base-icon>\n </span>\n }\n </li>\n }\n @if (options.length === 0) {\n <li class=\"py-2 px-4 text-slate-500 italic text-xs\">No options available</li>\n }\n </ul>\n </div>\n }\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\nimport { IconButtonDirective } from '../../directives/button/base-icon-button.directive';\n\nexport interface CalendarDate {\n date: Date;\n isToday: boolean;\n isCurrentMonth: boolean;\n isSelected?: boolean;\n isInRange?: boolean;\n isRangeStart?: boolean;\n isRangeEnd?: boolean;\n}\n\n@Component({\n selector: 'base-calendar',\n standalone: true,\n imports: [CommonModule, IconModule, IconButtonDirective],\n templateUrl: './calendar.component.html',\n host: {\n class: 'block w-full max-w-[320px] bg-white dark:bg-slate-900 rounded-xl shadow-sm border border-slate-200 dark:border-slate-700 p-16',\n },\n})\nexport class CalendarComponent implements OnInit {\n @Input() mode: 'single' | 'range' = 'single';\n @Input() selectedDate: Date | null = null;\n @Input() rangeStart: Date | null = null;\n @Input() rangeEnd: Date | null = null;\n\n @Output() dateSelected = new EventEmitter<Date>();\n @Output() rangeSelected = new EventEmitter<{ start: Date | null; end: Date | null }>();\n\n viewDate: Date = new Date();\n days: CalendarDate[] = [];\n weekDays = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\n months = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'\n ];\n\n ngOnInit(): void {\n if (this.selectedDate) {\n this.viewDate = new Date(this.selectedDate);\n } else if (this.rangeStart) {\n this.viewDate = new Date(this.rangeStart);\n }\n this.generateCalendar();\n }\n\n private initialViewDateSet = false;\n\n generateCalendar(): void {\n if (!this.initialViewDateSet) {\n if (this.selectedDate) {\n this.viewDate = new Date(this.selectedDate);\n } else if (this.rangeStart) {\n this.viewDate = new Date(this.rangeStart);\n }\n this.initialViewDateSet = true;\n }\n\n const year = this.viewDate.getFullYear();\n const month = this.viewDate.getMonth();\n const firstDayOfMonth = new Date(year, month, 1);\n const lastDayOfMonth = new Date(year, month + 1, 0);\n \n const startDayOfWeek = firstDayOfMonth.getDay(); \n const prevMonthLastDay = new Date(year, month, 0).getDate();\n\n const days: CalendarDate[] = [];\n\n // Prev month days\n for (let i = startDayOfWeek - 1; i >= 0; i--) {\n const d = new Date(year, month - 1, prevMonthLastDay - i);\n days.push(this.createCalendarDate(d, false));\n }\n\n // Current month days\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const d = new Date(year, month, i);\n days.push(this.createCalendarDate(d, true));\n }\n\n // Next month days padding\n const totalCells = 42;\n const nextMonthDays = totalCells - days.length;\n for (let i = 1; i <= nextMonthDays; i++) {\n const d = new Date(year, month + 1, i);\n days.push(this.createCalendarDate(d, false));\n }\n\n this.days = days;\n }\n\n private createCalendarDate(date: Date, isCurrentMonth: boolean): CalendarDate {\n const today = new Date();\n const isToday = this.isSameDate(date, today);\n \n let isSelected = false;\n let isInRange = false;\n let isRangeStart = false;\n let isRangeEnd = false;\n\n if (this.mode === 'single' && this.selectedDate) {\n isSelected = this.isSameDate(date, this.selectedDate);\n } else if (this.mode === 'range') {\n if (this.rangeStart) {\n isRangeStart = this.isSameDate(date, this.rangeStart);\n }\n if (this.rangeEnd) {\n isRangeEnd = this.isSameDate(date, this.rangeEnd);\n }\n if (this.rangeStart && this.rangeEnd) {\n isInRange = date > this.rangeStart && date < this.rangeEnd;\n }\n }\n\n return {\n date,\n isToday,\n isCurrentMonth,\n isSelected,\n isInRange,\n isRangeStart,\n isRangeEnd\n };\n }\n\n private isSameDate(d1: Date, d2: Date): boolean {\n return d1.getFullYear() === d2.getFullYear() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getDate() === d2.getDate();\n }\n\n prevMonth(): void {\n this.viewDate = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth() - 1, 1);\n this.generateCalendar();\n }\n\n nextMonth(): void {\n this.viewDate = new Date(this.viewDate.getFullYear(), this.viewDate.getMonth() + 1, 1);\n this.generateCalendar();\n }\n\n selectDate(calDate: CalendarDate): void {\n const date = calDate.date;\n\n if (this.mode === 'single') {\n this.selectedDate = date;\n this.dateSelected.emit(date);\n } else {\n if (!this.rangeStart || (this.rangeStart && this.rangeEnd)) {\n this.rangeStart = date;\n this.rangeEnd = null;\n } else if (this.rangeStart && !this.rangeEnd) {\n if (date < this.rangeStart) {\n this.rangeEnd = this.rangeStart;\n this.rangeStart = date;\n } else {\n this.rangeEnd = date;\n }\n }\n this.rangeSelected.emit({ start: this.rangeStart, end: this.rangeEnd });\n }\n this.generateCalendar();\n }\n}\n","<div class=\"calendar-container\">\n <!-- Header -->\n <div class=\"flex items-center justify-between mb-16 px-8\">\n <h3 class=\"text-sm font-semibold text-slate-900 dark:text-white m-0\">\n {{ months[viewDate.getMonth()] }} {{ viewDate.getFullYear() }}\n </h3>\n <div class=\"flex gap-4\">\n <button base-icon-button color=\"transparent\" size=\"sm\" (click)=\"prevMonth()\" title=\"Previous month\">\n <base-icon name=\"chevron-left\" class=\"w-16 h-16 stroke-slate-500 hover:stroke-blue-500\"></base-icon>\n </button>\n <button base-icon-button color=\"transparent\" size=\"sm\" (click)=\"nextMonth()\" title=\"Next month\">\n <base-icon name=\"chevron-right\" class=\"w-16 h-16 stroke-slate-500 hover:stroke-blue-500\"></base-icon>\n </button>\n </div>\n </div>\n\n <!-- Grid -->\n <div class=\"grid grid-cols-7 gap-4\">\n <!-- Weekdays -->\n @for (day of weekDays; track day) {\n <div\n class=\"h-32 flex items-center justify-center text-[10px] uppercase font-bold text-slate-400 dark:text-slate-500\">\n {{ day }}\n </div>\n }\n\n <!-- Days -->\n @for (calDate of days; track calDate.date.getTime()) {\n <div (click)=\"selectDate(calDate)\" class=\"h-40 flex items-center justify-center cursor-pointer relative group\"\n [ngClass]=\"{\n 'text-slate-900 dark:text-slate-200': calDate.isCurrentMonth,\n 'text-slate-300 dark:text-slate-600': !calDate.isCurrentMonth,\n 'bg-blue-50 dark:bg-blue-900/40': calDate.isInRange\n }\">\n\n <!-- Range Background -->\n @if (calDate.isRangeStart) {\n <div class=\"absolute left-1/2 right-0 top-0 bottom-0 bg-blue-50 dark:bg-blue-900/40 z-[0]\"></div>\n }\n @if (calDate.isRangeEnd) {\n <div class=\"absolute left-0 right-1/2 top-0 bottom-0 bg-blue-50 dark:bg-blue-900/40 z-[0]\"></div>\n }\n\n <span\n class=\"w-32 h-32 flex items-center justify-center rounded-full text-xs transition-colors duration-200 z-[10]\"\n [ngClass]=\"{\n 'bg-blue-600 text-white font-bold': calDate.isSelected || calDate.isRangeStart || calDate.isRangeEnd,\n 'border border-blue-500 text-blue-600 font-bold': calDate.isToday && !calDate.isSelected && !calDate.isRangeStart && !calDate.isRangeEnd,\n 'hover:bg-slate-100 dark:hover:bg-slate-800': calDate.isCurrentMonth && !calDate.isSelected && !calDate.isRangeStart && !calDate.isRangeEnd\n }\">\n {{ calDate.date.getDate() }}\n </span>\n </div>\n }\n </div>\n</div>","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[base-addon-end]',\n standalone: true,\n host: {\n class: 'w-20 h-20 flex items-center justify-center mr-16 shrink-0',\n },\n})\nexport class BaseAddonEndDirective implements OnInit {\n private el = inject(ElementRef);\n\n ngOnInit() {\n // Basic logic if needed\n }\n}\n","import { Component, ElementRef, EventEmitter, forwardRef, inject, Input, Output, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { Overlay, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { CalendarComponent } from '../calendar/calendar.component';\nimport { IconModule } from '../icon/icon.module';\nimport { InputGroupComponent } from '../input-group/input-group.component';\nimport { BaseInputDirective } from '../../directives/input-group/base-input.directive';\nimport { BaseAddonEndDirective } from '../../directives/input-group/base-addon-end.directive';\nimport { LabelComponent } from '../input-group/label/label.component';\n\n\n@Component({\n selector: 'base-datepicker',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PortalModule,\n IconModule,\n InputGroupComponent,\n LabelComponent,\n BaseInputDirective,\n BaseAddonEndDirective,\n ],\n templateUrl: './datepicker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true,\n },\n ],\n})\nexport class DatepickerComponent implements ControlValueAccessor {\n @Input() placeholder = 'Select date';\n @Input() label = '';\n @Input() disabled = false;\n \n @ViewChild('inputContainer', { read: ElementRef }) inputContainer!: ElementRef;\n\n value: Date | null = null;\n isOpen = false;\n private overlayRef: OverlayRef | null = null;\n private overlay = inject(Overlay);\n\n private onChange: (date: Date | null) => void = () => {};\n private onTouched: () => void = () => {};\n\n toggleCalendar() {\n if (this.disabled) return;\n this.isOpen ? this.closeCalendar() : this.openCalendar();\n }\n\n openCalendar() {\n const strategy = this.overlay.position()\n .flexibleConnectedTo(this.inputContainer)\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 8 }\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n hasBackdrop: true,\n backdropClass: 'bg-transparent',\n scrollStrategy: this.overlay.scrollStrategies.reposition()\n });\n\n const calendarPortal = new ComponentPortal(CalendarComponent);\n const calendarRef = this.overlayRef.attach(calendarPortal);\n \n calendarRef.instance.selectedDate = this.value;\n calendarRef.instance.mode = 'single';\n calendarRef.instance.generateCalendar();\n \n calendarRef.instance.dateSelected.subscribe((date: Date) => {\n this.selectDate(date);\n this.closeCalendar();\n });\n\n this.overlayRef.backdropClick().subscribe(() => this.closeCalendar());\n this.isOpen = true;\n }\n\n closeCalendar() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n this.isOpen = false;\n }\n\n selectDate(date: Date) {\n this.value = date;\n this.onChange(date);\n this.onTouched();\n }\n\n writeValue(value: any): void {\n if (value instanceof Date) {\n this.value = value;\n } else if (typeof value === 'string') {\n this.value = new Date(value);\n } else {\n this.value = null;\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n get formattedDate(): string {\n return this.value ? this.value.toLocaleDateString() : '';\n }\n}\n","<div #inputContainer class=\"relative\">\n <base-input-group>\n @if (label) {\n <base-label>{{ label }}</base-label>\n }\n <input base-input type=\"text\" [placeholder]=\"placeholder\" [value]=\"formattedDate\" [disabled]=\"disabled\"\n (click)=\"toggleCalendar()\"\n class=\"cursor-pointer !bg-transparent !border-transparent focus:!border-transparent focus:!ring-transparent focus:!ring-offset-transparent focus:outline-none\" />\n <div class=\"cursor-pointer\" base-addon-end class=\"w-20 h-20 group cursor-pointer block\"\n (click)=\"toggleCalendar()\">\n <base-icon name=\"calendar\"\n class=\"w-20 h-20 stroke-slate-500 transition-colors group-hover:stroke-blue-500\"></base-icon>\n </div>\n </base-input-group>\n</div>","import { Component, ElementRef, forwardRef, inject, Input, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { Overlay, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, PortalModule } from '@angular/cdk/portal';\nimport { CalendarComponent } from '../calendar/calendar.component';\nimport { IconModule } from '../icon/icon.module';\nimport { InputGroupComponent } from '../input-group/input-group.component';\nimport { BaseInputDirective } from '../../directives/input-group/base-input.directive';\nimport { BaseAddonEndDirective } from '../../directives/input-group/base-addon-end.directive';\nimport { LabelComponent } from '../input-group/label/label.component';\n\n\nexport interface DateRange {\n start: Date | null;\n end: Date | null;\n}\n\n@Component({\n selector: 'base-date-range-picker',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n PortalModule,\n IconModule,\n InputGroupComponent,\n LabelComponent,\n BaseInputDirective,\n BaseAddonEndDirective,\n ],\n templateUrl: './date-range-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateRangePickerComponent),\n multi: true,\n },\n ],\n})\nexport class DateRangePickerComponent implements ControlValueAccessor {\n @Input() placeholder = 'Select range';\n @Input() label = '';\n @Input() disabled = false;\n \n @ViewChild('inputContainer', { read: ElementRef }) inputContainer!: ElementRef;\n\n value: DateRange = { start: null, end: null };\n isOpen = false;\n private overlayRef: OverlayRef | null = null;\n private overlay = inject(Overlay);\n\n private onChange: (range: DateRange) => void = () => {};\n private onTouched: () => void = () => {};\n\n toggleCalendar() {\n if (this.disabled) return;\n this.isOpen ? this.closeCalendar() : this.openCalendar();\n }\n\n openCalendar() {\n const strategy = this.overlay.position()\n .flexibleConnectedTo(this.inputContainer)\n .withPositions([\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 8 }\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy: strategy,\n hasBackdrop: true,\n backdropClass: 'bg-transparent',\n scrollStrategy: this.overlay.scrollStrategies.reposition()\n });\n\n const calendarPortal = new ComponentPortal(CalendarComponent);\n const calendarRef = this.overlayRef.attach(calendarPortal);\n \n calendarRef.instance.rangeStart = this.value.start;\n calendarRef.instance.rangeEnd = this.value.end;\n calendarRef.instance.mode = 'range';\n calendarRef.instance.generateCalendar();\n \n calendarRef.instance.rangeSelected.subscribe((range: DateRange) => {\n this.selectRange(range);\n if (range.start && range.end) {\n this.closeCalendar();\n }\n });\n\n this.overlayRef.backdropClick().subscribe(() => this.closeCalendar());\n this.isOpen = true;\n }\n\n closeCalendar() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n this.isOpen = false;\n }\n\n selectRange(range: DateRange) {\n this.value = range;\n this.onChange(range);\n this.onTouched();\n }\n\n writeValue(value: any): void {\n if (value && (value.start || value.end)) {\n this.value = {\n start: value.start ? new Date(value.start) : null,\n end: value.end ? new Date(value.end) : null\n };\n } else {\n this.value = { start: null, end: null };\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n get formattedRange(): string {\n const start = this.value.start ? this.value.start.toLocaleDateString() : '';\n const end = this.value.end ? this.value.end.toLocaleDateString() : '';\n if (start && end) return `${start} - ${end}`;\n if (start) return `${start} - ...`;\n return '';\n }\n}\n","<div #inputContainer class=\"relative\">\n <base-input-group>\n @if (label) {\n <base-label>{{ label }}</base-label>\n }\n <input base-input type=\"text\" [placeholder]=\"placeholder\" [value]=\"formattedRange\" [disabled]=\"disabled\"\n (click)=\"toggleCalendar()\" class=\"cursor-pointer !bg-transparent \" />\n <div base-addon-end (click)=\"toggleCalendar()\" class=\"cursor-pointer group\">\n <base-icon name=\"calendar\"\n class=\"w-20 h-20 stroke-slate-500 hover:stroke-blue-500 transition-colors group-hover:stroke-blue-500\"></base-icon>\n </div>\n </base-input-group>\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\n\nexport interface TreeNode {\n label: string;\n icon?: string;\n children?: TreeNode[];\n expanded?: boolean;\n selected?: boolean;\n data?: any;\n}\n\n@Component({\n selector: 'base-tree',\n standalone: true,\n imports: [CommonModule, IconModule],\n templateUrl: './tree.component.html',\n})\nexport class TreeComponent {\n @Input() nodes: TreeNode[] = [];\n selectedNode: TreeNode | null = null;\n @Output() nodeClick = new EventEmitter<TreeNode>();\n @Output() nodeExpand = new EventEmitter<TreeNode>();\n @Output() nodeCollapse = new EventEmitter<TreeNode>();\n\n toggleNode(node: TreeNode, event: MouseEvent): void {\n event.stopPropagation();\n node.expanded = !node.expanded;\n if (node.expanded) {\n this.nodeExpand.emit(node);\n } else {\n this.nodeCollapse.emit(node);\n }\n }\n\n onNodeClick(node: TreeNode): void {\n this.selectedNode = node;\n this.nodeClick.emit(node);\n }\n}\n","<div class=\"base-tree select-none\">\n <ng-container *ngTemplateOutlet=\"treeList; context: { $implicit: nodes, level: 0 }\"></ng-container>\n</div>\n\n<ng-template #treeList let-list let-level=\"level\">\n <ul class=\"list-none p-0 m-0\">\n @for (node of list; track node.label) {\n <li class=\"flex flex-col\">\n <div class=\"flex items-center py-8 px-8 rounded-lg cursor-pointer transition-all duration-200 group\"\n [ngClass]=\"{\n 'hover:bg-slate-100 dark:hover:bg-slate-800/50': node !== selectedNode && !node.selected,\n 'bg-blue-50 dark:bg-blue-900/40 text-blue-600 dark:text-blue-400': node === selectedNode || node.selected\n }\" [style.padding-left.px]=\"level * 20 + 8\" (click)=\"onNodeClick(node)\">\n\n @if (node.children && node.children.length > 0) {\n <div class=\"w-6 h-6 flex items-center justify-center mr-1 shrink-0\" (click)=\"toggleNode(node, $event)\">\n <base-icon name=\"chevron-right\" class=\"w-4 h-4 transition-all duration-200\" [ngClass]=\"{ \n 'rotate-90': node.expanded,\n 'stroke-blue-500': node === selectedNode || node.selected,\n 'stroke-slate-400 group-hover:stroke-blue-500': node !== selectedNode && !node.selected\n }\">\n </base-icon>\n </div>\n } @else {\n <div class=\"w-6 h-6 mr-1 shrink-0\"></div>\n }\n\n <base-icon [name]=\"node.icon || (node.children && node.children.length > 0 ? 'folder' : 'file')\"\n class=\"w-4 h-4 mr-2 shrink-0\"\n [ngClass]=\"(node.expanded || node === selectedNode || node.selected) ? 'stroke-blue-500' : 'stroke-slate-500'\">\n </base-icon>\n\n <span class=\"text-sm font-medium truncate\"\n [ngClass]=\"(node === selectedNode || node.selected) ? 'text-blue-600 dark:text-blue-400' : 'text-slate-700 dark:text-slate-200'\">\n {{ node.label }}\n </span>\n </div>\n\n @if (node.children && node.children.length > 0 && node.expanded) {\n <div class=\"overflow-hidden animate-in fade-in slide-in-from-top-1 duration-200\">\n <ng-container\n *ngTemplateOutlet=\"treeList; context: { $implicit: node.children, level: level + 1 }\"></ng-container>\n </div>\n }\n </li>\n }\n </ul>\n</ng-template>","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-step',\n standalone: true,\n imports: [CommonModule],\n template: `\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n})\nexport class StepComponent {\n @Input() label = '';\n @Input() icon = '';\n @Input() description = '';\n \n @ViewChild('content', { static: true }) content!: TemplateRef<any>;\n \n isActive = false;\n isCompleted = false;\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[base-button]',\n standalone: true,\n})\nexport class BaseButtonDirective implements OnInit {\n @Input() color = 'default';\n @Input() size = 'default';\n @Input() width?: string;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n const button = this.el.nativeElement as HTMLElement;\n const icon = button.querySelector('base-icon');\n\n this.renderer.addClass(button, 'flex');\n this.renderer.addClass(button, 'items-center');\n this.renderer.addClass(button, 'gap-8');\n this.renderer.addClass(button, 'relative');\n this.renderer.addClass(button, 'rounded-lg');\n this.renderer.addClass(button, 'text-center');\n this.renderer.addClass(button, 'justify-center');\n this.renderer.addClass(button, 'tracking-wide');\n this.renderer.addClass(button, 'transition-all');\n this.renderer.addClass(button, 'duration-200');\n\n if (this.width) {\n this.renderer.setStyle(button, 'width', this.width);\n }\n\n this.applyColorStyles(button, icon);\n this.applySizeStyles(button, icon);\n }\n\n private applyColorStyles(button: HTMLElement, icon: Element | null) {\n const colorMap: Record<string, string[]> = {\n primary: [\n 'text-white',\n 'bg-blue-500',\n 'hover:bg-blue-600',\n 'active:bg-blue-700',\n 'disabled:bg-blue-300',\n ],\n success: [\n 'text-white',\n 'bg-green-500',\n 'hover:bg-green-600',\n 'active:bg-green-700',\n 'disabled:bg-green-300',\n ],\n danger: [\n 'text-white',\n 'bg-red-500',\n 'hover:bg-red-600',\n 'active:bg-red-700',\n 'disabled:bg-red-300',\n ],\n warning: [\n 'text-white',\n 'bg-orange-500',\n 'hover:bg-orange-600',\n 'active:bg-orange-700',\n 'disabled:bg-orange-300',\n ],\n accent: [\n 'text-white',\n 'bg-purple-500',\n 'hover:bg-purple-600',\n 'active:bg-purple-700',\n 'disabled:bg-purple-300',\n ],\n white: [\n 'text-slate-900',\n 'bg-white',\n 'hover:bg-slate-50',\n 'active:bg-slate-100',\n 'disabled:opacity-50',\n ],\n black: [\n 'text-white',\n 'bg-slate-900',\n 'dark:bg-black',\n 'hover:bg-slate-800',\n 'dark:hover:bg-slate-900',\n 'active:bg-slate-700',\n 'dark:active:bg-slate-800',\n 'disabled:opacity-50',\n ],\n default: [\n 'text-slate-800',\n 'dark:text-slate-200',\n 'bg-slate-200',\n 'dark:bg-slate-800',\n 'hover:bg-slate-300',\n 'dark:hover:bg-slate-700',\n 'active:bg-slate-400',\n 'dark:active:bg-slate-600',\n 'disabled:opacity-50',\n ],\n };\n\n const classes = colorMap[this.color] || colorMap['default'];\n classes.forEach((cls) => this.renderer.addClass(button, cls));\n\n if (icon) {\n if (this.color === 'default') {\n this.renderer.addClass(icon, 'stroke-slate-800');\n this.renderer.addClass(icon, 'dark:stroke-slate-200');\n } else if (this.color === 'white') {\n this.renderer.addClass(icon, 'stroke-slate-900');\n } else {\n this.renderer.addClass(icon, 'stroke-white');\n }\n }\n\n this.renderer.addClass(button, 'disabled:cursor-not-allowed');\n }\n\n private applySizeStyles(button: HTMLElement, icon: Element | null) {\n const sizeMap: Record<string, string[]> = {\n sm: ['h-28', 'text-xs', 'px-16'],\n lg: ['h-40', 'text-base', 'px-28'],\n xl: ['h-44', 'text-base', 'px-32'],\n xxl: ['h-56', 'text-lg', 'px-40'],\n default: ['h-36', 'text-sm', 'px-24'],\n };\n\n const iconSizeMap: Record<string, string[]> = {\n sm: ['w-12', 'h-12'],\n lg: ['w-24', 'h-24'],\n xl: ['w-24', 'h-24'],\n xxl: ['w-28', 'h-28'],\n default: ['w-20', 'h-20'],\n };\n\n const classes = sizeMap[this.size] || sizeMap['default'];\n classes.forEach((cls) => this.renderer.addClass(button, cls));\n\n if (icon) {\n const iconClasses = iconSizeMap[this.size] || iconSizeMap['default'];\n iconClasses.forEach((cls) => this.renderer.addClass(icon, cls));\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[base-stroked-button]',\n standalone: true,\n})\nexport class StrokedButtonDirective implements OnInit {\n @Input() color = 'default';\n @Input() size = 'default';\n @Input() width?: string;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n const button = this.el.nativeElement as HTMLElement;\n const icon = button.querySelector('base-icon');\n\n this.renderer.addClass(button, 'flex');\n this.renderer.addClass(button, 'items-center');\n this.renderer.addClass(button, 'gap-8');\n this.renderer.addClass(button, 'relative');\n this.renderer.addClass(button, 'rounded-lg');\n this.renderer.addClass(button, 'text-center');\n this.renderer.addClass(button, 'justify-center');\n this.renderer.addClass(button, 'tracking-wide');\n this.renderer.addClass(button, 'border');\n this.renderer.addClass(button, 'transition-all');\n this.renderer.addClass(button, 'duration-200');\n\n if (this.width) {\n this.renderer.setStyle(button, 'width', this.width);\n }\n\n this.applyColorStyles(button, icon);\n this.applySizeStyles(button, icon);\n }\n\n private applyColorStyles(button: HTMLElement, icon: Element | null) {\n const colorMap: Record<string, string[]> = {\n primary: [\n 'text-blue-500',\n 'border-blue-500',\n 'hover:bg-blue-50',\n 'hover:text-blue-600',\n 'hover:border-blue-600',\n 'active:bg-blue-100',\n 'disabled:opacity-50',\n ],\n success: [\n 'text-green-500',\n 'border-green-500',\n 'hover:bg-green-50',\n 'hover:text-green-600',\n 'hover:border-green-600',\n 'active:bg-green-100',\n 'disabled:opacity-50',\n ],\n danger: [\n 'text-red-500',\n 'border-red-500',\n 'hover:bg-red-50',\n 'hover:text-red-600',\n 'hover:border-red-600',\n 'active:bg-red-100',\n 'disabled:opacity-50',\n ],\n warning: [\n 'text-orange-500',\n 'border-orange-500',\n 'hover:bg-orange-50',\n 'hover:text-orange-600',\n 'hover:border-orange-600',\n 'active:bg-orange-100',\n 'disabled:opacity-50',\n ],\n accent: [\n 'text-purple-500',\n 'border-purple-500',\n 'hover:bg-purple-50',\n 'hover:text-purple-600',\n 'hover:border-purple-600',\n 'active:bg-purple-100',\n 'disabled:opacity-50',\n ],\n white: [\n 'text-white',\n 'border-white',\n 'hover:bg-white/10',\n 'hover:text-white',\n 'hover:border-white',\n 'active:bg-white/20',\n 'disabled:opacity-50',\n ],\n black: [\n 'text-slate-900',\n 'dark:text-white',\n 'border-slate-900',\n 'dark:border-white',\n 'hover:bg-slate-900/10',\n 'dark:hover:bg-white/10',\n 'hover:text-slate-900',\n 'dark:hover:text-white',\n 'hover:border-slate-900',\n 'dark:hover:border-white',\n 'active:bg-slate-900/20',\n 'dark:active:bg-white/20',\n 'disabled:opacity-50',\n ],\n default: [\n 'text-slate-700',\n 'dark:text-slate-200',\n 'border-slate-300',\n 'dark:border-slate-600',\n 'hover:bg-slate-50',\n 'dark:hover:bg-slate-800',\n 'active:bg-slate-100',\n 'dark:active:bg-slate-900',\n 'disabled:opacity-50',\n ],\n };\n\n const classes = colorMap[this.color] || colorMap['default'];\n classes.forEach((cls) => this.renderer.addClass(button, cls));\n\n if (icon) {\n const strokeMap: Record<string, string[]> = {\n primary: ['stroke-blue-500'],\n success: ['stroke-green-500'],\n danger: ['stroke-red-500'],\n warning: ['stroke-orange-500'],\n accent: ['stroke-purple-500'],\n white: ['stroke-white'],\n black: ['stroke-slate-900', 'dark:stroke-white'],\n default: ['stroke-slate-700', 'dark:stroke-slate-200'],\n };\n \n const iconClasses = strokeMap[this.color] || strokeMap['default'];\n iconClasses.forEach(cls => this.renderer.addClass(icon, cls));\n }\n\n this.renderer.addClass(button, 'disabled:cursor-not-allowed');\n }\n\n private applySizeStyles(button: HTMLElement, icon: Element | null) {\n const sizeMap: Record<string, string[]> = {\n sm: ['h-28', 'text-xs', 'px-16'],\n lg: ['h-40', 'text-base', 'px-28'],\n xl: ['h-44', 'text-base', 'px-32'],\n xxl: ['h-56', 'text-lg', 'px-40'],\n default: ['h-36', 'text-sm', 'px-24'],\n };\n\n const iconSizeMap: Record<string, string[]> = {\n sm: ['w-12', 'h-12'],\n lg: ['w-24', 'h-24'],\n xl: ['w-24', 'h-24'],\n xxl: ['w-28', 'h-28'],\n default: ['w-20', 'h-20'],\n };\n\n const classes = sizeMap[this.size] || sizeMap['default'];\n classes.forEach((cls) => this.renderer.addClass(button, cls));\n\n if (icon) {\n const iconClasses = iconSizeMap[this.size] || iconSizeMap['default'];\n iconClasses.forEach((cls) => this.renderer.addClass(icon, cls));\n }\n }\n}\n","import { Component, ContentChildren, QueryList, Input, Output, EventEmitter, AfterContentInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepComponent } from './step/step.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { BaseButtonDirective } from '../../directives/button/base-button.directive';\nimport { StrokedButtonDirective } from '../../directives/button/base-stroked-button.directive';\n\n@Component({\n selector: 'base-stepper',\n standalone: true,\n imports: [CommonModule, IconComponent, BaseButtonDirective, StrokedButtonDirective],\n templateUrl: './stepper.component.html',\n})\nexport class StepperComponent implements AfterContentInit {\n @ContentChildren(StepComponent) steps!: QueryList<StepComponent>;\n \n @Input() activeStepIndex = 0;\n @Input() linear = false;\n \n @Output() stepChange = new EventEmitter<number>();\n\n ngAfterContentInit() {\n this.updateSteps();\n }\n\n next() {\n if (this.activeStepIndex < this.steps.length - 1) {\n this.steps.toArray()[this.activeStepIndex].isCompleted = true;\n this.activeStepIndex++;\n this.updateSteps();\n this.stepChange.emit(this.activeStepIndex);\n }\n }\n\n previous() {\n if (this.activeStepIndex > 0) {\n this.activeStepIndex--;\n this.updateSteps();\n this.stepChange.emit(this.activeStepIndex);\n }\n }\n\n goToStep(index: number) {\n if (this.linear) {\n // In linear mode, can only go to already completed steps or the next one\n const stepsArray = this.steps.toArray();\n if (index <= this.activeStepIndex || (index === this.activeStepIndex + 1 && stepsArray[this.activeStepIndex].isCompleted)) {\n this.activeStepIndex = index;\n this.updateSteps();\n this.stepChange.emit(this.activeStepIndex);\n }\n } else {\n this.activeStepIndex = index;\n this.updateSteps();\n this.stepChange.emit(this.activeStepIndex);\n }\n }\n\n private updateSteps() {\n if (this.steps) {\n this.steps.forEach((step, index) => {\n step.isActive = index === this.activeStepIndex;\n if (index < this.activeStepIndex) {\n step.isCompleted = true;\n }\n });\n }\n }\n}\n","<div class=\"base-stepper w-full text-slate-700 dark:text-slate-300\">\n <!-- Stepper Header -->\n <div class=\"flex items-center w-full mb-32 overflow-x-auto no-scrollbar py-8 px-4\">\n @for (step of steps; track step; let i = $index, last = $last) {\n <div class=\"flex items-center cursor-pointer group shrink-0\" (click)=\"goToStep(i)\">\n\n <!-- Step Indicator -->\n <div class=\"relative flex items-center justify-center w-40 h-40 rounded-full border-2 transition-all duration-300 mr-12\"\n [ngClass]=\"{\n 'bg-blue-600 border-blue-600 text-white shadow-lg shadow-blue-500/30': step.isActive,\n 'bg-green-500 border-green-500 text-white': step.isCompleted && !step.isActive,\n 'bg-white dark:bg-slate-800 border-slate-300 dark:border-slate-700 text-slate-400': !step.isActive && !step.isCompleted\n }\">\n\n @if (step.isCompleted && !step.isActive) {\n <base-icon name=\"check\" class=\"w-20 h-20 stroke-white\"></base-icon>\n }\n\n @if (step.icon && (!step.isCompleted || step.isActive)) {\n <base-icon [name]=\"step.icon\" class=\"w-20 h-20\"\n [ngClass]=\"step.isActive ? 'stroke-white' : 'stroke-slate-400'\">\n </base-icon>\n }\n\n @if (!step.icon && (!step.isCompleted || step.isActive)) {\n <span class=\"text-sm font-bold\">{{ i + 1 }}</span>\n }\n </div>\n\n <!-- Step Label -->\n <div class=\"flex flex-col mr-24\">\n <span class=\"text-sm font-semibold whitespace-nowrap transition-colors\"\n [ngClass]=\"step.isActive ? 'text-slate-900 dark:text-white' : 'text-slate-500 dark:text-slate-400'\">\n {{ step.label }}\n </span>\n @if (step.description) {\n <span class=\"text-xs text-slate-400 dark:text-slate-500 whitespace-nowrap\">\n {{ step.description }}\n </span>\n }\n </div>\n\n <!-- Connector Line -->\n @if (!last) {\n <div class=\"h-1 w-48 mx-12 rounded-full hidden md:block\"\n [ngClass]=\"step.isCompleted ? 'bg-green-500' : 'bg-slate-100 dark:bg-slate-800'\">\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Stepper Content -->\n <div\n class=\"base-stepper-content bg-white dark:bg-slate-800/50 rounded-2xl border border-slate-200 dark:border-slate-800 p-24 md:p-32 shadow-sm min-h-[200px]\">\n @for (step of steps; track step; let i = $index) {\n @if (step.isActive) {\n <div class=\"animate-in fade-in slide-in-from-bottom-2 duration-300\">\n <ng-container [ngTemplateOutlet]=\"step.content\"></ng-container>\n </div>\n }\n }\n </div>\n\n <!-- Internal Navigation Buttons -->\n <div class=\"flex justify-between items-center mt-24\">\n <button (click)=\"previous()\" [disabled]=\"activeStepIndex === 0\" base-stroked-button color=\"primary\">\n <base-icon name=\"arrow-left\" class=\"mr-8 w-16 h-16\"></base-icon>\n Back\n </button>\n\n <button (click)=\"next()\" [disabled]=\"activeStepIndex === steps.length - 1\" base-button color=\"primary\">\n Next Step\n <base-icon name=\"arrow-right\" class=\"ml-8 w-16 h-16\"></base-icon>\n </button>\n </div>\n</div>","import { Component } from '@angular/core';\n\n@Component({\n selector: 'base-star-rating',\n standalone: true,\n templateUrl: './star-rating.component.html',\n})\nexport class StarRatingComponent {}\n","<div class=\"flex items-center gap-8\">\n <ng-content></ng-content>\n</div>\n","import { CommonModule, NgClass } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'base-star',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './star.component.html'\n})\nexport class StarComponent {\n @Input() fill = 0;\n @Input() editable = false;\n @Output() ratingChanged = new EventEmitter<number>();\n ratings = [\n { val: 1, percentage: '0%' },\n { val: 2, percentage: '20%' },\n { val: 3, percentage: '40%' },\n { val: 4, percentage: '60%' },\n { val: 5, percentage: '80%' },\n ];\n\n changeRating(val: number): void {\n if (this.editable) {\n this.fill = val;\n this.ratingChanged.emit(val);\n }\n }\n}\n","<svg\n viewBox=\"0 0 1000 200\"\n class=\"h-20 w-auto\"\n [ngClass]=\"{ 'cursor-pointer': editable }\"\n >\n <defs>\n <polygon\n id=\"star\"\n points=\"100,0 131,66 200,76 150,128 162,200 100,166 38,200 50,128 0,76 69,66 \"\n />\n\n <clipPath id=\"stars\">\n @for (rating of ratings; track rating) {\n <use\n xlink:href=\"#star\"\n [attr.x]=\"rating.percentage\"\n />\n }\n </clipPath>\n </defs>\n <rect class=\"fill-slate-300 w-full h-full\" clip-path=\"url(#stars)\"></rect>\n\n <rect\n class=\"h-full fill-[#FFB800]\"\n [style.width]=\"(fill * 2*10 )+ '%'\"\n clip-path=\"url(#stars)\"\n #startRect\n ></rect>\n @for (rating of ratings; track rating) {\n <rect\n class=\"clickable-star\"\n [attr.x]=\"rating.percentage\"\n y=\"0\"\n (click)=\"changeRating(rating.val)\"\n width=\"20%\"\n height=\"100%\"\n fill=\"transparent\"\n />\n }\n</svg>\n","import { Component, Input, Output, EventEmitter, OnInit, ViewChild, ElementRef, AfterViewInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconModule } from '../icon/icon.module';\nimport { IconButtonDirective } from '../../directives/button/base-icon-button.directive';\nimport { animate, style, transition, trigger } from '@angular/animations';\n\nexport interface GalleryItem {\n id?: string | number;\n src: string;\n thumbSrc?: string;\n alt?: string;\n type?: 'image' | 'video';\n}\n\n@Component({\n selector: 'base-product-gallery',\n standalone: true,\n imports: [CommonModule, IconModule, IconButtonDirective],\n templateUrl: './product-gallery.component.html',\n animations: [\n trigger('fade', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('300ms ease-in-out', style({ opacity: 1 }))\n ])\n ])\n ],\n host: {\n 'class': 'block w-full h-full'\n }\n})\nexport class ProductGalleryComponent implements OnInit, AfterViewInit, OnDestroy {\n @Input() items: GalleryItem[] = [];\n @Input() thumbnailsPosition: 'left' | 'right' | 'top' | 'bottom' = 'left';\n @Input() showArrows: boolean = true;\n @Input() objectFit: 'cover' | 'contain' = 'cover';\n @Input() zoomOnClick: boolean = true;\n \n @Input() aspectRatio?: string = '16/9';\n @Input() mainViewWidth?: string = '100%';\n @Input() mainViewHeight?: string = 'auto';\n \n @ViewChild('thumbScrollContainer') thumbScrollContainer?: ElementRef<HTMLDivElement>;\n \n @Output() indexChange = new EventEmitter<number>();\n \n currentIndex = 0;\n isZooming = false;\n zoomX = 50;\n zoomY = 50;\n\n hasThumbOverflow = false;\n canScrollPrev = false;\n canScrollNext = true;\n private resizeObserver?: ResizeObserver;\n isMobile = false;\n\n // Swipe handling\n private touchStartX = 0;\n private touchEndX = 0;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n get thumbWrapperHeight(): string {\n if (!this.aspectRatio || this.aspectRatio === 'auto') return '138px'; // Legacy fallback (130px + 8px p-1 padding)\n const parts = this.aspectRatio.split('/');\n if (parts.length === 2) {\n const w = parseFloat(parts[0]);\n const h = parseFloat(parts[1]);\n if (!isNaN(w) && !isNaN(h) && w > 0) {\n // Thumbnail strictly constrained to 130px max-width, + 8px wrapper padding\n return `${(130 / w) * h + 8}px`;\n }\n }\n return '138px';\n }\n\n get activeItem(): GalleryItem | undefined {\n return this.items[this.currentIndex];\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit() {\n this.checkMobileView();\n if (typeof window !== 'undefined' && window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkMobileView();\n this.checkThumbOverflow();\n });\n if (this.thumbScrollContainer) {\n this.resizeObserver.observe(this.thumbScrollContainer.nativeElement);\n setTimeout(() => this.checkThumbOverflow(), 50);\n }\n }\n }\n\n ngOnDestroy() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n checkThumbOverflow() {\n if (!this.thumbScrollContainer) return;\n const el = this.thumbScrollContainer.nativeElement;\n // 2px buffer for border/rounding thresholds\n const overflows = el.scrollHeight > el.clientHeight + 2 || el.scrollWidth > el.clientWidth + 2;\n \n if (this.hasThumbOverflow !== overflows) {\n this.hasThumbOverflow = overflows;\n }\n this.updateScrollButtons();\n }\n\n updateScrollButtons() {\n if (!this.thumbScrollContainer || !this.hasThumbOverflow) {\n this.canScrollPrev = false;\n this.canScrollNext = false;\n this.cdr.detectChanges();\n return;\n }\n\n const el = this.thumbScrollContainer.nativeElement;\n const isHorizontal = this.thumbnailsPosition === 'top' || \n this.thumbnailsPosition === 'bottom' || \n (typeof window !== 'undefined' && window.innerWidth < 768);\n\n if (isHorizontal) {\n this.canScrollPrev = el.scrollLeft > 2;\n this.canScrollNext = el.scrollLeft + el.clientWidth < el.scrollWidth - 2;\n } else {\n this.canScrollPrev = el.scrollTop > 2;\n this.canScrollNext = el.scrollTop + el.clientHeight < el.scrollHeight - 2;\n }\n \n this.cdr.detectChanges();\n }\n\n private checkMobileView() {\n if (typeof window !== 'undefined') {\n const mobile = window.innerWidth < 768;\n if (this.isMobile !== mobile) {\n this.isMobile = mobile;\n this.cdr.detectChanges();\n }\n }\n }\n\n scrollThumbnails(direction: 1 | -1) {\n if (!this.thumbScrollContainer) return;\n const el = this.thumbScrollContainer.nativeElement;\n\n // Use absolute layout mapping rules to compute the scrolling axis cleanly\n const isHorizontal = this.thumbnailsPosition === 'top' || \n this.thumbnailsPosition === 'bottom' || \n (typeof window !== 'undefined' && window.innerWidth < 768);\n \n if (isHorizontal) {\n el.scrollBy({ left: direction * 150, behavior: 'smooth' });\n } else {\n el.scrollBy({ top: direction * 150, behavior: 'smooth' });\n }\n \n // Give smooth scroll a moment to process before strictly recalculating the final tracking status\n setTimeout(() => this.updateScrollButtons(), 400);\n }\n\n selectItem(index: number) {\n if (this.currentIndex !== index) {\n this.currentIndex = index;\n this.indexChange.emit(index);\n this.isZooming = false;\n this.scrollToActiveThumb();\n }\n }\n\n private scrollToActiveThumb() {\n if (!this.thumbScrollContainer || typeof document === 'undefined') return;\n \n // Defer to next cycle to allow DOM changes naturally\n setTimeout(() => {\n if (!this.thumbScrollContainer) return;\n const container = this.thumbScrollContainer.nativeElement;\n const buttons = container.querySelectorAll('.thumbnail-btn');\n \n if (buttons && buttons.length > this.currentIndex) {\n const activeBtn = buttons[this.currentIndex] as HTMLElement;\n const isHorizontal = this.thumbnailsPosition === 'top' || \n this.thumbnailsPosition === 'bottom' || \n (typeof window !== 'undefined' && window.innerWidth < 768);\n \n if (isHorizontal) {\n // Align centrally along horizontal strip\n const targetLeft = activeBtn.offsetLeft - (container.clientWidth / 2) + (activeBtn.clientWidth / 2);\n container.scrollTo({ left: targetLeft, behavior: 'smooth' });\n } else {\n // Align centrally along vertical layout\n const targetTop = activeBtn.offsetTop - (container.clientHeight / 2) + (activeBtn.clientHeight / 2);\n container.scrollTo({ top: targetTop, behavior: 'smooth' });\n }\n \n // Wait for tracking to settle\n setTimeout(() => this.updateScrollButtons(), 400);\n }\n });\n }\n\n next() {\n if (this.items.length === 0) return;\n this.selectItem((this.currentIndex + 1) % this.items.length);\n }\n\n prev() {\n if (this.items.length === 0) return;\n this.selectItem((this.currentIndex - 1 + this.items.length) % this.items.length);\n }\n\n onTouchStart(event: TouchEvent) {\n if (typeof window !== 'undefined' && window.innerWidth >= 768) return;\n if (this.isZooming) return;\n \n this.touchStartX = event.changedTouches[0].screenX;\n }\n\n onTouchEnd(event: TouchEvent) {\n if (typeof window !== 'undefined' && window.innerWidth >= 768) return;\n if (this.isZooming) return;\n \n this.touchEndX = event.changedTouches[0].screenX;\n \n const swipeThreshold = 50; \n const diff = this.touchStartX - this.touchEndX;\n \n if (Math.abs(diff) > swipeThreshold) {\n // Swiped left => next item, Swiped right => prev item\n diff > 0 ? this.next() : this.prev();\n }\n }\n\n onMouseMove(event: MouseEvent, element: HTMLElement) {\n if (!this.zoomOnClick || this.activeItem?.type === 'video' || !this.isZooming) return;\n \n const rect = element.getBoundingClientRect();\n const x = ((event.clientX - rect.left) / rect.width) * 100;\n const y = ((event.clientY - rect.top) / rect.height) * 100;\n \n this.zoomX = x;\n this.zoomY = y;\n }\n\n toggleZoom(event: MouseEvent, element: HTMLElement) {\n if (!this.zoomOnClick || this.activeItem?.type === 'video') return;\n \n this.isZooming = !this.isZooming;\n if (this.isZooming) {\n this.zoomX = ((event.clientX - element.getBoundingClientRect().left) / element.getBoundingClientRect().width) * 100;\n this.zoomY = ((event.clientY - element.getBoundingClientRect().top) / element.getBoundingClientRect().height) * 100;\n }\n }\n\n onMouseLeave() {\n if (this.zoomOnClick) {\n this.isZooming = false;\n }\n }\n}\n","<div\n class=\"product-gallery-container flex flex-col gap-2 sm:gap-4 w-full h-full bg-white dark:bg-slate-900 rounded-2xl overflow-hidden\"\n [ngClass]=\"{\n 'md:flex-col-reverse': thumbnailsPosition === 'bottom',\n 'md:flex-col': thumbnailsPosition === 'top',\n 'md:flex-row': thumbnailsPosition === 'left',\n 'md:flex-row-reverse': thumbnailsPosition === 'right'\n }\">\n\n <!-- Thumbnails -->\n @if (items.length > 1) {\n <div class=\"thumbnails-wrapper relative shrink-0 z-10 w-full h-[var(--thumb-h)] min-h-[var(--thumb-h)]\"\n [style.--thumb-h]=\"thumbWrapperHeight\" [ngClass]=\"{\n 'md:h-auto md:min-h-0 md:w-[130px] md:min-w-[130px]': thumbnailsPosition === 'left' || thumbnailsPosition === 'right'\n }\">\n\n <!-- Prev Button -->\n @if (hasThumbOverflow && canScrollPrev) {\n <button base-icon-button (click)=\"scrollThumbnails(-1)\" size=\"sm\" color=\"white\"\n class=\"!absolute z-[20] left-[16px] top-[50%] -translate-y-1/2\" [ngClass]=\"{\n 'md:top-[40px] md:left-[50%] md:-translate-x-1/2': thumbnailsPosition === 'left' || thumbnailsPosition === 'right'\n }\">\n <base-icon name=\"chevron-left\" class=\"w-16 h-16 sm:w-20 sm:h-20 transition-transform\"\n [ngClass]=\"{'md:rotate-90': thumbnailsPosition === 'left' || thumbnailsPosition === 'right'}\">\n </base-icon>\n </button>\n }\n\n <div #thumbScrollContainer (scroll)=\"updateScrollButtons()\"\n class=\"thumbnails-container absolute inset-0 p-1 flex gap-3 flex-row overflow-x-auto overflow-y-hidden\" [ngClass]=\"{\n 'items-center': thumbnailsPosition === 'bottom' || thumbnailsPosition === 'top',\n 'md:flex-col md:overflow-x-hidden md:overflow-y-auto md:items-center': thumbnailsPosition === 'left' || thumbnailsPosition === 'right'\n }\" style=\"scrollbar-width: none;\">\n @for (item of items; track $index; let i = $index) {\n <button type=\"button\" (click)=\"selectItem(i)\"\n [ngStyle]=\"{'aspect-ratio': aspectRatio && aspectRatio !== 'auto' ? aspectRatio : '1/1'}\"\n class=\"thumbnail-btn relative flex-shrink-0 w-[130px] rounded-xl overflow-hidden border-2 border-transparent transition-all duration-300 ease-out focus:outline-none\"\n [ngClass]=\"{\n 'opacity-100 scale-95 hover:scale-100': i === currentIndex,\n 'opacity-60 scale-95 hover:scale-100 hover:opacity-100': i !== currentIndex\n }\">\n <img [src]=\"item.thumbSrc || item.src\" [alt]=\"item.alt || 'Thumbnail ' + i\"\n class=\"w-full h-full object-cover rounded-lg\" />\n\n @if (item.type === 'video') {\n <div class=\"absolute inset-0 flex items-center justify-center bg-slate-900/30\">\n <svg xmlns=\"http://www.w3.org/2000/01/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"\n class=\"w-32 h-32 text-white drop-shadow-md\">\n <path fill-rule=\"evenodd\"\n d=\"M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n }\n </button>\n }\n </div>\n\n <!-- Next Button -->\n @if (hasThumbOverflow && canScrollNext) {\n <button base-icon-button (click)=\"scrollThumbnails(1)\" size=\"sm\" color=\"white\"\n class=\"!absolute z-[20] shadow-md right-[16px] top-[50%] -translate-y-1/2\" [ngClass]=\"{\n 'md:-translate-y-[unset] md:top-[unset] md:right-[unset] md:bottom-[0] md:left-[50%] md:!-translate-x-1/2': thumbnailsPosition === 'left' || thumbnailsPosition === 'right'\n }\">\n <base-icon name=\"chevron-right\"\n [ngClass]=\"{'md:rotate-90': thumbnailsPosition === 'left' || thumbnailsPosition === 'right'}\">\n </base-icon>\n </button>\n }\n\n </div>\n }\n\n <!-- Main View -->\n <div (touchstart)=\"onTouchStart($event)\" (touchend)=\"onTouchEnd($event)\"\n class=\"main-view flex-auto w-full min-w-0 min-h-0 relative bg-slate-50 dark:bg-slate-950 overflow-hidden group rounded-2xl border border-slate-100 dark:border-slate-800 shadow-inner\"\n [ngStyle]=\"{\n 'aspect-ratio': (mainViewHeight && mainViewHeight !== 'auto') ? 'auto' : aspectRatio,\n 'width': mainViewWidth || '100%',\n 'height': mainViewHeight || 'auto'\n }\">\n\n @if (activeItem) {\n <div class=\"w-full h-full relative flex items-center justify-center\" @fade>\n @if (activeItem.type !== 'video') {\n <div class=\"image-container w-full h-full overflow-hidden\"\n [ngClass]=\"{'cursor-zoom-in': !isZooming && zoomOnClick, 'cursor-zoom-out': isZooming}\"\n (click)=\"toggleZoom($event, imgContainer)\" (mousemove)=\"onMouseMove($event, imgContainer)\"\n (mouseleave)=\"onMouseLeave()\" #imgContainer>\n\n <!-- Base Image -->\n <img [src]=\"activeItem.src\" [alt]=\"activeItem.alt || 'Product Image'\"\n class=\"w-full h-full transition-opacity duration-300\" [ngStyle]=\"{'object-fit': objectFit}\"\n [class.opacity-0]=\"isZooming\" />\n\n <!-- Zoomed Image Overlay -->\n @if (zoomOnClick) {\n <div class=\"absolute inset-0 z-10 pointer-events-none transition-opacity duration-300\"\n [class.opacity-0]=\"!isZooming\" [class.opacity-100]=\"isZooming\"\n [style.background-image]=\"'url(' + activeItem.src + ')'\"\n [style.background-position]=\"zoomX + '% ' + zoomY + '%'\" [style.background-size]=\"'250%'\"\n style=\"background-repeat: no-repeat;\">\n </div>\n }\n </div>\n } @else {\n <!-- Video Player Placeholder -->\n <div class=\"w-full h-full bg-slate-900 flex items-center justify-center\">\n <video [src]=\"activeItem.src\" controls class=\"w-full h-full object-contain\"></video>\n </div>\n }\n </div>\n }\n\n <!-- Nav Arrows (only if not zoomed and length > 1) -->\n @if (showArrows && items.length > 1) {\n <div\n class=\"absolute inset-0 pointer-events-none flex items-center justify-between p-2 sm:p-4 z-20 transition-opacity duration-300\"\n [class.opacity-0]=\"isZooming\">\n <button base-icon-button (click)=\"prev(); $event.stopPropagation()\" color=\"white\" [size]=\"isMobile ? 'sm' : 'md'\"\n class=\"pointer-events-auto backdrop-blur-md shadow-lg opacity-0 group-hover:opacity-100 transition-all duration-300 -translate-x-4 group-hover:translate-x-0\">\n <base-icon name=\"chevron-left\"></base-icon>\n </button>\n <button base-icon-button (click)=\"next(); $event.stopPropagation()\" color=\"white\" [size]=\"isMobile ? 'sm' : 'md'\"\n class=\"pointer-events-auto backdrop-blur-md shadow-lg opacity-0 group-hover:opacity-100 transition-all duration-300 translate-x-4 group-hover:translate-x-0\">\n <base-icon name=\"chevron-right\"></base-icon>\n </button>\n </div>\n }\n </div>\n</div>","import {\n Directive,\n Input,\n ElementRef,\n HostListener,\n Renderer2,\n OnDestroy,\n} from '@angular/core';\n\n@Directive({\n selector: '[base-tooltip]',\n standalone: true,\n})\nexport class TooltipDirective implements OnDestroy {\n @Input('base-tooltip') tooltipTitle = '';\n @Input() placement = 'top';\n @Input() tooltipClass = '';\n @Input() delay = '0';\n @Input() type = 'dark';\n @Input() canShow = true;\n\n private tooltip: HTMLElement | null = null;\n private offset = 10;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnDestroy(): void {\n this.hide();\n }\n\n @HostListener('mouseenter') onMouseEnter() {\n this.show();\n }\n\n @HostListener('mouseleave') onMouseLeave() {\n this.hide();\n }\n\n @HostListener('click') onMouseClick() {\n this.show();\n }\n\n private show() {\n if (this.canShow && !this.tooltip && this.tooltipTitle) {\n this.create();\n this.setPosition();\n\n setTimeout(() => {\n if (this.tooltip) {\n this.renderer.addClass(this.tooltip, 'opacity-100');\n \n // Remove start position classes to trigger transition to 0\n const startClasses = ['translate-y-8', '-translate-y-8', 'translate-x-8', '-translate-x-8'];\n startClasses.forEach(cls => this.renderer.removeClass(this.tooltip!, cls));\n\n if (this.placement === 'top' || this.placement === 'bottom') {\n this.renderer.addClass(this.tooltip, 'translate-y-0');\n } else {\n this.renderer.addClass(this.tooltip, 'translate-x-0');\n }\n }\n }, parseInt(this.delay, 10) || 0);\n }\n }\n\n private hide() {\n if (this.tooltip) {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip = null;\n }\n }\n\n private create() {\n this.tooltip = this.renderer.createElement('span');\n const text = this.renderer.createText(this.tooltipTitle);\n this.renderer.appendChild(this.tooltip, text);\n this.renderer.appendChild(document.body, this.tooltip);\n\n const baseClasses = [\n 'text-sm',\n 'rounded-md',\n 'text-center',\n 'px-8',\n 'py-4',\n 'max-w-xs',\n 'z-[9999]',\n 'pointer-events-none',\n 'absolute',\n 'opacity-0',\n 'transition-all',\n 'duration-300',\n 'transform',\n 'shadow-lg',\n ];\n\n baseClasses.forEach((cls) => this.renderer.addClass(this.tooltip!, cls));\n\n if (this.type === 'light') {\n this.renderer.addClass(this.tooltip!, 'bg-white');\n this.renderer.addClass(this.tooltip!, 'text-slate-700');\n this.renderer.addClass(this.tooltip!, 'border');\n this.renderer.addClass(this.tooltip!, 'border-slate-200');\n } else {\n this.renderer.addClass(this.tooltip!, 'bg-slate-900');\n this.renderer.addClass(this.tooltip!, 'text-white');\n }\n\n // Add arrow\n const arrow = this.renderer.createElement('div');\n this.renderer.addClass(arrow, 'absolute');\n this.renderer.addClass(arrow, 'w-0');\n this.renderer.addClass(arrow, 'h-0');\n this.renderer.addClass(arrow, 'border-4');\n\n switch (this.placement) {\n case 'top':\n this.renderer.addClass(this.tooltip!, 'translate-y-8');\n this.renderer.addClass(arrow, 'top-full');\n this.renderer.addClass(arrow, 'left-1/2');\n this.renderer.addClass(arrow, '-translate-x-1/2');\n this.renderer.addClass(arrow, 'border-t-slate-900');\n this.renderer.addClass(arrow, 'border-l-transparent');\n this.renderer.addClass(arrow, 'border-r-transparent');\n this.renderer.addClass(arrow, 'border-b-transparent');\n if (this.type === 'light') this.renderer.addClass(arrow, 'border-t-white');\n break;\n case 'bottom':\n this.renderer.addClass(this.tooltip!, '-translate-y-8');\n this.renderer.addClass(arrow, 'bottom-full');\n this.renderer.addClass(arrow, 'left-1/2');\n this.renderer.addClass(arrow, '-translate-x-1/2');\n this.renderer.addClass(arrow, 'border-b-slate-900');\n this.renderer.addClass(arrow, 'border-l-transparent');\n this.renderer.addClass(arrow, 'border-r-transparent');\n this.renderer.addClass(arrow, 'border-t-transparent');\n if (this.type === 'light') this.renderer.addClass(arrow, 'border-b-white');\n break;\n case 'left':\n this.renderer.addClass(this.tooltip!, 'translate-x-8');\n this.renderer.addClass(arrow, 'left-full');\n this.renderer.addClass(arrow, 'top-1/2');\n this.renderer.addClass(arrow, '-translate-y-1/2');\n this.renderer.addClass(arrow, 'border-l-slate-900');\n this.renderer.addClass(arrow, 'border-t-transparent');\n this.renderer.addClass(arrow, 'border-b-transparent');\n this.renderer.addClass(arrow, 'border-r-transparent');\n if (this.type === 'light') this.renderer.addClass(arrow, 'border-l-white');\n break;\n case 'right':\n this.renderer.addClass(this.tooltip!, '-translate-x-8');\n this.renderer.addClass(arrow, 'right-full');\n this.renderer.addClass(arrow, 'top-1/2');\n this.renderer.addClass(arrow, '-translate-y-1/2');\n this.renderer.addClass(arrow, 'border-r-slate-900');\n this.renderer.addClass(arrow, 'border-t-transparent');\n this.renderer.addClass(arrow, 'border-b-transparent');\n this.renderer.addClass(arrow, 'border-l-transparent');\n if (this.type === 'light') this.renderer.addClass(arrow, 'border-r-white');\n break;\n }\n\n this.renderer.appendChild(this.tooltip!, arrow);\n\n if (this.tooltipClass) {\n this.tooltipClass.split(' ').forEach((cls) => {\n if (cls) this.renderer.addClass(this.tooltip!, cls);\n });\n }\n }\n\n private setPosition() {\n if (!this.tooltip) return;\n\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n const tooltipPos = this.tooltip.getBoundingClientRect();\n const scrollPos =\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop ||\n 0;\n\n let top = 0;\n let left = 0;\n\n switch (this.placement) {\n case 'top':\n top = hostPos.top - tooltipPos.height - this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n break;\n case 'bottom':\n top = hostPos.bottom + this.offset;\n left = hostPos.left + (hostPos.width - tooltipPos.width) / 2;\n break;\n case 'left':\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.left - tooltipPos.width - this.offset;\n break;\n case 'right':\n top = hostPos.top + (hostPos.height - tooltipPos.height) / 2;\n left = hostPos.right + this.offset;\n break;\n }\n\n this.renderer.setStyle(this.tooltip, 'top', `${top + scrollPos}px`);\n this.renderer.setStyle(this.tooltip, 'left', `${left}px`);\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[container]',\n standalone: true,\n host: {\n class: 'block w-full max-w-[1280px] mx-auto px-6 md:px-8'\n }\n})\nexport class ContainerDirective {}\n","import { Directive, Renderer2, ElementRef, OnInit, Input } from '@angular/core';\n\n@Directive({\n selector: '[base-group-button]',\n standalone: true\n})\nexport class BaseGroupButtonDirective {\n @Input() color: string;\n @Input() size: string;\n @Input() width: string;\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n ngOnInit(): void {\n let classes = '';\n let iconClass = '';\n let parentClass = '';\n const button_default =\n 'flex items-center gap-8 relative text-center justify-center tracking-wide';\n switch (this.color) {\n case 'primary':\n classes =\n 'text-white bg-blue-500 hover:bg-blue-700 active:bg-blue-900 disabled:hover:bg-blue-500 disabled:cursor-not-allowed disabled:opacity-50';\n iconClass = 'stroke-white';\n break;\n case 'success':\n classes =\n 'text-white bg-green-500 hover:bg-green-700 active:bg-green-900 disabled:hover:bg-green-500 disabled:cursor-not-allowed disabled:opacity-50';\n iconClass = 'stroke-white';\n break;\n case 'danger':\n classes =\n 'text-white bg-red-500 hover:bg-red-700 active:bg-red-900 disabled:hover:bg-red-500 disabled:cursor-not-allowed disabled:opacity-50';\n iconClass = 'stroke-white';\n break;\n case 'warning':\n classes =\n 'text-white bg-orange-500 hover:bg-orange-700 active:bg-orange-900 disabled:hover:bg-orange-500 disabled:cursor-not-allowed disabled:opacity-50';\n iconClass = 'stroke-white';\n break;\n case 'accent':\n classes =\n 'text-white bg-purple-500 hover:bg-purple-700 active:bg-purple-900 disabled:hover:bg-purple-500 disabled:cursor-not-allowed disabled:opacity-50';\n iconClass = 'stroke-white';\n break;\n case 'transparent':\n classes =\n 'text-slate-800 dark:text-slate-300 bg-transparent hover:bg-slate-100 dark:hover:bg-slate-700 active:bg-slate-200 dark:active:bg-slate-600 dark:active:hover:bg-slate-600 border-r border-slate-200 dark:border-slate-700 last-of-type:border-0 disabled:hover:bg-transparent disabled:cursor-not-allowed disabled:opacity-50';\n iconClass = 'stroke-slate-800 dark:stroke-slate-300';\n parentClass = 'border border-slate-200 dark:border-slate-700';\n break;\n default:\n classes =\n ' text-slate-800 dark:text-slate-300 bg-slate-200 dark:bg-slate-800 hover:bg-slate-200 dark:bg-slate-700 active:bg-slate-500 dark:active:bg-slate-600 disabled:hover:bg-slate-200 dark:disabled:hover:bg-slate-800 disabled:cursor-not-allowed disabled:opacity-50';\n iconClass = 'stroke-slate-800 dark:stroke-slate-300';\n }\n switch (this.size) {\n case 'sm':\n classes = classes + ' h-28 text-xs px-16';\n iconClass = iconClass + ' w-12 h-12';\n break;\n case 'lg':\n classes = classes + ' h-40 text-base px-28';\n iconClass = iconClass + ' w-24 h-24';\n break;\n case 'xl':\n classes = classes + ' h-44 text-base px-32';\n iconClass = iconClass + ' w-24 h-24';\n break;\n case 'xxl':\n classes = classes + ' h-56 text-lg px-40';\n iconClass = iconClass + ' w-28 h-28';\n break;\n default:\n classes = classes + ' h-36 text-sm px-24';\n iconClass = iconClass + ' w-20 h-20';\n }\n this.renderer.setAttribute(\n this.el.nativeElement,\n 'class',\n classes + ' ' + button_default + ' ' + this.width\n );\n const iconElement = this.el.nativeElement.querySelector('base-icon');\n\n if (iconElement) {\n this.renderer.setAttribute(iconElement, 'class', iconClass);\n }\n }\n ngAfterViewInit(): void {\n //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.\n //Add 'implements AfterViewInit' to the class.\n }\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[base-addon-start]',\n standalone: true,\n host: {\n class: 'w-20 h-20 flex items-center justify-center ml-16 shrink-0',\n },\n})\nexport class BaseAddonStartDirective implements OnInit {\n private el = inject(ElementRef);\n\n ngOnInit() {\n // Basic initialization if needed\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[base-link]',\n standalone: true,\n})\nexport class BaseLinkDirective implements OnInit {\n @Input() color = 'default';\n @Input() size = 'default';\n @Input() width?: string;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n const link = this.el.nativeElement as HTMLElement;\n const icon = link.querySelector('base-icon');\n\n this.renderer.addClass(link, 'inline-flex');\n this.renderer.addClass(link, 'items-center');\n this.renderer.addClass(link, 'tracking-wide');\n this.renderer.addClass(link, 'transition-colors');\n this.renderer.addClass(link, 'duration-200');\n\n if (this.width) {\n this.renderer.setStyle(link, 'width', this.width);\n }\n\n this.applyColorStyles(link, icon);\n this.applySizeStyles(link, icon);\n }\n\n private applyColorStyles(link: HTMLElement, icon: Element | null) {\n const colorMap: Record<string, string[]> = {\n primary: [\n 'text-blue-500',\n 'hover:text-blue-700',\n 'active:text-blue-900',\n 'disabled:text-blue-300',\n ],\n success: [\n 'text-green-500',\n 'hover:text-green-700',\n 'active:text-green-900',\n 'disabled:text-green-300',\n ],\n danger: [\n 'text-red-500',\n 'hover:text-red-700',\n 'active:text-red-900',\n 'disabled:text-red-300',\n ],\n warning: [\n 'text-orange-500',\n 'hover:text-orange-700',\n 'active:text-orange-900',\n 'disabled:text-orange-300',\n ],\n accent: [\n 'text-purple-500',\n 'hover:text-purple-700',\n 'active:text-purple-900',\n 'disabled:text-purple-300',\n ],\n default: [\n 'text-blue-500',\n 'hover:text-blue-700',\n 'active:text-blue-900',\n 'disabled:text-blue-300',\n ],\n };\n\n const classes = colorMap[this.color] || colorMap['default'];\n classes.forEach((cls) => this.renderer.addClass(link, cls));\n\n if (icon) {\n const strokeClass =\n this.color === 'default'\n ? 'stroke-slate-800'\n : `stroke-${this.color}-500`;\n this.renderer.addClass(icon, strokeClass);\n }\n\n this.renderer.addClass(link, 'disabled:cursor-not-allowed');\n this.renderer.addClass(link, 'disabled:opacity-50');\n }\n\n private applySizeStyles(link: HTMLElement, icon: Element | null) {\n const sizeMap: Record<string, string[]> = {\n sm: ['text-xs', 'gap-8'],\n lg: ['text-base', 'gap-16'],\n xl: ['text-lg', 'gap-20'],\n default: ['text-sm', 'gap-12'],\n };\n\n const iconSizeMap: Record<string, string[]> = {\n sm: ['w-12', 'h-12'],\n lg: ['w-24', 'h-24'],\n xl: ['w-28', 'h-28'],\n default: ['w-20', 'h-20'],\n };\n\n const classes = sizeMap[this.size] || sizeMap['default'];\n classes.forEach((cls) => this.renderer.addClass(link, cls));\n\n if (icon) {\n const iconClasses = iconSizeMap[this.size] || iconSizeMap['default'];\n iconClasses.forEach((cls) => this.renderer.addClass(icon, cls));\n }\n }\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[base-textarea]',\n standalone: true,\n host: {\n class: 'w-full outline-0 px-4 py-2 text-sm text-slate-700 dark:text-slate-300 dark:bg-slate-800 disabled:cursor-not-allowed disabled:text-slate-400 read-only:pointer-events-none read-only:cursor-not-allowed read-only:bg-slate-50 dark:read-only:bg-slate-700 transition-colors duration-200 focus:border-blue-500 border border-slate-300 dark:border-slate-700 rounded-md min-h-[56px] block',\n },\n})\nexport class BaseTextareaDirective implements OnInit {\n private el = inject(ElementRef);\n\n ngOnInit() {\n // Basic initialization if needed\n }\n}\n","import { Directive, ElementRef, inject, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[baseHeadingText]',\n standalone: true,\n host: {\n class: 'text-slate-900 dark:text-white font-semibold'\n }\n})\nexport class BaseHeadingDirective implements OnInit {\n private el = inject(ElementRef);\n\n ngOnInit() {\n const h1 = this.el.nativeElement.querySelector('h1');\n if (h1) {\n h1.classList.add('text-3xl', 'md:text-4xl');\n }\n }\n}\n","import {\n Directive,\n Input,\n OnDestroy,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { DrawerPanel } from '../components/drawer/drawer-panel';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { merge, Subscription } from 'rxjs';\n\n@Directive({\n selector: '[base-drawer]',\n standalone: true,\n host: {\n '(click)': 'toggleDrawer()',\n },\n})\nexport class DrawerDirective<T> implements OnDestroy {\n private isDrawerOpen = false;\n private overlayRef?: OverlayRef;\n private closingSubscription = Subscription.EMPTY;\n\n @Input() placement = 'right';\n @Input('base-drawer') drawerPanel!: DrawerPanel<T>;\n\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n\n toggleDrawer(): void {\n this.isDrawerOpen ? this.destroyDrawer() : this.openDrawer();\n }\n\n openDrawer(): void {\n if (!this.drawerPanel) return;\n\n this.isDrawerOpen = true;\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: ['bg-slate-900/50', 'dark:bg-slate-900/80'],\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n\n const templatePortal = new TemplatePortal(\n this.drawerPanel.templateRef,\n this.viewContainerRef\n );\n this.overlayRef.attach(templatePortal);\n\n this.closingSubscription = merge(\n this.overlayRef.backdropClick(),\n this.overlayRef.detachments(),\n this.drawerPanel.closed\n ).subscribe(() => this.destroyDrawer());\n }\n\n private destroyDrawer(): void {\n if (!this.overlayRef || !this.isDrawerOpen) {\n return;\n }\n\n this.closingSubscription.unsubscribe();\n this.isDrawerOpen = false;\n this.overlayRef.detach();\n }\n\n ngOnDestroy(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.closingSubscription.unsubscribe();\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { DropdownPanel } from '../components/dropdown-menu/dropdown-panel';\nimport { ConnectedPosition, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { merge, Subscription } from 'rxjs';\n\n@Directive({\n selector: '[base-dropdown-menu-trigger]',\n standalone: true,\n host: {\n '(click)': 'toggleDropdown()',\n },\n})\nexport class DropdownMenuDirective<T> implements OnDestroy {\n private isDropdownOpen = false;\n private overlayRef?: OverlayRef;\n private closingSubscription = Subscription.EMPTY;\n\n @Input() placement: 'start' | 'end' | 'left' | 'right' | 'top-start' | 'top-end' = 'end';\n @Input('base-dropdown-menu-trigger') dropdownPanel!: DropdownPanel<T>;\n\n private overlay = inject(Overlay);\n private elementRef = inject(ElementRef<HTMLElement>);\n private viewContainerRef = inject(ViewContainerRef);\n\n toggleDropdown(): void {\n this.isDropdownOpen ? this.destroyDropdown() : this.openDropdown();\n }\n\n openDropdown(): void {\n if (!this.dropdownPanel) return;\n\n const positions: ConnectedPosition[] = this.getPositions();\n\n this.isDropdownOpen = true;\n this.overlayRef = this.overlay.create({\n hasBackdrop: true,\n backdropClass: 'bg-transparent',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPositions(positions)\n .withPush(false),\n });\n\n const templatePortal = new TemplatePortal(\n this.dropdownPanel.templateRef,\n this.viewContainerRef\n );\n this.overlayRef.attach(templatePortal);\n\n this.closingSubscription = merge(\n this.overlayRef.backdropClick(),\n this.overlayRef.detachments(),\n this.dropdownPanel.closed\n ).subscribe(() => this.destroyDropdown());\n }\n\n private getPositions(): ConnectedPosition[] {\n const defaultPosition: ConnectedPosition = {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 4,\n };\n\n const maps: Record<string, ConnectedPosition> = {\n start: { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top', offsetY: 4 },\n end: { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: 4 },\n left: { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top', offsetX: -4 },\n right: { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top', offsetX: 4 },\n 'top-start': { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom', offsetY: -4 },\n 'top-end': { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -4 },\n };\n\n return [maps[this.placement] || defaultPosition];\n }\n\n private destroyDropdown(): void {\n if (!this.overlayRef || !this.isDropdownOpen) {\n return;\n }\n\n this.closingSubscription.unsubscribe();\n this.isDropdownOpen = false;\n this.overlayRef.detach();\n }\n\n ngOnDestroy(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.closingSubscription.unsubscribe();\n }\n}\n","import { Directive, ElementRef, inject, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[base-dropdown-menu-item]',\n standalone: true,\n host: {\n class: 'w-full px-24 h-48 flex items-center text-sm transition-colors duration-200 cursor-pointer hover:bg-slate-100 dark:hover:bg-slate-700 text-slate-600 dark:text-slate-300 whitespace-nowrap not-prose',\n },\n})\nexport class BaseDropdownMenuItemDirective implements OnInit {\n private el = inject(ElementRef);\n private renderer = inject(Renderer2);\n\n ngOnInit() {\n // Basic initialization if needed, host binding handles classes mostly\n }\n}\n","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n selector: '[baseSlider]',\n standalone: true,\n})\nexport class SliderDirective {\n private threshold = 50;\n private startX: number | null = null;\n \n @Output() slideAction = new EventEmitter<boolean>();\n\n @HostListener('touchstart', ['$event'])\n onTouchStart(event: TouchEvent): void {\n this.startX = event.touches[0].clientX;\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: TouchEvent): void {\n if (this.startX === null) return;\n \n const endX = event.changedTouches[0].clientX;\n const deltaX = endX - this.startX;\n this.startX = null;\n\n if (deltaX > this.threshold) {\n this.slideAction.emit(true);\n } else if (deltaX < -this.threshold) {\n this.slideAction.emit(false);\n }\n }\n}\n","import {\n Component,\n ContentChildren,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n inject,\n PLATFORM_ID,\n AfterContentInit,\n ChangeDetectorRef,\n forwardRef,\n InjectionToken\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { Subject, timer } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { IconModule } from '../icon/icon.module';\nimport { IconButtonDirective } from '../../directives/button/base-icon-button.directive';\n\nexport const GALLERY_SLIDER_TOKEN = new InjectionToken<any>('GALLERY_SLIDER_TOKEN');\n\n@Component({\n selector: 'base-carousel-caption',\n standalone: true,\n template: `\n <div class=\"carousel-caption absolute bottom-40 left-1/2 -translate-x-1/2 text-center w-3/4 z-20\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [`\n @keyframes fadeInDown {\n from { opacity: 0; transform: translateY(-20px); }\n to { opacity: 1; transform: translateY(0); }\n }\n @keyframes fadeInUp {\n from { opacity: 0; transform: translateY(20px); }\n to { opacity: 1; transform: translateY(0); }\n }\n :host-context(.active) ::ng-deep h5 { animation: fadeInDown 1s ease-out forwards; }\n :host-context(.active) ::ng-deep p { animation: fadeInUp 1s ease-out forwards; }\n \n /* Ensure hidden when not active to prevent \"pop\" before animation */\n :host-context(:not(.active)) ::ng-deep h5,\n :host-context(:not(.active)) ::ng-deep p { opacity: 0; }\n `]\n})\nexport class CarouselCaptionComponent {}\n\n@Component({\n selector: 'base-carousel-item',\n standalone: true,\n imports: [CommonModule],\n template: `<ng-content></ng-content>`,\n host: {\n '[class.active]': 'active',\n '[class.flex-shrink-0]': '!isCrossfade',\n '[class.absolute]': 'isCrossfade',\n '[class.inset-0]': 'isCrossfade',\n '[class.z-0]': 'isCrossfade && !active',\n '[class.z-[1]]': 'isCrossfade && active',\n '[class.opacity-0]': 'isCrossfade && !active',\n '[class.opacity-100]': 'isCrossfade && active',\n '[class.pointer-events-none]': 'isCrossfade && !active',\n '[class.pointer-events-auto]': 'isCrossfade && active',\n 'class': 'block w-full h-full transition-all duration-600 ease-in-out'\n }\n})\nexport class CarouselItemComponent {\n @Input() interval: number = -1;\n active = false;\n\n private parent = inject(GALLERY_SLIDER_TOKEN, { optional: true });\n\n get isCrossfade() {\n return this.parent?.transition === 'crossfade';\n }\n}\n\n@Component({\n selector: 'base-gallery-slider, base-carousel',\n standalone: true,\n imports: [CommonModule, IconModule, IconButtonDirective],\n templateUrl: './gallery-slider.component.html',\n providers: [\n { provide: GALLERY_SLIDER_TOKEN, useExisting: forwardRef(() => GallerySliderComponent) }\n ],\n styles: [`\n @keyframes fadeInDown {\n from { opacity: 0; transform: translateY(-20px); }\n to { opacity: 1; transform: translateY(0); }\n }\n @keyframes fadeInUp {\n from { opacity: 0; transform: translateY(20px); }\n to { opacity: 1; transform: translateY(0); }\n }\n /* Helper classes for custom content, triggered when parent .active is present */\n :host ::ng-deep .active .animate-fadeInDown { animation: fadeInDown 1s ease-out forwards; }\n :host ::ng-deep .active .animate-fadeInUp { animation: fadeInUp 1s ease-out forwards; }\n \n /* Hide by default to ensure clean entrance */\n :host ::ng-deep .carousel-item:not(.active) .animate-fadeInDown,\n :host ::ng-deep .carousel-item:not(.active) .animate-fadeInUp { opacity: 0; }\n `],\n host: {\n 'class': 'carousel relative block overflow-hidden rounded-xl group hover:opacity-100',\n '[class.carousel-dark]': 'dark',\n '(mouseenter)': 'onMouseEnter()',\n '(mouseleave)': 'onMouseLeave()'\n }\n})\nexport class GallerySliderComponent implements OnInit, AfterContentInit, OnDestroy {\n @Input() activeIndex: number = 0;\n @Input() animate: boolean = true;\n @Input() dark: boolean = false;\n @Input() direction: 'next' | 'prev' = 'next';\n @Input() interval: number = 5000;\n @Input() pause: 'hover' | false = 'hover';\n @Input() touch: boolean = true;\n @Input() transition: 'slide' | 'crossfade' = 'slide';\n @Input() wrap: boolean = true;\n @Input() slides: string[] = []; \n\n @Output() itemChange = new EventEmitter<number>();\n\n @ContentChildren(CarouselItemComponent) items!: QueryList<CarouselItemComponent>;\n \n private destroy$ = new Subject<void>();\n private platformId = inject(PLATFORM_ID);\n private cdr = inject(ChangeDetectorRef);\n private timerSubscription?: any;\n \n private startX: number | null = null;\n private threshold = 50;\n\n ngOnInit() {\n }\n\n ngAfterContentInit() {\n this.updateActiveItem();\n this.startAutoplay();\n \n this.items.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateActiveItem();\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.stopAutoplay();\n }\n\n next() {\n const total = this.items.length > 0 ? this.items.length : (this.slides?.length || 0);\n if (total === 0) return;\n\n const nextIndex = this.activeIndex + 1;\n if (nextIndex < total) {\n this.select(nextIndex, 'next');\n } else if (this.wrap) {\n this.select(0, 'next');\n }\n }\n\n prev() {\n const total = this.items.length > 0 ? this.items.length : (this.slides?.length || 0);\n if (total === 0) return;\n\n const prevIndex = this.activeIndex - 1;\n if (prevIndex >= 0) {\n this.select(prevIndex, 'prev');\n } else if (this.wrap) {\n this.select(total - 1, 'prev');\n }\n }\n\n select(index: number, direction?: 'next' | 'prev') {\n if (index === this.activeIndex) return;\n \n this.direction = direction || (index > this.activeIndex ? 'next' : 'prev');\n this.activeIndex = index;\n this.updateActiveItem();\n this.itemChange.emit(this.activeIndex);\n this.cdr.detectChanges();\n this.restartAutoplay();\n }\n\n private updateActiveItem() {\n if (this.items && this.items.length > 0) {\n this.items.forEach((item, index) => {\n item.active = index === this.activeIndex;\n });\n }\n }\n\n startAutoplay() {\n if (!isPlatformBrowser(this.platformId) || this.interval <= 0) return;\n\n this.stopAutoplay();\n const currentInterval = this.getActiveInterval();\n if (currentInterval <= 0) return;\n\n this.timerSubscription = timer(currentInterval)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.next();\n this.startAutoplay(); \n });\n }\n\n stopAutoplay() {\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n this.timerSubscription = undefined;\n }\n }\n\n restartAutoplay() {\n this.stopAutoplay();\n this.startAutoplay();\n }\n\n private getActiveInterval(): number {\n if (this.items && this.items.length > 0) {\n const activeItem = this.items.toArray()[this.activeIndex];\n return activeItem?.interval && activeItem.interval > 0 ? activeItem.interval : this.interval;\n }\n return this.interval;\n }\n\n onMouseEnter() {\n if (this.pause === 'hover') {\n this.stopAutoplay();\n }\n }\n\n onMouseLeave() {\n if (this.pause === 'hover') {\n this.startAutoplay();\n }\n }\n\n @HostListener('touchstart', ['$event'])\n onTouchStart(event: TouchEvent): void {\n if (!this.touch) return;\n this.startX = event.touches[0].clientX;\n }\n\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: TouchEvent): void {\n if (!this.touch || this.startX === null) return;\n \n const endX = event.changedTouches[0].clientX;\n const deltaX = endX - this.startX;\n this.startX = null;\n\n if (deltaX > this.threshold) {\n this.prev();\n } else if (deltaX < -this.threshold) {\n this.next();\n }\n }\n}\n","<div class=\"carousel-inner relative w-full h-[400px] overflow-hidden\">\n <div class=\"carousel-track w-full h-full\" [ngClass]=\"{\n 'flex transition-transform duration-600 ease-in-out': transition === 'slide',\n 'relative': transition === 'crossfade'\n }\" [style.transform]=\"transition === 'slide' ? 'translateX(-' + (activeIndex * 100) + '%)' : 'none'\">\n\n <!-- Simple Slides (using slides input) -->\n @if (slides && slides.length > 0 && items.length === 0) {\n @for (slide of slides; track slide; let i = $index) {\n <div\n class=\"carousel-item w-full h-full flex-shrink-0 flex items-center justify-center p-16 bg-slate-100 dark:bg-slate-800 transition-all duration-600 ease-in-out\"\n [ngClass]=\"{\n 'relative': transition === 'slide',\n 'absolute inset-0 transition-opacity': transition === 'crossfade',\n 'opacity-100 z-10': i === activeIndex,\n 'opacity-0 z-0 pointer-events-none': transition === 'crossfade' && i !== activeIndex\n }\">\n <img [src]=\"slide\" class=\"max-w-full max-h-full object-cover h-full w-full rounded-lg shadow-md\"\n alt=\"Gallery slide\" />\n </div>\n }\n }\n\n <!-- Projected Items (base-carousel-item) -->\n <ng-content></ng-content>\n </div>\n</div>\n\n<!-- Indicators -->\n@if ((items.length > 1 || (slides && slides.length > 1))) {\n<div class=\"carousel-indicators absolute bottom-16 left-0 right-0 z-20 flex justify-center gap-8 px-0 mb-16 list-none\">\n @for (item of (items.length > 0 ? items : slides); track $index; let i = $index) {\n <button type=\"button\"\n class=\"box-content flex-initial h-4 px-0 py-0 mx-4 overflow-hidden cursor-pointer transition-all duration-600 rounded-full\"\n [ngClass]=\"i === activeIndex ? \n (dark ? 'bg-black w-32 opacity-100' : 'bg-white w-32 opacity-100') : \n (dark ? 'bg-black w-24 opacity-50' : 'bg-white w-24 opacity-50')\" (click)=\"select(i)\"></button>\n }\n</div>\n}\n\n<!-- Controls -->\n@if ((items.length > 1 || (slides && slides.length > 1))) {\n<button base-icon-button (click)=\"prev()\" color=\"primary\" size=\"sm\"\n class=\"!absolute left-8 top-1/2 -translate-y-1/2 z-30 bg-white/20 dark:bg-black/20 hover:bg-white/40 dark:hover:bg-black/40 backdrop-blur-sm opacity-0 group-hover:opacity-100 transition-opacity\">\n <div [class.invert]=\"dark\">\n <base-icon name=\"chevron-left\" class=\"w-24 h-24 stroke-slate-800 dark:stroke-slate-200\"></base-icon>\n </div>\n</button>\n\n<button base-icon-button (click)=\"next()\" color=\"primary\" size=\"sm\"\n class=\"!absolute right-8 top-1/2 -translate-y-1/2 z-30 bg-white/20 dark:bg-black/20 hover:bg-white/40 dark:hover:bg-black/40 backdrop-blur-sm opacity-0 group-hover:opacity-100 transition-opacity\">\n <div [class.invert]=\"dark\">\n <base-icon name=\"chevron-right\" class=\"w-24 h-24 stroke-slate-800 dark:stroke-slate-200\"></base-icon>\n </div>\n</button>\n}","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: '[baseClickOutside]',\n standalone: true,\n})\nexport class ClickOutsideDirective {\n @Output() baseClickOutside = new EventEmitter<MouseEvent>();\n\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('document:click', ['$event', '$event.target'])\n public onDocumentClick(event: MouseEvent, targetElement: any): void {\n if (!targetElement) {\n return;\n }\n\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.baseClickOutside.emit(event);\n }\n }\n}\n","import { Directive, HostListener, Optional, inject } from '@angular/core';\nimport { AlertComponent } from './alert.component';\n\n@Directive({\n selector: '[baseAlertDismiss]',\n standalone: true,\n})\nexport class AlertDismissDirective {\n private alert = inject(AlertComponent, { optional: true });\n\n @HostListener('click')\n onClick() {\n if (this.alert) {\n this.alert.handleClose();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input, inject } from '@angular/core';\n\n@Directive({\n selector: '[baseScrollTo]',\n standalone: true,\n})\nexport class ScrollToDirective {\n @Input('baseScrollTo') target = '';\n \n private el = inject(ElementRef);\n\n @HostListener('click', ['$event'])\n onClick(event: Event) {\n if (!this.target) return;\n \n const targetElement = document.querySelector(this.target);\n if (targetElement) {\n event.preventDefault();\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }\n}\n","import { Directive, ElementRef, Input, Renderer2, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[badge-icon]',\n standalone: true,\n})\nexport class BaseBadgeIconDirective implements OnInit {\n @Input() color?: string;\n @Input() size?: string;\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit() {\n const icon = this.el.nativeElement.classList;\n icon.add('absolute', '-top-8', '-right-8');\n\n if (this.color) {\n this.renderer.addClass(this.el.nativeElement, `bg-${this.color}-500`);\n } else {\n this.renderer.addClass(this.el.nativeElement, 'bg-red-500');\n }\n\n if (this.size) {\n this.renderer.addClass(this.el.nativeElement, `h-${this.size}`);\n this.renderer.addClass(this.el.nativeElement, `w-${this.size}`);\n } else {\n this.renderer.addClass(this.el.nativeElement, 'h-16');\n this.renderer.addClass(this.el.nativeElement, 'w-16');\n }\n\n this.renderer.addClass(this.el.nativeElement, 'rounded-full');\n this.renderer.addClass(this.el.nativeElement, 'border-2');\n this.renderer.addClass(this.el.nativeElement, 'border-white');\n this.renderer.addClass(this.el.nativeElement, 'dark:border-slate-900');\n }\n}\n","import { Directive, ElementRef, Renderer2, OnInit } from '@angular/core';\n\n@Directive({\n selector: '[code]',\n standalone: true,\n})\nexport class CodeDirective implements OnInit {\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit() {\n const classes = 'bg-slate-100 dark:bg-slate-800 text-xs rounded-md px-2 py-1 text-pink-700 dark:text-pink-400 font-mono';\n this.renderer.setAttribute(this.el.nativeElement, 'class', classes);\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[baseTabIcon]',\n standalone: true,\n})\nexport class BaseTabIconDirective implements OnInit {\n @Input() type = 'default';\n\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n const iconElement = this.el.nativeElement.querySelector('base-icon');\n\n if (iconElement) {\n this.renderer.addClass(iconElement, 'w-20');\n this.renderer.addClass(iconElement, 'h-20');\n this.renderer.addClass(iconElement, 'stroke-slate-700');\n this.renderer.addClass(iconElement, 'dark:stroke-slate-100');\n }\n }\n}\n","import { Directive, ElementRef, OnInit, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: '[base-list-item]',\n standalone: true,\n})\nexport class BaseListItemDirective implements OnInit {\n constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit() {\n const el = this.el.nativeElement as HTMLElement;\n const classes = [\n 'text-slate-500',\n 'dark:text-slate-300',\n 'hover:text-blue-600',\n 'dark:hover:text-blue-600',\n 'text-sm',\n 'h-40',\n 'flex',\n 'items-center',\n 'justify-between',\n 'transition-colors',\n 'duration-300',\n 'font-medium',\n ];\n\n classes.forEach((cls) => this.renderer.addClass(el, cls));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'filter',\n standalone: true,\n})\nexport class FilterPipe implements PipeTransform {\n transform(\n data: any[],\n filterValue: string,\n filterKeys?: string | string[]\n ): any[] {\n if (!data || !filterValue) {\n return data || [];\n }\n\n const lowerFilter = filterValue.toLowerCase();\n\n if (Array.isArray(filterKeys)) {\n return data.filter((item) => {\n return filterKeys.some((key) => {\n const propValue = item[key];\n return this.matches(propValue, lowerFilter);\n });\n });\n } else if (filterKeys) {\n return data.filter((item) => {\n const propValue = item[filterKeys];\n return this.matches(propValue, lowerFilter);\n });\n } else {\n return data.filter((item) => {\n if (typeof item === 'string') {\n return item.toLowerCase().includes(lowerFilter);\n }\n return false;\n });\n }\n }\n\n private matches(propValue: any, filterValue: string): boolean {\n if (!propValue) {\n return false;\n }\n\n if (Array.isArray(propValue)) {\n return propValue.some((val) =>\n String(val).toLowerCase().includes(filterValue)\n );\n }\n\n return String(propValue).toLowerCase().includes(filterValue);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n// Components\nimport { LogoComponent } from './components/logo/logo.component';\nimport { AvatarComponent } from './components/avatar/avatar.component';\nimport { IconModule } from './components/icon/icon.module';\nimport { PageBaseComponent } from './components/page-base/page-base.component';\nimport { PageBaseHeaderComponent } from './components/page-base/page-base-header/page-base-header.component';\nimport { PageBaseFooterComponent } from './components/page-base/page-base-footer/page-base-footer.component';\nimport { PageBaseBodyComponent } from './components/page-base/page-base-body/page-base-body.component';\nimport { CardComponent } from './components/card/card.component';\nimport { CardBodyComponent } from './components/card/card-body/card-body.component';\nimport { CardHeaderComponent } from './components/card/card-header/card-header.component';\nimport { CardFooterComponent } from './components/card/card-footer/card-footer.component';\nimport { BadgeComponent } from './components/badge/badge.component';\nimport { ButtonGroupComponent } from './components/button-group/button-group.component';\nimport { InputGroupComponent } from './components/input-group/input-group.component';\nimport { LabelComponent } from './components/input-group/label/label.component';\nimport { ErrorComponent } from './components/input-group/error/error.component';\nimport { InfoTextComponent } from './components/input-group/info-text/info-text.component';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { RadioGroupComponent } from './components/radio-group/radio-group.component';\nimport { RadioButtonComponent } from './components/radio-group/radio-button/radio-button.component';\nimport { AccordionComponent } from './components/accordion/accordion.component';\nimport { AccordionItemComponent } from './components/accordion/accordion-item/accordion-item.component';\nimport { AccordionItemHeaderComponent } from './components/accordion/accordion-item/accordion-item-header/accordion-item-header.component';\nimport { AccordionItemBodyComponent } from './components/accordion/accordion-item/accordion-item-body/accordion-item-body.component';\nimport { GroupButtonComponent } from './components/button-group/group-button/group-button.component';\nimport { AlertComponent } from './components/alert/alert.component';\nimport { ToggleComponent } from './components/toggle/toggle.component';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { BreadcrumbItemComponent } from './components/breadcrumb/breadcrumb-item/breadcrumb-item.component';\nimport { TabsComponent } from './components/tabs/tabs.component';\nimport { TabComponent } from './components/tabs/tab/tab.component';\nimport { TabLabelComponent } from './components/tabs/tab-label/tab-label.component';\nimport { TabBodyComponent } from './components/tabs/tab-body/tab-body.component';\nimport { SidenavComponent } from './components/sidenav/sidenav.component';\nimport { SidenavBodyComponent } from './components/sidenav/sidenav-body/sidenav-body.component';\nimport { SidenavNavComponent } from './components/sidenav/sidenav-nav/sidenav-nav.component';\nimport { AlertActionsComponent } from './components/alert/alert-actions/alert-actions.component';\nimport { NavListComponent } from './components/nav-list/nav-list.component';\nimport { SpinnerComponent } from './components/spinner/spinner.component';\nimport { SpinnerWrapperComponent } from './components/spinner/spinner-wrapper/spinner-wrapper.component';\nimport { DividerComponent } from './components/divider/divider.component';\nimport { ProgressComponent } from './components/progress/progress.component';\nimport { ScrollNavComponent } from './components/scroll-nav/scroll-nav.component';\nimport { ScrollNavContentComponent } from './components/scroll-nav/scroll-nav-content/scroll-nav-content.component';\nimport { ScrollNavSidebarComponent } from './components/scroll-nav/scroll-nav-sidebar/scroll-nav-sidebar.component';\nimport { CodeComponent } from './components/code/code.component';\nimport { DrawerComponent } from './components/drawer/drawer.component';\nimport { DropdownMenuComponent } from './components/dropdown-menu/dropdown-menu.component';\nimport { DropdownMenuItemComponent } from './components/dropdown-menu/dropdown-menu-item/dropdown-menu-item.component';\nimport { PaginatorComponent } from './components/paginator/paginator.component';\nimport { SelectComponent } from './components/select/select.component';\nimport { InputSpinnerComponent } from './components/input-spinner/input-spinner.component';\nimport { PPageComponent } from './components/paginator/p-page/p-page.component';\nimport { InputAutocompleteComponent } from './components/input-autocomplete/input-autocomplete.component';\nimport { CustomSelectComponent } from './components/custom-select/custom-select.component';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { DatepickerComponent } from './components/datepicker/datepicker.component';\nimport { DateRangePickerComponent } from './components/date-range-picker/date-range-picker.component';\nimport { TreeComponent } from './components/tree/tree.component';\nimport { StepperComponent } from './components/stepper/stepper.component';\nimport { StepComponent } from './components/stepper/step/step.component';\nimport { StarRatingComponent } from './components/star-rating/star-rating.component';\nimport { StarComponent } from './components/star-rating/star/star.component';\nimport { ProductGalleryComponent } from './components/product-gallery/product-gallery.component';\n\n// Directives\nimport { TooltipDirective } from './directives/tooltip.directive';\nimport { BaseButtonDirective } from './directives/button/base-button.directive';\nimport { StrokedButtonDirective } from './directives/button/base-stroked-button.directive';\nimport { IconButtonDirective } from './directives/button/base-icon-button.directive';\nimport { IconStrokedButtonDirective } from './directives/button/base-icon-stroked-button.directive';\nimport { ContainerDirective } from './directives/container.directive';\nimport { BaseInputDirective } from './directives/input-group/base-input.directive';\nimport { BaseGroupButtonDirective } from './directives/base-group-button.directive';\nimport { BaseAddonEndDirective } from './directives/input-group/base-addon-end.directive';\nimport { BaseAddonStartDirective } from './directives/input-group/base-addon-start.directive';\nimport { BaseLinkDirective } from './directives/button/base-link.directive';\nimport { BaseTextareaDirective } from './directives/input-group/base-textarea.directive';\nimport { BaseHeadingDirective } from './directives/typography/base-heading.directive';\nimport { ScrollNavItemDirective } from './directives/scroll-nav/scroll-nav-item.directive';\nimport { DrawerDirective } from './directives/drawer.directive';\nimport { DropdownMenuDirective } from './directives/dropdown.directive';\nimport { BaseDropdownMenuItemDirective } from './directives/base-dropdown-menu-item.directive';\nimport { SliderDirective } from './components/slider/slider.directive';\nimport { GallerySliderComponent, CarouselItemComponent, CarouselCaptionComponent } from './components/slider/gallery-slider.component';\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nimport { AlertDismissDirective } from './components/alert/alert-dismiss.directive';\nimport { ScrollToDirective } from './directives/scroll-to.directive';\nimport { BaseBadgeIconDirective } from './directives/badge/base-badge-icon.directive';\nimport { CodeDirective } from './directives/code.directive';\nimport { BaseTabIconDirective } from './directives/base-tab-icon.directive';\nimport { BaseListItemDirective } from './directives/base-list-item.directive';\nimport { BaseBadgeAddon } from './directives/badge/base-badge-addon.directive';\n\n// Pipes\nimport { FilterPipe } from './pipes/filter.pipe';\n\nconst SHARED_STANDALONE = [\n LogoComponent,\n AvatarComponent,\n PageBaseComponent,\n PageBaseHeaderComponent,\n PageBaseFooterComponent,\n PageBaseBodyComponent,\n CardComponent,\n CardBodyComponent,\n CardHeaderComponent,\n CardFooterComponent,\n BadgeComponent,\n ButtonGroupComponent,\n InputGroupComponent,\n LabelComponent,\n ErrorComponent,\n InfoTextComponent,\n CheckboxComponent,\n RadioGroupComponent,\n RadioButtonComponent,\n AccordionComponent,\n AccordionItemComponent,\n AccordionItemHeaderComponent,\n AccordionItemBodyComponent,\n GroupButtonComponent,\n AlertComponent,\n ToggleComponent,\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n TabsComponent,\n TabComponent,\n TabLabelComponent,\n TabBodyComponent,\n SidenavComponent,\n SidenavBodyComponent,\n SidenavNavComponent,\n AlertActionsComponent,\n NavListComponent,\n SpinnerComponent,\n SpinnerWrapperComponent,\n DividerComponent,\n ProgressComponent,\n ScrollNavComponent,\n ScrollNavContentComponent,\n ScrollNavSidebarComponent,\n CodeComponent,\n DrawerComponent,\n DropdownMenuComponent,\n DropdownMenuItemComponent,\n GallerySliderComponent,\n CarouselItemComponent,\n CarouselCaptionComponent,\n PaginatorComponent,\n SelectComponent,\n InputSpinnerComponent,\n PPageComponent,\n InputAutocompleteComponent,\n CustomSelectComponent,\n CalendarComponent,\n DatepickerComponent,\n DateRangePickerComponent,\n TreeComponent,\n StepperComponent,\n StepComponent,\n StarRatingComponent,\n StarComponent,\n ProductGalleryComponent,\n BaseButtonDirective,\n IconButtonDirective,\n StrokedButtonDirective,\n IconStrokedButtonDirective,\n BaseLinkDirective,\n BaseTabIconDirective,\n BaseListItemDirective,\n ClickOutsideDirective,\n ScrollToDirective,\n BaseBadgeIconDirective,\n TooltipDirective,\n FilterPipe,\n DropdownMenuDirective,\n BaseDropdownMenuItemDirective,\n DrawerDirective,\n BaseBadgeAddon,\n ContainerDirective,\n BaseInputDirective,\n BaseTextareaDirective,\n CodeDirective,\n BaseGroupButtonDirective,\n BaseAddonEndDirective,\n BaseAddonStartDirective,\n BaseHeadingDirective,\n ScrollNavItemDirective,\n SliderDirective,\n AlertDismissDirective,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n IconModule,\n ClipboardModule,\n FormsModule,\n ReactiveFormsModule,\n ...SHARED_STANDALONE,\n ],\n exports: [\n FormsModule,\n ReactiveFormsModule,\n IconModule,\n ...SHARED_STANDALONE,\n ],\n})\nexport class BaseUIModule {}\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-dialog-body',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dialog-body.component.html',\n})\nexport class DialogBodyComponent {\n @Input() height?: number;\n}\n","<div\n class=\"relative p-16 text-sm text-slate-700 dark:text-slate-200 overflow-y-auto overflow-x-hidden max-h-[calc(100vh-160px)]\"\n [ngStyle]=\"{ height: height ? height + 'px' : 'auto' }\">\n <ng-content></ng-content>\n</div>","import { ComponentRef, ApplicationRef, Injectable } from '@angular/core';\nimport { DialogContainer } from './dialog-container';\n\n@Injectable()\nexport class DialogContext<T = any> {\n private componentRef?: ComponentRef<DialogContainer>;\n private appRef?: ApplicationRef;\n \n data?: T;\n public _resolve?: (value: any) => void;\n public _reject?: (reason: any) => void;\n private _promise?: Promise<any>;\n\n constructor(componentRef?: ComponentRef<DialogContainer>) {\n if (componentRef) {\n this.componentRef = componentRef;\n }\n }\n\n private hide() {\n if (this.appRef && this.componentRef) {\n this.appRef.detachView(this.componentRef.hostView);\n this.componentRef.destroy();\n }\n }\n\n close(result?: any) {\n this.hide();\n if (this._resolve) {\n this._resolve(result);\n }\n }\n\n reject(reason?: any) {\n this.hide();\n if (this._reject) {\n this._reject(reason);\n }\n }\n\n public promise(\n componentRef: ComponentRef<DialogContainer>,\n appRef: ApplicationRef\n ): Promise<any> {\n if (!this._promise) {\n this._promise = new Promise((resolve, reject) => {\n this.componentRef = componentRef;\n this.appRef = appRef;\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n return this._promise;\n }\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { DialogContext } from './dialog-context';\n\n@Directive({\n selector: '[base-dialog-close]',\n standalone: true,\n host: {\n '(click)': '_onButtonClick($event)',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.type]': 'type',\n },\n})\nexport class DialogCloseDirective {\n @Input() ariaLabel?: string;\n @Input() type = 'button';\n\n private dialog = inject(DialogContext, { optional: true });\n\n _onButtonClick(event: MouseEvent) {\n if (this.dialog) {\n this.dialog.close();\n }\n }\n}\n","import { Component, HostBinding, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { animate, style, transition, trigger, animateChild, query } from '@angular/animations';\nimport { DialogContainer } from '../dialog-container';\nimport { DialogContext } from '../dialog-context';\n\n@Component({\n selector: 'base-dialog-container',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dialog-container.component.html',\n animations: [\n trigger('host', [\n transition(':leave', [query('@backdrop,@box', [animateChild()], { optional: true })]),\n transition(':enter', [query('@backdrop,@box', [animateChild()], { optional: true })]),\n ]),\n trigger('box', [\n transition(':enter', [\n style({ transform: 'scale(0.5)', opacity: 0 }),\n animate('200ms ease-out', style({ transform: 'scale(1.05)', opacity: 1 })),\n animate('100ms ease-out', style({ transform: 'scale(1)' })),\n ]),\n transition(':leave', [\n animate('100ms ease-in', style({ transform: 'scale(1.05)' })),\n animate('200ms ease-in', style({ transform: 'scale(0.5)', opacity: 0 })),\n ]),\n ]),\n trigger('backdrop', [\n transition(':enter', [\n style({ opacity: 0 }),\n animate('230ms ease-in', style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate('230ms ease-out', style({ opacity: 0 })),\n ]),\n ]),\n ],\n})\nexport class DialogContainerComponent implements DialogContainer {\n @HostBinding('@host') hostAnimation = true;\n className = '';\n \n @ViewChild('container', { read: ViewContainerRef, static: true }) \n container!: ViewContainerRef;\n \n context!: DialogContext<any>;\n}\n","<div class=\"fixed inset-0 flex items-center justify-center z-[999]\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-slate-900/50 dark:bg-slate-900/80 backdrop-blur-sm\" [class.cursor-pointer]=\"!!context\"\n [@backdrop] (click)=\"context?.close()\">\n </div>\n\n <!-- Dialog Box -->\n <div\n class=\"relative bg-white dark:bg-slate-800 rounded-xl shadow overflow-hidden max-w-full-panel max-h-full-panel flex flex-col\"\n [@box]>\n <ng-container #container></ng-container>\n </div>\n</div>","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-dialog-footer',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dialog-footer.component.html',\n})\nexport class DialogFooterComponent {}\n","<div class=\"flex justify-end gap-16 p-16 border-t border-slate-200 dark:border-slate-800\">\n <ng-content></ng-content>\n</div>","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-dialog-header',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dialog-header.component.html',\n})\nexport class DialogHeaderComponent {}\n","<div\n class=\"flex justify-between items-center p-16 text-lg font-bold border-b border-slate-200 dark:border-slate-800 text-slate-900 dark:text-white\">\n <ng-content></ng-content>\n</div>","import {\n ApplicationRef,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n Type,\n inject,\n createComponent,\n EnvironmentInjector,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DialogContainer } from './dialog-container';\nimport { DialogContainerComponent } from './dialog-container/dialog-container.component';\nimport { DialogContext } from './dialog-context';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DialogService {\n dialogBehaviour: Subject<any> = new Subject();\n \n private appRef = inject(ApplicationRef);\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n open<T>(\n type: Type<any>,\n data?: any,\n className?: string,\n options: { hideOnBackdropClick?: boolean; containerType?: Type<any> } = {}\n ): Subject<any> {\n const dialogResult = new Subject<any>();\n const finalOptions = {\n hideOnBackdropClick: true,\n containerType: DialogContainerComponent,\n ...options\n };\n\n const containerRef = this.createContainer(finalOptions.containerType);\n containerRef.instance.className = className || '';\n containerRef.changeDetectorRef.detectChanges();\n \n const checkContainer = setInterval(() => {\n if (containerRef.instance.container) {\n clearInterval(checkContainer);\n \n const dialogContext = new DialogContext(containerRef as any);\n dialogContext.data = data;\n \n if (finalOptions.hideOnBackdropClick !== false) {\n containerRef.instance.context = dialogContext;\n containerRef.changeDetectorRef.detectChanges();\n }\n\n const dialogInjector = Injector.create({\n providers: [{ provide: DialogContext, useValue: dialogContext }],\n parent: containerRef.instance.container.injector\n });\n\n const componentRef = containerRef.instance.container.createComponent(type, {\n index: 0,\n injector: dialogInjector\n });\n\n dialogContext.promise(containerRef as any, this.appRef).then(result => {\n dialogResult.next(result);\n dialogResult.complete();\n });\n \n containerRef.changeDetectorRef.detectChanges();\n }\n }, 5);\n\n return dialogResult;\n }\n\n private createContainer(containerType: Type<any>): ComponentRef<DialogContainer> {\n const componentRef = createComponent(containerType, {\n environmentInjector: this.environmentInjector,\n elementInjector: this.injector\n });\n\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n \n return componentRef as ComponentRef<DialogContainer>;\n }\n}\n","import { AfterViewInit, Component, ContentChild, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogBodyComponent } from '../dialog-body/dialog-body.component';\n\n@Component({\n selector: 'base-dialog',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './dialog.component.html',\n})\nexport class DialogComponent implements AfterViewInit {\n @Input() width?: number;\n @Input() height?: number;\n \n @ContentChild(DialogBodyComponent) bodyComponent?: DialogBodyComponent;\n\n ngAfterViewInit(): void {\n if (this.bodyComponent && this.height) {\n setTimeout(() => {\n if (this.bodyComponent) {\n this.bodyComponent.height = this.height;\n }\n });\n }\n }\n}\n","<div [ngStyle]=\"{ 'max-width': width ? width + 'px' : 'none' }\" class=\"w-full\">\n <ng-content></ng-content>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogContainerComponent } from './dialog-container/dialog-container.component';\nimport { DialogService } from './dialog.service';\nimport { DialogBodyComponent } from './dialog-body/dialog-body.component';\nimport { DialogFooterComponent } from './dialog-footer/dialog-footer.component';\nimport { DialogHeaderComponent } from './dialog-header/dialog-header.component';\nimport { DialogComponent } from './dialog/dialog.component';\nimport { DialogCloseDirective } from './dialog-close.directive';\n\nconst DIALOG_COMPONENTS = [\n DialogContainerComponent,\n DialogBodyComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogComponent,\n DialogCloseDirective,\n];\n\n@NgModule({\n imports: [CommonModule, ...DIALOG_COMPONENTS],\n exports: [...DIALOG_COMPONENTS],\n providers: [DialogService],\n})\nexport class DialogModule {}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'base-scroll-nav-item',\n standalone: true,\n imports: [CommonModule],\n template: '<ng-content></ng-content>',\n host: {\n class: 'block'\n }\n})\nexport class ScrollNavItemComponent {}\n","import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n private renderer: Renderer2;\n private currentTheme: 'light' | 'dark' = 'dark';\n\n constructor(rendererFactory: RendererFactory2) {\n this.renderer = rendererFactory.createRenderer(null, null);\n const savedTheme = localStorage.getItem('theme') as 'light' | 'dark';\n if (savedTheme) {\n this.setTheme(savedTheme);\n } else {\n // Default to dark if not set, or you could detect browser preference\n this.setTheme('dark');\n }\n }\n\n toggleTheme() {\n this.setTheme(this.currentTheme === 'light' ? 'dark' : 'light');\n }\n\n setTheme(theme: 'light' | 'dark') {\n this.currentTheme = theme;\n localStorage.setItem('theme', theme);\n const html = document.documentElement;\n if (theme === 'dark') {\n this.renderer.addClass(html, 'dark');\n } else {\n this.renderer.removeClass(html, 'dark');\n }\n }\n\n get isDarkMode() {\n return this.currentTheme === 'dark';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent","i1","i1.IconComponent","i1.CurrentScreenSizeService","i2"],"mappings":"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"}