{"version":3,"file":"ngwr-card.mjs","sources":["../../../projects/lib/card/card.ts","../../../projects/lib/card/card.html","../../../projects/lib/card/ngwr-card.ts"],"sourcesContent":["/**\n * @license\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/thekhegay/ngwr/blob/main/LICENSE\n */\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, ViewEncapsulation, computed, input } from '@angular/core';\n\n/**\n * Surface container with optional header, body, and footer slots.\n *\n * Compose with `<wr-card-header>`, the projected body content, and\n * `<wr-card-footer>`. Each slot is a tiny component that just projects\n * its content under the matching BEM class — consumers keep full control\n * of the markup inside.\n *\n * @example Basic\n * ```html\n * <wr-card>\n *   <wr-card-header>\n *     <h3>Settings</h3>\n *   </wr-card-header>\n *   <p>Body content.</p>\n *   <wr-card-footer>\n *     <button wr-btn>Save</button>\n *   </wr-card-footer>\n * </wr-card>\n * ```\n *\n * @see https://ngwr.dev/components/card\n */\n@Component({\n  selector: 'wr-card',\n  templateUrl: './card.html',\n  styleUrl: './card.scss',\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    '[class]': 'classes()',\n    '[attr.aria-busy]': 'loading() ? true : null',\n  },\n})\nexport class WrCard {\n  /** Render a 1px border around the surface. @default true */\n  readonly bordered = input(true, { transform: coerceBooleanProperty });\n\n  /** Lift / shadow the card on hover. @default false */\n  readonly hoverable = input(false, { transform: coerceBooleanProperty });\n\n  /** Overlay with a centred spinner — for in-place data loads. @default false */\n  readonly loading = input(false, { transform: coerceBooleanProperty });\n\n  /** Compact paddings — half the default vertical / horizontal spacing. @default false */\n  readonly compact = input(false, { transform: coerceBooleanProperty });\n\n  protected readonly classes = computed(() => {\n    const parts = ['wr-card'];\n    if (this.bordered()) parts.push('wr-card--bordered');\n    if (this.hoverable()) parts.push('wr-card--hoverable');\n    if (this.loading()) parts.push('wr-card--loading');\n    if (this.compact()) parts.push('wr-card--compact');\n    return parts.join(' ');\n  });\n}\n\n/** Header slot — projects content under `.wr-card__header`. */\n@Component({\n  selector: 'wr-card-header',\n  template: `<ng-content />`,\n  encapsulation: ViewEncapsulation.None,\n  host: { class: 'wr-card__header' },\n})\nexport class WrCardHeader {}\n\n/** Footer slot — projects content under `.wr-card__footer`. */\n@Component({\n  selector: 'wr-card-footer',\n  template: `<ng-content />`,\n  encapsulation: ViewEncapsulation.None,\n  host: { class: 'wr-card__footer' },\n})\nexport class WrCardFooter {}\n","<ng-content select=\"wr-card-header\" />\n<div class=\"wr-card__body\"><ng-content /></div>\n<ng-content select=\"wr-card-footer\" />\n@if (loading()) {\n  <div class=\"wr-card__loading\" aria-hidden=\"true\">\n    <span class=\"wr-card__spinner\"></span>\n  </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}