@hotosm/ui 0.3.1-b2 → 0.3.1-b4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import{a as d}from"./chunk.T4GALJJA.js";import{b as o}from"./chunk.6ZDEZIWM.js";import{a as l}from"./chunk.KO4EOD3I.js";import{e as r,k as c}from"./chunk.U4P7XQR4.js";import{d as s,e as n,f as a,g as i}from"./chunk.NI7UJOOZ.js";l();var u,g,p,b,h,m,v,e=class extends c{constructor(){super(...arguments);this.name="hot-consent";a(this,u,"");a(this,g,!1);a(this,p,!0);a(this,b,"About the information we collect");a(this,h,"We use cookies and similar technologies to recognize and analyze your visits, and measure traffic usage and activity.");a(this,m,"I Agree");a(this,v,"I Do Not Agree")}get consentId(){return n(this,u)}set consentId(t){i(this,u,t)}get force(){return n(this,g)}set force(t){i(this,g,t)}get isOpen(){return n(this,p)}set isOpen(t){i(this,p,t)}get title(){return n(this,b)}set title(t){i(this,b,t)}get message(){return n(this,h)}set message(t){i(this,h,t)}get agreeLabel(){return n(this,m)}set agreeLabel(t){i(this,m,t)}get notAgreeLabel(){return n(this,v)}set notAgreeLabel(t){i(this,v,t)}render(){return this.isOpen?r`
1
+ import{b as o}from"./chunk.6ZDEZIWM.js";import{a as l}from"./chunk.KO4EOD3I.js";import{a as u}from"./chunk.T4GALJJA.js";import{e as c,k as r}from"./chunk.U4P7XQR4.js";import{d as s,e as a,f as n,g as i}from"./chunk.NI7UJOOZ.js";async function v(){customElements.get("wa-callout")||await import("./callout.USQGOL5A.js"),customElements.get("wa-icon")||await import("./icon.ZB6BUFKB.js"),customElements.get("wa-button")||await import("./button.QMPBLQB7.js")}(async()=>await v())();l();var d,g,m,p,b,h,f,e=class extends r{constructor(){super(...arguments);this.name="hot-consent";n(this,d,"");n(this,g,!1);n(this,m,!0);n(this,p,"About the information we collect");n(this,b,"We use cookies and similar technologies to recognize and analyze your visits, and measure traffic usage and activity.");n(this,h,"I Agree");n(this,f,"I Do Not Agree")}get consentId(){return a(this,d)}set consentId(t){i(this,d,t)}get force(){return a(this,g)}set force(t){i(this,g,t)}get isOpen(){return a(this,m)}set isOpen(t){i(this,m,t)}get title(){return a(this,p)}set title(t){i(this,p,t)}get message(){return a(this,b)}set message(t){i(this,b,t)}get agreeLabel(){return a(this,h)}set agreeLabel(t){i(this,h,t)}get notAgreeLabel(){return a(this,f)}set notAgreeLabel(t){i(this,f,t)}render(){return this.isOpen?c`
2
2
  <div class="consent-overlay">
3
3
  <div class="consent-container">
4
4
  <wa-callout variant="brand" appearance="outlined filled" size="large" class="consent-callout">
@@ -33,4 +33,4 @@ import{a as d}from"./chunk.T4GALJJA.js";import{b as o}from"./chunk.6ZDEZIWM.js";
33
33
  </wa-callout>
34
34
  </div>
35
35
  </div>
36
- `:null}_setAgree(t){this.isOpen=!1,localStorage.setItem(`${this.consentId}-consent-agree`,"true"),this.dispatchEvent(new Event("agree",{bubbles:!0,composed:!0}))}_setDisagree(t){this.isOpen=!1,localStorage.setItem(`${this.consentId}-consent-agree`,"false"),this.dispatchEvent(new Event("disagree",{bubbles:!0,composed:!0}))}connectedCallback(){super.connectedCallback();let t=localStorage.getItem(`${this.consentId}-consent-agree`);if(t==="false"){this.isOpen=!1;return}t==="true"&&(this.isOpen=!1)}};u=new WeakMap,g=new WeakMap,p=new WeakMap,b=new WeakMap,h=new WeakMap,m=new WeakMap,v=new WeakMap,e.styles=[d],s([o({type:String,attribute:"consent-id"})],e.prototype,"consentId",1),s([o({type:Boolean})],e.prototype,"force",1),s([o({type:Boolean})],e.prototype,"isOpen",1),s([o({type:String})],e.prototype,"title",1),s([o({type:String})],e.prototype,"message",1),s([o({type:String,attribute:"agree-label"})],e.prototype,"agreeLabel",1),s([o({type:String,attribute:"not-agree-label"})],e.prototype,"notAgreeLabel",1);var O=e;customElements.define("hot-consent",e);export{e as a,O as b};
36
+ `:null}_setAgree(t){this.isOpen=!1,localStorage.setItem(`${this.consentId}-consent-agree`,"true"),this.dispatchEvent(new Event("agree",{bubbles:!0,composed:!0}))}_setDisagree(t){this.isOpen=!1,localStorage.setItem(`${this.consentId}-consent-agree`,"false"),this.dispatchEvent(new Event("disagree",{bubbles:!0,composed:!0}))}connectedCallback(){super.connectedCallback();let t=localStorage.getItem(`${this.consentId}-consent-agree`);if(t==="false"){this.isOpen=!1;return}t==="true"&&(this.isOpen=!1)}};d=new WeakMap,g=new WeakMap,m=new WeakMap,p=new WeakMap,b=new WeakMap,h=new WeakMap,f=new WeakMap,e.styles=[u],s([o({type:String,attribute:"consent-id"})],e.prototype,"consentId",1),s([o({type:Boolean})],e.prototype,"force",1),s([o({type:Boolean})],e.prototype,"isOpen",1),s([o({type:String})],e.prototype,"title",1),s([o({type:String})],e.prototype,"message",1),s([o({type:String,attribute:"agree-label"})],e.prototype,"agreeLabel",1),s([o({type:String,attribute:"not-agree-label"})],e.prototype,"notAgreeLabel",1);var A=e;customElements.define("hot-consent",e);export{e as a,A as b};
@@ -0,0 +1,186 @@
1
+ var o=`@layer wa-utilities {
2
+ :host([size='small']),
3
+ .wa-size-s {
4
+ font-size: var(--wa-font-size-s);
5
+ }
6
+
7
+ :host([size='medium']),
8
+ .wa-size-m {
9
+ font-size: var(--wa-font-size-m);
10
+ }
11
+
12
+ :host([size='large']),
13
+ .wa-size-l {
14
+ font-size: var(--wa-font-size-l);
15
+ }
16
+ }
17
+ `;var a=`@layer wa-utilities {
18
+ /** Register color properties so that the space toggle hack can work. */
19
+ @property --wa-color-fill-loud {
20
+ syntax: '<color>';
21
+ inherits: true;
22
+ initial-value: transparent;
23
+ }
24
+
25
+ @property --wa-color-fill-normal {
26
+ syntax: '<color>';
27
+ inherits: true;
28
+ initial-value: transparent;
29
+ }
30
+
31
+ @property --wa-color-fill-quiet {
32
+ syntax: '<color>';
33
+ inherits: true;
34
+ initial-value: transparent;
35
+ }
36
+
37
+ @property --wa-color-border-loud {
38
+ syntax: '<color>';
39
+ inherits: true;
40
+ initial-value: transparent;
41
+ }
42
+
43
+ @property --wa-color-border-normal {
44
+ syntax: '<color>';
45
+ inherits: true;
46
+ initial-value: transparent;
47
+ }
48
+
49
+ @property --wa-color-border-quiet {
50
+ syntax: '<color>';
51
+ inherits: true;
52
+ initial-value: transparent;
53
+ }
54
+
55
+ @property --wa-color-on-loud {
56
+ syntax: '<color>';
57
+ inherits: true;
58
+ initial-value: transparent;
59
+ }
60
+
61
+ @property --wa-color-on-normal {
62
+ syntax: '<color>';
63
+ inherits: true;
64
+ initial-value: transparent;
65
+ }
66
+
67
+ @property --wa-color-on-quiet {
68
+ syntax: '<color>';
69
+ inherits: true;
70
+ initial-value: transparent;
71
+ }
72
+
73
+ /**
74
+ * Element defaults.
75
+ We want these to resolve to inherit when inside a variant, and only be applied when not inside an explicit variant.
76
+ */
77
+
78
+ :host(wa-button),
79
+ button,
80
+ input[type='button'],
81
+ input[type='submit'],
82
+ :host(wa-tag) {
83
+ --wa-color-fill-loud: var(--wa-no-variant, var(--wa-color-neutral-fill-loud));
84
+ --wa-color-fill-normal: var(--wa-no-variant, var(--wa-color-neutral-fill-normal));
85
+ --wa-color-fill-quiet: var(--wa-no-variant, var(--wa-color-neutral-fill-quiet));
86
+ --wa-color-border-loud: var(--wa-no-variant, var(--wa-color-neutral-border-loud));
87
+ --wa-color-border-normal: var(--wa-no-variant, var(--wa-color-neutral-border-normal));
88
+ --wa-color-border-quiet: var(--wa-no-variant, var(--wa-color-neutral-border-quiet));
89
+ --wa-color-on-loud: var(--wa-no-variant, var(--wa-color-neutral-on-loud));
90
+ --wa-color-on-normal: var(--wa-no-variant, var(--wa-color-neutral-on-normal));
91
+ --wa-color-on-quiet: var(--wa-no-variant, var(--wa-color-neutral-on-quiet));
92
+ }
93
+
94
+ :host(wa-callout),
95
+ :host(wa-badge) {
96
+ --wa-color-fill-loud: var(--wa-no-variant, var(--wa-color-brand-fill-loud));
97
+ --wa-color-fill-normal: var(--wa-no-variant, var(--wa-color-brand-fill-normal));
98
+ --wa-color-fill-quiet: var(--wa-no-variant, var(--wa-color-brand-fill-quiet));
99
+ --wa-color-border-loud: var(--wa-no-variant, var(--wa-color-brand-border-loud));
100
+ --wa-color-border-normal: var(--wa-no-variant, var(--wa-color-brand-border-normal));
101
+ --wa-color-border-quiet: var(--wa-no-variant, var(--wa-color-brand-border-quiet));
102
+ --wa-color-on-loud: var(--wa-no-variant, var(--wa-color-brand-on-loud));
103
+ --wa-color-on-normal: var(--wa-no-variant, var(--wa-color-brand-on-normal));
104
+ --wa-color-on-quiet: var(--wa-no-variant, var(--wa-color-brand-on-quiet));
105
+ }
106
+
107
+ /**
108
+ * Variants
109
+ */
110
+
111
+ :root,
112
+ .wa-neutral,
113
+ :host([variant='neutral']) {
114
+ --wa-color-fill-loud: var(--wa-color-neutral-fill-loud);
115
+ --wa-color-fill-normal: var(--wa-color-neutral-fill-normal);
116
+ --wa-color-fill-quiet: var(--wa-color-neutral-fill-quiet);
117
+ --wa-color-border-loud: var(--wa-color-neutral-border-loud);
118
+ --wa-color-border-normal: var(--wa-color-neutral-border-normal);
119
+ --wa-color-border-quiet: var(--wa-color-neutral-border-quiet);
120
+ --wa-color-on-loud: var(--wa-color-neutral-on-loud);
121
+ --wa-color-on-normal: var(--wa-color-neutral-on-normal);
122
+ --wa-color-on-quiet: var(--wa-color-neutral-on-quiet);
123
+ }
124
+
125
+ .wa-brand,
126
+ :host([variant='brand']) {
127
+ --wa-color-fill-loud: var(--wa-color-brand-fill-loud);
128
+ --wa-color-fill-normal: var(--wa-color-brand-fill-normal);
129
+ --wa-color-fill-quiet: var(--wa-color-brand-fill-quiet);
130
+ --wa-color-border-loud: var(--wa-color-brand-border-loud);
131
+ --wa-color-border-normal: var(--wa-color-brand-border-normal);
132
+ --wa-color-border-quiet: var(--wa-color-brand-border-quiet);
133
+ --wa-color-on-loud: var(--wa-color-brand-on-loud);
134
+ --wa-color-on-normal: var(--wa-color-brand-on-normal);
135
+ --wa-color-on-quiet: var(--wa-color-brand-on-quiet);
136
+ }
137
+
138
+ .wa-success,
139
+ :host([variant='success']) {
140
+ --wa-color-fill-loud: var(--wa-color-success-fill-loud);
141
+ --wa-color-fill-normal: var(--wa-color-success-fill-normal);
142
+ --wa-color-fill-quiet: var(--wa-color-success-fill-quiet);
143
+ --wa-color-border-loud: var(--wa-color-success-border-loud);
144
+ --wa-color-border-normal: var(--wa-color-success-border-normal);
145
+ --wa-color-border-quiet: var(--wa-color-success-border-quiet);
146
+ --wa-color-on-loud: var(--wa-color-success-on-loud);
147
+ --wa-color-on-normal: var(--wa-color-success-on-normal);
148
+ --wa-color-on-quiet: var(--wa-color-success-on-quiet);
149
+ }
150
+
151
+ .wa-warning,
152
+ :host([variant='warning']) {
153
+ --wa-color-fill-loud: var(--wa-color-warning-fill-loud);
154
+ --wa-color-fill-normal: var(--wa-color-warning-fill-normal);
155
+ --wa-color-fill-quiet: var(--wa-color-warning-fill-quiet);
156
+ --wa-color-border-loud: var(--wa-color-warning-border-loud);
157
+ --wa-color-border-normal: var(--wa-color-warning-border-normal);
158
+ --wa-color-border-quiet: var(--wa-color-warning-border-quiet);
159
+ --wa-color-on-loud: var(--wa-color-warning-on-loud);
160
+ --wa-color-on-normal: var(--wa-color-warning-on-normal);
161
+ --wa-color-on-quiet: var(--wa-color-warning-on-quiet);
162
+ }
163
+
164
+ .wa-danger,
165
+ :host([variant='danger']) {
166
+ --wa-color-fill-loud: var(--wa-color-danger-fill-loud);
167
+ --wa-color-fill-normal: var(--wa-color-danger-fill-normal);
168
+ --wa-color-fill-quiet: var(--wa-color-danger-fill-quiet);
169
+ --wa-color-border-loud: var(--wa-color-danger-border-loud);
170
+ --wa-color-border-normal: var(--wa-color-danger-border-normal);
171
+ --wa-color-border-quiet: var(--wa-color-danger-border-quiet);
172
+ --wa-color-on-loud: var(--wa-color-danger-on-loud);
173
+ --wa-color-on-normal: var(--wa-color-danger-on-normal);
174
+ --wa-color-on-quiet: var(--wa-color-danger-on-quiet);
175
+ }
176
+
177
+ .wa-neutral,
178
+ .wa-brand,
179
+ .wa-success,
180
+ .wa-warning,
181
+ .wa-danger,
182
+ :host([variant]) {
183
+ --wa-no-variant: /* space toggle */;
184
+ }
185
+ }
186
+ `;export{o as a,a as b};
@@ -0,0 +1,92 @@
1
+ import{a as u,b as p}from"./chunk.IG27I42A.js";import{b as r}from"./chunk.6ZDEZIWM.js";import{a as b}from"./chunk.KO4EOD3I.js";import{e as l,k as m}from"./chunk.U4P7XQR4.js";import{a as d,d as s,e as o,f as n,g as a}from"./chunk.NI7UJOOZ.js";var f="data:image/png;base64,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";async function E(){customElements.get("wa-tab-group")||await import("./tab-group.M6XGU33J.js"),customElements.get("wa-dialog")||await import("./dialog.ZJLYCG4P.js"),customElements.get("wa-button")||await import("./button.QMPBLQB7.js"),customElements.get("wa-icon")||await import("./icon.ZB6BUFKB.js")}(async()=>await E())();b();var v,w,O,y,L,$,P,I,B,U,S,_,q,M,e=class extends m{constructor(){super(...arguments);this.name="hot-header";n(this,v,"");n(this,w,"");n(this,O,!0);n(this,y,[]);n(this,L,"small");n(this,$,!0);n(this,P,0);n(this,I,!1);n(this,B,!1);n(this,U,{});n(this,S,"user");n(this,_,"https://www.openstreetmap.org/oauth2/authorize");n(this,q,"");n(this,M,"")}get title(){return o(this,v)}set title(i){a(this,v,i)}get logo(){return o(this,w)}set logo(i){a(this,w,i)}get drawer(){return o(this,O)}set drawer(i){a(this,O,i)}get tabs(){return o(this,y)}set tabs(i){a(this,y,i)}get size(){return o(this,L)}set size(i){a(this,L,i)}get borderBottom(){return o(this,$)}set borderBottom(i){a(this,$,i)}get selectedTab(){return o(this,P)}set selectedTab(i){a(this,P,i)}get showLogin(){return o(this,I)}set showLogin(i){a(this,I,i)}get loginModalOpen(){return o(this,B)}set loginModalOpen(i){a(this,B,i)}get loginProviders(){return o(this,U)}set loginProviders(i){a(this,U,i)}get defaultLoginIcon(){return o(this,S)}set defaultLoginIcon(i){a(this,S,i)}get osmOauthUrl(){return o(this,_)}set osmOauthUrl(i){a(this,_,i)}get OsmOauthClientId(){return o(this,q)}set OsmOauthClientId(i){a(this,q,i)}get OsmOauthRedirectUri(){return o(this,M)}set OsmOauthRedirectUri(i){a(this,M,i)}get loginOptions(){return Object.keys(this.loginProviders).length===0&&this.OsmOauthClientId&&this.OsmOauthRedirectUri?[{id:"osm",name:"Personal OSM Account",image:f}]:Object.entries(this.loginProviders).map(([i,t])=>({id:i,name:t.name||this.formatProviderName(i),icon:t.icon?void 0:this.defaultLoginIcon,image:t.icon}))}formatProviderName(i){return i.split("_").map(t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()).join(" ")}selectTab(i){console.log(i),this.tabs=[...this.tabs],this.selectedTab=i}performLogin(i){let t=this.loginProviders[i];if(!t){if(i==="osm"){this.legacyOsmLoginRedirect();return}console.error(`Login provider '${i}' not found`);return}if(!t.clientId){window.location.href=t.loginUrl;return}let c=window.location.pathname+window.location.search;sessionStorage.setItem("requestedPath",c);let h=new URLSearchParams(d({client_id:t.clientId,redirect_uri:t.redirectUrl,response_type:"code"},t.scope&&{scope:t.scope})),g=`${t.loginUrl}?${h.toString()}`;window.location.href=g}legacyOsmLoginRedirect(){if(!this.OsmOauthClientId||!this.OsmOauthRedirectUri){console.error("OSM OAuth client ID and redirect URI must be provided");return}let i=window.location.pathname+window.location.search;sessionStorage.setItem("requestedPath",i);let t=new URLSearchParams({client_id:this.OsmOauthClientId,redirect_uri:this.OsmOauthRedirectUri,response_type:"code",scope:"read_prefs"}),c=`${this.osmOauthUrl}?${t.toString()}`;window.location.href=c}handleSignIn(i){this.performLogin(i),this.loginModalOpen=!1}render(){let i=typeof this.logo=="string"||this.logo instanceof URL?typeof this.logo=="string"?this.logo:this.logo.href:"";return l`
2
+ <header class=${u({size:this.size,borderBottom:this.borderBottom})}>
3
+ <a href="/" class="header--link">
4
+ ${i.length>0?l`
5
+ <img
6
+ id="logo"
7
+ src="${this.logo}"
8
+ alt="Logo"
9
+ class="header--logo-img"
10
+ />
11
+ `:l`
12
+ <hot-logo
13
+ ?iconOnly="${this.title.length>0}"
14
+ >
15
+ </hot-logo>
16
+ `}
17
+ ${this.title.length>0?l`
18
+ <h1 class="header--title">
19
+ ${this.title}
20
+ </h1>
21
+ `:null}
22
+ </a>
23
+
24
+ ${""}
25
+ <nav
26
+ class="header--nav"
27
+ >
28
+ <wa-tab-group class="header--tab-group">
29
+ ${this.tabs.map((t,c)=>{let g=this.selectedTab===c?"header--tab header--tab-active":"header--tab";return l`
30
+ <wa-tab
31
+ panel="${t.label}"
32
+ class="${g}"
33
+ slot="nav"
34
+ @click=${C=>this._tabClick(C,t.clickEvent,c)}
35
+ >
36
+ ${t.label}
37
+ </wa-tab>
38
+ `})}
39
+ </wa-tab-group>
40
+ </nav>
41
+
42
+ ${""}
43
+ ${""}
44
+ <nav
45
+ class="header--nav-mobile"
46
+ ></nav>
47
+
48
+ <div id="right-section" class="header--right-section">
49
+ ${this.showLogin?l`
50
+ <wa-button
51
+ variant="brand"
52
+ class="header--login-button"
53
+ @click=${()=>this._handleLogin()}
54
+ >
55
+ Login
56
+ </wa-button>
57
+ `:null}
58
+ ${this.drawer?l`
59
+ <wa-button>
60
+ <wa-icon library="hot-icons" name="list" label="drawer-open" class="header--drawer">
61
+ </wa-icon>
62
+ </wa-button>
63
+ `:null}
64
+ </div>
65
+
66
+ <!-- Login Modal -->
67
+ ${this.showLogin?l`
68
+ <wa-dialog
69
+ class="login-modal"
70
+ ?open=${this.loginModalOpen}
71
+ @wa-hide=${()=>this._handleModalClose()}
72
+ label="Sign In"
73
+ >
74
+ <div class="login-content">
75
+ <div class="login-options">
76
+ ${this.loginOptions.map(t=>l`
77
+ <div
78
+ class="login-option"
79
+ @click=${()=>this.handleSignIn(t.id)}
80
+ >
81
+ <div class="login-option-icon">
82
+ ${t.image?l`<img src="${t.image}" alt="${t.name}" />`:t.icon?l`<wa-icon name="${t.icon}"></wa-icon>`:null}
83
+ </div>
84
+ <div class="login-option-text">${t.name}</div>
85
+ </div>
86
+ `)}
87
+ </div>
88
+ </div>
89
+ </wa-dialog>
90
+ `:null}
91
+ </header>
92
+ `}_tabClick(i,t,c){this.selectTab(c),t()}_handleLogin(){this.loginModalOpen=!0,this.dispatchEvent(new Event("login"))}_handleModalClose(){this.loginModalOpen=!1}};v=new WeakMap,w=new WeakMap,O=new WeakMap,y=new WeakMap,L=new WeakMap,$=new WeakMap,P=new WeakMap,I=new WeakMap,B=new WeakMap,U=new WeakMap,S=new WeakMap,_=new WeakMap,q=new WeakMap,M=new WeakMap,e.styles=[p],s([r({type:String})],e.prototype,"title",1),s([r({type:String})],e.prototype,"logo",1),s([r({type:Boolean})],e.prototype,"drawer",1),s([r({type:Array})],e.prototype,"tabs",1),s([r({type:String})],e.prototype,"size",1),s([r({type:Boolean})],e.prototype,"borderBottom",1),s([r({type:Number})],e.prototype,"selectedTab",1),s([r({type:Boolean})],e.prototype,"showLogin",1),s([r({type:Boolean})],e.prototype,"loginModalOpen",1),s([r({type:Object,attribute:"login-providers"})],e.prototype,"loginProviders",1),s([r({type:String,attribute:"default-login-icon"})],e.prototype,"defaultLoginIcon",1),s([r({type:String,attribute:"osm-oauth-url"})],e.prototype,"osmOauthUrl",1),s([r({type:String,attribute:"osm-oauth-client-id"})],e.prototype,"OsmOauthClientId",1),s([r({type:String,attribute:"osm-oauth-redirect-uri"})],e.prototype,"OsmOauthRedirectUri",1);var Z=e;customElements.define("hot-header",e);export{e as a,Z as b};
@@ -0,0 +1,217 @@
1
+ import{a as h,b as p}from"./chunk.7VBX4GII.js";import{a as f,b as v,c as b}from"./chunk.I26W4NHZ.js";import{a as g}from"./chunk.OHRBDQCO.js";import"./chunk.TFICHQZE.js";import{a as i,b as w}from"./chunk.FIQQYKEP.js";import{a as u,b as r,d as m}from"./chunk.6ZDEZIWM.js";import{e as d}from"./chunk.U4P7XQR4.js";import"./chunk.NI7UJOOZ.js";function y(e){return e.split(" ").map(t=>t.trim()).filter(t=>t!=="")}var x=class extends Event{constructor(){super("wa-after-hide",{bubbles:!0,cancelable:!1,composed:!0})}},k=class extends Event{constructor(){super("wa-after-show",{bubbles:!0,cancelable:!1,composed:!0})}},E=class extends Event{constructor(e){super("wa-hide",{bubbles:!0,cancelable:!0,composed:!0}),this.detail=e}},C=class extends Event{constructor(){super("wa-show",{bubbles:!0,cancelable:!0,composed:!0})}};function l(e,t){return new Promise(n=>{let a=new AbortController,{signal:c}=a;if(e.classList.contains(t))return;e.classList.remove(t),e.classList.add(t);let s=()=>{e.classList.remove(t),n(),a.abort()};e.addEventListener("animationend",s,{once:!0,signal:c}),e.addEventListener("animationcancel",s,{once:!0,signal:c})})}var S=`:host {
2
+ --width: 31rem;
3
+ --spacing: var(--wa-space-l);
4
+ --show-duration: 200ms;
5
+ --hide-duration: 200ms;
6
+
7
+ display: none;
8
+ }
9
+
10
+ :host([open]) {
11
+ display: block;
12
+ }
13
+
14
+ .dialog {
15
+ display: flex;
16
+ flex-direction: column;
17
+ top: 0;
18
+ right: 0;
19
+ bottom: 0;
20
+ left: 0;
21
+ width: var(--width);
22
+ max-width: calc(100% - var(--wa-space-2xl));
23
+ max-height: calc(100% - var(--wa-space-2xl));
24
+ background-color: var(--wa-color-surface-raised);
25
+ border-radius: var(--wa-panel-border-radius);
26
+ border: none;
27
+ box-shadow: var(--wa-shadow-l);
28
+ padding: 0;
29
+ margin: auto;
30
+
31
+ &.show {
32
+ animation: show-dialog var(--show-duration) ease;
33
+
34
+ &::backdrop {
35
+ animation: show-backdrop var(--show-duration, 200ms) ease;
36
+ }
37
+ }
38
+
39
+ &.hide {
40
+ animation: show-dialog var(--hide-duration) ease reverse;
41
+
42
+ &::backdrop {
43
+ animation: show-backdrop var(--hide-duration, 200ms) ease reverse;
44
+ }
45
+ }
46
+
47
+ &.pulse {
48
+ animation: pulse 250ms ease;
49
+ }
50
+ }
51
+
52
+ .dialog:focus {
53
+ outline: none;
54
+ }
55
+
56
+ /* Ensure there's enough vertical padding for phones that don't update vh when chrome appears (e.g. iPhone) */
57
+ @media screen and (max-width: 420px) {
58
+ .dialog {
59
+ max-height: 80vh;
60
+ }
61
+ }
62
+
63
+ .open {
64
+ display: flex;
65
+ opacity: 1;
66
+ }
67
+
68
+ .header {
69
+ flex: 0 0 auto;
70
+ display: flex;
71
+ flex-wrap: nowrap;
72
+
73
+ padding-inline-start: var(--spacing);
74
+ padding-block-end: 0;
75
+
76
+ /* Subtract the close button's padding so that the X is visually aligned with the edges of the dialog content */
77
+ padding-inline-end: calc(var(--spacing) - var(--wa-form-control-padding-block));
78
+ padding-block-start: calc(var(--spacing) - var(--wa-form-control-padding-block));
79
+ }
80
+
81
+ .title {
82
+ align-self: center;
83
+ flex: 1 1 auto;
84
+ font-family: inherit;
85
+ font-size: var(--wa-font-size-l);
86
+ font-weight: var(--wa-font-weight-heading);
87
+ line-height: var(--wa-line-height-condensed);
88
+ margin: 0;
89
+ }
90
+
91
+ .header-actions {
92
+ align-self: start;
93
+ display: flex;
94
+ flex-shrink: 0;
95
+ flex-wrap: wrap;
96
+ justify-content: end;
97
+ gap: var(--wa-space-2xs);
98
+ padding-inline-start: var(--spacing);
99
+ }
100
+
101
+ .header-actions wa-button,
102
+ .header-actions ::slotted(wa-button) {
103
+ flex: 0 0 auto;
104
+ display: flex;
105
+ align-items: center;
106
+ }
107
+
108
+ .body {
109
+ flex: 1 1 auto;
110
+ display: block;
111
+ padding: var(--spacing);
112
+ overflow: auto;
113
+ -webkit-overflow-scrolling: touch;
114
+ }
115
+
116
+ .footer {
117
+ flex: 0 0 auto;
118
+ display: flex;
119
+ flex-wrap: wrap;
120
+ gap: var(--wa-space-xs);
121
+ justify-content: end;
122
+ padding: var(--spacing);
123
+ padding-block-start: 0;
124
+ }
125
+
126
+ .footer ::slotted(wa-button:not(:first-of-type)) {
127
+ margin-inline-start: var(--wa-spacing-xs);
128
+ }
129
+
130
+ .dialog::backdrop {
131
+ /*
132
+ NOTE: the ::backdrop element doesn't inherit properly in Safari yet, but it will in 17.4! At that time, we can
133
+ remove the fallback values here.
134
+ */
135
+ background-color: var(--wa-color-overlay-modal, rgb(0 0 0 / 0.25));
136
+ }
137
+
138
+ @keyframes pulse {
139
+ 0% {
140
+ scale: 1;
141
+ }
142
+ 50% {
143
+ scale: 1.02;
144
+ }
145
+ 100% {
146
+ scale: 1;
147
+ }
148
+ }
149
+
150
+ @keyframes show-dialog {
151
+ from {
152
+ opacity: 0;
153
+ scale: 0.8;
154
+ }
155
+ to {
156
+ opacity: 1;
157
+ scale: 1;
158
+ }
159
+ }
160
+
161
+ @keyframes show-backdrop {
162
+ from {
163
+ opacity: 0;
164
+ }
165
+ to {
166
+ opacity: 1;
167
+ }
168
+ }
169
+
170
+ @media (forced-colors: active) {
171
+ .dialog {
172
+ border: solid 1px white;
173
+ }
174
+ }
175
+ `,o=class extends w{constructor(){super(...arguments),this.localize=new f(this),this.hasSlotController=new b(this,"footer","header-actions","label"),this.open=!1,this.label="",this.withoutHeader=!1,this.lightDismiss=!1,this.handleDocumentKeyDown=e=>{e.key==="Escape"&&this.open&&(e.preventDefault(),e.stopPropagation(),this.requestClose(this.dialog))}}firstUpdated(){this.open&&(this.addOpenListeners(),this.dialog.showModal(),h(this))}disconnectedCallback(){super.disconnectedCallback(),p(this),this.removeOpenListeners()}async requestClose(e){let t=new E({source:e});if(this.dispatchEvent(t),t.defaultPrevented){this.open=!0,l(this.dialog,"pulse");return}this.removeOpenListeners(),await l(this.dialog,"hide"),this.open=!1,this.dialog.close(),p(this);let n=this.originalTrigger;typeof(n==null?void 0:n.focus)=="function"&&setTimeout(()=>n.focus()),this.dispatchEvent(new x)}addOpenListeners(){document.addEventListener("keydown",this.handleDocumentKeyDown)}removeOpenListeners(){document.removeEventListener("keydown",this.handleDocumentKeyDown)}handleDialogCancel(e){e.preventDefault(),this.dialog.classList.contains("hide")||this.requestClose(this.dialog)}handleDialogClick(e){let n=e.target.closest('[data-dialog="close"]');n&&(e.stopPropagation(),this.requestClose(n))}async handleDialogPointerDown(e){e.target===this.dialog&&(this.lightDismiss?this.requestClose(this.dialog):await l(this.dialog,"pulse"))}handleOpenChange(){this.open&&!this.dialog.open?this.show():!this.open&&this.dialog.open&&(this.open=!0,this.requestClose(this.dialog))}async show(){let e=new C;if(this.dispatchEvent(e),e.defaultPrevented){this.open=!1;return}this.addOpenListeners(),this.originalTrigger=document.activeElement,this.open=!0,this.dialog.showModal(),h(this),requestAnimationFrame(()=>{let t=this.querySelector("[autofocus]");t&&typeof t.focus=="function"&&t.focus()}),await l(this.dialog,"show"),this.dispatchEvent(new k)}render(){let e=!this.withoutHeader&&(this.label.length>0||this.hasSlotController.test("label")||this.hasSlotController.test("header-actions")),t=this.hasSlotController.test("footer");return d`
176
+ <dialog
177
+ part="dialog"
178
+ class=${v({dialog:!0,open:this.open})}
179
+ @cancel=${this.handleDialogCancel}
180
+ @click=${this.handleDialogClick}
181
+ @pointerdown=${this.handleDialogPointerDown}
182
+ >
183
+ ${e?d`
184
+ <header part="header" class="header">
185
+ <h2 part="title" class="title" id="title">
186
+ <!-- If there's no label, use an invisible character to prevent the header from collapsing -->
187
+ <slot name="label"> ${this.label.length>0?this.label:"\uFEFF"} </slot>
188
+ </h2>
189
+ <div part="header-actions" class="header-actions">
190
+ <slot name="header-actions"></slot>
191
+ <wa-button
192
+ part="close-button"
193
+ exportparts="base:close-button__base"
194
+ class="close"
195
+ appearance="plain"
196
+ @click="${n=>this.requestClose(n.target)}"
197
+ >
198
+ <wa-icon
199
+ name="xmark"
200
+ label=${this.localize.term("close")}
201
+ library="system"
202
+ variant="solid"
203
+ ></wa-icon>
204
+ </wa-button>
205
+ </div>
206
+ </header>
207
+ `:""}
208
+
209
+ <div part="body" class="body"><slot></slot></div>
210
+
211
+ ${t?d`
212
+ <footer part="footer" class="footer">
213
+ <slot name="footer"></slot>
214
+ </footer>
215
+ `:""}
216
+ </dialog>
217
+ `}};o.css=S;i([m(".dialog")],o.prototype,"dialog",2);i([r({type:Boolean,reflect:!0})],o.prototype,"open",2);i([r({reflect:!0})],o.prototype,"label",2);i([r({attribute:"without-header",type:Boolean,reflect:!0})],o.prototype,"withoutHeader",2);i([r({attribute:"light-dismiss",type:Boolean})],o.prototype,"lightDismiss",2);i([g("open",{waitUntilFirstUpdate:!0})],o.prototype,"handleOpenChange",1);o=i([u("wa-dialog")],o);document.addEventListener("click",e=>{let t=e.target.closest("[data-dialog]");if(t instanceof Element){let[n,a]=y(t.getAttribute("data-dialog")||"");if(n==="open"&&(a!=null&&a.length)){let s=t.getRootNode().getElementById(a);(s==null?void 0:s.localName)==="wa-dialog"?s.open=!0:console.warn(`A dialog with an ID of "${a}" could not be found in this document.`)}}});!1||document.addEventListener("pointerdown",()=>{});export{o as default};
@@ -0,0 +1 @@
1
+ import{b as o}from"./chunk.OHRBDQCO.js";import"./chunk.FIQQYKEP.js";import"./chunk.6ZDEZIWM.js";import"./chunk.U4P7XQR4.js";import"./chunk.NI7UJOOZ.js";export{o as default};