{"version":3,"file":"mayvio-ui-angular-src-sidebar.mjs","sources":["../../src/sidebar/sidebar.component.ts","../../src/sidebar/mayvio-ui-angular-src-sidebar.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarLinkConfig } from 'mayvio-ui/sidebar';\nimport 'mayvio-ui/sidebar/css';\n\n@Component({\n  selector: 'mv-sidebar',\n  standalone: true,\n  imports: [CommonModule],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div\n      class=\"mv-sidebar-overlay\"\n      [class.mv-sidebar-overlay--mobile-open]=\"mobileOpen\"\n      (click)=\"closeMobile()\"\n      aria-hidden=\"true\"\n    ></div>\n\n    <aside\n      class=\"mv-sidebar\"\n      [class.mv-sidebar--collapsed]=\"collapsed\"\n      [class.mv-sidebar--mobile-open]=\"mobileOpen\"\n      [class]=\"className\"\n    >\n      <div class=\"mv-sidebar-header\">\n        <div class=\"mv-sidebar-logo\">{{ title }}</div>\n        <button\n          type=\"button\"\n          class=\"mv-sidebar-toggle\"\n          (click)=\"toggleCollapse()\"\n          [attr.aria-label]=\"collapsed ? 'Expand sidebar' : 'Collapse sidebar'\"\n        >\n          <svg\n            width=\"20\"\n            height=\"20\"\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            stroke-width=\"2\"\n            stroke-linecap=\"round\"\n            stroke-linejoin=\"round\"\n          >\n            <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect>\n            <line x1=\"9\" y1=\"3\" x2=\"9\" y2=\"21\"></line>\n          </svg>\n        </button>\n      </div>\n\n      <div class=\"mv-sidebar-content\">\n        <ul class=\"mv-sidebar-nav\">\n          <li *ngFor=\"let link of links\" class=\"mv-sidebar-item\">\n            <a\n              [href]=\"link.href || '#'\"\n              class=\"mv-sidebar-link\"\n              [class.mv-sidebar-link--active]=\"link.active\"\n              (click)=\"onLinkClick($event, link)\"\n            >\n              <div class=\"mv-sidebar-icon\">\n                <!-- Default placeholder icon -->\n                <svg\n                  width=\"20\"\n                  height=\"20\"\n                  viewBox=\"0 0 24 24\"\n                  fill=\"none\"\n                  stroke=\"currentColor\"\n                  stroke-width=\"2\"\n                  stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                >\n                  <circle cx=\"12\" cy=\"12\" r=\"3\"></circle>\n                  <path\n                    d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"\n                  ></path>\n                </svg>\n              </div>\n              <span class=\"mv-sidebar-label\">{{ link.label }}</span>\n            </a>\n          </li>\n        </ul>\n      </div>\n    </aside>\n  `,\n})\nexport class SidebarComponent {\n  @Input() title = 'Mayvio UI';\n  @Input() links: SidebarLinkConfig[] = [];\n  @Input() collapsed = false;\n  @Input() mobileOpen = false;\n  @Input() className = '';\n\n  @Output() linkSelect = new EventEmitter<SidebarLinkConfig>();\n  @Output() toggleCollapseEvent = new EventEmitter<boolean>();\n  @Output() mobileCloseEvent = new EventEmitter<void>();\n\n  toggleCollapse() {\n    this.toggleCollapseEvent.emit(!this.collapsed);\n  }\n\n  closeMobile() {\n    this.mobileCloseEvent.emit();\n  }\n\n  onLinkClick(e: Event, link: SidebarLinkConfig) {\n    if (!link.href) {\n      e.preventDefault();\n    }\n    this.linkSelect.emit(link);\n    if (this.mobileOpen) {\n      this.closeMobile();\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAmFa,gBAAgB,CAAA;IAClB,KAAK,GAAG,WAAW;IACnB,KAAK,GAAwB,EAAE;IAC/B,SAAS,GAAG,KAAK;IACjB,UAAU,GAAG,KAAK;IAClB,SAAS,GAAG,EAAE;AAEb,IAAA,UAAU,GAAG,IAAI,YAAY,EAAqB;AAClD,IAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW;AACjD,IAAA,gBAAgB,GAAG,IAAI,YAAY,EAAQ;IAErD,cAAc,GAAA;QACZ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAChD;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;IAC9B;IAEA,WAAW,CAAC,CAAQ,EAAE,IAAuB,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,CAAC,CAAC,cAAc,EAAE;QACpB;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,WAAW,EAAE;QACpB;IACF;wGA3BW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAzES,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FA2EX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA9E5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuET,EAAA,CAAA;AACF,iBAAA;;sBAEE;;sBACA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBACA;;sBACA;;;AC5FH;;AAEG;;;;"}