@design.estate/dees-catalog 1.0.236 → 1.0.238

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 (43) hide show
  1. package/dist_bundle/bundle.js +101 -94
  2. package/dist_bundle/bundle.js.map +3 -3
  3. package/dist_ts_web/00_commitinfo_data.js +1 -1
  4. package/dist_ts_web/elements/dees-button.js +1 -2
  5. package/dist_ts_web/elements/dees-chips.js +1 -2
  6. package/dist_ts_web/elements/dees-contextmenu.js +1 -3
  7. package/dist_ts_web/elements/dees-dataview-codebox.js +10 -4
  8. package/dist_ts_web/elements/dees-dataview-statusobject.js +1 -2
  9. package/dist_ts_web/elements/dees-input-checkbox.js +1 -2
  10. package/dist_ts_web/elements/dees-input-dropdown.d.ts +5 -0
  11. package/dist_ts_web/elements/dees-input-dropdown.js +65 -15
  12. package/dist_ts_web/elements/dees-input-fileupload.js +1 -2
  13. package/dist_ts_web/elements/dees-input-quantityselector.js +1 -2
  14. package/dist_ts_web/elements/dees-input-radio.js +1 -2
  15. package/dist_ts_web/elements/dees-input-text.js +1 -2
  16. package/dist_ts_web/elements/dees-mobilenavigation.js +1 -2
  17. package/dist_ts_web/elements/dees-modal.js +1 -2
  18. package/dist_ts_web/elements/dees-speechbubble.js +1 -2
  19. package/dist_ts_web/elements/dees-stepper.js +1 -2
  20. package/dist_ts_web/elements/dees-table.js +2 -4
  21. package/dist_ts_web/elements/dees-windowcontrols.d.ts +2 -0
  22. package/dist_ts_web/elements/dees-windowcontrols.js +48 -13
  23. package/dist_watch/bundle.js +117 -54
  24. package/dist_watch/bundle.js.map +3 -3
  25. package/package.json +1 -1
  26. package/ts_web/00_commitinfo_data.ts +1 -1
  27. package/ts_web/elements/dees-button.ts +0 -1
  28. package/ts_web/elements/dees-chips.ts +0 -1
  29. package/ts_web/elements/dees-contextmenu.ts +0 -2
  30. package/ts_web/elements/dees-dataview-codebox.ts +9 -3
  31. package/ts_web/elements/dees-dataview-statusobject.ts +0 -1
  32. package/ts_web/elements/dees-input-checkbox.ts +0 -1
  33. package/ts_web/elements/dees-input-dropdown.ts +61 -14
  34. package/ts_web/elements/dees-input-fileupload.ts +0 -1
  35. package/ts_web/elements/dees-input-quantityselector.ts +0 -1
  36. package/ts_web/elements/dees-input-radio.ts +0 -1
  37. package/ts_web/elements/dees-input-text.ts +0 -1
  38. package/ts_web/elements/dees-mobilenavigation.ts +0 -1
  39. package/ts_web/elements/dees-modal.ts +0 -1
  40. package/ts_web/elements/dees-speechbubble.ts +0 -1
  41. package/ts_web/elements/dees-stepper.ts +0 -1
  42. package/ts_web/elements/dees-table.ts +1 -3
  43. package/ts_web/elements/dees-windowcontrols.ts +37 -12
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-catalog",
3
- "version": "1.0.236",
3
+ "version": "1.0.238",
4
4
  "private": false,
5
5
  "description": "website for lossless.com",
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: '1.0.236',
6
+ version: '1.0.238',
7
7
  description: 'website for lossless.com'
8
8
  }
@@ -93,7 +93,6 @@ export class DeesButton extends DeesElement {
93
93
  }
94
94
 
95
95
  .button:hover {
96
- cursor: pointer;
97
96
  background: #039be5;
98
97
  color: #ffffff;
99
98
  border: 1px solid #039be5;
@@ -81,7 +81,6 @@ export class DeesChips extends DeesElement {
81
81
 
82
82
  .chip:hover {
83
83
  background: #666666;
84
- cursor: pointer;
85
84
  }
86
85
 
87
86
  .chip.selected {
@@ -130,12 +130,10 @@ export class DeesContextmenu extends DeesElement {
130
130
  }
131
131
 
132
132
  .mainbox .menuitem:hover {
133
- cursor: pointer;
134
133
  background: ${cssManager.bdTheme('#00000010', '#ffffff10')};
135
134
  }
136
135
 
137
136
  .mainbox .menuitem:active {
138
- cursor: pointer;
139
137
  background: #ffffff05;
140
138
  }
141
139
  `,
@@ -61,17 +61,22 @@ export class DeesDataviewCodebox extends DeesElement {
61
61
  }
62
62
 
63
63
  .appbar {
64
+ position: relative;
64
65
  color: ${cssManager.bdTheme('#333', '#ccc')};
65
66
  background: ${cssManager.bdTheme('#ffffff', '#161616')};
66
67
  border-bottom: 1px solid ${cssManager.bdTheme('#eeeeeb', '#222222')};
67
68
  height: 24px;
69
+ display: flex;
68
70
  font-size: 12px;
69
71
  line-height: 24px;
72
+ justify-content: center;
73
+ align-items: center;
70
74
  }
71
75
 
72
-
73
-
74
76
  .appbar .fileName {
77
+ line-height: inherit;
78
+ position: relative;
79
+ flex: 1;
75
80
  text-align: center;
76
81
  }
77
82
 
@@ -175,8 +180,9 @@ export class DeesDataviewCodebox extends DeesElement {
175
180
  }}"
176
181
  >
177
182
  <div class="appbar">
178
- <dees-windowcontrols></dees-windowcontrols>
183
+ <dees-windowcontrols type="mac" position="left"></dees-windowcontrols>
179
184
  <div class="fileName">index.ts</div>
185
+ <dees-windowcontrols type="mac" position="right"></dees-windowcontrols>
180
186
  </div>
181
187
  <div class="codegrid">
182
188
  <div class="lineNumbers">
@@ -61,7 +61,6 @@ export class DeesDataviewStatusobject extends DeesElement {
61
61
  }
62
62
 
63
63
  .copyMain {
64
- cursor: pointer;
65
64
  font-size: 10px;
66
65
  font-weight: 600;
67
66
  text-transform: uppercase;
@@ -62,7 +62,6 @@ export class DeesInputCheckbox extends DeesElement {
62
62
  display: block;
63
63
  position: relative;
64
64
  margin: 20px 0px;
65
- cursor: pointer;
66
65
  }
67
66
 
68
67
  .maincontainer {
@@ -59,6 +59,15 @@ export class DeesInputDropdown extends DeesElement {
59
59
  @state()
60
60
  public opensToTop: boolean = false;
61
61
 
62
+ @state()
63
+ private filteredOptions: { option: string; key: string; payload?: any }[] = [];
64
+
65
+ @state()
66
+ private highlightedIndex: number = 0;
67
+
68
+ @state()
69
+ public isOpened = false;
70
+
62
71
  public static styles = [
63
72
  cssManager.defaultStyles,
64
73
  css`
@@ -85,7 +94,6 @@ export class DeesInputDropdown extends DeesElement {
85
94
 
86
95
  .selectedBox {
87
96
  user-select: none;
88
- cursor: pointer;
89
97
  position: relative;
90
98
  max-width: 420px;
91
99
  height: 40px;
@@ -99,18 +107,17 @@ export class DeesInputDropdown extends DeesElement {
99
107
  transition: all 0.2s ease;
100
108
  }
101
109
 
102
- .accentTop {
103
- border-top: 1px solid #e4002b;
110
+ .accentBottom {
111
+ background: #ffffff10;
104
112
  }
105
113
 
106
- .accentBottom {
107
- border-bottom: 1px solid #e4002b;
114
+ .accentTop {
115
+ background: #ffffff10;
108
116
  }
109
117
 
110
118
  .selectionBox {
111
119
  will-change: transform;
112
120
  pointer-events: none;
113
- cursor: pointer;
114
121
  transition: all 0.2s ease;
115
122
  opacity: 0;
116
123
  background: ${cssManager.bdTheme('#ffffff', '#222222')};
@@ -118,22 +125,31 @@ export class DeesInputDropdown extends DeesElement {
118
125
  box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
119
126
  min-height: 40px;
120
127
  border-radius: 3px;
121
- padding: 4px;
122
- transform: scale(0.99, 0.99);
128
+ padding: 4px 8px;
129
+ transform: scale(0.98, 0.98);
123
130
  position: absolute;
131
+ user-select: none;
124
132
  }
125
133
 
126
134
  .selectionBox.show {
127
135
  pointer-events: all;
128
136
  opacity: 1;
129
137
  transform: scale(1, 1);
138
+ box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.8);
130
139
  }
131
140
 
132
141
  .option {
133
142
  transition: all 0.1s;
134
- line-height: 40px;
143
+ line-height: 32px;
135
144
  padding: 0px 4px;
136
145
  border-radius: 3px;
146
+ margin: 4px 0px;
147
+ }
148
+
149
+ .option.highlighted {
150
+ border-left: 2px solid #0277bd;
151
+ padding-left: 6px;
152
+ background: #ffffff20;
137
153
  }
138
154
 
139
155
  .option:hover {
@@ -169,20 +185,21 @@ export class DeesInputDropdown extends DeesElement {
169
185
 
170
186
  public render(): TemplateResult {
171
187
  return html`
172
- <div class="maincontainer">
188
+ <div class="maincontainer" @keydown="${this.isOpened ? this.handleKeyDown : undefined}">
173
189
  ${this.label ? html`<div class="label">${this.label}</div>` : html``}
174
190
  <div class="selectionBox">
175
191
  ${this.enableSearch && !this.opensToTop
176
192
  ? html`
177
193
  <div class="search">
178
- <input type="text" placeholder="Search" />
194
+ <input type="text" placeholder="Search" @input="${this.handleSearch}" />
179
195
  </div>
180
196
  `
181
197
  : null}
182
- ${this.options.map((option) => {
198
+ ${this.filteredOptions.map((option, index) => {
199
+ const isHighlighted = this.highlightedIndex === index;
183
200
  return html`
184
201
  <div
185
- class="option"
202
+ class="option ${isHighlighted ? 'highlighted' : ''}"
186
203
  @click=${() => {
187
204
  this.updateSelection(option);
188
205
  }}
@@ -194,7 +211,7 @@ export class DeesInputDropdown extends DeesElement {
194
211
  ${this.enableSearch && this.opensToTop
195
212
  ? html`
196
213
  <div class="search">
197
- <input type="text" placeholder="Search" />
214
+ <input type="text" placeholder="Search" @input="${this.handleSearch}" />
198
215
  </div>
199
216
  `
200
217
  : null}
@@ -217,6 +234,7 @@ export class DeesInputDropdown extends DeesElement {
217
234
 
218
235
  firstUpdated() {
219
236
  this.selectedOption = this.selectedOption || this.options[0] || null;
237
+ this.filteredOptions = this.options; // Initialize filteredOptions
220
238
  }
221
239
 
222
240
  public async updateSelection(selectedOption) {
@@ -237,6 +255,7 @@ export class DeesInputDropdown extends DeesElement {
237
255
  private isElevated: boolean = false;
238
256
  private windowOverlay: DeesWindowLayer;
239
257
  public async toggleSelectionBox() {
258
+ this.isOpened = !this.isOpened;
240
259
  const domtoolsInstance = await this.domtoolsPromise;
241
260
  const selectedBox: HTMLElement = this.shadowRoot.querySelector('.selectedBox');
242
261
  const selectionBox: HTMLElement = this.shadowRoot.querySelector('.selectionBox');
@@ -298,4 +317,32 @@ export class DeesInputDropdown extends DeesElement {
298
317
  }
299
318
  }
300
319
  }
320
+
321
+ private handleSearch(event: Event): void {
322
+ const searchTerm = (event.target as HTMLInputElement).value.toLowerCase();
323
+ this.filteredOptions = this.options.filter((option) =>
324
+ option.option.toLowerCase().includes(searchTerm)
325
+ );
326
+ this.highlightedIndex = 0; // Reset highlighted index
327
+ }
328
+
329
+ private handleKeyDown(event: KeyboardEvent): void {
330
+ if (!this.isOpened) {
331
+ console.log('discarded key event. Check why this function is called.');
332
+ return;
333
+ }
334
+ const key = event.key;
335
+ const maxIndex = this.filteredOptions.length - 1;
336
+
337
+ if (key === 'ArrowDown') {
338
+ this.highlightedIndex = this.highlightedIndex + 1 > maxIndex ? 0 : this.highlightedIndex + 1;
339
+ event.preventDefault();
340
+ } else if (key === 'ArrowUp') {
341
+ this.highlightedIndex = this.highlightedIndex - 1 < 0 ? maxIndex : this.highlightedIndex - 1;
342
+ event.preventDefault();
343
+ } else if (key === 'Enter') {
344
+ this.updateSelection(this.filteredOptions[this.highlightedIndex]);
345
+ event.preventDefault();
346
+ }
347
+ }
301
348
  }
@@ -88,7 +88,6 @@ export class DeesInputFileupload extends DeesElement {
88
88
 
89
89
  .uploadButton {
90
90
  position: relative;
91
- cursor: pointer;
92
91
  padding: 8px;
93
92
  max-width: 600px;
94
93
  background: ${cssManager.bdTheme('#fafafa', '#333333')};
@@ -85,7 +85,6 @@ export class DeesInputQuantitySelector extends DeesElement {
85
85
  }
86
86
 
87
87
  .selector:hover {
88
- cursor: pointer;
89
88
  }
90
89
 
91
90
  .quantity {
@@ -51,7 +51,6 @@ export class DeesInputRadio extends DeesElement {
51
51
  display: block;
52
52
  position: relative;
53
53
  margin: 20px 0px;
54
- cursor: pointer;
55
54
  }
56
55
 
57
56
  .maincontainer {
@@ -147,7 +147,6 @@ export class DeesInputText extends DeesElement {
147
147
  }
148
148
 
149
149
  .showPassword:hover {
150
- cursor: pointer;
151
150
  background: ${cssManager.bdTheme('#00000010', '#ffffff10')};
152
151
  }
153
152
 
@@ -105,7 +105,6 @@ export class DeesMobilenavigation extends DeesElement {
105
105
  padding: 8px;
106
106
  margin-left: -8px;
107
107
  margin-right: -8px;
108
- cursor: pointer;
109
108
  border-radius: 3px;
110
109
  }
111
110
  .menuItem:hover {
@@ -133,7 +133,6 @@ export class DeesModal extends DeesElement {
133
133
  text-align: center;
134
134
  font-size: 14px;
135
135
  border-right: 1px solid #222;
136
- cursor: pointer;
137
136
  }
138
137
  .modal .bottomButtons .bottomButton:hover {
139
138
  background: #222;
@@ -52,7 +52,6 @@ export class DeesSpeechbubble extends DeesElement {
52
52
  display: block;
53
53
  box-sizing: border-box;
54
54
  color: ${cssManager.bdTheme('#333', '#fff')};
55
- cursor: pointer;
56
55
  user-select: none;
57
56
  }
58
57
  :host([hidden]) {
@@ -144,7 +144,6 @@ export class DeesStepper extends DeesElement {
144
144
  font-size: 12px;
145
145
  border-bottom-right-radius: 3px;
146
146
  background: ${cssManager.bdTheme('#00000008', '#ffffff08')};
147
- cursor: pointer;
148
147
  }
149
148
 
150
149
  .step .goBack:hover {
@@ -202,7 +202,6 @@ export class DeesTable<T> extends DeesElement {
202
202
 
203
203
  .headerActions {
204
204
  margin-left: auto;
205
- cursor: pointer;
206
205
  }
207
206
  .headerAction {
208
207
  display: flex;
@@ -236,7 +235,7 @@ export class DeesTable<T> extends DeesElement {
236
235
  text-align: left;
237
236
  }
238
237
  tr:hover {
239
- cursor: pointer;
238
+
240
239
  }
241
240
  tr:hover td {
242
241
  background: ${cssManager.bdTheme('#22222210', '#ffffff10')};
@@ -343,7 +342,6 @@ export class DeesTable<T> extends DeesElement {
343
342
  }
344
343
 
345
344
  .footerActions .footerAction {
346
- cursor: pointer;
347
345
  padding: 8px 16px;
348
346
  display: flex;
349
347
  }
@@ -19,18 +19,37 @@ declare global {
19
19
 
20
20
  @customElement('dees-windowcontrols')
21
21
  export class DeesWindowControls extends DeesElement {
22
+ // STATIC
22
23
  public static demo = () => html`<dees-windowcontrols></dees-windowcontrols>`;
23
24
 
25
+ // Instance
26
+ @property({
27
+ reflect: true,
28
+ })
29
+ public type: 'mac' | 'linux' | 'windows' = 'mac';
30
+
31
+ @property({
32
+ reflect: true,
33
+ })
34
+ public position: 'left' | 'right' = 'left';
35
+
24
36
  public static styles = [
25
37
  cssManager.defaultStyles,
26
38
  css`
39
+ :host {
40
+ position: relative;
41
+ display: block;
42
+ box-sizing: border-box;
43
+ padding-left: 16px;
44
+ padding-right: 16px;
45
+ }
46
+
27
47
  .windowControls {
28
- position: absolute;
29
- top: 6px;
30
- left: 20px;
31
- width: 200px;
32
- display: grid;
33
- grid-template-columns: 24px 24px 24px;
48
+ height: 100%;
49
+ position: relative;
50
+ display: flex;
51
+ justify-content: center;
52
+ align-items: center;
34
53
  }
35
54
 
36
55
  .windowControls div {
@@ -40,16 +59,17 @@ export class DeesWindowControls extends DeesElement {
40
59
  border-radius: 50%;
41
60
  margin: 0px;
42
61
  padding: 0px;
43
- cursor: pointer;
44
62
  background: #222222;
45
63
  }
46
64
 
47
65
  .windowControls div.close {
48
66
  background: #ff5f57;
67
+ margin-right: 12px;
49
68
  }
50
69
 
51
70
  .windowControls div.toDock {
52
71
  background: #ffbd2e;
72
+ margin-right: 12px;
53
73
  }
54
74
 
55
75
  .windowControls div.minMax {
@@ -64,11 +84,16 @@ export class DeesWindowControls extends DeesElement {
64
84
 
65
85
  public render(): TemplateResult {
66
86
  return html`
67
- <div class="windowControls">
68
- <div class="close"></div>
69
- <div class="toDock"></div>
70
- <div class="minMax"></div>
71
- </div>
87
+ ${(this.type === 'mac' && this.position === 'left') ||
88
+ ((this.type === 'linux' || this.type === 'windows') && this.position === 'right')
89
+ ? html`
90
+ <div class="windowControls">
91
+ <div class="close"></div>
92
+ <div class="toDock"></div>
93
+ <div class="minMax"></div>
94
+ </div>
95
+ `
96
+ : html``}
72
97
  `;
73
98
  }
74
99
  }