@weeehaoooz/talos-ui 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs +25 -4
  2. package/fesm2022/weeehaoooz-talos-ui-button-button-group.mjs.map +1 -1
  3. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs +2 -1
  4. package/fesm2022/weeehaoooz-talos-ui-button-button.mjs.map +1 -1
  5. package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs +1627 -0
  6. package/fesm2022/weeehaoooz-talos-ui-data-display-data-grid.mjs.map +1 -0
  7. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs +2 -2
  8. package/fesm2022/weeehaoooz-talos-ui-form-range-input.mjs.map +1 -1
  9. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs +2 -2
  10. package/fesm2022/weeehaoooz-talos-ui-form-rating.mjs.map +1 -1
  11. package/fesm2022/weeehaoooz-talos-ui-layout.mjs +4 -4
  12. package/fesm2022/weeehaoooz-talos-ui-layout.mjs.map +1 -1
  13. package/fesm2022/weeehaoooz-talos-ui-nav.mjs +118 -71
  14. package/fesm2022/weeehaoooz-talos-ui-nav.mjs.map +1 -1
  15. package/fesm2022/weeehaoooz-talos-ui.mjs +1765 -87
  16. package/fesm2022/weeehaoooz-talos-ui.mjs.map +1 -1
  17. package/package.json +5 -1
  18. package/styles/_button-group.scss +154 -6
  19. package/styles/_buttons.scss +105 -8
  20. package/styles/_variables.scss +4 -0
  21. package/types/weeehaoooz-talos-ui-button-button-group.d.ts +5 -2
  22. package/types/weeehaoooz-talos-ui-button-button-group.d.ts.map +1 -1
  23. package/types/weeehaoooz-talos-ui-button-button.d.ts +1 -1
  24. package/types/weeehaoooz-talos-ui-button-button.d.ts.map +1 -1
  25. package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts +272 -0
  26. package/types/weeehaoooz-talos-ui-data-display-data-grid.d.ts.map +1 -0
  27. package/types/weeehaoooz-talos-ui-nav.d.ts +36 -10
  28. package/types/weeehaoooz-talos-ui-nav.d.ts.map +1 -1
  29. package/types/weeehaoooz-talos-ui.d.ts +309 -16
  30. package/types/weeehaoooz-talos-ui.d.ts.map +1 -1
@@ -112,7 +112,7 @@ class SidePanelComponent {
112
112
  this.close.emit();
113
113
  }
114
114
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: SidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
115
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: SidePanelComponent, isStandalone: true, selector: "talos-side-panel", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, component: { classPropertyName: "component", publicName: "component", isSignal: true, isRequired: false, transformFunction: null }, componentInputs: { classPropertyName: "componentInputs", publicName: "componentInputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, host: { attributes: { "role": "complementary" }, properties: { "class.is-open": "isOpen()", "class.is-overlay": "mode() === \"overlay\"", "class.is-inline": "mode() === \"inline\"", "style.--panel-width": "width()", "attr.aria-label": "title() || \"Details Panel\"" }, classAttribute: "side-panel-host" }, ngImport: i0, template: "<div class=\"side-panel-inner\">\n <div class=\"side-panel-header\">\n <h3 class=\"side-panel-title\">\n {{ title() }}\n </h3>\n <button type=\"button\" talosButton variant=\"ghost\" size=\"sm\" [iconOnly]=\"true\" class=\"side-panel-close-btn\"\n (click)=\"onClose()\" aria-label=\"Close details panel\">\n <svg lucideX [size]=\"16\"></svg>\n </button>\n </div>\n <div class=\"side-panel-body\">\n @if (component()) {\n <ng-container *ngComponentOutlet=\"component()!; inputs: componentInputs()\" />\n }\n <ng-content />\n </div>\n</div>", styles: [":host{display:flex;flex-direction:column;background:var(--talos-right-panel-bg, var(--talos-card-bg, var(--card-bg, #ffffff)));border-left:1px solid var(--talos-right-panel-border, var(--talos-border-color, var(--border-color, #e2e8f0)));box-sizing:border-box;overflow:hidden;transition:width .3s cubic-bezier(.16,1,.3,1),max-width .3s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .3s cubic-bezier(.16,1,.3,1),visibility .3s,border-left-color .3s}:host.is-overlay{position:absolute;top:0;right:0;bottom:0;z-index:40;width:var(--panel-width, 380px);box-shadow:-8px 0 24px #00000026;transform:translate(100%);opacity:0;visibility:hidden;pointer-events:none}:host.is-overlay.is-open{transform:translate(0);opacity:1;visibility:visible;pointer-events:auto}:host.is-inline{position:relative;height:100%;z-index:10;flex-shrink:0;width:0;max-width:0;opacity:0;visibility:hidden;pointer-events:none;border-left-color:transparent}:host.is-inline.is-open{width:var(--panel-width, 380px);max-width:var(--panel-width, 380px);opacity:1;visibility:visible;pointer-events:auto;border-left-color:var(--talos-right-panel-border, var(--right-panel-border, #e2e8f0))}.side-panel-inner{display:flex;flex-direction:column;width:var(--panel-width, 380px);height:100%;box-sizing:border-box}.side-panel-inner .side-panel-header{height:60px;min-height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--talos-right-panel-border, var(--right-panel-border, #e2e8f0))}.side-panel-inner .side-panel-header .side-panel-title{margin:0;font-size:16px;font-weight:600;color:var(--talos-text-color, var(--panel-title-color, #0f172a))}.side-panel-inner .side-panel-body{flex:1;overflow-y:auto;padding:20px}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: TalosButtonDirective, selector: "button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]", inputs: ["variant", "size", "iconOnly", "fullWidth", "pill", "loading", "disabled", "animation", "spinning", "popping", "feedback"] }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }] });
115
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: SidePanelComponent, isStandalone: true, selector: "talos-side-panel", inputs: { isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, component: { classPropertyName: "component", publicName: "component", isSignal: true, isRequired: false, transformFunction: null }, componentInputs: { classPropertyName: "componentInputs", publicName: "componentInputs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, host: { attributes: { "role": "complementary" }, properties: { "class.is-open": "isOpen()", "class.is-overlay": "mode() === \"overlay\"", "class.is-inline": "mode() === \"inline\"", "style.--panel-width": "width()", "attr.aria-label": "title() || \"Details Panel\"" }, classAttribute: "side-panel-host" }, ngImport: i0, template: "<div class=\"side-panel-inner\">\n <div class=\"side-panel-header\">\n <h3 class=\"side-panel-title\">\n {{ title() }}\n </h3>\n <button type=\"button\" talosButton variant=\"ghost\" size=\"sm\" [iconOnly]=\"true\" class=\"side-panel-close-btn\"\n (click)=\"onClose()\" aria-label=\"Close details panel\">\n <svg lucideX [size]=\"16\"></svg>\n </button>\n </div>\n <div class=\"side-panel-body\">\n @if (component()) {\n <ng-container *ngComponentOutlet=\"component()!; inputs: componentInputs()\" />\n }\n <ng-content />\n </div>\n</div>", styles: [":host{display:flex;flex-direction:column;background:var(--talos-right-panel-bg, var(--talos-card-bg, var(--card-bg, #ffffff)));border-left:1px solid var(--talos-right-panel-border, var(--talos-border-color, var(--border-color, #e2e8f0)));box-sizing:border-box;overflow:hidden;transition:width .3s cubic-bezier(.16,1,.3,1),max-width .3s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .3s cubic-bezier(.16,1,.3,1),visibility .3s,border-left-color .3s}:host.is-overlay{position:absolute;top:0;right:0;bottom:0;z-index:40;width:var(--panel-width, 380px);box-shadow:-8px 0 24px #00000026;transform:translate(100%);opacity:0;visibility:hidden;pointer-events:none}:host.is-overlay.is-open{transform:translate(0);opacity:1;visibility:visible;pointer-events:auto}:host.is-inline{position:relative;height:100%;z-index:10;flex-shrink:0;width:0;max-width:0;opacity:0;visibility:hidden;pointer-events:none;border-left-color:transparent}:host.is-inline.is-open{width:var(--panel-width, 380px);max-width:var(--panel-width, 380px);opacity:1;visibility:visible;pointer-events:auto;border-left-color:var(--talos-right-panel-border, var(--right-panel-border, #e2e8f0))}.side-panel-inner{display:flex;flex-direction:column;width:var(--panel-width, 380px);height:100%;box-sizing:border-box}.side-panel-inner .side-panel-header{height:60px;min-height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--talos-right-panel-border, var(--right-panel-border, #e2e8f0))}.side-panel-inner .side-panel-header .side-panel-title{margin:0;font-size:16px;font-weight:600;color:var(--talos-text-color, var(--panel-title-color, #0f172a))}.side-panel-inner .side-panel-body{flex:1;overflow-y:auto;padding:20px}@media(max-width:768px){:host.is-overlay{position:absolute;inset:0;width:100%!important;max-width:100%!important;height:100%!important;z-index:50}:host.is-inline.is-open{position:absolute;inset:0;width:100%!important;max-width:100%!important;height:100%!important;z-index:50;box-shadow:0 10px 25px -5px #00000040}.side-panel-inner{width:100%!important;max-width:100%!important;height:100%}}\n"], dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: TalosButtonDirective, selector: "button[talosButton], a[talosButton], button[talos-btn], a[talos-btn]", inputs: ["variant", "size", "iconOnly", "fullWidth", "pill", "loading", "disabled", "animation", "spinning", "popping", "feedback"] }, { kind: "component", type: LucideX, selector: "svg[lucideX]" }] });
116
116
  }
117
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: SidePanelComponent, decorators: [{
118
118
  type: Component,
@@ -124,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
124
124
  '[class.is-inline]': 'mode() === "inline"',
125
125
  '[style.--panel-width]': 'width()',
126
126
  '[attr.aria-label]': 'title() || "Details Panel"'
127
- }, template: "<div class=\"side-panel-inner\">\n <div class=\"side-panel-header\">\n <h3 class=\"side-panel-title\">\n {{ title() }}\n </h3>\n <button type=\"button\" talosButton variant=\"ghost\" size=\"sm\" [iconOnly]=\"true\" class=\"side-panel-close-btn\"\n (click)=\"onClose()\" aria-label=\"Close details panel\">\n <svg lucideX [size]=\"16\"></svg>\n </button>\n </div>\n <div class=\"side-panel-body\">\n @if (component()) {\n <ng-container *ngComponentOutlet=\"component()!; inputs: componentInputs()\" />\n }\n <ng-content />\n </div>\n</div>", styles: [":host{display:flex;flex-direction:column;background:var(--talos-right-panel-bg, var(--talos-card-bg, var(--card-bg, #ffffff)));border-left:1px solid var(--talos-right-panel-border, var(--talos-border-color, var(--border-color, #e2e8f0)));box-sizing:border-box;overflow:hidden;transition:width .3s cubic-bezier(.16,1,.3,1),max-width .3s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .3s cubic-bezier(.16,1,.3,1),visibility .3s,border-left-color .3s}:host.is-overlay{position:absolute;top:0;right:0;bottom:0;z-index:40;width:var(--panel-width, 380px);box-shadow:-8px 0 24px #00000026;transform:translate(100%);opacity:0;visibility:hidden;pointer-events:none}:host.is-overlay.is-open{transform:translate(0);opacity:1;visibility:visible;pointer-events:auto}:host.is-inline{position:relative;height:100%;z-index:10;flex-shrink:0;width:0;max-width:0;opacity:0;visibility:hidden;pointer-events:none;border-left-color:transparent}:host.is-inline.is-open{width:var(--panel-width, 380px);max-width:var(--panel-width, 380px);opacity:1;visibility:visible;pointer-events:auto;border-left-color:var(--talos-right-panel-border, var(--right-panel-border, #e2e8f0))}.side-panel-inner{display:flex;flex-direction:column;width:var(--panel-width, 380px);height:100%;box-sizing:border-box}.side-panel-inner .side-panel-header{height:60px;min-height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--talos-right-panel-border, var(--right-panel-border, #e2e8f0))}.side-panel-inner .side-panel-header .side-panel-title{margin:0;font-size:16px;font-weight:600;color:var(--talos-text-color, var(--panel-title-color, #0f172a))}.side-panel-inner .side-panel-body{flex:1;overflow-y:auto;padding:20px}\n"] }]
127
+ }, template: "<div class=\"side-panel-inner\">\n <div class=\"side-panel-header\">\n <h3 class=\"side-panel-title\">\n {{ title() }}\n </h3>\n <button type=\"button\" talosButton variant=\"ghost\" size=\"sm\" [iconOnly]=\"true\" class=\"side-panel-close-btn\"\n (click)=\"onClose()\" aria-label=\"Close details panel\">\n <svg lucideX [size]=\"16\"></svg>\n </button>\n </div>\n <div class=\"side-panel-body\">\n @if (component()) {\n <ng-container *ngComponentOutlet=\"component()!; inputs: componentInputs()\" />\n }\n <ng-content />\n </div>\n</div>", styles: [":host{display:flex;flex-direction:column;background:var(--talos-right-panel-bg, var(--talos-card-bg, var(--card-bg, #ffffff)));border-left:1px solid var(--talos-right-panel-border, var(--talos-border-color, var(--border-color, #e2e8f0)));box-sizing:border-box;overflow:hidden;transition:width .3s cubic-bezier(.16,1,.3,1),max-width .3s cubic-bezier(.16,1,.3,1),opacity .25s ease,transform .3s cubic-bezier(.16,1,.3,1),visibility .3s,border-left-color .3s}:host.is-overlay{position:absolute;top:0;right:0;bottom:0;z-index:40;width:var(--panel-width, 380px);box-shadow:-8px 0 24px #00000026;transform:translate(100%);opacity:0;visibility:hidden;pointer-events:none}:host.is-overlay.is-open{transform:translate(0);opacity:1;visibility:visible;pointer-events:auto}:host.is-inline{position:relative;height:100%;z-index:10;flex-shrink:0;width:0;max-width:0;opacity:0;visibility:hidden;pointer-events:none;border-left-color:transparent}:host.is-inline.is-open{width:var(--panel-width, 380px);max-width:var(--panel-width, 380px);opacity:1;visibility:visible;pointer-events:auto;border-left-color:var(--talos-right-panel-border, var(--right-panel-border, #e2e8f0))}.side-panel-inner{display:flex;flex-direction:column;width:var(--panel-width, 380px);height:100%;box-sizing:border-box}.side-panel-inner .side-panel-header{height:60px;min-height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--talos-right-panel-border, var(--right-panel-border, #e2e8f0))}.side-panel-inner .side-panel-header .side-panel-title{margin:0;font-size:16px;font-weight:600;color:var(--talos-text-color, var(--panel-title-color, #0f172a))}.side-panel-inner .side-panel-body{flex:1;overflow-y:auto;padding:20px}@media(max-width:768px){:host.is-overlay{position:absolute;inset:0;width:100%!important;max-width:100%!important;height:100%!important;z-index:50}:host.is-inline.is-open{position:absolute;inset:0;width:100%!important;max-width:100%!important;height:100%!important;z-index:50;box-shadow:0 10px 25px -5px #00000040}.side-panel-inner{width:100%!important;max-width:100%!important;height:100%}}\n"] }]
128
128
  }], propDecorators: { isOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpen", required: false }] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], component: [{ type: i0.Input, args: [{ isSignal: true, alias: "component", required: false }] }], componentInputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "componentInputs", required: false }] }], close: [{ type: i0.Output, args: ["close"] }] } });
129
129
 
130
130
  class MainLayoutComponent {
@@ -135,7 +135,7 @@ class MainLayoutComponent {
135
135
  }
136
136
  }
137
137
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: MainLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
138
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: MainLayoutComponent, isStandalone: true, selector: "talos-main-layout", host: { properties: { "class.left-nav-collapsed": "layoutService.isLeftNavCollapsed()", "class.right-panel-open": "layoutService.isRightPanelOpen()", "class.right-panel-inline": "layoutService.isRightPanelInline()", "class.main-content-expanded": "layoutService.isMainContentExpanded()", "class.blur-backdrop": "layoutService.shouldBlurMainContent()" }, classAttribute: "talos-main-layout-host" }, ngImport: i0, template: "<!-- Top Header Slot (Spanning 100% full width across top of viewport) -->\n<ng-content select=\"talos-top-nav, app-header, header, [top-nav], [header]\" />\n\n<div class=\"layout-body-wrapper\">\n <!-- Side Nav Slot (Accepts talos-side-nav, app-side-nav, or elements with [side-nav]) -->\n <ng-content select=\"talos-side-nav, app-side-nav, [side-nav]\" />\n\n <!-- Main Content Container Area -->\n <div class=\"main-content-wrapper\">\n <main class=\"main-content-container\" role=\"main\">\n <ng-content />\n </main>\n\n <!-- Optional Blur Backdrop Overlay -->\n @if (layoutService.shouldBlurMainContent()) {\n <div class=\"main-backdrop-overlay\" (click)=\"onBackdropClick()\" aria-hidden=\"true\"></div>\n }\n </div>\n\n <!-- Dynamic Right Side Panel Drawer Component -->\n <talos-side-panel [isOpen]=\"layoutService.isRightPanelOpen()\"\n [title]=\"layoutService.rightPanelOptions().title ?? 'Details'\"\n [width]=\"layoutService.rightPanelOptions().width ?? '380px'\"\n [mode]=\"layoutService.rightPanelOptions().mode ?? 'overlay'\" [component]=\"layoutService.rightPanelComponent()\"\n [componentInputs]=\"layoutService.rightPanelInputs()\" (close)=\"layoutService.closeRightPanel()\" />\n</div>", styles: [":host{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;box-sizing:border-box;--sidebar-width: 260px;--sidebar-collapsed-width: 64px;--right-panel-default-width: 380px;--main-padding: 24px;--main-padding-expanded: 8px}:host.main-content-expanded{--main-padding: var(--main-padding-expanded)}:host:has(.is-fullscreen) .top-nav-bar,:host:has(.is-fullscreen) ::ng-deep talos-top-nav,:host:has(.is-fullscreen) ::ng-deep .talos-top-nav-host{z-index:1}:host:has(.is-fullscreen) .layout-body-wrapper{z-index:100000;overflow:visible}.top-nav-bar{height:60px;min-height:60px;display:flex;align-items:center;padding:0 20px;background:var(--talos-header-bg, var(--header-bg, #ffffff));border-bottom:1px solid var(--talos-header-border-color, var(--header-border-color, #e2e8f0));z-index:20}.layout-body-wrapper{display:flex;flex:1;overflow:hidden;position:relative;min-height:0}.main-content-wrapper{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.main-content-container{flex:1;padding:var(--main-padding);transition:padding .25s cubic-bezier(.4,0,.2,1),filter .25s cubic-bezier(.4,0,.2,1);overflow-y:auto}:host.blur-backdrop .main-content-container{filter:blur(4px);pointer-events:none;-webkit-user-select:none;user-select:none}.main-backdrop-overlay{position:absolute;inset:0;background:#0f172a33;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:30;cursor:pointer;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: SidePanelComponent, selector: "talos-side-panel", inputs: ["isOpen", "title", "width", "mode", "component", "componentInputs"], outputs: ["close"] }] });
138
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: MainLayoutComponent, isStandalone: true, selector: "talos-main-layout", host: { properties: { "class.left-nav-collapsed": "layoutService.isLeftNavCollapsed()", "class.right-panel-open": "layoutService.isRightPanelOpen()", "class.right-panel-inline": "layoutService.isRightPanelInline()", "class.main-content-expanded": "layoutService.isMainContentExpanded()", "class.blur-backdrop": "layoutService.shouldBlurMainContent()" }, classAttribute: "talos-main-layout-host" }, ngImport: i0, template: "<!-- Top Header Slot (Spanning 100% full width across top of viewport) -->\n<ng-content select=\"talos-top-nav, app-header, header, [top-nav], [header]\" />\n\n<div class=\"layout-body-wrapper\">\n <!-- Side Nav Slot (Accepts talos-side-nav, app-side-nav, or elements with [side-nav]) -->\n <ng-content select=\"talos-side-nav, app-side-nav, [side-nav]\" />\n\n <!-- Mobile Sidebar Overlay Backdrop -->\n @if (!layoutService.isLeftNavCollapsed()) {\n <div class=\"mobile-sidebar-backdrop\" (click)=\"layoutService.setLeftNavCollapsed(true)\" aria-hidden=\"true\"></div>\n }\n\n <!-- Main Content Container Area -->\n <div class=\"main-content-wrapper\">\n <main class=\"main-content-container\" role=\"main\">\n <ng-content />\n </main>\n\n <!-- Optional Blur Backdrop Overlay -->\n @if (layoutService.shouldBlurMainContent()) {\n <div class=\"main-backdrop-overlay\" (click)=\"onBackdropClick()\" aria-hidden=\"true\"></div>\n }\n </div>\n\n <!-- Dynamic Right Side Panel Drawer Component -->\n <talos-side-panel [isOpen]=\"layoutService.isRightPanelOpen()\"\n [title]=\"layoutService.rightPanelOptions().title ?? 'Details'\"\n [width]=\"layoutService.rightPanelOptions().width ?? '380px'\"\n [mode]=\"layoutService.rightPanelOptions().mode ?? 'overlay'\" [component]=\"layoutService.rightPanelComponent()\"\n [componentInputs]=\"layoutService.rightPanelInputs()\" (close)=\"layoutService.closeRightPanel()\" />\n</div>", styles: [":host{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw;overflow:hidden;box-sizing:border-box;--sidebar-width: 260px;--sidebar-collapsed-width: 64px;--right-panel-default-width: 380px;--main-padding: 24px;--main-padding-expanded: 8px}@media(max-width:768px){:host{--main-padding: 12px}}:host.main-content-expanded{--main-padding: var(--main-padding-expanded)}:host:has(.is-fullscreen) .top-nav-bar,:host:has(.is-fullscreen) ::ng-deep talos-top-nav,:host:has(.is-fullscreen) ::ng-deep .talos-top-nav-host{z-index:1}:host:has(.is-fullscreen) .layout-body-wrapper{z-index:100000;overflow:visible}.top-nav-bar{height:60px;min-height:60px;display:flex;align-items:center;padding:0 20px;background:var(--talos-header-bg, var(--header-bg, #ffffff));border-bottom:1px solid var(--talos-header-border-color, var(--header-border-color, #e2e8f0));z-index:20}@media(max-width:640px){.top-nav-bar{padding:0 12px}}.layout-body-wrapper{display:flex;flex:1;overflow:hidden;position:relative;min-height:0}.mobile-sidebar-backdrop{display:none}@media(max-width:768px){.mobile-sidebar-backdrop{display:block;position:fixed;inset:60px 0 0;background:#0f172a73;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:85;animation:fadeIn .2s ease-out;cursor:pointer}}.main-content-wrapper{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.main-content-container{flex:1;width:100%;box-sizing:border-box;padding:var(--main-padding);transition:padding .25s cubic-bezier(.4,0,.2,1),filter .25s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden}:host.blur-backdrop .main-content-container{filter:blur(4px);pointer-events:none;-webkit-user-select:none;user-select:none}.main-backdrop-overlay{position:absolute;inset:0;background:#0f172a33;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:30;cursor:pointer;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"], dependencies: [{ kind: "component", type: SidePanelComponent, selector: "talos-side-panel", inputs: ["isOpen", "title", "width", "mode", "component", "componentInputs"], outputs: ["close"] }] });
139
139
  }
140
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: MainLayoutComponent, decorators: [{
141
141
  type: Component,
@@ -146,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImpor
146
146
  '[class.right-panel-inline]': 'layoutService.isRightPanelInline()',
147
147
  '[class.main-content-expanded]': 'layoutService.isMainContentExpanded()',
148
148
  '[class.blur-backdrop]': 'layoutService.shouldBlurMainContent()'
149
- }, template: "<!-- Top Header Slot (Spanning 100% full width across top of viewport) -->\n<ng-content select=\"talos-top-nav, app-header, header, [top-nav], [header]\" />\n\n<div class=\"layout-body-wrapper\">\n <!-- Side Nav Slot (Accepts talos-side-nav, app-side-nav, or elements with [side-nav]) -->\n <ng-content select=\"talos-side-nav, app-side-nav, [side-nav]\" />\n\n <!-- Main Content Container Area -->\n <div class=\"main-content-wrapper\">\n <main class=\"main-content-container\" role=\"main\">\n <ng-content />\n </main>\n\n <!-- Optional Blur Backdrop Overlay -->\n @if (layoutService.shouldBlurMainContent()) {\n <div class=\"main-backdrop-overlay\" (click)=\"onBackdropClick()\" aria-hidden=\"true\"></div>\n }\n </div>\n\n <!-- Dynamic Right Side Panel Drawer Component -->\n <talos-side-panel [isOpen]=\"layoutService.isRightPanelOpen()\"\n [title]=\"layoutService.rightPanelOptions().title ?? 'Details'\"\n [width]=\"layoutService.rightPanelOptions().width ?? '380px'\"\n [mode]=\"layoutService.rightPanelOptions().mode ?? 'overlay'\" [component]=\"layoutService.rightPanelComponent()\"\n [componentInputs]=\"layoutService.rightPanelInputs()\" (close)=\"layoutService.closeRightPanel()\" />\n</div>", styles: [":host{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;box-sizing:border-box;--sidebar-width: 260px;--sidebar-collapsed-width: 64px;--right-panel-default-width: 380px;--main-padding: 24px;--main-padding-expanded: 8px}:host.main-content-expanded{--main-padding: var(--main-padding-expanded)}:host:has(.is-fullscreen) .top-nav-bar,:host:has(.is-fullscreen) ::ng-deep talos-top-nav,:host:has(.is-fullscreen) ::ng-deep .talos-top-nav-host{z-index:1}:host:has(.is-fullscreen) .layout-body-wrapper{z-index:100000;overflow:visible}.top-nav-bar{height:60px;min-height:60px;display:flex;align-items:center;padding:0 20px;background:var(--talos-header-bg, var(--header-bg, #ffffff));border-bottom:1px solid var(--talos-header-border-color, var(--header-border-color, #e2e8f0));z-index:20}.layout-body-wrapper{display:flex;flex:1;overflow:hidden;position:relative;min-height:0}.main-content-wrapper{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.main-content-container{flex:1;padding:var(--main-padding);transition:padding .25s cubic-bezier(.4,0,.2,1),filter .25s cubic-bezier(.4,0,.2,1);overflow-y:auto}:host.blur-backdrop .main-content-container{filter:blur(4px);pointer-events:none;-webkit-user-select:none;user-select:none}.main-backdrop-overlay{position:absolute;inset:0;background:#0f172a33;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:30;cursor:pointer;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
149
+ }, template: "<!-- Top Header Slot (Spanning 100% full width across top of viewport) -->\n<ng-content select=\"talos-top-nav, app-header, header, [top-nav], [header]\" />\n\n<div class=\"layout-body-wrapper\">\n <!-- Side Nav Slot (Accepts talos-side-nav, app-side-nav, or elements with [side-nav]) -->\n <ng-content select=\"talos-side-nav, app-side-nav, [side-nav]\" />\n\n <!-- Mobile Sidebar Overlay Backdrop -->\n @if (!layoutService.isLeftNavCollapsed()) {\n <div class=\"mobile-sidebar-backdrop\" (click)=\"layoutService.setLeftNavCollapsed(true)\" aria-hidden=\"true\"></div>\n }\n\n <!-- Main Content Container Area -->\n <div class=\"main-content-wrapper\">\n <main class=\"main-content-container\" role=\"main\">\n <ng-content />\n </main>\n\n <!-- Optional Blur Backdrop Overlay -->\n @if (layoutService.shouldBlurMainContent()) {\n <div class=\"main-backdrop-overlay\" (click)=\"onBackdropClick()\" aria-hidden=\"true\"></div>\n }\n </div>\n\n <!-- Dynamic Right Side Panel Drawer Component -->\n <talos-side-panel [isOpen]=\"layoutService.isRightPanelOpen()\"\n [title]=\"layoutService.rightPanelOptions().title ?? 'Details'\"\n [width]=\"layoutService.rightPanelOptions().width ?? '380px'\"\n [mode]=\"layoutService.rightPanelOptions().mode ?? 'overlay'\" [component]=\"layoutService.rightPanelComponent()\"\n [componentInputs]=\"layoutService.rightPanelInputs()\" (close)=\"layoutService.closeRightPanel()\" />\n</div>", styles: [":host{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw;overflow:hidden;box-sizing:border-box;--sidebar-width: 260px;--sidebar-collapsed-width: 64px;--right-panel-default-width: 380px;--main-padding: 24px;--main-padding-expanded: 8px}@media(max-width:768px){:host{--main-padding: 12px}}:host.main-content-expanded{--main-padding: var(--main-padding-expanded)}:host:has(.is-fullscreen) .top-nav-bar,:host:has(.is-fullscreen) ::ng-deep talos-top-nav,:host:has(.is-fullscreen) ::ng-deep .talos-top-nav-host{z-index:1}:host:has(.is-fullscreen) .layout-body-wrapper{z-index:100000;overflow:visible}.top-nav-bar{height:60px;min-height:60px;display:flex;align-items:center;padding:0 20px;background:var(--talos-header-bg, var(--header-bg, #ffffff));border-bottom:1px solid var(--talos-header-border-color, var(--header-border-color, #e2e8f0));z-index:20}@media(max-width:640px){.top-nav-bar{padding:0 12px}}.layout-body-wrapper{display:flex;flex:1;overflow:hidden;position:relative;min-height:0}.mobile-sidebar-backdrop{display:none}@media(max-width:768px){.mobile-sidebar-backdrop{display:block;position:fixed;inset:60px 0 0;background:#0f172a73;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:85;animation:fadeIn .2s ease-out;cursor:pointer}}.main-content-wrapper{flex:1;min-width:0;position:relative;display:flex;flex-direction:column;overflow:hidden}.main-content-container{flex:1;width:100%;box-sizing:border-box;padding:var(--main-padding);transition:padding .25s cubic-bezier(.4,0,.2,1),filter .25s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden}:host.blur-backdrop .main-content-container{filter:blur(4px);pointer-events:none;-webkit-user-select:none;user-select:none}.main-backdrop-overlay{position:absolute;inset:0;background:#0f172a33;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:30;cursor:pointer;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\n"] }]
150
150
  }] });
151
151
 
152
152
  class TalosCardTitleDirective {
@@ -1 +1 @@
1
- {"version":3,"file":"weeehaoooz-talos-ui-layout.mjs","sources":["../../../projects/talos-ui/layout/layout.service.ts","../../../projects/talos-ui/layout/side-panel/side-panel.component.ts","../../../projects/talos-ui/layout/side-panel/side-panel.component.html","../../../projects/talos-ui/layout/main-layout/main-layout.component.ts","../../../projects/talos-ui/layout/main-layout/main-layout.component.html","../../../projects/talos-ui/layout/card/card.directives.ts","../../../projects/talos-ui/layout/card/card.component.ts","../../../projects/talos-ui/layout/card/card.component.html","../../../projects/talos-ui/layout/card/card-header.component.ts","../../../projects/talos-ui/layout/card/card-header.component.html","../../../projects/talos-ui/layout/card/card-body.component.ts","../../../projects/talos-ui/layout/card/card-body.component.html","../../../projects/talos-ui/layout/card/card-footer.component.ts","../../../projects/talos-ui/layout/card/card-footer.component.html","../../../projects/talos-ui/layout/card/card.module.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel.directives.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-body.component.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-body.component.html","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-group.component.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-group.component.html","../../../projects/talos-ui/layout/expansion-panel/expansion-panel.component.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel.component.html","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-header.component.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-header.component.html","../../../projects/talos-ui/layout/expansion-panel/expansion-panel.module.ts","../../../projects/talos-ui/layout/weeehaoooz-talos-ui-layout.ts"],"sourcesContent":["import { Injectable, Type, computed, signal } from '@angular/core';\n\nexport interface RightPanelOptions {\n /** Title displayed in the panel header shell */\n title?: string;\n /** Custom width for the panel (e.g. '400px', '500px') */\n width?: string;\n /** Panel rendering mode: 'overlay' (floating over content) or 'inline' (pushes content) */\n mode?: 'overlay' | 'inline';\n /** Whether to blur and lock background interactions on main content area */\n blurBackdrop?: boolean;\n /** Whether clicking backdrop closes panel (defaults to true if blurBackdrop is enabled) */\n closeOnBackdropClick?: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutService {\n // Reactive Signals for layout state\n readonly isLeftNavCollapsed = signal<boolean>(false);\n readonly isRightPanelOpen = signal<boolean>(false);\n readonly isMainContentExpanded = signal<boolean>(false);\n\n // Dynamic component injection signals\n readonly rightPanelComponent = signal<Type<unknown> | null>(null);\n readonly rightPanelInputs = signal<Record<string, unknown>>({});\n readonly rightPanelOptions = signal<RightPanelOptions>({});\n\n // Computed state for backdrop blur\n readonly shouldBlurMainContent = computed(() => {\n return (\n this.isRightPanelOpen() &&\n (this.rightPanelOptions().mode ?? 'overlay') === 'overlay' &&\n !!this.rightPanelOptions().blurBackdrop\n );\n });\n\n // Computed state for inline panel mode\n readonly isRightPanelInline = computed(() => {\n return this.isRightPanelOpen() && this.rightPanelOptions().mode === 'inline';\n });\n\n // Action methods\n toggleLeftNav(): void {\n this.isLeftNavCollapsed.update((state) => !state);\n }\n\n setLeftNavCollapsed(collapsed: boolean): void {\n this.isLeftNavCollapsed.set(collapsed);\n }\n\n toggleMainContentExpanded(): void {\n this.isMainContentExpanded.update((state) => !state);\n }\n\n setMainContentExpanded(expanded: boolean): void {\n this.isMainContentExpanded.set(expanded);\n }\n\n private closeTimeout: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Dynamically open the right side panel with a specified component and inputs.\n */\n openRightPanel<T>(\n component: Type<T>,\n inputs: Record<string, unknown> = {},\n options: RightPanelOptions = {}\n ): void {\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n this.closeTimeout = null;\n }\n\n this.rightPanelComponent.set(component as Type<unknown>);\n this.rightPanelInputs.set(inputs);\n this.rightPanelOptions.set({\n mode: 'overlay',\n closeOnBackdropClick: true,\n ...options\n });\n this.isRightPanelOpen.set(true);\n }\n\n /**\n * Close the right side panel and clear injected component state after animation completes.\n */\n closeRightPanel(): void {\n this.isRightPanelOpen.set(false);\n\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n }\n\n this.closeTimeout = setTimeout(() => {\n this.rightPanelComponent.set(null);\n this.rightPanelInputs.set({});\n this.rightPanelOptions.set({});\n this.closeTimeout = null;\n }, 300);\n }\n}\n","import { Component, Type, input, output } from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { TalosButtonDirective } from '@weeehaoooz/talos-ui/button/button';\n\nimport { LucideX } from '@lucide/angular';\n\n@Component({\n selector: 'talos-side-panel',\n imports: [NgComponentOutlet, TalosButtonDirective, LucideX],\n templateUrl: './side-panel.component.html',\n styleUrl: './side-panel.component.scss',\n host: {\n 'role': 'complementary',\n 'class': 'side-panel-host',\n '[class.is-open]': 'isOpen()',\n '[class.is-overlay]': 'mode() === \"overlay\"',\n '[class.is-inline]': 'mode() === \"inline\"',\n '[style.--panel-width]': 'width()',\n '[attr.aria-label]': 'title() || \"Details Panel\"'\n }\n})\nexport class SidePanelComponent {\n /** Whether the panel is currently open and visible */\n readonly isOpen = input<boolean>(true);\n\n /** Panel title displayed in header */\n readonly title = input<string>('Details');\n\n /** Custom panel width (e.g. '380px', '500px', '100%') */\n readonly width = input<string>('380px');\n\n /** Panel mode: 'overlay' (floating) or 'inline' (push content) */\n readonly mode = input<'overlay' | 'inline'>('overlay');\n\n /** Dynamic component to instantiate via NgComponentOutlet */\n readonly component = input<Type<unknown> | null>(null);\n\n /** Inputs object to pass to the dynamically injected component */\n readonly componentInputs = input<Record<string, unknown>>({});\n\n /** Event emitted when the close button is clicked */\n readonly close = output<void>();\n\n onClose(): void {\n this.close.emit();\n }\n}\n","<div class=\"side-panel-inner\">\n <div class=\"side-panel-header\">\n <h3 class=\"side-panel-title\">\n {{ title() }}\n </h3>\n <button type=\"button\" talosButton variant=\"ghost\" size=\"sm\" [iconOnly]=\"true\" class=\"side-panel-close-btn\"\n (click)=\"onClose()\" aria-label=\"Close details panel\">\n <svg lucideX [size]=\"16\"></svg>\n </button>\n </div>\n <div class=\"side-panel-body\">\n @if (component()) {\n <ng-container *ngComponentOutlet=\"component()!; inputs: componentInputs()\" />\n }\n <ng-content />\n </div>\n</div>","import { Component, inject } from '@angular/core';\nimport { LayoutService } from '../layout.service';\nimport { SidePanelComponent } from '../side-panel/side-panel.component';\n\n@Component({\n selector: 'talos-main-layout',\n imports: [SidePanelComponent],\n templateUrl: './main-layout.component.html',\n styleUrl: './main-layout.component.scss',\n host: {\n 'class': 'talos-main-layout-host',\n '[class.left-nav-collapsed]': 'layoutService.isLeftNavCollapsed()',\n '[class.right-panel-open]': 'layoutService.isRightPanelOpen()',\n '[class.right-panel-inline]': 'layoutService.isRightPanelInline()',\n '[class.main-content-expanded]': 'layoutService.isMainContentExpanded()',\n '[class.blur-backdrop]': 'layoutService.shouldBlurMainContent()'\n }\n})\nexport class MainLayoutComponent {\n protected readonly layoutService = inject(LayoutService);\n\n onBackdropClick(): void {\n if (this.layoutService.rightPanelOptions().closeOnBackdropClick) {\n this.layoutService.closeRightPanel();\n }\n }\n}\n","<!-- Top Header Slot (Spanning 100% full width across top of viewport) -->\n<ng-content select=\"talos-top-nav, app-header, header, [top-nav], [header]\" />\n\n<div class=\"layout-body-wrapper\">\n <!-- Side Nav Slot (Accepts talos-side-nav, app-side-nav, or elements with [side-nav]) -->\n <ng-content select=\"talos-side-nav, app-side-nav, [side-nav]\" />\n\n <!-- Main Content Container Area -->\n <div class=\"main-content-wrapper\">\n <main class=\"main-content-container\" role=\"main\">\n <ng-content />\n </main>\n\n <!-- Optional Blur Backdrop Overlay -->\n @if (layoutService.shouldBlurMainContent()) {\n <div class=\"main-backdrop-overlay\" (click)=\"onBackdropClick()\" aria-hidden=\"true\"></div>\n }\n </div>\n\n <!-- Dynamic Right Side Panel Drawer Component -->\n <talos-side-panel [isOpen]=\"layoutService.isRightPanelOpen()\"\n [title]=\"layoutService.rightPanelOptions().title ?? 'Details'\"\n [width]=\"layoutService.rightPanelOptions().width ?? '380px'\"\n [mode]=\"layoutService.rightPanelOptions().mode ?? 'overlay'\" [component]=\"layoutService.rightPanelComponent()\"\n [componentInputs]=\"layoutService.rightPanelInputs()\" (close)=\"layoutService.closeRightPanel()\" />\n</div>","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'talos-card-title, [talosCardTitle]',\n host: {\n 'class': 'talos-card-title'\n }\n})\nexport class TalosCardTitleDirective { }\n\n@Directive({\n selector: 'talos-card-subtitle, [talosCardSubtitle]',\n host: {\n 'class': 'talos-card-subtitle'\n }\n})\nexport class TalosCardSubtitleDirective { }\n\n@Directive({\n selector: '[talosCardAvatar], [talosCardIcon]',\n host: {\n 'class': 'talos-card-avatar'\n }\n})\nexport class TalosCardAvatarDirective { }\n\n@Directive({\n selector: 'talos-card-actions, [talosCardActions]',\n host: {\n 'class': 'talos-card-actions'\n }\n})\nexport class TalosCardActionsDirective { }\n\n@Directive({\n selector: 'talos-card-media, [talosCardMedia]',\n host: {\n 'class': 'talos-card-media'\n }\n})\nexport class TalosCardMediaDirective { }\n","import {\n Component,\n computed,\n input,\n output\n} from '@angular/core';\nimport { TalosCardPadding, TalosCardVariant } from './card.types';\n\n@Component({\n selector: 'talos-card, [talosCard]',\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n host: {\n 'class': 'talos-card-host',\n '[class.talos-card-elevated]': 'variant() === \"elevated\"',\n '[class.talos-card-outlined]': 'variant() === \"outlined\"',\n '[class.talos-card-flat]': 'variant() === \"flat\"',\n '[class.talos-card-filled]': 'variant() === \"filled\"',\n '[class.talos-card-padding-none]': 'padding() === \"none\"',\n '[class.talos-card-padding-sm]': 'padding() === \"sm\"',\n '[class.talos-card-padding-md]': 'padding() === \"md\"',\n '[class.talos-card-padding-lg]': 'padding() === \"lg\"',\n '[class.is-hoverable]': 'hoverable()',\n '[class.is-clickable]': 'isClickable()',\n '[class.is-selected]': 'selected()',\n '[class.is-disabled]': 'disabled()',\n '[attr.role]': 'role()',\n '[attr.tabindex]': 'tabIndex()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-selected]': 'selected() ? \"true\" : null',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onKeydown($event)',\n '(keydown.space)': 'onKeydown($event)'\n }\n})\nexport class TalosCardComponent {\n /** Visual style variant of the card */\n readonly variant = input<TalosCardVariant>('elevated');\n\n /** Inner padding size of the card container */\n readonly padding = input<TalosCardPadding>('md');\n\n /** Adds hover elevation lift and animated border glow */\n readonly hoverable = input<boolean>(false);\n\n /** Enables interactive pointer cursor, active state, and keyboard focus */\n readonly clickable = input<boolean>(false);\n\n /** Indicates if card is in an active selected state */\n readonly selected = input<boolean>(false);\n\n /** Disables interactions and reduces opacity */\n readonly disabled = input<boolean>(false);\n\n /** Emitted when the card is clicked or triggered via keyboard */\n readonly cardClick = output<MouseEvent | KeyboardEvent>();\n\n protected readonly isClickable = computed(() => this.clickable() && !this.disabled());\n\n protected readonly role = computed(() => {\n if (this.clickable()) {\n return 'button';\n }\n return undefined;\n });\n\n protected readonly tabIndex = computed(() => {\n if (this.disabled()) {\n return -1;\n }\n if (this.clickable()) {\n return 0;\n }\n return null;\n });\n\n protected onClick(event: MouseEvent): void {\n if (this.disabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n if (this.clickable()) {\n this.cardClick.emit(event);\n }\n }\n\n protected onKeydown(event: Event): void {\n if (this.disabled() || !this.clickable()) {\n return;\n }\n const key = event instanceof KeyboardEvent ? event.key : '';\n if (key === 'Enter' || key === ' ') {\n event.preventDefault();\n this.cardClick.emit(event as KeyboardEvent);\n }\n }\n}\n","<ng-content />\n","import {\n Component,\n input\n} from '@angular/core';\n\n@Component({\n selector: 'talos-card-header, [talosCardHeader]',\n templateUrl: './card-header.component.html',\n styleUrl: './card-header.component.scss',\n host: {\n 'class': 'talos-card-header-host',\n '[class.is-bordered]': 'bordered()'\n }\n})\nexport class TalosCardHeaderComponent {\n /** Optional title text displayed in the header */\n readonly title = input<string>('');\n\n /** Optional subtitle text displayed beneath the title */\n readonly subtitle = input<string>('');\n\n /** Adds a divider border beneath the header */\n readonly bordered = input<boolean>(false);\n}\n","<div class=\"talos-card-header-main\">\n <div class=\"talos-card-header-leading\">\n <ng-content select=\"[talosCardAvatar], [talosCardIcon], [avatar], [icon]\" />\n </div>\n\n @if (title() || subtitle()) {\n <div class=\"talos-card-header-titles\">\n @if (title()) {\n <h3 class=\"talos-card-title\">{{ title() }}</h3>\n }\n @if (subtitle()) {\n <p class=\"talos-card-subtitle\">{{ subtitle() }}</p>\n }\n </div>\n }\n\n <div class=\"talos-card-header-custom-titles\">\n <ng-content select=\"talos-card-title, [talosCardTitle], [title]\" />\n <ng-content select=\"talos-card-subtitle, [talosCardSubtitle], [subtitle]\" />\n </div>\n\n <div class=\"talos-card-header-content\">\n <ng-content />\n </div>\n</div>\n\n<div class=\"talos-card-header-actions\">\n <ng-content select=\"talos-card-actions, [talosCardActions], [actions]\" />\n</div>\n","import {\n Component,\n input\n} from '@angular/core';\nimport { TalosCardPadding } from './card.types';\n\n@Component({\n selector: 'talos-card-body, talos-card-content, [talosCardBody], [talosCardContent]',\n templateUrl: './card-body.component.html',\n styleUrl: './card-body.component.scss',\n host: {\n 'class': 'talos-card-body-host',\n '[class.talos-card-body-padding-none]': 'padding() === \"none\"',\n '[class.talos-card-body-padding-sm]': 'padding() === \"sm\"',\n '[class.talos-card-body-padding-md]': 'padding() === \"md\"',\n '[class.talos-card-body-padding-lg]': 'padding() === \"lg\"'\n }\n})\nexport class TalosCardBodyComponent {\n /** Optional override for body padding */\n readonly padding = input<TalosCardPadding | null>(null);\n}\n","<ng-content />\n","import {\n Component,\n input\n} from '@angular/core';\nimport { TalosCardFooterAlign } from './card.types';\n\n@Component({\n selector: 'talos-card-footer, [talosCardFooter]',\n templateUrl: './card-footer.component.html',\n styleUrl: './card-footer.component.scss',\n host: {\n 'class': 'talos-card-footer-host',\n '[class.is-bordered]': 'bordered()',\n '[class.align-start]': 'align() === \"start\"',\n '[class.align-center]': 'align() === \"center\"',\n '[class.align-end]': 'align() === \"end\"',\n '[class.align-between]': 'align() === \"between\"'\n }\n})\nexport class TalosCardFooterComponent {\n /** Adds a divider border above the footer */\n readonly bordered = input<boolean>(false);\n\n /** Horizontal alignment of elements within the footer */\n readonly align = input<TalosCardFooterAlign>('end');\n}\n","<ng-content />\n","import { NgModule } from '@angular/core';\nimport { TalosCardComponent } from './card.component';\nimport { TalosCardHeaderComponent } from './card-header.component';\nimport { TalosCardBodyComponent } from './card-body.component';\nimport { TalosCardFooterComponent } from './card-footer.component';\nimport {\n TalosCardActionsDirective,\n TalosCardAvatarDirective,\n TalosCardMediaDirective,\n TalosCardSubtitleDirective,\n TalosCardTitleDirective\n} from './card.directives';\n\nconst CARD_DECLARATIONS = [\n TalosCardComponent,\n TalosCardHeaderComponent,\n TalosCardBodyComponent,\n TalosCardFooterComponent,\n TalosCardTitleDirective,\n TalosCardSubtitleDirective,\n TalosCardAvatarDirective,\n TalosCardActionsDirective,\n TalosCardMediaDirective\n];\n\n@NgModule({\n imports: [...CARD_DECLARATIONS],\n exports: [...CARD_DECLARATIONS]\n})\nexport class TalosCardModule { }\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'talos-expansion-panel-title, [talosExpansionPanelTitle], [expansionPanelTitle]',\n host: {\n 'class': 'talos-expansion-panel-title'\n }\n})\nexport class TalosExpansionPanelTitleDirective { }\n\n@Directive({\n selector: 'talos-expansion-panel-description, [talosExpansionPanelDescription], [expansionPanelDescription]',\n host: {\n 'class': 'talos-expansion-panel-description'\n }\n})\nexport class TalosExpansionPanelDescriptionDirective { }\n\n@Directive({\n selector: '[talosExpansionPanelIcon], [talosExpansionPanelAvatar], [expansionPanelIcon]',\n host: {\n 'class': 'talos-expansion-panel-icon'\n }\n})\nexport class TalosExpansionPanelIconDirective { }\n\n@Directive({\n selector: 'talos-expansion-panel-actions, [talosExpansionPanelActions], [expansionPanelActions]',\n host: {\n 'class': 'talos-expansion-panel-actions'\n }\n})\nexport class TalosExpansionPanelActionsDirective { }\n\n@Directive({\n selector: 'talos-expansion-panel-toggle, [talosExpansionPanelToggle], [expansionPanelToggle]',\n host: {\n 'class': 'talos-expansion-panel-custom-toggle'\n }\n})\nexport class TalosExpansionPanelToggleDirective { }\n\n@Directive({\n selector: 'ng-template[talosExpansionPanelContent], ng-template[expansionPanelContent]',\n})\nexport class TalosExpansionPanelContentDirective { }\n","import { Component, computed, forwardRef, inject, input } from '@angular/core';\nimport { TalosExpansionPanelPadding } from './expansion-panel.types';\nimport { TalosExpansionPanelComponent } from './expansion-panel.component';\n\n@Component({\n selector: 'talos-expansion-panel-body, [talosExpansionPanelBody], talos-expansion-panel-content',\n templateUrl: './expansion-panel-body.component.html',\n styleUrl: './expansion-panel-body.component.scss',\n host: {\n 'class': 'talos-expansion-panel-body-host',\n '[class.padding-none]': 'effectivePadding() === \"none\"',\n '[class.padding-sm]': 'effectivePadding() === \"sm\"',\n '[class.padding-md]': 'effectivePadding() === \"md\"',\n '[class.padding-lg]': 'effectivePadding() === \"lg\"'\n }\n})\nexport class TalosExpansionPanelBodyComponent {\n protected readonly panel = inject(forwardRef(() => TalosExpansionPanelComponent), { optional: true });\n\n /** Padding size inside the expansion panel body */\n readonly padding = input<TalosExpansionPanelPadding | undefined>(undefined);\n\n protected readonly effectivePadding = computed<TalosExpansionPanelPadding>(() => {\n if (this.padding() !== undefined) {\n return this.padding()!;\n }\n return this.panel ? this.panel.effectivePadding() : 'md';\n });\n}\n","<ng-content />\n","import {\n Component,\n effect,\n input\n} from '@angular/core';\nimport {\n TalosExpansionPanelPadding,\n TalosExpansionPanelVariant\n} from './expansion-panel.types';\nimport { TalosExpansionPanelComponent } from './expansion-panel.component';\n\n@Component({\n selector: 'talos-expansion-panel-group, [talosExpansionPanelGroup], talos-accordion, [talosAccordion]',\n templateUrl: './expansion-panel-group.component.html',\n styleUrl: './expansion-panel-group.component.scss',\n host: {\n 'class': 'talos-expansion-panel-group-host',\n '[class.is-separated]': 'separated() || variant() === \"separated\"',\n '[class.is-joined]': '!separated() && variant() !== \"separated\"',\n '[class.is-disabled]': 'disabled()'\n }\n})\nexport class TalosExpansionPanelGroupComponent {\n /** Whether multiple panels can be expanded simultaneously */\n readonly multi = input<boolean>(false);\n\n /** Unified visual variant for child panels */\n readonly variant = input<TalosExpansionPanelVariant | undefined>(undefined);\n\n /** Unified body padding for child panels */\n readonly padding = input<TalosExpansionPanelPadding | undefined>(undefined);\n\n /** Whether the entire group of panels is disabled */\n readonly disabled = input<boolean>(false);\n\n /** Whether panels have separation spacing instead of contiguous borders */\n readonly separated = input<boolean>(false);\n\n private readonly panels = new Set<TalosExpansionPanelComponent>();\n\n constructor() {\n // When multi mode is toggled off, ensure only at most one panel remains open\n effect(() => {\n const isMulti = this.multi();\n if (!isMulti) {\n let hasOpenPanel = false;\n for (const panel of this.panels) {\n if (panel.expanded()) {\n if (hasOpenPanel) {\n panel.close();\n } else {\n hasOpenPanel = true;\n }\n }\n }\n }\n });\n }\n\n registerPanel(panel: TalosExpansionPanelComponent): void {\n this.panels.add(panel);\n if (!this.multi() && panel.expanded()) {\n for (const existing of this.panels) {\n if (existing !== panel && existing.expanded()) {\n existing.close();\n }\n }\n }\n }\n\n unregisterPanel(panel: TalosExpansionPanelComponent): void {\n this.panels.delete(panel);\n }\n\n onPanelExpanded(expandedPanel: TalosExpansionPanelComponent): void {\n if (!this.multi()) {\n for (const panel of this.panels) {\n if (panel !== expandedPanel && panel.expanded()) {\n panel.close();\n }\n }\n }\n }\n\n /** Expand all registered panels (only valid when multi-expand is enabled) */\n expandAll(): void {\n if (this.disabled() || !this.multi()) return;\n\n for (const panel of this.panels) {\n panel.open();\n }\n }\n\n /** Collapse all registered panels */\n collapseAll(): void {\n for (const panel of this.panels) {\n panel.close();\n }\n }\n}\n","<ng-content />\n","import {\n Component,\n ContentChild,\n DestroyRef,\n computed,\n inject,\n input,\n model,\n output,\n forwardRef\n} from '@angular/core';\nimport {\n TalosExpansionPanelPadding,\n TalosExpansionPanelTogglePosition,\n TalosExpansionPanelVariant\n} from './expansion-panel.types';\nimport { TalosExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport { TalosExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { TalosExpansionPanelGroupComponent } from './expansion-panel-group.component';\n\nlet uniqueIdCounter = 0;\n\n@Component({\n selector: 'talos-expansion-panel, [talosExpansionPanel]',\n imports: [TalosExpansionPanelHeaderComponent],\n templateUrl: './expansion-panel.component.html',\n styleUrl: './expansion-panel.component.scss',\n host: {\n 'class': 'talos-expansion-panel-host',\n '[class.talos-expansion-panel-elevated]': 'effectiveVariant() === \"elevated\"',\n '[class.talos-expansion-panel-outlined]': 'effectiveVariant() === \"outlined\"',\n '[class.talos-expansion-panel-filled]': 'effectiveVariant() === \"filled\"',\n '[class.talos-expansion-panel-flat]': 'effectiveVariant() === \"flat\"',\n '[class.talos-expansion-panel-separated]': 'effectiveVariant() === \"separated\"',\n '[class.is-expanded]': 'expanded()',\n '[class.is-disabled]': 'effectiveDisabled()',\n '[attr.id]': 'id',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null'\n }\n})\nexport class TalosExpansionPanelComponent {\n protected readonly group = inject(forwardRef(() => TalosExpansionPanelGroupComponent), { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n\n readonly id = `talos-expansion-panel-${++uniqueIdCounter}`;\n readonly contentId = `${this.id}-content`;\n readonly headerId = `${this.id}-header`;\n\n /** Two-way bindable expanded state */\n readonly expanded = model<boolean>(false);\n\n /** Whether the panel is disabled */\n readonly disabled = input<boolean>(false);\n\n /** Visual variant of the panel */\n readonly variant = input<TalosExpansionPanelVariant | undefined>(undefined);\n\n /** Padding for the panel body */\n readonly padding = input<TalosExpansionPanelPadding | undefined>(undefined);\n\n /** Whether to hide the expand toggle indicator */\n readonly hideToggle = input<boolean>(false);\n\n /** Toggle indicator position */\n readonly togglePosition = input<TalosExpansionPanelTogglePosition>('right');\n\n /** Quick declarative title */\n readonly title = input<string>('');\n\n /** Quick declarative subtitle/description */\n readonly description = input<string>('');\n\n /** Emitted when the panel opens */\n readonly opened = output<void>();\n\n /** Emitted when the panel closes */\n readonly closed = output<void>();\n\n @ContentChild(TalosExpansionPanelHeaderComponent)\n protected readonly customHeader?: TalosExpansionPanelHeaderComponent;\n\n @ContentChild(TalosExpansionPanelBodyComponent)\n protected readonly customBody?: TalosExpansionPanelBodyComponent;\n\n readonly effectiveVariant = computed<TalosExpansionPanelVariant>(() => {\n if (this.variant() !== undefined) {\n return this.variant()!;\n }\n if (this.group && this.group.variant() !== undefined) {\n return this.group.variant()!;\n }\n return 'outlined';\n });\n\n readonly effectivePadding = computed<TalosExpansionPanelPadding>(() => {\n if (this.padding() !== undefined) {\n return this.padding()!;\n }\n if (this.group && this.group.padding() !== undefined) {\n return this.group.padding()!;\n }\n return 'md';\n });\n\n readonly effectiveDisabled = computed<boolean>(() => {\n if (this.disabled()) {\n return true;\n }\n return this.group ? this.group.disabled() : false;\n });\n\n constructor() {\n if (this.group) {\n this.group.registerPanel(this);\n this.destroyRef.onDestroy(() => {\n this.group?.unregisterPanel(this);\n });\n }\n }\n\n open(): void {\n if (!this.effectiveDisabled() && !this.expanded()) {\n this.expanded.set(true);\n this.opened.emit();\n this.group?.onPanelExpanded(this);\n }\n }\n\n close(): void {\n if (!this.effectiveDisabled() && this.expanded()) {\n this.expanded.set(false);\n this.closed.emit();\n }\n }\n\n toggle(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n if (this.expanded()) {\n this.close();\n } else {\n this.open();\n }\n }\n}\n","@if (!customHeader && (title() || description())) {\n <talos-expansion-panel-header [title]=\"title()\" [description]=\"description()\" />\n} @else {\n <ng-content select=\"talos-expansion-panel-header, [talosExpansionPanelHeader]\" />\n}\n\n<div\n class=\"talos-expansion-panel-collapse\"\n [class.is-expanded]=\"expanded()\"\n [attr.id]=\"contentId\"\n role=\"region\"\n [attr.aria-labelledby]=\"headerId\">\n <div class=\"talos-expansion-panel-collapse-inner\">\n @if (customBody) {\n <ng-content select=\"talos-expansion-panel-body, [talosExpansionPanelBody], talos-expansion-panel-content\" />\n } @else {\n <div\n class=\"talos-expansion-panel-default-body\"\n [class.padding-none]=\"effectivePadding() === 'none'\"\n [class.padding-sm]=\"effectivePadding() === 'sm'\"\n [class.padding-md]=\"effectivePadding() === 'md'\"\n [class.padding-lg]=\"effectivePadding() === 'lg'\">\n <ng-content />\n </div>\n }\n </div>\n</div>\n","import {\n Component,\n computed,\n inject,\n input,\n forwardRef\n} from '@angular/core';\nimport { LucideChevronDown } from '@lucide/angular';\nimport { TalosExpansionPanelTogglePosition } from './expansion-panel.types';\nimport { TalosExpansionPanelComponent } from './expansion-panel.component';\n\n@Component({\n selector: 'talos-expansion-panel-header, [talosExpansionPanelHeader]',\n imports: [LucideChevronDown],\n templateUrl: './expansion-panel-header.component.html',\n styleUrl: './expansion-panel-header.component.scss',\n host: {\n 'class': 'talos-expansion-panel-header-host',\n '[class.is-expanded]': 'isExpanded()',\n '[class.is-disabled]': 'isDisabled()',\n '[class.toggle-position-left]': 'effectiveTogglePosition() === \"left\"',\n '[class.toggle-position-right]': 'effectiveTogglePosition() === \"right\"',\n 'role': 'button',\n '[attr.tabindex]': 'isDisabled() ? -1 : 0',\n '[attr.aria-expanded]': 'isExpanded()',\n '[attr.aria-disabled]': 'isDisabled() ? \"true\" : null',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onKeydown($event)',\n '(keydown.space)': 'onKeydown($event)'\n }\n})\nexport class TalosExpansionPanelHeaderComponent {\n protected readonly LucideChevronDown = LucideChevronDown;\n protected readonly panel = inject(forwardRef(() => TalosExpansionPanelComponent), { optional: true });\n\n /** Optional direct title text */\n readonly title = input<string>('');\n\n /** Optional direct description/subtitle text */\n readonly description = input<string>('');\n\n /** Whether to hide the expansion toggle indicator */\n readonly hideToggle = input<boolean | undefined>(undefined);\n\n /** Toggle indicator position ('left' | 'right' | 'none') */\n readonly togglePosition = input<TalosExpansionPanelTogglePosition | undefined>(undefined);\n\n /** Whether the header is disabled */\n readonly disabled = input<boolean | undefined>(undefined);\n\n protected readonly isExpanded = computed(() => {\n return this.panel ? this.panel.expanded() : false;\n });\n\n protected readonly isDisabled = computed(() => {\n if (this.disabled() !== undefined) {\n return !!this.disabled();\n }\n return this.panel ? this.panel.disabled() : false;\n });\n\n protected readonly shouldHideToggle = computed(() => {\n if (this.hideToggle() !== undefined) {\n return !!this.hideToggle();\n }\n return this.panel ? this.panel.hideToggle() : false;\n });\n\n protected readonly effectiveTogglePosition = computed<TalosExpansionPanelTogglePosition>(() => {\n if (this.shouldHideToggle()) {\n return 'none';\n }\n if (this.togglePosition() !== undefined) {\n return this.togglePosition()!;\n }\n return this.panel ? this.panel.togglePosition() : 'right';\n });\n\n protected onClick(event: MouseEvent): void {\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.panel?.toggle();\n }\n\n protected onKeydown(event: Event): void {\n if (this.isDisabled()) {\n return;\n }\n event.preventDefault();\n this.panel?.toggle();\n }\n\n protected onActionsClick(event: MouseEvent): void {\n // Prevent clicking on action buttons or custom interactive controls from toggling the panel\n event.stopPropagation();\n }\n}\n","@if (effectiveTogglePosition() === 'left') {\n <div class=\"talos-expansion-panel-toggle-wrapper talos-expansion-panel-toggle-left\" [class.is-rotated]=\"isExpanded()\">\n <ng-content select=\"talos-expansion-panel-toggle, [talosExpansionPanelToggle], [expansionPanelToggle]\">\n <svg lucideChevronDown [size]=\"16\" class=\"talos-expansion-panel-chevron\" aria-hidden=\"true\"></svg>\n </ng-content>\n </div>\n}\n\n<div class=\"talos-expansion-panel-header-leading\">\n <ng-content select=\"[talosExpansionPanelIcon], [talosExpansionPanelAvatar], [expansionPanelIcon], [avatar], [icon]\" />\n</div>\n\n<div class=\"talos-expansion-panel-header-titles\">\n @if (title()) {\n <span class=\"talos-expansion-panel-title-text\">{{ title() }}</span>\n }\n <ng-content select=\"talos-expansion-panel-title, [talosExpansionPanelTitle], [expansionPanelTitle], [title]\" />\n\n @if (description()) {\n <span class=\"talos-expansion-panel-description-text\">{{ description() }}</span>\n }\n <ng-content select=\"talos-expansion-panel-description, [talosExpansionPanelDescription], [expansionPanelDescription], [description]\" />\n</div>\n\n<div class=\"talos-expansion-panel-header-custom-content\">\n <ng-content />\n</div>\n\n<div class=\"talos-expansion-panel-header-actions\" (click)=\"onActionsClick($event)\">\n <ng-content select=\"talos-expansion-panel-actions, [talosExpansionPanelActions], [expansionPanelActions], [actions]\" />\n</div>\n\n@if (effectiveTogglePosition() === 'right') {\n <div class=\"talos-expansion-panel-toggle-wrapper talos-expansion-panel-toggle-right\" [class.is-rotated]=\"isExpanded()\">\n <ng-content select=\"talos-expansion-panel-toggle, [talosExpansionPanelToggle], [expansionPanelToggle]\">\n <svg lucideChevronDown [size]=\"16\" class=\"talos-expansion-panel-chevron\" aria-hidden=\"true\"></svg>\n </ng-content>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { TalosExpansionPanelComponent } from './expansion-panel.component';\nimport { TalosExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport { TalosExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { TalosExpansionPanelGroupComponent } from './expansion-panel-group.component';\nimport {\n TalosExpansionPanelActionsDirective,\n TalosExpansionPanelContentDirective,\n TalosExpansionPanelDescriptionDirective,\n TalosExpansionPanelIconDirective,\n TalosExpansionPanelTitleDirective,\n TalosExpansionPanelToggleDirective\n} from './expansion-panel.directives';\n\nconst EXPANSION_PANEL_DECLARATIONS = [\n TalosExpansionPanelComponent,\n TalosExpansionPanelHeaderComponent,\n TalosExpansionPanelBodyComponent,\n TalosExpansionPanelGroupComponent,\n TalosExpansionPanelTitleDirective,\n TalosExpansionPanelDescriptionDirective,\n TalosExpansionPanelIconDirective,\n TalosExpansionPanelActionsDirective,\n TalosExpansionPanelToggleDirective,\n TalosExpansionPanelContentDirective\n];\n\n@NgModule({\n imports: [...EXPANSION_PANEL_DECLARATIONS],\n exports: [...EXPANSION_PANEL_DECLARATIONS]\n})\nexport class TalosExpansionPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"weeehaoooz-talos-ui-layout.mjs","sources":["../../../projects/talos-ui/layout/layout.service.ts","../../../projects/talos-ui/layout/side-panel/side-panel.component.ts","../../../projects/talos-ui/layout/side-panel/side-panel.component.html","../../../projects/talos-ui/layout/main-layout/main-layout.component.ts","../../../projects/talos-ui/layout/main-layout/main-layout.component.html","../../../projects/talos-ui/layout/card/card.directives.ts","../../../projects/talos-ui/layout/card/card.component.ts","../../../projects/talos-ui/layout/card/card.component.html","../../../projects/talos-ui/layout/card/card-header.component.ts","../../../projects/talos-ui/layout/card/card-header.component.html","../../../projects/talos-ui/layout/card/card-body.component.ts","../../../projects/talos-ui/layout/card/card-body.component.html","../../../projects/talos-ui/layout/card/card-footer.component.ts","../../../projects/talos-ui/layout/card/card-footer.component.html","../../../projects/talos-ui/layout/card/card.module.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel.directives.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-body.component.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-body.component.html","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-group.component.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-group.component.html","../../../projects/talos-ui/layout/expansion-panel/expansion-panel.component.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel.component.html","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-header.component.ts","../../../projects/talos-ui/layout/expansion-panel/expansion-panel-header.component.html","../../../projects/talos-ui/layout/expansion-panel/expansion-panel.module.ts","../../../projects/talos-ui/layout/weeehaoooz-talos-ui-layout.ts"],"sourcesContent":["import { Injectable, Type, computed, signal } from '@angular/core';\n\nexport interface RightPanelOptions {\n /** Title displayed in the panel header shell */\n title?: string;\n /** Custom width for the panel (e.g. '400px', '500px') */\n width?: string;\n /** Panel rendering mode: 'overlay' (floating over content) or 'inline' (pushes content) */\n mode?: 'overlay' | 'inline';\n /** Whether to blur and lock background interactions on main content area */\n blurBackdrop?: boolean;\n /** Whether clicking backdrop closes panel (defaults to true if blurBackdrop is enabled) */\n closeOnBackdropClick?: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LayoutService {\n // Reactive Signals for layout state\n readonly isLeftNavCollapsed = signal<boolean>(false);\n readonly isRightPanelOpen = signal<boolean>(false);\n readonly isMainContentExpanded = signal<boolean>(false);\n\n // Dynamic component injection signals\n readonly rightPanelComponent = signal<Type<unknown> | null>(null);\n readonly rightPanelInputs = signal<Record<string, unknown>>({});\n readonly rightPanelOptions = signal<RightPanelOptions>({});\n\n // Computed state for backdrop blur\n readonly shouldBlurMainContent = computed(() => {\n return (\n this.isRightPanelOpen() &&\n (this.rightPanelOptions().mode ?? 'overlay') === 'overlay' &&\n !!this.rightPanelOptions().blurBackdrop\n );\n });\n\n // Computed state for inline panel mode\n readonly isRightPanelInline = computed(() => {\n return this.isRightPanelOpen() && this.rightPanelOptions().mode === 'inline';\n });\n\n // Action methods\n toggleLeftNav(): void {\n this.isLeftNavCollapsed.update((state) => !state);\n }\n\n setLeftNavCollapsed(collapsed: boolean): void {\n this.isLeftNavCollapsed.set(collapsed);\n }\n\n toggleMainContentExpanded(): void {\n this.isMainContentExpanded.update((state) => !state);\n }\n\n setMainContentExpanded(expanded: boolean): void {\n this.isMainContentExpanded.set(expanded);\n }\n\n private closeTimeout: ReturnType<typeof setTimeout> | null = null;\n\n /**\n * Dynamically open the right side panel with a specified component and inputs.\n */\n openRightPanel<T>(\n component: Type<T>,\n inputs: Record<string, unknown> = {},\n options: RightPanelOptions = {}\n ): void {\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n this.closeTimeout = null;\n }\n\n this.rightPanelComponent.set(component as Type<unknown>);\n this.rightPanelInputs.set(inputs);\n this.rightPanelOptions.set({\n mode: 'overlay',\n closeOnBackdropClick: true,\n ...options\n });\n this.isRightPanelOpen.set(true);\n }\n\n /**\n * Close the right side panel and clear injected component state after animation completes.\n */\n closeRightPanel(): void {\n this.isRightPanelOpen.set(false);\n\n if (this.closeTimeout) {\n clearTimeout(this.closeTimeout);\n }\n\n this.closeTimeout = setTimeout(() => {\n this.rightPanelComponent.set(null);\n this.rightPanelInputs.set({});\n this.rightPanelOptions.set({});\n this.closeTimeout = null;\n }, 300);\n }\n}\n","import { Component, Type, input, output } from '@angular/core';\nimport { NgComponentOutlet } from '@angular/common';\nimport { TalosButtonDirective } from '@weeehaoooz/talos-ui/button/button';\n\nimport { LucideX } from '@lucide/angular';\n\n@Component({\n selector: 'talos-side-panel',\n imports: [NgComponentOutlet, TalosButtonDirective, LucideX],\n templateUrl: './side-panel.component.html',\n styleUrl: './side-panel.component.scss',\n host: {\n 'role': 'complementary',\n 'class': 'side-panel-host',\n '[class.is-open]': 'isOpen()',\n '[class.is-overlay]': 'mode() === \"overlay\"',\n '[class.is-inline]': 'mode() === \"inline\"',\n '[style.--panel-width]': 'width()',\n '[attr.aria-label]': 'title() || \"Details Panel\"'\n }\n})\nexport class SidePanelComponent {\n /** Whether the panel is currently open and visible */\n readonly isOpen = input<boolean>(true);\n\n /** Panel title displayed in header */\n readonly title = input<string>('Details');\n\n /** Custom panel width (e.g. '380px', '500px', '100%') */\n readonly width = input<string>('380px');\n\n /** Panel mode: 'overlay' (floating) or 'inline' (push content) */\n readonly mode = input<'overlay' | 'inline'>('overlay');\n\n /** Dynamic component to instantiate via NgComponentOutlet */\n readonly component = input<Type<unknown> | null>(null);\n\n /** Inputs object to pass to the dynamically injected component */\n readonly componentInputs = input<Record<string, unknown>>({});\n\n /** Event emitted when the close button is clicked */\n readonly close = output<void>();\n\n onClose(): void {\n this.close.emit();\n }\n}\n","<div class=\"side-panel-inner\">\n <div class=\"side-panel-header\">\n <h3 class=\"side-panel-title\">\n {{ title() }}\n </h3>\n <button type=\"button\" talosButton variant=\"ghost\" size=\"sm\" [iconOnly]=\"true\" class=\"side-panel-close-btn\"\n (click)=\"onClose()\" aria-label=\"Close details panel\">\n <svg lucideX [size]=\"16\"></svg>\n </button>\n </div>\n <div class=\"side-panel-body\">\n @if (component()) {\n <ng-container *ngComponentOutlet=\"component()!; inputs: componentInputs()\" />\n }\n <ng-content />\n </div>\n</div>","import { Component, inject } from '@angular/core';\nimport { LayoutService } from '../layout.service';\nimport { SidePanelComponent } from '../side-panel/side-panel.component';\n\n@Component({\n selector: 'talos-main-layout',\n imports: [SidePanelComponent],\n templateUrl: './main-layout.component.html',\n styleUrl: './main-layout.component.scss',\n host: {\n 'class': 'talos-main-layout-host',\n '[class.left-nav-collapsed]': 'layoutService.isLeftNavCollapsed()',\n '[class.right-panel-open]': 'layoutService.isRightPanelOpen()',\n '[class.right-panel-inline]': 'layoutService.isRightPanelInline()',\n '[class.main-content-expanded]': 'layoutService.isMainContentExpanded()',\n '[class.blur-backdrop]': 'layoutService.shouldBlurMainContent()'\n }\n})\nexport class MainLayoutComponent {\n protected readonly layoutService = inject(LayoutService);\n\n onBackdropClick(): void {\n if (this.layoutService.rightPanelOptions().closeOnBackdropClick) {\n this.layoutService.closeRightPanel();\n }\n }\n}\n","<!-- Top Header Slot (Spanning 100% full width across top of viewport) -->\n<ng-content select=\"talos-top-nav, app-header, header, [top-nav], [header]\" />\n\n<div class=\"layout-body-wrapper\">\n <!-- Side Nav Slot (Accepts talos-side-nav, app-side-nav, or elements with [side-nav]) -->\n <ng-content select=\"talos-side-nav, app-side-nav, [side-nav]\" />\n\n <!-- Mobile Sidebar Overlay Backdrop -->\n @if (!layoutService.isLeftNavCollapsed()) {\n <div class=\"mobile-sidebar-backdrop\" (click)=\"layoutService.setLeftNavCollapsed(true)\" aria-hidden=\"true\"></div>\n }\n\n <!-- Main Content Container Area -->\n <div class=\"main-content-wrapper\">\n <main class=\"main-content-container\" role=\"main\">\n <ng-content />\n </main>\n\n <!-- Optional Blur Backdrop Overlay -->\n @if (layoutService.shouldBlurMainContent()) {\n <div class=\"main-backdrop-overlay\" (click)=\"onBackdropClick()\" aria-hidden=\"true\"></div>\n }\n </div>\n\n <!-- Dynamic Right Side Panel Drawer Component -->\n <talos-side-panel [isOpen]=\"layoutService.isRightPanelOpen()\"\n [title]=\"layoutService.rightPanelOptions().title ?? 'Details'\"\n [width]=\"layoutService.rightPanelOptions().width ?? '380px'\"\n [mode]=\"layoutService.rightPanelOptions().mode ?? 'overlay'\" [component]=\"layoutService.rightPanelComponent()\"\n [componentInputs]=\"layoutService.rightPanelInputs()\" (close)=\"layoutService.closeRightPanel()\" />\n</div>","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'talos-card-title, [talosCardTitle]',\n host: {\n 'class': 'talos-card-title'\n }\n})\nexport class TalosCardTitleDirective { }\n\n@Directive({\n selector: 'talos-card-subtitle, [talosCardSubtitle]',\n host: {\n 'class': 'talos-card-subtitle'\n }\n})\nexport class TalosCardSubtitleDirective { }\n\n@Directive({\n selector: '[talosCardAvatar], [talosCardIcon]',\n host: {\n 'class': 'talos-card-avatar'\n }\n})\nexport class TalosCardAvatarDirective { }\n\n@Directive({\n selector: 'talos-card-actions, [talosCardActions]',\n host: {\n 'class': 'talos-card-actions'\n }\n})\nexport class TalosCardActionsDirective { }\n\n@Directive({\n selector: 'talos-card-media, [talosCardMedia]',\n host: {\n 'class': 'talos-card-media'\n }\n})\nexport class TalosCardMediaDirective { }\n","import {\n Component,\n computed,\n input,\n output\n} from '@angular/core';\nimport { TalosCardPadding, TalosCardVariant } from './card.types';\n\n@Component({\n selector: 'talos-card, [talosCard]',\n templateUrl: './card.component.html',\n styleUrl: './card.component.scss',\n host: {\n 'class': 'talos-card-host',\n '[class.talos-card-elevated]': 'variant() === \"elevated\"',\n '[class.talos-card-outlined]': 'variant() === \"outlined\"',\n '[class.talos-card-flat]': 'variant() === \"flat\"',\n '[class.talos-card-filled]': 'variant() === \"filled\"',\n '[class.talos-card-padding-none]': 'padding() === \"none\"',\n '[class.talos-card-padding-sm]': 'padding() === \"sm\"',\n '[class.talos-card-padding-md]': 'padding() === \"md\"',\n '[class.talos-card-padding-lg]': 'padding() === \"lg\"',\n '[class.is-hoverable]': 'hoverable()',\n '[class.is-clickable]': 'isClickable()',\n '[class.is-selected]': 'selected()',\n '[class.is-disabled]': 'disabled()',\n '[attr.role]': 'role()',\n '[attr.tabindex]': 'tabIndex()',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-selected]': 'selected() ? \"true\" : null',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onKeydown($event)',\n '(keydown.space)': 'onKeydown($event)'\n }\n})\nexport class TalosCardComponent {\n /** Visual style variant of the card */\n readonly variant = input<TalosCardVariant>('elevated');\n\n /** Inner padding size of the card container */\n readonly padding = input<TalosCardPadding>('md');\n\n /** Adds hover elevation lift and animated border glow */\n readonly hoverable = input<boolean>(false);\n\n /** Enables interactive pointer cursor, active state, and keyboard focus */\n readonly clickable = input<boolean>(false);\n\n /** Indicates if card is in an active selected state */\n readonly selected = input<boolean>(false);\n\n /** Disables interactions and reduces opacity */\n readonly disabled = input<boolean>(false);\n\n /** Emitted when the card is clicked or triggered via keyboard */\n readonly cardClick = output<MouseEvent | KeyboardEvent>();\n\n protected readonly isClickable = computed(() => this.clickable() && !this.disabled());\n\n protected readonly role = computed(() => {\n if (this.clickable()) {\n return 'button';\n }\n return undefined;\n });\n\n protected readonly tabIndex = computed(() => {\n if (this.disabled()) {\n return -1;\n }\n if (this.clickable()) {\n return 0;\n }\n return null;\n });\n\n protected onClick(event: MouseEvent): void {\n if (this.disabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n if (this.clickable()) {\n this.cardClick.emit(event);\n }\n }\n\n protected onKeydown(event: Event): void {\n if (this.disabled() || !this.clickable()) {\n return;\n }\n const key = event instanceof KeyboardEvent ? event.key : '';\n if (key === 'Enter' || key === ' ') {\n event.preventDefault();\n this.cardClick.emit(event as KeyboardEvent);\n }\n }\n}\n","<ng-content />\n","import {\n Component,\n input\n} from '@angular/core';\n\n@Component({\n selector: 'talos-card-header, [talosCardHeader]',\n templateUrl: './card-header.component.html',\n styleUrl: './card-header.component.scss',\n host: {\n 'class': 'talos-card-header-host',\n '[class.is-bordered]': 'bordered()'\n }\n})\nexport class TalosCardHeaderComponent {\n /** Optional title text displayed in the header */\n readonly title = input<string>('');\n\n /** Optional subtitle text displayed beneath the title */\n readonly subtitle = input<string>('');\n\n /** Adds a divider border beneath the header */\n readonly bordered = input<boolean>(false);\n}\n","<div class=\"talos-card-header-main\">\n <div class=\"talos-card-header-leading\">\n <ng-content select=\"[talosCardAvatar], [talosCardIcon], [avatar], [icon]\" />\n </div>\n\n @if (title() || subtitle()) {\n <div class=\"talos-card-header-titles\">\n @if (title()) {\n <h3 class=\"talos-card-title\">{{ title() }}</h3>\n }\n @if (subtitle()) {\n <p class=\"talos-card-subtitle\">{{ subtitle() }}</p>\n }\n </div>\n }\n\n <div class=\"talos-card-header-custom-titles\">\n <ng-content select=\"talos-card-title, [talosCardTitle], [title]\" />\n <ng-content select=\"talos-card-subtitle, [talosCardSubtitle], [subtitle]\" />\n </div>\n\n <div class=\"talos-card-header-content\">\n <ng-content />\n </div>\n</div>\n\n<div class=\"talos-card-header-actions\">\n <ng-content select=\"talos-card-actions, [talosCardActions], [actions]\" />\n</div>\n","import {\n Component,\n input\n} from '@angular/core';\nimport { TalosCardPadding } from './card.types';\n\n@Component({\n selector: 'talos-card-body, talos-card-content, [talosCardBody], [talosCardContent]',\n templateUrl: './card-body.component.html',\n styleUrl: './card-body.component.scss',\n host: {\n 'class': 'talos-card-body-host',\n '[class.talos-card-body-padding-none]': 'padding() === \"none\"',\n '[class.talos-card-body-padding-sm]': 'padding() === \"sm\"',\n '[class.talos-card-body-padding-md]': 'padding() === \"md\"',\n '[class.talos-card-body-padding-lg]': 'padding() === \"lg\"'\n }\n})\nexport class TalosCardBodyComponent {\n /** Optional override for body padding */\n readonly padding = input<TalosCardPadding | null>(null);\n}\n","<ng-content />\n","import {\n Component,\n input\n} from '@angular/core';\nimport { TalosCardFooterAlign } from './card.types';\n\n@Component({\n selector: 'talos-card-footer, [talosCardFooter]',\n templateUrl: './card-footer.component.html',\n styleUrl: './card-footer.component.scss',\n host: {\n 'class': 'talos-card-footer-host',\n '[class.is-bordered]': 'bordered()',\n '[class.align-start]': 'align() === \"start\"',\n '[class.align-center]': 'align() === \"center\"',\n '[class.align-end]': 'align() === \"end\"',\n '[class.align-between]': 'align() === \"between\"'\n }\n})\nexport class TalosCardFooterComponent {\n /** Adds a divider border above the footer */\n readonly bordered = input<boolean>(false);\n\n /** Horizontal alignment of elements within the footer */\n readonly align = input<TalosCardFooterAlign>('end');\n}\n","<ng-content />\n","import { NgModule } from '@angular/core';\nimport { TalosCardComponent } from './card.component';\nimport { TalosCardHeaderComponent } from './card-header.component';\nimport { TalosCardBodyComponent } from './card-body.component';\nimport { TalosCardFooterComponent } from './card-footer.component';\nimport {\n TalosCardActionsDirective,\n TalosCardAvatarDirective,\n TalosCardMediaDirective,\n TalosCardSubtitleDirective,\n TalosCardTitleDirective\n} from './card.directives';\n\nconst CARD_DECLARATIONS = [\n TalosCardComponent,\n TalosCardHeaderComponent,\n TalosCardBodyComponent,\n TalosCardFooterComponent,\n TalosCardTitleDirective,\n TalosCardSubtitleDirective,\n TalosCardAvatarDirective,\n TalosCardActionsDirective,\n TalosCardMediaDirective\n];\n\n@NgModule({\n imports: [...CARD_DECLARATIONS],\n exports: [...CARD_DECLARATIONS]\n})\nexport class TalosCardModule { }\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'talos-expansion-panel-title, [talosExpansionPanelTitle], [expansionPanelTitle]',\n host: {\n 'class': 'talos-expansion-panel-title'\n }\n})\nexport class TalosExpansionPanelTitleDirective { }\n\n@Directive({\n selector: 'talos-expansion-panel-description, [talosExpansionPanelDescription], [expansionPanelDescription]',\n host: {\n 'class': 'talos-expansion-panel-description'\n }\n})\nexport class TalosExpansionPanelDescriptionDirective { }\n\n@Directive({\n selector: '[talosExpansionPanelIcon], [talosExpansionPanelAvatar], [expansionPanelIcon]',\n host: {\n 'class': 'talos-expansion-panel-icon'\n }\n})\nexport class TalosExpansionPanelIconDirective { }\n\n@Directive({\n selector: 'talos-expansion-panel-actions, [talosExpansionPanelActions], [expansionPanelActions]',\n host: {\n 'class': 'talos-expansion-panel-actions'\n }\n})\nexport class TalosExpansionPanelActionsDirective { }\n\n@Directive({\n selector: 'talos-expansion-panel-toggle, [talosExpansionPanelToggle], [expansionPanelToggle]',\n host: {\n 'class': 'talos-expansion-panel-custom-toggle'\n }\n})\nexport class TalosExpansionPanelToggleDirective { }\n\n@Directive({\n selector: 'ng-template[talosExpansionPanelContent], ng-template[expansionPanelContent]',\n})\nexport class TalosExpansionPanelContentDirective { }\n","import { Component, computed, forwardRef, inject, input } from '@angular/core';\nimport { TalosExpansionPanelPadding } from './expansion-panel.types';\nimport { TalosExpansionPanelComponent } from './expansion-panel.component';\n\n@Component({\n selector: 'talos-expansion-panel-body, [talosExpansionPanelBody], talos-expansion-panel-content',\n templateUrl: './expansion-panel-body.component.html',\n styleUrl: './expansion-panel-body.component.scss',\n host: {\n 'class': 'talos-expansion-panel-body-host',\n '[class.padding-none]': 'effectivePadding() === \"none\"',\n '[class.padding-sm]': 'effectivePadding() === \"sm\"',\n '[class.padding-md]': 'effectivePadding() === \"md\"',\n '[class.padding-lg]': 'effectivePadding() === \"lg\"'\n }\n})\nexport class TalosExpansionPanelBodyComponent {\n protected readonly panel = inject(forwardRef(() => TalosExpansionPanelComponent), { optional: true });\n\n /** Padding size inside the expansion panel body */\n readonly padding = input<TalosExpansionPanelPadding | undefined>(undefined);\n\n protected readonly effectivePadding = computed<TalosExpansionPanelPadding>(() => {\n if (this.padding() !== undefined) {\n return this.padding()!;\n }\n return this.panel ? this.panel.effectivePadding() : 'md';\n });\n}\n","<ng-content />\n","import {\n Component,\n effect,\n input\n} from '@angular/core';\nimport {\n TalosExpansionPanelPadding,\n TalosExpansionPanelVariant\n} from './expansion-panel.types';\nimport { TalosExpansionPanelComponent } from './expansion-panel.component';\n\n@Component({\n selector: 'talos-expansion-panel-group, [talosExpansionPanelGroup], talos-accordion, [talosAccordion]',\n templateUrl: './expansion-panel-group.component.html',\n styleUrl: './expansion-panel-group.component.scss',\n host: {\n 'class': 'talos-expansion-panel-group-host',\n '[class.is-separated]': 'separated() || variant() === \"separated\"',\n '[class.is-joined]': '!separated() && variant() !== \"separated\"',\n '[class.is-disabled]': 'disabled()'\n }\n})\nexport class TalosExpansionPanelGroupComponent {\n /** Whether multiple panels can be expanded simultaneously */\n readonly multi = input<boolean>(false);\n\n /** Unified visual variant for child panels */\n readonly variant = input<TalosExpansionPanelVariant | undefined>(undefined);\n\n /** Unified body padding for child panels */\n readonly padding = input<TalosExpansionPanelPadding | undefined>(undefined);\n\n /** Whether the entire group of panels is disabled */\n readonly disabled = input<boolean>(false);\n\n /** Whether panels have separation spacing instead of contiguous borders */\n readonly separated = input<boolean>(false);\n\n private readonly panels = new Set<TalosExpansionPanelComponent>();\n\n constructor() {\n // When multi mode is toggled off, ensure only at most one panel remains open\n effect(() => {\n const isMulti = this.multi();\n if (!isMulti) {\n let hasOpenPanel = false;\n for (const panel of this.panels) {\n if (panel.expanded()) {\n if (hasOpenPanel) {\n panel.close();\n } else {\n hasOpenPanel = true;\n }\n }\n }\n }\n });\n }\n\n registerPanel(panel: TalosExpansionPanelComponent): void {\n this.panels.add(panel);\n if (!this.multi() && panel.expanded()) {\n for (const existing of this.panels) {\n if (existing !== panel && existing.expanded()) {\n existing.close();\n }\n }\n }\n }\n\n unregisterPanel(panel: TalosExpansionPanelComponent): void {\n this.panels.delete(panel);\n }\n\n onPanelExpanded(expandedPanel: TalosExpansionPanelComponent): void {\n if (!this.multi()) {\n for (const panel of this.panels) {\n if (panel !== expandedPanel && panel.expanded()) {\n panel.close();\n }\n }\n }\n }\n\n /** Expand all registered panels (only valid when multi-expand is enabled) */\n expandAll(): void {\n if (this.disabled() || !this.multi()) return;\n\n for (const panel of this.panels) {\n panel.open();\n }\n }\n\n /** Collapse all registered panels */\n collapseAll(): void {\n for (const panel of this.panels) {\n panel.close();\n }\n }\n}\n","<ng-content />\n","import {\n Component,\n ContentChild,\n DestroyRef,\n computed,\n inject,\n input,\n model,\n output,\n forwardRef\n} from '@angular/core';\nimport {\n TalosExpansionPanelPadding,\n TalosExpansionPanelTogglePosition,\n TalosExpansionPanelVariant\n} from './expansion-panel.types';\nimport { TalosExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport { TalosExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { TalosExpansionPanelGroupComponent } from './expansion-panel-group.component';\n\nlet uniqueIdCounter = 0;\n\n@Component({\n selector: 'talos-expansion-panel, [talosExpansionPanel]',\n imports: [TalosExpansionPanelHeaderComponent],\n templateUrl: './expansion-panel.component.html',\n styleUrl: './expansion-panel.component.scss',\n host: {\n 'class': 'talos-expansion-panel-host',\n '[class.talos-expansion-panel-elevated]': 'effectiveVariant() === \"elevated\"',\n '[class.talos-expansion-panel-outlined]': 'effectiveVariant() === \"outlined\"',\n '[class.talos-expansion-panel-filled]': 'effectiveVariant() === \"filled\"',\n '[class.talos-expansion-panel-flat]': 'effectiveVariant() === \"flat\"',\n '[class.talos-expansion-panel-separated]': 'effectiveVariant() === \"separated\"',\n '[class.is-expanded]': 'expanded()',\n '[class.is-disabled]': 'effectiveDisabled()',\n '[attr.id]': 'id',\n '[attr.aria-disabled]': 'effectiveDisabled() ? \"true\" : null'\n }\n})\nexport class TalosExpansionPanelComponent {\n protected readonly group = inject(forwardRef(() => TalosExpansionPanelGroupComponent), { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n\n readonly id = `talos-expansion-panel-${++uniqueIdCounter}`;\n readonly contentId = `${this.id}-content`;\n readonly headerId = `${this.id}-header`;\n\n /** Two-way bindable expanded state */\n readonly expanded = model<boolean>(false);\n\n /** Whether the panel is disabled */\n readonly disabled = input<boolean>(false);\n\n /** Visual variant of the panel */\n readonly variant = input<TalosExpansionPanelVariant | undefined>(undefined);\n\n /** Padding for the panel body */\n readonly padding = input<TalosExpansionPanelPadding | undefined>(undefined);\n\n /** Whether to hide the expand toggle indicator */\n readonly hideToggle = input<boolean>(false);\n\n /** Toggle indicator position */\n readonly togglePosition = input<TalosExpansionPanelTogglePosition>('right');\n\n /** Quick declarative title */\n readonly title = input<string>('');\n\n /** Quick declarative subtitle/description */\n readonly description = input<string>('');\n\n /** Emitted when the panel opens */\n readonly opened = output<void>();\n\n /** Emitted when the panel closes */\n readonly closed = output<void>();\n\n @ContentChild(TalosExpansionPanelHeaderComponent)\n protected readonly customHeader?: TalosExpansionPanelHeaderComponent;\n\n @ContentChild(TalosExpansionPanelBodyComponent)\n protected readonly customBody?: TalosExpansionPanelBodyComponent;\n\n readonly effectiveVariant = computed<TalosExpansionPanelVariant>(() => {\n if (this.variant() !== undefined) {\n return this.variant()!;\n }\n if (this.group && this.group.variant() !== undefined) {\n return this.group.variant()!;\n }\n return 'outlined';\n });\n\n readonly effectivePadding = computed<TalosExpansionPanelPadding>(() => {\n if (this.padding() !== undefined) {\n return this.padding()!;\n }\n if (this.group && this.group.padding() !== undefined) {\n return this.group.padding()!;\n }\n return 'md';\n });\n\n readonly effectiveDisabled = computed<boolean>(() => {\n if (this.disabled()) {\n return true;\n }\n return this.group ? this.group.disabled() : false;\n });\n\n constructor() {\n if (this.group) {\n this.group.registerPanel(this);\n this.destroyRef.onDestroy(() => {\n this.group?.unregisterPanel(this);\n });\n }\n }\n\n open(): void {\n if (!this.effectiveDisabled() && !this.expanded()) {\n this.expanded.set(true);\n this.opened.emit();\n this.group?.onPanelExpanded(this);\n }\n }\n\n close(): void {\n if (!this.effectiveDisabled() && this.expanded()) {\n this.expanded.set(false);\n this.closed.emit();\n }\n }\n\n toggle(): void {\n if (this.effectiveDisabled()) {\n return;\n }\n if (this.expanded()) {\n this.close();\n } else {\n this.open();\n }\n }\n}\n","@if (!customHeader && (title() || description())) {\n <talos-expansion-panel-header [title]=\"title()\" [description]=\"description()\" />\n} @else {\n <ng-content select=\"talos-expansion-panel-header, [talosExpansionPanelHeader]\" />\n}\n\n<div\n class=\"talos-expansion-panel-collapse\"\n [class.is-expanded]=\"expanded()\"\n [attr.id]=\"contentId\"\n role=\"region\"\n [attr.aria-labelledby]=\"headerId\">\n <div class=\"talos-expansion-panel-collapse-inner\">\n @if (customBody) {\n <ng-content select=\"talos-expansion-panel-body, [talosExpansionPanelBody], talos-expansion-panel-content\" />\n } @else {\n <div\n class=\"talos-expansion-panel-default-body\"\n [class.padding-none]=\"effectivePadding() === 'none'\"\n [class.padding-sm]=\"effectivePadding() === 'sm'\"\n [class.padding-md]=\"effectivePadding() === 'md'\"\n [class.padding-lg]=\"effectivePadding() === 'lg'\">\n <ng-content />\n </div>\n }\n </div>\n</div>\n","import {\n Component,\n computed,\n inject,\n input,\n forwardRef\n} from '@angular/core';\nimport { LucideChevronDown } from '@lucide/angular';\nimport { TalosExpansionPanelTogglePosition } from './expansion-panel.types';\nimport { TalosExpansionPanelComponent } from './expansion-panel.component';\n\n@Component({\n selector: 'talos-expansion-panel-header, [talosExpansionPanelHeader]',\n imports: [LucideChevronDown],\n templateUrl: './expansion-panel-header.component.html',\n styleUrl: './expansion-panel-header.component.scss',\n host: {\n 'class': 'talos-expansion-panel-header-host',\n '[class.is-expanded]': 'isExpanded()',\n '[class.is-disabled]': 'isDisabled()',\n '[class.toggle-position-left]': 'effectiveTogglePosition() === \"left\"',\n '[class.toggle-position-right]': 'effectiveTogglePosition() === \"right\"',\n 'role': 'button',\n '[attr.tabindex]': 'isDisabled() ? -1 : 0',\n '[attr.aria-expanded]': 'isExpanded()',\n '[attr.aria-disabled]': 'isDisabled() ? \"true\" : null',\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onKeydown($event)',\n '(keydown.space)': 'onKeydown($event)'\n }\n})\nexport class TalosExpansionPanelHeaderComponent {\n protected readonly LucideChevronDown = LucideChevronDown;\n protected readonly panel = inject(forwardRef(() => TalosExpansionPanelComponent), { optional: true });\n\n /** Optional direct title text */\n readonly title = input<string>('');\n\n /** Optional direct description/subtitle text */\n readonly description = input<string>('');\n\n /** Whether to hide the expansion toggle indicator */\n readonly hideToggle = input<boolean | undefined>(undefined);\n\n /** Toggle indicator position ('left' | 'right' | 'none') */\n readonly togglePosition = input<TalosExpansionPanelTogglePosition | undefined>(undefined);\n\n /** Whether the header is disabled */\n readonly disabled = input<boolean | undefined>(undefined);\n\n protected readonly isExpanded = computed(() => {\n return this.panel ? this.panel.expanded() : false;\n });\n\n protected readonly isDisabled = computed(() => {\n if (this.disabled() !== undefined) {\n return !!this.disabled();\n }\n return this.panel ? this.panel.disabled() : false;\n });\n\n protected readonly shouldHideToggle = computed(() => {\n if (this.hideToggle() !== undefined) {\n return !!this.hideToggle();\n }\n return this.panel ? this.panel.hideToggle() : false;\n });\n\n protected readonly effectiveTogglePosition = computed<TalosExpansionPanelTogglePosition>(() => {\n if (this.shouldHideToggle()) {\n return 'none';\n }\n if (this.togglePosition() !== undefined) {\n return this.togglePosition()!;\n }\n return this.panel ? this.panel.togglePosition() : 'right';\n });\n\n protected onClick(event: MouseEvent): void {\n if (this.isDisabled()) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.panel?.toggle();\n }\n\n protected onKeydown(event: Event): void {\n if (this.isDisabled()) {\n return;\n }\n event.preventDefault();\n this.panel?.toggle();\n }\n\n protected onActionsClick(event: MouseEvent): void {\n // Prevent clicking on action buttons or custom interactive controls from toggling the panel\n event.stopPropagation();\n }\n}\n","@if (effectiveTogglePosition() === 'left') {\n <div class=\"talos-expansion-panel-toggle-wrapper talos-expansion-panel-toggle-left\" [class.is-rotated]=\"isExpanded()\">\n <ng-content select=\"talos-expansion-panel-toggle, [talosExpansionPanelToggle], [expansionPanelToggle]\">\n <svg lucideChevronDown [size]=\"16\" class=\"talos-expansion-panel-chevron\" aria-hidden=\"true\"></svg>\n </ng-content>\n </div>\n}\n\n<div class=\"talos-expansion-panel-header-leading\">\n <ng-content select=\"[talosExpansionPanelIcon], [talosExpansionPanelAvatar], [expansionPanelIcon], [avatar], [icon]\" />\n</div>\n\n<div class=\"talos-expansion-panel-header-titles\">\n @if (title()) {\n <span class=\"talos-expansion-panel-title-text\">{{ title() }}</span>\n }\n <ng-content select=\"talos-expansion-panel-title, [talosExpansionPanelTitle], [expansionPanelTitle], [title]\" />\n\n @if (description()) {\n <span class=\"talos-expansion-panel-description-text\">{{ description() }}</span>\n }\n <ng-content select=\"talos-expansion-panel-description, [talosExpansionPanelDescription], [expansionPanelDescription], [description]\" />\n</div>\n\n<div class=\"talos-expansion-panel-header-custom-content\">\n <ng-content />\n</div>\n\n<div class=\"talos-expansion-panel-header-actions\" (click)=\"onActionsClick($event)\">\n <ng-content select=\"talos-expansion-panel-actions, [talosExpansionPanelActions], [expansionPanelActions], [actions]\" />\n</div>\n\n@if (effectiveTogglePosition() === 'right') {\n <div class=\"talos-expansion-panel-toggle-wrapper talos-expansion-panel-toggle-right\" [class.is-rotated]=\"isExpanded()\">\n <ng-content select=\"talos-expansion-panel-toggle, [talosExpansionPanelToggle], [expansionPanelToggle]\">\n <svg lucideChevronDown [size]=\"16\" class=\"talos-expansion-panel-chevron\" aria-hidden=\"true\"></svg>\n </ng-content>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { TalosExpansionPanelComponent } from './expansion-panel.component';\nimport { TalosExpansionPanelHeaderComponent } from './expansion-panel-header.component';\nimport { TalosExpansionPanelBodyComponent } from './expansion-panel-body.component';\nimport { TalosExpansionPanelGroupComponent } from './expansion-panel-group.component';\nimport {\n TalosExpansionPanelActionsDirective,\n TalosExpansionPanelContentDirective,\n TalosExpansionPanelDescriptionDirective,\n TalosExpansionPanelIconDirective,\n TalosExpansionPanelTitleDirective,\n TalosExpansionPanelToggleDirective\n} from './expansion-panel.directives';\n\nconst EXPANSION_PANEL_DECLARATIONS = [\n TalosExpansionPanelComponent,\n TalosExpansionPanelHeaderComponent,\n TalosExpansionPanelBodyComponent,\n TalosExpansionPanelGroupComponent,\n TalosExpansionPanelTitleDirective,\n TalosExpansionPanelDescriptionDirective,\n TalosExpansionPanelIconDirective,\n TalosExpansionPanelActionsDirective,\n TalosExpansionPanelToggleDirective,\n TalosExpansionPanelContentDirective\n];\n\n@NgModule({\n imports: [...EXPANSION_PANEL_DECLARATIONS],\n exports: [...EXPANSION_PANEL_DECLARATIONS]\n})\nexport class TalosExpansionPanelModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}