{"version":3,"file":"edsis-component-scroll-area.mjs","sources":["../../../library/component/scroll-area/scroll-area.component.ts","../../../library/component/scroll-area/edsis-component-scroll-area.ts"],"sourcesContent":["import { Component, computed, input, numberAttribute } from '@angular/core';\nimport { cn } from '@edsis/component/class';\n\n/**\n * Lightweight scroll area using native scrollbars styled via CSS.\n * Fully accessible — real scrolling, keyboard, wheel, momentum.\n */\n@Component({\n  selector: 'ScrollArea',\n  host: {\n    '[class]': 'classes()',\n  },\n  template: `\n    <div\n      [class]=\"viewportClasses()\"\n      [attr.aria-label]=\"viewportAriaLabel()\"\n      [attr.role]=\"viewportRole()\"\n      [attr.tabindex]=\"viewportTabIndex()\"\n    >\n      <ng-content />\n    </div>\n  `,\n  styles: [\n    `\n      :host {\n        display: block;\n        overflow: hidden;\n        position: relative;\n      }\n      .scroll-area-viewport {\n        overflow: auto;\n        scrollbar-width: thin;\n        scrollbar-color: var(--tw-scrollbar-thumb, hsl(var(--scrollbar-thumb)))\n          var(--tw-scrollbar-track, hsl(var(--scrollbar-track)));\n      }\n      .scroll-area-viewport::-webkit-scrollbar {\n        width: var(--scrollbar-size, 0.5rem);\n        height: var(--scrollbar-size, 0.5rem);\n      }\n      .scroll-area-viewport::-webkit-scrollbar-track {\n        background: var(--tw-scrollbar-track, hsl(var(--scrollbar-track)));\n      }\n      .scroll-area-viewport::-webkit-scrollbar-thumb {\n        background: var(--tw-scrollbar-thumb, hsl(var(--scrollbar-thumb)));\n        border: var(--border-width) solid transparent;\n        background-clip: padding-box;\n        border-radius: var(--scrollbar-radius, 9999px);\n      }\n      .scroll-area-viewport::-webkit-scrollbar-thumb:hover {\n        background: var(\n          --scrollbar-thumb-hover,\n          var(--tw-scrollbar-thumb, hsl(var(--scrollbar-thumb-hover)))\n        );\n        background-clip: padding-box;\n      }\n      @media (forced-colors: active) {\n        .scroll-area-viewport {\n          scrollbar-width: auto;\n          scrollbar-color: auto;\n        }\n        .scroll-area-viewport::-webkit-scrollbar-thumb {\n          background: CanvasText;\n          border-color: transparent;\n        }\n      }\n    `,\n  ],\n})\nexport class ScrollAreaComponent {\n  readonly class = input<string>('');\n  readonly viewportClass = input<string>('');\n  readonly viewportAriaLabel = input<string | null>(null);\n  readonly viewportTabIndex = input(0, { transform: numberAttribute });\n  protected readonly classes = computed(() => cn('relative overflow-hidden', this.class()));\n  protected readonly viewportRole = computed(() => (this.viewportAriaLabel() ? 'region' : null));\n  protected readonly viewportClasses = computed(() =>\n    cn(\n      'scroll-area-viewport h-full w-full rounded-[inherit]',\n      'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring',\n      this.viewportClass(),\n    ),\n  );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;AAGG;MA8DU,mBAAmB,CAAA;IACrB,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;IACzB,aAAa,GAAG,KAAK,CAAS,EAAE;sFAAC;IACjC,iBAAiB,GAAG,KAAK,CAAgB,IAAI;0FAAC;IAC9C,gBAAgB,GAAG,KAAK,CAAC,CAAC,wFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AACjD,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,0BAA0B,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gFAAC;AACtE,IAAA,YAAY,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC;qFAAC;AAC3E,IAAA,eAAe,GAAG,QAAQ,CAAC,MAC5C,EAAE,CACA,sDAAsD,EACtD,kGAAkG,EAClG,IAAI,CAAC,aAAa,EAAE,CACrB;wFACF;uGAbU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxDpB;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+iCAAA,CAAA,EAAA,CAAA;;2FA+CU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA7D/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,IAAA,EAChB;AACJ,wBAAA,SAAS,EAAE,WAAW;qBACvB,EAAA,QAAA,EACS;;;;;;;;;AAST,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,+iCAAA,CAAA,EAAA;;;ACrBH;;AAEG;;;;"}