@balinasoftware/balinaui-components 3.3.2 → 3.3.4
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.
|
@@ -7,10 +7,10 @@ import { RouterModule } from '@angular/router';
|
|
|
7
7
|
import { MatIconModule } from '@angular/material/icon';
|
|
8
8
|
|
|
9
9
|
class BalinauiComponents {
|
|
10
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
11
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.
|
|
10
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: BalinauiComponents, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: BalinauiComponents, isStandalone: true, selector: "lib-balinaui-components", ngImport: i0, template: ` <p>balinaui-components works!</p> `, isInline: true, styles: [""] });
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: BalinauiComponents, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
15
|
args: [{ selector: 'lib-balinaui-components', imports: [], template: ` <p>balinaui-components works!</p> ` }]
|
|
16
16
|
}] });
|
|
@@ -67,10 +67,10 @@ class Navbar {
|
|
|
67
67
|
this.isDropdownOpen = false;
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
71
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.
|
|
70
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: Navbar, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: Navbar, isStandalone: true, selector: "lib-navbar", inputs: { brand: "brand", logoAlt: "logoAlt", image: "image", links: "links", initiallyLoggedIn: "initiallyLoggedIn", user: "user", notificationIcon: "notificationIcon", profileIcon: "profileIcon", userIcon: "userIcon", logoutIcon: "logoutIcon" }, outputs: { login: "login", logout: "logout" }, host: { listeners: { "document:mousedown": "onDocumentClick($event)" } }, ngImport: i0, template: "<header class=\"anv-navbar\">\n\n <!--TOP STRIPE-->\n <div class=\"anv-topbar\"></div>\n <!--NAVBAR-->\n <div class=\"anv-stripes\">\n <div class=\"anv-content\">\n\n <!--BRAND / LOGO-->\n <img *ngIf=\"image\" [src]=\"image\" [alt]=\"logoAlt\" class=\"anv-brand-icon\" />\n <span *ngIf=\"brand\" class=\"anv-brand-name\">\n {{ brand }}\n </span>\n\n <!--NAVIGATION LINKS-->\n <nav class=\"anv-links\" aria-label=\"Main navigation\">\n <a *ngFor=\"let link of links\" [routerLink]=\"link.url\" routerLinkActive=\"anv-link-active\"\n [routerLinkActiveOptions]=\"{ exact: true }\" class=\"anv-link\">\n {{ link.label }}\n </a>\n </nav>\n\n\n <!--ACTIONS-->\n <div class=\"anv-actions\">\n <!--NOTIFICATION-->\n <button type=\"button\" class=\"anv-icon-btn\" aria-label=\"Notifications\">\n <span class=\"material-icons\">\n {{ notificationIcon }}\n </span>\n </button>\n\n \n <!--DIVIDER-->\n <span class=\"anv-divider\"></span>\n\n <!--LOGIN-->\n <button *ngIf=\"!isLoggedIn\" type=\"button\" class=\"anv-login-btn\" (click)=\"handleLoginClick()\">\n Login\n </button>\n\n <!--PROFILE-->\n <div *ngIf=\"isLoggedIn\" class=\"anv-profile-wrap\">\n\n <!-- PROFILE BUTTON -->\n <button type=\"button\" class=\"anv-profile-btn\" (click)=\"handleProfileClick()\"\n [attr.aria-expanded]=\"isDropdownOpen\" aria-haspopup=\"true\" aria-label=\"User profile\">\n <img *ngIf=\"user.image\" [src]=\"user.image\" [alt]=\"user.name\" class=\"anv-profile-image\" />\n <span *ngIf=\"!user.image\" class=\"material-icons\">\n {{ profileIcon }}\n </span>\n \n </button>\n\n <!-- PROFILE DROPDOWN-->\n\n <div *ngIf=\"isDropdownOpen\" class=\"anv-dropdown\">\n <!-- USER INFORMATION -->\n <div class=\"anv-dropdown-header\">\n <!-- USER IMAGE -->\n <div class=\"anv-dropdown-avatar\">\n <img *ngIf=\"user.image\" [src]=\"user.image\" [alt]=\"user.name\" />\n <span *ngIf=\"!user.image\" class=\"material-icons\">\n {{ userIcon }}\n </span>\n </div>\n\n <!-- USER DETAILS -->\n\n <div class=\"anv-dropdown-info\">\n <span class=\"anv-dropdown-name\">\n {{ user.name }}\n </span>\n <span class=\"anv-dropdown-email\">\n {{ user.email }}\n </span>\n <span *ngIf=\"user.role\" class=\"anv-dropdown-role\">\n {{ user.role }}\n </span>\n </div>\n </div>\n\n <!-- DIVIDER -->\n <hr class=\"anv-dropdown-sep\">\n <!-- LOGOUT -->\n <button type=\"button\" class=\"anv-dropdown-item anv-logout\" (click)=\"handleLogoutClick()\">\n <span class=\"material-icons\">\n {{ logoutIcon }}\n </span>\n <span>\n Log out\n </span>\n </button>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n</header>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";*,*:before,*:after{box-sizing:border-box}.anv-navbar{display:flex;font-family:Inter,Arial,sans-serif;background:#fff;position:relative;z-index:1000}.anv-stripes{width:100%;background:#fff;border-bottom:1px solid #e6e6e6;box-shadow:0 2px 12px #0000000d}.anv-content{width:min(1350px,100%);margin:auto 20px auto auto;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:18px clamp(50px,3vw,60px)}.anv-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.anv-brand-icon{width:clamp(60px,7vw,100px);height:auto;object-fit:contain;transition:.3s}.anv-brand-icon:hover{transform:scale(1.08)}.anv-brand-name{font-size:22px;font-weight:700;color:#1f4d4a;white-space:nowrap}.anv-links{display:flex;justify-content:right;align-items:center;flex:1;gap:clamp(18px,3vw,40px);min-width:0}.anv-link{position:relative;text-decoration:none;color:#555;font-size:17px;font-weight:600;transition:.3s;white-space:nowrap}.anv-link:hover{color:#1f4d4a}.anv-link:after{content:\"\";position:absolute;left:0;bottom:-8px;width:0;height:2px;background:#1f4d4a;transition:.3s}.anv-link:hover:after{width:100%}.anv-actions{display:flex;align-items:center;gap:18px;flex-shrink:0;margin-left:auto}.anv-icon-btn{width:42px;height:42px;display:flex;justify-content:center;align-items:center;border:none;background:none;cursor:pointer;transition:.3s;border-radius:50%}.anv-icon-btn:hover{background:#f4f4f4;transform:translateY(-2px)}.anv-divider{width:1px;height:32px;background:#d8d8d8}.anv-login-btn{padding:10px 24px;border:none;border-radius:30px;background:#1f4d4a;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:.3s}.anv-login-btn:hover{background:#163836;transform:translateY(-2px);box-shadow:0 8px 18px #0000002e}.anv-login-btn:active{transform:scale(.96)}.anv-profile-wrap{position:relative}.anv-profile-btn{width:48px;height:48px;border:none;border-radius:50%;background:#111;color:#fff;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:.3s}.anv-profile-btn:hover{transform:scale(1.08);box-shadow:0 8px 18px #00000026}.anv-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:260px;background:#fff;border-radius:14px;box-shadow:0 12px 30px #0000002e;overflow:hidden;animation:dropdown .25s ease;z-index:999}@keyframes dropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.anv-dropdown-header{display:flex;align-items:center;gap:12px;padding:16px}.anv-dropdown-avatar{width:45px;height:45px;border-radius:50%;background:#111;color:#fff;display:flex;justify-content:center;align-items:center;font-weight:700}.anv-dropdown-info{display:flex;flex-direction:column;overflow:hidden}.anv-dropdown-name{font-weight:700;font-size:15px}.anv-dropdown-email{font-size:13px;color:#777;overflow:hidden;text-overflow:ellipsis}.anv-dropdown-sep{border:none;border-top:1px solid #eee;margin:0}.anv-dropdown-item{width:100%;padding:14px 18px;background:none;border:none;cursor:pointer;text-align:left;font-size:15px;transition:.3s}.anv-dropdown-item:hover{background:#f7f7f7}.anv-logout{color:#d32f2f;font-weight:600}@media(max-width:992px){.anv-content{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 20px;gap:12px}.anv-brand{flex-shrink:0}.anv-brand-icon{width:90px}.anv-links{flex:1;display:flex;justify-content:center;gap:18px;min-width:0;overflow:hidden}.anv-link{font-size:14px}.anv-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.anv-login-btn{padding:8px 16px;font-size:13px}.anv-profile-btn{width:40px;height:40px}}@media(max-width:768px){.anv-content{padding:12px 16px;gap:10px}.anv-brand-icon{width:80px}.anv-link{font-size:13px}.anv-links{gap:10px;overflow-x:auto;scrollbar-width:none}.anv-links::-webkit-scrollbar{display:none}.anv-login-btn{padding:7px 12px;font-size:12px}.anv-profile-btn{width:36px;height:36px}}.anv-navbar,.anv-stripes{width:100%;background:#fff}.anv-content{width:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "ngmodule", type: MatIconModule }] });
|
|
72
72
|
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: Navbar, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
75
|
args: [{ selector: 'lib-navbar', standalone: true, imports: [CommonModule, RouterModule, MatIconModule], template: "<header class=\"anv-navbar\">\n\n <!--TOP STRIPE-->\n <div class=\"anv-topbar\"></div>\n <!--NAVBAR-->\n <div class=\"anv-stripes\">\n <div class=\"anv-content\">\n\n <!--BRAND / LOGO-->\n <img *ngIf=\"image\" [src]=\"image\" [alt]=\"logoAlt\" class=\"anv-brand-icon\" />\n <span *ngIf=\"brand\" class=\"anv-brand-name\">\n {{ brand }}\n </span>\n\n <!--NAVIGATION LINKS-->\n <nav class=\"anv-links\" aria-label=\"Main navigation\">\n <a *ngFor=\"let link of links\" [routerLink]=\"link.url\" routerLinkActive=\"anv-link-active\"\n [routerLinkActiveOptions]=\"{ exact: true }\" class=\"anv-link\">\n {{ link.label }}\n </a>\n </nav>\n\n\n <!--ACTIONS-->\n <div class=\"anv-actions\">\n <!--NOTIFICATION-->\n <button type=\"button\" class=\"anv-icon-btn\" aria-label=\"Notifications\">\n <span class=\"material-icons\">\n {{ notificationIcon }}\n </span>\n </button>\n\n \n <!--DIVIDER-->\n <span class=\"anv-divider\"></span>\n\n <!--LOGIN-->\n <button *ngIf=\"!isLoggedIn\" type=\"button\" class=\"anv-login-btn\" (click)=\"handleLoginClick()\">\n Login\n </button>\n\n <!--PROFILE-->\n <div *ngIf=\"isLoggedIn\" class=\"anv-profile-wrap\">\n\n <!-- PROFILE BUTTON -->\n <button type=\"button\" class=\"anv-profile-btn\" (click)=\"handleProfileClick()\"\n [attr.aria-expanded]=\"isDropdownOpen\" aria-haspopup=\"true\" aria-label=\"User profile\">\n <img *ngIf=\"user.image\" [src]=\"user.image\" [alt]=\"user.name\" class=\"anv-profile-image\" />\n <span *ngIf=\"!user.image\" class=\"material-icons\">\n {{ profileIcon }}\n </span>\n \n </button>\n\n <!-- PROFILE DROPDOWN-->\n\n <div *ngIf=\"isDropdownOpen\" class=\"anv-dropdown\">\n <!-- USER INFORMATION -->\n <div class=\"anv-dropdown-header\">\n <!-- USER IMAGE -->\n <div class=\"anv-dropdown-avatar\">\n <img *ngIf=\"user.image\" [src]=\"user.image\" [alt]=\"user.name\" />\n <span *ngIf=\"!user.image\" class=\"material-icons\">\n {{ userIcon }}\n </span>\n </div>\n\n <!-- USER DETAILS -->\n\n <div class=\"anv-dropdown-info\">\n <span class=\"anv-dropdown-name\">\n {{ user.name }}\n </span>\n <span class=\"anv-dropdown-email\">\n {{ user.email }}\n </span>\n <span *ngIf=\"user.role\" class=\"anv-dropdown-role\">\n {{ user.role }}\n </span>\n </div>\n </div>\n\n <!-- DIVIDER -->\n <hr class=\"anv-dropdown-sep\">\n <!-- LOGOUT -->\n <button type=\"button\" class=\"anv-dropdown-item anv-logout\" (click)=\"handleLogoutClick()\">\n <span class=\"material-icons\">\n {{ logoutIcon }}\n </span>\n <span>\n Log out\n </span>\n </button>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n</header>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";*,*:before,*:after{box-sizing:border-box}.anv-navbar{display:flex;font-family:Inter,Arial,sans-serif;background:#fff;position:relative;z-index:1000}.anv-stripes{width:100%;background:#fff;border-bottom:1px solid #e6e6e6;box-shadow:0 2px 12px #0000000d}.anv-content{width:min(1350px,100%);margin:auto 20px auto auto;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:18px clamp(50px,3vw,60px)}.anv-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.anv-brand-icon{width:clamp(60px,7vw,100px);height:auto;object-fit:contain;transition:.3s}.anv-brand-icon:hover{transform:scale(1.08)}.anv-brand-name{font-size:22px;font-weight:700;color:#1f4d4a;white-space:nowrap}.anv-links{display:flex;justify-content:right;align-items:center;flex:1;gap:clamp(18px,3vw,40px);min-width:0}.anv-link{position:relative;text-decoration:none;color:#555;font-size:17px;font-weight:600;transition:.3s;white-space:nowrap}.anv-link:hover{color:#1f4d4a}.anv-link:after{content:\"\";position:absolute;left:0;bottom:-8px;width:0;height:2px;background:#1f4d4a;transition:.3s}.anv-link:hover:after{width:100%}.anv-actions{display:flex;align-items:center;gap:18px;flex-shrink:0;margin-left:auto}.anv-icon-btn{width:42px;height:42px;display:flex;justify-content:center;align-items:center;border:none;background:none;cursor:pointer;transition:.3s;border-radius:50%}.anv-icon-btn:hover{background:#f4f4f4;transform:translateY(-2px)}.anv-divider{width:1px;height:32px;background:#d8d8d8}.anv-login-btn{padding:10px 24px;border:none;border-radius:30px;background:#1f4d4a;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:.3s}.anv-login-btn:hover{background:#163836;transform:translateY(-2px);box-shadow:0 8px 18px #0000002e}.anv-login-btn:active{transform:scale(.96)}.anv-profile-wrap{position:relative}.anv-profile-btn{width:48px;height:48px;border:none;border-radius:50%;background:#111;color:#fff;cursor:pointer;display:flex;justify-content:center;align-items:center;transition:.3s}.anv-profile-btn:hover{transform:scale(1.08);box-shadow:0 8px 18px #00000026}.anv-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:260px;background:#fff;border-radius:14px;box-shadow:0 12px 30px #0000002e;overflow:hidden;animation:dropdown .25s ease;z-index:999}@keyframes dropdown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.anv-dropdown-header{display:flex;align-items:center;gap:12px;padding:16px}.anv-dropdown-avatar{width:45px;height:45px;border-radius:50%;background:#111;color:#fff;display:flex;justify-content:center;align-items:center;font-weight:700}.anv-dropdown-info{display:flex;flex-direction:column;overflow:hidden}.anv-dropdown-name{font-weight:700;font-size:15px}.anv-dropdown-email{font-size:13px;color:#777;overflow:hidden;text-overflow:ellipsis}.anv-dropdown-sep{border:none;border-top:1px solid #eee;margin:0}.anv-dropdown-item{width:100%;padding:14px 18px;background:none;border:none;cursor:pointer;text-align:left;font-size:15px;transition:.3s}.anv-dropdown-item:hover{background:#f7f7f7}.anv-logout{color:#d32f2f;font-weight:600}@media(max-width:992px){.anv-content{display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 20px;gap:12px}.anv-brand{flex-shrink:0}.anv-brand-icon{width:90px}.anv-links{flex:1;display:flex;justify-content:center;gap:18px;min-width:0;overflow:hidden}.anv-link{font-size:14px}.anv-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.anv-login-btn{padding:8px 16px;font-size:13px}.anv-profile-btn{width:40px;height:40px}}@media(max-width:768px){.anv-content{padding:12px 16px;gap:10px}.anv-brand-icon{width:80px}.anv-link{font-size:13px}.anv-links{gap:10px;overflow-x:auto;scrollbar-width:none}.anv-links::-webkit-scrollbar{display:none}.anv-login-btn{padding:7px 12px;font-size:12px}.anv-profile-btn{width:36px;height:36px}}.anv-navbar,.anv-stripes{width:100%;background:#fff}.anv-content{width:100%;box-sizing:border-box}\n"] }]
|
|
76
76
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { brand: [{
|
|
@@ -173,10 +173,10 @@ class Button {
|
|
|
173
173
|
}
|
|
174
174
|
return styles;
|
|
175
175
|
}
|
|
176
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
177
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.
|
|
176
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: Button, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
177
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: Button, isStandalone: true, selector: "lib-button", inputs: { text: "text", type: "type", variant: "variant", color: "color", customColor: "customColor", hoverColor: "hoverColor", activeColor: "activeColor", textColor: "textColor", borderColor: "borderColor", hoverTextColor: "hoverTextColor", activeTextColor: "activeTextColor", disabledColor: "disabledColor", disabledTextColor: "disabledTextColor", disabledBorderColor: "disabledBorderColor", size: "size", disabled: "disabled" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<button\n [type]=\"type\"\n [disabled]=\"disabled\"\n\n [ngClass]=\"[\n 'lib-button',\n 'lib-button-' + variant,\n 'lib-button-' + color,\n 'lib-button-' + size\n ]\"\n\n [ngStyle]=\"buttonStyles\"\n\n (click)=\"handleClick($event)\"\n>\n {{ text }}\n</button>", styles: [".lib-button{--button-default-color: #2563eb;--button-default-hover-color: #1d4ed8;--button-default-active-color: #1e40af;--button-custom-color: var(--button-default-color);--button-hover-color: var(--button-default-hover-color);--button-active-color: var(--button-default-active-color);--button-text-color: #ffffff;--button-border-color: var(--button-custom-color);--button-hover-text-color: var(--button-text-color);--button-active-text-color: var(--button-text-color);--button-disabled-color: #e5e7eb;--button-disabled-text-color: #9ca3af;--button-disabled-border-color: #d1d5db;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--button-border-color);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .1s ease;outline:none}.lib-button-xs{min-height:28px;padding:5px 10px;font-size:12px;border-radius:6px}.lib-button-sm{min-height:34px;padding:7px 14px;font-size:13px;border-radius:7px}.lib-button-md{min-height:40px;padding:9px 18px;font-size:14px;border-radius:8px}.lib-button-lg{min-height:46px;padding:11px 22px;font-size:16px;border-radius:9px}.lib-button-xl{min-height:54px;padding:13px 28px;font-size:18px;border-radius:10px}.lib-button-solid{background:var(--button-custom-color);border-color:var(--button-border-color);color:var(--button-text-color)}.lib-button-solid:hover:not(:disabled){background:var(--button-hover-color);border-color:var(--button-hover-color);color:var(--button-hover-text-color)}.lib-button-solid:active:not(:disabled){background:var(--button-active-color);border-color:var(--button-active-color);color:var(--button-active-text-color);transform:translateY(1px)}.lib-button-outline{background:transparent;border-color:var(--button-border-color);color:var(--button-custom-color)}.lib-button-outline:hover:not(:disabled){background:var(--button-hover-color);border-color:var(--button-hover-color);color:var(--button-hover-text-color)}.lib-button-outline:active:not(:disabled){background:var(--button-active-color);border-color:var(--button-active-color);color:var(--button-active-text-color);transform:translateY(1px)}.lib-button-ghost{background:transparent;border-color:transparent;color:var(--button-custom-color)}.lib-button-ghost:hover:not(:disabled){background:var(--button-hover-color);border-color:transparent;color:var(--button-hover-text-color)}.lib-button-ghost:active:not(:disabled){background:var(--button-active-color);border-color:transparent;color:var(--button-active-text-color);transform:translateY(1px)}.lib-button-primary{--button-default-color: #2563eb;--button-default-hover-color: #1d4ed8;--button-default-active-color: #1e40af}.lib-button-secondary{--button-default-color: #64748b;--button-default-hover-color: #475569;--button-default-active-color: #334155}.lib-button-success{--button-default-color: #16a34a;--button-default-hover-color: #15803d;--button-default-active-color: #166534}.lib-button-danger{--button-default-color: #dc2626;--button-default-hover-color: #b91c1c;--button-default-active-color: #991b1b}.lib-button-warning{--button-default-color: #f59e0b;--button-default-hover-color: #d97706;--button-default-active-color: #b45309}.lib-button-info{--button-default-color: #0891b2;--button-default-hover-color: #0e7490;--button-default-active-color: #155e75}.lib-button-neutral{--button-default-color: #374151;--button-default-hover-color: #1f2937;--button-default-active-color: #111827}.lib-button-light{--button-default-color: #f8fafc;--button-default-hover-color: #e2e8f0;--button-default-active-color: #cbd5e1;--button-text-color: #1e293b}.lib-button-dark{--button-default-color: #1e293b;--button-default-hover-color: #0f172a;--button-default-active-color: #020617;--button-text-color: #ffffff}.lib-button-link{--button-default-color: #2563eb;--button-default-hover-color: #1d4ed8;--button-default-active-color: #1e40af;background:transparent;border-color:transparent;color:var(--button-custom-color);padding-left:4px;padding-right:4px}.lib-button-link:hover:not(:disabled){background:transparent;border-color:transparent;color:var(--button-hover-color);text-decoration:underline}.lib-button-link:active:not(:disabled){background:transparent;border-color:transparent;color:var(--button-active-color);transform:none}.lib-button:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.lib-button:disabled{background:var(--button-disabled-color)!important;border-color:var(--button-disabled-border-color)!important;color:var(--button-disabled-text-color)!important;cursor:not-allowed;opacity:.8;transform:none!important;box-shadow:none!important}.lib-button-link:disabled{background:transparent!important;border-color:transparent!important;color:var(--button-disabled-text-color)!important;text-decoration:none}@media(max-width:480px){.lib-button-xl{min-height:50px;padding:11px 22px;font-size:16px}.lib-button-lg{min-height:44px;padding:10px 18px;font-size:15px}.lib-button-md{min-height:38px;padding:8px 16px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
178
178
|
}
|
|
179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: Button, decorators: [{
|
|
180
180
|
type: Component,
|
|
181
181
|
args: [{ selector: 'lib-button', standalone: true, imports: [CommonModule], template: "<button\n [type]=\"type\"\n [disabled]=\"disabled\"\n\n [ngClass]=\"[\n 'lib-button',\n 'lib-button-' + variant,\n 'lib-button-' + color,\n 'lib-button-' + size\n ]\"\n\n [ngStyle]=\"buttonStyles\"\n\n (click)=\"handleClick($event)\"\n>\n {{ text }}\n</button>", styles: [".lib-button{--button-default-color: #2563eb;--button-default-hover-color: #1d4ed8;--button-default-active-color: #1e40af;--button-custom-color: var(--button-default-color);--button-hover-color: var(--button-default-hover-color);--button-active-color: var(--button-default-active-color);--button-text-color: #ffffff;--button-border-color: var(--button-custom-color);--button-hover-text-color: var(--button-text-color);--button-active-text-color: var(--button-text-color);--button-disabled-color: #e5e7eb;--button-disabled-text-color: #9ca3af;--button-disabled-border-color: #d1d5db;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--button-border-color);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease,transform .1s ease;outline:none}.lib-button-xs{min-height:28px;padding:5px 10px;font-size:12px;border-radius:6px}.lib-button-sm{min-height:34px;padding:7px 14px;font-size:13px;border-radius:7px}.lib-button-md{min-height:40px;padding:9px 18px;font-size:14px;border-radius:8px}.lib-button-lg{min-height:46px;padding:11px 22px;font-size:16px;border-radius:9px}.lib-button-xl{min-height:54px;padding:13px 28px;font-size:18px;border-radius:10px}.lib-button-solid{background:var(--button-custom-color);border-color:var(--button-border-color);color:var(--button-text-color)}.lib-button-solid:hover:not(:disabled){background:var(--button-hover-color);border-color:var(--button-hover-color);color:var(--button-hover-text-color)}.lib-button-solid:active:not(:disabled){background:var(--button-active-color);border-color:var(--button-active-color);color:var(--button-active-text-color);transform:translateY(1px)}.lib-button-outline{background:transparent;border-color:var(--button-border-color);color:var(--button-custom-color)}.lib-button-outline:hover:not(:disabled){background:var(--button-hover-color);border-color:var(--button-hover-color);color:var(--button-hover-text-color)}.lib-button-outline:active:not(:disabled){background:var(--button-active-color);border-color:var(--button-active-color);color:var(--button-active-text-color);transform:translateY(1px)}.lib-button-ghost{background:transparent;border-color:transparent;color:var(--button-custom-color)}.lib-button-ghost:hover:not(:disabled){background:var(--button-hover-color);border-color:transparent;color:var(--button-hover-text-color)}.lib-button-ghost:active:not(:disabled){background:var(--button-active-color);border-color:transparent;color:var(--button-active-text-color);transform:translateY(1px)}.lib-button-primary{--button-default-color: #2563eb;--button-default-hover-color: #1d4ed8;--button-default-active-color: #1e40af}.lib-button-secondary{--button-default-color: #64748b;--button-default-hover-color: #475569;--button-default-active-color: #334155}.lib-button-success{--button-default-color: #16a34a;--button-default-hover-color: #15803d;--button-default-active-color: #166534}.lib-button-danger{--button-default-color: #dc2626;--button-default-hover-color: #b91c1c;--button-default-active-color: #991b1b}.lib-button-warning{--button-default-color: #f59e0b;--button-default-hover-color: #d97706;--button-default-active-color: #b45309}.lib-button-info{--button-default-color: #0891b2;--button-default-hover-color: #0e7490;--button-default-active-color: #155e75}.lib-button-neutral{--button-default-color: #374151;--button-default-hover-color: #1f2937;--button-default-active-color: #111827}.lib-button-light{--button-default-color: #f8fafc;--button-default-hover-color: #e2e8f0;--button-default-active-color: #cbd5e1;--button-text-color: #1e293b}.lib-button-dark{--button-default-color: #1e293b;--button-default-hover-color: #0f172a;--button-default-active-color: #020617;--button-text-color: #ffffff}.lib-button-link{--button-default-color: #2563eb;--button-default-hover-color: #1d4ed8;--button-default-active-color: #1e40af;background:transparent;border-color:transparent;color:var(--button-custom-color);padding-left:4px;padding-right:4px}.lib-button-link:hover:not(:disabled){background:transparent;border-color:transparent;color:var(--button-hover-color);text-decoration:underline}.lib-button-link:active:not(:disabled){background:transparent;border-color:transparent;color:var(--button-active-color);transform:none}.lib-button:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.lib-button:disabled{background:var(--button-disabled-color)!important;border-color:var(--button-disabled-border-color)!important;color:var(--button-disabled-text-color)!important;cursor:not-allowed;opacity:.8;transform:none!important;box-shadow:none!important}.lib-button-link:disabled{background:transparent!important;border-color:transparent!important;color:var(--button-disabled-text-color)!important;text-decoration:none}@media(max-width:480px){.lib-button-xl{min-height:50px;padding:11px 22px;font-size:16px}.lib-button-lg{min-height:44px;padding:10px 18px;font-size:15px}.lib-button-md{min-height:38px;padding:8px 16px}}\n"] }]
|
|
182
182
|
}], propDecorators: { text: [{
|
|
@@ -224,10 +224,10 @@ class Card {
|
|
|
224
224
|
onCardClick() {
|
|
225
225
|
this.cardClick.emit();
|
|
226
226
|
}
|
|
227
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
228
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.
|
|
227
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: Card, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
228
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: Card, isStandalone: true, selector: "lib-card", inputs: { title: "title", month: "month", day: "day", description: "description" }, outputs: { cardClick: "cardClick" }, ngImport: i0, template: "<div class=\"card mat-elevation-z1\" (click)=\"onCardClick()\" role=\"button\" tabindex=\"0\">\n\n <!-- Title -->\n <h2 class=\"mat-headline-4 card-title\">\n {{ title }}\n </h2>\n\n <!-- Content -->\n <div class=\"card-content\">\n\n <!-- Date -->\n <div class=\"date-box\">\n\n <div class=\"month mat-title-medium\">\n {{ month }}\n </div>\n\n <div class=\"day mat-headline-5\">\n {{ day }}\n </div>\n\n </div>\n\n <!-- Description -->\n <div class=\"description mat-body-large\">\n {{ description }}\n </div>\n\n </div>\n\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.card{width:100%;min-height:180px;box-sizing:border-box;border:3px solid #dedede;border-radius:12px;padding:30px 26px;background:#fff;display:flex;flex-direction:column;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.card:hover{border-color:#c8c8c8;box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.card-title{margin:0 0 34px;font-size:38px;font-weight:700;line-height:1.1}.card-content{display:flex;align-items:center;gap:25px;flex:1;justify-content:center;margin:0 0 0 37px}.date-box{width:92px;min-width:92px;height:96px;border-radius:12px;background:#f3f1ee;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid #d6d1cc}.month{color:#6b1f2b;font-weight:700;font-size:24px;line-height:1}.day{color:#000;font-size:26px;font-weight:700;line-height:1;padding-top:6px}.description{max-width:560px;color:#222;font-size:20px;font-weight:500;line-height:1.3}@media(max-width:768px){.card{padding:25px 20px}.card-title{font-size:32px;margin-bottom:25px}.description{font-size:18px}}@media(max-width:500px){.card{min-height:auto;padding:22px 16px}.card-title{font-size:28px;margin-bottom:22px}.card-content{align-items:flex-start;gap:16px}.date-box{width:75px;min-width:75px;height:85px}.month{font-size:20px}.date-line{width:48px}.day{font-size:23px}.description{font-size:16px}}\n"] });
|
|
229
229
|
}
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: Card, decorators: [{
|
|
231
231
|
type: Component,
|
|
232
232
|
args: [{ selector: 'lib-card', standalone: true, imports: [], template: "<div class=\"card mat-elevation-z1\" (click)=\"onCardClick()\" role=\"button\" tabindex=\"0\">\n\n <!-- Title -->\n <h2 class=\"mat-headline-4 card-title\">\n {{ title }}\n </h2>\n\n <!-- Content -->\n <div class=\"card-content\">\n\n <!-- Date -->\n <div class=\"date-box\">\n\n <div class=\"month mat-title-medium\">\n {{ month }}\n </div>\n\n <div class=\"day mat-headline-5\">\n {{ day }}\n </div>\n\n </div>\n\n <!-- Description -->\n <div class=\"description mat-body-large\">\n {{ description }}\n </div>\n\n </div>\n\n</div>", styles: ["@import\"https://fonts.googleapis.com/icon?family=Material+Icons\";.card{width:100%;min-height:180px;box-sizing:border-box;border:3px solid #dedede;border-radius:12px;padding:30px 26px;background:#fff;display:flex;flex-direction:column;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.card:hover{border-color:#c8c8c8;box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.card-title{margin:0 0 34px;font-size:38px;font-weight:700;line-height:1.1}.card-content{display:flex;align-items:center;gap:25px;flex:1;justify-content:center;margin:0 0 0 37px}.date-box{width:92px;min-width:92px;height:96px;border-radius:12px;background:#f3f1ee;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid #d6d1cc}.month{color:#6b1f2b;font-weight:700;font-size:24px;line-height:1}.day{color:#000;font-size:26px;font-weight:700;line-height:1;padding-top:6px}.description{max-width:560px;color:#222;font-size:20px;font-weight:500;line-height:1.3}@media(max-width:768px){.card{padding:25px 20px}.card-title{font-size:32px;margin-bottom:25px}.description{font-size:18px}}@media(max-width:500px){.card{min-height:auto;padding:22px 16px}.card-title{font-size:28px;margin-bottom:22px}.card-content{align-items:flex-start;gap:16px}.date-box{width:75px;min-width:75px;height:85px}.month{font-size:20px}.date-line{width:48px}.day{font-size:23px}.description{font-size:16px}}\n"] }]
|
|
233
233
|
}], propDecorators: { title: [{
|
|
@@ -247,18 +247,22 @@ class TimeFilter {
|
|
|
247
247
|
value;
|
|
248
248
|
selectedValue;
|
|
249
249
|
selectedValueChange = new EventEmitter();
|
|
250
|
+
clicked = new EventEmitter();
|
|
250
251
|
get selected() {
|
|
251
252
|
return this.value === this.selectedValue;
|
|
252
253
|
}
|
|
253
|
-
onClick() {
|
|
254
|
+
onClick(event) {
|
|
255
|
+
// Tell parent which value was selected
|
|
254
256
|
this.selectedValueChange.emit(this.value);
|
|
257
|
+
// Allow developer to handle their own click event
|
|
258
|
+
this.clicked.emit(event);
|
|
255
259
|
}
|
|
256
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.
|
|
257
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.
|
|
260
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TimeFilter, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
261
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.1", type: TimeFilter, isStandalone: true, selector: "lib-time-filter", inputs: { label: "label", value: "value", selectedValue: "selectedValue" }, outputs: { selectedValueChange: "selectedValueChange", clicked: "clicked" }, ngImport: i0, template: "<div class=\"time-filter\" (click)=\"onClick($event)\" role=\"button\" tabindex=\"0\">\n <div class=\"radio-circle\" [class.selected]=\"selected\">\n <div class=\"radio-dot\"></div>\n </div>\n\n <span class=\"label\">\n {{ label }}\n </span>\n</div>", styles: [".time-filter{display:flex;align-items:center;gap:16px;width:fit-content;cursor:pointer;-webkit-user-select:none;user-select:none}.radio-circle{width:24px;height:24px;border:2px solid #a6a6a6;border-radius:50%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;transition:border-color .2s ease}.radio-dot{width:12px;height:12px;border-radius:50%;background:transparent;transition:background .2s ease}.radio-circle.selected{border-color:#1976d2}.radio-circle.selected .radio-dot{background:#1976d2}.label{font-size:20px;font-weight:400;color:#000;line-height:1}.label:hover{color:#333}\n"] });
|
|
258
262
|
}
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.
|
|
263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: TimeFilter, decorators: [{
|
|
260
264
|
type: Component,
|
|
261
|
-
args: [{ selector: 'lib-time-filter', standalone: true, imports: [], template: "<div class=\"time-filter\" (click)=\"onClick()\" role=\"button\" tabindex=\"0\">\n <div class=\"radio-circle\" [class.selected]=\"selected\">\n <div class=\"radio-dot\"></div>\n </div>\n\n <span class=\"label\">\n {{ label }}\n </span>\n</div>", styles: [".time-filter{display:flex;align-items:center;gap:16px;width:fit-content;cursor:pointer;-webkit-user-select:none;user-select:none}.radio-circle{width:24px;height:24px;border:2px solid #a6a6a6;border-radius:50%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;transition:border-color .2s ease}.radio-dot{width:12px;height:12px;border-radius:50%;background:transparent;transition:background .2s ease}.radio-circle.selected{border-color:#1976d2}.radio-circle.selected .radio-dot{background:#1976d2}.label{font-size:20px;font-weight:400;color:#000;line-height:1}.label:hover{color:#333}\n"] }]
|
|
265
|
+
args: [{ selector: 'lib-time-filter', standalone: true, imports: [], template: "<div class=\"time-filter\" (click)=\"onClick($event)\" role=\"button\" tabindex=\"0\">\n <div class=\"radio-circle\" [class.selected]=\"selected\">\n <div class=\"radio-dot\"></div>\n </div>\n\n <span class=\"label\">\n {{ label }}\n </span>\n</div>", styles: [".time-filter{display:flex;align-items:center;gap:16px;width:fit-content;cursor:pointer;-webkit-user-select:none;user-select:none}.radio-circle{width:24px;height:24px;border:2px solid #a6a6a6;border-radius:50%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;transition:border-color .2s ease}.radio-dot{width:12px;height:12px;border-radius:50%;background:transparent;transition:background .2s ease}.radio-circle.selected{border-color:#1976d2}.radio-circle.selected .radio-dot{background:#1976d2}.label{font-size:20px;font-weight:400;color:#000;line-height:1}.label:hover{color:#333}\n"] }]
|
|
262
266
|
}], propDecorators: { label: [{
|
|
263
267
|
type: Input
|
|
264
268
|
}], value: [{
|
|
@@ -267,6 +271,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.0", ngImpor
|
|
|
267
271
|
type: Input
|
|
268
272
|
}], selectedValueChange: [{
|
|
269
273
|
type: Output
|
|
274
|
+
}], clicked: [{
|
|
275
|
+
type: Output
|
|
270
276
|
}] } });
|
|
271
277
|
|
|
272
278
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balinasoftware-balinaui-components.mjs","sources":["../../../projects/balinaui-components/src/lib/balinaui-components.ts","../../../projects/balinaui-components/src/lib/navbar/navbar.ts","../../../projects/balinaui-components/src/lib/navbar/navbar.html","../../../projects/balinaui-components/src/lib/button/button.ts","../../../projects/balinaui-components/src/lib/button/button.html","../../../projects/balinaui-components/src/lib/card/card.ts","../../../projects/balinaui-components/src/lib/card/card.html","../../../projects/balinaui-components/src/lib/time-filter/time-filter.ts","../../../projects/balinaui-components/src/lib/time-filter/time-filter.html","../../../projects/balinaui-components/src/public-api.ts","../../../projects/balinaui-components/src/balinasoftware-balinaui-components.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-balinaui-components',\n imports: [],\n template: ` <p>balinaui-components works!</p> `,\n styles: ``,\n})\nexport class BalinauiComponents {}\n","import { Component, ElementRef, HostListener, Input, Output, ViewEncapsulation, } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MatIconModule } from '@angular/material/icon';\nexport interface NavLink {\n label: string;\n url: string;\n}\n\nexport interface UserProfile {\n name: any;\n username: string;\n email: string;\n image?: string;\n role?: string;\n initials?: string;\n}\n@Component({\n selector: 'lib-navbar',\n standalone: true,\n imports: [CommonModule, RouterModule, MatIconModule],\n templateUrl: './navbar.html',\n styleUrl: './navbar.css',\n})\nexport class Navbar {\n\n // Brand\n @Input() brand = 'Aero';\n\n @Input() logoAlt = 'Aero logo';\n\n @Input() image = '';\n\n // Navigation\n @Input() links: NavLink[] = [];\n\n // Authentication\n @Input() initiallyLoggedIn = false;\n\n // User profile\n @Input() user: UserProfile = {\n username: 'Guest User',\n email: 'guest@example.com',\n image: '',\n role: 'Guest',\n name: undefined\n };\n\n // Icons\n @Input() notificationIcon = 'notifications';\n\n @Input() profileIcon = 'account_circle';\n\n @Input() userIcon = 'person';\n\n @Input() logoutIcon = 'logout';\n\n // Events\n @Output() login = new EventEmitter<void>();\n\n @Output() logout = new EventEmitter<void>();\n\n isLoggedIn = false;\n isDropdownOpen = false;\n\n constructor(private elementRef: ElementRef) { }\n\n ngOnInit(): void {\n this.isLoggedIn = this.initiallyLoggedIn;\n }\n\n handleLoginClick(): void {\n this.isLoggedIn = true;\n this.login.emit();\n }\n\n handleProfileClick(): void {\n this.isDropdownOpen = !this.isDropdownOpen;\n }\n\n handleLogoutClick(): void {\n this.isLoggedIn = false;\n this.isDropdownOpen = false;\n this.logout.emit();\n }\n\n @HostListener('document:mousedown', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n\n if (\n this.isDropdownOpen &&\n !this.elementRef.nativeElement.contains(event.target)\n ) {\n this.isDropdownOpen = false;\n }\n }\n}\n","<header class=\"anv-navbar\">\n\n <!--TOP STRIPE-->\n <div class=\"anv-topbar\"></div>\n <!--NAVBAR-->\n <div class=\"anv-stripes\">\n <div class=\"anv-content\">\n\n <!--BRAND / LOGO-->\n <img *ngIf=\"image\" [src]=\"image\" [alt]=\"logoAlt\" class=\"anv-brand-icon\" />\n <span *ngIf=\"brand\" class=\"anv-brand-name\">\n {{ brand }}\n </span>\n\n <!--NAVIGATION LINKS-->\n <nav class=\"anv-links\" aria-label=\"Main navigation\">\n <a *ngFor=\"let link of links\" [routerLink]=\"link.url\" routerLinkActive=\"anv-link-active\"\n [routerLinkActiveOptions]=\"{ exact: true }\" class=\"anv-link\">\n {{ link.label }}\n </a>\n </nav>\n\n\n <!--ACTIONS-->\n <div class=\"anv-actions\">\n <!--NOTIFICATION-->\n <button type=\"button\" class=\"anv-icon-btn\" aria-label=\"Notifications\">\n <span class=\"material-icons\">\n {{ notificationIcon }}\n </span>\n </button>\n\n \n <!--DIVIDER-->\n <span class=\"anv-divider\"></span>\n\n <!--LOGIN-->\n <button *ngIf=\"!isLoggedIn\" type=\"button\" class=\"anv-login-btn\" (click)=\"handleLoginClick()\">\n Login\n </button>\n\n <!--PROFILE-->\n <div *ngIf=\"isLoggedIn\" class=\"anv-profile-wrap\">\n\n <!-- PROFILE BUTTON -->\n <button type=\"button\" class=\"anv-profile-btn\" (click)=\"handleProfileClick()\"\n [attr.aria-expanded]=\"isDropdownOpen\" aria-haspopup=\"true\" aria-label=\"User profile\">\n <img *ngIf=\"user.image\" [src]=\"user.image\" [alt]=\"user.name\" class=\"anv-profile-image\" />\n <span *ngIf=\"!user.image\" class=\"material-icons\">\n {{ profileIcon }}\n </span>\n \n </button>\n\n <!-- PROFILE DROPDOWN-->\n\n <div *ngIf=\"isDropdownOpen\" class=\"anv-dropdown\">\n <!-- USER INFORMATION -->\n <div class=\"anv-dropdown-header\">\n <!-- USER IMAGE -->\n <div class=\"anv-dropdown-avatar\">\n <img *ngIf=\"user.image\" [src]=\"user.image\" [alt]=\"user.name\" />\n <span *ngIf=\"!user.image\" class=\"material-icons\">\n {{ userIcon }}\n </span>\n </div>\n\n <!-- USER DETAILS -->\n\n <div class=\"anv-dropdown-info\">\n <span class=\"anv-dropdown-name\">\n {{ user.name }}\n </span>\n <span class=\"anv-dropdown-email\">\n {{ user.email }}\n </span>\n <span *ngIf=\"user.role\" class=\"anv-dropdown-role\">\n {{ user.role }}\n </span>\n </div>\n </div>\n\n <!-- DIVIDER -->\n <hr class=\"anv-dropdown-sep\">\n <!-- LOGOUT -->\n <button type=\"button\" class=\"anv-dropdown-item anv-logout\" (click)=\"handleLogoutClick()\">\n <span class=\"material-icons\">\n {{ logoutIcon }}\n </span>\n <span>\n Log out\n </span>\n </button>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n</header>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nexport type ButtonVariant =\n | 'solid'\n | 'outline'\n | 'ghost';\n\nexport type ButtonColor =\n | 'primary'\n | 'secondary'\n | 'success'\n | 'danger'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'light'\n | 'dark'\n | 'link';\n\nexport type ButtonSize =\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl';\n\n@Component({\n selector: 'lib-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './button.html',\n styleUrl: './button.css',\n})\nexport class Button {\n // CONTENT\n @Input() text = 'Button';\n // BUTTON TYPE\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n // VARIANT\n @Input() variant: ButtonVariant = 'solid';\n // STANDARD COLOR\n @Input() color: ButtonColor = 'primary';\n // CUSTOM COLORS\n @Input() customColor?: string;\n @Input() hoverColor?: string;\n @Input() activeColor?: string;\n @Input() textColor?: string;\n @Input() borderColor?: string;\n @Input() hoverTextColor?: string;\n @Input() activeTextColor?: string;\n @Input() disabledColor?: string;\n @Input() disabledTextColor?: string;\n @Input() disabledBorderColor?: string;\n // SIZE\n @Input() size: ButtonSize = 'md';\n // DISABLED\n @Input() disabled = false;\n // CLICK EVENT\n \n @Output() buttonClick = new EventEmitter<MouseEvent>();\n // CLICK HANDLER\n handleClick(event: MouseEvent): void {\n\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.buttonClick.emit(event);\n }\n\n // CSS VARIABLES\n\n get buttonStyles(): Record<string, string> {\n\n const styles: Record<string, string> = {};\n\n if (this.customColor) {\n styles['--button-custom-color'] = this.customColor;\n }\n\n if (this.hoverColor) {\n styles['--button-hover-color'] = this.hoverColor;\n }\n\n if (this.activeColor) {\n styles['--button-active-color'] = this.activeColor;\n }\n\n if (this.textColor) {\n styles['--button-text-color'] = this.textColor;\n }\n\n if (this.borderColor) {\n styles['--button-border-color'] = this.borderColor;\n }\n\n if (this.hoverTextColor) {\n styles['--button-hover-text-color'] = this.hoverTextColor;\n }\n\n if (this.activeTextColor) {\n styles['--button-active-text-color'] = this.activeTextColor;\n }\n\n if (this.disabledColor) {\n styles['--button-disabled-color'] = this.disabledColor;\n }\n\n if (this.disabledTextColor) {\n styles['--button-disabled-text-color'] =\n this.disabledTextColor;\n }\n\n if (this.disabledBorderColor) {\n styles['--button-disabled-border-color'] =\n this.disabledBorderColor;\n }\n\n return styles;\n }\n}","<button\n [type]=\"type\"\n [disabled]=\"disabled\"\n\n [ngClass]=\"[\n 'lib-button',\n 'lib-button-' + variant,\n 'lib-button-' + color,\n 'lib-button-' + size\n ]\"\n\n [ngStyle]=\"buttonStyles\"\n\n (click)=\"handleClick($event)\"\n>\n {{ text }}\n</button>","import { Component , Input ,Output ,EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'lib-card',\n standalone: true,\n imports: [],\n templateUrl: './card.html',\n styleUrl: './card.css',\n})\nexport class Card {\n @Input() title: string = 'Last 24 hours';\n\n @Input() month: string = 'Jul';\n\n @Input() day: string | number = 9;\n\n @Input() description: string =\n '156 flights were monitored with 96.8% on-time performance. Minor delays occurred due to weather and air traffic.';\n\n @Output() cardClick = new EventEmitter<void>();\n\n onCardClick(): void {\n this.cardClick.emit();\n }\n}\n","<div class=\"card mat-elevation-z1\" (click)=\"onCardClick()\" role=\"button\" tabindex=\"0\">\n\n <!-- Title -->\n <h2 class=\"mat-headline-4 card-title\">\n {{ title }}\n </h2>\n\n <!-- Content -->\n <div class=\"card-content\">\n\n <!-- Date -->\n <div class=\"date-box\">\n\n <div class=\"month mat-title-medium\">\n {{ month }}\n </div>\n\n <div class=\"day mat-headline-5\">\n {{ day }}\n </div>\n\n </div>\n\n <!-- Description -->\n <div class=\"description mat-body-large\">\n {{ description }}\n </div>\n\n </div>\n\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'lib-time-filter',\n standalone: true,\n imports: [],\n templateUrl: './time-filter.html',\n styleUrl: './time-filter.css',\n})\nexport class TimeFilter {\n\n @Input() label: string = '';\n\n @Input() value!: string;\n\n @Input() selectedValue!: string;\n\n @Output() selectedValueChange = new EventEmitter<string>();\n\n get selected(): boolean {\n return this.value === this.selectedValue;\n }\n\n onClick(): void {\n this.selectedValueChange.emit(this.value);\n }\n}\n","<div class=\"time-filter\" (click)=\"onClick()\" role=\"button\" tabindex=\"0\">\n <div class=\"radio-circle\" [class.selected]=\"selected\">\n <div class=\"radio-dot\"></div>\n </div>\n\n <span class=\"label\">\n {{ label }}\n </span>\n</div>","/*\n * Public API Surface of balinaui-components\n */\n\nexport * from './lib/balinaui-components';\nexport * from './lib/navbar/navbar';\nexport * from './lib/button/button';\nexport * from './lib/card/card';\nexport * from './lib/time-filter/time-filter';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"balinasoftware-balinaui-components.mjs","sources":["../../../projects/balinaui-components/src/lib/balinaui-components.ts","../../../projects/balinaui-components/src/lib/navbar/navbar.ts","../../../projects/balinaui-components/src/lib/navbar/navbar.html","../../../projects/balinaui-components/src/lib/button/button.ts","../../../projects/balinaui-components/src/lib/button/button.html","../../../projects/balinaui-components/src/lib/card/card.ts","../../../projects/balinaui-components/src/lib/card/card.html","../../../projects/balinaui-components/src/lib/time-filter/time-filter.ts","../../../projects/balinaui-components/src/lib/time-filter/time-filter.html","../../../projects/balinaui-components/src/public-api.ts","../../../projects/balinaui-components/src/balinasoftware-balinaui-components.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-balinaui-components',\n imports: [],\n template: ` <p>balinaui-components works!</p> `,\n styles: ``,\n})\nexport class BalinauiComponents {}\n","import { Component, ElementRef, HostListener, Input, Output, ViewEncapsulation, } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MatIconModule } from '@angular/material/icon';\nexport interface NavLink {\n label: string;\n url: string;\n}\n\nexport interface UserProfile {\n name: any;\n username: string;\n email: string;\n image?: string;\n role?: string;\n initials?: string;\n}\n@Component({\n selector: 'lib-navbar',\n standalone: true,\n imports: [CommonModule, RouterModule, MatIconModule],\n templateUrl: './navbar.html',\n styleUrl: './navbar.css',\n})\nexport class Navbar {\n\n // Brand\n @Input() brand = 'Aero';\n\n @Input() logoAlt = 'Aero logo';\n\n @Input() image = '';\n\n // Navigation\n @Input() links: NavLink[] = [];\n\n // Authentication\n @Input() initiallyLoggedIn = false;\n\n // User profile\n @Input() user: UserProfile = {\n username: 'Guest User',\n email: 'guest@example.com',\n image: '',\n role: 'Guest',\n name: undefined\n };\n\n // Icons\n @Input() notificationIcon = 'notifications';\n\n @Input() profileIcon = 'account_circle';\n\n @Input() userIcon = 'person';\n\n @Input() logoutIcon = 'logout';\n\n // Events\n @Output() login = new EventEmitter<void>();\n\n @Output() logout = new EventEmitter<void>();\n\n isLoggedIn = false;\n isDropdownOpen = false;\n\n constructor(private elementRef: ElementRef) { }\n\n ngOnInit(): void {\n this.isLoggedIn = this.initiallyLoggedIn;\n }\n\n handleLoginClick(): void {\n this.isLoggedIn = true;\n this.login.emit();\n }\n\n handleProfileClick(): void {\n this.isDropdownOpen = !this.isDropdownOpen;\n }\n\n handleLogoutClick(): void {\n this.isLoggedIn = false;\n this.isDropdownOpen = false;\n this.logout.emit();\n }\n\n @HostListener('document:mousedown', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n\n if (\n this.isDropdownOpen &&\n !this.elementRef.nativeElement.contains(event.target)\n ) {\n this.isDropdownOpen = false;\n }\n }\n}\n","<header class=\"anv-navbar\">\n\n <!--TOP STRIPE-->\n <div class=\"anv-topbar\"></div>\n <!--NAVBAR-->\n <div class=\"anv-stripes\">\n <div class=\"anv-content\">\n\n <!--BRAND / LOGO-->\n <img *ngIf=\"image\" [src]=\"image\" [alt]=\"logoAlt\" class=\"anv-brand-icon\" />\n <span *ngIf=\"brand\" class=\"anv-brand-name\">\n {{ brand }}\n </span>\n\n <!--NAVIGATION LINKS-->\n <nav class=\"anv-links\" aria-label=\"Main navigation\">\n <a *ngFor=\"let link of links\" [routerLink]=\"link.url\" routerLinkActive=\"anv-link-active\"\n [routerLinkActiveOptions]=\"{ exact: true }\" class=\"anv-link\">\n {{ link.label }}\n </a>\n </nav>\n\n\n <!--ACTIONS-->\n <div class=\"anv-actions\">\n <!--NOTIFICATION-->\n <button type=\"button\" class=\"anv-icon-btn\" aria-label=\"Notifications\">\n <span class=\"material-icons\">\n {{ notificationIcon }}\n </span>\n </button>\n\n \n <!--DIVIDER-->\n <span class=\"anv-divider\"></span>\n\n <!--LOGIN-->\n <button *ngIf=\"!isLoggedIn\" type=\"button\" class=\"anv-login-btn\" (click)=\"handleLoginClick()\">\n Login\n </button>\n\n <!--PROFILE-->\n <div *ngIf=\"isLoggedIn\" class=\"anv-profile-wrap\">\n\n <!-- PROFILE BUTTON -->\n <button type=\"button\" class=\"anv-profile-btn\" (click)=\"handleProfileClick()\"\n [attr.aria-expanded]=\"isDropdownOpen\" aria-haspopup=\"true\" aria-label=\"User profile\">\n <img *ngIf=\"user.image\" [src]=\"user.image\" [alt]=\"user.name\" class=\"anv-profile-image\" />\n <span *ngIf=\"!user.image\" class=\"material-icons\">\n {{ profileIcon }}\n </span>\n \n </button>\n\n <!-- PROFILE DROPDOWN-->\n\n <div *ngIf=\"isDropdownOpen\" class=\"anv-dropdown\">\n <!-- USER INFORMATION -->\n <div class=\"anv-dropdown-header\">\n <!-- USER IMAGE -->\n <div class=\"anv-dropdown-avatar\">\n <img *ngIf=\"user.image\" [src]=\"user.image\" [alt]=\"user.name\" />\n <span *ngIf=\"!user.image\" class=\"material-icons\">\n {{ userIcon }}\n </span>\n </div>\n\n <!-- USER DETAILS -->\n\n <div class=\"anv-dropdown-info\">\n <span class=\"anv-dropdown-name\">\n {{ user.name }}\n </span>\n <span class=\"anv-dropdown-email\">\n {{ user.email }}\n </span>\n <span *ngIf=\"user.role\" class=\"anv-dropdown-role\">\n {{ user.role }}\n </span>\n </div>\n </div>\n\n <!-- DIVIDER -->\n <hr class=\"anv-dropdown-sep\">\n <!-- LOGOUT -->\n <button type=\"button\" class=\"anv-dropdown-item anv-logout\" (click)=\"handleLogoutClick()\">\n <span class=\"material-icons\">\n {{ logoutIcon }}\n </span>\n <span>\n Log out\n </span>\n </button>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n</header>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nexport type ButtonVariant =\n | 'solid'\n | 'outline'\n | 'ghost';\n\nexport type ButtonColor =\n | 'primary'\n | 'secondary'\n | 'success'\n | 'danger'\n | 'warning'\n | 'info'\n | 'neutral'\n | 'light'\n | 'dark'\n | 'link';\n\nexport type ButtonSize =\n | 'xs'\n | 'sm'\n | 'md'\n | 'lg'\n | 'xl';\n\n@Component({\n selector: 'lib-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './button.html',\n styleUrl: './button.css',\n})\nexport class Button {\n // CONTENT\n @Input() text = 'Button';\n // BUTTON TYPE\n @Input() type: 'button' | 'submit' | 'reset' = 'button';\n // VARIANT\n @Input() variant: ButtonVariant = 'solid';\n // STANDARD COLOR\n @Input() color: ButtonColor = 'primary';\n // CUSTOM COLORS\n @Input() customColor?: string;\n @Input() hoverColor?: string;\n @Input() activeColor?: string;\n @Input() textColor?: string;\n @Input() borderColor?: string;\n @Input() hoverTextColor?: string;\n @Input() activeTextColor?: string;\n @Input() disabledColor?: string;\n @Input() disabledTextColor?: string;\n @Input() disabledBorderColor?: string;\n // SIZE\n @Input() size: ButtonSize = 'md';\n // DISABLED\n @Input() disabled = false;\n // CLICK EVENT\n \n @Output() buttonClick = new EventEmitter<MouseEvent>();\n // CLICK HANDLER\n handleClick(event: MouseEvent): void {\n\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n this.buttonClick.emit(event);\n }\n\n // CSS VARIABLES\n\n get buttonStyles(): Record<string, string> {\n\n const styles: Record<string, string> = {};\n\n if (this.customColor) {\n styles['--button-custom-color'] = this.customColor;\n }\n\n if (this.hoverColor) {\n styles['--button-hover-color'] = this.hoverColor;\n }\n\n if (this.activeColor) {\n styles['--button-active-color'] = this.activeColor;\n }\n\n if (this.textColor) {\n styles['--button-text-color'] = this.textColor;\n }\n\n if (this.borderColor) {\n styles['--button-border-color'] = this.borderColor;\n }\n\n if (this.hoverTextColor) {\n styles['--button-hover-text-color'] = this.hoverTextColor;\n }\n\n if (this.activeTextColor) {\n styles['--button-active-text-color'] = this.activeTextColor;\n }\n\n if (this.disabledColor) {\n styles['--button-disabled-color'] = this.disabledColor;\n }\n\n if (this.disabledTextColor) {\n styles['--button-disabled-text-color'] =\n this.disabledTextColor;\n }\n\n if (this.disabledBorderColor) {\n styles['--button-disabled-border-color'] =\n this.disabledBorderColor;\n }\n\n return styles;\n }\n}","<button\n [type]=\"type\"\n [disabled]=\"disabled\"\n\n [ngClass]=\"[\n 'lib-button',\n 'lib-button-' + variant,\n 'lib-button-' + color,\n 'lib-button-' + size\n ]\"\n\n [ngStyle]=\"buttonStyles\"\n\n (click)=\"handleClick($event)\"\n>\n {{ text }}\n</button>","import { Component , Input ,Output ,EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'lib-card',\n standalone: true,\n imports: [],\n templateUrl: './card.html',\n styleUrl: './card.css',\n})\nexport class Card {\n @Input() title: string = 'Last 24 hours';\n\n @Input() month: string = 'Jul';\n\n @Input() day: string | number = 9;\n\n @Input() description: string =\n '156 flights were monitored with 96.8% on-time performance. Minor delays occurred due to weather and air traffic.';\n\n @Output() cardClick = new EventEmitter<void>();\n\n onCardClick(): void {\n this.cardClick.emit();\n }\n}\n","<div class=\"card mat-elevation-z1\" (click)=\"onCardClick()\" role=\"button\" tabindex=\"0\">\n\n <!-- Title -->\n <h2 class=\"mat-headline-4 card-title\">\n {{ title }}\n </h2>\n\n <!-- Content -->\n <div class=\"card-content\">\n\n <!-- Date -->\n <div class=\"date-box\">\n\n <div class=\"month mat-title-medium\">\n {{ month }}\n </div>\n\n <div class=\"day mat-headline-5\">\n {{ day }}\n </div>\n\n </div>\n\n <!-- Description -->\n <div class=\"description mat-body-large\">\n {{ description }}\n </div>\n\n </div>\n\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'lib-time-filter',\n standalone: true,\n imports: [],\n templateUrl: './time-filter.html',\n styleUrl: './time-filter.css',\n})\nexport class TimeFilter {\n\n\n @Input() label: string = '';\n\n @Input() value!: string;\n\n @Input() selectedValue!: string;\n\n @Output() selectedValueChange = new EventEmitter<string>();\n\n @Output() clicked = new EventEmitter<MouseEvent>();\n\n get selected(): boolean {\n return this.value === this.selectedValue;\n }\n\n onClick(event: MouseEvent): void {\n // Tell parent which value was selected\n this.selectedValueChange.emit(this.value);\n\n // Allow developer to handle their own click event\n this.clicked.emit(event);\n }\n}\n","<div class=\"time-filter\" (click)=\"onClick($event)\" role=\"button\" tabindex=\"0\">\n <div class=\"radio-circle\" [class.selected]=\"selected\">\n <div class=\"radio-dot\"></div>\n </div>\n\n <span class=\"label\">\n {{ label }}\n </span>\n</div>","/*\n * Public API Surface of balinaui-components\n */\n\nexport * from './lib/balinaui-components';\nexport * from './lib/navbar/navbar';\nexport * from './lib/button/button';\nexport * from './lib/card/card';\nexport * from './lib/time-filter/time-filter';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -87,10 +87,11 @@ declare class TimeFilter {
|
|
|
87
87
|
value: string;
|
|
88
88
|
selectedValue: string;
|
|
89
89
|
selectedValueChange: EventEmitter<string>;
|
|
90
|
+
clicked: EventEmitter<MouseEvent>;
|
|
90
91
|
get selected(): boolean;
|
|
91
|
-
onClick(): void;
|
|
92
|
+
onClick(event: MouseEvent): void;
|
|
92
93
|
static ɵfac: i0.ɵɵFactoryDeclaration<TimeFilter, never>;
|
|
93
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TimeFilter, "lib-time-filter", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; }, { "selectedValueChange": "selectedValueChange"; }, never, never, true, never>;
|
|
94
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TimeFilter, "lib-time-filter", never, { "label": { "alias": "label"; "required": false; }; "value": { "alias": "value"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; }, { "selectedValueChange": "selectedValueChange"; "clicked": "clicked"; }, never, never, true, never>;
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
export { BalinauiComponents, Button, Card, Navbar, TimeFilter };
|