@design.estate/dees-catalog 1.8.3 → 1.8.4

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.
@@ -1,5 +1,110 @@
1
1
  import { html } from '@design.estate/dees-element';
2
2
  export const demoFunc = () => {
3
+ let intervalId;
4
+ const serverSources = ['Server', 'Database', 'API', 'Auth', 'Cache', 'Queue', 'WebSocket', 'Scheduler'];
5
+ const logTemplates = {
6
+ debug: [
7
+ 'Loading module: {{module}}',
8
+ 'Cache hit for key: {{key}}',
9
+ 'SQL query executed in {{time}}ms',
10
+ 'Request headers: {{headers}}',
11
+ 'Environment variable loaded: {{var}}',
12
+ ],
13
+ info: [
14
+ 'Request received: {{method}} {{path}}',
15
+ 'User {{userId}} authenticated successfully',
16
+ 'Processing job {{jobId}} from queue',
17
+ 'Scheduled task "{{task}}" started',
18
+ 'WebSocket connection established from {{ip}}',
19
+ ],
20
+ warn: [
21
+ 'Slow query detected: {{query}} ({{time}}ms)',
22
+ 'Memory usage at {{percent}}%',
23
+ 'Rate limit approaching for IP {{ip}}',
24
+ 'Deprecated API endpoint called: {{endpoint}}',
25
+ 'Certificate expires in {{days}} days',
26
+ ],
27
+ error: [
28
+ 'Database connection lost: {{error}}',
29
+ 'Failed to process request: {{error}}',
30
+ 'Authentication failed for user {{user}}',
31
+ 'File not found: {{path}}',
32
+ 'Service unavailable: {{service}}',
33
+ ],
34
+ success: [
35
+ 'Server started successfully on port {{port}}',
36
+ 'Database migration completed',
37
+ 'Backup completed: {{size}} MB',
38
+ 'SSL certificate renewed',
39
+ 'Health check passed: all systems operational',
40
+ ],
41
+ };
42
+ const generateRandomLog = () => {
43
+ const logElement = window.__demoLogElement;
44
+ if (!logElement) {
45
+ console.warn('Log element not ready yet');
46
+ return;
47
+ }
48
+ const levels = ['debug', 'info', 'warn', 'error', 'success'];
49
+ const weights = [0.2, 0.5, 0.15, 0.1, 0.05]; // Weighted probability
50
+ const random = Math.random();
51
+ let cumulative = 0;
52
+ let level = 'info';
53
+ for (let i = 0; i < weights.length; i++) {
54
+ cumulative += weights[i];
55
+ if (random < cumulative) {
56
+ level = levels[i];
57
+ break;
58
+ }
59
+ }
60
+ const source = serverSources[Math.floor(Math.random() * serverSources.length)];
61
+ const templates = logTemplates[level];
62
+ const template = templates[Math.floor(Math.random() * templates.length)];
63
+ // Replace placeholders with random values
64
+ const message = template
65
+ .replace('{{module}}', ['express', 'mongoose', 'redis', 'socket.io'][Math.floor(Math.random() * 4)])
66
+ .replace('{{key}}', 'user:' + Math.floor(Math.random() * 1000))
67
+ .replace('{{time}}', String(Math.floor(Math.random() * 500) + 50))
68
+ .replace('{{headers}}', 'Content-Type: application/json, Authorization: Bearer ...')
69
+ .replace('{{var}}', ['NODE_ENV', 'DATABASE_URL', 'API_KEY', 'PORT'][Math.floor(Math.random() * 4)])
70
+ .replace('{{method}}', ['GET', 'POST', 'PUT', 'DELETE'][Math.floor(Math.random() * 4)])
71
+ .replace('{{path}}', ['/api/users', '/api/auth/login', '/api/products', '/health'][Math.floor(Math.random() * 4)])
72
+ .replace('{{userId}}', String(Math.floor(Math.random() * 10000)))
73
+ .replace('{{jobId}}', 'job_' + Math.random().toString(36).substring(2, 11))
74
+ .replace('{{task}}', ['cleanup', 'backup', 'report-generation', 'cache-refresh'][Math.floor(Math.random() * 4)])
75
+ .replace('{{ip}}', `192.168.1.${Math.floor(Math.random() * 255)}`)
76
+ .replace('{{query}}', 'SELECT * FROM users WHERE ...')
77
+ .replace('{{percent}}', String(Math.floor(Math.random() * 30) + 70))
78
+ .replace('{{endpoint}}', '/api/v1/legacy')
79
+ .replace('{{days}}', String(Math.floor(Math.random() * 30) + 1))
80
+ .replace('{{error}}', ['ECONNREFUSED', 'ETIMEDOUT', 'ENOTFOUND'][Math.floor(Math.random() * 3)])
81
+ .replace('{{user}}', 'user_' + Math.floor(Math.random() * 1000))
82
+ .replace('{{service}}', ['Redis', 'MongoDB', 'ElasticSearch'][Math.floor(Math.random() * 3)])
83
+ .replace('{{port}}', String(3000 + Math.floor(Math.random() * 10)))
84
+ .replace('{{size}}', String(Math.floor(Math.random() * 500) + 100));
85
+ logElement.addLog(level, message, source);
86
+ };
87
+ const startSimulation = () => {
88
+ if (!intervalId) {
89
+ // Generate logs at random intervals between 500ms and 2500ms
90
+ const scheduleNext = () => {
91
+ generateRandomLog();
92
+ const nextDelay = Math.random() * 2000 + 500;
93
+ intervalId = window.setTimeout(() => {
94
+ if (intervalId) {
95
+ scheduleNext();
96
+ }
97
+ }, nextDelay);
98
+ };
99
+ scheduleNext();
100
+ }
101
+ };
102
+ const stopSimulation = () => {
103
+ if (intervalId) {
104
+ window.clearTimeout(intervalId);
105
+ intervalId = null;
106
+ }
107
+ };
3
108
  return html `
4
109
  <style>
5
110
  .demoBox {
@@ -8,13 +113,33 @@ export const demoFunc = () => {
8
113
  height: 100%;
9
114
  width: 100%;
10
115
  padding: 40px;
116
+ box-sizing: border-box;
117
+ display: flex;
118
+ flex-direction: column;
119
+ gap: 20px;
120
+ }
121
+ .controls {
122
+ display: flex;
123
+ gap: 10px;
124
+ flex-wrap: wrap;
125
+ }
126
+ .info {
127
+ color: #888;
128
+ font-size: 12px;
129
+ font-family: 'Geist Sans', sans-serif;
11
130
  }
12
131
  </style>
13
132
  <div class="demoBox">
133
+ <div class="controls">
134
+ <dees-button @clicked=${() => generateRandomLog()}>Add Single Log</dees-button>
135
+ <dees-button @clicked=${() => startSimulation()}>Start Simulation</dees-button>
136
+ <dees-button @clicked=${() => stopSimulation()}>Stop Simulation</dees-button>
137
+ </div>
138
+ <div class="info">Simulating realistic server logs with various levels and sources</div>
14
139
  <dees-chart-log
15
- .label=${'Event Log'}
140
+ .label=${'Production Server Logs'}
16
141
  ></dees-chart-log>
17
142
  </div>
18
143
  `;
19
144
  };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jaGFydC1sb2cuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9kZWVzLWNoYXJ0LWxvZy5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE9BQU8sSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7aUJBWUksV0FBVzs7O0dBR3pCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jaGFydC1sb2cuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9kZWVzLWNoYXJ0LWxvZy5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFO0lBQzNCLElBQUksVUFBa0IsQ0FBQztJQUV2QixNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUV4RyxNQUFNLFlBQVksR0FBRztRQUNuQixLQUFLLEVBQUU7WUFDTCw0QkFBNEI7WUFDNUIsNEJBQTRCO1lBQzVCLGtDQUFrQztZQUNsQyw4QkFBOEI7WUFDOUIsc0NBQXNDO1NBQ3ZDO1FBQ0QsSUFBSSxFQUFFO1lBQ0osdUNBQXVDO1lBQ3ZDLDRDQUE0QztZQUM1QyxxQ0FBcUM7WUFDckMsbUNBQW1DO1lBQ25DLDhDQUE4QztTQUMvQztRQUNELElBQUksRUFBRTtZQUNKLDZDQUE2QztZQUM3Qyw4QkFBOEI7WUFDOUIsc0NBQXNDO1lBQ3RDLDhDQUE4QztZQUM5QyxzQ0FBc0M7U0FDdkM7UUFDRCxLQUFLLEVBQUU7WUFDTCxxQ0FBcUM7WUFDckMsc0NBQXNDO1lBQ3RDLHlDQUF5QztZQUN6QywwQkFBMEI7WUFDMUIsa0NBQWtDO1NBQ25DO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsOENBQThDO1lBQzlDLDhCQUE4QjtZQUM5QiwrQkFBK0I7WUFDL0IseUJBQXlCO1lBQ3pCLDhDQUE4QztTQUMvQztLQUNGLENBQUM7SUFFRixNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRTtRQUM3QixNQUFNLFVBQVUsR0FBSSxNQUFjLENBQUMsZ0JBQWdCLENBQUM7UUFDcEQsSUFB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
@@ -7,73 +7,297 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { DeesElement, css, cssManager, customElement, html, property, state, } from '@design.estate/dees-element';
10
+ import { DeesElement, css, cssManager, customElement, html, property, } from '@design.estate/dees-element';
11
11
  import * as domtools from '@design.estate/dees-domtools';
12
12
  import { demoFunc } from './dees-chart-log.demo.js';
13
- import ApexCharts from 'apexcharts';
14
13
  let DeesChartLog = class DeesChartLog extends DeesElement {
15
14
  static { this.demo = demoFunc; }
16
15
  constructor() {
17
16
  super();
18
- this.label = 'Untitled Chart';
17
+ this.label = 'Server Logs';
18
+ this.logEntries = [];
19
+ this.autoScroll = true;
20
+ this.maxEntries = 1000;
19
21
  domtools.elementBasic.setup();
20
22
  }
21
23
  static { this.styles = [
22
24
  cssManager.defaultStyles,
23
25
  css `
24
26
  :host {
25
- font-family: 'Geist Sans', sans-serif;
27
+ font-family: 'Geist Mono', 'Consolas', 'Monaco', monospace;
26
28
  color: #ccc;
27
- font-weight: 600;
28
29
  font-size: 12px;
30
+ line-height: 1.4;
29
31
  }
30
32
  .mainbox {
31
33
  position: relative;
32
34
  width: 100%;
33
35
  height: 400px;
34
- background: #222;
36
+ background: ${cssManager.bdTheme('#f8f9fa', '#0a0a0a')};
37
+ border: 1px solid ${cssManager.bdTheme('#dee2e6', '#333')};
35
38
  border-radius: 8px;
36
- padding: 32px 16px 16px 0px;
39
+ display: flex;
40
+ flex-direction: column;
41
+ overflow: hidden;
37
42
  }
38
43
 
39
- .chartTitle {
40
- position: absolute;
41
- top: 0;
42
- left: 0;
43
- width: 100%;
44
- text-align: center;
45
- padding-top: 16px;
44
+ .header {
45
+ background: ${cssManager.bdTheme('#e9ecef', '#1a1a1a')};
46
+ padding: 8px 16px;
47
+ border-bottom: 1px solid ${cssManager.bdTheme('#dee2e6', '#333')};
48
+ display: flex;
49
+ justify-content: space-between;
50
+ align-items: center;
51
+ flex-shrink: 0;
46
52
  }
47
- .chartContainer {
48
- position: relative;
49
- width: 100%;
53
+
54
+ .title {
55
+ font-weight: 600;
56
+ color: ${cssManager.bdTheme('#212529', '#fff')};
57
+ }
58
+
59
+ .controls {
60
+ display: flex;
61
+ gap: 8px;
62
+ }
63
+
64
+ .control-button {
65
+ background: ${cssManager.bdTheme('#e9ecef', '#2a2a2a')};
66
+ border: 1px solid ${cssManager.bdTheme('#ced4da', '#444')};
67
+ border-radius: 4px;
68
+ padding: 4px 8px;
69
+ color: ${cssManager.bdTheme('#495057', '#ccc')};
70
+ cursor: pointer;
71
+ font-size: 11px;
72
+ transition: all 0.2s;
73
+ }
74
+
75
+ .control-button:hover {
76
+ background: ${cssManager.bdTheme('#dee2e6', '#3a3a3a')};
77
+ border-color: ${cssManager.bdTheme('#adb5bd', '#555')};
78
+ }
79
+
80
+ .control-button.active {
81
+ background: ${cssManager.bdTheme('#007bff', '#4a4a4a')};
82
+ color: ${cssManager.bdTheme('#fff', '#fff')};
83
+ }
84
+
85
+ .logContainer {
86
+ flex: 1;
87
+ overflow-y: auto;
88
+ overflow-x: hidden;
89
+ padding: 8px 16px;
90
+ font-size: 12px;
91
+ }
92
+
93
+ .logEntry {
94
+ margin-bottom: 2px;
95
+ display: flex;
96
+ white-space: pre-wrap;
97
+ word-break: break-all;
98
+ }
99
+
100
+ .timestamp {
101
+ color: ${cssManager.bdTheme('#6c757d', '#666')};
102
+ margin-right: 8px;
103
+ flex-shrink: 0;
104
+ }
105
+
106
+ .level {
107
+ margin-right: 8px;
108
+ padding: 0 6px;
109
+ border-radius: 3px;
110
+ font-weight: 600;
111
+ text-transform: uppercase;
112
+ font-size: 10px;
113
+ flex-shrink: 0;
114
+ }
115
+
116
+ .level.debug {
117
+ color: ${cssManager.bdTheme('#6c757d', '#999')};
118
+ background: ${cssManager.bdTheme('rgba(108, 117, 125, 0.1)', '#333')};
119
+ }
120
+
121
+ .level.info {
122
+ color: ${cssManager.bdTheme('#0066cc', '#4a9eff')};
123
+ background: ${cssManager.bdTheme('rgba(0, 102, 204, 0.1)', 'rgba(74, 158, 255, 0.1)')};
124
+ }
125
+
126
+ .level.warn {
127
+ color: ${cssManager.bdTheme('#ff8800', '#ffb84a')};
128
+ background: ${cssManager.bdTheme('rgba(255, 136, 0, 0.1)', 'rgba(255, 184, 74, 0.1)')};
129
+ }
130
+
131
+ .level.error {
132
+ color: ${cssManager.bdTheme('#dc3545', '#ff4a4a')};
133
+ background: ${cssManager.bdTheme('rgba(220, 53, 69, 0.1)', 'rgba(255, 74, 74, 0.1)')};
134
+ }
135
+
136
+ .level.success {
137
+ color: ${cssManager.bdTheme('#28a745', '#4aff88')};
138
+ background: ${cssManager.bdTheme('rgba(40, 167, 69, 0.1)', 'rgba(74, 255, 136, 0.1)')};
139
+ }
140
+
141
+ .source {
142
+ color: ${cssManager.bdTheme('#6c757d', '#888')};
143
+ margin-right: 8px;
144
+ flex-shrink: 0;
145
+ }
146
+
147
+ .message {
148
+ color: ${cssManager.bdTheme('#212529', '#ddd')};
149
+ flex: 1;
150
+ }
151
+
152
+ .empty-state {
153
+ display: flex;
154
+ align-items: center;
155
+ justify-content: center;
50
156
  height: 100%;
157
+ color: ${cssManager.bdTheme('#6c757d', '#666')};
158
+ font-style: italic;
159
+ }
160
+
161
+ /* Custom scrollbar */
162
+ .logContainer::-webkit-scrollbar {
163
+ width: 8px;
164
+ }
165
+
166
+ .logContainer::-webkit-scrollbar-track {
167
+ background: ${cssManager.bdTheme('#e9ecef', '#1a1a1a')};
168
+ }
169
+
170
+ .logContainer::-webkit-scrollbar-thumb {
171
+ background: ${cssManager.bdTheme('#adb5bd', '#444')};
172
+ border-radius: 4px;
173
+ }
174
+
175
+ .logContainer::-webkit-scrollbar-thumb:hover {
176
+ background: ${cssManager.bdTheme('#6c757d', '#555')};
51
177
  }
52
178
  `,
53
179
  ]; }
54
180
  render() {
55
- return html ` <div class="mainbox">
56
- <div class="chartTitle">${this.label}</div>
57
- <div class="chartContainer"></div>
58
- </div> `;
181
+ return html `
182
+ <div class="mainbox">
183
+ <div class="header">
184
+ <div class="title">${this.label}</div>
185
+ <div class="controls">
186
+ <button
187
+ class="control-button ${this.autoScroll ? 'active' : ''}"
188
+ @click=${() => { this.autoScroll = !this.autoScroll; }}
189
+ >
190
+ Auto Scroll
191
+ </button>
192
+ <button
193
+ class="control-button"
194
+ @click=${() => { this.clearLogs(); }}
195
+ >
196
+ Clear
197
+ </button>
198
+ </div>
199
+ </div>
200
+ <div class="logContainer">
201
+ ${this.logEntries.length === 0
202
+ ? html `<div class="empty-state">No logs to display</div>`
203
+ : this.logEntries.map(entry => this.renderLogEntry(entry))}
204
+ </div>
205
+ </div>
206
+ `;
207
+ }
208
+ renderLogEntry(entry) {
209
+ const timestamp = new Date(entry.timestamp).toLocaleTimeString('en-US', {
210
+ hour12: false,
211
+ hour: '2-digit',
212
+ minute: '2-digit',
213
+ second: '2-digit',
214
+ fractionalSecondDigits: 3
215
+ });
216
+ return html `
217
+ <div class="logEntry">
218
+ <span class="timestamp">${timestamp}</span>
219
+ <span class="level ${entry.level}">${entry.level}</span>
220
+ ${entry.source ? html `<span class="source">[${entry.source}]</span>` : ''}
221
+ <span class="message">${entry.message}</span>
222
+ </div>
223
+ `;
59
224
  }
60
225
  async firstUpdated() {
61
- const domtoolsInstance = await this.domtoolsPromise;
226
+ await this.domtoolsPromise;
227
+ this.logContainer = this.shadowRoot.querySelector('.logContainer');
228
+ // Initialize with demo server logs
229
+ const demoLogs = [
230
+ { timestamp: new Date().toISOString(), level: 'info', message: 'Server started on port 3000', source: 'Server' },
231
+ { timestamp: new Date().toISOString(), level: 'debug', message: 'Loading configuration from /etc/app/config.json', source: 'Config' },
232
+ { timestamp: new Date().toISOString(), level: 'info', message: 'Connected to MongoDB at mongodb://localhost:27017', source: 'Database' },
233
+ { timestamp: new Date().toISOString(), level: 'success', message: 'Database connection established successfully', source: 'Database' },
234
+ { timestamp: new Date().toISOString(), level: 'warn', message: 'No SSL certificate found, using self-signed certificate', source: 'Security' },
235
+ { timestamp: new Date().toISOString(), level: 'info', message: 'API routes initialized: GET /api/users, POST /api/users, DELETE /api/users/:id', source: 'Router' },
236
+ { timestamp: new Date().toISOString(), level: 'debug', message: 'Middleware stack: cors, bodyParser, authentication, errorHandler', source: 'Middleware' },
237
+ { timestamp: new Date().toISOString(), level: 'info', message: 'WebSocket server listening on ws://localhost:3001', source: 'WebSocket' },
238
+ ];
239
+ this.logEntries = demoLogs;
240
+ this.scrollToBottom();
241
+ // For demo purposes, store reference globally
242
+ if (window.__demoLogElement === undefined) {
243
+ window.__demoLogElement = this;
244
+ }
62
245
  }
63
- async updateLog() {
246
+ async updateLog(entries) {
247
+ if (entries) {
248
+ // Add new entries
249
+ this.logEntries = [...this.logEntries, ...entries];
250
+ // Trim if exceeds max entries
251
+ if (this.logEntries.length > this.maxEntries) {
252
+ this.logEntries = this.logEntries.slice(-this.maxEntries);
253
+ }
254
+ // Trigger re-render
255
+ this.requestUpdate();
256
+ // Auto-scroll if enabled
257
+ await this.updateComplete;
258
+ if (this.autoScroll) {
259
+ this.scrollToBottom();
260
+ }
261
+ }
262
+ }
263
+ clearLogs() {
264
+ this.logEntries = [];
265
+ this.requestUpdate();
266
+ }
267
+ scrollToBottom() {
268
+ if (this.logContainer) {
269
+ this.logContainer.scrollTop = this.logContainer.scrollHeight;
270
+ }
271
+ }
272
+ addLog(level, message, source) {
273
+ const newEntry = {
274
+ timestamp: new Date().toISOString(),
275
+ level,
276
+ message,
277
+ source
278
+ };
279
+ this.updateLog([newEntry]);
64
280
  }
65
281
  };
66
- __decorate([
67
- state(),
68
- __metadata("design:type", ApexCharts)
69
- ], DeesChartLog.prototype, "chart", void 0);
70
282
  __decorate([
71
283
  property(),
72
284
  __metadata("design:type", String)
73
285
  ], DeesChartLog.prototype, "label", void 0);
286
+ __decorate([
287
+ property({ type: Array }),
288
+ __metadata("design:type", Array)
289
+ ], DeesChartLog.prototype, "logEntries", void 0);
290
+ __decorate([
291
+ property({ type: Boolean }),
292
+ __metadata("design:type", Boolean)
293
+ ], DeesChartLog.prototype, "autoScroll", void 0);
294
+ __decorate([
295
+ property({ type: Number }),
296
+ __metadata("design:type", Number)
297
+ ], DeesChartLog.prototype, "maxEntries", void 0);
74
298
  DeesChartLog = __decorate([
75
299
  customElement('dees-chart-log'),
76
300
  __metadata("design:paramtypes", [])
77
301
  ], DeesChartLog);
78
302
  export { DeesChartLog };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jaGFydC1sb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvZGVlcy1jaGFydC1sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxHQUFHLEVBQ0gsVUFBVSxFQUNWLGFBQWEsRUFDYixJQUFJLEVBQ0osUUFBUSxFQUNSLEtBQUssR0FHTixNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sS0FBSyxRQUFRLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXBELE9BQU8sVUFBVSxNQUFNLFlBQVksQ0FBQztBQVM3QixJQUFNLFlBQVksR0FBbEIsTUFBTSxZQUFhLFNBQVEsV0FBVzthQUM3QixTQUFJLEdBQUcsUUFBUSxBQUFYLENBQVk7SUFTOUI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUhILFVBQUssR0FBVyxnQkFBZ0IsQ0FBQztRQUl0QyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7YUFFYSxXQUFNLEdBQUc7UUFDckIsVUFBVSxDQUFDLGFBQWE7UUFDeEIsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTZCRjtLQUNGLEFBaENtQixDQWdDbEI7SUFFSyxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUE7Z0NBQ2lCLElBQUksQ0FBQyxLQUFLOztZQUU5QixDQUFDO0lBQ1gsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBRXRELENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUztJQUV0QixDQUFDOztBQTFETTtJQUROLEtBQUssRUFBRTs4QkFDTSxVQUFVOzJDQUFDO0FBR2xCO0lBRE4sUUFBUSxFQUFFOzsyQ0FDNkI7QUFSN0IsWUFBWTtJQUR4QixhQUFhLENBQUMsZ0JBQWdCLENBQUM7O0dBQ25CLFlBQVksQ0FnRXhCIn0=
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1jaGFydC1sb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvZGVlcy1jaGFydC1sb2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxHQUFHLEVBQ0gsVUFBVSxFQUNWLGFBQWEsRUFDYixJQUFJLEVBQ0osUUFBUSxHQUVULE1BQU0sNkJBQTZCLENBQUM7QUFFckMsT0FBTyxLQUFLLFFBQVEsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFpQjdDLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxXQUFXO2FBQzdCLFNBQUksR0FBRyxRQUFRLEFBQVgsQ0FBWTtJQWdCOUI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQWRILFVBQUssR0FBVyxhQUFhLENBQUM7UUFHOUIsZUFBVSxHQUFnQixFQUFFLENBQUM7UUFHN0IsZUFBVSxHQUFZLElBQUksQ0FBQztRQUczQixlQUFVLEdBQVcsSUFBSSxDQUFDO1FBTS9CLFFBQVEsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFaEMsQ0FBQzthQUVhLFdBQU0sR0FBRztRQUNyQixVQUFVLENBQUMsYUFBYTtRQUN4QixHQUFHLENBQUE7Ozs7Ozs7Ozs7O3NCQVdlLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs0QkFDbEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDOzs7Ozs7OztzQkFRM0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzttQ0FFM0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDOzs7Ozs7Ozs7aUJBU3ZELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQzs7Ozs7Ozs7O3NCQVNoQyxV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
@@ -4,8 +4,30 @@ declare global {
4
4
  'dees-toast': DeesToast;
5
5
  }
6
6
  }
7
+ export type ToastType = 'info' | 'success' | 'warning' | 'error';
8
+ export type ToastPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'top-center' | 'bottom-center';
9
+ export interface IToastOptions {
10
+ message: string;
11
+ type?: ToastType;
12
+ duration?: number;
13
+ position?: ToastPosition;
14
+ }
7
15
  export declare class DeesToast extends DeesElement {
8
16
  static demo: () => Promise<TemplateResult<1>>;
17
+ private static toastContainers;
18
+ private static getOrCreateContainer;
19
+ static show(options: IToastOptions | string): Promise<DeesToast>;
20
+ static info(message: string, duration?: number): Promise<DeesToast>;
21
+ static success(message: string, duration?: number): Promise<DeesToast>;
22
+ static warning(message: string, duration?: number): Promise<DeesToast>;
23
+ static error(message: string, duration?: number): Promise<DeesToast>;
24
+ message: string;
25
+ type: ToastType;
26
+ duration: number;
27
+ isVisible: boolean;
9
28
  constructor();
29
+ static styles: import("@design.estate/dees-element").CSSResult[];
10
30
  render(): TemplateResult;
31
+ dismiss(): Promise<void>;
32
+ firstUpdated(): void;
11
33
  }
@@ -1 +1,2 @@
1
+ import './dees-button.js';
1
2
  export declare const demoFunc: () => Promise<import("@design.estate/dees-element").TemplateResult<1>>;