@design.estate/dees-catalog 3.51.0 → 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 +2374 -2188
  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 +10 -0
  4. package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +35 -8
  5. package/dist_ts_web/elements/00group-chart/dees-chart-area/styles.js +41 -24
  6. package/dist_ts_web/elements/00group-chart/dees-chart-area/template.js +17 -4
  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 +2374 -2188
  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 +29 -6
  41. package/ts_web/elements/00group-chart/dees-chart-area/styles.ts +40 -23
  42. package/ts_web/elements/00group-chart/dees-chart-area/template.ts +16 -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.0",
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.0',
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;
@@ -33,6 +34,9 @@ export class DeesChartArea extends DeesElement {
33
34
  @state()
34
35
  accessor chart: IChartApi | null = null;
35
36
 
37
+ @state()
38
+ accessor seriesStats: Array<{ name: string; latest: number; min: number; max: number; avg: number; color: string }> = [];
39
+
36
40
  @property()
37
41
  accessor label: string = 'Untitled Chart';
38
42
 
@@ -163,8 +167,8 @@ export class DeesChartArea extends DeesElement {
163
167
  attributionLogo: false,
164
168
  },
165
169
  grid: {
166
- vertLines: { visible: false },
167
- horzLines: { color: isDark ? 'hsl(0 0% 14.9%)' : 'hsl(0 0% 94%)' },
170
+ vertLines: { color: isDark ? 'hsl(0 0% 8.5%)' : 'hsl(0 0% 95.5%)' },
171
+ horzLines: { color: isDark ? 'hsl(0 0% 8.5%)' : 'hsl(0 0% 95.5%)' },
168
172
  },
169
173
  } as any);
170
174
 
@@ -172,7 +176,7 @@ export class DeesChartArea extends DeesElement {
172
176
  for (const [, api] of this.seriesApis) {
173
177
  const color = colors[idx % colors.length];
174
178
  api.applyOptions({
175
- topColor: this.hslToRgba(color, isDark ? 0.2 : 0.3),
179
+ topColor: this.hslToRgba(color, isDark ? 0.4 : 0.5),
176
180
  bottomColor: this.hslToRgba(color, 0),
177
181
  lineColor: color,
178
182
  });
@@ -194,7 +198,7 @@ export class DeesChartArea extends DeesElement {
194
198
  chartSeries.forEach((s, index) => {
195
199
  const color = colors[index % colors.length];
196
200
  const api = this.chart!.addSeries(this.lcBundle!.AreaSeries, {
197
- topColor: this.hslToRgba(color, isDark ? 0.2 : 0.3),
201
+ topColor: this.hslToRgba(color, isDark ? 0.4 : 0.5),
198
202
  bottomColor: this.hslToRgba(color, 0),
199
203
  lineColor: color,
200
204
  lineWidth: 2,
@@ -218,6 +222,23 @@ export class DeesChartArea extends DeesElement {
218
222
 
219
223
  this.seriesApis.set(s.name || `series-${index}`, api);
220
224
  });
225
+ this.computeStats(chartSeries);
226
+ }
227
+
228
+ private computeStats(chartSeries: ChartSeriesConfig) {
229
+ const isDark = !this.goBright;
230
+ const colors = this.getSeriesColors(isDark);
231
+ this.seriesStats = chartSeries.map((s, index) => {
232
+ const values = s.data.map(d => d.y);
233
+ if (values.length === 0) {
234
+ return { name: s.name || `series-${index}`, latest: 0, min: 0, max: 0, avg: 0, color: colors[index % colors.length] };
235
+ }
236
+ const latest = values[values.length - 1];
237
+ const min = Math.min(...values);
238
+ const max = Math.max(...values);
239
+ const avg = Math.round((values.reduce((sum, v) => sum + v, 0) / values.length) * 100) / 100;
240
+ return { name: s.name || `series-${index}`, latest, min, max, avg, color: colors[index % colors.length] };
241
+ });
221
242
  }
222
243
 
223
244
  private updatePriceLines(name: string, api: ISeriesApi<any>, data: Array<{ x: any; y: number }>, color: string) {
@@ -348,8 +369,8 @@ export class DeesChartArea extends DeesElement {
348
369
  attributionLogo: false,
349
370
  },
350
371
  grid: {
351
- vertLines: { visible: false },
352
- horzLines: { color: isDark ? 'hsl(0 0% 14.9%)' : 'hsl(0 0% 94%)' },
372
+ vertLines: { color: isDark ? 'hsl(0 0% 8.5%)' : 'hsl(0 0% 95.5%)' },
373
+ horzLines: { color: isDark ? 'hsl(0 0% 8.5%)' : 'hsl(0 0% 95.5%)' },
353
374
  },
354
375
  rightPriceScale: {
355
376
  borderVisible: false,
@@ -468,6 +489,7 @@ export class DeesChartArea extends DeesElement {
468
489
  api.setData(this.convertDataToLC(filtered));
469
490
  this.updatePriceLines(name, api, filtered, colors[index % colors.length]);
470
491
  });
492
+ this.computeStats(newSeries);
471
493
  }
472
494
 
473
495
  try {
@@ -505,6 +527,7 @@ export class DeesChartArea extends DeesElement {
505
527
  api.setData(this.convertDataToLC(s.data));
506
528
  this.updatePriceLines(name, api, s.data, colors[index % colors.length]);
507
529
  });
530
+ this.computeStats(newSeries);
508
531
  }
509
532
  }
510
533
  } catch (error) {
@@ -4,38 +4,55 @@ 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;
13
+ dees-tile {
14
+ height: 100%;
19
15
  }
20
- .chartTitle {
16
+ .chartContainer {
21
17
  position: absolute;
22
- top: 0;
23
- left: 0;
18
+ inset: 0;
19
+ }
20
+ .statsBar {
21
+ height: 32px;
22
+ padding: 0 16px;
23
+ display: flex;
24
+ align-items: center;
25
+ gap: 24px;
24
26
  width: 100%;
25
- text-align: left;
26
- padding: 16px 24px;
27
- z-index: 10;
28
- font-size: 14px;
27
+ box-sizing: border-box;
28
+ }
29
+ .statsSeries {
30
+ display: flex;
31
+ align-items: center;
32
+ gap: 8px;
33
+ }
34
+ .statsSeries + .statsSeries {
35
+ padding-left: 24px;
36
+ border-left: 1px solid ${cssManager.bdTheme('hsl(0 0% 89.8%)', 'hsl(0 0% 14.9%)')};
37
+ }
38
+ .statsColor {
39
+ width: 8px;
40
+ height: 8px;
41
+ border-radius: 2px;
42
+ flex-shrink: 0;
43
+ }
44
+ .statsName {
29
45
  font-weight: 500;
30
- letter-spacing: -0.01em;
31
- color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 63.9%)')};
46
+ font-size: 11px;
47
+ color: ${cssManager.bdTheme('hsl(0 0% 20%)', 'hsl(0 0% 80%)')};
48
+ margin-right: 4px;
32
49
  }
33
- .chartContainer {
34
- position: absolute;
35
- top: 44px;
36
- left: 0;
37
- bottom: 0;
38
- right: 0;
50
+ .statsItem {
51
+ font-size: 11px;
52
+ color: ${cssManager.bdTheme('hsl(0 0% 45%)', 'hsl(0 0% 55%)')};
53
+ }
54
+ .statsItem strong {
55
+ color: ${cssManager.bdTheme('hsl(0 0% 15%)', 'hsl(0 0% 90%)')};
39
56
  }
40
57
  .lw-tooltip {
41
58
  position: absolute;
@@ -3,10 +3,22 @@ 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
- </div>
8
+ ${component.seriesStats.length > 0 ? html`
9
+ <div slot="footer" class="statsBar">
10
+ ${component.seriesStats.map(s => html`
11
+ <div class="statsSeries">
12
+ <span class="statsColor" style="background:${s.color}"></span>
13
+ <span class="statsName">${s.name}</span>
14
+ <span class="statsItem">latest <strong>${component.yAxisFormatter(s.latest)}</strong></span>
15
+ <span class="statsItem">min <strong>${component.yAxisFormatter(s.min)}</strong></span>
16
+ <span class="statsItem">max <strong>${component.yAxisFormatter(s.max)}</strong></span>
17
+ <span class="statsItem">avg <strong>${component.yAxisFormatter(s.avg)}</strong></span>
18
+ </div>
19
+ `)}
20
+ </div>
21
+ ` : ''}
22
+ </dees-tile>
10
23
  `;
11
-
12
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