@design.estate/dees-catalog 3.51.1 → 3.51.2

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.
Files changed (58) hide show
  1. package/dist_bundle/bundle.js +2309 -2195
  2. package/dist_ts_web/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/elements/00group-chart/dees-chart-area/component.d.ts +1 -0
  4. package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +2 -1
  5. package/dist_ts_web/elements/00group-chart/dees-chart-area/styles.js +14 -34
  6. package/dist_ts_web/elements/00group-chart/dees-chart-area/template.js +4 -5
  7. package/dist_ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.d.ts +1 -0
  8. package/dist_ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.js +16 -24
  9. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.d.ts +1 -0
  10. package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js +14 -28
  11. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.d.ts +1 -0
  12. package/dist_ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.js +52 -51
  13. package/dist_ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.d.ts +1 -0
  14. package/dist_ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.js +22 -29
  15. package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.d.ts +1 -0
  16. package/dist_ts_web/elements/00group-dataview/dees-table/dees-table.js +6 -6
  17. package/dist_ts_web/elements/00group-dataview/dees-table/styles.js +51 -44
  18. package/dist_ts_web/elements/00group-input/dees-input-code/dees-input-code.d.ts +1 -0
  19. package/dist_ts_web/elements/00group-input/dees-input-code/dees-input-code.js +7 -14
  20. package/dist_ts_web/elements/00group-input/dees-input-richtext/component.d.ts +1 -0
  21. package/dist_ts_web/elements/00group-input/dees-input-richtext/component.js +2 -1
  22. package/dist_ts_web/elements/00group-input/dees-input-richtext/styles.js +12 -20
  23. package/dist_ts_web/elements/00group-input/dees-input-richtext/template.js +5 -5
  24. package/dist_ts_web/elements/00group-layout/dees-tile/dees-tile.d.ts +34 -0
  25. package/dist_ts_web/elements/00group-layout/dees-tile/dees-tile.demo.d.ts +2 -0
  26. package/dist_ts_web/elements/00group-layout/dees-tile/dees-tile.demo.js +67 -0
  27. package/dist_ts_web/elements/00group-layout/dees-tile/dees-tile.js +187 -0
  28. package/dist_ts_web/elements/00group-layout/dees-tile/index.d.ts +1 -0
  29. package/dist_ts_web/elements/00group-layout/dees-tile/index.js +2 -0
  30. package/dist_ts_web/elements/00group-layout/index.d.ts +1 -0
  31. package/dist_ts_web/elements/00group-layout/index.js +2 -1
  32. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.d.ts +1 -0
  33. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.js +82 -74
  34. package/dist_ts_web/elements/00group-workspace/dees-workspace-terminal-preview/dees-workspace-terminal-preview.d.ts +1 -0
  35. package/dist_ts_web/elements/00group-workspace/dees-workspace-terminal-preview/dees-workspace-terminal-preview.js +8 -15
  36. package/dist_watch/bundle.js +2309 -2195
  37. package/dist_watch/bundle.js.map +4 -4
  38. package/package.json +1 -1
  39. package/ts_web/00_commitinfo_data.ts +1 -1
  40. package/ts_web/elements/00group-chart/dees-chart-area/component.ts +1 -0
  41. package/ts_web/elements/00group-chart/dees-chart-area/styles.ts +13 -33
  42. package/ts_web/elements/00group-chart/dees-chart-area/template.ts +3 -4
  43. package/ts_web/elements/00group-chart/dees-chart-log/dees-chart-log.ts +15 -23
  44. package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +13 -27
  45. package/ts_web/elements/00group-dataview/dees-dataview-statusobject/dees-dataview-statusobject.ts +51 -50
  46. package/ts_web/elements/00group-dataview/dees-statsgrid/dees-statsgrid.ts +21 -28
  47. package/ts_web/elements/00group-dataview/dees-table/dees-table.ts +5 -5
  48. package/ts_web/elements/00group-dataview/dees-table/styles.ts +50 -43
  49. package/ts_web/elements/00group-input/dees-input-code/dees-input-code.ts +6 -13
  50. package/ts_web/elements/00group-input/dees-input-richtext/component.ts +1 -0
  51. package/ts_web/elements/00group-input/dees-input-richtext/styles.ts +11 -19
  52. package/ts_web/elements/00group-input/dees-input-richtext/template.ts +5 -5
  53. package/ts_web/elements/00group-layout/dees-tile/dees-tile.demo.ts +67 -0
  54. package/ts_web/elements/00group-layout/dees-tile/dees-tile.ts +139 -0
  55. package/ts_web/elements/00group-layout/dees-tile/index.ts +1 -0
  56. package/ts_web/elements/00group-layout/index.ts +1 -0
  57. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.ts +92 -84
  58. package/ts_web/elements/00group-workspace/dees-workspace-terminal-preview/dees-workspace-terminal-preview.ts +7 -14
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-catalog",
3
- "version": "3.51.1",
3
+ "version": "3.51.2",
4
4
  "private": false,
5
5
  "description": "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.",
6
6
  "main": "dist_ts_web/index.js",
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '3.51.1',
6
+ version: '3.51.2',
7
7
  description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
8
8
  }
@@ -13,6 +13,7 @@ import { renderChartArea } from './template.js';
13
13
 
14
14
  import type { IChartApi, ISeriesApi, UTCTimestamp, MouseEventParams } from 'lightweight-charts';
15
15
  import { DeesServiceLibLoader, type ILightweightChartsBundle } from '../../../services/index.js';
16
+ import '../../00group-layout/dees-tile/dees-tile.js';
16
17
 
17
18
  export type ChartSeriesConfig = {
18
19
  name?: string;
@@ -4,52 +4,27 @@ export const chartAreaStyles = [
4
4
  cssManager.defaultStyles,
5
5
  css`
6
6
  :host {
7
+ display: block;
8
+ height: 400px;
7
9
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
8
10
  color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};
9
11
  font-size: 14px;
10
12
  }
11
- .mainbox {
12
- position: relative;
13
- width: 100%;
14
- height: 400px;
15
- background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};
16
- border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
17
- border-radius: 8px;
18
- overflow: hidden;
19
- }
20
- .chartTitle {
21
- position: absolute;
22
- top: 0;
23
- left: 0;
24
- width: 100%;
25
- text-align: left;
26
- padding: 16px 24px;
27
- z-index: 10;
28
- font-size: 14px;
29
- font-weight: 500;
30
- letter-spacing: -0.01em;
31
- color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 63.9%)')};
13
+ dees-tile {
14
+ height: 100%;
32
15
  }
33
16
  .chartContainer {
34
17
  position: absolute;
35
- top: 44px;
36
- left: 0;
37
- bottom: 32px;
38
- right: 0;
18
+ inset: 0;
39
19
  }
40
20
  .statsBar {
41
- position: absolute;
42
- bottom: 0;
43
- left: 0;
44
- right: 0;
45
21
  height: 32px;
22
+ padding: 0 16px;
46
23
  display: flex;
47
24
  align-items: center;
48
25
  gap: 24px;
49
- padding: 0 16px;
50
- border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
51
- font-size: 11px;
52
- color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 55%)')};
26
+ width: 100%;
27
+ box-sizing: border-box;
53
28
  }
54
29
  .statsSeries {
55
30
  display: flex;
@@ -68,9 +43,14 @@ export const chartAreaStyles = [
68
43
  }
69
44
  .statsName {
70
45
  font-weight: 500;
46
+ font-size: 11px;
71
47
  color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};
72
48
  margin-right: 4px;
73
49
  }
50
+ .statsItem {
51
+ font-size: 11px;
52
+ color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 55%)')};
53
+ }
74
54
  .statsItem strong {
75
55
  color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};
76
56
  }
@@ -3,11 +3,10 @@ import type { DeesChartArea } from './component.js';
3
3
 
4
4
  export const renderChartArea = (component: DeesChartArea): TemplateResult => {
5
5
  return html`
6
- <div class="mainbox">
7
- <div class="chartTitle">${component.label}</div>
6
+ <dees-tile .heading=${component.label}>
8
7
  <div class="chartContainer"></div>
9
8
  ${component.seriesStats.length > 0 ? html`
10
- <div class="statsBar">
9
+ <div slot="footer" class="statsBar">
11
10
  ${component.seriesStats.map(s => html`
12
11
  <div class="statsSeries">
13
12
  <span class="statsColor" style="background:${s.color}"></span>
@@ -20,6 +19,6 @@ export const renderChartArea = (component: DeesChartArea): TemplateResult => {
20
19
  `)}
21
20
  </div>
22
21
  ` : ''}
23
- </div>
22
+ </dees-tile>
24
23
  `;
25
24
  };
@@ -13,6 +13,7 @@ import * as domtools from '@design.estate/dees-domtools';
13
13
  import { demoFunc } from './dees-chart-log.demo.js';
14
14
  import { themeDefaultStyles } from '../../00theme.js';
15
15
  import { DeesServiceLibLoader, type IXtermSearchAddon, CDN_BASE, CDN_VERSIONS } from '../../../services/index.js';
16
+ import '../../00group-layout/dees-tile/dees-tile.js';
16
17
 
17
18
  // Type imports (no runtime overhead)
18
19
  import type { Terminal } from 'xterm';
@@ -103,30 +104,20 @@ export class DeesChartLog extends DeesElement {
103
104
  css`
104
105
  :host {
105
106
  display: block;
107
+ height: 400px;
106
108
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
107
109
  color: ${cssManager.bdTheme('hsl(0 0% 3.9%)', 'hsl(0 0% 98%)')};
108
110
  }
109
111
 
110
- .mainbox {
111
- position: relative;
112
- width: 100%;
113
- height: 400px;
114
- background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};
115
- border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
116
- border-radius: 8px;
117
- display: flex;
118
- flex-direction: column;
119
- overflow: hidden;
112
+ dees-tile {
113
+ height: 100%;
120
114
  }
121
115
 
122
116
  .header {
123
- background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};
124
117
  padding: 8px 12px;
125
- border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
126
118
  display: flex;
127
119
  align-items: center;
128
120
  gap: 12px;
129
- flex-shrink: 0;
130
121
  flex-wrap: wrap;
131
122
  }
132
123
 
@@ -241,10 +232,10 @@ export class DeesChartLog extends DeesElement {
241
232
  }
242
233
 
243
234
  .terminal-container {
244
- flex: 1;
235
+ position: absolute;
236
+ inset: 0;
245
237
  overflow: hidden;
246
238
  padding: 8px;
247
- background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};
248
239
  }
249
240
 
250
241
  .terminal-container .xterm {
@@ -262,14 +253,15 @@ export class DeesChartLog extends DeesElement {
262
253
  }
263
254
 
264
255
  .metrics-bar {
265
- background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};
266
- border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
267
- padding: 6px 12px;
256
+ height: 32px;
257
+ padding: 0 12px;
268
258
  display: flex;
259
+ align-items: center;
269
260
  gap: 16px;
270
261
  font-size: 11px;
271
262
  font-weight: 500;
272
- flex-shrink: 0;
263
+ width: 100%;
264
+ box-sizing: border-box;
273
265
  }
274
266
 
275
267
  .metric {
@@ -323,8 +315,8 @@ export class DeesChartLog extends DeesElement {
323
315
 
324
316
  public render(): TemplateResult {
325
317
  return html`
326
- <div class="mainbox">
327
- <div class="header">
318
+ <dees-tile .heading=${this.label}>
319
+ <div slot="header" class="header">
328
320
  <div class="title">${this.label}</div>
329
321
  <div class="search-box">
330
322
  <input
@@ -367,7 +359,7 @@ export class DeesChartLog extends DeesElement {
367
359
 
368
360
  ${this.showMetrics
369
361
  ? html`
370
- <div class="metrics-bar">
362
+ <div slot="footer" class="metrics-bar">
371
363
  <span class="metric error">errors: ${this.metrics.error}</span>
372
364
  <span class="metric warn">warns: ${this.metrics.warn}</span>
373
365
  <span class="metric info">info: ${this.metrics.info}</span>
@@ -377,7 +369,7 @@ export class DeesChartLog extends DeesElement {
377
369
  </div>
378
370
  `
379
371
  : ''}
380
- </div>
372
+ </dees-tile>
381
373
  `;
382
374
  }
383
375
 
@@ -17,6 +17,7 @@ import * as smartstring from '@push.rocks/smartstring';
17
17
  import * as domtools from '@design.estate/dees-domtools';
18
18
  import { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';
19
19
  import { DeesServiceLibLoader } from '../../../services/index.js';
20
+ import '../../00group-layout/dees-tile/dees-tile.js';
20
21
 
21
22
  declare global {
22
23
  interface HTMLElementTagNameMap {
@@ -55,32 +56,20 @@ export class DeesDataviewCodebox extends DeesElement {
55
56
  height: 100%;
56
57
  box-sizing: border-box;
57
58
  }
58
- .mainbox {
59
- position: relative;
60
- color: ${cssManager.bdTheme('#09090b', '#fafafa')};
61
- border: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
62
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
63
- background: ${cssManager.bdTheme('#ffffff', '#09090b')};
64
- border-radius: 6px;
65
- overflow: hidden;
66
- display: flex;
67
- flex-direction: column;
59
+ dees-tile {
68
60
  height: 100%;
69
- box-sizing: border-box;
61
+ color: ${cssManager.bdTheme('#09090b', '#fafafa')};
70
62
  }
71
63
 
72
64
  .appbar {
73
- position: relative;
74
65
  color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
75
- background: ${cssManager.bdTheme('#f9fafb', '#18181b')};
76
- border-bottom: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
77
66
  height: 32px;
78
67
  display: flex;
79
68
  font-size: 13px;
80
69
  line-height: 32px;
81
70
  justify-content: center;
82
71
  align-items: center;
83
- flex-shrink: 0;
72
+ padding: 0 16px;
84
73
  }
85
74
 
86
75
  .appbar .fileName {
@@ -91,18 +80,16 @@ export class DeesDataviewCodebox extends DeesElement {
91
80
  }
92
81
 
93
82
  .bottomBar {
94
- position: relative;
95
83
  color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
96
- background: ${cssManager.bdTheme('#f9fafb', '#18181b')};
97
- border-top: 1px solid ${cssManager.bdTheme('#e5e7eb', '#27272a')};
98
84
  height: 28px;
99
- font-size: 12px;
85
+ font-size: 11px;
100
86
  line-height: 28px;
101
87
  display: flex;
102
88
  justify-content: flex-end;
103
- align-items: stretch;
104
- overflow: hidden;
105
- flex-shrink: 0;
89
+ align-items: center;
90
+ padding: 0 16px;
91
+ width: 100%;
92
+ box-sizing: border-box;
106
93
  }
107
94
 
108
95
  .spacesLabel {
@@ -201,8 +188,7 @@ export class DeesDataviewCodebox extends DeesElement {
201
188
  color: ${cssManager.bdTheme('#09090b', '#fafafa')};
202
189
  }
203
190
  </style>
204
- <div
205
- class="mainbox"
191
+ <dees-tile
206
192
  @contextmenu="${(eventArg: MouseEvent) => {
207
193
  DeesContextmenu.openContextMenuWithOptions(eventArg, [
208
194
  {
@@ -215,7 +201,7 @@ export class DeesDataviewCodebox extends DeesElement {
215
201
  ]);
216
202
  }}"
217
203
  >
218
- <div class="appbar">
204
+ <div slot="header" class="appbar">
219
205
  <div class="fileName">index.ts</div>
220
206
  </div>
221
207
  <div class="codegrid">
@@ -230,11 +216,11 @@ export class DeesDataviewCodebox extends DeesElement {
230
216
  </div>
231
217
  <pre><code></code></pre>
232
218
  </div>
233
- <div class="bottomBar">
219
+ <div slot="footer" class="bottomBar">
234
220
  <div class="spacesLabel">Spaces: 2</div>
235
221
  <div class="languageLabel">${this.progLang}</div>
236
222
  </div>
237
- </div>
223
+ </dees-tile>
238
224
  `;
239
225
  }
240
226
 
@@ -17,6 +17,7 @@ import {
17
17
  import * as tsclass from '@tsclass/tsclass';
18
18
  import { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';
19
19
  import { themeDefaultStyles } from '../../00theme.js';
20
+ import '../../00group-layout/dees-tile/dees-tile.js';
20
21
 
21
22
  declare global {
22
23
  interface HTMLElementTagNameMap {
@@ -40,35 +41,28 @@ export class DeesDataviewStatusobject extends DeesElement {
40
41
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
41
42
  }
42
43
 
43
- .mainbox {
44
- border-radius: 8px;
45
- background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 3.9%)')};
46
- border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
47
- box-shadow: 0 1px 3px 0 hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
48
- min-height: 48px;
44
+ dees-tile {
49
45
  color: ${cssManager.bdTheme('hsl(0 0% 9%)', 'hsl(0 0% 98%)')};
50
46
  cursor: default;
51
- overflow: hidden;
52
47
  }
53
48
 
54
49
  .heading {
55
- display: grid;
50
+ display: flex;
56
51
  align-items: center;
57
- grid-template-columns: 48px auto 100px;
58
- height: 56px;
52
+ gap: 8px;
53
+ height: 32px;
59
54
  padding: 0 16px;
60
- background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};
61
- border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
62
55
  }
63
56
 
64
57
  h1 {
65
58
  display: block;
66
- margin: 0px;
67
- padding: 0px 12px;
59
+ margin: 0;
60
+ padding: 0;
68
61
  font-size: 14px;
69
62
  font-weight: 500;
70
63
  letter-spacing: -0.01em;
71
- color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 93.9%)')};
64
+ color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 63.9%)')};
65
+ flex: 1;
72
66
  }
73
67
 
74
68
  .statusdot {
@@ -82,13 +76,13 @@ export class DeesDataviewStatusobject extends DeesElement {
82
76
  }
83
77
 
84
78
  .copyMain {
85
- font-size: 12px;
79
+ font-size: 11px;
86
80
  font-weight: 500;
87
81
  background: ${cssManager.bdTheme('hsl(0 0% 100%)', 'hsl(0 0% 14.9%)')};
88
82
  border: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
89
83
  text-align: center;
90
- padding: 6px 12px;
91
- border-radius: 6px;
84
+ padding: 4px 10px;
85
+ border-radius: 4px;
92
86
  color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};
93
87
  user-select: none;
94
88
  cursor: pointer;
@@ -122,63 +116,70 @@ export class DeesDataviewStatusobject extends DeesElement {
122
116
  }
123
117
 
124
118
  .detail {
125
- min-height: 60px;
119
+ display: flex;
126
120
  align-items: center;
127
- display: grid;
128
- grid-template-columns: 48px auto;
129
- border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 94%)', 'hsl(0 0% 14.9%)')};
130
- transition: background-color 0.15s ease;
121
+ gap: 10px;
122
+ height: 36px;
131
123
  padding: 0 16px;
124
+ border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 10%)')};
125
+ transition: background-color 0.15s ease;
132
126
  cursor: context-menu;
133
127
  }
134
128
 
129
+ .detail:last-child {
130
+ border-bottom: none;
131
+ }
132
+
135
133
  .detail:hover {
136
- background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};
134
+ background: ${cssManager.bdTheme('hsl(222.2 47.4% 51.2% / 0.04)', 'hsl(217.2 91.2% 59.8% / 0.06)')};
137
135
  }
138
136
 
139
- .detail:active {
140
- background: ${cssManager.bdTheme('hsl(0 0% 95%)', 'hsl(0 0% 9%)')};
137
+ .detail .statusdot {
138
+ margin: 0;
139
+ flex-shrink: 0;
141
140
  }
142
141
 
143
142
  .detail .detailsText {
144
- padding: 12px;
145
- word-break: break-all;
143
+ display: flex;
144
+ align-items: baseline;
145
+ flex: 1;
146
+ min-width: 0;
146
147
  }
147
148
 
148
149
  .detail .detailsText .label {
149
150
  font-size: 12px;
150
151
  font-weight: 500;
151
152
  color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};
152
- margin-bottom: 2px;
153
153
  letter-spacing: -0.01em;
154
+ white-space: nowrap;
155
+ flex-shrink: 0;
154
156
  }
155
157
 
156
158
  .detail .detailsText .value {
157
- font-size: 14px;
159
+ font-size: 13px;
158
160
  font-family: 'Intel One Mono', 'Geist Mono', monospace;
159
161
  color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};
160
- line-height: 1.5;
162
+ margin-left: auto;
163
+ text-align: right;
164
+ white-space: nowrap;
165
+ overflow: hidden;
166
+ text-overflow: ellipsis;
161
167
  }
162
168
 
163
169
  .bottomBar {
164
- position: relative;
165
170
  color: ${cssManager.bdTheme('hsl(0 0% 45.1%)', 'hsl(0 0% 63.9%)')};
166
- background: ${cssManager.bdTheme('hsl(0 0% 97%)', 'hsl(0 0% 7%)')};
167
- border-top: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
168
171
  height: 28px;
169
- font-size: 12px;
172
+ font-size: 11px;
170
173
  line-height: 28px;
171
174
  display: flex;
172
175
  justify-content: flex-end;
173
- align-items: stretch;
174
- overflow: hidden;
175
- flex-shrink: 0;
176
+ align-items: center;
177
+ padding: 0 16px;
178
+ width: 100%;
179
+ box-sizing: border-box;
176
180
  }
177
181
 
178
182
  .bottomBar .statusLabel {
179
- padding: 0 16px;
180
- display: flex;
181
- align-items: center;
182
183
  font-weight: 500;
183
184
  }
184
185
  `,
@@ -186,15 +187,15 @@ export class DeesDataviewStatusobject extends DeesElement {
186
187
 
187
188
  render(): TemplateResult {
188
189
  return html`
189
- <div class="mainbox">
190
- <div class="heading">
190
+ <dees-tile>
191
+ <div slot="header" class="heading">
191
192
  <div class="statusdot ${this.statusObject?.combinedStatus}"></div>
192
193
  <h1>${this.statusObject?.name || 'No status object assigned'}</h1>
193
194
  <div class="copyMain" @click=${this.handleCopyAsJson}>Copy JSON</div>
194
195
  </div>
195
196
  ${this.statusObject?.details?.map((detailArg) => {
196
197
  return html`
197
- <div
198
+ <div
198
199
  class="detail"
199
200
  @contextmenu=${(event: MouseEvent) => {
200
201
  event.preventDefault();
@@ -224,19 +225,19 @@ export class DeesDataviewStatusobject extends DeesElement {
224
225
  }}
225
226
  >
226
227
  <div class="statusdot ${detailArg.status}"></div>
227
- <div class="detailsText">
228
- <div class="label">${detailArg.name}</div>
229
- <div class="value">${detailArg.value}</div>
230
- </div>
228
+ <span class="detailsText">
229
+ <span class="label">${detailArg.name}</span>
230
+ <span class="value">${detailArg.value}</span>
231
+ </span>
231
232
  </div>
232
233
  `;
233
234
  })}
234
- <div class="bottomBar">
235
+ <div slot="footer" class="bottomBar">
235
236
  <div class="statusLabel">${this.statusObject?.lastUpdated
236
237
  ? `Last updated: ${new Date(this.statusObject.lastUpdated).toLocaleString()}`
237
238
  : ''}</div>
238
239
  </div>
239
- </div>
240
+ </dees-tile>
240
241
  `;
241
242
  }
242
243
 
@@ -18,6 +18,7 @@ import '../../00group-utility/dees-icon/dees-icon.js';
18
18
  import '../../00group-overlay/dees-contextmenu/dees-contextmenu.js';
19
19
  import '../../00group-button/dees-button/dees-button.js';
20
20
  import { themeDefaultStyles } from '../../00theme.js';
21
+ import '../../00group-layout/dees-tile/dees-tile.js';
21
22
 
22
23
  declare global {
23
24
  interface HTMLElementTagNameMap {
@@ -179,22 +180,12 @@ export class DeesStatsGrid extends DeesElement {
179
180
  width: 100%;
180
181
  }
181
182
 
182
- /* Tile Base Styles */
183
- .stats-tile {
184
- background: ${cssManager.bdTheme('#ffffff', '#09090b')};
185
- border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#202020')};
186
- border-radius: var(--border-radius);
187
- padding: var(--tile-padding);
183
+ /* Tile Base Styles — frame provided by dees-tile, hover via ::part */
184
+ .stats-tile::part(outer) {
188
185
  transition: all var(--transition-duration) ease;
189
- cursor: default;
190
- position: relative;
191
- overflow: hidden;
192
- display: flex;
193
- flex-direction: column;
194
186
  }
195
187
 
196
- .stats-tile:hover {
197
- background: ${cssManager.bdTheme('#fafafa', '#0d0d0d')};
188
+ .stats-tile:hover::part(outer) {
198
189
  border-color: ${cssManager.bdTheme('#d0d0d0', '#2a2a2a')};
199
190
  }
200
191
 
@@ -202,17 +193,18 @@ export class DeesStatsGrid extends DeesElement {
202
193
  cursor: pointer;
203
194
  }
204
195
 
205
- .stats-tile.clickable:hover {
196
+ .stats-tile.clickable:hover::part(outer) {
206
197
  transform: translateY(-1px);
207
198
  box-shadow: 0 2px 6px ${cssManager.bdTheme('rgba(0,0,0,0.03)', 'rgba(0,0,0,0.15)')};
208
199
  }
209
200
 
210
- /* Tile Header */
201
+ /* Tile Header — slotted into dees-tile header */
211
202
  .tile-header {
212
203
  display: flex;
213
204
  justify-content: space-between;
214
- align-items: flex-start;
215
- margin-bottom: var(--header-spacing);
205
+ align-items: center;
206
+ padding: 0 12px;
207
+ height: 28px;
216
208
  flex-shrink: 0;
217
209
  }
218
210
 
@@ -232,12 +224,12 @@ export class DeesStatsGrid extends DeesElement {
232
224
  flex-shrink: 0;
233
225
  }
234
226
 
235
- /* Tile Content */
227
+ /* Tile Content — slotted into dees-tile content area */
236
228
  .tile-content {
237
- min-height: var(--content-min-height);
238
229
  display: flex;
239
230
  flex-direction: column;
240
- flex: 1;
231
+ padding: 12px;
232
+ min-height: var(--content-min-height);
241
233
  }
242
234
 
243
235
  .tile-value {
@@ -261,9 +253,10 @@ export class DeesStatsGrid extends DeesElement {
261
253
  .tile-description {
262
254
  font-size: var(--label-font-size);
263
255
  color: ${cssManager.bdTheme('hsl(215.4 16.3% 56.9%)', 'hsl(215 20.2% 55.1%)')};
264
- margin-top: var(--description-spacing);
265
256
  letter-spacing: -0.01em;
266
- flex-shrink: 0;
257
+ padding: 0 12px;
258
+ height: 24px;
259
+ line-height: 24px;
267
260
  }
268
261
 
269
262
  /* Gauge Styles */
@@ -882,27 +875,27 @@ export class DeesStatsGrid extends DeesElement {
882
875
  const columnSpan = tile.columnSpan && tile.columnSpan > 1 ? tile.columnSpan : undefined;
883
876
 
884
877
  return html`
885
- <div
878
+ <dees-tile
886
879
  class="stats-tile ${clickable ? 'clickable' : ''}"
887
880
  style="${columnSpan ? `grid-column: span ${columnSpan}` : ''}"
888
881
  @click=${clickable ? () => this.handleTileAction(tile.actions![0], tile) : undefined}
889
882
  @contextmenu=${hasActions ? (e: MouseEvent) => this.showContextMenu(e, tile) : undefined}
890
883
  >
891
- <div class="tile-header">
884
+ <div slot="header" class="tile-header">
892
885
  <h3 class="tile-title">${tile.title}</h3>
893
886
  ${tile.icon ? html`
894
887
  <dees-icon class="tile-icon" .icon=${tile.icon} size="small"></dees-icon>
895
888
  ` : ''}
896
889
  </div>
897
-
890
+
898
891
  <div class="tile-content">
899
892
  ${this.renderTileContent(tile)}
900
893
  </div>
901
-
894
+
902
895
  ${tile.description && tile.type !== 'trend' ? html`
903
- <div class="tile-description">${tile.description}</div>
896
+ <div slot="footer" class="tile-description">${tile.description}</div>
904
897
  ` : ''}
905
- </div>
898
+ </dees-tile>
906
899
  `;
907
900
  }
908
901