{"version":3,"file":"BqEmptyState-BRnBN_h6.cjs","names":[],"sources":["../src/components/empty-state/BqEmptyState.ts"],"sourcesContent":["/**\r\n * Empty state component - placeholder for empty content areas.\r\n * @element bq-empty-state\r\n * @prop {string} title       - Main heading\r\n * @prop {string} description - Descriptive text\r\n * @prop {string} icon        - Icon character/emoji\r\n * @slot - Additional content (e.g. action button)\r\n */\r\nimport { component, html } from '@bquery/bquery/component';\r\nimport type { ComponentDefinition } from '@bquery/bquery/component';\r\nimport { escapeHtml } from '@bquery/bquery/security';\r\nimport { t } from '../../i18n/index.js';\r\nimport { getBaseStyles } from '../../utils/styles.js';\r\n\r\ntype BqEmptyStateProps = { title: string; description: string; icon: string };\r\n\r\nconst definition: ComponentDefinition<BqEmptyStateProps> = {\r\n  props: {\r\n    title:       { type: String, default: '' },\r\n    description: { type: String, default: '' },\r\n    icon:        { type: String, default: '' },\r\n  },\r\n  styles: `\r\n    ${getBaseStyles()}\r\n    *, *::before, *::after { box-sizing: border-box; }\r\n    :host { display: block; }\r\n    .empty {\r\n      display: flex; flex-direction: column; align-items: center; justify-content: center;\r\n      text-align: center; padding: var(--bq-space-12,3rem) var(--bq-space-6,1.5rem);\r\n      font-family: var(--bq-font-family-sans);\r\n    }\r\n    .icon { font-size: 3rem; line-height: 1; margin-bottom: var(--bq-space-4,1rem); color: var(--bq-text-subtle,#94a3b8); }\r\n    .title { font-size: var(--bq-font-size-xl,1.25rem); font-weight: var(--bq-font-weight-semibold,600); color: var(--bq-text-base,#0f172a); margin: 0 0 0.5rem; }\r\n    .description { font-size: var(--bq-font-size-md,1rem); color: var(--bq-text-muted,#475569); margin: 0 0 var(--bq-space-6,1.5rem); max-width: 28rem; }\r\n    .actions { display: flex; gap: var(--bq-space-3,0.75rem); flex-wrap: wrap; justify-content: center; }\r\n  `,\r\n  render({ props }) {\r\n    const title = props.title.trim() || t('emptyState.title');\r\n    const description = props.description.trim() || t('emptyState.description');\r\n    return html`\r\n      <div part=\"empty-state\" class=\"empty\" role=\"status\" aria-live=\"polite\">\r\n        ${props.icon ? `<span class=\"icon\" part=\"icon\" aria-hidden=\"true\">${escapeHtml(props.icon)}</span>` : ''}\r\n        ${title ? `<h3 class=\"title\" part=\"title\">${escapeHtml(title)}</h3>` : ''}\r\n        ${description ? `<p class=\"description\" part=\"description\">${escapeHtml(description)}</p>` : ''}\r\n        <div class=\"actions\" part=\"actions\"><slot></slot></div>\r\n      </div>\r\n    `;\r\n  },\r\n};\r\n\r\ncomponent<BqEmptyStateProps>('bq-empty-state', definition);\r\n"],"mappings":";;;;;;;;;;;;;;AAkDA,2BAAA,EAA6B,kBAAkB;CAjC7C,OAAO;EACL,OAAa;GAAE,MAAM;GAAQ,SAAS;GAAI;EAC1C,aAAa;GAAE,MAAM;GAAQ,SAAS;GAAI;EAC1C,MAAa;GAAE,MAAM;GAAQ,SAAS;GAAI;EAC3C;CACD,QAAQ;MACJ,eAAA,eAAe,CAAC;;;;;;;;;;;;;CAapB,OAAO,EAAE,SAAS;EAChB,MAAM,QAAQ,MAAM,MAAM,MAAM,IAAI,aAAA,EAAE,mBAAmB;EACzD,MAAM,cAAc,MAAM,YAAY,MAAM,IAAI,aAAA,EAAE,yBAAyB;AAC3E,SAAO,2BAAA,CAAI;;UAEL,MAAM,OAAO,qDAAqD,2BAAA,GAAW,MAAM,KAAK,CAAC,WAAW,GAAG;UACvG,QAAQ,kCAAkC,2BAAA,GAAW,MAAM,CAAC,SAAS,GAAG;UACxE,cAAc,6CAA6C,2BAAA,GAAW,YAAY,CAAC,QAAQ,GAAG;;;;;CAOzD,CAAW"}