@lukso/web-components 1.43.0 → 1.44.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.
@@ -151,9 +151,10 @@ exports.LuksoCheckbox = class LuksoCheckbox extends shared_tailwindElement_index
151
151
  </div>
152
152
  `;
153
153
  }
154
- handleChange(event) {
154
+ async handleChange(event) {
155
155
  const target = event.target;
156
156
  this.checked = target.checked;
157
+ await this.updateComplete;
157
158
  this.dispatchEvent(
158
159
  new CustomEvent("on-change", {
159
160
  detail: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-checkbox/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG3D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAA;AAE7C,qBACa,aAAc,SAAQ,eAAe;IAEhD,IAAI,SAAK;IAGT,EAAE,SAAK;IAGP,GAAG,EAAE,MAAM,GAAG,SAAS,CAAY;IAGnC,IAAI,EAAE,YAAY,CAAS;IAG3B,IAAI,EAAE,YAAY,CAAW;IAG7B,KAAK,SAAK;IAGV,OAAO,EAAE,OAAO,CAAQ;IAGxB,WAAW,SAAK;IAGhB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,OAAO,CAAC,QAAQ,CAAQ;IAGxB,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,sBAAsB,CAG3B;IAEH,OAAO,CAAC,kBAAkB,CAKvB;IAEH,OAAO,CAAC,kBAAkB,CAEvB;IAEH,OAAO,CAAC,qBAAqB,CAKyC;IAEtE,mBAAmB,IAAI,OAAO;IAY9B,gBAAgB,IAAI,OAAO;IAqB3B,aAAa;IAqBb,aAAa;IAQb,aAAa;IAiBb,uBAAuB;IAQvB,MAAM;IAoBN,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;CAKvB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAA;KAChC;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-checkbox/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG3D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAA;AACzD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,CAAA;AAE7C,qBACa,aAAc,SAAQ,eAAe;IAEhD,IAAI,SAAK;IAGT,EAAE,SAAK;IAGP,GAAG,EAAE,MAAM,GAAG,SAAS,CAAY;IAGnC,IAAI,EAAE,YAAY,CAAS;IAG3B,IAAI,EAAE,YAAY,CAAW;IAG7B,KAAK,SAAK;IAGV,OAAO,EAAE,OAAO,CAAQ;IAGxB,WAAW,SAAK;IAGhB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,OAAO,CAAC,QAAQ,CAAQ;IAGxB,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,sBAAsB,CAG3B;IAEH,OAAO,CAAC,kBAAkB,CAKvB;IAEH,OAAO,CAAC,kBAAkB,CAEvB;IAEH,OAAO,CAAC,qBAAqB,CAKyC;IAEtE,mBAAmB,IAAI,OAAO;IAY9B,gBAAgB,IAAI,OAAO;IAqB3B,aAAa;IAqBb,aAAa;IAQb,aAAa;IAiBb,uBAAuB;IAQvB,MAAM;YAoBQ,YAAY;IAkB1B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;CAKvB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAA;KAChC;CACF"}
@@ -147,9 +147,10 @@ let LuksoCheckbox = class extends TailwindElement {
147
147
  </div>
148
148
  `;
149
149
  }
150
- handleChange(event) {
150
+ async handleChange(event) {
151
151
  const target = event.target;
152
152
  this.checked = target.checked;
153
+ await this.updateComplete;
153
154
  this.dispatchEvent(
154
155
  new CustomEvent("on-change", {
155
156
  detail: {
@@ -139,9 +139,10 @@ exports.LuksoInput = class LuksoInput extends shared_tailwindElement_index.Tailw
139
139
  this.hasHighlight = true;
140
140
  }
141
141
  }
142
- handleBlur(event) {
142
+ async handleBlur(event) {
143
143
  this.hasHocus = false;
144
144
  this.hasHighlight = false;
145
+ await this.updateComplete;
145
146
  const target = event.target;
146
147
  const blurEvent = new CustomEvent("on-blur", {
147
148
  detail: {
@@ -153,7 +154,8 @@ exports.LuksoInput = class LuksoInput extends shared_tailwindElement_index.Tailw
153
154
  });
154
155
  this.dispatchEvent(blurEvent);
155
156
  }
156
- handleChange(event) {
157
+ async handleChange(event) {
158
+ await this.updateComplete;
157
159
  const target = event.target;
158
160
  const changeEvent = new CustomEvent("on-change", {
159
161
  detail: {
@@ -165,8 +167,10 @@ exports.LuksoInput = class LuksoInput extends shared_tailwindElement_index.Tailw
165
167
  });
166
168
  this.dispatchEvent(changeEvent);
167
169
  }
168
- handleInput(event) {
170
+ async handleInput(event) {
169
171
  const target = event.target;
172
+ this.value = target.value;
173
+ await this.updateComplete;
170
174
  const changeEvent = new CustomEvent("on-input", {
171
175
  detail: {
172
176
  value: target.value,
@@ -177,7 +181,8 @@ exports.LuksoInput = class LuksoInput extends shared_tailwindElement_index.Tailw
177
181
  });
178
182
  this.dispatchEvent(changeEvent);
179
183
  }
180
- handleKeyUp(event) {
184
+ async handleKeyUp(event) {
185
+ await this.updateComplete;
181
186
  const target = event.target;
182
187
  const keyEvent = new CustomEvent("on-key-up", {
183
188
  detail: {
@@ -189,7 +194,8 @@ exports.LuksoInput = class LuksoInput extends shared_tailwindElement_index.Tailw
189
194
  });
190
195
  this.dispatchEvent(keyEvent);
191
196
  }
192
- handleKeyDown(event) {
197
+ async handleKeyDown(event) {
198
+ await this.updateComplete;
193
199
  const target = event.target;
194
200
  const keyEvent = new CustomEvent("on-key-down", {
195
201
  detail: {
@@ -201,7 +207,8 @@ exports.LuksoInput = class LuksoInput extends shared_tailwindElement_index.Tailw
201
207
  });
202
208
  this.dispatchEvent(keyEvent);
203
209
  }
204
- handleKeyPress(event) {
210
+ async handleKeyPress(event) {
211
+ await this.updateComplete;
205
212
  const target = event.target;
206
213
  const keyEvent = new CustomEvent("on-key-press", {
207
214
  detail: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-input/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBACa,UAAW,SAAQ,eAAe;IAE7C,KAAK,SAAK;IAGV,IAAI,SAAK;IAGT,IAAI,SAAS;IAGb,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,YAAY,SAAO;IAGnB,EAAE,SAAK;IAGP,GAAG,EAAE,MAAM,GAAG,SAAS,CAAY;IAGnC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAY;IAGtC,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,IAAI,SAAK;IAGT,WAAW,SAAK;IAGhB,WAAW,UAAQ;IAGnB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,SAAS,UAAQ;IAGjB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAY;IAGnC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAY;IAGnC,UAAU,UAAQ;IAGlB,OAAO,CAAC,QAAQ,CAAQ;IAGxB,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,kBAAkB,CAE4C;IAEtE,OAAO,CAAC,iBAAiB,CAGyC;IAGlE,aAAa;IA+Cb,aAAa;IAUb,mBAAmB;IAQnB,aAAa;IAMb,YAAY;IAkBZ,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAavB,MAAM;CAYP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAA;KAC1B;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-input/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBACa,UAAW,SAAQ,eAAe;IAE7C,KAAK,SAAK;IAGV,IAAI,SAAK;IAGT,IAAI,SAAS;IAGb,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,YAAY,SAAO;IAGnB,EAAE,SAAK;IAGP,GAAG,EAAE,MAAM,GAAG,SAAS,CAAY;IAGnC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAY;IAGtC,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,IAAI,SAAK;IAGT,WAAW,SAAK;IAGhB,WAAW,UAAQ;IAGnB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,SAAS,UAAQ;IAGjB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAY;IAGnC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAY;IAGnC,UAAU,UAAQ;IAGlB,OAAO,CAAC,QAAQ,CAAQ;IAGxB,OAAO,CAAC,YAAY,CAAQ;IAE5B,OAAO,CAAC,kBAAkB,CAE4C;IAEtE,OAAO,CAAC,iBAAiB,CAGyC;IAGlE,aAAa;IA+Cb,aAAa;IAUb,mBAAmB;IAQnB,aAAa;IAMb,YAAY;IAkBZ,OAAO,CAAC,WAAW;YAOL,UAAU;YAgBV,YAAY;YAcZ,WAAW;YAeX,WAAW;YAcX,aAAa;YAcb,cAAc;IAc5B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAavB,MAAM;CAYP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAA;KAC1B;CACF"}
@@ -135,9 +135,10 @@ let LuksoInput = class extends TailwindElement {
135
135
  this.hasHighlight = true;
136
136
  }
137
137
  }
138
- handleBlur(event) {
138
+ async handleBlur(event) {
139
139
  this.hasHocus = false;
140
140
  this.hasHighlight = false;
141
+ await this.updateComplete;
141
142
  const target = event.target;
142
143
  const blurEvent = new CustomEvent("on-blur", {
143
144
  detail: {
@@ -149,7 +150,8 @@ let LuksoInput = class extends TailwindElement {
149
150
  });
150
151
  this.dispatchEvent(blurEvent);
151
152
  }
152
- handleChange(event) {
153
+ async handleChange(event) {
154
+ await this.updateComplete;
153
155
  const target = event.target;
154
156
  const changeEvent = new CustomEvent("on-change", {
155
157
  detail: {
@@ -161,8 +163,10 @@ let LuksoInput = class extends TailwindElement {
161
163
  });
162
164
  this.dispatchEvent(changeEvent);
163
165
  }
164
- handleInput(event) {
166
+ async handleInput(event) {
165
167
  const target = event.target;
168
+ this.value = target.value;
169
+ await this.updateComplete;
166
170
  const changeEvent = new CustomEvent("on-input", {
167
171
  detail: {
168
172
  value: target.value,
@@ -173,7 +177,8 @@ let LuksoInput = class extends TailwindElement {
173
177
  });
174
178
  this.dispatchEvent(changeEvent);
175
179
  }
176
- handleKeyUp(event) {
180
+ async handleKeyUp(event) {
181
+ await this.updateComplete;
177
182
  const target = event.target;
178
183
  const keyEvent = new CustomEvent("on-key-up", {
179
184
  detail: {
@@ -185,7 +190,8 @@ let LuksoInput = class extends TailwindElement {
185
190
  });
186
191
  this.dispatchEvent(keyEvent);
187
192
  }
188
- handleKeyDown(event) {
193
+ async handleKeyDown(event) {
194
+ await this.updateComplete;
189
195
  const target = event.target;
190
196
  const keyEvent = new CustomEvent("on-key-down", {
191
197
  detail: {
@@ -197,7 +203,8 @@ let LuksoInput = class extends TailwindElement {
197
203
  });
198
204
  this.dispatchEvent(keyEvent);
199
205
  }
200
- handleKeyPress(event) {
206
+ async handleKeyPress(event) {
207
+ await this.updateComplete;
201
208
  const target = event.target;
202
209
  const keyEvent = new CustomEvent("on-key-press", {
203
210
  detail: {
@@ -47,6 +47,7 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
47
47
  this.isSearching = false;
48
48
  this.noResultsText = "";
49
49
  this.showNoResults = false;
50
+ this.selected = void 0;
50
51
  this.hasFocus = false;
51
52
  this.hasHighlight = false;
52
53
  this.isDebouncing = false;
@@ -56,6 +57,20 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
56
57
  border-solid h-[48px] placeholder:text-neutral-70
57
58
  outline-none transition transition-all duration-150 appearance-none rounded-12`;
58
59
  }
60
+ willUpdate(changedProperties) {
61
+ if (changedProperties.has("selected")) {
62
+ const selectedOption = this.shadowRoot?.querySelector(
63
+ `[data-index="${changedProperties.get("selected")}"`
64
+ );
65
+ if (selectedOption) {
66
+ selectedOption.scrollIntoView({
67
+ behavior: "smooth",
68
+ block: "center",
69
+ inline: "nearest"
70
+ });
71
+ }
72
+ }
73
+ }
59
74
  inputTemplate() {
60
75
  return shared_tailwindElement_index.x`
61
76
  <input
@@ -84,6 +99,7 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
84
99
  @focus=${this.handleFocus}
85
100
  @input=${this.handleSearch}
86
101
  @blur=${this.handleBlur}
102
+ @click=${this.handleInputClick}
87
103
  @mouseenter=${this.handleMouseOver}
88
104
  @mouseleave=${this.handleMouseOut}
89
105
  />
@@ -114,10 +130,11 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
114
130
  const resultTemplates = [];
115
131
  this.resultsParsed = JSON.parse(this.results);
116
132
  for (const result of Object.entries(this.resultsParsed)) {
133
+ const index = Number(result[0]);
117
134
  if ("value" in result[1]) {
118
- resultTemplates.push(this.resultStringTemplate(result[1]));
135
+ resultTemplates.push(this.resultStringTemplate(result[1], index));
119
136
  } else if ("address" in result[1]) {
120
- resultTemplates.push(this.resultProfileTemplate(result[1]));
137
+ resultTemplates.push(this.resultProfileTemplate(result[1], index));
121
138
  } else {
122
139
  console.error("Unknown result type", result);
123
140
  }
@@ -169,19 +186,29 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
169
186
  ${innerTemplate}
170
187
  </div>`;
171
188
  }
172
- resultStringTemplate(result) {
189
+ resultStringTemplate(result, index$1) {
173
190
  return shared_tailwindElement_index.x`<div
174
191
  data-id="${result.id}"
175
- class="paragraph-inter-14-regular text-neutral-20 cursor-pointer hover:bg-neutral-98 rounded-8 p-2"
192
+ data-index="${index$1 + 1}"
193
+ class="paragraph-inter-14-regular text-neutral-20 cursor-pointer hover:bg-neutral-98 rounded-8 p-2 ${index.customClassMap(
194
+ {
195
+ ["bg-neutral-98"]: this.selected === index$1 + 1
196
+ }
197
+ )}'"
176
198
  @click=${() => this.handleSelect(result)}
177
199
  >
178
200
  ${result.value}
179
201
  </div>`;
180
202
  }
181
- resultProfileTemplate(result) {
203
+ resultProfileTemplate(result, index$1) {
182
204
  return shared_tailwindElement_index.x`<div
183
205
  data-id="${result.address}"
184
- class="cursor-pointer hover:bg-neutral-98 rounded-8 p-2 flex gap-2 items-center"
206
+ data-index="${index$1 + 1}"
207
+ class="cursor-pointer hover:bg-neutral-98 rounded-8 p-2 flex gap-2 items-center ${index.customClassMap(
208
+ {
209
+ ["bg-neutral-98"]: this.selected === index$1 + 1
210
+ }
211
+ )}"
185
212
  @click=${() => this.handleSelect(result)}
186
213
  >
187
214
  <lukso-profile
@@ -199,7 +226,8 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
199
226
  ></lukso-username>
200
227
  </div>`;
201
228
  }
202
- handleSelect(result) {
229
+ async handleSelect(result) {
230
+ await this.updateComplete;
203
231
  const selectEvent = new CustomEvent("on-select", {
204
232
  detail: {
205
233
  value: result
@@ -215,7 +243,8 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
215
243
  this.hasHighlight = true;
216
244
  }
217
245
  }
218
- handleBlur(event) {
246
+ async handleBlur(event) {
247
+ await this.updateComplete;
219
248
  this.hasFocus = false;
220
249
  this.hasHighlight = false;
221
250
  const target = event.target;
@@ -229,7 +258,21 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
229
258
  });
230
259
  this.dispatchEvent(blurEvent);
231
260
  }
232
- searchDebounce(searchTerm) {
261
+ async handleInputClick(event) {
262
+ await this.updateComplete;
263
+ const target = event.target;
264
+ const clickEvent = new CustomEvent("on-input-click", {
265
+ detail: {
266
+ value: target.value,
267
+ event
268
+ },
269
+ bubbles: false,
270
+ composed: true
271
+ });
272
+ this.dispatchEvent(clickEvent);
273
+ }
274
+ async searchDebounce(searchTerm) {
275
+ await this.updateComplete;
233
276
  this.value = searchTerm;
234
277
  this.debounceTimer = setTimeout(() => {
235
278
  const changeEvent = new CustomEvent("on-search", {
@@ -346,6 +389,9 @@ __decorateClass([
346
389
  __decorateClass([
347
390
  queryAssignedElements.e({ type: Boolean, attribute: "show-no-results" })
348
391
  ], exports.LuksoSearch.prototype, "showNoResults", 2);
392
+ __decorateClass([
393
+ queryAssignedElements.e({ type: Number })
394
+ ], exports.LuksoSearch.prototype, "selected", 2);
349
395
  __decorateClass([
350
396
  state.t()
351
397
  ], exports.LuksoSearch.prototype, "hasFocus", 2);
@@ -1,4 +1,4 @@
1
- import { TemplateResult } from 'lit';
1
+ import { PropertyValues, TemplateResult } from 'lit';
2
2
  import { Address } from '../../shared/types';
3
3
  export type SearchStringResult = {
4
4
  id?: string;
@@ -31,6 +31,7 @@ export declare class LuksoSearch extends LuksoSearch_base {
31
31
  isSearching: boolean;
32
32
  noResultsText: string;
33
33
  showNoResults: boolean;
34
+ selected: any;
34
35
  private hasFocus;
35
36
  private hasHighlight;
36
37
  private isDebouncing;
@@ -38,6 +39,7 @@ export declare class LuksoSearch extends LuksoSearch_base {
38
39
  private resultsParsed;
39
40
  private searchTerm;
40
41
  private defaultInputStyles;
42
+ willUpdate(changedProperties: PropertyValues<this>): void;
41
43
  inputTemplate(): TemplateResult<1>;
42
44
  labelTemplate(): TemplateResult<1>;
43
45
  descriptionTemplate(): TemplateResult<1>;
@@ -46,11 +48,12 @@ export declare class LuksoSearch extends LuksoSearch_base {
46
48
  noResultsTemplate(): TemplateResult<1>;
47
49
  loadingTemplate(): TemplateResult<1>;
48
50
  dropdownWrapperTemplate(innerTemplate: TemplateResult<1> | TemplateResult<1>[]): TemplateResult<1>;
49
- resultStringTemplate(result: SearchStringResult): TemplateResult<1>;
50
- resultProfileTemplate(result: SearchProfileResult): TemplateResult<1>;
51
+ resultStringTemplate(result: SearchStringResult, index: number): TemplateResult<1>;
52
+ resultProfileTemplate(result: SearchProfileResult, index: number): TemplateResult<1>;
51
53
  private handleSelect;
52
54
  private handleFocus;
53
55
  private handleBlur;
56
+ private handleInputClick;
54
57
  private searchDebounce;
55
58
  private handleSearch;
56
59
  private handleMouseOver;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,KAAK,CAAA;AAMnD,OAAO,yBAAyB,CAAA;AAChC,OAAO,4BAA4B,CAAA;AACnC,OAAO,6BAA6B,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,CAAA;;AAEnE,qBACa,WAAY,SAAQ,gBAA4B;IAE3D,KAAK,SAAK;IAGV,IAAI,SAAK;IAGT,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,YAAY,SAAQ;IAGpB,EAAE,SAAK;IAGP,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,WAAW,SAAK;IAGhB,WAAW,UAAQ;IAGnB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,SAAS,UAAQ;IAGjB,UAAU,UAAQ;IAGlB,OAAO,SAAK;IAGZ,QAAQ,SAAM;IAGd,WAAW,UAAQ;IAGnB,aAAa,SAAK;IAGlB,aAAa,UAAQ;IAGrB,OAAO,CAAC,QAAQ,CAAQ;IAGxB,OAAO,CAAC,YAAY,CAAQ;IAG5B,OAAO,CAAC,YAAY,CAAQ;IAG5B,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,aAAa,CAAqB;IAG1C,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,kBAAkB,CAEuD;IAEjF,aAAa;IAoCb,aAAa;IAUb,mBAAmB;IAQnB,aAAa;IAMb,eAAe;IAmBf,iBAAiB;IAQjB,eAAe;IAuCf,uBAAuB,CACrB,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE;IASxD,oBAAoB,CAAC,MAAM,EAAE,kBAAkB;IAU/C,qBAAqB,CAAC,MAAM,EAAE,mBAAmB;IAsBjD,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAMtB,MAAM;CAiCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAA;KAC5B;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-search/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,KAAK,CAAA;AAMnE,OAAO,yBAAyB,CAAA;AAChC,OAAO,4BAA4B,CAAA;AACnC,OAAO,6BAA6B,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,CAAA;;AAEnE,qBACa,WAAY,SAAQ,gBAA4B;IAE3D,KAAK,SAAK;IAGV,IAAI,SAAK;IAGT,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,YAAY,SAAQ;IAGpB,EAAE,SAAK;IAGP,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,WAAW,SAAK;IAGhB,WAAW,UAAQ;IAGnB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,SAAS,UAAQ;IAGjB,UAAU,UAAQ;IAGlB,OAAO,SAAK;IAGZ,QAAQ,SAAM;IAGd,WAAW,UAAQ;IAGnB,aAAa,SAAK;IAGlB,aAAa,UAAQ;IAGrB,QAAQ,MAAY;IAGpB,OAAO,CAAC,QAAQ,CAAQ;IAGxB,OAAO,CAAC,YAAY,CAAQ;IAG5B,OAAO,CAAC,YAAY,CAAQ;IAG5B,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,aAAa,CAAqB;IAG1C,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,kBAAkB,CAEuD;IAEjF,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC;IAiBlD,aAAa;IAqCb,aAAa;IAUb,mBAAmB;IAQnB,aAAa;IAMb,eAAe;IAqBf,iBAAiB;IAQjB,eAAe;IAuCf,uBAAuB,CACrB,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE;IASxD,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM;IAe9D,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM;YA2BlD,YAAY;IAY1B,OAAO,CAAC,WAAW;YAOL,UAAU;YAgBV,gBAAgB;YAchB,cAAc;IAiB5B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAMtB,MAAM;CAiCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAA;KAC5B;CACF"}
@@ -43,6 +43,7 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
43
43
  this.isSearching = false;
44
44
  this.noResultsText = "";
45
45
  this.showNoResults = false;
46
+ this.selected = void 0;
46
47
  this.hasFocus = false;
47
48
  this.hasHighlight = false;
48
49
  this.isDebouncing = false;
@@ -52,6 +53,20 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
52
53
  border-solid h-[48px] placeholder:text-neutral-70
53
54
  outline-none transition transition-all duration-150 appearance-none rounded-12`;
54
55
  }
56
+ willUpdate(changedProperties) {
57
+ if (changedProperties.has("selected")) {
58
+ const selectedOption = this.shadowRoot?.querySelector(
59
+ `[data-index="${changedProperties.get("selected")}"`
60
+ );
61
+ if (selectedOption) {
62
+ selectedOption.scrollIntoView({
63
+ behavior: "smooth",
64
+ block: "center",
65
+ inline: "nearest"
66
+ });
67
+ }
68
+ }
69
+ }
55
70
  inputTemplate() {
56
71
  return x`
57
72
  <input
@@ -80,6 +95,7 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
80
95
  @focus=${this.handleFocus}
81
96
  @input=${this.handleSearch}
82
97
  @blur=${this.handleBlur}
98
+ @click=${this.handleInputClick}
83
99
  @mouseenter=${this.handleMouseOver}
84
100
  @mouseleave=${this.handleMouseOut}
85
101
  />
@@ -110,10 +126,11 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
110
126
  const resultTemplates = [];
111
127
  this.resultsParsed = JSON.parse(this.results);
112
128
  for (const result of Object.entries(this.resultsParsed)) {
129
+ const index = Number(result[0]);
113
130
  if ("value" in result[1]) {
114
- resultTemplates.push(this.resultStringTemplate(result[1]));
131
+ resultTemplates.push(this.resultStringTemplate(result[1], index));
115
132
  } else if ("address" in result[1]) {
116
- resultTemplates.push(this.resultProfileTemplate(result[1]));
133
+ resultTemplates.push(this.resultProfileTemplate(result[1], index));
117
134
  } else {
118
135
  console.error("Unknown result type", result);
119
136
  }
@@ -165,19 +182,29 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
165
182
  ${innerTemplate}
166
183
  </div>`;
167
184
  }
168
- resultStringTemplate(result) {
185
+ resultStringTemplate(result, index) {
169
186
  return x`<div
170
187
  data-id="${result.id}"
171
- class="paragraph-inter-14-regular text-neutral-20 cursor-pointer hover:bg-neutral-98 rounded-8 p-2"
188
+ data-index="${index + 1}"
189
+ class="paragraph-inter-14-regular text-neutral-20 cursor-pointer hover:bg-neutral-98 rounded-8 p-2 ${customClassMap(
190
+ {
191
+ ["bg-neutral-98"]: this.selected === index + 1
192
+ }
193
+ )}'"
172
194
  @click=${() => this.handleSelect(result)}
173
195
  >
174
196
  ${result.value}
175
197
  </div>`;
176
198
  }
177
- resultProfileTemplate(result) {
199
+ resultProfileTemplate(result, index) {
178
200
  return x`<div
179
201
  data-id="${result.address}"
180
- class="cursor-pointer hover:bg-neutral-98 rounded-8 p-2 flex gap-2 items-center"
202
+ data-index="${index + 1}"
203
+ class="cursor-pointer hover:bg-neutral-98 rounded-8 p-2 flex gap-2 items-center ${customClassMap(
204
+ {
205
+ ["bg-neutral-98"]: this.selected === index + 1
206
+ }
207
+ )}"
181
208
  @click=${() => this.handleSelect(result)}
182
209
  >
183
210
  <lukso-profile
@@ -195,7 +222,8 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
195
222
  ></lukso-username>
196
223
  </div>`;
197
224
  }
198
- handleSelect(result) {
225
+ async handleSelect(result) {
226
+ await this.updateComplete;
199
227
  const selectEvent = new CustomEvent("on-select", {
200
228
  detail: {
201
229
  value: result
@@ -211,7 +239,8 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
211
239
  this.hasHighlight = true;
212
240
  }
213
241
  }
214
- handleBlur(event) {
242
+ async handleBlur(event) {
243
+ await this.updateComplete;
215
244
  this.hasFocus = false;
216
245
  this.hasHighlight = false;
217
246
  const target = event.target;
@@ -225,7 +254,21 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
225
254
  });
226
255
  this.dispatchEvent(blurEvent);
227
256
  }
228
- searchDebounce(searchTerm) {
257
+ async handleInputClick(event) {
258
+ await this.updateComplete;
259
+ const target = event.target;
260
+ const clickEvent = new CustomEvent("on-input-click", {
261
+ detail: {
262
+ value: target.value,
263
+ event
264
+ },
265
+ bubbles: false,
266
+ composed: true
267
+ });
268
+ this.dispatchEvent(clickEvent);
269
+ }
270
+ async searchDebounce(searchTerm) {
271
+ await this.updateComplete;
229
272
  this.value = searchTerm;
230
273
  this.debounceTimer = setTimeout(() => {
231
274
  const changeEvent = new CustomEvent("on-search", {
@@ -342,6 +385,9 @@ __decorateClass([
342
385
  __decorateClass([
343
386
  e({ type: Boolean, attribute: "show-no-results" })
344
387
  ], LuksoSearch.prototype, "showNoResults", 2);
388
+ __decorateClass([
389
+ e({ type: Number })
390
+ ], LuksoSearch.prototype, "selected", 2);
345
391
  __decorateClass([
346
392
  t()
347
393
  ], LuksoSearch.prototype, "hasFocus", 2);
@@ -10,4 +10,6 @@ export declare const ProfileSearch: any;
10
10
  export declare const SearchingState: any;
11
11
  /** To show that search hes no results add `show-no-results` attribute. You can also customize no results text with `no-results-text` attribute. */
12
12
  export declare const NoResults: any;
13
+ /** Example of selected option. */
14
+ export declare const SelectedOption: any;
13
15
  //# sourceMappingURL=lukso-search.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lukso-search.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-search/lukso-search.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAGhD,OAAO,SAAS,CAAA;AAEhB,mHAAmH;AACnH,QAAA,MAAM,IAAI,EAAE,IAsOX,CAAA;AAED,eAAe,IAAI,CAAA;AA4EnB,+CAA+C;AAC/C,eAAO,MAAM,aAAa,KAAoB,CAAA;AAM9C,gDAAgD;AAChD,eAAO,MAAM,aAAa,KAAoB,CAAA;AAsB9C,0FAA0F;AAC1F,eAAO,MAAM,cAAc,KAAoB,CAAA;AAQ/C,mJAAmJ;AACnJ,eAAO,MAAM,SAAS,KAAoB,CAAA"}
1
+ {"version":3,"file":"lukso-search.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-search/lukso-search.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAGhD,OAAO,SAAS,CAAA;AAEhB,mHAAmH;AACnH,QAAA,MAAM,IAAI,EAAE,IA6OX,CAAA;AAED,eAAe,IAAI,CAAA;AA8EnB,+CAA+C;AAC/C,eAAO,MAAM,aAAa,KAAoB,CAAA;AAM9C,gDAAgD;AAChD,eAAO,MAAM,aAAa,KAAoB,CAAA;AAsB9C,0FAA0F;AAC1F,eAAO,MAAM,cAAc,KAAoB,CAAA;AAQ/C,mJAAmJ;AACnJ,eAAO,MAAM,SAAS,KAAoB,CAAA;AAQ1C,mCAAmC;AACnC,eAAO,MAAM,cAAc,KAAoB,CAAA"}
@@ -28,9 +28,10 @@ exports.LuksoSwitch = class LuksoSwitch extends shared_tailwindElement_index.Tai
28
28
  this.defaultLabelStyles = `transition duration-300 ease-in block h-6 overflow-hidden rounded-full relative inline-block w-10`;
29
29
  this.defaultInputStyles = `absolute block w-6 h-6 rounded-full bg-white border-2 appearance-none transition duration-300 ease-in`;
30
30
  }
31
- handleChange(event) {
32
- this.isChecked = !this.isChecked;
31
+ async handleChange(event) {
33
32
  const target = event.target;
33
+ this.isChecked = target.checked;
34
+ await this.updateComplete;
34
35
  const changeEvent = new CustomEvent("on-change", {
35
36
  detail: {
36
37
  value: target.checked,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-switch/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBACa,WAAY,SAAQ,eAAe;IAE9C,KAAK,SAAa;IAGlB,OAAO,CAAC,SAAS,CAAQ;IAMzB,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,kBAAkB,CAAsG;IAEhI,OAAO,CAAC,kBAAkB,CAA0G;IAEpI,MAAM;CAiCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAA;KAC5B;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-switch/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAG3D,qBACa,WAAY,SAAQ,eAAe;IAE9C,KAAK,SAAa;IAGlB,OAAO,CAAC,SAAS,CAAQ;IAMzB,OAAO,CAAC,UAAU,CAAQ;YAEZ,YAAY;IAe1B,OAAO,CAAC,kBAAkB,CAAsG;IAEhI,OAAO,CAAC,kBAAkB,CAA0G;IAEpI,MAAM;CAiCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAA;KAC5B;CACF"}
@@ -24,9 +24,10 @@ let LuksoSwitch = class extends TailwindElement {
24
24
  this.defaultLabelStyles = `transition duration-300 ease-in block h-6 overflow-hidden rounded-full relative inline-block w-10`;
25
25
  this.defaultInputStyles = `absolute block w-6 h-6 rounded-full bg-white border-2 appearance-none transition duration-300 ease-in`;
26
26
  }
27
- handleChange(event) {
28
- this.isChecked = !this.isChecked;
27
+ async handleChange(event) {
29
28
  const target = event.target;
29
+ this.isChecked = target.checked;
30
+ await this.updateComplete;
30
31
  const changeEvent = new CustomEvent("on-change", {
31
32
  detail: {
32
33
  value: target.checked,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lukso/web-components",
3
- "version": "1.43.0",
3
+ "version": "1.44.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",