@lukso/web-components 1.57.0 → 1.58.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 (65) hide show
  1. package/dist/components/index.cjs +3 -3
  2. package/dist/components/index.js +3 -3
  3. package/dist/components/lukso-button/index.cjs +1 -1
  4. package/dist/components/lukso-button/index.js +1 -1
  5. package/dist/components/lukso-card/index.cjs +10 -6
  6. package/dist/components/lukso-card/index.d.ts.map +1 -1
  7. package/dist/components/lukso-card/index.js +10 -6
  8. package/dist/components/lukso-checkbox/index.cjs +1 -1
  9. package/dist/components/lukso-checkbox/index.js +1 -1
  10. package/dist/components/lukso-footer/index.cjs +1 -1
  11. package/dist/components/lukso-footer/index.js +1 -1
  12. package/dist/components/lukso-icon/index.cjs +2 -2
  13. package/dist/components/lukso-icon/index.js +2 -2
  14. package/dist/components/lukso-input/index.cjs +1 -1
  15. package/dist/components/lukso-input/index.js +1 -1
  16. package/dist/components/lukso-modal/index.cjs +1 -1
  17. package/dist/components/lukso-modal/index.js +1 -1
  18. package/dist/components/lukso-navbar/index.cjs +118 -49
  19. package/dist/components/lukso-navbar/index.d.ts +4 -3
  20. package/dist/components/lukso-navbar/index.d.ts.map +1 -1
  21. package/dist/components/lukso-navbar/index.js +118 -49
  22. package/dist/components/lukso-navbar/lukso-navbar.stories.d.ts +2 -0
  23. package/dist/components/lukso-navbar/lukso-navbar.stories.d.ts.map +1 -1
  24. package/dist/components/lukso-profile/index.cjs +2 -2
  25. package/dist/components/lukso-profile/index.js +2 -2
  26. package/dist/components/lukso-progress/index.cjs +2 -2
  27. package/dist/components/lukso-progress/index.js +2 -2
  28. package/dist/components/lukso-sanitize/index.cjs +1 -1
  29. package/dist/components/lukso-sanitize/index.js +1 -1
  30. package/dist/components/lukso-search/index.cjs +45 -3
  31. package/dist/components/lukso-search/index.d.ts +4 -0
  32. package/dist/components/lukso-search/index.d.ts.map +1 -1
  33. package/dist/components/lukso-search/index.js +45 -3
  34. package/dist/components/lukso-select/index.cjs +6 -3
  35. package/dist/components/lukso-select/index.d.ts.map +1 -1
  36. package/dist/components/lukso-select/index.js +6 -3
  37. package/dist/components/lukso-share/index.cjs +1 -1
  38. package/dist/components/lukso-share/index.js +1 -1
  39. package/dist/components/lukso-switch/index.cjs +2 -2
  40. package/dist/components/lukso-switch/index.js +2 -2
  41. package/dist/components/lukso-tag/index.cjs +2 -2
  42. package/dist/components/lukso-tag/index.js +2 -2
  43. package/dist/components/lukso-terms/index.cjs +2 -2
  44. package/dist/components/lukso-terms/index.js +2 -2
  45. package/dist/components/lukso-test/index.cjs +1 -1
  46. package/dist/components/lukso-test/index.js +1 -1
  47. package/dist/components/lukso-tooltip/index.cjs +1 -1
  48. package/dist/components/lukso-tooltip/index.js +1 -1
  49. package/dist/components/lukso-username/index.cjs +2 -2
  50. package/dist/components/lukso-username/index.js +2 -2
  51. package/dist/components/lukso-wizard/index.cjs +1 -1
  52. package/dist/components/lukso-wizard/index.js +1 -1
  53. package/dist/index-2cbce78e.js +39 -0
  54. package/dist/index-4964f1aa.cjs +46 -0
  55. package/dist/{index-8a1b283c.js → index-61181f2e.js} +1 -1
  56. package/dist/{index-67517059.cjs → index-b1813aa6.cjs} +1 -1
  57. package/dist/index.cjs +3 -3
  58. package/dist/index.js +3 -3
  59. package/dist/shared/tailwind-element/index.cjs +1 -1
  60. package/dist/shared/tailwind-element/index.js +1 -1
  61. package/dist/{style-map-fc150c58.cjs → style-map-0e5b61bc.cjs} +1 -1
  62. package/dist/{style-map-7a7ca2de.js → style-map-ec917798.js} +1 -1
  63. package/package.json +1 -1
  64. package/dist/index-4e37f431.cjs +0 -46
  65. package/dist/index-df3f9aca.js +0 -39
@@ -1,11 +1,12 @@
1
- import { a as TailwindElement, x } from '../../index-df3f9aca.js';
1
+ import { a as TailwindElement, x, A } from '../../index-2cbce78e.js';
2
2
  import { n, e } from '../../query-assigned-elements-5d94572f.js';
3
3
  import { t } from '../../state-0a779257.js';
4
- import { c as customClassMap } from '../../index-5e194caf.js';
4
+ import { s as se } from '../../index-c55a1069.js';
5
5
  import '../lukso-icon/index.js';
6
6
  import '../lukso-tag/index.js';
7
+ import '../../style-map-ec917798.js';
7
8
  import '../../directive-2bb7789e.js';
8
- import '../../style-map-7a7ca2de.js';
9
+ import '../../index-5e194caf.js';
9
10
 
10
11
  var __defProp = Object.defineProperty;
11
12
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -29,11 +30,76 @@ let LuksoNavbar = class extends TailwindElement {
29
30
  this.icon = "";
30
31
  this.hasMenu = false;
31
32
  this.logoUrl = "";
33
+ this.mobileBreakpoint = "md";
32
34
  this.isMenuOpen = false;
33
35
  this.defaultLogoUrl = "/assets/images/up-logo.png";
34
- this.centerStyles = `justify-center`;
35
- this.stickyStyles = `sticky top-0 z-[1000]`;
36
- this.transparentStyles = `!bg-transparent !shadow-none`;
36
+ this.navbarStyles = se({
37
+ slots: {
38
+ wrapper: `bg-neutral-100 shadow-pink-drop-shadow h-78 grid items-center`,
39
+ mobileMenuWrapper: `items-center justify-end pr-6 flex gap-2`,
40
+ mobileMenuTrigger: `w-[18px] h-[2px] rounded-4 bg-neutral-20 transition-all
41
+ before:content-[''] before:absolute before:w-[18px] before:h-[2px] before:bg-neutral-20 before:rounded-4 before:transition-all before:-translate-y-[6px]
42
+ after:content-[''] after:absolute after:w-[18px] after:h-[2px] after:bg-neutral-20 after:rounded-4 after:transition-all after:translate-y-[6px]`,
43
+ mobileMenuDropdown: `fixed top-[78px] left-0 w-full h-full bg-neutral-100 z-[1000] justify-center items-center flex`,
44
+ desktopMenuWrapper: `items-center justify-end pr-10 no-underline hidden`,
45
+ desktopCenterWrapper: `items-center hidden`
46
+ },
47
+ variants: {
48
+ isCenter: {
49
+ true: {
50
+ wrapper: `justify-center`
51
+ },
52
+ false: {
53
+ wrapper: `grid-cols-[minmax(max-content,35%)_auto_minmax(max-content,35%)]`
54
+ }
55
+ },
56
+ isSticky: {
57
+ true: {
58
+ wrapper: `sticky top-0 z-[1000]`
59
+ }
60
+ },
61
+ isTransparent: {
62
+ true: {
63
+ wrapper: `!bg-transparent !shadow-none`
64
+ }
65
+ },
66
+ mobileBreakpoint: {
67
+ sm: {
68
+ mobileMenuWrapper: `sm:hidden`,
69
+ mobileMenuDropdown: `sm:hidden`,
70
+ desktopMenuWrapper: `sm:flex`,
71
+ desktopCenterWrapper: `sm:flex`
72
+ },
73
+ md: {
74
+ mobileMenuWrapper: `md:hidden`,
75
+ mobileMenuDropdown: `md:hidden`,
76
+ desktopMenuWrapper: `md:flex`,
77
+ desktopCenterWrapper: `md:flex`
78
+ },
79
+ lg: {
80
+ mobileMenuWrapper: `lg:hidden`,
81
+ mobileMenuDropdown: `lg:hidden`,
82
+ desktopMenuWrapper: `lg:flex`,
83
+ desktopCenterWrapper: `lg:flex`
84
+ },
85
+ xl: {
86
+ mobileMenuWrapper: `xl:hidden`,
87
+ mobileMenuDropdown: `xl:hidden`,
88
+ desktopMenuWrapper: `xl:flex`,
89
+ desktopCenterWrapper: `xl:flex`
90
+ }
91
+ },
92
+ isMenuOpen: {
93
+ true: {
94
+ mobileMenuTrigger: `!bg-transparent before:rotate-[45deg] before:!-translate-y-[0px] after:-rotate-[45deg] after:!translate-y-[0px]`,
95
+ mobileMenuDropdown: `animate-fade-in animation-duration-150`
96
+ },
97
+ false: {
98
+ mobileMenuDropdown: `!hidden`
99
+ }
100
+ }
101
+ }
102
+ });
37
103
  }
38
104
  handleBrandClick() {
39
105
  const event = new CustomEvent("on-brand-click", {
@@ -58,53 +124,52 @@ let LuksoNavbar = class extends TailwindElement {
58
124
  }
59
125
  }
60
126
  desktopMenuTemplate() {
61
- return x`<div
62
- class="items-center justify-end pr-10 no-underline hidden md:flex"
63
- >
64
- <slot name="desktop"></slot>
127
+ const { desktopMenuWrapper } = this.navbarStyles({
128
+ mobileBreakpoint: this.mobileBreakpoint
129
+ });
130
+ return x` <div class=${desktopMenuWrapper()}>
131
+ <slot name="desktop-menu"></slot>
132
+ </div>`;
133
+ }
134
+ desktopCenterTemplate() {
135
+ const { desktopCenterWrapper } = this.navbarStyles({
136
+ mobileBreakpoint: this.mobileBreakpoint
137
+ });
138
+ return x`<div class=${desktopCenterWrapper()}>
139
+ <slot name="desktop-center"></slot>
65
140
  </div>`;
66
141
  }
67
142
  mobileMenuTemplate() {
68
- return x`<div class="items-center justify-end pr-6 flex md:hidden">
69
- <div
70
- class="flex items-center justify-center w-8 h-8 cursor-pointer"
71
- @click=${this.handleMenuToggle}
72
- >
143
+ const { mobileMenuTrigger, mobileMenuDropdown, mobileMenuWrapper } = this.navbarStyles({
144
+ isMenuOpen: this.isMenuOpen,
145
+ mobileBreakpoint: this.mobileBreakpoint
146
+ });
147
+ return x`<div></div>
148
+ <div class=${mobileMenuWrapper()}>
149
+ <div class="flex">
150
+ <slot name="mobile-icons"></slot>
151
+ </div>
73
152
  <div
74
- class="w-[18px] h-[2px] rounded-4 bg-neutral-20 transition-all
75
- before:content-[''] before:absolute before:w-[18px] before:h-[2px] before:bg-neutral-20 before:rounded-4 before:transition-all before:-translate-y-[6px]
76
- after:content-[''] after:absolute after:w-[18px] after:h-[2px] after:bg-neutral-20 after:rounded-4 after:transition-all after:translate-y-[6px]
77
- ${customClassMap({
78
- "!bg-transparent before:rotate-[45deg] before:!-translate-y-[0px] after:-rotate-[45deg] after:!translate-y-[0px]": this.isMenuOpen
79
- })}
80
- "
81
- ></div>
82
- </div>
83
- <div
84
- class="fixed top-[78px] left-0 w-full h-full bg-neutral-100 z-[1000] justify-center items-center flex md:hidden
85
- ${customClassMap({
86
- "animate-fade-in animation-duration-150": this.isMenuOpen,
87
- "!hidden": !this.isMenuOpen
88
- })}"
89
- @click=${this.handleMenuToggle}
90
- >
91
- <slot name="mobile"></slot>
92
- </div>
93
- </div>`;
153
+ class="flex items-center justify-center w-8 h-8 cursor-pointer"
154
+ @click=${this.handleMenuToggle}
155
+ >
156
+ <div class=${mobileMenuTrigger()}></div>
157
+ </div>
158
+ <div class=${mobileMenuDropdown()} @click=${this.handleMenuToggle}>
159
+ <slot name="mobile-menu"></slot>
160
+ </div>
161
+ </div>`;
94
162
  }
95
163
  render() {
164
+ const { wrapper } = this.navbarStyles({
165
+ isCenter: this.isCenter,
166
+ isSticky: this.isSticky,
167
+ isTransparent: this.isTransparent,
168
+ mobileBreakpoint: this.mobileBreakpoint
169
+ });
96
170
  return x`
97
- <nav
98
- data-testid="navbar"
99
- class="bg-neutral-100 shadow-pink-drop-shadow h-78 flex
100
- ${customClassMap({
101
- [this.centerStyles]: this.isCenter,
102
- ["justify-between"]: !this.isCenter,
103
- [this.stickyStyles]: this.isSticky,
104
- [this.transparentStyles]: this.isTransparent
105
- })}"
106
- >
107
- <div class="flex items-center px-7 h-full sm:px-10">
171
+ <nav data-testid="navbar" class=${wrapper()}>
172
+ <div class="flex items-center px-7 h-[inherit] sm:px-10">
108
173
  <div
109
174
  class="flex cursor-pointer group"
110
175
  @click=${this.handleBrandClick}
@@ -121,7 +186,7 @@ let LuksoNavbar = class extends TailwindElement {
121
186
  </div>
122
187
  ${this.isTestnet ? x`<lukso-tag background-color="yellow-65" class="ml-2">
123
188
  TESTNET
124
- </lukso-tag>` : ""}
189
+ </lukso-tag>` : A}
125
190
  </div>
126
191
  ${this.icon ? x`<div
127
192
  class="flex border-l border-l-purple-82 h-7 items-center pl-3 ml-3"
@@ -132,9 +197,10 @@ let LuksoNavbar = class extends TailwindElement {
132
197
  color="purple-51"
133
198
  @click=${this.handleIconClick}
134
199
  ></lukso-icon>
135
- </div>` : ""}
200
+ </div>` : A}
136
201
  </div>
137
- ${this.isCenter ? x`` : this.hasMenu ? x`${this.desktopMenuTemplate()} ${this.mobileMenuTemplate()}` : x``}
202
+ ${this.isCenter ? A : this.desktopCenterTemplate()}
203
+ ${this.isCenter ? A : this.hasMenu ? x`${this.desktopMenuTemplate()} ${this.mobileMenuTemplate()}` : A}
138
204
  </nav>
139
205
  `;
140
206
  }
@@ -163,6 +229,9 @@ __decorateClass([
163
229
  __decorateClass([
164
230
  n({ type: String, attribute: "logo-url" })
165
231
  ], LuksoNavbar.prototype, "logoUrl", 2);
232
+ __decorateClass([
233
+ n({ type: String, attribute: "mobile-breakpoint" })
234
+ ], LuksoNavbar.prototype, "mobileBreakpoint", 2);
166
235
  __decorateClass([
167
236
  t()
168
237
  ], LuksoNavbar.prototype, "isMenuOpen", 2);
@@ -16,4 +16,6 @@ export declare const NavbarWithMenu: any;
16
16
  export declare const TestnetNavbar: any;
17
17
  /** Example of navbar with custom logo. You set this by adding `logo-url` attribute. */
18
18
  export declare const CustomLogoNavbar: any;
19
+ /** Example of navbar with `lukso-search` component. */
20
+ export declare const SearchNavbar: any;
19
21
  //# sourceMappingURL=lukso-navbar.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lukso-navbar.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-navbar/lukso-navbar.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAEhD,OAAO,SAAS,CAAA;AAChB,OAAO,uBAAuB,CAAA;AAC9B,OAAO,qBAAqB,CAAA;AAE5B,gEAAgE;AAChE,QAAA,MAAM,IAAI,EAAE,IA8HX,CAAA;AAED,eAAe,IAAI,CAAA;AA0DnB,kCAAkC;AAClC,eAAO,MAAM,aAAa,KAAoB,CAAA;AAE9C,qGAAqG;AACrG,eAAO,MAAM,YAAY,KAAoB,CAAA;AAK7C,sHAAsH;AACtH,eAAO,MAAM,iBAAiB,KAAoB,CAAA;AAMlD,iIAAiI;AACjI,eAAO,MAAM,YAAY,KAAoB,CAAA;AAK7C,+IAA+I;AAC/I,eAAO,MAAM,cAAc,KAAoB,CAAA;AAK/C,2FAA2F;AAC3F,eAAO,MAAM,aAAa,KAAoB,CAAA;AAK9C,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,KAAoB,CAAA"}
1
+ {"version":3,"file":"lukso-navbar.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-navbar/lukso-navbar.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAA;AAGhD,OAAO,SAAS,CAAA;AAChB,OAAO,uBAAuB,CAAA;AAC9B,OAAO,qBAAqB,CAAA;AAC5B,OAAO,uBAAuB,CAAA;AAE9B,gEAAgE;AAChE,QAAA,MAAM,IAAI,EAAE,IA0IX,CAAA;AAED,eAAe,IAAI,CAAA;AA+CnB,kCAAkC;AAClC,eAAO,MAAM,aAAa,KAAoB,CAAA;AAE9C,qGAAqG;AACrG,eAAO,MAAM,YAAY,KAAoB,CAAA;AAK7C,sHAAsH;AACtH,eAAO,MAAM,iBAAiB,KAAoB,CAAA;AAKlD,iIAAiI;AACjI,eAAO,MAAM,YAAY,KAAoB,CAAA;AAK7C,+IAA+I;AAC/I,eAAO,MAAM,cAAc,KAAoB,CAAA;AAmC/C,2FAA2F;AAC3F,eAAO,MAAM,aAAa,KAAoB,CAAA;AAK9C,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,KAAoB,CAAA;AAMjD,uDAAuD;AACvD,eAAO,MAAM,YAAY,KAAoB,CAAA"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const shared_tailwindElement_index = require('../../index-4e37f431.cjs');
5
+ const shared_tailwindElement_index = require('../../index-4964f1aa.cjs');
6
6
  const queryAssignedElements = require('../../query-assigned-elements-1d5d9d4c.cjs');
7
- const styleMap = require('../../style-map-fc150c58.cjs');
7
+ const styleMap = require('../../style-map-0e5b61bc.cjs');
8
8
  const index = require('../../index-e9668573.cjs');
9
9
  require('../../directive-8278ab14.cjs');
10
10
 
@@ -1,6 +1,6 @@
1
- import { a as TailwindElement, x } from '../../index-df3f9aca.js';
1
+ import { a as TailwindElement, x } from '../../index-2cbce78e.js';
2
2
  import { n, e } from '../../query-assigned-elements-5d94572f.js';
3
- import { o } from '../../style-map-7a7ca2de.js';
3
+ import { o } from '../../style-map-ec917798.js';
4
4
  import { c as customClassMap } from '../../index-5e194caf.js';
5
5
  import '../../directive-2bb7789e.js';
6
6
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const shared_tailwindElement_index = require('../../index-4e37f431.cjs');
5
+ const shared_tailwindElement_index = require('../../index-4964f1aa.cjs');
6
6
  const queryAssignedElements = require('../../query-assigned-elements-1d5d9d4c.cjs');
7
- const styleMap = require('../../style-map-fc150c58.cjs');
7
+ const styleMap = require('../../style-map-0e5b61bc.cjs');
8
8
  require('../../tailwind-config.cjs');
9
9
  const cn = require('../../cn-4ec0bd94.cjs');
10
10
  require('../../directive-8278ab14.cjs');
@@ -1,6 +1,6 @@
1
- import { a as TailwindElement, x } from '../../index-df3f9aca.js';
1
+ import { a as TailwindElement, x } from '../../index-2cbce78e.js';
2
2
  import { n, e } from '../../query-assigned-elements-5d94572f.js';
3
- import { o } from '../../style-map-7a7ca2de.js';
3
+ import { o } from '../../style-map-ec917798.js';
4
4
  import '../../tailwind-config.js';
5
5
  import { c as cn } from '../../cn-616567d4.js';
6
6
  import '../../directive-2bb7789e.js';
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const shared_tailwindElement_index = require('../../index-4e37f431.cjs');
5
+ const shared_tailwindElement_index = require('../../index-4964f1aa.cjs');
6
6
  const queryAssignedElements = require('../../query-assigned-elements-1d5d9d4c.cjs');
7
7
  const directive = require('../../directive-8278ab14.cjs');
8
8
 
@@ -1,4 +1,4 @@
1
- import { A, b as T, a as TailwindElement, x } from '../../index-df3f9aca.js';
1
+ import { A, b as T, a as TailwindElement, x } from '../../index-2cbce78e.js';
2
2
  import { n, e as e$2 } from '../../query-assigned-elements-5d94572f.js';
3
3
  import { i, t, e as e$1 } from '../../directive-2bb7789e.js';
4
4
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const shared_tailwindElement_index = require('../../index-4e37f431.cjs');
5
+ const shared_tailwindElement_index = require('../../index-4964f1aa.cjs');
6
6
  const queryAssignedElements = require('../../query-assigned-elements-1d5d9d4c.cjs');
7
7
  const state = require('../../state-f73a8b4f.cjs');
8
8
  const index = require('../../index-e9668573.cjs');
@@ -10,8 +10,8 @@ require('../lukso-icon/index.cjs');
10
10
  require('../lukso-profile/index.cjs');
11
11
  require('../lukso-username/index.cjs');
12
12
  require('../../directive-8278ab14.cjs');
13
- require('../../style-map-fc150c58.cjs');
14
- require('../../index-67517059.cjs');
13
+ require('../../style-map-0e5b61bc.cjs');
14
+ require('../../index-b1813aa6.cjs');
15
15
 
16
16
  const style = ":host {\n\n display: inline-flex\n}\n\n:host([is-full-width]) {\n\n display: flex;\n\n width: 100%\n}";
17
17
 
@@ -58,6 +58,16 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
58
58
  border-solid h-[48px] placeholder:text-neutral-70
59
59
  outline-none transition transition-all duration-150 appearance-none rounded-12`;
60
60
  }
61
+ connectedCallback() {
62
+ super.connectedCallback();
63
+ window.addEventListener("click", this.handleOutsideDropdownClick.bind(this));
64
+ window.addEventListener("keydown", this.handleDropdownKeydown.bind(this));
65
+ }
66
+ disconnectedCallback() {
67
+ super.disconnectedCallback();
68
+ window.removeEventListener("click", this.handleOutsideDropdownClick);
69
+ window.removeEventListener("keydown", this.handleDropdownKeydown);
70
+ }
61
71
  willUpdate(changedProperties) {
62
72
  if (changedProperties.has("selected")) {
63
73
  const selectedOption = this.shadowRoot?.querySelector(
@@ -86,6 +96,7 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
86
96
  autocomplete=${this.autocomplete}
87
97
  id=${this.id || this.name}
88
98
  data-testid=${this.name ? `input-${this.name}` : "input"}
99
+ data-component="lukso-search"
89
100
  ?readonly=${this.isReadonly ? true : void 0}
90
101
  ?disabled=${this.isDisabled ? true : void 0}
91
102
  class=${index.customClassMap({
@@ -230,6 +241,36 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
230
241
  ></lukso-username>
231
242
  </div>`;
232
243
  }
244
+ async handleOutsideDropdownClick(event) {
245
+ const element = event.target;
246
+ if (element?.dataset?.component === "lukso-search") {
247
+ return;
248
+ }
249
+ this.results = "";
250
+ }
251
+ async handleDropdownKeydown(event) {
252
+ if (event.key === "ArrowUp" && this.selected && this.selected > 1 && this.resultsParsed?.length) {
253
+ event.preventDefault();
254
+ this.selected = this.selected - 1;
255
+ }
256
+ if (event.key === "ArrowDown" && this.resultsParsed?.length) {
257
+ event.preventDefault();
258
+ if (!this.selected) {
259
+ this.selected = 1;
260
+ } else if (this.selected < this.resultsParsed.length) {
261
+ this.selected = this.selected + 1;
262
+ }
263
+ }
264
+ if (event.key === "Enter" && this.resultsParsed?.length) {
265
+ if (this.selected) {
266
+ const selectedResult = this.resultsParsed[this.selected - 1];
267
+ await this.handleSelect(selectedResult);
268
+ }
269
+ }
270
+ if (event.key === "Escape") {
271
+ this.results = "";
272
+ }
273
+ }
233
274
  async handleSelect(result) {
234
275
  await this.updateComplete;
235
276
  const selectEvent = new CustomEvent("on-select", {
@@ -273,6 +314,7 @@ exports.LuksoSearch = class LuksoSearch extends shared_tailwindElement_index.Tai
273
314
  bubbles: false,
274
315
  composed: true
275
316
  });
317
+ this.handleSearch(event);
276
318
  this.dispatchEvent(clickEvent);
277
319
  }
278
320
  async searchDebounce(searchTerm) {
@@ -39,6 +39,8 @@ export declare class LuksoSearch extends LuksoSearch_base {
39
39
  private resultsParsed;
40
40
  private searchTerm;
41
41
  private defaultInputStyles;
42
+ connectedCallback(): void;
43
+ disconnectedCallback(): void;
42
44
  willUpdate(changedProperties: PropertyValues<this>): void;
43
45
  inputTemplate(): TemplateResult<1>;
44
46
  labelTemplate(): TemplateResult<1>;
@@ -50,6 +52,8 @@ export declare class LuksoSearch extends LuksoSearch_base {
50
52
  dropdownWrapperTemplate(innerTemplate: TemplateResult<1> | TemplateResult<1>[]): TemplateResult<1>;
51
53
  resultStringTemplate(result: SearchStringResult, index: number): TemplateResult<1>;
52
54
  resultProfileTemplate(result: SearchProfileResult, index: number): TemplateResult<1>;
55
+ private handleOutsideDropdownClick;
56
+ private handleDropdownKeydown;
53
57
  private handleSelect;
54
58
  private handleFocus;
55
59
  private handleBlur;
@@ -1 +1 @@
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;IAwBlD,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"}
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,iBAAiB;IAKjB,oBAAoB;IAMpB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC;IAwBlD,aAAa;IAsCb,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,0BAA0B;YAU1B,qBAAqB;YAiCrB,YAAY;IAY1B,OAAO,CAAC,WAAW;YAOL,UAAU;YAgBV,gBAAgB;YAehB,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"}
@@ -1,4 +1,4 @@
1
- import { T as TailwindStyledElement, x, A } from '../../index-df3f9aca.js';
1
+ import { T as TailwindStyledElement, x, A } from '../../index-2cbce78e.js';
2
2
  import { n, e } from '../../query-assigned-elements-5d94572f.js';
3
3
  import { t } from '../../state-0a779257.js';
4
4
  import { c as customClassMap } from '../../index-5e194caf.js';
@@ -6,8 +6,8 @@ import '../lukso-icon/index.js';
6
6
  import '../lukso-profile/index.js';
7
7
  import '../lukso-username/index.js';
8
8
  import '../../directive-2bb7789e.js';
9
- import '../../style-map-7a7ca2de.js';
10
- import '../../index-8a1b283c.js';
9
+ import '../../style-map-ec917798.js';
10
+ import '../../index-61181f2e.js';
11
11
 
12
12
  const style = ":host {\n\n display: inline-flex\n}\n\n:host([is-full-width]) {\n\n display: flex;\n\n width: 100%\n}";
13
13
 
@@ -54,6 +54,16 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
54
54
  border-solid h-[48px] placeholder:text-neutral-70
55
55
  outline-none transition transition-all duration-150 appearance-none rounded-12`;
56
56
  }
57
+ connectedCallback() {
58
+ super.connectedCallback();
59
+ window.addEventListener("click", this.handleOutsideDropdownClick.bind(this));
60
+ window.addEventListener("keydown", this.handleDropdownKeydown.bind(this));
61
+ }
62
+ disconnectedCallback() {
63
+ super.disconnectedCallback();
64
+ window.removeEventListener("click", this.handleOutsideDropdownClick);
65
+ window.removeEventListener("keydown", this.handleDropdownKeydown);
66
+ }
57
67
  willUpdate(changedProperties) {
58
68
  if (changedProperties.has("selected")) {
59
69
  const selectedOption = this.shadowRoot?.querySelector(
@@ -82,6 +92,7 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
82
92
  autocomplete=${this.autocomplete}
83
93
  id=${this.id || this.name}
84
94
  data-testid=${this.name ? `input-${this.name}` : "input"}
95
+ data-component="lukso-search"
85
96
  ?readonly=${this.isReadonly ? true : void 0}
86
97
  ?disabled=${this.isDisabled ? true : void 0}
87
98
  class=${customClassMap({
@@ -226,6 +237,36 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
226
237
  ></lukso-username>
227
238
  </div>`;
228
239
  }
240
+ async handleOutsideDropdownClick(event) {
241
+ const element = event.target;
242
+ if (element?.dataset?.component === "lukso-search") {
243
+ return;
244
+ }
245
+ this.results = "";
246
+ }
247
+ async handleDropdownKeydown(event) {
248
+ if (event.key === "ArrowUp" && this.selected && this.selected > 1 && this.resultsParsed?.length) {
249
+ event.preventDefault();
250
+ this.selected = this.selected - 1;
251
+ }
252
+ if (event.key === "ArrowDown" && this.resultsParsed?.length) {
253
+ event.preventDefault();
254
+ if (!this.selected) {
255
+ this.selected = 1;
256
+ } else if (this.selected < this.resultsParsed.length) {
257
+ this.selected = this.selected + 1;
258
+ }
259
+ }
260
+ if (event.key === "Enter" && this.resultsParsed?.length) {
261
+ if (this.selected) {
262
+ const selectedResult = this.resultsParsed[this.selected - 1];
263
+ await this.handleSelect(selectedResult);
264
+ }
265
+ }
266
+ if (event.key === "Escape") {
267
+ this.results = "";
268
+ }
269
+ }
229
270
  async handleSelect(result) {
230
271
  await this.updateComplete;
231
272
  const selectEvent = new CustomEvent("on-select", {
@@ -269,6 +310,7 @@ let LuksoSearch = class extends TailwindStyledElement(style) {
269
310
  bubbles: false,
270
311
  composed: true
271
312
  });
313
+ this.handleSearch(event);
272
314
  this.dispatchEvent(clickEvent);
273
315
  }
274
316
  async searchDebounce(searchTerm) {
@@ -2,17 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const shared_tailwindElement_index = require('../../index-4e37f431.cjs');
5
+ const shared_tailwindElement_index = require('../../index-4964f1aa.cjs');
6
6
  const queryAssignedElements = require('../../query-assigned-elements-1d5d9d4c.cjs');
7
7
  const state = require('../../state-f73a8b4f.cjs');
8
8
  const index = require('../../index-e8741080.cjs');
9
9
  require('../lukso-icon/index.cjs');
10
10
  require('../lukso-profile/index.cjs');
11
11
  require('../lukso-username/index.cjs');
12
- require('../../style-map-fc150c58.cjs');
12
+ require('../../style-map-0e5b61bc.cjs');
13
13
  require('../../directive-8278ab14.cjs');
14
14
  require('../../index-e9668573.cjs');
15
- require('../../index-67517059.cjs');
15
+ require('../../index-b1813aa6.cjs');
16
16
 
17
17
  const style = ":host {\n\n display: inline-flex\n}\n\n:host([is-full-width]) {\n\n display: flex;\n\n width: 100%\n}";
18
18
 
@@ -289,6 +289,9 @@ exports.LuksoSelect = class LuksoSelect extends shared_tailwindElement_index.Tai
289
289
  await this.handleSelect(selectedResult);
290
290
  }
291
291
  }
292
+ if (event.key === "Escape") {
293
+ this.isOpen = false;
294
+ }
292
295
  }
293
296
  async handleSelect(option) {
294
297
  if (this.isReadonly || this.isDisabled) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-select/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,EAAE,EAAE,MAAM,CAAA;IACV,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,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,EAAE,SAAK;IAGP,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,WAAW,UAAQ;IAGnB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,OAAO,SAAK;IAGZ,QAAQ,MAAY;IAGpB,MAAM,EAAE,OAAO,CAAQ;IAGvB,OAAO,EAAE,OAAO,CAAQ;IAGxB,WAAW,EAAE,OAAO,CAAQ;IAG5B,OAAO,CAAC,aAAa,CAAqB;IAG1C,OAAO,CAAC,WAAW,CAAsC;IAEzD,OAAO,CAAC,WAAW,CAoBjB;IAEF,OAAO,CAAC,qBAAqB,CAQ3B;IAEF,OAAO,CAAC,aAAa,CAWnB;IAEF,OAAO,CAAC,UAAU,CAUhB;IAEF,iBAAiB;IAKjB,oBAAoB;IAMpB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC;IAwClD,aAAa;IAqBb,aAAa;IAQb,mBAAmB;IAQnB,aAAa;IAMb,eAAe;IAkBf,uBAAuB,CACrB,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE;IASxD,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM;IAiB9D,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM;IAiBhE,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,0BAA0B;YAUpB,qBAAqB;YAiCrB,YAAY;YAiBZ,UAAU;IAcxB,OAAO,CAAC,WAAW;IAQnB,MAAM;CA4BP;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-select/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,EAAE,EAAE,MAAM,CAAA;IACV,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,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,EAAE,SAAK;IAGP,WAAW,SAAK;IAGhB,KAAK,SAAK;IAGV,WAAW,UAAQ;IAGnB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,UAAU,UAAQ;IAGlB,OAAO,SAAK;IAGZ,QAAQ,MAAY;IAGpB,MAAM,EAAE,OAAO,CAAQ;IAGvB,OAAO,EAAE,OAAO,CAAQ;IAGxB,WAAW,EAAE,OAAO,CAAQ;IAG5B,OAAO,CAAC,aAAa,CAAqB;IAG1C,OAAO,CAAC,WAAW,CAAsC;IAEzD,OAAO,CAAC,WAAW,CAoBjB;IAEF,OAAO,CAAC,qBAAqB,CAQ3B;IAEF,OAAO,CAAC,aAAa,CAWnB;IAEF,OAAO,CAAC,UAAU,CAUhB;IAEF,iBAAiB;IAKjB,oBAAoB;IAMpB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC;IAwClD,aAAa;IAqBb,aAAa;IAQb,mBAAmB;IAQnB,aAAa;IAMb,eAAe;IAkBf,uBAAuB,CACrB,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE;IASxD,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM;IAiB9D,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM;IAiBhE,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,0BAA0B;YAUpB,qBAAqB;YAqCrB,YAAY;YAiBZ,UAAU;IAcxB,OAAO,CAAC,WAAW;IAQnB,MAAM;CA4BP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAA;KAC5B;CACF"}
@@ -1,14 +1,14 @@
1
- import { T as TailwindStyledElement, x, A } from '../../index-df3f9aca.js';
1
+ import { T as TailwindStyledElement, x, A } from '../../index-2cbce78e.js';
2
2
  import { n, e } from '../../query-assigned-elements-5d94572f.js';
3
3
  import { t } from '../../state-0a779257.js';
4
4
  import { s as se } from '../../index-c55a1069.js';
5
5
  import '../lukso-icon/index.js';
6
6
  import '../lukso-profile/index.js';
7
7
  import '../lukso-username/index.js';
8
- import '../../style-map-7a7ca2de.js';
8
+ import '../../style-map-ec917798.js';
9
9
  import '../../directive-2bb7789e.js';
10
10
  import '../../index-5e194caf.js';
11
- import '../../index-8a1b283c.js';
11
+ import '../../index-61181f2e.js';
12
12
 
13
13
  const style = ":host {\n\n display: inline-flex\n}\n\n:host([is-full-width]) {\n\n display: flex;\n\n width: 100%\n}";
14
14
 
@@ -285,6 +285,9 @@ let LuksoSelect = class extends TailwindStyledElement(style) {
285
285
  await this.handleSelect(selectedResult);
286
286
  }
287
287
  }
288
+ if (event.key === "Escape") {
289
+ this.isOpen = false;
290
+ }
288
291
  }
289
292
  async handleSelect(option) {
290
293
  if (this.isReadonly || this.isDisabled) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const shared_tailwindElement_index = require('../../index-4e37f431.cjs');
5
+ const shared_tailwindElement_index = require('../../index-4964f1aa.cjs');
6
6
  const queryAssignedElements = require('../../query-assigned-elements-1d5d9d4c.cjs');
7
7
 
8
8
  const style = ":host {\n display: inline-flex\n}";
@@ -1,4 +1,4 @@
1
- import { T as TailwindStyledElement, x } from '../../index-df3f9aca.js';
1
+ import { T as TailwindStyledElement, x } from '../../index-2cbce78e.js';
2
2
  import { n, e } from '../../query-assigned-elements-5d94572f.js';
3
3
 
4
4
  const style = ":host {\n display: inline-flex\n}";
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const shared_tailwindElement_index = require('../../index-4e37f431.cjs');
5
+ const shared_tailwindElement_index = require('../../index-4964f1aa.cjs');
6
6
  const queryAssignedElements = require('../../query-assigned-elements-1d5d9d4c.cjs');
7
- const styleMap = require('../../style-map-fc150c58.cjs');
7
+ const styleMap = require('../../style-map-0e5b61bc.cjs');
8
8
  const index = require('../../index-e9668573.cjs');
9
9
  require('../../directive-8278ab14.cjs');
10
10
 
@@ -1,6 +1,6 @@
1
- import { a as TailwindElement, x } from '../../index-df3f9aca.js';
1
+ import { a as TailwindElement, x } from '../../index-2cbce78e.js';
2
2
  import { n, e } from '../../query-assigned-elements-5d94572f.js';
3
- import { o } from '../../style-map-7a7ca2de.js';
3
+ import { o } from '../../style-map-ec917798.js';
4
4
  import { c as customClassMap } from '../../index-5e194caf.js';
5
5
  import '../../directive-2bb7789e.js';
6
6
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const shared_tailwindElement_index = require('../../index-4e37f431.cjs');
5
+ const shared_tailwindElement_index = require('../../index-4964f1aa.cjs');
6
6
  const queryAssignedElements = require('../../query-assigned-elements-1d5d9d4c.cjs');
7
- const styleMap = require('../../style-map-fc150c58.cjs');
7
+ const styleMap = require('../../style-map-0e5b61bc.cjs');
8
8
  const index = require('../../index-e9668573.cjs');
9
9
  require('../../directive-8278ab14.cjs');
10
10
 
@@ -1,6 +1,6 @@
1
- import { T as TailwindStyledElement, x } from '../../index-df3f9aca.js';
1
+ import { T as TailwindStyledElement, x } from '../../index-2cbce78e.js';
2
2
  import { n, e } from '../../query-assigned-elements-5d94572f.js';
3
- import { o } from '../../style-map-7a7ca2de.js';
3
+ import { o } from '../../style-map-ec917798.js';
4
4
  import { c as customClassMap } from '../../index-5e194caf.js';
5
5
  import '../../directive-2bb7789e.js';
6
6