diff --git a/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts b/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts index 09b3422..c7866b2 100644 --- a/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts +++ b/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts @@ -18,6 +18,7 @@ import '../../00group-utility/dees-icon/dees-icon.js'; import '../../00group-overlay/dees-contextmenu/dees-contextmenu.js'; import '../../00group-button/dees-button/dees-button.js'; import { themeDefaultStyles } from '../../00theme.js'; +import '../../00group-layout/dees-tile/dees-tile.js'; declare global { interface HTMLElementTagNameMap { @@ -179,22 +180,12 @@ export class DeesStatsGrid extends DeesElement { width: 100%; } - /* Tile Base Styles */ - .stats-tile { - background: ${cssManager.bdTheme('#ffffff', '#09090b')}; - border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')}; - border-radius: var(--border-radius); - padding: var(--tile-padding); + /* Tile Base Styles — frame provided by dees-tile, hover via ::part */ + .stats-tile::part(outer) { transition: all var(--transition-duration) ease; - cursor: default; - position: relative; - overflow: hidden; - display: flex; - flex-direction: column; } - .stats-tile:hover { - background: ${cssManager.bdTheme('#fafafa', '#0d0d0d')}; + .stats-tile:hover::part(outer) { border-color: ${cssManager.bdTheme('#d0d0d0', '#2a2a2a')}; } @@ -202,17 +193,18 @@ export class DeesStatsGrid extends DeesElement { cursor: pointer; } - .stats-tile.clickable:hover { + .stats-tile.clickable:hover::part(outer) { transform: translateY(-1px); box-shadow: 0 2px 6px ${cssManager.bdTheme('rgba(0,0,0,0.03)', 'rgba(0,0,0,0.15)')}; } - /* Tile Header */ + /* Tile Header — slotted into dees-tile header */ .tile-header { display: flex; justify-content: space-between; - align-items: flex-start; - margin-bottom: var(--header-spacing); + align-items: center; + padding: 0 12px; + height: 28px; flex-shrink: 0; } @@ -232,12 +224,12 @@ export class DeesStatsGrid extends DeesElement { flex-shrink: 0; } - /* Tile Content */ + /* Tile Content — slotted into dees-tile content area */ .tile-content { - min-height: var(--content-min-height); display: flex; flex-direction: column; - flex: 1; + padding: 12px; + min-height: var(--content-min-height); } .tile-value { @@ -261,9 +253,10 @@ export class DeesStatsGrid extends DeesElement { .tile-description { font-size: var(--label-font-size); color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')}; - margin-top: var(--description-spacing); letter-spacing: -0.01em; - flex-shrink: 0; + padding: 0 12px; + height: 24px; + line-height: 24px; } /* Gauge Styles */ @@ -882,27 +875,27 @@ export class DeesStatsGrid extends DeesElement { const columnSpan = tile.columnSpan && tile.columnSpan > 1 ? tile.columnSpan : undefined; return html` -
this.handleTileAction(tile.actions![0], tile) : undefined} @contextmenu=${hasActions ? (e: MouseEvent) => this.showContextMenu(e, tile) : undefined} > -
+

${tile.title}

${tile.icon ? html` ` : ''}
- +
${this.renderTileContent(tile)}
- + ${tile.description && tile.type !== 'trend' ? html` -
${tile.description}
+
${tile.description}
` : ''} -
+ `; } diff --git a/ts_web/elements/00group-layout/dees-tile/dees-tile.ts b/ts_web/elements/00group-layout/dees-tile/dees-tile.ts index eb75252..a1dc1ff 100644 --- a/ts_web/elements/00group-layout/dees-tile/dees-tile.ts +++ b/ts_web/elements/00group-layout/dees-tile/dees-tile.ts @@ -116,16 +116,16 @@ export class DeesTile extends DeesElement { public render(): TemplateResult { return html` -
-
+
+
${this.heading}
-
+
-