@design.estate/dees-catalog 9.3.0 → 9.4.0

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 (29) hide show
  1. package/dist_bundle/bundle.js +1372 -2727
  2. package/dist_bundle/bundle.js.map +1 -1
  3. package/dist_ts_web/00_commitinfo_data.js +1 -1
  4. package/dist_ts_web/elements/00group-button/dees-button/dees-button.js +2 -1
  5. package/dist_ts_web/elements/00group-input/dees-input-quantityselector/dees-input-quantityselector.js +4 -2
  6. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.d.ts +11 -9
  7. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.d.ts +2 -2
  8. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.js +148 -319
  9. package/dist_ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.js +60 -279
  10. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.d.ts +25 -10
  11. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.demo.d.ts +3 -4
  12. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.demo.js +229 -388
  13. package/dist_ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.js +253 -813
  14. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.demo.d.ts +2 -0
  15. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.demo.js +150 -389
  16. package/dist_ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.js +67 -11
  17. package/package.json +1 -1
  18. package/readme.hints.md +26 -0
  19. package/readme.md +76 -15
  20. package/scripts/bdtheme-baseline.json +0 -2
  21. package/ts_web/00_commitinfo_data.ts +1 -1
  22. package/ts_web/elements/00group-button/dees-button/dees-button.ts +1 -0
  23. package/ts_web/elements/00group-input/dees-input-quantityselector/dees-input-quantityselector.ts +3 -1
  24. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.demo.ts +67 -332
  25. package/ts_web/elements/00group-simple/dees-shopping-productcard/dees-shopping-productcard.ts +65 -322
  26. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.demo.ts +136 -382
  27. package/ts_web/elements/00group-simple/dees-simple-appdash/dees-simple-appdash.ts +224 -872
  28. package/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.demo.ts +116 -421
  29. package/ts_web/elements/00group-simple/dees-simple-login/dees-simple-login.ts +66 -10
@@ -32,440 +32,281 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
32
32
  }
33
33
  return useValue ? value : void 0;
34
34
  };
35
- import { html, DeesElement, customElement, css, cssManager } from '@design.estate/dees-element';
35
+ import { html, DeesElement, customElement, property, state, css, cssManager } from '@design.estate/dees-element';
36
+ import { themeDefaultStyles } from '../../00theme.js';
37
+ import { demoApp } from '../../../demos/templates.js';
38
+ import { WebContainerEnvironment } from '../../00group-runtime/index.js';
36
39
  import '../../00group-form/dees-form/dees-form.js';
37
- import '../../00group-input/dees-input-text/dees-input-text.js';
38
- import '../../00group-input/dees-input-checkbox/dees-input-checkbox.js';
39
- import '../../00group-input/dees-input-dropdown/dees-input-dropdown.js';
40
- import '../../00group-input/dees-input-radiogroup/dees-input-radiogroup.js';
41
40
  import '../../00group-form/dees-form-submit/dees-form-submit.js';
41
+ import '../../00group-input/dees-input-text/dees-input-text.js';
42
+ import '../../00group-input/dees-input-toggle/dees-input-toggle.js';
42
43
  import '../../00group-dataview/dees-statsgrid/dees-statsgrid.js';
43
- // Create demo view components
44
- let DemoViewDashboard = (() => {
45
- let _classDecorators = [customElement('demo-view-dashboard')];
44
+ import '../../00group-dataview/dees-table/dees-table.js';
45
+ const initialState = () => ({ name: 'Studio', notifications: true, projects: [
46
+ { id: 'atlas', name: 'Atlas identity', client: 'Atlas', state: 'In progress' },
47
+ { id: 'field', name: 'Field notes', client: 'Fieldwork', state: 'Ready for review' },
48
+ { id: 'mono', name: 'Mono storefront', client: 'Mono', state: 'Completed' },
49
+ ], activity: ['Alex shared the first Atlas concepts.', 'Field notes is ready for a final review.', 'Mono storefront was delivered to the client.'] });
50
+ let DeesDemoSimpleView = (() => {
51
+ let _classSuper = DeesElement;
52
+ let _model_decorators;
53
+ let _model_initializers = [];
54
+ let _model_extraInitializers = [];
55
+ return class DeesDemoSimpleView extends _classSuper {
56
+ static {
57
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
58
+ _model_decorators = [property({ attribute: false })];
59
+ __esDecorate(this, null, _model_decorators, { kind: "accessor", name: "model", static: false, private: false, access: { has: obj => "model" in obj, get: obj => obj.model, set: (obj, value) => { obj.model = value; } }, metadata: _metadata }, _model_initializers, _model_extraInitializers);
60
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
61
+ }
62
+ #model_accessor_storage = __runInitializers(this, _model_initializers, initialState());
63
+ get model() { return this.#model_accessor_storage; }
64
+ set model(value) { this.#model_accessor_storage = value; }
65
+ page = (__runInitializers(this, _model_extraInitializers), 'Overview');
66
+ action(detail) { this.dispatchEvent(new CustomEvent('studio-action', { detail, bubbles: true, composed: true })); }
67
+ static styles = [themeDefaultStyles, cssManager.defaultStyles, css `
68
+ :host { display: block; container-type: inline-size; font: 13px/1.5 var(--dees-font-family); color: var(--dees-color-text-primary); }
69
+ main { display: grid; gap: 28px; max-width: 1040px; margin: auto; padding: 32px; }
70
+ h1 { font-size: 28px; line-height: 1.2; font-weight: 600; letter-spacing: -.035em; margin: 0 0 8px; }
71
+ h2 { font-size: 15px; font-weight: 600; margin: 0; }
72
+ p { margin: 0; color: var(--dees-color-text-secondary); }
73
+ .eyebrow { font-size: 12px; color: var(--dees-color-text-secondary); margin-bottom: 12px; }
74
+ .sectionHeader { display: flex; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
75
+ .project { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 20px; border: 1px solid var(--dees-color-border-subtle); border-radius: var(--dees-radius-xl); background: var(--dees-color-bg-primary); }
76
+ .project > dees-icon { color: var(--dees-color-text-secondary); }
77
+ .project .text { flex: 1 1 140px; }
78
+ .project p { font-size: 12px; margin-top: 4px; }
79
+ .activity { list-style: none; padding: 0; margin: 0; }
80
+ .activity li { display: flex; align-items: baseline; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--dees-color-border-subtle); }
81
+ .activity li::before { content: ''; width: 5px; height: 5px; flex-shrink: 0; background: var(--dees-color-text-muted); border-radius: 50%; }
82
+ dees-form { display: grid; gap: 24px; max-width: 440px; }
83
+ .settings { padding: 20px; border-radius: var(--dees-radius-xl); border: 1px solid var(--dees-color-border-subtle); background: var(--dees-color-bg-primary); }
84
+ @container (max-width: 600px) { main { padding: 24px 20px; gap: 24px; } h1 { font-size: 24px; } }
85
+ `];
86
+ render() {
87
+ const model = this.model;
88
+ if (this.page === 'Projects') {
89
+ const columns = [{ key: 'name', header: 'Project' }, { key: 'client', header: 'Client' }, { key: 'state', header: 'Status' }];
90
+ const actions = [{ name: 'Archive project', iconName: 'lucide:Archive', type: ['inRow', 'contextmenu'], actionFunc: async ({ item }) => this.action({ type: 'archive', id: item.id }) }];
91
+ return html `<main><header><h1>Projects</h1><p>Everything your studio is working on.</p></header>
92
+ <dees-table heading1="Studio projects" heading2="Archive a delivered project to clear space." dataName="projects" .data=${model.projects} .columns=${columns} rowKey="id" .dataActions=${actions}></dees-table></main>`;
93
+ }
94
+ if (this.page === 'Profile')
95
+ return html `<main><header><h1>Make it yours.</h1><p>A name for the space you work in.</p></header>
96
+ <dees-form @formData=${(event) => this.action({ type: 'profile', name: String(event.detail.data.name).trim() })}>
97
+ <dees-input-text key="name" label="Workspace name" .value=${model.name} required></dees-input-text>
98
+ <dees-form-submit type="accent" icon="lucide:check">Save changes</dees-form-submit>
99
+ </dees-form></main>`;
100
+ if (this.page === 'Notifications')
101
+ return html `<main><header><h1>Stay in the loop.</h1><p>Choose how this workspace keeps you informed.</p></header><div class="settings">
102
+ <dees-input-toggle label="Project updates" description="Show a notice when a project is archived." .value=${model.notifications}
103
+ @newValue=${(event) => this.action({ type: 'notifications', enabled: event.detail })}></dees-input-toggle>
104
+ </div></main>`;
105
+ return html `<main><header><div class="eyebrow">Your workspace</div><h1>Room for good work.</h1><p>A clear view of your projects, people, and progress.</p></header>
106
+ <dees-statsgrid .minTileWidth=${160} .tiles=${[
107
+ { id: 'projects', title: 'Open projects', value: model.projects.length, type: 'number', icon: 'lucide:Layers', description: 'Across the studio' },
108
+ { id: 'review', title: 'Ready for review', value: model.projects.filter(project => project.state === 'Ready for review').length, type: 'number', icon: 'lucide:CircleCheck', description: 'Waiting for your feedback' },
109
+ { id: 'people', title: 'Collaborators', value: 4, type: 'number', icon: 'lucide:Users', description: 'One shared workspace' },
110
+ ]}></dees-statsgrid>
111
+ <section><div class="sectionHeader"><h2>On your desk</h2><dees-button type="ghost" size="sm" text="View projects" icon="lucide:arrowUpRight" @clicked=${() => this.action({ type: 'navigate', page: 'Projects' })}></dees-button></div>
112
+ <div class="project"><dees-icon icon="lucide:folderOpen" iconSize="28"></dees-icon><div class="text"><h2>${model.projects[0]?.name || 'A fresh start'}</h2><p>${model.projects[0]?.state || 'All projects are archived. Reset the demo to start again.'}</p></div>
113
+ ${model.projects.length ? html `<dees-button type="outline" text="Open projects" @clicked=${() => this.action({ type: 'navigate', page: 'Projects' })}></dees-button>` : ''}</div>
114
+ </section><section><div class="sectionHeader"><h2>Recent activity</h2></div><ul class="activity">${model.activity.map(entry => html `<li>${entry}</li>`)}</ul></section>
115
+ </main>`;
116
+ }
117
+ };
118
+ })();
119
+ let DeesDemoSimpleOverview = (() => {
120
+ let _classDecorators = [customElement('dees-demo-simple-overview')];
46
121
  let _classDescriptor;
47
122
  let _classExtraInitializers = [];
48
123
  let _classThis;
49
- let _classSuper = DeesElement;
50
- var DemoViewDashboard = class extends _classSuper {
124
+ let _classSuper = DeesDemoSimpleView;
125
+ var DeesDemoSimpleOverview = class extends _classSuper {
51
126
  static { _classThis = this; }
52
127
  static {
53
128
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
54
129
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
55
- DemoViewDashboard = _classThis = _classDescriptor.value;
130
+ DeesDemoSimpleOverview = _classThis = _classDescriptor.value;
56
131
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
132
+ __runInitializers(_classThis, _classExtraInitializers);
57
133
  }
58
- static styles = [
59
- cssManager.defaultStyles,
60
- css `
61
- :host {
62
- display: block;
63
- padding: 40px;
64
- }
65
- h1 {
66
- margin: 0 0 20px 0;
67
- color: ${cssManager.bdTheme('#000', '#fff')};
68
- }
69
- dees-statsgrid {
70
- margin-top: 20px;
71
- }
72
- `
73
- ];
74
- statsTiles = [
75
- {
76
- id: 'users',
77
- title: 'Active Users',
78
- value: 1234,
79
- type: 'number',
80
- icon: 'faUsers',
81
- description: '+15% from last week',
82
- color: '#22c55e'
83
- },
84
- {
85
- id: 'pageviews',
86
- title: 'Page Views',
87
- value: 56700,
88
- type: 'number',
89
- icon: 'faEye',
90
- description: '56.7k total views',
91
- color: '#3b82f6'
92
- },
93
- {
94
- id: 'uptime',
95
- title: 'System Uptime',
96
- value: 89,
97
- unit: '%',
98
- type: 'gauge',
99
- icon: 'faServer',
100
- description: 'Last 30 days',
101
- color: '#10b981',
102
- gaugeOptions: {
103
- min: 0,
104
- max: 100,
105
- thresholds: [
106
- { value: 80, color: '#ef4444' },
107
- { value: 90, color: '#f59e0b' },
108
- { value: 100, color: '#10b981' }
109
- ]
110
- }
111
- },
112
- {
113
- id: 'response',
114
- title: 'Avg Response Time',
115
- value: 3.2,
116
- unit: 's',
117
- type: 'number',
118
- icon: 'faClock',
119
- description: '-0.5s improvement',
120
- color: '#f59e0b'
121
- },
122
- {
123
- id: 'revenue',
124
- title: 'Monthly Revenue',
125
- value: 48520,
126
- unit: '$',
127
- type: 'trend',
128
- icon: 'faDollarSign',
129
- description: '+8.2% growth',
130
- color: '#22c55e',
131
- trendData: [35000, 38000, 37500, 41000, 39800, 42000, 44100, 43200, 45600, 47100, 46800, 48520]
132
- },
133
- {
134
- id: 'traffic',
135
- title: 'Traffic Trend',
136
- value: 1680,
137
- type: 'trend',
138
- icon: 'faChartLine',
139
- description: 'Last 7 days',
140
- color: '#3b82f6',
141
- trendData: [1200, 1350, 1100, 1450, 1600, 1550, 1680]
142
- }
143
- ];
144
- render() {
145
- return html `
146
- <h1>Dashboard</h1>
147
- <p>Welcome to your application dashboard. Here's an overview of your metrics:</p>
148
- <dees-statsgrid
149
- .tiles=${this.statsTiles}
150
- @tile-action=${(e) => {
151
- console.log('Tile action:', e.detail);
152
- }}
153
- ></dees-statsgrid>
154
-
155
- <h2 style="margin-top: 40px;">Recent Activity</h2>
156
- <p>Below is a log of recent system events and user activity to demonstrate scrollable content.</p>
157
-
158
- ${[
159
- { time: '2 min ago', event: 'User john@example.com logged in from 192.168.1.42', type: 'info' },
160
- { time: '5 min ago', event: 'Deployment v3.52.1 completed successfully on production', type: 'success' },
161
- { time: '12 min ago', event: 'Database backup finished — 2.4 GB compressed', type: 'info' },
162
- { time: '18 min ago', event: 'SSL certificate renewed for api.example.com (expires 2027-04-03)', type: 'success' },
163
- { time: '25 min ago', event: 'Memory usage spike on worker-03 (92%) — auto-scaled to 4 instances', type: 'warning' },
164
- { time: '31 min ago', event: 'New user registration: sarah@company.io', type: 'info' },
165
- { time: '45 min ago', event: 'Scheduled job "cleanup-temp-files" completed — removed 1,247 files', type: 'info' },
166
- { time: '1 hour ago', event: 'API rate limit reached for client app-mobile-client (429 responses)', type: 'warning' },
167
- { time: '1.5 hours ago', event: 'CDN cache purged for /assets/* — 340 objects invalidated', type: 'info' },
168
- { time: '2 hours ago', event: 'Failed login attempt for admin@example.com from 203.0.113.50 (blocked)', type: 'error' },
169
- { time: '2.5 hours ago', event: 'Webhook delivery to https://hooks.slack.com succeeded (200 OK)', type: 'info' },
170
- { time: '3 hours ago', event: 'Cron job "generate-reports" started — processing Q1 2026 data', type: 'info' },
171
- { time: '3.5 hours ago', event: 'Load balancer health check: all 8 nodes healthy', type: 'success' },
172
- { time: '4 hours ago', event: 'DNS propagation complete for new subdomain staging.example.com', type: 'success' },
173
- ].map(item => html `
174
- <div style="
175
- display: flex;
176
- align-items: baseline;
177
- gap: 12px;
178
- padding: 10px 0;
179
- border-bottom: 1px solid ${cssManager.bdTheme('hsl(0 0% 90%)', 'hsl(0 0% 12%)')};
180
- font-size: 13px;
181
- ">
182
- <span style="
183
- flex-shrink: 0;
184
- width: 100px;
185
- font-size: 11px;
186
- color: ${cssManager.bdTheme('hsl(0 0% 55%)', 'hsl(0 0% 45%)')};
187
- ">${item.time}</span>
188
- <span style="
189
- color: ${item.type === 'error' ? cssManager.bdTheme('hsl(0 72% 50%)', 'hsl(0 72% 65%)') :
190
- item.type === 'warning' ? cssManager.bdTheme('hsl(25 95% 50%)', 'hsl(25 95% 63%)') :
191
- item.type === 'success' ? cssManager.bdTheme('hsl(142 70% 40%)', 'hsl(142 70% 55%)') :
192
- cssManager.bdTheme('hsl(0 0% 30%)', 'hsl(0 0% 75%)')};
193
- ">${item.event}</span>
194
- </div>
195
- `)}
196
- `;
197
- }
134
+ };
135
+ return DeesDemoSimpleOverview = _classThis;
136
+ })();
137
+ let DeesDemoSimpleProjects = (() => {
138
+ let _classDecorators = [customElement('dees-demo-simple-projects')];
139
+ let _classDescriptor;
140
+ let _classExtraInitializers = [];
141
+ let _classThis;
142
+ let _classSuper = DeesDemoSimpleView;
143
+ var DeesDemoSimpleProjects = class extends _classSuper {
144
+ static { _classThis = this; }
198
145
  static {
146
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
147
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
148
+ DeesDemoSimpleProjects = _classThis = _classDescriptor.value;
149
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
199
150
  __runInitializers(_classThis, _classExtraInitializers);
200
151
  }
152
+ page = 'Projects';
201
153
  };
202
- return DemoViewDashboard = _classThis;
154
+ return DeesDemoSimpleProjects = _classThis;
203
155
  })();
204
- let DemoViewAnalytics = (() => {
205
- let _classDecorators = [customElement('demo-view-analytics')];
156
+ let DeesDemoSimpleProfile = (() => {
157
+ let _classDecorators = [customElement('dees-demo-simple-profile')];
206
158
  let _classDescriptor;
207
159
  let _classExtraInitializers = [];
208
160
  let _classThis;
209
- let _classSuper = DeesElement;
210
- var DemoViewAnalytics = class extends _classSuper {
161
+ let _classSuper = DeesDemoSimpleView;
162
+ var DeesDemoSimpleProfile = class extends _classSuper {
211
163
  static { _classThis = this; }
212
164
  static {
213
165
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
214
166
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
215
- DemoViewAnalytics = _classThis = _classDescriptor.value;
167
+ DeesDemoSimpleProfile = _classThis = _classDescriptor.value;
216
168
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
169
+ __runInitializers(_classThis, _classExtraInitializers);
217
170
  }
218
- static styles = [
219
- cssManager.defaultStyles,
220
- css `
221
- :host {
222
- display: block;
223
- padding: 40px;
224
- }
225
- h1 {
226
- margin: 0 0 20px 0;
227
- color: ${cssManager.bdTheme('#000', '#fff')};
228
- }
229
- `
230
- ];
231
- render() {
232
- return html `
233
- <h1>Analytics</h1>
234
- <p>This is the analytics view. You can add charts and metrics here.</p>
235
- `;
236
- }
171
+ page = 'Profile';
172
+ };
173
+ return DeesDemoSimpleProfile = _classThis;
174
+ })();
175
+ let DeesDemoSimpleNotifications = (() => {
176
+ let _classDecorators = [customElement('dees-demo-simple-notifications')];
177
+ let _classDescriptor;
178
+ let _classExtraInitializers = [];
179
+ let _classThis;
180
+ let _classSuper = DeesDemoSimpleView;
181
+ var DeesDemoSimpleNotifications = class extends _classSuper {
182
+ static { _classThis = this; }
237
183
  static {
184
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
185
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
186
+ DeesDemoSimpleNotifications = _classThis = _classDescriptor.value;
187
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
238
188
  __runInitializers(_classThis, _classExtraInitializers);
239
189
  }
190
+ page = 'Notifications';
240
191
  };
241
- return DemoViewAnalytics = _classThis;
192
+ return DeesDemoSimpleNotifications = _classThis;
242
193
  })();
243
- let DemoViewSettings = (() => {
244
- let _classDecorators = [customElement('demo-view-settings')];
194
+ let DeesDemoSimpleStudio = (() => {
195
+ let _classDecorators = [customElement('dees-demo-simple-studio')];
245
196
  let _classDescriptor;
246
197
  let _classExtraInitializers = [];
247
198
  let _classThis;
248
199
  let _classSuper = DeesElement;
249
- var DemoViewSettings = class extends _classSuper {
200
+ let _model_decorators;
201
+ let _model_initializers = [];
202
+ let _model_extraInitializers = [];
203
+ let _signedOut_decorators;
204
+ let _signedOut_initializers = [];
205
+ let _signedOut_extraInitializers = [];
206
+ let _message_decorators;
207
+ let _message_initializers = [];
208
+ let _message_extraInitializers = [];
209
+ var DeesDemoSimpleStudio = class extends _classSuper {
250
210
  static { _classThis = this; }
251
211
  static {
252
212
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
213
+ _model_decorators = [state()];
214
+ _signedOut_decorators = [state()];
215
+ _message_decorators = [state()];
216
+ __esDecorate(this, null, _model_decorators, { kind: "accessor", name: "model", static: false, private: false, access: { has: obj => "model" in obj, get: obj => obj.model, set: (obj, value) => { obj.model = value; } }, metadata: _metadata }, _model_initializers, _model_extraInitializers);
217
+ __esDecorate(this, null, _signedOut_decorators, { kind: "accessor", name: "signedOut", static: false, private: false, access: { has: obj => "signedOut" in obj, get: obj => obj.signedOut, set: (obj, value) => { obj.signedOut = value; } }, metadata: _metadata }, _signedOut_initializers, _signedOut_extraInitializers);
218
+ __esDecorate(this, null, _message_decorators, { kind: "accessor", name: "message", static: false, private: false, access: { has: obj => "message" in obj, get: obj => obj.message, set: (obj, value) => { obj.message = value; } }, metadata: _metadata }, _message_initializers, _message_extraInitializers);
253
219
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
254
- DemoViewSettings = _classThis = _classDescriptor.value;
220
+ DeesDemoSimpleStudio = _classThis = _classDescriptor.value;
255
221
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
256
222
  }
257
- static styles = [
258
- cssManager.defaultStyles,
259
- css `
260
- :host {
261
- display: block;
262
- padding: 40px;
263
- }
264
- h1 {
265
- margin: 0 0 20px 0;
266
- color: ${cssManager.bdTheme('#000', '#fff')};
267
- }
268
- .settings-section {
269
- margin-top: 30px;
270
- }
271
- .settings-section h2 {
272
- font-size: 18px;
273
- margin: 0 0 15px 0;
274
- color: ${cssManager.bdTheme('#333', '#ccc')};
275
- }
276
- .horizontal-form-section {
277
- background: ${cssManager.bdTheme('#f5f5f5', '#1a1a1a')};
278
- padding: 20px;
279
- border-radius: 8px;
280
- margin: 15px 0;
281
- }
282
- `
223
+ #model_accessor_storage = __runInitializers(this, _model_initializers, initialState());
224
+ get model() { return this.#model_accessor_storage; }
225
+ set model(value) { this.#model_accessor_storage = value; }
226
+ #signedOut_accessor_storage = (__runInitializers(this, _model_extraInitializers), __runInitializers(this, _signedOut_initializers, false));
227
+ get signedOut() { return this.#signedOut_accessor_storage; }
228
+ set signedOut(value) { this.#signedOut_accessor_storage = value; }
229
+ #message_accessor_storage = (__runInitializers(this, _signedOut_extraInitializers), __runInitializers(this, _message_initializers, 'Local sample workspace. Archive a project or change its settings.'));
230
+ get message() { return this.#message_accessor_storage; }
231
+ set message(value) { this.#message_accessor_storage = value; }
232
+ environment = (__runInitializers(this, _message_extraInitializers), new WebContainerEnvironment());
233
+ views = [
234
+ { name: 'Overview', iconName: 'layoutGrid', element: DeesDemoSimpleOverview },
235
+ { name: 'Projects', iconName: 'folder', element: DeesDemoSimpleProjects },
236
+ { name: 'Settings', iconName: 'settings2', subViews: [
237
+ { name: 'Profile', iconName: 'contact', element: DeesDemoSimpleProfile },
238
+ { name: 'Notifications', iconName: 'bell', element: DeesDemoSimpleNotifications },
239
+ ] },
283
240
  ];
241
+ get app() { return this.shadowRoot?.querySelector('dees-simple-appdash') || null; }
242
+ static styles = [themeDefaultStyles, cssManager.defaultStyles, css `
243
+ :host { display: grid; height: 100%; min-height: 600px; grid-template-rows: auto minmax(0, 1fr) auto; gap: 16px; font: 12px/1.5 var(--dees-font-family); }
244
+ .toolbar { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; color: var(--dees-color-text-secondary); }
245
+ .toolbar div { display: flex; flex-wrap: wrap; gap: 8px; }
246
+ .frame { min-height: 0; overflow: hidden; border-radius: var(--dees-radius-2xl); corner-shape: var(--dees-corner-shape); border: 1px solid var(--dees-color-border-default); }
247
+ output { color: var(--dees-color-text-secondary); }
248
+ .signedOut { height: 100%; display: grid; place-content: center; justify-items: center; gap: 16px; }
249
+ .signedOut h2 { margin: 0; font-size: 24px; letter-spacing: -.025em; }
250
+ `];
251
+ syncView() {
252
+ const view = this.app?.shadowRoot?.querySelector('.appcontent')?.firstElementChild;
253
+ if (view)
254
+ view.model = this.model;
255
+ }
256
+ updated(changes) { super.updated(changes); this.syncView(); }
257
+ async resetDemo() {
258
+ this.model = initialState();
259
+ this.signedOut = false;
260
+ this.message = 'Workspace reset.';
261
+ await this.updateComplete;
262
+ this.app?.clearMessages();
263
+ await this.app?.loadView(this.views[0]);
264
+ }
265
+ navigate(page) {
266
+ const view = this.views.flatMap(entry => [entry, ...(entry.subViews || [])]).find(entry => entry.name === page);
267
+ if (view)
268
+ void this.app?.loadView(view);
269
+ }
270
+ handleAction(event) {
271
+ const action = event.detail;
272
+ if (action.type === 'navigate') {
273
+ this.navigate(action.page);
274
+ return;
275
+ }
276
+ if (action.type === 'archive') {
277
+ const project = this.model.projects.find(project => project.id === action.id);
278
+ if (!project)
279
+ return;
280
+ this.message = `${project.name} archived.`;
281
+ this.model = { ...this.model, projects: this.model.projects.filter(project => project.id !== action.id), activity: [this.message, ...this.model.activity].slice(0, 6) };
282
+ this.app?.removeMessage('storage');
283
+ if (this.model.notifications)
284
+ this.app?.addMessage({ id: 'project-update', type: 'success', message: this.message });
285
+ }
286
+ else if (action.type === 'profile' && action.name) {
287
+ this.model = { ...this.model, name: action.name };
288
+ this.message = 'Workspace name saved.';
289
+ this.app?.addMessage({ id: 'settings-update', type: 'success', message: this.message });
290
+ }
291
+ else if (action.type === 'notifications') {
292
+ this.model = { ...this.model, notifications: action.enabled };
293
+ this.message = `Project notices ${action.enabled ? 'enabled' : 'disabled'}.`;
294
+ }
295
+ }
284
296
  render() {
285
- return html `
286
- <h1>Settings</h1>
287
- <p>Configure your application settings below:</p>
288
-
289
- <div class="settings-section">
290
- <h2>General Settings</h2>
291
- <dees-form>
292
- <dees-input-text key="appName" label="Application Name" value="My App"></dees-input-text>
293
- <dees-input-text key="apiEndpoint" label="API Endpoint" value="https://api.example.com"></dees-input-text>
294
- <dees-input-dropdown
295
- key="environment"
296
- label="Environment"
297
- .options=${[
298
- { option: 'Development', key: 'dev' },
299
- { option: 'Staging', key: 'staging' },
300
- { option: 'Production', key: 'prod' }
301
- ]}
302
- .selectedOption=${{ option: 'Production', key: 'prod' }}
303
- ></dees-input-dropdown>
304
- <dees-input-checkbox key="enableNotifications" label="Enable Notifications" value="true"></dees-input-checkbox>
305
- <dees-input-checkbox key="enableAnalytics" label="Enable Analytics" value="false"></dees-input-checkbox>
306
- <dees-form-submit>Save General Settings</dees-form-submit>
307
- </dees-form>
308
- </div>
309
-
310
- <div class="settings-section">
311
- <h2>Display Preferences</h2>
312
- <div class="horizontal-form-section">
313
- <p style="margin-top: 0; margin-bottom: 16px;">Quick display settings using horizontal layout:</p>
314
- <dees-form horizontal-layout>
315
- <dees-input-dropdown
316
- key="theme"
317
- label="Theme"
318
- .enableSearch=${false}
319
- .options=${[
320
- { option: 'Light', key: 'light' },
321
- { option: 'Dark', key: 'dark' },
322
- { option: 'Auto', key: 'auto' }
323
- ]}
324
- .selectedOption=${{ option: 'Dark', key: 'dark' }}
325
- ></dees-input-dropdown>
326
- <dees-input-dropdown
327
- key="language"
328
- label="Language"
329
- .enableSearch=${false}
330
- .options=${[
331
- { option: 'English', key: 'en' },
332
- { option: 'German', key: 'de' },
333
- { option: 'Spanish', key: 'es' },
334
- { option: 'French', key: 'fr' }
335
- ]}
336
- .selectedOption=${{ option: 'English', key: 'en' }}
337
- ></dees-input-dropdown>
338
- <dees-input-checkbox key="compactMode" label="Compact Mode"></dees-input-checkbox>
339
- </dees-form>
340
- </div>
341
- </div>
342
-
343
- <div class="settings-section">
344
- <h2>Notification Settings</h2>
345
- <dees-form>
346
- <dees-input-radiogroup
347
- .label=${'Email Frequency'}
348
- .options=${['Real-time', 'Daily Digest', 'Weekly Summary', 'Never']}
349
- .selectedOption=${'Real-time'}
350
- .key=${'emailFrequency'}
351
- ></dees-input-radiogroup>
352
- <dees-input-checkbox key="pushNotifications" label="Enable Push Notifications" value="true"></dees-input-checkbox>
353
- <dees-input-checkbox key="soundAlerts" label="Play Sound for Alerts" value="true"></dees-input-checkbox>
354
- <dees-form-submit>Update Notifications</dees-form-submit>
355
- </dees-form>
356
- </div>
357
- `;
297
+ return html `<div class="toolbar"><span>Simple app · One connected studio</span><div>
298
+ <dees-button type="outline" size="sm" text="Show storage notice" @clicked=${() => this.app?.addMessage({ id: 'storage', type: 'warning', message: 'Your workspace is nearly full. Archive a delivered project to make room.', dismissible: false, actions: [{ name: 'Review projects', action: async () => this.navigate('Projects') }] })}></dees-button>
299
+ <dees-button type="ghost" size="sm" text="Reset demo" @clicked=${this.resetDemo}></dees-button>
300
+ </div></div><div class="frame">${this.signedOut ? html `<div class="signedOut"><dees-icon icon="lucide:layers" iconSize="32"></dees-icon><h2>See you soon.</h2><dees-button type="accent" text="Return to Studio" @clicked=${() => { this.signedOut = false; }}></dees-button></div>` : html `
301
+ <dees-simple-appdash .name=${this.model.name} .viewTabs=${this.views} .executionEnvironment=${this.environment}
302
+ @view-select=${this.syncView} @studio-action=${this.handleAction} @logout=${() => { this.signedOut = true; this.message = 'Signed out of the sample workspace.'; }}></dees-simple-appdash>`}
303
+ </div><output role="status">${this.message}</output>`;
358
304
  }
359
305
  static {
360
306
  __runInitializers(_classThis, _classExtraInitializers);
361
307
  }
362
308
  };
363
- return DemoViewSettings = _classThis;
309
+ return DeesDemoSimpleStudio = _classThis;
364
310
  })();
365
- export const demoFunc = () => html `
366
- <style>
367
- body {
368
- margin: 0;
369
- padding: 0;
370
- }
371
- .demo-container {
372
- width: 100%;
373
- height: 100%;
374
- position: absolute;
375
- top: 0;
376
- left: 0;
377
- }
378
- </style>
379
- <div class="demo-container">
380
- <dees-simple-appdash
381
- name="My Application"
382
- terminalSetupCommand="echo 'Welcome to the terminal!'"
383
- .globalMessages=${[
384
- {
385
- id: 'update',
386
- type: 'info',
387
- message: 'A new version (v3.50.0) is available with performance improvements and bug fixes.',
388
- dismissible: true,
389
- actions: [
390
- {
391
- name: 'Update Now',
392
- iconName: 'lucide:download',
393
- action: () => alert('Updating...'),
394
- },
395
- {
396
- name: 'Release Notes',
397
- action: () => alert('Opening release notes...'),
398
- },
399
- ],
400
- },
401
- {
402
- id: 'maintenance',
403
- type: 'warning',
404
- message: 'Scheduled maintenance window: April 5, 2026 02:00–06:00 UTC. Some services may be temporarily unavailable.',
405
- dismissible: true,
406
- },
407
- {
408
- id: 'critical',
409
- type: 'error',
410
- message: 'Your SSL certificate expires in 3 days. Renew now to avoid service disruption.',
411
- dismissible: false,
412
- actions: [
413
- {
414
- name: 'Renew Certificate',
415
- iconName: 'lucide:shieldCheck',
416
- action: () => alert('Renewing certificate...'),
417
- },
418
- ],
419
- },
420
- ]}
421
- .viewTabs=${[
422
- {
423
- name: 'Dashboard',
424
- iconName: 'lucide:home',
425
- element: DemoViewDashboard,
426
- },
427
- {
428
- name: 'Analytics',
429
- iconName: 'lucide:lineChart',
430
- element: DemoViewAnalytics,
431
- subViews: [
432
- {
433
- name: 'Overview',
434
- iconName: 'lucide:activity',
435
- element: DemoViewAnalytics,
436
- },
437
- {
438
- name: 'Reports',
439
- iconName: 'lucide:fileText',
440
- element: DemoViewDashboard,
441
- },
442
- ],
443
- },
444
- {
445
- name: 'Settings',
446
- iconName: 'lucide:settings',
447
- subViews: [
448
- {
449
- name: 'Profile',
450
- iconName: 'lucide:user',
451
- element: DemoViewSettings,
452
- },
453
- {
454
- name: 'Billing',
455
- iconName: 'lucide:creditCard',
456
- element: DemoViewSettings,
457
- },
458
- ],
459
- },
460
- ]}
461
- @logout=${() => {
462
- console.log('Logout event triggered');
463
- alert('Logout clicked!');
464
- }}
465
- @view-select=${(e) => {
466
- console.log('View selected:', e.detail.view.name);
467
- }}
468
- ></dees-simple-appdash>
469
- </div>
470
- `;
471
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zaW1wbGUtYXBwZGFzaC5kZW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtc2ltcGxlL2RlZXMtc2ltcGxlLWFwcGRhc2gvZGVlcy1zaW1wbGUtYXBwZGFzaC5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhHLE9BQU8sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyx3REFBd0QsQ0FBQztBQUNoRSxPQUFPLGdFQUFnRSxDQUFDO0FBQ3hFLE9BQU8sZ0VBQWdFLENBQUM7QUFDeEUsT0FBTyxvRUFBb0UsQ0FBQztBQUM1RSxPQUFPLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8seURBQXlELENBQUM7QUFHakUsOEJBQThCO0lBRXhCLGlCQUFpQjs0QkFEdEIsYUFBYSxDQUFDLHFCQUFxQixDQUFDOzs7O3NCQUNMLFdBQVc7aUNBQW5CLFNBQVEsV0FBVzs7OztZQUEzQyw2S0ErSUM7Ozs7UUE5SUMsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNkLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLEdBQUcsQ0FBQTs7Ozs7OztpQkFPVSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7Ozs7O0tBSzlDO1NBQ0YsQ0FBQztRQUVNLFVBQVUsR0FBaUI7WUFDakM7Z0JBQ0UsRUFBRSxFQUFFLE9BQU87Z0JBQ1gsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLEtBQUssRUFBRSxJQUFJO2dCQUNYLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxTQUFTO2dCQUNmLFdBQVcsRUFBRSxxQkFBcUI7Z0JBQ2xDLEtBQUssRUFBRSxTQUFTO2FBQ2pCO1lBQ0Q7Z0JBQ0Us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
311
+ export const demoFunc = () => demoApp(html `<dees-demo-simple-studio></dees-demo-simple-studio>`);
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zaW1wbGUtYXBwZGFzaC5kZW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtc2ltcGxlL2RlZXMtc2ltcGxlLWFwcGRhc2gvZGVlcy1zaW1wbGUtYXBwZGFzaC5kZW1vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFakgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sMkNBQTJDLENBQUM7QUFDbkQsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLHdEQUF3RCxDQUFDO0FBQ2hFLE9BQU8sNERBQTRELENBQUM7QUFDcEUsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLGlEQUFpRCxDQUFDO0FBS3pELE1BQU0sWUFBWSxHQUFHLEdBQWlCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtRQUN6RixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtRQUM5RSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtRQUNwRixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtLQUM1RSxFQUFFLFFBQVEsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLDBDQUEwQyxFQUFFLDhDQUE4QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBS2hKLGtCQUFrQjtzQkFBUyxXQUFXOzs7O2lCQUF0QyxrQkFBbUIsU0FBUSxXQUFXOzs7aUNBQ3pDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUFDLG9LQUFTLEtBQUssNkJBQUwsS0FBSyxxRkFBa0I7OztRQUFoQyx1RUFBaUIsWUFBWSxFQUFFLEVBQUM7UUFBaEMsSUFBUyxLQUFLLDJDQUFrQjtRQUFoQyxJQUFTLEtBQUssaURBQWtCO1FBQ3RELElBQUksdURBQWdCLFVBQVUsRUFBQztRQUNqQyxNQUFNLENBQUMsTUFBcUIsSUFBVSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0J4RSxDQUFDLENBQUM7UUFDSSxNQUFNO1lBQ1gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sT0FBTyxHQUE2QixDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3hKLE1BQU0sT0FBTyxHQUFtQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6TixPQUFPLElBQUksQ0FBQTtrSUFDaUgsS0FBSyxDQUFDLFFBQVEsYUFBYSxPQUFPLDZCQUE2QixPQUFPLHVCQUF1QixDQUFDO1lBQzVOLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztnQkFBRSxPQUFPLElBQUksQ0FBQTs2QkFDZixDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztvRUFDOUQsS0FBSyxDQUFDLElBQUk7OzBCQUVwRCxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxlQUFlO2dCQUFFLE9BQU8sSUFBSSxDQUFBO2tIQUNnRSxLQUFLLENBQUMsYUFBYTtvQkFDakgsQ0FBQyxLQUEyQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2tCQUNoRyxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUE7c0NBQ3VCLEdBQUcsV0FBVztnQkFDNUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUU7Z0JBQ2pKLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7Z0JBQ3ZOLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRTthQUM5SDs4SkFDdUosR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDO21IQUNwRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxlQUFlLFdBQVcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksMkRBQTJEO1lBQ25QLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsNkRBQTZELEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRTt5R0FDM0UsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUEsT0FBTyxLQUFLLE9BQU8sQ0FBQztZQUNqSixDQUFDO1FBQ1gsQ0FBQzs7O0lBRStDLHNCQUFzQjs0QkFBdkUsYUFBYSxDQUFDLDJCQUEyQixDQUFDOzs7O3NCQUFzQyxrQkFBa0I7c0NBQTFCLFNBQVEsV0FBa0I7Ozs7WUFBdkQsNktBQTBEOzs7WUFBcEQsdURBQXNCOzs7OztJQUN0QixzQkFBc0I7NEJBQXZFLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQzs7OztzQkFBc0Msa0JBQWtCO3NDQUExQixTQUFRLFdBQWtCOzs7O1lBQXZELDZLQUE4Rzs7O1lBQXhHLHVEQUFzQjs7UUFBaUQsSUFBSSxHQUFnQixVQUFVLENBQUM7Ozs7SUFDdkcscUJBQXFCOzRCQUFyRSxhQUFhLENBQUMsMEJBQTBCLENBQUM7Ozs7c0JBQXFDLGtCQUFrQjtxQ0FBMUIsU0FBUSxXQUFrQjs7OztZQUF0RCw2S0FBNEc7OztZQUF0Ryx1REFBcUI7O1FBQWlELElBQUksR0FBZ0IsU0FBUyxDQUFDOzs7O0lBQzlGLDJCQUEyQjs0QkFBakYsYUFBYSxDQUFDLGdDQUFnQyxDQUFDOzs7O3NCQUEyQyxrQkFBa0I7MkNBQTFCLFNBQVEsV0FBa0I7Ozs7WUFBNUQsNktBQXdIOzs7WUFBbEgsdURBQTJCOztRQUFpRCxJQUFJLEdBQWdCLGVBQWUsQ0FBQzs7OztJQUdqSyxvQkFBb0I7NEJBRHpCLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQzs7OztzQkFDTixXQUFXOzs7Ozs7Ozs7O29DQUFuQixTQUFRLFdBQVc7Ozs7aUNBQzNDLEtBQUssRUFBRTtxQ0FDUCxLQUFLLEVBQUU7bUNBQ1AsS0FBSyxFQUFFO1lBRkMsb0tBQWlCLEtBQUssNkJBQUwsS0FBSyxxRkFBa0I7WUFDeEMsZ0xBQWlCLFNBQVMsNkJBQVQsU0FBUyw2RkFBUztZQUNuQywwS0FBaUIsT0FBTyw2QkFBUCxPQUFPLHlGQUF1RTtZQUgxRyw2S0FnRUM7Ozs7UUEvRFUsdUVBQXlCLFlBQVksRUFBRSxFQUFDO1FBQXhDLElBQWlCLEtBQUssMkNBQWtCO1FBQXhDLElBQWlCLEtBQUssaURBQWtCO1FBQ3hDLG1JQUE2QixLQUFLLEdBQUM7UUFBbkMsSUFBaUIsU0FBUywrQ0FBUztRQUFuQyxJQUFpQixTQUFTLHFEQUFTO1FBQ25DLG1JQUEyQixtRUFBbUUsR0FBQztRQUEvRixJQUFpQixPQUFPLDZDQUF1RTtRQUEvRixJQUFpQixPQUFPLG1EQUF1RTtRQUNoRyxXQUFXLHlEQUFHLElBQUksdUJBQXVCLEVBQUUsRUFBQztRQUM1QyxLQUFLLEdBQVk7WUFDdkIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFO1lBQzdFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRTtZQUN6RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7b0JBQ25ELEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtvQkFDeEUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFO2lCQUNsRixFQUFFO1NBQ0osQ0FBQztRQUNGLElBQVksR0FBRyxLQUErQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUE7Ozs7Ozs7O0dBUXhFLENBQUMsQ0FBQztRQUNLLFFBQVE7WUFDZCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsaUJBQThDLENBQUM7WUFDaEgsSUFBSSxJQUFJO2dCQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQyxDQUFDO1FBQ00sT0FBTyxDQUFDLE9BQTZCLElBQVUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsS0FBSyxDQUFDLFNBQVM7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztZQUN2RixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDMUIsSUFBSSxDQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ08sUUFBUSxDQUFDLElBQWlCO1lBQ2hDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDaEgsSUFBSSxJQUFJO2dCQUFFLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNPLFlBQVksQ0FBQyxLQUFpQztZQUNwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzVCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFBQyxPQUFPO1lBQUMsQ0FBQztZQUN2RSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM5RSxJQUFJLENBQUMsT0FBTztvQkFBRSxPQUFPO2dCQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksWUFBWSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hLLElBQUksQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYTtvQkFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN2SCxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDMUYsQ0FBQztpQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFBQyxJQUFJLENBQUMsT0FBTyxHQUFHLG1CQUFtQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDO1lBQzlJLENBQUM7UUFDSCxDQUFDO1FBQ00sTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBO2tGQUNtRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsMEVBQTBFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO3VFQUN6USxJQUFJLENBQUMsU0FBUztxQ0FDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLHNLQUFzSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTttQ0FDNVAsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGNBQWMsSUFBSSxDQUFDLEtBQUssMEJBQTBCLElBQUksQ0FBQyxXQUFXO3VCQUM3RixJQUFJLENBQUMsUUFBUSxtQkFBbUIsSUFBSSxDQUFDLFlBQVksWUFBWSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcscUNBQXFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtrQ0FDakssSUFBSSxDQUFDLE9BQU8sV0FBVyxDQUFDO1FBQ3hELENBQUM7O1lBL0RHLHVEQUFvQjs7Ozs7QUFpRTFCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFBLHFEQUFxRCxDQUFDLENBQUMifQ==