@kumori/aurora-wui-components 0.0.33 → 0.0.35

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.
@@ -5,6 +5,7 @@ export declare class AxebowCardResourceRow extends LitElement {
5
5
  stat: TableStatsType;
6
6
  attentionThreshold: number;
7
7
  isLast: boolean;
8
+ allEmpty: boolean;
8
9
  render(): import('lit-html').TemplateResult<1>;
9
10
  }
10
11
  //# sourceMappingURL=axebow-card-resource-row.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"axebow-card-resource-row.d.ts","sourceRoot":"","sources":["../../../../src/components/cards/parts/axebow-card-resource-row.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwB,MAAM,KAAK,CAAC;AAEvD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBACa,qBAAsB,SAAQ,UAAU;IACnD,MAAM,CAAC,MAAM,4BAGX;IAE0B,IAAI,EAAG,cAAc,CAAC;IACtB,kBAAkB,SAAM;IACvB,MAAM,UAAS;IAE5C,MAAM;CAgDP"}
1
+ {"version":3,"file":"axebow-card-resource-row.d.ts","sourceRoot":"","sources":["../../../../src/components/cards/parts/axebow-card-resource-row.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwB,MAAM,KAAK,CAAC;AAEvD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,qBACa,qBAAsB,SAAQ,UAAU;IACnD,MAAM,CAAC,MAAM,4BAGX;IAE0B,IAAI,EAAG,cAAc,CAAC;IACtB,kBAAkB,SAAM;IACvB,MAAM,UAAS;IACf,QAAQ,UAAS;IAE9C,MAAM;CAkDP"}
@@ -1 +1 @@
1
- {"version":3,"file":"axebow-card-resource-table.d.ts","sourceRoot":"","sources":["../../../../src/components/cards/parts/axebow-card-resource-table.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwB,MAAM,KAAK,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,+BAA+B,CAAC;AAEvC,qBACa,uBAAwB,SAAQ,UAAU;IACrD,MAAM,CAAC,MAAM,4BAGX;IAEyB,IAAI,EAAE,cAAc,EAAE,CAAM;IAC3B,kBAAkB,SAAM;IAEpD,MAAM;CAkBP"}
1
+ {"version":3,"file":"axebow-card-resource-table.d.ts","sourceRoot":"","sources":["../../../../src/components/cards/parts/axebow-card-resource-table.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAwB,MAAM,KAAK,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,+BAA+B,CAAC;AAEvC,qBACa,uBAAwB,SAAQ,UAAU;IACrD,MAAM,CAAC,MAAM,4BAGX;IAEyB,IAAI,EAAE,cAAc,EAAE,CAAM;IAC3B,kBAAkB,SAAM;IAEpD,MAAM;CAoBP"}
package/dist/index.js CHANGED
@@ -876,6 +876,7 @@ var AxebowCardResourceRow = class AxebowCardResourceRow extends LitElement {
876
876
  super(..._args);
877
877
  this.attentionThreshold = 90;
878
878
  this.isLast = false;
879
+ this.allEmpty = false;
879
880
  }
880
881
  static {
881
882
  this.styles = [unsafeCSS(tailwind_default), css`:host { display: contents; }`];
@@ -916,7 +917,7 @@ var AxebowCardResourceRow = class AxebowCardResourceRow extends LitElement {
916
917
 
917
918
  <div class="flex items-center justify-end w-full h-5.75 box-border">
918
919
  <p class="${textClass} m-0">
919
- ${stat.maxValue ?? "-.-"}<span class="font-normal">${stat.tagValue ?? ""}</span>
920
+ ${this.allEmpty ? "-.-" : html`${stat.maxValue ?? "-.-"}<span class="font-normal">${stat.title === "vCPU" ? "" : stat.tagValue ?? ""}</span>`}
920
921
  </p>
921
922
  </div>
922
923
  ${divider}
@@ -926,6 +927,7 @@ var AxebowCardResourceRow = class AxebowCardResourceRow extends LitElement {
926
927
  __decorate([property({ type: Object })], AxebowCardResourceRow.prototype, "stat", void 0);
927
928
  __decorate([property({ type: Number })], AxebowCardResourceRow.prototype, "attentionThreshold", void 0);
928
929
  __decorate([property({ type: Boolean })], AxebowCardResourceRow.prototype, "isLast", void 0);
930
+ __decorate([property({ type: Boolean })], AxebowCardResourceRow.prototype, "allEmpty", void 0);
929
931
  AxebowCardResourceRow = __decorate([customElement("axebow-card-resource-row")], AxebowCardResourceRow);
930
932
  //#endregion
931
933
  //#region src/components/cards/parts/axebow-card-resource-table.ts
@@ -941,6 +943,7 @@ var AxebowCardResourceTable = class AxebowCardResourceTable extends LitElement {
941
943
  render() {
942
944
  const visibleRows = this.rows.filter((r) => !r.hidden);
943
945
  const lastVisible = visibleRows[visibleRows.length - 1];
946
+ const allEmpty = visibleRows.every((r) => Number(r.maxValue ?? 0) === 0);
944
947
  return html`
945
948
  <div class="grid grid-cols-[auto_auto_1fr_auto] gap-x-2 w-87 px-2 box-border">
946
949
  ${this.rows.map((stat) => html`
@@ -948,6 +951,7 @@ var AxebowCardResourceTable = class AxebowCardResourceTable extends LitElement {
948
951
  .stat=${stat}
949
952
  .attentionThreshold=${this.attentionThreshold}
950
953
  .isLast=${stat === lastVisible}
954
+ .allEmpty=${allEmpty}
951
955
  ></axebow-card-resource-row>
952
956
  `)}
953
957
  </div>
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/styles/axebow-theme.ts","../src/components/axebow-icon/axebow-icon.ts","../src/components/axebow-more-actions/axebow-more-actions.ts","../src/components/cards/parts/axebow-card-cloud-logo.ts","../src/components/cards/parts/axebow-card-version-selector.ts","../src/components/cards/parts/axebow-role-tooltip.ts","../src/components/cards/parts/axebow-card-header.ts","../src/components/cards/parts/axebow-card-stat-item.ts","../src/components/cards/parts/axebow-card-stats-row.ts","../src/components/cards/parts/axebow-card-filter-item.ts","../src/components/cards/parts/axebow-card-filter.ts","../src/components/cards/parts/axebow-card-table-header.ts","../src/components/cards/parts/axebow-card-resource-row.ts","../src/components/cards/parts/axebow-card-resource-table.ts","../src/components/cards/parts/axebow-card-special-link.ts","../src/components/cards/parts/axebow-card-attention-banner.ts","../src/components/cards/parts/axebow-card-action-banner.ts","../src/components/cards/parts/axebow-card-status.ts","../src/components/cards/parts/axebow-card-footer.ts","../src/components/cards/axebow-base-card.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const axebowTheme = css`\n :host, .theme {\n --axebow-primary: var(--color-primary, #34495e);\n --axebow-primary-light: var(--color-primary-light, #b4cded);\n --axebow-tertiary: var(--color-tertiary, #006bff);\n --axebow-success: var(--color-success, #0ecd9a);\n --axebow-secondary: var(--color-secondary, #78787a);\n --axebow-base: var(--color-base, #f0f1f5);\n --axebow-error: var(--color-error, #e93a3a);\n --axebow-white: var(--color-white, #ffffff);\n --axebow-black: var(--color-black, #000000);\n --axebow-warning: var(--color-warning, #f9cf6c);\n --axebow-table-border: var(--color-table-border, #ddd);\n --axebow-gray: var(--color-gray, #8a94ae);\n --axebow-light-gray: var(--color-light-gray, #d9d9d9);\n\n --axebow-clickable-blue: var(--color-clickable-blue, #006bff);\n --axebow-sky-gray: var(--color-sky-gray, #8a94ee);\n --axebow-rich-black: var(--color-rich-black, #0d1821);\n --axebow-anti-flash-white: var(--color-anti-flash-white, #f0f1f5);\n --axebow-strong-gray: var(--color-strong-gray, #78787a);\n\n --axebow-bg-primary: var(--color-bg-primary, #f0f1f5);\n\n --axebow-text-gray: var(--color-text-gray, #78787a);\n\n --axebow-premium-label: var(--color-premium-label, #b9935a33);\n --axebow-premium-text: var(--color-premium-text, #b9935a);\n --axebow-deleting-link: var(--color-deleting-link, #a0a0a0);\n --axebow-border-gray: var(--color-border-gray, #9ca3af);\n font-family: var(--font-sans, \"Open Sans\", sans-serif);\n font-size: var(--text-base, 0.75rem);\n line-height: var(--text-base--line-height, 1rem);\n }\n\n /** Axebow switch */\n sl-switch::part(control) {\n background-color: var(--axebow-light-gray);\n }\n sl-switch[checked]::part(control) {\n background-color: var(--axebow-tertiary);\n }\n sl-switch::part(thumb) {\n background-color: white;\n }\n\n /** Axebow checkbox */\n sl-checkbox[checked]::part(control) {\n background-color: var(--axebow-tertiary);\n border-color: var(--axebow-tertiary);\n }\n\n /** Axebow select and input global focus */\n sl-input:focus-within::part(base),\n sl-select:focus-within::part(combobox) {\n border-color: var(--axebow-black) !important;\n box-shadow: 0 0 0 1px var(--axebow-black) !important;\n }\n sl-select sl-option:hover::part(base) {\n background-color: #e9ecef;\n }\n sl-select {\n --sl-color-primary-50: var(--axebow-tertiary);\n --sl-color-primary-600: var(--axebow-tertiary);\n }\n sl-select sl-option[checked]::part(base),\n sl-select sl-option[current]::part(base),\n sl-select sl-option[aria-selected='true']::part(base) {\n background-color: var(--axebow-tertiary) !important;\n color: white !important;\n }\n\n /** Axebow tab group */\n sl-tab-group {\n --indicator-color: var(--axebow-tertiary);\n }\n sl-tab {\n --sl-font-size-small: var(--text-base); /* 12px */\n }\n sl-tab::part(base) {\n font-size: var(--text-base); /* 12px */\n }\n sl-tab[active]::part(base) {\n color: var(--axebow-tertiary);\n }\n sl-tab:hover::part(base) {\n color: var(--axebow-tertiary);\n }\n`;\n\nexport const STATUS_COLORS = {\n HEALTHY: 'var(--axebow-success)',\n ERROR: 'var(--axebow-error)',\n WARNING: 'var(--axebow-warning)',\n DEFAULT: 'var(--axebow-gray)',\n} as const;\n","import tailwindCss from '../../styles/tailwind.css?inline';\nimport { html, unsafeCSS, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('axebow-icon')\nexport class AxebowIcon extends LitElement {\n @property({ type: String }) iconName = 'home';\n @property({ type: String }) iconColor = 'var(--axebow-primary)';\n @property({ type: Number }) rotate = 0;\n @property({ type: Boolean }) filled = false;\n @property({ type: String }) size: 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' = 'medium';\n @property({ type: Number }) marginBottom = 0;\n\n static styles = unsafeCSS(tailwindCss);\n\n render() {\n const filled = \"[font-variation-settings:'FILL'_1,'wght'_400,'GRAD'_0,'opsz'_24]\";\n const outlined = \"[font-variation-settings:'FILL'_0,'wght'_400,'GRAD'_0,'opsz'_24]\";\n return html`\n <span\n class=\"font-[Material_Symbols_Outlined] inline-block align-middle whitespace-nowrap ${this.filled\n ? filled\n : outlined}\"\n style=\"color: ${this.iconColor}; transform: rotate(${this.rotate}deg); font-size: ${this.size === 'xx-small'\n ? 'var(--text-sm)'\n : this.size === 'x-small'\n ? 'var(--text-base)'\n : this.size === 'small'\n ? 'var(--text-lg)'\n : this.size === 'medium'\n ? 'var(--text-2xl)'\n : this.size === 'large'\n ? 'var(--text-4xl)'\n : this.size === 'x-large'\n ? 'var(--text-6xl)'\n : 'var(--text-2xl)'};\n margin-bottom: ${this.size === 'xx-small'\n ? '0'\n : this.size === 'x-small'\n ? '0'\n : this.size === 'small'\n ? '0'\n : this.size === 'medium'\n ? '0'\n : this.size === 'large'\n ? '0.375rem'\n : this.size === 'x-large'\n ? '0.5rem'\n : `${this.marginBottom}px`};\"\n >\n ${this.iconName}\n </span>\n `;\n }\n}\n","import tailwindCss from '../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ActionMenuItem } from './../cards/card.models.js';\nimport '../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-more-actions')\nexport class AxebowMoreActions extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: inline-block; }`,\n ];\n\n @property({ type: Boolean }) open = false;\n @property({ type: String }) placement: 'top' | 'bottom' = 'bottom';\n @property({ type: Boolean }) disabled = false;\n @property({ type: Array }) options: ActionMenuItem[] = [];\n @property({ type: String }) title = '';\n @property({ type: String }) iconName = '';\n @property({ type: Boolean }) openToRight = false;\n @property({ type: String }) closeLabel = 'Close';\n @property({ type: String }) moreActionsLabel = 'More';\n\n @state() private _fixedPos = { top: 0, right: 0 };\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n window.addEventListener('scroll', this._handleScroll, true);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n window.removeEventListener('scroll', this._handleScroll, true);\n }\n\n private _handleOutsideClick = (e: MouseEvent) => {\n if (this.open && !this.contains(e.target as Node)) {\n this.open = false;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: false } }));\n }\n };\n\n private _handleScroll = () => {\n if (this.open && this.openToRight) {\n this.open = false;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: false } }));\n }\n };\n\n private _toggle(e: Event) {\n if (this.disabled) return;\n e.stopPropagation();\n if (!this.open && this.openToRight) {\n const btn = this.shadowRoot?.querySelector<HTMLElement>('.trigger');\n if (btn) {\n const rect = btn.getBoundingClientRect();\n this._fixedPos = { top: rect.bottom + 8, right: window.innerWidth - rect.right };\n }\n }\n this.open = !this.open;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: this.open } }));\n }\n\n private _handleSlotClick() {\n this.open = false;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: false } }));\n }\n\n render() {\n const placementClass = this.placement === 'top' ? 'bottom-full mb-2' : 'top-full mt-2';\n const dropdownStyle = this.openToRight\n ? `position:fixed;top:${this._fixedPos.top}px;right:${this._fixedPos.right}px;z-index:1000;`\n : '';\n\n return html`\n <div class=\"relative w-full h-full flex justify-end\">\n <button\n class=\"trigger relative font-semibold text-xs text-(--axebow-tertiary) cursor-pointer py-1 px-2 h-full bg-transparent border-none transition-all duration-200 flex items-center hover:text-[var(--axebow-gray)] hover:bg-[var(--axebow-anti-flash-white)] hover:rounded-lg disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none\"\n ?disabled=${this.disabled}\n @click=${this._toggle}\n >\n ${this.iconName\n ? html`<axebow-icon iconName=${this.iconName} size=\"small\" iconColor=\"var(--axebow-tertiary)\"></axebow-icon>`\n : this.open ? this.closeLabel : (this.title || this.moreActionsLabel)}\n </button>\n ${this.open\n ? html`\n <div\n class=\"absolute right-0 z-10 bg-white border border-(--axebow-gray) rounded-lg shadow-[2px_2px_25px_0px_rgba(0,0,0,0.1)] p-2 min-w-44 flex flex-col ${placementClass}\"\n style=${dropdownStyle}\n @click=${this._handleSlotClick}\n >\n ${this.options?.length\n ? this.options.map(\n (opt) => html`\n <button\n class=\"flex items-center gap-2 text-left py-1 px-2 cursor-pointer rounded-sm border border-transparent bg-transparent w-full hover:bg-gray-100\"\n @click=${(e: Event) => {\n e.stopPropagation();\n opt.onTap(e);\n this.open = false;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: false } }));\n }}\n @mouseenter=${(e: Event) => ((e.currentTarget as HTMLElement).style.borderColor = `var(--axebow-${opt.type})`)}\n @mouseleave=${(e: Event) => ((e.currentTarget as HTMLElement).style.borderColor = 'transparent')}\n >\n <axebow-icon iconName=${opt.icon} iconColor=\"var(--axebow-${opt.type})\" size=\"small\"></axebow-icon>\n <p class=\"m-0 whitespace-nowrap\" style=\"color:var(--axebow-${opt.type});\">${opt.label}</p>\n </button>\n `\n )\n : html`<slot></slot>`}\n </div>\n `\n : ''}\n </div>\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('axebow-card-cloud-logo')\nexport class AxebowCardCloudLogo extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: contents; }`,\n ];\n\n @property({ type: String }) src: string | null = null;\n @property({ type: String }) size: 'small' | 'large' = 'large';\n\n render() {\n if (!this.src) return html``;\n\n return this.size === 'small'\n ? html`<div class=\"flex items-center justify-center shrink-0\" style=\"height:1.125rem;width:1.125rem;\"><img src=${this.src} class=\"max-h-full max-w-full object-contain\" /></div>`\n : html`<div class=\"flex items-center justify-center shrink-0\" style=\"height:3.125rem;width:3.125rem;\"><img src=${this.src} class=\"max-h-full max-w-full object-contain\" /></div>`;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { RevisionItem } from '../card.models.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-version-selector')\nexport class AxebowCardVersionSelector extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: inline-block; width: auto; max-width: 120px; margin-block: 0.25rem; }\n sl-select {\n --sl-input-background-color: transparent;\n --sl-input-border-color: transparent;\n --sl-input-background-color-focus: transparent;\n --sl-input-border-color-focus: transparent;\n --sl-focus-ring-width: 0px;\n --sl-color-primary-500: var(--axebow-tertiary);\n --sl-color-primary-600: var(--axebow-tertiary);\n --sl-input-spacing-small: 0.1875rem;\n --sl-input-height-small: auto;\n --sl-input-font-size-small: var(--text-base, 0.75rem);\n --sl-font-size-medium: var(--text-base, 0.75rem);\n --sl-spacing-small: 0;\n display: inline-flex !important;\n border: none;\n background: transparent;\n padding: 0;\n margin: 0;\n min-width: 0;\n width: fit-content !important;\n max-width: 120px !important;\n }\n sl-select::part(form-control) {\n display: inline-block;\n width: fit-content;\n border: none;\n background-color: transparent;\n padding: 0;\n min-width: 0;\n }\n sl-select::part(form-control-input) {\n display: inline-block;\n width: fit-content;\n }\n sl-select::part(display-input) { padding: 0; color: var(--axebow-tertiary); font-size: 0.75rem !important; transition: color 0.15s ease; }\n sl-select::part(combobox) {\n padding-inline-start: 0.25rem !important;\n padding-block: 0.125rem !important;\n gap: 0.25rem !important;\n justify-content: flex-start;\n cursor: pointer;\n border: none;\n outline: 1px solid transparent;\n outline-offset: -1px;\n border-radius: 0.375rem;\n background-color: transparent;\n transition: background-color 0.15s ease, outline-color 0.15s ease;\n }\n sl-select[open]::part(combobox) {\n outline-color: var(--axebow-tertiary);\n border-radius: 0.375rem 0.375rem 0 0;\n background-color: white;\n }\n sl-select::part(expand-icon) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 1.125rem;\n height: 1.125rem;\n border: 1px solid var(--axebow-tertiary);\n border-radius: 0.25rem;\n color: var(--axebow-tertiary);\n background-color: transparent;\n transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;\n }\n sl-select::part(listbox) {\n border-color: var(--axebow-tertiary);\n border-top: none;\n border-radius: 0 0 0.375rem 0.375rem;\n box-shadow: none;\n margin-top: -1px;\n }\n sl-option::part(base) { font-size: 0.75rem; padding-inline-start: 0.25rem !important; }\n sl-option::part(checked-icon) { display: none; }\n\n sl-select:hover::part(display-input) { color: var(--axebow-gray); }\n sl-select:hover::part(expand-icon) { color: var(--axebow-gray); border-color: var(--axebow-gray); }\n\n sl-select[open]::part(expand-icon) {\n color: white;\n border-color: var(--axebow-tertiary);\n background-color: var(--axebow-tertiary);\n }\n `,\n ];\n\n @property({ type: Array }) revisions: RevisionItem[] = [];\n @property({ type: String }) displayedRevision = '';\n\n private _formatRevision(id: string): string {\n if (!id) return '';\n const parts = id.split('/');\n return parts[parts.length - 1] ?? id;\n }\n\n render() {\n return html`\n <sl-select size=\"small\" value=${this.displayedRevision} @sl-change=${this._onChange}>\n ${this.revisions.map(\n (rev) => html`\n <sl-option value=${rev.id}>\n ${this._formatRevision(rev.id)}\n ${rev.id !== this.displayedRevision\n ? html`<axebow-icon slot=\"suffix\" iconName=\"update\" iconColor=\"var(--axebow-tertiary)\" size=\"small\"></axebow-icon>`\n : ''}\n </sl-option>\n `\n )}\n </sl-select>\n `;\n }\n\n private _onChange(e: CustomEvent) {\n const revision = (e.target as HTMLSelectElement).value;\n this.dispatchEvent(new CustomEvent('revision-change', { detail: { revision }, bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '@shoelace-style/shoelace/dist/components/tooltip/tooltip.js';\n\n@customElement('axebow-role-tooltip')\nexport class AxebowRoleTooltip extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: contents; }\n sl-tooltip::part(body) {\n background-color: var(--axebow-white);\n color: var(--axebow-primary);\n padding: 1rem;\n border: 3px solid var(--axebow-table-border);\n width: 280px;\n }\n ul {\n margin: 0.5rem 0 0;\n padding-left: 1.2rem;\n list-style: disc;\n }\n li {\n font-size: 0.8rem;\n line-height: 1.5;\n }\n `,\n ];\n\n @property({ type: String }) heading = '';\n @property({ type: Array }) items: string[] = [];\n @property({ type: String }) color = 'var(--axebow-primary)';\n\n render() {\n if (!this.heading) return html``;\n\n return html`\n <sl-tooltip placement=\"right\" hoist>\n <div slot=\"content\">\n <strong>${this.heading}</strong>\n <ul>\n ${this.items.map((item) => html`<li>${item}</li>`)}\n </ul>\n </div>\n <axebow-icon iconName=\"info\" size=\"small\" class=\"cursor-pointer\" iconColor=${this.color}></axebow-icon>\n </sl-tooltip>\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { CardBadge, CardType, RevisionItem, RoleTooltipContent } from '../card.models.js';\nimport '@shoelace-style/shoelace/dist/components/tooltip/tooltip.js';\nimport '@shoelace-style/shoelace/dist/components/badge/badge.js';\nimport '../../axebow-icon/axebow-icon.js';\nimport './axebow-card-cloud-logo.js';\nimport './axebow-card-version-selector.js';\nimport './axebow-role-tooltip.js';\n\n@customElement('axebow-card-header')\nexport class AxebowCardHeader extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: block; }\n sl-badge::part(base) { background-color: var(--axebow-secondary); color: white; }\n `,\n ];\n\n @property({ type: String }) logoSrc: string | null = null;\n @property({ type: String }) tenantOrAccount = '';\n @property({ type: String }) name = '';\n @property({ type: String }) badge: CardBadge = 'none';\n @property({ type: String }) subtitle = '';\n @property({ type: String }) cardType: CardType = 'account';\n @property({ type: Array }) revisions: RevisionItem[] = [];\n @property({ type: String }) displayedRevision = '';\n @property({ type: String }) freeIaasLabel = 'Free IaaS';\n @property({ type: String }) freeIaasTitle = 'Free Infrastructure';\n @property({ type: String }) freeIaasDesc = 'This environment uses free infrastructure.';\n @property({ type: String }) haLabel = 'Highly Available';\n @property({ type: String }) haTitle = 'High Availability enabled';\n @property({ type: String }) role = '';\n @property({ type: Object }) roleTooltips: Record<string, RoleTooltipContent> = {};\n @property({ type: String }) roleTooltipColor = 'var(--axebow-primary)';\n\n private _renderBadge() {\n if (this.badge === 'free-iaas') {\n return html`\n <sl-tooltip>\n <div slot=\"content\" style=\"max-width:300px;\">\n <strong>${this.freeIaasTitle}</strong>\n <p style=\"margin-top:0.5rem;\">${this.freeIaasDesc}</p>\n </div>\n <div class=\"flex items-center gap-2 cursor-pointer\">\n <axebow-icon iconName=\"info\" iconColor=\"var(--axebow-gray)\" size=\"small\"></axebow-icon>\n <span class=\"text-(--axebow-rich-black)\">${this.freeIaasLabel}</span>\n </div>\n </sl-tooltip>\n `;\n }\n if (this.badge === 'ha') {\n return html`\n <sl-tooltip content=${this.haTitle}>\n <sl-badge variant=\"neutral\" pill size=\"small\" class=\"cursor-pointer\">${this.haLabel}</sl-badge>\n </sl-tooltip>\n `;\n }\n return html``;\n }\n\n private _headerHeight(): string {\n switch (this.cardType) {\n case 'tenant':\n return '4.5625rem';\n case 'environment':\n return '3.6875rem';\n case 'account':\n case 'runtime':\n default:\n return '4.125rem';\n }\n }\n\n render() {\n const isTenant = this.cardType === 'tenant';\n const isCompact = this.cardType === 'environment' || isTenant;\n const isRuntime = this.cardType === 'runtime';\n const heightStyle = `height:${this._headerHeight()}`;\n\n if (isCompact) {\n return html`\n <div class=\"w-full bg-(--axebow-anti-flash-white) rounded-lg flex flex-col justify-center px-5 py-3 box-border\" style=${heightStyle}>\n <div class=\"flex flex-col flex-1 min-w-0\">\n ${this.tenantOrAccount || this.logoSrc\n ? html`\n <div class=\"flex gap-2 items-center leading-none mt-1\">\n <axebow-card-cloud-logo .src=${this.logoSrc} size=\"small\"></axebow-card-cloud-logo>\n <span class=\"font-semibold text-(--axebow-gray) leading-none\">${this.tenantOrAccount}</span>\n </div>\n `\n : ''}\n <div class=\"flex justify-between items-center\">\n <span class=\"font-bold text-xl text-(--axebow-primary) leading-snug pt-0.5\">${this.name}</span>\n ${this._renderBadge()}\n </div>\n ${this.subtitle\n ? html`\n <div class=\"text-(--axebow-gray) flex items-center gap-1 mt-1\">\n ${this.subtitle}\n ${isTenant && this.roleTooltips[this.role]\n ? html`\n <axebow-role-tooltip\n .heading=${this.roleTooltips[this.role].title}\n .items=${this.roleTooltips[this.role].items}\n color=${this.roleTooltipColor}\n ></axebow-role-tooltip>\n `\n : html`<slot name=\"subtitle-tooltip\"></slot>`}\n </div>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n return html`\n <div class=\"w-full bg-(--axebow-anti-flash-white) rounded-lg flex items-center gap-3 py-2 px-3 box-border\" style=${heightStyle}>\n <axebow-card-cloud-logo .src=${this.logoSrc} size=\"large\"></axebow-card-cloud-logo>\n <div class=\"flex flex-col flex-1 min-w-0 ${isRuntime ? 'justify-center' : ''}\">\n ${!isRuntime && this.tenantOrAccount\n ? html`<span class=\"font-semibold text-(--axebow-gray) leading-none\">${this.tenantOrAccount}</span>`\n : ''}\n <div class=\"flex justify-between items-center ${isRuntime ? 'mt-1.5' : ''}\">\n <span class=\"font-bold text-xl text-(--axebow-primary) leading-snug ${isRuntime ? 'pl-1' : 'pt-0.5'}\">${this.name}</span>\n ${this._renderBadge()}\n </div>\n ${isRuntime\n ? html`\n <div class=\"revision-wrap flex items-center mt-0\">\n <axebow-card-version-selector\n .revisions=${this.revisions}\n .displayedRevision=${this.displayedRevision}\n @revision-change=${this._onRevisionChange}\n ></axebow-card-version-selector>\n </div>\n `\n : this.subtitle\n ? html`<div class=\"text-xs text-(--axebow-gray) flex items-center gap-1 mt-1\">${this.subtitle}<slot name=\"subtitle-tooltip\"></slot></div>`\n : ''}\n </div>\n </div>\n `;\n }\n\n private _onRevisionChange(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('revision-change', { detail: e.detail, bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('axebow-card-stat-item')\nexport class AxebowCardStatItem extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Number }) value: number = 0;\n @property({ type: String }) title = '';\n @property({ type: String }) label = '';\n @property({ type: Boolean }) active = true;\n\n render() {\n return html`\n <div class=\"flex flex-col items-center justify-start text-center gap-0.5 w-30 h-17.25\">\n <h4 class=\"text-[20px] text-(--axebow-primary) font-bold leading-snug m-0\">${this.value}</h4>\n <p class=\"text-[12px] m-0 leading-snug\">${this.title}</p>\n <div class=\"h-3.5 flex items-center justify-center\">\n ${this.label\n ? html`\n <span\n class=\"text-(--axebow-gray) font-semibold text-[12px] ${this.active ? 'cursor-pointer opacity-100' : 'cursor-not-allowed opacity-50'}\"\n @click=${this._onClick}\n >${this.label}</span>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n private _onClick() {\n if (this.active) {\n this.dispatchEvent(new CustomEvent('label-click', { bubbles: true, composed: true }));\n }\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { CardType, MainStatsType } from '../card.models.js';\nimport './axebow-card-stat-item.js';\n\n@customElement('axebow-card-stats-row')\nexport class AxebowCardStatsRow extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Array }) stats: MainStatsType[] = [];\n @property({ type: String }) cardType: CardType = 'account';\n\n private _hasButtons(): boolean {\n return this.cardType === 'account' || this.cardType === 'environment';\n }\n\n render() {\n const heightClass = this._hasButtons() ? 'h-17.25' : 'h-11.25';\n\n return html`\n <div class=\"grid grid-cols-3 gap-1 w-91 ${heightClass} box-border\">\n ${this.stats.map(\n (stat, index) => html`\n <axebow-card-stat-item\n .value=${stat.value}\n .title=${stat.title}\n .label=${stat.label}\n .active=${stat.active !== false}\n @label-click=${() => this._handleLabelClick(index)}\n ></axebow-card-stat-item>\n `\n )}\n </div>\n `;\n }\n\n private _handleLabelClick(index: number) {\n this.dispatchEvent(\n new CustomEvent('stat-label-click', { detail: { index }, bubbles: true, composed: true })\n );\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-filter-item')\nexport class AxebowCardFilterItem extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: String }) name = '';\n @property({ type: Boolean }) showAttention = false;\n\n render() {\n return html`\n <div\n class=\"w-full py-1 px-2 flex justify-between items-center cursor-pointer hover:bg-(--axebow-light-gray)\"\n @click=${this._onClick}\n >\n <p class=\"m-0\">${this.name}</p>\n ${this.showAttention\n ? html`<axebow-icon iconName=\"error\" size=\"small\" iconColor=\"var(--axebow-error)\"></axebow-icon>`\n : ''}\n </div>\n `;\n }\n\n private _onClick() {\n this.dispatchEvent(\n new CustomEvent('item-select', { detail: { name: this.name }, bubbles: true, composed: true })\n );\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { CardFilterItem } from '../card.models.js';\nimport '../../axebow-icon/axebow-icon.js';\nimport './axebow-card-filter-item.js';\n\n@customElement('axebow-card-filter')\nexport class AxebowCardFilter extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Array }) items: CardFilterItem[] = [];\n @property({ type: String }) selected: string | null = null;\n @property({ type: String }) emptyLabel = '';\n @property({ type: String }) emptyActionLabel = '';\n @property({ type: String }) attentionLabel = 'Attention needed';\n @property({ type: Boolean }) showAttention = false;\n @property({ type: Boolean }) opened = false;\n @property({ type: Boolean }) isPlainRole = false;\n @property({ type: Boolean }) isDisabled = false;\n\n render() {\n const showEmpty = !this.selected && this.items.length === 0;\n\n return html`\n <div class=\"relative\">\n <div class=\"flex justify-between items-center border-b border-(--axebow-light-gray) w-87 h-7 box-border px-2 cursor-pointer\">\n ${showEmpty\n ? html`\n <p\n class=\"m-0 ${this.isPlainRole || this.isDisabled\n ? 'text-(--axebow-gray) cursor-default opacity-50'\n : 'text-(--axebow-tertiary) cursor-pointer'}\"\n @click=${this.isPlainRole || this.isDisabled ? undefined : this._onEmptyAction}\n >\n ${this.emptyActionLabel}\n </p>\n `\n : html`\n <div\n class=\"flex w-full justify-between items-center ${this.isDisabled ? 'opacity-50 cursor-not-allowed' : ''}\"\n @click=${this.isDisabled ? undefined : this._onToggle}\n >\n <span class=\"text-(--axebow-tertiary)\">${this.selected ?? this.emptyLabel}</span>\n <div class=\"flex items-center gap-2\">\n ${this.showAttention\n ? html`<p class=\"text-(--axebow-error) m-0 text-xs\">${this.attentionLabel}</p>`\n : ''}\n <axebow-icon iconName=\"chevron_right\" rotate=\"90\" iconColor=\"var(--axebow-tertiary)\" size=\"small\"></axebow-icon>\n </div>\n </div>\n `}\n </div>\n\n <div class=\"${this.opened ? '' : 'hidden'} absolute top-full left-0 right-0 z-10 flex flex-col bg-white rounded-b-lg border border-(--axebow-light-gray) shadow-[2px_2px_25px_0px_rgba(0,0,0,0.1)] max-h-40 overflow-y-auto\">\n <p class=\"w-full p-2 cursor-pointer m-0 hover:bg-(--axebow-light-gray)\" @click=${() => this._onSelect(null)}>${this.emptyLabel}</p>\n ${this.items.map(\n (item) => html`\n <axebow-card-filter-item\n .name=${item.name}\n .showAttention=${item.showAttention}\n @item-select=${(e: CustomEvent) => this._onSelect(e.detail.name)}\n ></axebow-card-filter-item>\n `\n )}\n </div>\n </div>\n `;\n }\n\n private _onToggle() {\n this.dispatchEvent(new CustomEvent('toggle-open', { bubbles: true, composed: true }));\n }\n\n private _onSelect(name: string | null) {\n this.dispatchEvent(new CustomEvent('filter-select', { detail: { name }, bubbles: true, composed: true }));\n }\n\n private _onEmptyAction() {\n this.dispatchEvent(new CustomEvent('empty-action-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { RuntimeFilterRole } from '../card.models.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-table-header')\nexport class AxebowCardTableHeader extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Boolean }) opened = false;\n @property({ type: String }) filterDisplayText = '';\n @property({ type: String }) allLabel = 'All Roles & Instances';\n @property({ type: String }) attentionLabel = 'Attention needed';\n @property({ type: Boolean }) showAttention = false;\n @property({ type: Array }) filterRoles: RuntimeFilterRole[] = [];\n\n render() {\n return html`\n <div class=\"relative\">\n <div\n class=\"flex justify-between items-center border-b border-(--axebow-light-gray) w-87 h-7 box-border px-2 cursor-pointer\"\n @click=${this._onToggle}\n >\n <span class=\"text-(--axebow-tertiary)\">${this.filterDisplayText || this.allLabel}</span>\n <div class=\"flex items-center gap-2\">\n ${this.showAttention ? html`<p class=\"text-(--axebow-error) m-0 text-xs\">${this.attentionLabel}</p>` : ''}\n <axebow-icon iconName=\"chevron_right\" rotate=\"90\" iconColor=\"var(--axebow-tertiary)\" size=\"small\"></axebow-icon>\n </div>\n </div>\n\n <div class=\"${this.opened ? '' : 'hidden'} absolute top-full left-0 right-0 z-10 flex flex-col bg-white rounded-b-lg border border-(--axebow-light-gray) shadow-[2px_2px_25px_0px_rgba(0,0,0,0.1)] max-h-40 overflow-y-auto\">\n <p class=\"w-full p-2 cursor-pointer m-0 hover:bg-(--axebow-light-gray)\" @click=${() => this._onSelect('', 'all')}>${this.allLabel}</p>\n ${this.filterRoles.map(\n (role) => html`\n <div\n class=\"w-full py-1 px-2 flex justify-between items-center cursor-pointer hover:bg-(--axebow-light-gray)\"\n @click=${() => this._onSelect(role.name, 'role')}\n >\n <div class=\"flex items-center gap-2\">\n ${role.logo ? html`<img src=${role.logo} class=\"w-5 h-5\" />` : ''}\n <p class=\"m-0\">${role.name}</p>\n </div>\n </div>\n ${role.instances.map(\n (inst) => html`\n <div\n class=\"w-full py-1 px-2 pl-6 flex justify-between items-center cursor-pointer hover:bg-(--axebow-light-gray)\"\n @click=${() => this._onSelect(inst.name, 'instance')}\n >\n <div class=\"flex items-center gap-2\">\n <axebow-icon iconName=\"subdirectory_arrow_right\" size=\"small\"></axebow-icon>\n <p class=\"m-0\">${inst.name}</p>\n </div>\n ${inst.needsAttention\n ? html`<axebow-icon iconName=\"warning\" iconColor=\"var(--axebow-error)\" size=\"small\"></axebow-icon>`\n : ''}\n </div>\n `\n )}\n `\n )}\n </div>\n </div>\n `;\n }\n\n private _onToggle() {\n this.dispatchEvent(new CustomEvent('toggle-open', { bubbles: true, composed: true }));\n }\n\n private _onSelect(selected: string, type: 'instance' | 'role' | 'all') {\n this.dispatchEvent(new CustomEvent('filter-change', { detail: { selected, type }, bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../axebow-icon/axebow-icon.js';\nimport { TableStatsType } from '../card.models.js';\n\n@customElement('axebow-card-resource-row')\nexport class AxebowCardResourceRow extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: contents; }`,\n ];\n\n @property({ type: Object }) stat!: TableStatsType;\n @property({ type: Number }) attentionThreshold = 90;\n @property({ type: Boolean }) isLast = false;\n\n render() {\n const stat = this.stat;\n const showDivider = !stat.hidden && !this.isLast;\n const textClass = stat.isSecondary ? 'text-sm font-normal' : 'text-base font-semibold';\n const barHeightClass = stat.isSecondary ? 'h-2.25' : 'h-2.75';\n const divider = showDivider\n ? html`<div class=\"col-span-4 border-t border-dashed border-(--axebow-light-gray)\"></div>`\n : '';\n\n if (stat.hidden) {\n return html`\n <div class=\"flex items-center w-full h-5.75 box-border\"></div>\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\"></div>\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\"></div>\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\"></div>\n ${divider}\n `;\n }\n\n return html`\n <div class=\"flex items-center w-full h-5.75 box-border\">\n <div class=\"flex items-center gap-1\">\n <axebow-icon iconName=${stat.icon} size=\"small\" rotate=${stat.iconRotation ?? 0}></axebow-icon>\n <span class=\"${textClass}\">${stat.title}</span>\n </div>\n </div>\n\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\">\n <p class=\"${textClass} m-0\">${stat.value ?? '-.-'}</p>\n </div>\n\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\">\n <div class=\"${barHeightClass} w-37.5 bg-(--axebow-light-gray) rounded-md relative overflow-hidden\">\n <div\n class=\"absolute h-full ${stat.percentage >= this.attentionThreshold ? 'bg-(--axebow-error)' : 'bg-(--axebow-gray)'}\"\n style=\"width:${stat.percentage}%;\"\n ></div>\n </div>\n </div>\n\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\">\n <p class=\"${textClass} m-0\">\n ${stat.maxValue ?? '-.-'}<span class=\"font-normal\">${stat.tagValue ?? ''}</span>\n </p>\n </div>\n ${divider}\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { TableStatsType } from '../card.models.js';\nimport './axebow-card-resource-row.js';\n\n@customElement('axebow-card-resource-table')\nexport class AxebowCardResourceTable extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Array }) rows: TableStatsType[] = [];\n @property({ type: Number }) attentionThreshold = 90;\n\n render() {\n const visibleRows = this.rows.filter((r) => !r.hidden);\n const lastVisible = visibleRows[visibleRows.length - 1];\n\n return html`\n <div class=\"grid grid-cols-[auto_auto_1fr_auto] gap-x-2 w-87 px-2 box-border\">\n ${this.rows.map(\n (stat) => html`\n <axebow-card-resource-row\n .stat=${stat}\n .attentionThreshold=${this.attentionThreshold}\n .isLast=${stat === lastVisible}\n ></axebow-card-resource-row>\n `\n )}\n </div>\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-special-link')\nexport class AxebowCardSpecialLink extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: inline-flex; }`,\n ];\n\n @property({ type: String }) label = '';\n @property({ type: String }) color = 'var(--axebow-error)';\n @property({ type: String }) icon = 'arrow_forward';\n\n render() {\n return html`\n <span class=\"cursor-pointer\" style=\"color:${this.color};\" @click=${this._onClick}>\n ${this.label}\n <axebow-icon iconName=${this.icon} iconColor=${this.color} size=\"small\"></axebow-icon>\n </span>\n `;\n }\n\n private _onClick() {\n this.dispatchEvent(new CustomEvent('link-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { CardType, TableStatsType } from '../card.models.js';\nimport './axebow-card-special-link.js';\n\n@customElement('axebow-card-attention-banner')\nexport class AxebowCardAttentionBanner extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: block; }\n .error-bg { background-color: color-mix(in srgb, var(--axebow-error) 10%, white); }\n `,\n ];\n\n @property({ type: String }) cardType: CardType = 'account';\n @property({ type: Array }) tableStats: TableStatsType[] = [];\n @property({ type: Number }) threshold = 90;\n @property({ type: Boolean }) isPlainRole = false;\n @property({ type: Boolean }) invalidCredentials = false;\n @property({ type: String }) manageLabel = 'Manage';\n @property({ type: String }) askOwnerLabel = 'Ask your owner';\n @property({ type: String }) invalidCredsLabel = 'Invalid credentials.';\n @property({ type: String }) limitReachedLabel = 'Limit reached.';\n @property({ type: String }) andLabel = 'and';\n\n private _getExceeded(): string[] {\n const primary = this.tableStats.slice(0, 3).map((r) => r.title);\n return this.tableStats\n .filter((s) => primary.includes(s.title) && s.percentage >= this.threshold)\n .map((s) => s.title);\n }\n\n private _formatList(resources: string[]): string {\n if (resources.length === 1) return resources[0];\n if (resources.length === 2) return `${resources[0]} ${this.andLabel} ${resources[1]}`;\n return `${resources.slice(0, -1).join(', ')} ${this.andLabel} ${resources[resources.length - 1]}`;\n }\n\n render() {\n const exceeded = this._getExceeded();\n if (exceeded.length === 0 && !this.invalidCredentials) return html``;\n\n return html`\n <div class=\"error-bg flex flex-wrap items-center justify-center gap-1 w-87 h-6.5 box-border px-1 text-center overflow-hidden\">\n ${this.isPlainRole\n ? html`<span class=\"text-(--axebow-error)\">${this.askOwnerLabel}</span>`\n : html`\n <p class=\"text-(--axebow-error) m-0\">\n ${this.invalidCredentials\n ? this.invalidCredsLabel\n : `${this.limitReachedLabel} ${this._formatList(exceeded)}.`}\n <axebow-card-special-link\n .label=${this.manageLabel}\n color=\"var(--axebow-error)\"\n @link-click=${this._onManage}\n ></axebow-card-special-link>\n </p>\n `}\n </div>\n `;\n }\n\n private _onManage() {\n this.dispatchEvent(new CustomEvent('manage-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-action-banner')\nexport class AxebowCardActionBanner extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: block; }\n .tertiary-bg { background-color: color-mix(in srgb, var(--axebow-tertiary) 10%, white); }\n axebow-button::part(label) { color: var(--axebow-tertiary); font-weight: 600; display: flex; align-items: center; gap: 2px; }\n axebow-button::part(base) { padding: 0; height: auto; min-height: unset; }\n `,\n ];\n\n @property({ type: String }) label = 'View details';\n\n render() {\n return html`\n <div class=\"tertiary-bg flex items-center justify-center gap-1 w-87 h-6.5 box-border px-3 text-sm text-center overflow-hidden\">\n <axebow-button variant=\"text\" size=\"small\" @click=${this._onClick}>\n ${this.label}\n <axebow-icon iconName=\"arrow_forward\" iconColor=\"var(--axebow-tertiary)\" size=\"small\"></axebow-icon>\n </axebow-button>\n </div>\n `;\n }\n\n private _onClick() {\n this.dispatchEvent(new CustomEvent('action-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '@shoelace-style/shoelace/dist/components/tooltip/tooltip.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-status')\nexport class AxebowCardStatus extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: block; flex: 1; min-width: 0; }\n sl-tooltip::part(base) { max-width: none; white-space: normal; word-break: break-word; }\n `,\n ];\n\n @property({ type: String }) statusCode = '';\n @property({ type: String }) statusMessage = '';\n @property({ type: String }) borderColor = '';\n @property({ type: Boolean }) showSpinner = false;\n\n render() {\n if (!this.statusCode) {\n return html`<div class=\"w-full whitespace-nowrap overflow-hidden text-ellipsis\"><slot></slot></div>`;\n }\n\n return html`\n <div class=\"flex items-center gap-1 min-w-0 w-full\">\n ${this.showSpinner ? html`<sl-spinner style=\"--indicator-color:${this.borderColor};\"></sl-spinner>` : ''}\n <p class=\"font-bold m-0 line-clamp-1\" style=\"color:${this.borderColor};\" title=${this.statusCode}>${this.statusCode}</p>\n <sl-tooltip content=${this.statusMessage}>\n <axebow-icon class=\"cursor-pointer shrink-0\" iconColor=${this.borderColor} iconName=\"info\" size=\"small\"></axebow-icon>\n </sl-tooltip>\n </div>\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ActionMenuItem } from '../card.models.js';\nimport './../../axebow-more-actions/axebow-more-actions.js';\nimport './axebow-card-status.js';\n\n@customElement('axebow-card-footer')\nexport class AxebowCardFooter extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Boolean }) isFreeIaaS = false;\n @property({ type: Boolean }) isPlainRole = false;\n @property({ type: String }) statusCode = '';\n @property({ type: String }) statusMessage = '';\n @property({ type: String }) borderColor = '';\n @property({ type: Boolean }) showSpinner = false;\n @property({ type: Boolean }) moreActionsOpen = false;\n @property({ type: Array }) moreActionsOptions: ActionMenuItem[] = [];\n @property({ type: String }) closeLabel = 'Close';\n @property({ type: String }) moreActionsLabel = 'More';\n @property({ type: String }) actionLabel = '';\n\n render() {\n const showDropdown = !this.isFreeIaaS && !this.isPlainRole && this.moreActionsOptions.length > 0;\n const showAction = !showDropdown && !!this.actionLabel;\n\n return html`\n <div class=\"flex justify-between items-center relative h-6 gap-2\">\n <axebow-card-status\n .statusCode=${this.statusCode}\n .statusMessage=${this.statusMessage}\n .borderColor=${this.borderColor}\n .showSpinner=${this.showSpinner}\n >\n <slot></slot>\n </axebow-card-status>\n ${showDropdown\n ? html`\n <axebow-more-actions\n class=\"shrink-0 mr-2\"\n placement=\"top\"\n .open=${this.moreActionsOpen}\n .options=${this.moreActionsOptions}\n .closeLabel=${this.closeLabel}\n .moreActionsLabel=${this.moreActionsLabel}\n @toggled=${this._onToggled}\n ></axebow-more-actions>\n `\n : showAction\n ? html`<axebow-button variant=\"text\" size=\"medium\" @click=${this._onAction}>${this.actionLabel}</axebow-button>`\n : ''}\n </div>\n `;\n }\n\n private _onToggled(e: CustomEvent) {\n this.dispatchEvent(\n new CustomEvent('more-actions-toggled', { detail: { open: e.detail.open }, bubbles: true, composed: true })\n );\n }\n\n private _onAction() {\n this.dispatchEvent(new CustomEvent('footer-action-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport {\n ActionMenuItem,\n CardBadge,\n CardFilterItem,\n CardType,\n MainStatsType,\n RevisionItem,\n RoleTooltipContent,\n RuntimeFilterRole,\n TableStatsType,\n} from './card.models.js';\nimport './../axebow-more-actions/axebow-more-actions.js';\nimport './parts/axebow-card-header.js';\nimport './parts/axebow-card-stats-row.js';\nimport './parts/axebow-card-filter.js';\nimport './parts/axebow-card-table-header.js';\nimport './parts/axebow-card-resource-table.js';\nimport './parts/axebow-card-attention-banner.js';\nimport './parts/axebow-card-action-banner.js';\nimport './parts/axebow-card-footer.js';\n\n@customElement('axebow-base-card')\nexport class AxebowBaseCard extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: inline-block; max-width: 100%; }\n sl-badge::part(base) { background-color: var(--axebow-secondary); color: white; }\n sl-dialog::part(panel) { width: 35vw; min-width: 400px; }\n sl-dialog::part(body) { padding-top: 0; }\n sl-alert::part(base) { border-top: 2px solid var(--axebow-error); }\n sl-range, sl-range:hover {\n --sl-color-primary-600: var(--axebow-tertiary);\n --sl-color-primary-500: var(--axebow-tertiary);\n }\n .deploy-time {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n `,\n ];\n\n @property({ type: String, reflect: true, attribute: 'card-type' }) cardType: CardType = 'account';\n @property({ type: String }) name = '';\n @property({ type: String }) logoSrc: string | null = null;\n @property({ type: String }) tenantOrAccount = '';\n @property({ type: String }) badge: CardBadge = 'none';\n @property({ type: String }) subtitle = '';\n\n @property({ type: Array }) mainStats: MainStatsType[] = [];\n\n @property({ type: Array }) tableStats: TableStatsType[] = [];\n @property({ type: Number }) attentionThreshold = 90;\n\n @property({ type: Array }) filterItems: CardFilterItem[] = [];\n @property({ type: String }) selected: string | null = null;\n @property({ type: Boolean }) filterOpened = false;\n @property({ type: String }) emptyLabel = '';\n @property({ type: String }) emptyActionLabel = '';\n @property({ type: String }) attentionLabel = 'Attention needed';\n @property({ type: Boolean }) showAttention = false;\n @property({ type: Boolean }) isPlainRole = false;\n @property({ type: Boolean }) isDeleting = false;\n @property({ type: Boolean }) isDisabled = false;\n\n @property({ type: Array }) revisions: RevisionItem[] = [];\n @property({ type: String }) displayedRevision = '';\n @property({ type: Boolean }) isDeployed = false;\n @property({ type: String }) deployedLabel = 'Deployed';\n\n @property({ type: Array }) filterRoles: RuntimeFilterRole[] = [];\n @property({ type: String }) filterDisplayText = '';\n @property({ type: String }) allLabel = 'All Roles & Instances';\n\n @property({ type: String }) borderColor = '';\n @property({ type: String }) statusCode = '';\n @property({ type: String }) statusMessage = '';\n @property({ type: String }) serviceDetailLabel = 'Service detail';\n\n @property({ type: Boolean }) showActionBanner = false;\n @property({ type: Boolean }) showWarningBanner = false;\n @property({ type: String }) manageLabel = 'Manage';\n @property({ type: String }) askOwnerLabel = 'Ask your owner';\n @property({ type: String }) invalidCredsLabel = 'Invalid credentials.';\n @property({ type: String }) limitReachedLabel = 'Limit reached.';\n @property({ type: String }) andLabel = 'and';\n @property({ type: String }) actionBannerLabel = '';\n\n @property({ type: Boolean }) moreActionsOpen = false;\n @property({ type: Array }) moreActionsOptions: ActionMenuItem[] = [];\n @property({ type: Boolean }) isFreeIaaS = false;\n @property({ type: String }) closeLabel = 'Close';\n @property({ type: String }) moreActionsLabel = 'More';\n\n @property({ type: String }) freeIaasLabel = 'Free IaaS';\n @property({ type: String }) freeIaasTitle = 'Free Infrastructure';\n @property({ type: String }) freeIaasDesc = 'This environment uses free infrastructure.';\n @property({ type: String }) haLabel = 'Highly Available';\n @property({ type: String }) haTitle = 'High Availability enabled';\n\n @property({ type: String }) role = '';\n @property({ type: Object }) roleTooltips: Record<string, RoleTooltipContent> = {};\n @property({ type: String }) roleTooltipColor = 'var(--axebow-primary)';\n\n private static readonly SIZE_CLASSES: Record<CardType, string> = {\n tenant: 'w-95 h-92.25',\n account: 'w-95 h-103.25',\n environment: 'w-95 h-101.5',\n runtime: 'w-95 h-92.5',\n };\n\n private _hasAttention(): boolean {\n const primary = this.tableStats.slice(0, 3).map((r) => r.title);\n return this.tableStats.some((s) => primary.includes(s.title) && s.percentage >= this.attentionThreshold);\n }\n\n render() {\n const isRuntime = this.cardType === 'runtime';\n\n const showWarning = !this.isPlainRole && this.showWarningBanner;\n const showAttention = !this.isPlainRole && !showWarning && this.showActionBanner && this._hasAttention();\n const showAction = !this.isPlainRole && !showWarning && this.showActionBanner && !this._hasAttention();\n const showBanner = showWarning || showAttention || showAction;\n\n return html`\n <div\n class=\"${AxebowBaseCard.SIZE_CLASSES[this.cardType]} bg-(--axebow-white) rounded-lg px-2 pt-2 pb-4 flex flex-col justify-between gap-2 box-border ${isRuntime ? 'border-t-4' : ''} transition-shadow duration-200 ease-in-out hover:shadow-[0_4px_12px_0_rgba(13,24,33,0.08)] ${this.isDeleting ? 'pointer-events-none cursor-not-allowed grayscale' : ''}\"\n style=${isRuntime ? `border-top-color:${this.borderColor};` : ''}\n ?inert=${this.isDeleting}\n >\n <div class=\"flex flex-col gap-2\">\n <axebow-card-header\n .cardType=${this.cardType}\n .logoSrc=${this.logoSrc}\n .tenantOrAccount=${this.tenantOrAccount}\n .name=${this.name}\n .badge=${this.badge}\n .subtitle=${this.subtitle}\n .revisions=${this.revisions}\n .displayedRevision=${this.displayedRevision}\n .freeIaasLabel=${this.freeIaasLabel}\n .freeIaasTitle=${this.freeIaasTitle}\n .freeIaasDesc=${this.freeIaasDesc}\n .haLabel=${this.haLabel}\n .haTitle=${this.haTitle}\n .role=${this.role}\n .roleTooltips=${this.roleTooltips}\n .roleTooltipColor=${this.roleTooltipColor}\n @revision-change=${(e: CustomEvent) =>\n this.dispatchEvent(new CustomEvent('revision-change', { detail: e.detail, bubbles: true, composed: true }))}\n >\n <slot slot=\"subtitle-tooltip\" name=\"subtitle-tooltip\"></slot>\n </axebow-card-header>\n\n <div class=\"w-full px-2 flex flex-col gap-2\">\n ${isRuntime\n ? html`\n <div class=\"flex flex-row justify-between items-center min-h-10 max-h-10 overflow-hidden\">\n <span class=\"deploy-time text-(--axebow-secondary)\"><slot name=\"time-elapsed\"></slot></span>\n ${this.isDeployed\n ? html`<span class=\"text-(--axebow-secondary) border-2 border-(--axebow-secondary) rounded-lg py-0.5 px-1.5 whitespace-nowrap text-xs\">${this.deployedLabel}</span>`\n : ''}\n </div>\n `\n : html`\n <axebow-card-stats-row\n .stats=${this.mainStats}\n .cardType=${this.cardType}\n @stat-label-click=${(e: CustomEvent) =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('stat-label-click', { detail: e.detail, bubbles: true, composed: true }))}\n ></axebow-card-stats-row>\n `}\n\n <div class=\"flex flex-col w-full h-full\">\n <div class=\"w-full border border-(--axebow-light-gray) box-border ${showBanner ? 'rounded-t-md' : 'rounded-md'}\">\n ${isRuntime\n ? html`\n <axebow-card-table-header\n .opened=${this.filterOpened}\n .filterDisplayText=${this.filterDisplayText}\n .allLabel=${this.allLabel}\n .attentionLabel=${this.attentionLabel}\n .showAttention=${this.showAttention}\n .filterRoles=${this.filterRoles}\n @toggle-open=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('toggle-filter', { bubbles: true, composed: true }))}\n @filter-change=${(e: CustomEvent) =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('filter-change', { detail: e.detail, bubbles: true, composed: true }))}\n ></axebow-card-table-header>\n `\n : html`\n <axebow-card-filter\n .items=${this.filterItems}\n .selected=${this.selected}\n .emptyLabel=${this.emptyLabel}\n .emptyActionLabel=${this.emptyActionLabel}\n .attentionLabel=${this.attentionLabel}\n .showAttention=${this.showAttention}\n .opened=${this.filterOpened}\n .isPlainRole=${this.isPlainRole}\n .isDisabled=${this.isDeleting || this.isDisabled}\n @filter-select=${(e: CustomEvent) =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('filter-select', { detail: e.detail, bubbles: true, composed: true }))}\n @toggle-open=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('toggle-filter', { bubbles: true, composed: true }))}\n @empty-action-click=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('empty-action-click', { bubbles: true, composed: true }))}\n ></axebow-card-filter>\n `}\n\n <axebow-card-resource-table\n .rows=${this.tableStats}\n .attentionThreshold=${this.attentionThreshold}\n ></axebow-card-resource-table>\n </div>\n\n <div class=\"h-6.5 box-border ${showBanner ? 'border-x border-b border-(--axebow-light-gray) rounded-b-md overflow-hidden' : ''}\">\n ${showWarning\n ? html`<axebow-card-attention-banner\n .invalidCredentials=${true}\n .isPlainRole=${this.isPlainRole}\n .manageLabel=${this.manageLabel}\n .askOwnerLabel=${this.askOwnerLabel}\n .invalidCredsLabel=${this.invalidCredsLabel}\n .limitReachedLabel=${this.limitReachedLabel}\n .andLabel=${this.andLabel}\n @manage-click=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('manage-click', { bubbles: true, composed: true }))}\n ></axebow-card-attention-banner>`\n : showAttention\n ? html`<axebow-card-attention-banner\n .cardType=${this.cardType}\n .tableStats=${this.tableStats}\n .threshold=${this.attentionThreshold}\n .isPlainRole=${this.isPlainRole}\n .manageLabel=${this.manageLabel}\n .askOwnerLabel=${this.askOwnerLabel}\n .invalidCredsLabel=${this.invalidCredsLabel}\n .limitReachedLabel=${this.limitReachedLabel}\n .andLabel=${this.andLabel}\n @manage-click=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('manage-click', { bubbles: true, composed: true }))}\n ></axebow-card-attention-banner>`\n : showAction\n ? html`<axebow-card-action-banner\n .label=${this.actionBannerLabel}\n @action-click=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('action-click', { bubbles: true, composed: true }))}\n ></axebow-card-action-banner>`\n : ''}\n </div>\n </div>\n\n <slot name=\"extra-features\"></slot>\n </div>\n </div>\n\n <axebow-card-footer\n class=\"mb-1 pl-2\"\n .isFreeIaaS=${this.isFreeIaaS}\n .isPlainRole=${this.isPlainRole}\n .statusCode=${isRuntime ? this.statusCode : ''}\n .statusMessage=${isRuntime ? this.statusMessage : ''}\n .borderColor=${this.borderColor}\n .showSpinner=${isRuntime && this.borderColor === 'var(--axebow-gray)'}\n .moreActionsOpen=${this.moreActionsOpen}\n .moreActionsOptions=${isRuntime ? [] : this.moreActionsOptions}\n .closeLabel=${this.closeLabel}\n .moreActionsLabel=${this.moreActionsLabel}\n .actionLabel=${isRuntime ? this.serviceDetailLabel : ''}\n @more-actions-toggled=${(e: CustomEvent) =>\n this.dispatchEvent(new CustomEvent('more-actions-toggled', { detail: e.detail, bubbles: true, composed: true }))}\n @footer-action-click=${() =>\n this.dispatchEvent(new CustomEvent('service-detail-click', { bubbles: true, composed: true }))}\n >\n <slot name=\"status-footer\"></slot>\n </axebow-card-footer>\n\n <slot name=\"dialogs\"></slot>\n </div>\n `;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/styles/axebow-theme.ts","../src/components/axebow-icon/axebow-icon.ts","../src/components/axebow-more-actions/axebow-more-actions.ts","../src/components/cards/parts/axebow-card-cloud-logo.ts","../src/components/cards/parts/axebow-card-version-selector.ts","../src/components/cards/parts/axebow-role-tooltip.ts","../src/components/cards/parts/axebow-card-header.ts","../src/components/cards/parts/axebow-card-stat-item.ts","../src/components/cards/parts/axebow-card-stats-row.ts","../src/components/cards/parts/axebow-card-filter-item.ts","../src/components/cards/parts/axebow-card-filter.ts","../src/components/cards/parts/axebow-card-table-header.ts","../src/components/cards/parts/axebow-card-resource-row.ts","../src/components/cards/parts/axebow-card-resource-table.ts","../src/components/cards/parts/axebow-card-special-link.ts","../src/components/cards/parts/axebow-card-attention-banner.ts","../src/components/cards/parts/axebow-card-action-banner.ts","../src/components/cards/parts/axebow-card-status.ts","../src/components/cards/parts/axebow-card-footer.ts","../src/components/cards/axebow-base-card.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const axebowTheme = css`\n :host, .theme {\n --axebow-primary: var(--color-primary, #34495e);\n --axebow-primary-light: var(--color-primary-light, #b4cded);\n --axebow-tertiary: var(--color-tertiary, #006bff);\n --axebow-success: var(--color-success, #0ecd9a);\n --axebow-secondary: var(--color-secondary, #78787a);\n --axebow-base: var(--color-base, #f0f1f5);\n --axebow-error: var(--color-error, #e93a3a);\n --axebow-white: var(--color-white, #ffffff);\n --axebow-black: var(--color-black, #000000);\n --axebow-warning: var(--color-warning, #f9cf6c);\n --axebow-table-border: var(--color-table-border, #ddd);\n --axebow-gray: var(--color-gray, #8a94ae);\n --axebow-light-gray: var(--color-light-gray, #d9d9d9);\n\n --axebow-clickable-blue: var(--color-clickable-blue, #006bff);\n --axebow-sky-gray: var(--color-sky-gray, #8a94ee);\n --axebow-rich-black: var(--color-rich-black, #0d1821);\n --axebow-anti-flash-white: var(--color-anti-flash-white, #f0f1f5);\n --axebow-strong-gray: var(--color-strong-gray, #78787a);\n\n --axebow-bg-primary: var(--color-bg-primary, #f0f1f5);\n\n --axebow-text-gray: var(--color-text-gray, #78787a);\n\n --axebow-premium-label: var(--color-premium-label, #b9935a33);\n --axebow-premium-text: var(--color-premium-text, #b9935a);\n --axebow-deleting-link: var(--color-deleting-link, #a0a0a0);\n --axebow-border-gray: var(--color-border-gray, #9ca3af);\n font-family: var(--font-sans, \"Open Sans\", sans-serif);\n font-size: var(--text-base, 0.75rem);\n line-height: var(--text-base--line-height, 1rem);\n }\n\n /** Axebow switch */\n sl-switch::part(control) {\n background-color: var(--axebow-light-gray);\n }\n sl-switch[checked]::part(control) {\n background-color: var(--axebow-tertiary);\n }\n sl-switch::part(thumb) {\n background-color: white;\n }\n\n /** Axebow checkbox */\n sl-checkbox[checked]::part(control) {\n background-color: var(--axebow-tertiary);\n border-color: var(--axebow-tertiary);\n }\n\n /** Axebow select and input global focus */\n sl-input:focus-within::part(base),\n sl-select:focus-within::part(combobox) {\n border-color: var(--axebow-black) !important;\n box-shadow: 0 0 0 1px var(--axebow-black) !important;\n }\n sl-select sl-option:hover::part(base) {\n background-color: #e9ecef;\n }\n sl-select {\n --sl-color-primary-50: var(--axebow-tertiary);\n --sl-color-primary-600: var(--axebow-tertiary);\n }\n sl-select sl-option[checked]::part(base),\n sl-select sl-option[current]::part(base),\n sl-select sl-option[aria-selected='true']::part(base) {\n background-color: var(--axebow-tertiary) !important;\n color: white !important;\n }\n\n /** Axebow tab group */\n sl-tab-group {\n --indicator-color: var(--axebow-tertiary);\n }\n sl-tab {\n --sl-font-size-small: var(--text-base); /* 12px */\n }\n sl-tab::part(base) {\n font-size: var(--text-base); /* 12px */\n }\n sl-tab[active]::part(base) {\n color: var(--axebow-tertiary);\n }\n sl-tab:hover::part(base) {\n color: var(--axebow-tertiary);\n }\n`;\n\nexport const STATUS_COLORS = {\n HEALTHY: 'var(--axebow-success)',\n ERROR: 'var(--axebow-error)',\n WARNING: 'var(--axebow-warning)',\n DEFAULT: 'var(--axebow-gray)',\n} as const;\n","import tailwindCss from '../../styles/tailwind.css?inline';\nimport { html, unsafeCSS, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('axebow-icon')\nexport class AxebowIcon extends LitElement {\n @property({ type: String }) iconName = 'home';\n @property({ type: String }) iconColor = 'var(--axebow-primary)';\n @property({ type: Number }) rotate = 0;\n @property({ type: Boolean }) filled = false;\n @property({ type: String }) size: 'xx-small' | 'x-small' | 'small' | 'medium' | 'large' | 'x-large' = 'medium';\n @property({ type: Number }) marginBottom = 0;\n\n static styles = unsafeCSS(tailwindCss);\n\n render() {\n const filled = \"[font-variation-settings:'FILL'_1,'wght'_400,'GRAD'_0,'opsz'_24]\";\n const outlined = \"[font-variation-settings:'FILL'_0,'wght'_400,'GRAD'_0,'opsz'_24]\";\n return html`\n <span\n class=\"font-[Material_Symbols_Outlined] inline-block align-middle whitespace-nowrap ${this.filled\n ? filled\n : outlined}\"\n style=\"color: ${this.iconColor}; transform: rotate(${this.rotate}deg); font-size: ${this.size === 'xx-small'\n ? 'var(--text-sm)'\n : this.size === 'x-small'\n ? 'var(--text-base)'\n : this.size === 'small'\n ? 'var(--text-lg)'\n : this.size === 'medium'\n ? 'var(--text-2xl)'\n : this.size === 'large'\n ? 'var(--text-4xl)'\n : this.size === 'x-large'\n ? 'var(--text-6xl)'\n : 'var(--text-2xl)'};\n margin-bottom: ${this.size === 'xx-small'\n ? '0'\n : this.size === 'x-small'\n ? '0'\n : this.size === 'small'\n ? '0'\n : this.size === 'medium'\n ? '0'\n : this.size === 'large'\n ? '0.375rem'\n : this.size === 'x-large'\n ? '0.5rem'\n : `${this.marginBottom}px`};\"\n >\n ${this.iconName}\n </span>\n `;\n }\n}\n","import tailwindCss from '../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ActionMenuItem } from './../cards/card.models.js';\nimport '../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-more-actions')\nexport class AxebowMoreActions extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: inline-block; }`,\n ];\n\n @property({ type: Boolean }) open = false;\n @property({ type: String }) placement: 'top' | 'bottom' = 'bottom';\n @property({ type: Boolean }) disabled = false;\n @property({ type: Array }) options: ActionMenuItem[] = [];\n @property({ type: String }) title = '';\n @property({ type: String }) iconName = '';\n @property({ type: Boolean }) openToRight = false;\n @property({ type: String }) closeLabel = 'Close';\n @property({ type: String }) moreActionsLabel = 'More';\n\n @state() private _fixedPos = { top: 0, right: 0 };\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n window.addEventListener('scroll', this._handleScroll, true);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n window.removeEventListener('scroll', this._handleScroll, true);\n }\n\n private _handleOutsideClick = (e: MouseEvent) => {\n if (this.open && !this.contains(e.target as Node)) {\n this.open = false;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: false } }));\n }\n };\n\n private _handleScroll = () => {\n if (this.open && this.openToRight) {\n this.open = false;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: false } }));\n }\n };\n\n private _toggle(e: Event) {\n if (this.disabled) return;\n e.stopPropagation();\n if (!this.open && this.openToRight) {\n const btn = this.shadowRoot?.querySelector<HTMLElement>('.trigger');\n if (btn) {\n const rect = btn.getBoundingClientRect();\n this._fixedPos = { top: rect.bottom + 8, right: window.innerWidth - rect.right };\n }\n }\n this.open = !this.open;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: this.open } }));\n }\n\n private _handleSlotClick() {\n this.open = false;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: false } }));\n }\n\n render() {\n const placementClass = this.placement === 'top' ? 'bottom-full mb-2' : 'top-full mt-2';\n const dropdownStyle = this.openToRight\n ? `position:fixed;top:${this._fixedPos.top}px;right:${this._fixedPos.right}px;z-index:1000;`\n : '';\n\n return html`\n <div class=\"relative w-full h-full flex justify-end\">\n <button\n class=\"trigger relative font-semibold text-xs text-(--axebow-tertiary) cursor-pointer py-1 px-2 h-full bg-transparent border-none transition-all duration-200 flex items-center hover:text-[var(--axebow-gray)] hover:bg-[var(--axebow-anti-flash-white)] hover:rounded-lg disabled:opacity-50 disabled:cursor-not-allowed disabled:pointer-events-none\"\n ?disabled=${this.disabled}\n @click=${this._toggle}\n >\n ${this.iconName\n ? html`<axebow-icon iconName=${this.iconName} size=\"small\" iconColor=\"var(--axebow-tertiary)\"></axebow-icon>`\n : this.open ? this.closeLabel : (this.title || this.moreActionsLabel)}\n </button>\n ${this.open\n ? html`\n <div\n class=\"absolute right-0 z-10 bg-white border border-(--axebow-gray) rounded-lg shadow-[2px_2px_25px_0px_rgba(0,0,0,0.1)] p-2 min-w-44 flex flex-col ${placementClass}\"\n style=${dropdownStyle}\n @click=${this._handleSlotClick}\n >\n ${this.options?.length\n ? this.options.map(\n (opt) => html`\n <button\n class=\"flex items-center gap-2 text-left py-1 px-2 cursor-pointer rounded-sm border border-transparent bg-transparent w-full hover:bg-gray-100\"\n @click=${(e: Event) => {\n e.stopPropagation();\n opt.onTap(e);\n this.open = false;\n this.dispatchEvent(new CustomEvent('toggled', { detail: { open: false } }));\n }}\n @mouseenter=${(e: Event) => ((e.currentTarget as HTMLElement).style.borderColor = `var(--axebow-${opt.type})`)}\n @mouseleave=${(e: Event) => ((e.currentTarget as HTMLElement).style.borderColor = 'transparent')}\n >\n <axebow-icon iconName=${opt.icon} iconColor=\"var(--axebow-${opt.type})\" size=\"small\"></axebow-icon>\n <p class=\"m-0 whitespace-nowrap\" style=\"color:var(--axebow-${opt.type});\">${opt.label}</p>\n </button>\n `\n )\n : html`<slot></slot>`}\n </div>\n `\n : ''}\n </div>\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('axebow-card-cloud-logo')\nexport class AxebowCardCloudLogo extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: contents; }`,\n ];\n\n @property({ type: String }) src: string | null = null;\n @property({ type: String }) size: 'small' | 'large' = 'large';\n\n render() {\n if (!this.src) return html``;\n\n return this.size === 'small'\n ? html`<div class=\"flex items-center justify-center shrink-0\" style=\"height:1.125rem;width:1.125rem;\"><img src=${this.src} class=\"max-h-full max-w-full object-contain\" /></div>`\n : html`<div class=\"flex items-center justify-center shrink-0\" style=\"height:3.125rem;width:3.125rem;\"><img src=${this.src} class=\"max-h-full max-w-full object-contain\" /></div>`;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { RevisionItem } from '../card.models.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-version-selector')\nexport class AxebowCardVersionSelector extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: inline-block; width: auto; max-width: 120px; margin-block: 0.25rem; }\n sl-select {\n --sl-input-background-color: transparent;\n --sl-input-border-color: transparent;\n --sl-input-background-color-focus: transparent;\n --sl-input-border-color-focus: transparent;\n --sl-focus-ring-width: 0px;\n --sl-color-primary-500: var(--axebow-tertiary);\n --sl-color-primary-600: var(--axebow-tertiary);\n --sl-input-spacing-small: 0.1875rem;\n --sl-input-height-small: auto;\n --sl-input-font-size-small: var(--text-base, 0.75rem);\n --sl-font-size-medium: var(--text-base, 0.75rem);\n --sl-spacing-small: 0;\n display: inline-flex !important;\n border: none;\n background: transparent;\n padding: 0;\n margin: 0;\n min-width: 0;\n width: fit-content !important;\n max-width: 120px !important;\n }\n sl-select::part(form-control) {\n display: inline-block;\n width: fit-content;\n border: none;\n background-color: transparent;\n padding: 0;\n min-width: 0;\n }\n sl-select::part(form-control-input) {\n display: inline-block;\n width: fit-content;\n }\n sl-select::part(display-input) { padding: 0; color: var(--axebow-tertiary); font-size: 0.75rem !important; transition: color 0.15s ease; }\n sl-select::part(combobox) {\n padding-inline-start: 0.25rem !important;\n padding-block: 0.125rem !important;\n gap: 0.25rem !important;\n justify-content: flex-start;\n cursor: pointer;\n border: none;\n outline: 1px solid transparent;\n outline-offset: -1px;\n border-radius: 0.375rem;\n background-color: transparent;\n transition: background-color 0.15s ease, outline-color 0.15s ease;\n }\n sl-select[open]::part(combobox) {\n outline-color: var(--axebow-tertiary);\n border-radius: 0.375rem 0.375rem 0 0;\n background-color: white;\n }\n sl-select::part(expand-icon) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: 1.125rem;\n height: 1.125rem;\n border: 1px solid var(--axebow-tertiary);\n border-radius: 0.25rem;\n color: var(--axebow-tertiary);\n background-color: transparent;\n transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;\n }\n sl-select::part(listbox) {\n border-color: var(--axebow-tertiary);\n border-top: none;\n border-radius: 0 0 0.375rem 0.375rem;\n box-shadow: none;\n margin-top: -1px;\n }\n sl-option::part(base) { font-size: 0.75rem; padding-inline-start: 0.25rem !important; }\n sl-option::part(checked-icon) { display: none; }\n\n sl-select:hover::part(display-input) { color: var(--axebow-gray); }\n sl-select:hover::part(expand-icon) { color: var(--axebow-gray); border-color: var(--axebow-gray); }\n\n sl-select[open]::part(expand-icon) {\n color: white;\n border-color: var(--axebow-tertiary);\n background-color: var(--axebow-tertiary);\n }\n `,\n ];\n\n @property({ type: Array }) revisions: RevisionItem[] = [];\n @property({ type: String }) displayedRevision = '';\n\n private _formatRevision(id: string): string {\n if (!id) return '';\n const parts = id.split('/');\n return parts[parts.length - 1] ?? id;\n }\n\n render() {\n return html`\n <sl-select size=\"small\" value=${this.displayedRevision} @sl-change=${this._onChange}>\n ${this.revisions.map(\n (rev) => html`\n <sl-option value=${rev.id}>\n ${this._formatRevision(rev.id)}\n ${rev.id !== this.displayedRevision\n ? html`<axebow-icon slot=\"suffix\" iconName=\"update\" iconColor=\"var(--axebow-tertiary)\" size=\"small\"></axebow-icon>`\n : ''}\n </sl-option>\n `\n )}\n </sl-select>\n `;\n }\n\n private _onChange(e: CustomEvent) {\n const revision = (e.target as HTMLSelectElement).value;\n this.dispatchEvent(new CustomEvent('revision-change', { detail: { revision }, bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '@shoelace-style/shoelace/dist/components/tooltip/tooltip.js';\n\n@customElement('axebow-role-tooltip')\nexport class AxebowRoleTooltip extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: contents; }\n sl-tooltip::part(body) {\n background-color: var(--axebow-white);\n color: var(--axebow-primary);\n padding: 1rem;\n border: 3px solid var(--axebow-table-border);\n width: 280px;\n }\n ul {\n margin: 0.5rem 0 0;\n padding-left: 1.2rem;\n list-style: disc;\n }\n li {\n font-size: 0.8rem;\n line-height: 1.5;\n }\n `,\n ];\n\n @property({ type: String }) heading = '';\n @property({ type: Array }) items: string[] = [];\n @property({ type: String }) color = 'var(--axebow-primary)';\n\n render() {\n if (!this.heading) return html``;\n\n return html`\n <sl-tooltip placement=\"right\" hoist>\n <div slot=\"content\">\n <strong>${this.heading}</strong>\n <ul>\n ${this.items.map((item) => html`<li>${item}</li>`)}\n </ul>\n </div>\n <axebow-icon iconName=\"info\" size=\"small\" class=\"cursor-pointer\" iconColor=${this.color}></axebow-icon>\n </sl-tooltip>\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { CardBadge, CardType, RevisionItem, RoleTooltipContent } from '../card.models.js';\nimport '@shoelace-style/shoelace/dist/components/tooltip/tooltip.js';\nimport '@shoelace-style/shoelace/dist/components/badge/badge.js';\nimport '../../axebow-icon/axebow-icon.js';\nimport './axebow-card-cloud-logo.js';\nimport './axebow-card-version-selector.js';\nimport './axebow-role-tooltip.js';\n\n@customElement('axebow-card-header')\nexport class AxebowCardHeader extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: block; }\n sl-badge::part(base) { background-color: var(--axebow-secondary); color: white; }\n `,\n ];\n\n @property({ type: String }) logoSrc: string | null = null;\n @property({ type: String }) tenantOrAccount = '';\n @property({ type: String }) name = '';\n @property({ type: String }) badge: CardBadge = 'none';\n @property({ type: String }) subtitle = '';\n @property({ type: String }) cardType: CardType = 'account';\n @property({ type: Array }) revisions: RevisionItem[] = [];\n @property({ type: String }) displayedRevision = '';\n @property({ type: String }) freeIaasLabel = 'Free IaaS';\n @property({ type: String }) freeIaasTitle = 'Free Infrastructure';\n @property({ type: String }) freeIaasDesc = 'This environment uses free infrastructure.';\n @property({ type: String }) haLabel = 'Highly Available';\n @property({ type: String }) haTitle = 'High Availability enabled';\n @property({ type: String }) role = '';\n @property({ type: Object }) roleTooltips: Record<string, RoleTooltipContent> = {};\n @property({ type: String }) roleTooltipColor = 'var(--axebow-primary)';\n\n private _renderBadge() {\n if (this.badge === 'free-iaas') {\n return html`\n <sl-tooltip>\n <div slot=\"content\" style=\"max-width:300px;\">\n <strong>${this.freeIaasTitle}</strong>\n <p style=\"margin-top:0.5rem;\">${this.freeIaasDesc}</p>\n </div>\n <div class=\"flex items-center gap-2 cursor-pointer\">\n <axebow-icon iconName=\"info\" iconColor=\"var(--axebow-gray)\" size=\"small\"></axebow-icon>\n <span class=\"text-(--axebow-rich-black)\">${this.freeIaasLabel}</span>\n </div>\n </sl-tooltip>\n `;\n }\n if (this.badge === 'ha') {\n return html`\n <sl-tooltip content=${this.haTitle}>\n <sl-badge variant=\"neutral\" pill size=\"small\" class=\"cursor-pointer\">${this.haLabel}</sl-badge>\n </sl-tooltip>\n `;\n }\n return html``;\n }\n\n private _headerHeight(): string {\n switch (this.cardType) {\n case 'tenant':\n return '4.5625rem';\n case 'environment':\n return '3.6875rem';\n case 'account':\n case 'runtime':\n default:\n return '4.125rem';\n }\n }\n\n render() {\n const isTenant = this.cardType === 'tenant';\n const isCompact = this.cardType === 'environment' || isTenant;\n const isRuntime = this.cardType === 'runtime';\n const heightStyle = `height:${this._headerHeight()}`;\n\n if (isCompact) {\n return html`\n <div class=\"w-full bg-(--axebow-anti-flash-white) rounded-lg flex flex-col justify-center px-5 py-3 box-border\" style=${heightStyle}>\n <div class=\"flex flex-col flex-1 min-w-0\">\n ${this.tenantOrAccount || this.logoSrc\n ? html`\n <div class=\"flex gap-2 items-center leading-none mt-1\">\n <axebow-card-cloud-logo .src=${this.logoSrc} size=\"small\"></axebow-card-cloud-logo>\n <span class=\"font-semibold text-(--axebow-gray) leading-none\">${this.tenantOrAccount}</span>\n </div>\n `\n : ''}\n <div class=\"flex justify-between items-center\">\n <span class=\"font-bold text-xl text-(--axebow-primary) leading-snug pt-0.5\">${this.name}</span>\n ${this._renderBadge()}\n </div>\n ${this.subtitle\n ? html`\n <div class=\"text-(--axebow-gray) flex items-center gap-1 mt-1\">\n ${this.subtitle}\n ${isTenant && this.roleTooltips[this.role]\n ? html`\n <axebow-role-tooltip\n .heading=${this.roleTooltips[this.role].title}\n .items=${this.roleTooltips[this.role].items}\n color=${this.roleTooltipColor}\n ></axebow-role-tooltip>\n `\n : html`<slot name=\"subtitle-tooltip\"></slot>`}\n </div>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n return html`\n <div class=\"w-full bg-(--axebow-anti-flash-white) rounded-lg flex items-center gap-3 py-2 px-3 box-border\" style=${heightStyle}>\n <axebow-card-cloud-logo .src=${this.logoSrc} size=\"large\"></axebow-card-cloud-logo>\n <div class=\"flex flex-col flex-1 min-w-0 ${isRuntime ? 'justify-center' : ''}\">\n ${!isRuntime && this.tenantOrAccount\n ? html`<span class=\"font-semibold text-(--axebow-gray) leading-none\">${this.tenantOrAccount}</span>`\n : ''}\n <div class=\"flex justify-between items-center ${isRuntime ? 'mt-1.5' : ''}\">\n <span class=\"font-bold text-xl text-(--axebow-primary) leading-snug ${isRuntime ? 'pl-1' : 'pt-0.5'}\">${this.name}</span>\n ${this._renderBadge()}\n </div>\n ${isRuntime\n ? html`\n <div class=\"revision-wrap flex items-center mt-0\">\n <axebow-card-version-selector\n .revisions=${this.revisions}\n .displayedRevision=${this.displayedRevision}\n @revision-change=${this._onRevisionChange}\n ></axebow-card-version-selector>\n </div>\n `\n : this.subtitle\n ? html`<div class=\"text-xs text-(--axebow-gray) flex items-center gap-1 mt-1\">${this.subtitle}<slot name=\"subtitle-tooltip\"></slot></div>`\n : ''}\n </div>\n </div>\n `;\n }\n\n private _onRevisionChange(e: CustomEvent) {\n this.dispatchEvent(new CustomEvent('revision-change', { detail: e.detail, bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('axebow-card-stat-item')\nexport class AxebowCardStatItem extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Number }) value: number = 0;\n @property({ type: String }) title = '';\n @property({ type: String }) label = '';\n @property({ type: Boolean }) active = true;\n\n render() {\n return html`\n <div class=\"flex flex-col items-center justify-start text-center gap-0.5 w-30 h-17.25\">\n <h4 class=\"text-[20px] text-(--axebow-primary) font-bold leading-snug m-0\">${this.value}</h4>\n <p class=\"text-[12px] m-0 leading-snug\">${this.title}</p>\n <div class=\"h-3.5 flex items-center justify-center\">\n ${this.label\n ? html`\n <span\n class=\"text-(--axebow-gray) font-semibold text-[12px] ${this.active ? 'cursor-pointer opacity-100' : 'cursor-not-allowed opacity-50'}\"\n @click=${this._onClick}\n >${this.label}</span>\n `\n : ''}\n </div>\n </div>\n `;\n }\n\n private _onClick() {\n if (this.active) {\n this.dispatchEvent(new CustomEvent('label-click', { bubbles: true, composed: true }));\n }\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { CardType, MainStatsType } from '../card.models.js';\nimport './axebow-card-stat-item.js';\n\n@customElement('axebow-card-stats-row')\nexport class AxebowCardStatsRow extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Array }) stats: MainStatsType[] = [];\n @property({ type: String }) cardType: CardType = 'account';\n\n private _hasButtons(): boolean {\n return this.cardType === 'account' || this.cardType === 'environment';\n }\n\n render() {\n const heightClass = this._hasButtons() ? 'h-17.25' : 'h-11.25';\n\n return html`\n <div class=\"grid grid-cols-3 gap-1 w-91 ${heightClass} box-border\">\n ${this.stats.map(\n (stat, index) => html`\n <axebow-card-stat-item\n .value=${stat.value}\n .title=${stat.title}\n .label=${stat.label}\n .active=${stat.active !== false}\n @label-click=${() => this._handleLabelClick(index)}\n ></axebow-card-stat-item>\n `\n )}\n </div>\n `;\n }\n\n private _handleLabelClick(index: number) {\n this.dispatchEvent(\n new CustomEvent('stat-label-click', { detail: { index }, bubbles: true, composed: true })\n );\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-filter-item')\nexport class AxebowCardFilterItem extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: String }) name = '';\n @property({ type: Boolean }) showAttention = false;\n\n render() {\n return html`\n <div\n class=\"w-full py-1 px-2 flex justify-between items-center cursor-pointer hover:bg-(--axebow-light-gray)\"\n @click=${this._onClick}\n >\n <p class=\"m-0\">${this.name}</p>\n ${this.showAttention\n ? html`<axebow-icon iconName=\"error\" size=\"small\" iconColor=\"var(--axebow-error)\"></axebow-icon>`\n : ''}\n </div>\n `;\n }\n\n private _onClick() {\n this.dispatchEvent(\n new CustomEvent('item-select', { detail: { name: this.name }, bubbles: true, composed: true })\n );\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { CardFilterItem } from '../card.models.js';\nimport '../../axebow-icon/axebow-icon.js';\nimport './axebow-card-filter-item.js';\n\n@customElement('axebow-card-filter')\nexport class AxebowCardFilter extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Array }) items: CardFilterItem[] = [];\n @property({ type: String }) selected: string | null = null;\n @property({ type: String }) emptyLabel = '';\n @property({ type: String }) emptyActionLabel = '';\n @property({ type: String }) attentionLabel = 'Attention needed';\n @property({ type: Boolean }) showAttention = false;\n @property({ type: Boolean }) opened = false;\n @property({ type: Boolean }) isPlainRole = false;\n @property({ type: Boolean }) isDisabled = false;\n\n render() {\n const showEmpty = !this.selected && this.items.length === 0;\n\n return html`\n <div class=\"relative\">\n <div class=\"flex justify-between items-center border-b border-(--axebow-light-gray) w-87 h-7 box-border px-2 cursor-pointer\">\n ${showEmpty\n ? html`\n <p\n class=\"m-0 ${this.isPlainRole || this.isDisabled\n ? 'text-(--axebow-gray) cursor-default opacity-50'\n : 'text-(--axebow-tertiary) cursor-pointer'}\"\n @click=${this.isPlainRole || this.isDisabled ? undefined : this._onEmptyAction}\n >\n ${this.emptyActionLabel}\n </p>\n `\n : html`\n <div\n class=\"flex w-full justify-between items-center ${this.isDisabled ? 'opacity-50 cursor-not-allowed' : ''}\"\n @click=${this.isDisabled ? undefined : this._onToggle}\n >\n <span class=\"text-(--axebow-tertiary)\">${this.selected ?? this.emptyLabel}</span>\n <div class=\"flex items-center gap-2\">\n ${this.showAttention\n ? html`<p class=\"text-(--axebow-error) m-0 text-xs\">${this.attentionLabel}</p>`\n : ''}\n <axebow-icon iconName=\"chevron_right\" rotate=\"90\" iconColor=\"var(--axebow-tertiary)\" size=\"small\"></axebow-icon>\n </div>\n </div>\n `}\n </div>\n\n <div class=\"${this.opened ? '' : 'hidden'} absolute top-full left-0 right-0 z-10 flex flex-col bg-white rounded-b-lg border border-(--axebow-light-gray) shadow-[2px_2px_25px_0px_rgba(0,0,0,0.1)] max-h-40 overflow-y-auto\">\n <p class=\"w-full p-2 cursor-pointer m-0 hover:bg-(--axebow-light-gray)\" @click=${() => this._onSelect(null)}>${this.emptyLabel}</p>\n ${this.items.map(\n (item) => html`\n <axebow-card-filter-item\n .name=${item.name}\n .showAttention=${item.showAttention}\n @item-select=${(e: CustomEvent) => this._onSelect(e.detail.name)}\n ></axebow-card-filter-item>\n `\n )}\n </div>\n </div>\n `;\n }\n\n private _onToggle() {\n this.dispatchEvent(new CustomEvent('toggle-open', { bubbles: true, composed: true }));\n }\n\n private _onSelect(name: string | null) {\n this.dispatchEvent(new CustomEvent('filter-select', { detail: { name }, bubbles: true, composed: true }));\n }\n\n private _onEmptyAction() {\n this.dispatchEvent(new CustomEvent('empty-action-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { RuntimeFilterRole } from '../card.models.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-table-header')\nexport class AxebowCardTableHeader extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Boolean }) opened = false;\n @property({ type: String }) filterDisplayText = '';\n @property({ type: String }) allLabel = 'All Roles & Instances';\n @property({ type: String }) attentionLabel = 'Attention needed';\n @property({ type: Boolean }) showAttention = false;\n @property({ type: Array }) filterRoles: RuntimeFilterRole[] = [];\n\n render() {\n return html`\n <div class=\"relative\">\n <div\n class=\"flex justify-between items-center border-b border-(--axebow-light-gray) w-87 h-7 box-border px-2 cursor-pointer\"\n @click=${this._onToggle}\n >\n <span class=\"text-(--axebow-tertiary)\">${this.filterDisplayText || this.allLabel}</span>\n <div class=\"flex items-center gap-2\">\n ${this.showAttention ? html`<p class=\"text-(--axebow-error) m-0 text-xs\">${this.attentionLabel}</p>` : ''}\n <axebow-icon iconName=\"chevron_right\" rotate=\"90\" iconColor=\"var(--axebow-tertiary)\" size=\"small\"></axebow-icon>\n </div>\n </div>\n\n <div class=\"${this.opened ? '' : 'hidden'} absolute top-full left-0 right-0 z-10 flex flex-col bg-white rounded-b-lg border border-(--axebow-light-gray) shadow-[2px_2px_25px_0px_rgba(0,0,0,0.1)] max-h-40 overflow-y-auto\">\n <p class=\"w-full p-2 cursor-pointer m-0 hover:bg-(--axebow-light-gray)\" @click=${() => this._onSelect('', 'all')}>${this.allLabel}</p>\n ${this.filterRoles.map(\n (role) => html`\n <div\n class=\"w-full py-1 px-2 flex justify-between items-center cursor-pointer hover:bg-(--axebow-light-gray)\"\n @click=${() => this._onSelect(role.name, 'role')}\n >\n <div class=\"flex items-center gap-2\">\n ${role.logo ? html`<img src=${role.logo} class=\"w-5 h-5\" />` : ''}\n <p class=\"m-0\">${role.name}</p>\n </div>\n </div>\n ${role.instances.map(\n (inst) => html`\n <div\n class=\"w-full py-1 px-2 pl-6 flex justify-between items-center cursor-pointer hover:bg-(--axebow-light-gray)\"\n @click=${() => this._onSelect(inst.name, 'instance')}\n >\n <div class=\"flex items-center gap-2\">\n <axebow-icon iconName=\"subdirectory_arrow_right\" size=\"small\"></axebow-icon>\n <p class=\"m-0\">${inst.name}</p>\n </div>\n ${inst.needsAttention\n ? html`<axebow-icon iconName=\"warning\" iconColor=\"var(--axebow-error)\" size=\"small\"></axebow-icon>`\n : ''}\n </div>\n `\n )}\n `\n )}\n </div>\n </div>\n `;\n }\n\n private _onToggle() {\n this.dispatchEvent(new CustomEvent('toggle-open', { bubbles: true, composed: true }));\n }\n\n private _onSelect(selected: string, type: 'instance' | 'role' | 'all') {\n this.dispatchEvent(new CustomEvent('filter-change', { detail: { selected, type }, bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../axebow-icon/axebow-icon.js';\nimport { TableStatsType } from '../card.models.js';\n\n@customElement('axebow-card-resource-row')\nexport class AxebowCardResourceRow extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: contents; }`,\n ];\n\n @property({ type: Object }) stat!: TableStatsType;\n @property({ type: Number }) attentionThreshold = 90;\n @property({ type: Boolean }) isLast = false;\n @property({ type: Boolean }) allEmpty = false;\n\n render() {\n const stat = this.stat;\n const showDivider = !stat.hidden && !this.isLast;\n const textClass = stat.isSecondary ? 'text-sm font-normal' : 'text-base font-semibold';\n const barHeightClass = stat.isSecondary ? 'h-2.25' : 'h-2.75';\n const divider = showDivider\n ? html`<div class=\"col-span-4 border-t border-dashed border-(--axebow-light-gray)\"></div>`\n : '';\n\n if (stat.hidden) {\n return html`\n <div class=\"flex items-center w-full h-5.75 box-border\"></div>\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\"></div>\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\"></div>\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\"></div>\n ${divider}\n `;\n }\n\n return html`\n <div class=\"flex items-center w-full h-5.75 box-border\">\n <div class=\"flex items-center gap-1\">\n <axebow-icon iconName=${stat.icon} size=\"small\" rotate=${stat.iconRotation ?? 0}></axebow-icon>\n <span class=\"${textClass}\">${stat.title}</span>\n </div>\n </div>\n\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\">\n <p class=\"${textClass} m-0\">${stat.value ?? '-.-'}</p>\n </div>\n\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\">\n <div class=\"${barHeightClass} w-37.5 bg-(--axebow-light-gray) rounded-md relative overflow-hidden\">\n <div\n class=\"absolute h-full ${stat.percentage >= this.attentionThreshold ? 'bg-(--axebow-error)' : 'bg-(--axebow-gray)'}\"\n style=\"width:${stat.percentage}%;\"\n ></div>\n </div>\n </div>\n\n <div class=\"flex items-center justify-end w-full h-5.75 box-border\">\n <p class=\"${textClass} m-0\">\n ${this.allEmpty\n ? '-.-'\n : html`${stat.maxValue ?? '-.-'}<span class=\"font-normal\">${stat.title === 'vCPU' ? '' : stat.tagValue ?? ''}</span>`}\n </p>\n </div>\n ${divider}\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { TableStatsType } from '../card.models.js';\nimport './axebow-card-resource-row.js';\n\n@customElement('axebow-card-resource-table')\nexport class AxebowCardResourceTable extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Array }) rows: TableStatsType[] = [];\n @property({ type: Number }) attentionThreshold = 90;\n\n render() {\n const visibleRows = this.rows.filter((r) => !r.hidden);\n const lastVisible = visibleRows[visibleRows.length - 1];\n const allEmpty = visibleRows.every((r) => Number(r.maxValue ?? 0) === 0);\n\n return html`\n <div class=\"grid grid-cols-[auto_auto_1fr_auto] gap-x-2 w-87 px-2 box-border\">\n ${this.rows.map(\n (stat) => html`\n <axebow-card-resource-row\n .stat=${stat}\n .attentionThreshold=${this.attentionThreshold}\n .isLast=${stat === lastVisible}\n .allEmpty=${allEmpty}\n ></axebow-card-resource-row>\n `\n )}\n </div>\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-special-link')\nexport class AxebowCardSpecialLink extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: inline-flex; }`,\n ];\n\n @property({ type: String }) label = '';\n @property({ type: String }) color = 'var(--axebow-error)';\n @property({ type: String }) icon = 'arrow_forward';\n\n render() {\n return html`\n <span class=\"cursor-pointer\" style=\"color:${this.color};\" @click=${this._onClick}>\n ${this.label}\n <axebow-icon iconName=${this.icon} iconColor=${this.color} size=\"small\"></axebow-icon>\n </span>\n `;\n }\n\n private _onClick() {\n this.dispatchEvent(new CustomEvent('link-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { CardType, TableStatsType } from '../card.models.js';\nimport './axebow-card-special-link.js';\n\n@customElement('axebow-card-attention-banner')\nexport class AxebowCardAttentionBanner extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: block; }\n .error-bg { background-color: color-mix(in srgb, var(--axebow-error) 10%, white); }\n `,\n ];\n\n @property({ type: String }) cardType: CardType = 'account';\n @property({ type: Array }) tableStats: TableStatsType[] = [];\n @property({ type: Number }) threshold = 90;\n @property({ type: Boolean }) isPlainRole = false;\n @property({ type: Boolean }) invalidCredentials = false;\n @property({ type: String }) manageLabel = 'Manage';\n @property({ type: String }) askOwnerLabel = 'Ask your owner';\n @property({ type: String }) invalidCredsLabel = 'Invalid credentials.';\n @property({ type: String }) limitReachedLabel = 'Limit reached.';\n @property({ type: String }) andLabel = 'and';\n\n private _getExceeded(): string[] {\n const primary = this.tableStats.slice(0, 3).map((r) => r.title);\n return this.tableStats\n .filter((s) => primary.includes(s.title) && s.percentage >= this.threshold)\n .map((s) => s.title);\n }\n\n private _formatList(resources: string[]): string {\n if (resources.length === 1) return resources[0];\n if (resources.length === 2) return `${resources[0]} ${this.andLabel} ${resources[1]}`;\n return `${resources.slice(0, -1).join(', ')} ${this.andLabel} ${resources[resources.length - 1]}`;\n }\n\n render() {\n const exceeded = this._getExceeded();\n if (exceeded.length === 0 && !this.invalidCredentials) return html``;\n\n return html`\n <div class=\"error-bg flex flex-wrap items-center justify-center gap-1 w-87 h-6.5 box-border px-1 text-center overflow-hidden\">\n ${this.isPlainRole\n ? html`<span class=\"text-(--axebow-error)\">${this.askOwnerLabel}</span>`\n : html`\n <p class=\"text-(--axebow-error) m-0\">\n ${this.invalidCredentials\n ? this.invalidCredsLabel\n : `${this.limitReachedLabel} ${this._formatList(exceeded)}.`}\n <axebow-card-special-link\n .label=${this.manageLabel}\n color=\"var(--axebow-error)\"\n @link-click=${this._onManage}\n ></axebow-card-special-link>\n </p>\n `}\n </div>\n `;\n }\n\n private _onManage() {\n this.dispatchEvent(new CustomEvent('manage-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-action-banner')\nexport class AxebowCardActionBanner extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: block; }\n .tertiary-bg { background-color: color-mix(in srgb, var(--axebow-tertiary) 10%, white); }\n axebow-button::part(label) { color: var(--axebow-tertiary); font-weight: 600; display: flex; align-items: center; gap: 2px; }\n axebow-button::part(base) { padding: 0; height: auto; min-height: unset; }\n `,\n ];\n\n @property({ type: String }) label = 'View details';\n\n render() {\n return html`\n <div class=\"tertiary-bg flex items-center justify-center gap-1 w-87 h-6.5 box-border px-3 text-sm text-center overflow-hidden\">\n <axebow-button variant=\"text\" size=\"small\" @click=${this._onClick}>\n ${this.label}\n <axebow-icon iconName=\"arrow_forward\" iconColor=\"var(--axebow-tertiary)\" size=\"small\"></axebow-icon>\n </axebow-button>\n </div>\n `;\n }\n\n private _onClick() {\n this.dispatchEvent(new CustomEvent('action-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport '@shoelace-style/shoelace/dist/components/tooltip/tooltip.js';\nimport '../../axebow-icon/axebow-icon.js';\n\n@customElement('axebow-card-status')\nexport class AxebowCardStatus extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: block; flex: 1; min-width: 0; }\n sl-tooltip::part(base) { max-width: none; white-space: normal; word-break: break-word; }\n `,\n ];\n\n @property({ type: String }) statusCode = '';\n @property({ type: String }) statusMessage = '';\n @property({ type: String }) borderColor = '';\n @property({ type: Boolean }) showSpinner = false;\n\n render() {\n if (!this.statusCode) {\n return html`<div class=\"w-full whitespace-nowrap overflow-hidden text-ellipsis\"><slot></slot></div>`;\n }\n\n return html`\n <div class=\"flex items-center gap-1 min-w-0 w-full\">\n ${this.showSpinner ? html`<sl-spinner style=\"--indicator-color:${this.borderColor};\"></sl-spinner>` : ''}\n <p class=\"font-bold m-0 line-clamp-1\" style=\"color:${this.borderColor};\" title=${this.statusCode}>${this.statusCode}</p>\n <sl-tooltip content=${this.statusMessage}>\n <axebow-icon class=\"cursor-pointer shrink-0\" iconColor=${this.borderColor} iconName=\"info\" size=\"small\"></axebow-icon>\n </sl-tooltip>\n </div>\n `;\n }\n}\n","import tailwindCss from '../../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ActionMenuItem } from '../card.models.js';\nimport './../../axebow-more-actions/axebow-more-actions.js';\nimport './axebow-card-status.js';\n\n@customElement('axebow-card-footer')\nexport class AxebowCardFooter extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`:host { display: block; }`,\n ];\n\n @property({ type: Boolean }) isFreeIaaS = false;\n @property({ type: Boolean }) isPlainRole = false;\n @property({ type: String }) statusCode = '';\n @property({ type: String }) statusMessage = '';\n @property({ type: String }) borderColor = '';\n @property({ type: Boolean }) showSpinner = false;\n @property({ type: Boolean }) moreActionsOpen = false;\n @property({ type: Array }) moreActionsOptions: ActionMenuItem[] = [];\n @property({ type: String }) closeLabel = 'Close';\n @property({ type: String }) moreActionsLabel = 'More';\n @property({ type: String }) actionLabel = '';\n\n render() {\n const showDropdown = !this.isFreeIaaS && !this.isPlainRole && this.moreActionsOptions.length > 0;\n const showAction = !showDropdown && !!this.actionLabel;\n\n return html`\n <div class=\"flex justify-between items-center relative h-6 gap-2\">\n <axebow-card-status\n .statusCode=${this.statusCode}\n .statusMessage=${this.statusMessage}\n .borderColor=${this.borderColor}\n .showSpinner=${this.showSpinner}\n >\n <slot></slot>\n </axebow-card-status>\n ${showDropdown\n ? html`\n <axebow-more-actions\n class=\"shrink-0 mr-2\"\n placement=\"top\"\n .open=${this.moreActionsOpen}\n .options=${this.moreActionsOptions}\n .closeLabel=${this.closeLabel}\n .moreActionsLabel=${this.moreActionsLabel}\n @toggled=${this._onToggled}\n ></axebow-more-actions>\n `\n : showAction\n ? html`<axebow-button variant=\"text\" size=\"medium\" @click=${this._onAction}>${this.actionLabel}</axebow-button>`\n : ''}\n </div>\n `;\n }\n\n private _onToggled(e: CustomEvent) {\n this.dispatchEvent(\n new CustomEvent('more-actions-toggled', { detail: { open: e.detail.open }, bubbles: true, composed: true })\n );\n }\n\n private _onAction() {\n this.dispatchEvent(new CustomEvent('footer-action-click', { bubbles: true, composed: true }));\n }\n}\n","import tailwindCss from '../../styles/tailwind.css?inline';\nimport { LitElement, html, css, unsafeCSS } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport {\n ActionMenuItem,\n CardBadge,\n CardFilterItem,\n CardType,\n MainStatsType,\n RevisionItem,\n RoleTooltipContent,\n RuntimeFilterRole,\n TableStatsType,\n} from './card.models.js';\nimport './../axebow-more-actions/axebow-more-actions.js';\nimport './parts/axebow-card-header.js';\nimport './parts/axebow-card-stats-row.js';\nimport './parts/axebow-card-filter.js';\nimport './parts/axebow-card-table-header.js';\nimport './parts/axebow-card-resource-table.js';\nimport './parts/axebow-card-attention-banner.js';\nimport './parts/axebow-card-action-banner.js';\nimport './parts/axebow-card-footer.js';\n\n@customElement('axebow-base-card')\nexport class AxebowBaseCard extends LitElement {\n static styles = [\n unsafeCSS(tailwindCss),\n css`\n :host { display: inline-block; max-width: 100%; }\n sl-badge::part(base) { background-color: var(--axebow-secondary); color: white; }\n sl-dialog::part(panel) { width: 35vw; min-width: 400px; }\n sl-dialog::part(body) { padding-top: 0; }\n sl-alert::part(base) { border-top: 2px solid var(--axebow-error); }\n sl-range, sl-range:hover {\n --sl-color-primary-600: var(--axebow-tertiary);\n --sl-color-primary-500: var(--axebow-tertiary);\n }\n .deploy-time {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n `,\n ];\n\n @property({ type: String, reflect: true, attribute: 'card-type' }) cardType: CardType = 'account';\n @property({ type: String }) name = '';\n @property({ type: String }) logoSrc: string | null = null;\n @property({ type: String }) tenantOrAccount = '';\n @property({ type: String }) badge: CardBadge = 'none';\n @property({ type: String }) subtitle = '';\n\n @property({ type: Array }) mainStats: MainStatsType[] = [];\n\n @property({ type: Array }) tableStats: TableStatsType[] = [];\n @property({ type: Number }) attentionThreshold = 90;\n\n @property({ type: Array }) filterItems: CardFilterItem[] = [];\n @property({ type: String }) selected: string | null = null;\n @property({ type: Boolean }) filterOpened = false;\n @property({ type: String }) emptyLabel = '';\n @property({ type: String }) emptyActionLabel = '';\n @property({ type: String }) attentionLabel = 'Attention needed';\n @property({ type: Boolean }) showAttention = false;\n @property({ type: Boolean }) isPlainRole = false;\n @property({ type: Boolean }) isDeleting = false;\n @property({ type: Boolean }) isDisabled = false;\n\n @property({ type: Array }) revisions: RevisionItem[] = [];\n @property({ type: String }) displayedRevision = '';\n @property({ type: Boolean }) isDeployed = false;\n @property({ type: String }) deployedLabel = 'Deployed';\n\n @property({ type: Array }) filterRoles: RuntimeFilterRole[] = [];\n @property({ type: String }) filterDisplayText = '';\n @property({ type: String }) allLabel = 'All Roles & Instances';\n\n @property({ type: String }) borderColor = '';\n @property({ type: String }) statusCode = '';\n @property({ type: String }) statusMessage = '';\n @property({ type: String }) serviceDetailLabel = 'Service detail';\n\n @property({ type: Boolean }) showActionBanner = false;\n @property({ type: Boolean }) showWarningBanner = false;\n @property({ type: String }) manageLabel = 'Manage';\n @property({ type: String }) askOwnerLabel = 'Ask your owner';\n @property({ type: String }) invalidCredsLabel = 'Invalid credentials.';\n @property({ type: String }) limitReachedLabel = 'Limit reached.';\n @property({ type: String }) andLabel = 'and';\n @property({ type: String }) actionBannerLabel = '';\n\n @property({ type: Boolean }) moreActionsOpen = false;\n @property({ type: Array }) moreActionsOptions: ActionMenuItem[] = [];\n @property({ type: Boolean }) isFreeIaaS = false;\n @property({ type: String }) closeLabel = 'Close';\n @property({ type: String }) moreActionsLabel = 'More';\n\n @property({ type: String }) freeIaasLabel = 'Free IaaS';\n @property({ type: String }) freeIaasTitle = 'Free Infrastructure';\n @property({ type: String }) freeIaasDesc = 'This environment uses free infrastructure.';\n @property({ type: String }) haLabel = 'Highly Available';\n @property({ type: String }) haTitle = 'High Availability enabled';\n\n @property({ type: String }) role = '';\n @property({ type: Object }) roleTooltips: Record<string, RoleTooltipContent> = {};\n @property({ type: String }) roleTooltipColor = 'var(--axebow-primary)';\n\n private static readonly SIZE_CLASSES: Record<CardType, string> = {\n tenant: 'w-95 h-92.25',\n account: 'w-95 h-103.25',\n environment: 'w-95 h-101.5',\n runtime: 'w-95 h-92.5',\n };\n\n private _hasAttention(): boolean {\n const primary = this.tableStats.slice(0, 3).map((r) => r.title);\n return this.tableStats.some((s) => primary.includes(s.title) && s.percentage >= this.attentionThreshold);\n }\n\n render() {\n const isRuntime = this.cardType === 'runtime';\n\n const showWarning = !this.isPlainRole && this.showWarningBanner;\n const showAttention = !this.isPlainRole && !showWarning && this.showActionBanner && this._hasAttention();\n const showAction = !this.isPlainRole && !showWarning && this.showActionBanner && !this._hasAttention();\n const showBanner = showWarning || showAttention || showAction;\n\n return html`\n <div\n class=\"${AxebowBaseCard.SIZE_CLASSES[this.cardType]} bg-(--axebow-white) rounded-lg px-2 pt-2 pb-4 flex flex-col justify-between gap-2 box-border ${isRuntime ? 'border-t-4' : ''} transition-shadow duration-200 ease-in-out hover:shadow-[0_4px_12px_0_rgba(13,24,33,0.08)] ${this.isDeleting ? 'pointer-events-none cursor-not-allowed grayscale' : ''}\"\n style=${isRuntime ? `border-top-color:${this.borderColor};` : ''}\n ?inert=${this.isDeleting}\n >\n <div class=\"flex flex-col gap-2\">\n <axebow-card-header\n .cardType=${this.cardType}\n .logoSrc=${this.logoSrc}\n .tenantOrAccount=${this.tenantOrAccount}\n .name=${this.name}\n .badge=${this.badge}\n .subtitle=${this.subtitle}\n .revisions=${this.revisions}\n .displayedRevision=${this.displayedRevision}\n .freeIaasLabel=${this.freeIaasLabel}\n .freeIaasTitle=${this.freeIaasTitle}\n .freeIaasDesc=${this.freeIaasDesc}\n .haLabel=${this.haLabel}\n .haTitle=${this.haTitle}\n .role=${this.role}\n .roleTooltips=${this.roleTooltips}\n .roleTooltipColor=${this.roleTooltipColor}\n @revision-change=${(e: CustomEvent) =>\n this.dispatchEvent(new CustomEvent('revision-change', { detail: e.detail, bubbles: true, composed: true }))}\n >\n <slot slot=\"subtitle-tooltip\" name=\"subtitle-tooltip\"></slot>\n </axebow-card-header>\n\n <div class=\"w-full px-2 flex flex-col gap-2\">\n ${isRuntime\n ? html`\n <div class=\"flex flex-row justify-between items-center min-h-10 max-h-10 overflow-hidden\">\n <span class=\"deploy-time text-(--axebow-secondary)\"><slot name=\"time-elapsed\"></slot></span>\n ${this.isDeployed\n ? html`<span class=\"text-(--axebow-secondary) border-2 border-(--axebow-secondary) rounded-lg py-0.5 px-1.5 whitespace-nowrap text-xs\">${this.deployedLabel}</span>`\n : ''}\n </div>\n `\n : html`\n <axebow-card-stats-row\n .stats=${this.mainStats}\n .cardType=${this.cardType}\n @stat-label-click=${(e: CustomEvent) =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('stat-label-click', { detail: e.detail, bubbles: true, composed: true }))}\n ></axebow-card-stats-row>\n `}\n\n <div class=\"flex flex-col w-full h-full\">\n <div class=\"w-full border border-(--axebow-light-gray) box-border ${showBanner ? 'rounded-t-md' : 'rounded-md'}\">\n ${isRuntime\n ? html`\n <axebow-card-table-header\n .opened=${this.filterOpened}\n .filterDisplayText=${this.filterDisplayText}\n .allLabel=${this.allLabel}\n .attentionLabel=${this.attentionLabel}\n .showAttention=${this.showAttention}\n .filterRoles=${this.filterRoles}\n @toggle-open=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('toggle-filter', { bubbles: true, composed: true }))}\n @filter-change=${(e: CustomEvent) =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('filter-change', { detail: e.detail, bubbles: true, composed: true }))}\n ></axebow-card-table-header>\n `\n : html`\n <axebow-card-filter\n .items=${this.filterItems}\n .selected=${this.selected}\n .emptyLabel=${this.emptyLabel}\n .emptyActionLabel=${this.emptyActionLabel}\n .attentionLabel=${this.attentionLabel}\n .showAttention=${this.showAttention}\n .opened=${this.filterOpened}\n .isPlainRole=${this.isPlainRole}\n .isDisabled=${this.isDeleting || this.isDisabled}\n @filter-select=${(e: CustomEvent) =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('filter-select', { detail: e.detail, bubbles: true, composed: true }))}\n @toggle-open=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('toggle-filter', { bubbles: true, composed: true }))}\n @empty-action-click=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('empty-action-click', { bubbles: true, composed: true }))}\n ></axebow-card-filter>\n `}\n\n <axebow-card-resource-table\n .rows=${this.tableStats}\n .attentionThreshold=${this.attentionThreshold}\n ></axebow-card-resource-table>\n </div>\n\n <div class=\"h-6.5 box-border ${showBanner ? 'border-x border-b border-(--axebow-light-gray) rounded-b-md overflow-hidden' : ''}\">\n ${showWarning\n ? html`<axebow-card-attention-banner\n .invalidCredentials=${true}\n .isPlainRole=${this.isPlainRole}\n .manageLabel=${this.manageLabel}\n .askOwnerLabel=${this.askOwnerLabel}\n .invalidCredsLabel=${this.invalidCredsLabel}\n .limitReachedLabel=${this.limitReachedLabel}\n .andLabel=${this.andLabel}\n @manage-click=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('manage-click', { bubbles: true, composed: true }))}\n ></axebow-card-attention-banner>`\n : showAttention\n ? html`<axebow-card-attention-banner\n .cardType=${this.cardType}\n .tableStats=${this.tableStats}\n .threshold=${this.attentionThreshold}\n .isPlainRole=${this.isPlainRole}\n .manageLabel=${this.manageLabel}\n .askOwnerLabel=${this.askOwnerLabel}\n .invalidCredsLabel=${this.invalidCredsLabel}\n .limitReachedLabel=${this.limitReachedLabel}\n .andLabel=${this.andLabel}\n @manage-click=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('manage-click', { bubbles: true, composed: true }))}\n ></axebow-card-attention-banner>`\n : showAction\n ? html`<axebow-card-action-banner\n .label=${this.actionBannerLabel}\n @action-click=${() =>\n !this.isDeleting && this.dispatchEvent(new CustomEvent('action-click', { bubbles: true, composed: true }))}\n ></axebow-card-action-banner>`\n : ''}\n </div>\n </div>\n\n <slot name=\"extra-features\"></slot>\n </div>\n </div>\n\n <axebow-card-footer\n class=\"mb-1 pl-2\"\n .isFreeIaaS=${this.isFreeIaaS}\n .isPlainRole=${this.isPlainRole}\n .statusCode=${isRuntime ? this.statusCode : ''}\n .statusMessage=${isRuntime ? this.statusMessage : ''}\n .borderColor=${this.borderColor}\n .showSpinner=${isRuntime && this.borderColor === 'var(--axebow-gray)'}\n .moreActionsOpen=${this.moreActionsOpen}\n .moreActionsOptions=${isRuntime ? [] : this.moreActionsOptions}\n .closeLabel=${this.closeLabel}\n .moreActionsLabel=${this.moreActionsLabel}\n .actionLabel=${isRuntime ? this.serviceDetailLabel : ''}\n @more-actions-toggled=${(e: CustomEvent) =>\n this.dispatchEvent(new CustomEvent('more-actions-toggled', { detail: e.detail, bubbles: true, composed: true }))}\n @footer-action-click=${() =>\n this.dispatchEvent(new CustomEvent('service-detail-click', { bubbles: true, composed: true }))}\n >\n <slot name=\"status-footer\"></slot>\n </axebow-card-footer>\n\n <slot name=\"dialogs\"></slot>\n </div>\n `;\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kumori/aurora-wui-components",
3
- "version": "0.0.33",
3
+ "version": "0.0.35",
4
4
  "description": "Aurora web component library",
5
5
  "license": "ISC",
6
6
  "type": "module",