@trycourier/courier-ui-inbox 1.0.4-beta → 1.0.6-beta

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.
package/dist/index.js CHANGED
@@ -1,762 +1,2 @@
1
- (function(T,U){typeof exports=="object"&&typeof module<"u"?U(exports):typeof define=="function"&&define.amd?define(["exports"],U):(T=typeof globalThis<"u"?globalThis:T||self,U(T.CourierUIInbox={}))})(this,function(T){"use strict";var _n=Object.defineProperty;var fn=(T,U,ce)=>U in T?_n(T,U,{enumerable:!0,configurable:!0,writable:!0,value:ce}):T[U]=ce;var a=(T,U,ce)=>fn(T,typeof U!="symbol"?U+"":U,ce);var U=Object.defineProperty,ce=(c,t,e)=>t in c?U(c,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[t]=e,$=(c,t,e)=>ce(c,typeof t!="symbol"?t+"":t,e);const Qe=class Go{constructor(t,e){$(this,"webSocket",null),$(this,"pingInterval",null),$(this,"onOpen"),$(this,"onMessageReceived"),$(this,"onClose"),$(this,"onError"),$(this,"url"),$(this,"options"),this.url=t,this.options=e}get isConnected(){return this.webSocket!==null}async connect(){return this.disconnect(),new Promise((t,e)=>{try{this.webSocket=new WebSocket(this.url),this.webSocket.onopen=()=>{var i;(i=this.onOpen)==null||i.call(this),t()},this.webSocket.onmessage=i=>{var s;(s=this.onMessageReceived)==null||s.call(this,i.data)},this.webSocket.onclose=i=>{var s;this.webSocket=null,(s=this.onClose)==null||s.call(this,i.code,i.reason)},this.webSocket.onerror=i=>{var s;this.webSocket=null;const o=new Error("Courier Socket connection failed");o.originalEvent=i,(s=this.onError)==null||s.call(this,o),e(o)}}catch(i){this.webSocket=null,e(i)}})}disconnect(){this.stopPing(),this.webSocket&&(this.webSocket.close(Go.NORMAL_CLOSURE_STATUS),this.webSocket=null)}async send(t){if(!this.webSocket)return!1;const e=JSON.stringify(t);return this.webSocket.send(e)!==void 0}keepAlive(t){this.stopPing(),this.pingInterval=setInterval(async()=>{var e;try{await this.send({action:"keepAlive"})}catch(i){(e=this.options.logger)==null||e.error("Error occurred on Keep Alive:",i)}},(t==null?void 0:t.intervalInMillis)??3e5)}stopPing(){this.pingInterval&&(clearInterval(this.pingInterval),this.pingInterval=null)}};$(Qe,"NORMAL_CLOSURE_STATUS",1e3);let Wo=Qe;const Ye=c=>({courier:{rest:(c==null?void 0:c.courier.rest)||"https://api.courier.com",graphql:(c==null?void 0:c.courier.graphql)||"https://api.courier.com/client/q"},inbox:{graphql:(c==null?void 0:c.inbox.graphql)||"https://inbox.courier.com/q",webSocket:(c==null?void 0:c.inbox.webSocket)||"wss://realtime.courier.com"}});class Ko{constructor(t){$(this,"PREFIX","[COURIER]"),this.showLogs=t}warn(t,...e){this.showLogs&&console.warn(`${this.PREFIX} ${t}`,...e)}log(t,...e){this.showLogs&&console.log(`${this.PREFIX} ${t}`,...e)}error(t,...e){this.showLogs&&console.error(`${this.PREFIX} ${t}`,...e)}debug(t,...e){this.showLogs&&console.debug(`${this.PREFIX} ${t}`,...e)}info(t,...e){this.showLogs&&console.info(`${this.PREFIX} ${t}`,...e)}}class Be{static generate(t){const e=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);return t?t+e:e}}class De extends Error{constructor(t,e,i){super(e),this.code=t,this.type=i,this.name="CourierRequestError"}}function et(c,t,e,i){c.log(`
2
- 📡 New Courier ${e} Request: ${t}
3
- URL: ${i.url}
4
- ${i.method?`Method: ${i.method}`:""}
5
- ${i.query?`Query: ${i.query}`:""}
6
- ${i.variables?`Variables: ${JSON.stringify(i.variables,null,2)}`:""}
7
- Headers: ${JSON.stringify(i.headers,null,2)}
8
- Body: ${i.body?JSON.stringify(i.body,null,2):"Empty"}
9
- `)}function tt(c,t,e,i){c.log(`
10
- 📡 New Courier ${e} Response: ${t}
11
- Status Code: ${i.status}
12
- Response JSON: ${JSON.stringify(i.response,null,2)}
13
- `)}async function K(c){const t=c.validCodes??[200],e=c.options.showLogs?Be.generate():void 0,i=new Request(c.url,{method:c.method,headers:{"Content-Type":"application/json",...c.headers},body:c.body?JSON.stringify(c.body):void 0});e&&et(c.options.logger,e,"HTTP",{url:i.url,method:i.method,headers:Object.fromEntries(i.headers.entries()),body:c.body});const s=await fetch(i);if(s.status===204)return;let o;try{o=await s.json()}catch{if(s.status===200)return;throw new De(s.status,"Failed to parse response as JSON","PARSE_ERROR")}if(e&&tt(c.options.logger,e,"HTTP",{status:s.status,response:o}),!t.includes(s.status))throw new De(s.status,(o==null?void 0:o.message)||"Unknown Error",o==null?void 0:o.type);return o}async function N(c){const t=c.options.showLogs?Be.generate():void 0;t&&et(c.options.logger,t,"GraphQL",{url:c.url,headers:c.headers,query:c.query,variables:c.variables});const e=await fetch(c.url,{method:"POST",headers:{"Content-Type":"application/json",...c.headers},body:JSON.stringify({query:c.query,variables:c.variables})});let i;try{i=await e.json()}catch{throw new De(e.status,"Failed to parse response as JSON","PARSE_ERROR")}if(t&&tt(c.options.logger,t,"GraphQL",{status:e.status,response:i}),!e.ok)throw new De(e.status,(i==null?void 0:i.message)||"Unknown Error",i==null?void 0:i.type);return i}class re{constructor(t){this.options=t}}class Xo extends re{async getBrand(t){const e=`
14
- query GetBrand {
15
- brand(brandId: "${t.brandId}") {
16
- settings {
17
- colors {
18
- primary
19
- secondary
20
- tertiary
21
- }
22
- inapp {
23
- borderRadius
24
- disableCourierFooter
25
- }
26
- }
27
- }
28
- }
29
- `;return(await N({options:this.options,url:this.options.apiUrls.courier.graphql,headers:{"x-courier-user-id":this.options.userId,"x-courier-client-key":"empty",Authorization:`Bearer ${this.options.accessToken}`},query:e,variables:{brandId:t.brandId}})).data.brand}}class Ue extends Wo{constructor(t){const e=Ue.buildUrl(t);super(e,t),$(this,"receivedMessage"),$(this,"receivedMessageEvent"),this.onMessageReceived=i=>this.convertToType(i)}convertToType(t){var e,i,s,o;try{switch(JSON.parse(t).type){case"event":const h=JSON.parse(t);(e=this.receivedMessageEvent)==null||e.call(this,h);break;case"message":const d=JSON.parse(t);(i=this.receivedMessage)==null||i.call(this,d);break}}catch(n){(s=this.options.logger)==null||s.error("Error parsing socket message",n),n instanceof Error&&((o=this.onError)==null||o.call(this,n))}}async sendSubscribe(t){var e;const i={action:"subscribe",data:{userAgent:"courier-js",channel:this.options.userId,event:"*",version:(t==null?void 0:t.version)??5}};this.options.connectionId&&(i.data.clientSourceId=this.options.connectionId),this.options.tenantId&&(i.data.accountId=this.options.tenantId),(e=this.options.logger)==null||e.debug("Sending subscribe request",i),await this.send(i)}static buildUrl(t){var e;let i=((e=t.apiUrls)==null?void 0:e.inbox.webSocket)??"";return t.accessToken&&(i+=`/?auth=${t.accessToken}`),i}}class Qo extends re{constructor(t){super(t),$(this,"socket"),this.socket=new Ue(t)}async getMessages(t){const e=`
30
- query GetInboxMessages(
31
- $params: FilterParamsInput = { ${this.options.tenantId?`accountId: "${this.options.tenantId}"`:""} }
32
- $limit: Int = ${(t==null?void 0:t.paginationLimit)??24}
33
- $after: String ${t!=null&&t.startCursor?`= "${t.startCursor}"`:""}
34
- ) {
35
- count(params: $params)
36
- messages(params: $params, limit: $limit, after: $after) {
37
- totalCount
38
- pageInfo {
39
- startCursor
40
- hasNextPage
41
- }
42
- nodes {
43
- messageId
44
- read
45
- archived
46
- created
47
- opened
48
- title
49
- preview
50
- data
51
- tags
52
- trackingIds {
53
- clickTrackingId
54
- }
55
- actions {
56
- content
57
- data
58
- href
59
- }
60
- }
61
- }
62
- }
63
- `;return await N({options:this.options,query:e,headers:{"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`},url:this.options.apiUrls.inbox.graphql})}async getArchivedMessages(t){const e=`
64
- query GetInboxMessages(
65
- $params: FilterParamsInput = { ${this.options.tenantId?`accountId: "${this.options.tenantId}"`:""}, archived: true }
66
- $limit: Int = ${(t==null?void 0:t.paginationLimit)??24}
67
- $after: String ${t!=null&&t.startCursor?`= "${t.startCursor}"`:""}
68
- ) {
69
- count(params: $params)
70
- messages(params: $params, limit: $limit, after: $after) {
71
- totalCount
72
- pageInfo {
73
- startCursor
74
- hasNextPage
75
- }
76
- nodes {
77
- messageId
78
- read
79
- archived
80
- created
81
- opened
82
- title
83
- preview
84
- data
85
- tags
86
- trackingIds {
87
- clickTrackingId
88
- }
89
- actions {
90
- content
91
- data
92
- href
93
- }
94
- }
95
- }
96
- }
97
- `;return N({options:this.options,query:e,headers:{"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`},url:this.options.apiUrls.inbox.graphql})}async getUnreadMessageCount(){var t;const e=`
98
- query GetMessages {
99
- count(params: { status: "unread" ${this.options.tenantId?`, accountId: "${this.options.tenantId}"`:""} })
100
- }
101
- `;return((t=(await N({options:this.options,query:e,headers:{"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`},url:this.options.apiUrls.inbox.graphql})).data)==null?void 0:t.count)??0}async click(t){const e=`
102
- mutation TrackEvent {
103
- clicked(messageId: "${t.messageId}", trackingId: "${t.trackingId}")
104
- }
105
- `,i={"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`};this.options.connectionId&&(i["x-courier-client-source-id"]=this.options.connectionId),await N({options:this.options,query:e,headers:i,url:this.options.apiUrls.inbox.graphql})}async read(t){const e=`
106
- mutation TrackEvent {
107
- read(messageId: "${t.messageId}")
108
- }
109
- `,i={"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`};this.options.connectionId&&(i["x-courier-client-source-id"]=this.options.connectionId),await N({options:this.options,query:e,headers:i,url:this.options.apiUrls.inbox.graphql})}async unread(t){const e=`
110
- mutation TrackEvent {
111
- unread(messageId: "${t.messageId}")
112
- }
113
- `,i={"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`};this.options.connectionId&&(i["x-courier-client-source-id"]=this.options.connectionId),await N({options:this.options,query:e,headers:i,url:this.options.apiUrls.inbox.graphql})}async readAll(){const t=`
114
- mutation TrackEvent {
115
- markAllRead
116
- }
117
- `,e={"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`};this.options.connectionId&&(e["x-courier-client-source-id"]=this.options.connectionId),await N({options:this.options,query:t,headers:e,url:this.options.apiUrls.inbox.graphql})}async open(t){const e=`
118
- mutation TrackEvent {
119
- opened(messageId: "${t.messageId}")
120
- }
121
- `,i={"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`};this.options.connectionId&&(i["x-courier-client-source-id"]=this.options.connectionId),await N({options:this.options,query:e,headers:i,url:this.options.apiUrls.inbox.graphql})}async archive(t){const e=`
122
- mutation TrackEvent {
123
- archive(messageId: "${t.messageId}")
124
- }
125
- `,i={"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`};this.options.connectionId&&(i["x-courier-client-source-id"]=this.options.connectionId),await N({options:this.options,query:e,headers:i,url:this.options.apiUrls.inbox.graphql})}async archiveRead(){const t=`
126
- mutation TrackEvent {
127
- archiveRead
128
- }
129
- `,e={"x-courier-user-id":this.options.userId,Authorization:`Bearer ${this.options.accessToken}`};this.options.connectionId&&(e["x-courier-client-source-id"]=this.options.connectionId),await N({options:this.options,query:t,headers:e,url:this.options.apiUrls.inbox.graphql})}}class Yo{transformItem(t){return{topicId:t.topic_id,topicName:t.topic_name,sectionId:t.section_id,sectionName:t.section_name,status:t.status,defaultStatus:t.default_status,hasCustomRouting:t.has_custom_routing,customRouting:t.custom_routing||[]}}*transform(t){for(const e of t)yield this.transformItem(e)}}function en(c){const t=atob(c),e=new Uint8Array(t.length);for(let i=0;i<t.length;i++)e[i]=t.charCodeAt(i);return String.fromCharCode(...e)}function tn(c){const t=new Uint8Array(c.length);for(let e=0;e<c.length;e++)t[e]=c.charCodeAt(e);return btoa(String.fromCharCode(...t))}class sn extends re{constructor(){super(...arguments),$(this,"transformer",new Yo)}async getUserPreferences(t){let e=`${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences`;t!=null&&t.paginationCursor&&(e+=`?cursor=${t.paginationCursor}`);const s=await K({options:this.options,url:e,method:"GET",headers:{Authorization:`Bearer ${this.options.accessToken}`}});return{items:[...this.transformer.transform(s.items)],paging:s.paging}}async getUserPreferenceTopic(t){const i=await K({options:this.options,url:`${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${t.topicId}`,method:"GET",headers:{Authorization:`Bearer ${this.options.accessToken}`}});return this.transformer.transformItem(i.topic)}async putUserPreferenceTopic(t){const e={topic:{status:t.status,has_custom_routing:t.hasCustomRouting,custom_routing:t.customRouting}};await K({options:this.options,url:`${this.options.apiUrls.courier.rest}/users/${this.options.userId}/preferences/${t.topicId}`,method:"PUT",headers:{Authorization:`Bearer ${this.options.accessToken}`},body:e})}getNotificationCenterUrl(t){const e=en(t.clientKey);return`https://view.notificationcenter.app/p/${tn(`${e}#${this.options.userId}${this.options.tenantId?`#${this.options.tenantId}`:""}#false`)}`}}class on extends re{async putUserToken(t){const e={provider_key:t.provider,...t.device&&{device:{app_id:t.device.appId,ad_id:t.device.adId,device_id:t.device.deviceId,platform:t.device.platform,manufacturer:t.device.manufacturer,model:t.device.model}}};await K({options:this.options,url:`${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${t.token}`,method:"PUT",headers:{Authorization:`Bearer ${this.options.accessToken}`},body:e,validCodes:[200,204]})}async deleteUserToken(t){await K({options:this.options,url:`${this.options.apiUrls.courier.rest}/users/${this.options.userId}/tokens/${t.token}`,method:"DELETE",headers:{Authorization:`Bearer ${this.options.accessToken}`},validCodes:[200,204]})}}class nn extends re{async putSubscription(t){return await K({url:`${this.options.apiUrls.courier.rest}/lists/${t.listId}/subscriptions/${this.options.userId}`,options:this.options,method:"PUT",headers:{Authorization:`Bearer ${this.options.accessToken}`}})}async deleteSubscription(t){return await K({url:`${this.options.apiUrls.courier.rest}/lists/${t.listId}/subscriptions/${this.options.userId}`,options:this.options,method:"DELETE",headers:{Authorization:`Bearer ${this.options.accessToken}`}})}}class rn extends re{async postInboundCourier(t){return await K({url:`${this.options.apiUrls.courier.rest}/inbound/courier`,options:this.options,method:"POST",headers:{Authorization:`Bearer ${this.options.accessToken}`},body:{...t,userId:this.options.userId},validCodes:[200,202]})}async postTrackingUrl(t){return await K({url:t.url,options:this.options,method:"POST",body:{event:t.event}})}}class an extends re{constructor(t){var e,i;const s=t.showLogs!==void 0?t.showLogs:process.env.NODE_ENV==="development",o={...t,showLogs:s,apiUrls:t.apiUrls||Ye(),accessToken:t.jwt??t.publicApiKey};super({...o,logger:new Ko(o.showLogs),apiUrls:Ye(o.apiUrls)}),$(this,"tokens"),$(this,"brands"),$(this,"preferences"),$(this,"inbox"),$(this,"lists"),$(this,"tracking"),this.tokens=new on(this.options),this.brands=new Xo(this.options),this.preferences=new sn(this.options),this.inbox=new Qo(this.options),this.lists=new nn(this.options),this.tracking=new rn(this.options),!this.options.jwt&&!this.options.publicApiKey&&this.options.logger.warn("Courier Client initialized with no authentication method. Please provide a JWT or public API key."),this.options.publicApiKey&&((e=this.options.logger)==null||e.warn(`Courier Warning: Public API Keys are for testing only. Please use JWTs for production.
130
- You can generate a JWT with this endpoint: https://www.courier.com/docs/reference/auth/issue-token
131
- This endpoint should be called from your backend server, not the SDK.`)),this.options.jwt&&this.options.publicApiKey&&((i=this.options.logger)==null||i.warn("Courier Warning: Both a JWT and a Public API Key were provided. The Public API Key will be ignored."))}}class hn{constructor(t){$(this,"callback"),this.callback=t}remove(){v.shared.removeAuthenticationListener(this)}}const it=class Pe{constructor(){$(this,"id",Be.generate()),$(this,"instanceClient"),$(this,"_paginationLimit",24),$(this,"authenticationListeners",[])}get paginationLimit(){return this._paginationLimit}set paginationLimit(t){this._paginationLimit=Math.min(Math.max(t,1),100)}get client(){return this.instanceClient}static get shared(){return Pe.instance||(Pe.instance=new Pe),Pe.instance}signIn(t){const e=t.connectionId??Be.generate();this.instanceClient=new an({...t,connectionId:e}),this.notifyAuthenticationListeners({userId:t.userId})}signOut(){this.instanceClient=void 0,this.notifyAuthenticationListeners({userId:void 0})}addAuthenticationListener(t){var e;(e=this.instanceClient)==null||e.options.logger.info("Adding authentication listener");const i=new hn(t);return this.authenticationListeners.push(i),i}removeAuthenticationListener(t){var e;(e=this.instanceClient)==null||e.options.logger.info("Removing authentication listener"),this.authenticationListeners=this.authenticationListeners.filter(i=>i!==t)}notifyAuthenticationListeners(t){this.authenticationListeners.forEach(e=>e.callback(t))}};$(it,"instance");let v=it;var cn=Object.defineProperty,ln=(c,t,e)=>t in c?cn(c,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[t]=e,L=(c,t,e)=>ln(c,typeof t!="symbol"?t+"":t,e);const r={black:{500:"#171717",50010:"#1717171A",50020:"#17171733"},gray:{200:"#F5F5F5",400:"#3A3A3A",500:"#E5E5E5",600:"#737373"},white:{500:"#FFFFFF",50010:"#FFFFFF1A",50020:"#FFFFFF33"},blue:{400:"#60A5FA",500:"#2563EB"}},X={light:{colors:{primary:r.black[500],secondary:r.white[500],border:r.gray[500],link:r.blue[500],icon:r.black[500]},button:{cornerRadius:"4px"}},dark:{colors:{primary:r.white[500],secondary:r.black[500],border:r.gray[400],link:r.blue[400],icon:r.white[500]},button:{cornerRadius:"4px"}}},st=()=>typeof window>"u"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",ot=c=>{if(typeof window>"u")return()=>{};const t=window.matchMedia("(prefers-color-scheme: dark)"),e=i=>{c(i.matches?"dark":"light")};return t.addEventListener("change",e),()=>{t.removeEventListener("change",e)}};class nt extends HTMLElement{constructor(){super(),L(this,"_currentSystemTheme"),L(this,"_systemThemeCleanup"),this._currentSystemTheme=st(),this._systemThemeCleanup=ot(t=>{this._currentSystemTheme=t,this.onSystemThemeChange(t)})}get currentSystemTheme(){return this._currentSystemTheme}disconnectedCallback(){this._systemThemeCleanup&&this._systemThemeCleanup()}onSystemThemeChange(t){}}const Ne={borderRadius:"4px",fontSize:"14px"},Y={primary:c=>({...Ne,backgroundColor:X[c].colors.primary,textColor:X[c].colors.secondary,fontWeight:"500",shadow:"none"}),secondary:c=>({...Ne,backgroundColor:X[c].colors.secondary,textColor:X[c].colors.primary,fontWeight:"500",border:`1px solid ${X[c].colors.border}`,shadow:c==="light"?"0px 1px 2px 0px rgba(0, 0, 0, 0.06)":"0px 1px 2px 0px rgba(255, 255, 255, 0.1)"}),tertiary:c=>({...Ne,backgroundColor:X[c].colors.border,textColor:X[c].colors.primary,fontWeight:"500",border:"none",shadow:"none"})};class Re extends nt{constructor(t){super(),L(this,"_button"),L(this,"_style");const e=this.attachShadow({mode:"open"});this._button=document.createElement("button"),this._button.setAttribute("part","button"),this._style=document.createElement("style"),this._style.textContent=this.getStyles(t),e.appendChild(this._style),e.appendChild(this._button),this.updateButton(t),this._button.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),t.onClick&&t.onClick()})}getStyles(t){const e=()=>Y.secondary(this.currentSystemTheme).textColor,i=()=>Y.secondary(this.currentSystemTheme).backgroundColor,s=()=>Y.secondary(this.currentSystemTheme).border,o=()=>Y.secondary(this.currentSystemTheme).shadow,n=()=>Y.secondary(this.currentSystemTheme).borderRadius,h=()=>Y.secondary(this.currentSystemTheme).fontSize,d=()=>Y.secondary(this.currentSystemTheme).fontWeight;return`
132
- :host {
133
- display: inline-block;
134
- }
135
-
136
- button {
137
- border: none;
138
- border-radius: ${t.borderRadius??n()};
139
- font-weight: ${t.fontWeight??d()};
140
- font-family: ${t.fontFamily??"inherit"};
141
- font-size: ${t.fontSize??h()};
142
- padding: 6px 10px;
143
- cursor: pointer;
144
- width: 100%;
145
- height: 100%;
146
- background-color: ${t.backgroundColor??i()};
147
- color: ${t.textColor??e()};
148
- border: ${t.border??s()};
149
- box-shadow: ${t.shadow??o()};
150
- touch-action: manipulation;
151
- }
152
-
153
- button:hover {
154
- ${t.hoverBackgroundColor?`background-color: ${t.hoverBackgroundColor};`:"filter: brightness(0.9);"}
155
- }
156
-
157
- button:active {
158
- ${t.activeBackgroundColor?`background-color: ${t.activeBackgroundColor};`:"filter: brightness(0.8);"}
159
- }
160
-
161
- button:disabled {
162
- opacity: 0.5;
163
- cursor: not-allowed;
164
- }
165
- `}updateButton(t){t.text&&(this._button.textContent=t.text),this._style.textContent=this.getStyles(t)}}customElements.get("courier-button")||customElements.define("courier-button",Re);const x={inbox:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
166
- <path d="M5.5 14.5V17C5.5 17.2812 5.71875 17.5 6 17.5H18C18.25 17.5 18.5 17.2812 18.5 17V14.5H15.9375L15.2812 15.8125C15.0938 16.25 14.6562 16.5 14.1875 16.5H9.78125C9.3125 16.5 8.875 16.25 8.6875 15.8125L8.03125 14.5H5.5ZM18.1875 13L16.6562 6.90625C16.5938 6.65625 16.4062 6.5 16.1875 6.5H7.8125C7.5625 6.5 7.375 6.65625 7.3125 6.90625L5.78125 13H8.1875C8.65625 13 9.09375 13.2812 9.3125 13.7188L9.9375 15H14.0312L14.6875 13.7188C14.875 13.2812 15.3125 13 15.7812 13H18.1875ZM4 14.25C4 14.0938 4 13.9375 4.03125 13.7812L5.84375 6.53125C6.09375 5.625 6.875 5 7.8125 5H16.1875C17.0938 5 17.9062 5.625 18.125 6.53125L19.9375 13.7812C19.9688 13.9375 20 14.0938 20 14.25V17C20 18.125 19.0938 19 18 19H6C4.875 19 4 18.125 4 17V14.25Z" fill="currentColor"/>
167
- </svg>`,archive:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
168
- <path d="M5.5 6.5V8H18.5V6.5H5.5ZM5 5H19C19.5312 5 20 5.46875 20 6V8.5C20 9.0625 19.5312 9.5 19 9.5H5C4.4375 9.5 4 9.0625 4 8.5V6C4 5.46875 4.4375 5 5 5ZM9 11.75C9 11.3438 9.3125 11 9.75 11H14.25C14.6562 11 15 11.3438 15 11.75C15 12.1875 14.6562 12.5 14.25 12.5H9.75C9.3125 12.5 9 12.1875 9 11.75ZM5 17V10.5H6.5V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V10.5H19V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17Z" fill="currentColor"/>
169
- </svg>`,check:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
170
- <path d="M18.793 7.33203C19.0742 7.64453 19.0742 8.11328 18.793 8.39453L10.543 16.6445C10.2305 16.957 9.76172 16.957 9.48047 16.6445L5.23047 12.3945C4.91797 12.1133 4.91797 11.6445 5.23047 11.3633C5.51172 11.0508 5.98047 11.0508 6.26172 11.3633L9.98047 15.082L17.7305 7.33203C18.0117 7.05078 18.4805 7.05078 18.7617 7.33203H18.793Z" fill="currentColor"/>
171
- </svg>`,filter:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
172
- <path d="M5 7C5 6.59375 5.3125 6.25 5.75 6.25H18.25C18.6562 6.25 19 6.59375 19 7C19 7.4375 18.6562 7.75 18.25 7.75H5.75C5.3125 7.75 5 7.4375 5 7ZM7 12C7 11.5938 7.3125 11.25 7.75 11.25H16.25C16.6562 11.25 17 11.5938 17 12C17 12.4375 16.6562 12.75 16.25 12.75H7.75C7.3125 12.75 7 12.4375 7 12ZM14 17C14 17.4375 13.6562 17.75 13.25 17.75H10.75C10.3125 17.75 10 17.4375 10 17C10 16.5938 10.3125 16.25 10.75 16.25H13.25C13.6562 16.25 14 16.5938 14 17Z" fill="currentColor"/>
173
- </svg>`,overflow:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
174
- <path d="M18.5117 11.9883C18.5117 12.5508 18.1992 13.0195 17.7617 13.3008C17.293 13.582 16.6992 13.582 16.2617 13.3008C15.793 13.0195 15.5117 12.5508 15.5117 11.9883C15.5117 11.457 15.793 10.9883 16.2617 10.707C16.6992 10.4258 17.293 10.4258 17.7617 10.707C18.1992 10.9883 18.5117 11.457 18.5117 11.9883ZM13.5117 11.9883C13.5117 12.5508 13.1992 13.0195 12.7617 13.3008C12.293 13.582 11.6992 13.582 11.2617 13.3008C10.793 13.0195 10.5117 12.5508 10.5117 11.9883C10.5117 11.457 10.793 10.9883 11.2617 10.707C11.6992 10.4258 12.293 10.4258 12.7617 10.707C13.1992 10.9883 13.5117 11.457 13.5117 11.9883ZM7.01172 13.4883C6.44922 13.4883 5.98047 13.207 5.69922 12.7383C5.41797 12.3008 5.41797 11.707 5.69922 11.2383C5.98047 10.8008 6.44922 10.4883 7.01172 10.4883C7.54297 10.4883 8.01172 10.8008 8.29297 11.2383C8.57422 11.707 8.57422 12.3008 8.29297 12.7383C8.01172 13.207 7.54297 13.4883 7.01172 13.4883Z" fill="currentColor"/>
175
- </svg>`,read:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
176
- <path d="M7 6.5C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5H7ZM5 7C5 5.90625 5.875 5 7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7ZM15.5312 10.5312L11.5312 14.5312C11.2188 14.8438 10.75 14.8438 10.4688 14.5312L8.46875 12.5312C8.15625 12.25 8.15625 11.7812 8.46875 11.5C8.75 11.1875 9.21875 11.1875 9.53125 11.5L11 12.9688L14.4688 9.46875C14.75 9.1875 15.2188 9.1875 15.5 9.46875C15.8125 9.78125 15.8125 10.25 15.5 10.5312H15.5312Z" fill="currentColor"/>
177
- </svg>`,archiveRead:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
178
- <path d="M7.5 6.5V15.25H16.5V6.5H7.5ZM6 15.25V6.5C6 5.6875 6.65625 5 7.5 5H16.5C17.3125 5 18 5.6875 18 6.5V15.25C18.4062 15.25 18.75 15.5938 18.75 16C18.75 16.4375 18.4062 16.75 18 16.75H6C5.5625 16.75 5.25 16.4375 5.25 16C5.25 15.5938 5.5625 15.25 6 15.25ZM5 13V14.5H4.5V17.5H19.5V14.5H19V13H19.5C20.3125 13 21 13.6875 21 14.5V17.5C21 18.3438 20.3125 19 19.5 19H4.5C3.65625 19 3 18.3438 3 17.5V14.5C3 13.6875 3.65625 13 4.5 13H5ZM15.0312 9.625L11.6875 12.9688C11.5312 13.0938 11.3438 13.1875 11.1562 13.1875C10.9375 13.1875 10.75 13.0938 10.625 12.9688L8.96875 11.2812C8.65625 11 8.65625 10.5312 8.96875 10.25C9.25 9.9375 9.71875 9.9375 10 10.25L11.1562 11.375L13.9688 8.5625C14.25 8.28125 14.7188 8.28125 15 8.5625C15.3125 8.875 15.3125 9.34375 15 9.625H15.0312Z" fill="currentColor"/>
179
- </svg>`,unread:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
180
- <path d="M17 6.5H7C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5ZM7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7C5 5.90625 5.875 5 7 5Z" fill="currentColor"/>
181
- </svg>`,unarchive:`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
182
- <path d="M5.5 11C5.0625 11 4.75 10.6875 4.75 10.25V5.75C4.75 5.34375 5.0625 5 5.5 5C5.90625 5 6.25 5.34375 6.25 5.75V8.28125L6.875 7.53125C8.15625 6 10.0625 5 12.25 5C16.0938 5 19.25 8.15625 19.25 12C19.25 15.875 16.0938 19 12.25 19C10.6562 19 9.21875 18.5 8.03125 17.625C7.71875 17.375 7.625 16.9062 7.875 16.5625C8.125 16.2188 8.59375 16.1562 8.9375 16.4062C9.84375 17.0938 11 17.5 12.25 17.5C15.2812 17.5 17.75 15.0625 17.75 12C17.75 8.96875 15.2812 6.5 12.25 6.5C10.5312 6.5 9.03125 7.28125 8 8.5L7.15625 9.5H10C10.4062 9.5 10.75 9.84375 10.75 10.25C10.75 10.6875 10.4062 11 10 11H5.5Z" fill="currentColor"/>
183
- </svg>`};class ae extends HTMLElement{constructor(t,e){super(),L(this,"_color"),L(this,"_svg"),L(this,"_iconContainer"),L(this,"_style"),this._color=t??r.black[500],this._svg=e;const i=this.attachShadow({mode:"open"});this._iconContainer=document.createElement("div"),i.appendChild(this._iconContainer),this._style=document.createElement("style"),this._style.textContent=this.getStyles(this._color),i.appendChild(this._style),this.refresh()}getStyles(t){return`
184
- :host {
185
- display: inline-block;
186
- line-height: 0;
187
- display: flex;
188
- align-items: center;
189
- justify-content: center;
190
- }
191
-
192
- svg {
193
- width: 24px;
194
- height: 24px;
195
- color: ${t};
196
- }
197
- `}refresh(){this._svg&&(this._iconContainer.innerHTML=this._svg),this._color&&(this._style.textContent=this.getStyles(this._color))}updateColor(t){this._color=t,this.refresh()}updateSVG(t){this._svg=t,this.refresh()}}customElements.get("courier-icon")||customElements.define("courier-icon",ae);class qe extends HTMLElement{constructor(){super(),L(this,"link");const t=this.attachShadow({mode:"open"});this.link=document.createElement("a"),this.link.setAttribute("part","link");const e=document.createElement("style");e.textContent=`
198
- :host {
199
- display: inline-block;
200
- }
201
-
202
- a {
203
- text-decoration: none;
204
- border-radius: 4px;
205
- cursor: pointer;
206
- font-weight: 500;
207
- transition: all 0.2s ease;
208
- font-family: var(--courier-link-font-family, inherit);
209
- font-size: var(--courier-link-font-size, inherit);
210
- }
211
-
212
- /* Variants */
213
- a[data-variant="primary"][data-mode="light"] {
214
- color: var(--courier-link-color, ${X.light.colors.link});
215
- }
216
-
217
- a[data-variant="primary"][data-mode="light"]:hover {
218
- opacity: 0.8;
219
- }
220
-
221
- a[data-variant="primary"][data-mode="light"]:active {
222
- opacity: 0.6;
223
- }
224
-
225
- a[data-variant="primary"][data-mode="dark"] {
226
- color: var(--courier-link-color, ${X.dark.colors.link});
227
- }
228
-
229
- a[data-variant="primary"][data-mode="dark"]:hover {
230
- opacity: 0.8;
231
- }
232
-
233
- a[data-variant="primary"][data-mode="dark"]:active {
234
- opacity: 0.6;
235
- }
236
-
237
- a[data-underline="true"] {
238
- text-decoration: underline;
239
- }
240
-
241
- a:disabled {
242
- opacity: 0.6;
243
- cursor: not-allowed;
244
- pointer-events: none;
245
- }
246
- `,t.appendChild(e),t.appendChild(this.link),this.updateVariant(),this.updateUnderline(),this.updateMode()}connectedCallback(){const t=document.createElement("slot");this.link.appendChild(t),this.updateHref()}attributeChangedCallback(t,e,i){if(e!==i)switch(t){case"href":this.updateHref();break;case"variant":case"mode":this.updateVariant();break;case"disabled":this.link.style.pointerEvents=this.hasAttribute("disabled")?"none":"auto",this.link.style.opacity=this.hasAttribute("disabled")?"0.6":"1";break;case"color":this.updateColor();break;case"underline":this.updateUnderline();break;case"target":this.updateTarget();break;case"font-family":this.updateFontFamily();break;case"font-size":this.updateFontSize();break}}updateHref(){const t=this.getAttribute("href");t&&(this.link.href=t)}updateVariant(){const t=this.getAttribute("variant")||"primary",e=this.getAttribute("mode")||"light";this.link.setAttribute("data-variant",t),this.link.setAttribute("data-mode",e)}updateColor(){const t=this.getAttribute("color");t?this.link.style.setProperty("--courier-link-color",t):this.link.style.removeProperty("--courier-link-color")}updateUnderline(){const t=this.getAttribute("underline")==="true";this.link.setAttribute("data-underline",t.toString())}updateMode(){const t=this.getAttribute("mode")||"light";this.link.setAttribute("data-mode",t)}updateTarget(){const t=this.getAttribute("target");t&&(this.link.target=t)}updateFontFamily(){const t=this.getAttribute("font-family");t?this.link.style.setProperty("--courier-link-font-family",t):this.link.style.removeProperty("--courier-link-font-family")}updateFontSize(){const t=this.getAttribute("font-size");t?this.link.style.setProperty("--courier-link-font-size",t):this.link.style.removeProperty("--courier-link-font-size")}}L(qe,"observedAttributes",["href","variant","disabled","color","underline","mode","target","font-family","font-size"]),customElements.get("courier-link")||customElements.define("courier-link",qe);class Fe extends nt{constructor(){super(),L(this,"shadow"),this.shadow=this.attachShadow({mode:"open"})}build(t){if(t===null){this.shadow.replaceChildren();return}const e=t??this.defaultElement();this.shadow.replaceChildren(e)}defaultElement(){const t=document.createElement("div");return t.textContent="Default Element Factory",t.style.cssText=`
247
- background-color: red;
248
- text-align: center;
249
- padding: 12px;
250
- `,t}}class He extends Fe{constructor(t){super(),L(this,"_props"),L(this,"_title"),L(this,"_button"),L(this,"_style"),L(this,"_buttonClickCallback",null),this._props=t}defaultElement(){var t,e;const i=document.createElement("div");return this._title=document.createElement("h2"),(t=this._props.title)!=null&&t.text&&(this._title.textContent=this._props.title.text),this._button=new Re(this._props.button??Y.secondary(this.currentSystemTheme)),this._style=document.createElement("style"),this._style.textContent=this.getStyles(this._props),i.className="container",i.appendChild(this._style),i.appendChild(this._title),i.appendChild(this._button),this.shadow.appendChild(i),(e=this._button)==null||e.addEventListener("click",()=>{this._buttonClickCallback&&this._buttonClickCallback()}),i}onSystemThemeChange(t){this.updateStyles(this._props)}getStyles(t){var e,i,s,o;return`
251
- :host {
252
- display: flex;
253
- align-items: center;
254
- justify-content: center;
255
- height: 100%;
256
- width: 100%;
257
- }
258
-
259
- .container {
260
- display: flex;
261
- flex-direction: column;
262
- align-items: center;
263
- justify-content: center;
264
- gap: 16px;
265
- text-align: center;
266
- padding: 24px;
267
- }
268
-
269
- .container h2 {
270
- margin: 0;
271
- color: ${((e=t.title)==null?void 0:e.textColor)??"red"};
272
- font-size: ${((i=t.title)==null?void 0:i.fontSize)??"16px"};
273
- font-weight: ${((s=t.title)==null?void 0:s.fontWeight)??"500"};
274
- font-family: ${((o=t.title)==null?void 0:o.fontFamily)??"inherit"};
275
- }
276
- `}updateStyles(t){this._props=t,this._style&&(this._style.textContent=this.getStyles(t)),this._button&&this._button.updateButton(t.button)}setButtonClickCallback(t){this._buttonClickCallback=t}}customElements.get("courier-info-state")||customElements.define("courier-info-state",He);class de extends HTMLElement{constructor(t,e,i,s,o,n,h,d){super(),L(this,"_backgroundColor"),L(this,"_hoverBackgroundColor"),L(this,"_activeBackgroundColor"),L(this,"_borderRadius"),L(this,"_height"),L(this,"_width"),L(this,"_style"),L(this,"_button"),L(this,"_icon"),this._borderRadius=n,this._backgroundColor=i,this._hoverBackgroundColor=s,this._activeBackgroundColor=o,this._height=h,this._width=d;const l=this.attachShadow({mode:"open"});this._button=document.createElement("button"),this._button.setAttribute("part","button"),this._icon=new ae(e,t),this._style=document.createElement("style"),this.refresh(),l.appendChild(this._style),this._button.appendChild(this._icon),l.appendChild(this._button)}refresh(){this._style.textContent=this.getStyles()}getStyles(){return`
277
- :host {
278
- display: inline-block;
279
- border-radius: ${this._borderRadius??"50%"};
280
- }
281
-
282
- button {
283
- border: none;
284
- border-radius: ${this._borderRadius??"50%"};
285
- cursor: pointer;
286
- width: ${this._width??"36px"};
287
- height: ${this._height??"36px"};
288
- display: flex;
289
- align-items: center;
290
- justify-content: center;
291
- background: ${this._backgroundColor??"transparent"};
292
- transition: background-color 0.2s ease;
293
- touch-action: manipulation;
294
- }
295
-
296
- button:hover {
297
- background-color: ${this._hoverBackgroundColor??"red"};
298
- }
299
-
300
- button:active {
301
- background-color: ${this._activeBackgroundColor??"red"};
302
- }
303
-
304
- button:disabled {
305
- opacity: 0.6;
306
- cursor: not-allowed;
307
- }
308
-
309
- [part="icon"] {
310
- display: flex;
311
- align-items: center;
312
- justify-content: center;
313
- width: 24px;
314
- height: 24px;
315
- }
316
- `}updateIconColor(t){this._icon.updateColor(t)}updateIconSVG(t){this._icon.updateSVG(t)}updateBackgroundColor(t){this._backgroundColor=t,this.refresh()}updateHoverBackgroundColor(t){this._hoverBackgroundColor=t,this.refresh()}updateActiveBackgroundColor(t){this._activeBackgroundColor=t,this.refresh()}}customElements.get("courier-icon-button")||customElements.define("courier-icon-button",de),[{name:"courier-button",class:Re},{name:"courier-icon",class:ae},{name:"courier-link",class:qe},{name:"courier-info-state",class:He},{name:"courier-icon-button",class:de}].forEach(({name:c,class:t})=>{customElements.get(c)||customElements.define(c,t)});const he=class he{constructor(){a(this,"_inboxDataSet");a(this,"_archiveDataSet");a(this,"_dataStoreListeners",[]);a(this,"_unreadCount");a(this,"isPaginatingInbox",!1);a(this,"isPaginatingArchive",!1)}static get shared(){return he.instance||(he.instance=new he),he.instance}get unreadCount(){return this._unreadCount??0}get inboxDataSet(){return this._inboxDataSet??{messages:[],canPaginate:!1,paginationCursor:null}}get archiveDataSet(){return this._archiveDataSet??{messages:[],canPaginate:!1,paginationCursor:null}}addDataStoreListener(t){this._dataStoreListeners.push(t)}removeDataStoreListener(t){this._dataStoreListeners=this._dataStoreListeners.filter(e=>e!==t)}async fetchDataSet(t){var i,s,o,n,h,d,l,p,m,g;if(t.canUseCache)switch(t.feedType){case"inbox":if(this._inboxDataSet)return this._inboxDataSet;break;case"archive":if(this._archiveDataSet)return this._archiveDataSet;break}const e=t.feedType==="inbox"?await((i=v.shared.client)==null?void 0:i.inbox.getMessages()):await((s=v.shared.client)==null?void 0:s.inbox.getArchivedMessages());return{messages:((n=(o=e==null?void 0:e.data)==null?void 0:o.messages)==null?void 0:n.nodes)??[],canPaginate:((l=(d=(h=e==null?void 0:e.data)==null?void 0:h.messages)==null?void 0:d.pageInfo)==null?void 0:l.hasNextPage)??!1,paginationCursor:((g=(m=(p=e==null?void 0:e.data)==null?void 0:p.messages)==null?void 0:m.pageInfo)==null?void 0:g.startCursor)??null}}async fetchUnreadCount(t){var i;return t.canUseCache&&this._unreadCount!==void 0?this._unreadCount:await((i=v.shared.client)==null?void 0:i.inbox.getUnreadMessageCount())??0}async load(t){var e,i,s;try{if(!((e=v.shared.client)!=null&&e.options.userId))throw new Error("User is not signed in");const o=t??{feedType:"inbox",canUseCache:!0},[n,h]=await Promise.all([this.fetchDataSet(o),this.fetchUnreadCount(o)]);switch(o.feedType){case"inbox":this._inboxDataSet=n;break;case"archive":this._archiveDataSet=n;break}this._unreadCount=h,this._dataStoreListeners.forEach(d=>{var l,p,m,g;(p=(l=d.events).onDataSetChange)==null||p.call(l,n,o.feedType),(g=(m=d.events).onUnreadCountChange)==null||g.call(m,this._unreadCount??0)}),await this.connectSocket()}catch(o){(s=(i=v.shared.client)==null?void 0:i.options.logger)==null||s.error("Error loading inbox:",o),this._dataStoreListeners.forEach(n=>{var h,d;(d=(h=n.events).onError)==null||d.call(h,o)})}}async connectSocket(){var e,i,s,o,n,h,d,l,p,m,g,f;const t=(e=v.shared.client)==null?void 0:e.inbox.socket;try{if(!t){(s=(i=v.shared.client)==null?void 0:i.options.logger)==null||s.info("CourierInbox socket not available");return}if((h=(o=v.shared.client)==null?void 0:o.options.logger)==null||h.info("CourierInbox socket connectionId:",(n=v.shared.client)==null?void 0:n.options.connectionId),t.isConnected){(l=(d=v.shared.client)==null?void 0:d.options.logger)==null||l.info("CourierInbox socket already connected. Socket will not attempt reconnection.");return}t.receivedMessage=_=>{this.addMessage(_,0,"inbox")},t.receivedMessageEvent=_=>{let b;switch(_.messageId&&(b=this.getMessage({messageId:_.messageId})),_.event){case"mark-all-read":this.readAllMessages({canCallApi:!1});break;case"read":b&&this.readMessage({message:b,canCallApi:!1});break;case"unread":b&&this.unreadMessage({message:b,canCallApi:!1});break;case"opened":b&&this.openMessage({message:b,canCallApi:!1});break;case"archive":b&&this.archiveMessage({message:b,canCallApi:!1});break;case"archive-read":this.archiveReadMessages({canCallApi:!1});break;case"click":b&&this.clickMessage({message:b,canCallApi:!1});break;case"unopened":case"unarchive":break}},await t.connect(),await t.sendSubscribe(),t.keepAlive(),(m=(p=v.shared.client)==null?void 0:p.options.logger)==null||m.info("CourierInbox socket connected")}catch(_){(f=(g=v.shared.client)==null?void 0:g.options.logger)==null||f.error("Failed to connect socket:",_)}}getMessage(t){var e,i;return((e=this._inboxDataSet)==null?void 0:e.messages.find(s=>s.messageId===t.messageId))??((i=this._archiveDataSet)==null?void 0:i.messages.find(s=>s.messageId===t.messageId))}async fetchNextPageOfMessages(t){var e,i,s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E,M,A,R,F;switch(t.feedType){case"inbox":if(this.isPaginatingInbox)return null;if((e=this._inboxDataSet)!=null&&e.canPaginate&&this._inboxDataSet.paginationCursor)try{this.isPaginatingInbox=!0;const y=await((i=v.shared.client)==null?void 0:i.inbox.getMessages({paginationLimit:v.shared.paginationLimit,startCursor:this._inboxDataSet.paginationCursor})),B={messages:((o=(s=y==null?void 0:y.data)==null?void 0:s.messages)==null?void 0:o.nodes)??[],canPaginate:((d=(h=(n=y==null?void 0:y.data)==null?void 0:n.messages)==null?void 0:h.pageInfo)==null?void 0:d.hasNextPage)??!1,paginationCursor:((m=(p=(l=y==null?void 0:y.data)==null?void 0:l.messages)==null?void 0:p.pageInfo)==null?void 0:m.startCursor)??null};return this.addPage(B,"inbox"),B}catch(y){return(f=(g=v.shared.client)==null?void 0:g.options.logger)==null||f.error("Error fetching next page of inbox messages:",y),null}finally{this.isPaginatingInbox=!1}break;case"archive":if(this.isPaginatingArchive)return null;if((_=this._archiveDataSet)!=null&&_.canPaginate&&this._archiveDataSet.paginationCursor)try{this.isPaginatingArchive=!0;const y=await((b=v.shared.client)==null?void 0:b.inbox.getArchivedMessages({paginationLimit:v.shared.paginationLimit,startCursor:this._archiveDataSet.paginationCursor})),B={messages:((k=(C=y==null?void 0:y.data)==null?void 0:C.messages)==null?void 0:k.nodes)??[],canPaginate:((I=(S=(w=y==null?void 0:y.data)==null?void 0:w.messages)==null?void 0:S.pageInfo)==null?void 0:I.hasNextPage)??!1,paginationCursor:((A=(M=(E=y==null?void 0:y.data)==null?void 0:E.messages)==null?void 0:M.pageInfo)==null?void 0:A.startCursor)??null};return this.addPage(B,"archive"),B}catch(y){return(F=(R=v.shared.client)==null?void 0:R.options.logger)==null||F.error("Error fetching next page of archived messages:",y),null}finally{this.isPaginatingArchive=!1}break}return null}applyLocalMessageChange(t,e){for(const[i,s]of Object.entries(e))s!==void 0&&this.updateMessage(t,s,i)}async readMessage({message:t,canCallApi:e=!0}){var o,n,h,d;if(!v.shared.client)return;const i=t;if(i.read)return;const s={inbox:(o=this._inboxDataSet)==null?void 0:o.messages.findIndex(l=>l.messageId===t.messageId),archive:(n=this._archiveDataSet)==null?void 0:n.messages.findIndex(l=>l.messageId===t.messageId)};try{t.read=new Date().toISOString(),this.applyLocalMessageChange(t,s),e&&await v.shared.client.inbox.read({messageId:t.messageId})}catch(l){this.applyLocalMessageChange(i,s),(d=(h=v.shared.client)==null?void 0:h.options.logger)==null||d.error("Error reading message:",l)}}async unreadMessage({message:t,canCallApi:e=!0}){var o,n,h,d;if(!v.shared.client)return;const i=t;if(!i.read)return;const s={inbox:(o=this._inboxDataSet)==null?void 0:o.messages.findIndex(l=>l.messageId===t.messageId),archive:(n=this._archiveDataSet)==null?void 0:n.messages.findIndex(l=>l.messageId===t.messageId)};try{t.read=void 0,this.applyLocalMessageChange(t,s),e&&await v.shared.client.inbox.unread({messageId:t.messageId})}catch(l){this.applyLocalMessageChange(i,s),(d=(h=v.shared.client)==null?void 0:h.options.logger)==null||d.error("Error unreading message:",l)}}async openMessage({message:t,canCallApi:e=!0}){var o,n,h,d;if(!v.shared.client)return;const i=t,s={inbox:(o=this._inboxDataSet)==null?void 0:o.messages.findIndex(l=>l.messageId===t.messageId),archive:(n=this._archiveDataSet)==null?void 0:n.messages.findIndex(l=>l.messageId===t.messageId)};if(!(!s.inbox&&!s.archive)&&!i.opened)try{t.opened=new Date().toISOString(),this.applyLocalMessageChange(t,s),e&&await v.shared.client.inbox.open({messageId:t.messageId})}catch(l){this.applyLocalMessageChange(i,s),(d=(h=v.shared.client)==null?void 0:h.options.logger)==null||d.error("Error opening message:",l)}}async clickMessage({message:t,canCallApi:e=!0}){var i,s,o,n;if(v.shared.client)try{(i=t.trackingIds)!=null&&i.clickTrackingId&&e&&await v.shared.client.inbox.click({messageId:t.messageId,trackingId:(s=t.trackingIds)==null?void 0:s.clickTrackingId})}catch(h){(n=(o=v.shared.client)==null?void 0:o.options.logger)==null||n.error("Error clicking message:",h)}}async archiveMessage({message:t,canCallApi:e=!0}){var o,n;if(!v.shared.client)return;const i=t,s=(o=this._inboxDataSet)==null?void 0:o.messages.findIndex(h=>h.messageId===t.messageId);if(s!==void 0)try{if(this.removeMessage(t,s,"inbox"),(n=this._archiveDataSet)!=null&&n.messages){const h=this.findInsertIndex(t,this._archiveDataSet.messages);t.archived=new Date().toISOString(),this.addMessage(t,h,"archive")}e&&await v.shared.client.inbox.archive({messageId:t.messageId})}catch{this.addMessage(i,s,"inbox"),t.archived=void 0,this.removeMessage(t,s,"archive")}}async archiveReadMessages({canCallApi:t=!0}={}){var s;if(!v.shared.client)return;const e=this._inboxDataSet,i=this._archiveDataSet;try{(s=this._inboxDataSet)==null||s.messages.forEach(o=>{var h,d;if(!o.read)return;const n=(h=this._inboxDataSet)==null?void 0:h.messages.findIndex(l=>l.messageId===o.messageId);if(n!==void 0&&(this.removeMessage(o,n,"inbox"),(d=this._archiveDataSet)!=null&&d.messages)){const l=this.findInsertIndex(o,this._archiveDataSet.messages);o.archived=new Date().toISOString(),this.addMessage(o,l,"archive")}}),this._dataStoreListeners.forEach(o=>{var n,h,d,l;this._inboxDataSet&&((h=(n=o.events).onDataSetChange)==null||h.call(n,this._inboxDataSet,"inbox")),this._archiveDataSet&&((l=(d=o.events).onDataSetChange)==null||l.call(d,this._archiveDataSet,"archive"))}),t&&await v.shared.client.inbox.archiveRead()}catch(o){console.error("Error archiving read messages:",o),this._inboxDataSet&&e&&(this._inboxDataSet.messages=e.messages),this._archiveDataSet&&i&&(this._archiveDataSet.messages=i.messages),this._dataStoreListeners.forEach(n=>{var h,d,l,p;this._inboxDataSet&&((d=(h=n.events).onDataSetChange)==null||d.call(h,this._inboxDataSet,"inbox")),this._archiveDataSet&&((p=(l=n.events).onDataSetChange)==null||p.call(l,this._archiveDataSet,"archive"))})}}async readAllMessages({canCallApi:t=!0}={}){var o,n,h,d;if(!v.shared.client)return;const e=this._inboxDataSet,i=this._archiveDataSet,s=this._unreadCount;try{(o=this._inboxDataSet)==null||o.messages.forEach(l=>{l.read||(l.read=new Date().toISOString())}),(n=this._archiveDataSet)==null||n.messages.forEach(l=>{l.read||(l.read=new Date().toISOString())}),this._unreadCount=0,this._dataStoreListeners.forEach(l=>{var p,m,g,f,_,b;this._inboxDataSet&&((m=(p=l.events).onDataSetChange)==null||m.call(p,this._inboxDataSet,"inbox")),this._archiveDataSet&&((f=(g=l.events).onDataSetChange)==null||f.call(g,this._archiveDataSet,"archive")),(b=(_=l.events).onUnreadCountChange)==null||b.call(_,this._unreadCount)}),t&&await v.shared.client.inbox.readAll()}catch(l){(d=(h=v.shared.client)==null?void 0:h.options.logger)==null||d.error("Error reading all messages:",l),this._inboxDataSet&&e&&(this._inboxDataSet.messages=e.messages),this._archiveDataSet&&i&&(this._archiveDataSet.messages=i.messages),this._unreadCount=s,this._dataStoreListeners.forEach(p=>{var m,g,f,_,b,C;this._inboxDataSet&&((g=(m=p.events).onDataSetChange)==null||g.call(m,this._inboxDataSet,"inbox")),this._archiveDataSet&&((_=(f=p.events).onDataSetChange)==null||_.call(f,this._archiveDataSet,"archive")),(C=(b=p.events).onUnreadCountChange)==null||C.call(b,this._unreadCount)})}}findInsertIndex(t,e){const i=[...e];i.push(t),i.sort((o,n)=>{const h=new Date(o.created??Date.now()).getTime();return new Date(n.created??Date.now()).getTime()-h});const s=i.findIndex(o=>o.messageId===t.messageId);return Math.max(s-1,0)}addPage(t,e){switch(e){case"inbox":this._inboxDataSet&&(this._inboxDataSet.canPaginate=t.canPaginate,this._inboxDataSet.paginationCursor=t.paginationCursor,this._inboxDataSet.messages=[...this._inboxDataSet.messages,...t.messages]);break;case"archive":this._archiveDataSet&&(this._archiveDataSet.canPaginate=t.canPaginate,this._archiveDataSet.paginationCursor=t.paginationCursor,this._archiveDataSet.messages=[...this._archiveDataSet.messages,...t.messages]);break}this._dataStoreListeners.forEach(i=>{var s,o;return(o=(s=i.events).onPageAdded)==null?void 0:o.call(s,t,e)})}addMessage(t,e,i){var s,o;switch(i){case"inbox":!t.read&&this._unreadCount!==void 0&&(this._unreadCount=this._unreadCount+1),(s=this._inboxDataSet)==null||s.messages.splice(e,0,t);break;case"archive":(o=this._archiveDataSet)==null||o.messages.splice(e,0,t);break}this._dataStoreListeners.forEach(n=>{var h,d,l,p;(d=(h=n.events).onMessageAdd)==null||d.call(h,t,e,i),(p=(l=n.events).onUnreadCountChange)==null||p.call(l,this._unreadCount??0)})}removeMessage(t,e,i){var s,o;switch(i){case"inbox":!t.read&&this._unreadCount!==void 0&&(this._unreadCount=this._unreadCount-1),(s=this._inboxDataSet)==null||s.messages.splice(e,1);break;case"archive":(o=this._archiveDataSet)==null||o.messages.splice(e,1);break}this._dataStoreListeners.forEach(n=>{var h,d,l,p;(d=(h=n.events).onMessageRemove)==null||d.call(h,t,e,i),(p=(l=n.events).onUnreadCountChange)==null||p.call(l,this._unreadCount??0)})}updateMessage(t,e,i){switch(i){case"inbox":this._unreadCount!==void 0&&!t.archived&&(t.read&&(this._unreadCount=Math.max(0,this._unreadCount-1)),t.read||(this._unreadCount=this._unreadCount+1)),this._inboxDataSet&&(this._inboxDataSet.messages[e]=t);break;case"archive":this._archiveDataSet&&(this._archiveDataSet.messages[e]=t);break}this._dataStoreListeners.forEach(s=>{var o,n,h,d;(n=(o=s.events).onMessageUpdate)==null||n.call(o,t,e,i),(d=(h=s.events).onUnreadCountChange)==null||d.call(h,this._unreadCount??0)})}};a(he,"instance");let P=he;function dn(c){return P.shared.readMessage({message:c})}function un(c){return P.shared.unreadMessage({message:c})}function pn(c){return P.shared.clickMessage({message:c})}function gn(c){return P.shared.archiveMessage({message:c})}function mn(c){return P.shared.openMessage({message:c})}function rt(c){if(!c.created)return"Now";const t=new Date,e=new Date(c.created),i=Math.floor((t.getTime()-e.getTime())/1e3);return i<60?`${i}s`:i<3600?`${Math.floor(i/60)}m`:i<86400?`${Math.floor(i/3600)}h`:i<604800?`${Math.floor(i/86400)}d`:i<31536e3?`${Math.floor(i/604800)}w`:`${Math.floor(i/31536e3)}y`}class at extends HTMLElement{constructor(e){super();a(this,"_theme");a(this,"_options",[]);a(this,"_style");this._theme=e;const i=this.attachShadow({mode:"open"});this._style=document.createElement("style"),this._style.textContent=this.getStyles(),i.appendChild(this._style);const s=document.createElement("ul");s.className="menu",i.appendChild(s)}getStyles(){var i,s,o;const e=(o=(s=(i=this._theme.inbox)==null?void 0:i.list)==null?void 0:s.item)==null?void 0:o.menu;return`
317
- :host {
318
- display: block;
319
- position: absolute;
320
- background: ${(e==null?void 0:e.backgroundColor)??"red"};
321
- border: ${(e==null?void 0:e.border)??"1px solid red"};
322
- border-radius: ${(e==null?void 0:e.borderRadius)??"0px"};
323
- box-shadow: ${(e==null?void 0:e.shadow)??"0 2px 8px red"};
324
- user-select: none;
325
- opacity: 0;
326
- pointer-events: none;
327
- transition: opacity 0.15s;
328
- overflow: hidden;
329
- }
330
-
331
- :host(.visible) {
332
- opacity: 1;
333
- pointer-events: auto;
334
- }
335
-
336
- ul.menu {
337
- list-style: none;
338
- margin: 0;
339
- padding: 0;
340
- display: flex;
341
- flex-direction: row;
342
- }
343
-
344
- li.menu-item {
345
- display: flex;
346
- align-items: center;
347
- justify-content: center;
348
- cursor: pointer;
349
- border-bottom: none;
350
- background: transparent;
351
- }
352
- `}setOptions(e){this._options=e,this.renderMenu()}renderMenu(){var o,n,h,d;const e=(o=this.shadowRoot)==null?void 0:o.querySelector("ul.menu");if(!e)return;e.innerHTML="";const i=(d=(h=(n=this._theme.inbox)==null?void 0:n.list)==null?void 0:h.item)==null?void 0:d.menu,s=l=>{l.stopPropagation(),l.preventDefault()};this._options.forEach(l=>{var g,f,_;const p=new de(l.icon.svg,l.icon.color,i==null?void 0:i.backgroundColor,(g=i==null?void 0:i.item)==null?void 0:g.hoverBackgroundColor,(f=i==null?void 0:i.item)==null?void 0:f.activeBackgroundColor,(_=i==null?void 0:i.item)==null?void 0:_.borderRadius),m=b=>{s(b),l.onClick()};p.addEventListener("click",m),p.addEventListener("touchstart",s),p.addEventListener("touchend",m),p.addEventListener("touchmove",s),p.addEventListener("mousedown",s),p.addEventListener("mouseup",s),e.appendChild(p)})}show(){this.classList.add("visible")}hide(){this.classList.remove("visible")}}customElements.get("courier-list-item-menu")||customElements.define("courier-list-item-menu",at);class Ve extends HTMLElement{constructor(e){super();a(this,"_theme");a(this,"_message",null);a(this,"_feedType","inbox");a(this,"_isMobile",!1);a(this,"_titleElement");a(this,"_subtitleElement");a(this,"_timeElement");a(this,"_style");a(this,"_menu");a(this,"_unreadIndicator");a(this,"_actionsContainer");a(this,"_longPressTimeout",null);a(this,"_isLongPress",!1);a(this,"onItemClick",null);a(this,"onItemLongPress",null);a(this,"onItemActionClick",null);this._theme=e,this._isMobile="ontouchstart"in window;const i=this.attachShadow({mode:"open"}),s=document.createElement("div");s.className="content-container",this._titleElement=document.createElement("p"),this._titleElement.setAttribute("part","title"),this._subtitleElement=document.createElement("p"),this._subtitleElement.setAttribute("part","subtitle"),this._actionsContainer=document.createElement("div"),this._actionsContainer.className="actions-container",s.appendChild(this._titleElement),s.appendChild(this._subtitleElement),s.appendChild(this._actionsContainer),this._timeElement=document.createElement("p"),this._timeElement.setAttribute("part","time"),this._unreadIndicator=document.createElement("div"),this._unreadIndicator.className="unread-indicator",this._style=document.createElement("style"),this._refreshStyles(),this._menu=new at(this._theme),this._menu.setOptions(this._getMenuOptions()),i.append(this._style,this._unreadIndicator,s,this._timeElement,this._menu);const o=n=>{n.stopPropagation(),n.preventDefault()};this._menu.addEventListener("mousedown",o),this._menu.addEventListener("pointerdown",o),this._menu.addEventListener("click",o),this.addEventListener("click",n=>{this._menu.contains(n.target)||n.composedPath().includes(this._menu)||this._message&&this.onItemClick&&!(n.target instanceof ae)&&!this._isLongPress&&this.onItemClick(this._message)}),this._setupHoverBehavior(),this._setupLongPressBehavior()}_setupHoverBehavior(){this._isMobile||(this.addEventListener("mouseenter",()=>{this._isLongPress=!1,this._showMenu()}),this.addEventListener("mouseleave",()=>this._hideMenu()))}_setupLongPressBehavior(){var s,o,n;const e=(n=(o=(s=this._theme.inbox)==null?void 0:s.list)==null?void 0:o.item)==null?void 0:n.menu;if(!(e!=null&&e.enabled))return;const i=e.longPress;this.addEventListener("touchstart",()=>{this._longPressTimeout=window.setTimeout(()=>{this._isLongPress=!0,this._showMenu(),this._message&&this.onItemLongPress&&(this.onItemLongPress(this._message),navigator.vibrate&&navigator.vibrate((i==null?void 0:i.vibrationDuration)??50)),setTimeout(()=>{this._hideMenu(),this._isLongPress=!1},(i==null?void 0:i.displayDuration)??2e3)},650)},{passive:!0}),this.addEventListener("touchend",()=>{this._longPressTimeout&&(window.clearTimeout(this._longPressTimeout),this._longPressTimeout=null)})}setOnLongPress(e){this.onItemLongPress=e}_getMenuOptions(){var s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E,M;const e=(h=(n=(o=(s=this._theme.inbox)==null?void 0:s.list)==null?void 0:o.item)==null?void 0:n.menu)==null?void 0:h.item;let i=[];return(d=this._message)!=null&&d.archived||i.push({id:(l=this._message)!=null&&l.read?"unread":"read",icon:{svg:(p=this._message)!=null&&p.read?(m=e==null?void 0:e.unread)==null?void 0:m.svg:(g=e==null?void 0:e.read)==null?void 0:g.svg,color:(f=this._message)!=null&&f.read?(_=e==null?void 0:e.unread)==null?void 0:_.color:((b=e==null?void 0:e.read)==null?void 0:b.color)??"red"},onClick:()=>{this._message&&(this._message.read?P.shared.unreadMessage({message:this._message}):P.shared.readMessage({message:this._message}))}}),i.push({id:(C=this._message)!=null&&C.archived?"unarchive":"archive",icon:{svg:(k=this._message)!=null&&k.archived?(w=e==null?void 0:e.unarchive)==null?void 0:w.svg:(S=e==null?void 0:e.archive)==null?void 0:S.svg,color:(I=this._message)!=null&&I.archived?(E=e==null?void 0:e.unarchive)==null?void 0:E.color:((M=e==null?void 0:e.archive)==null?void 0:M.color)??"red"},onClick:()=>{this._message&&(this._message.archived?alert("unarchive"):P.shared.archiveMessage({message:this._message}))}}),i}_showMenu(){var i,s,o;const e=(o=(s=(i=this._theme.inbox)==null?void 0:i.list)==null?void 0:s.item)==null?void 0:o.menu;e&&e.enabled&&(this._menu.setOptions(this._getMenuOptions()),this._menu.style.display="block",this._menu.show(),this._timeElement.style.opacity="0")}_hideMenu(){var i,s,o;const e=(o=(s=(i=this._theme.inbox)==null?void 0:i.list)==null?void 0:s.item)==null?void 0:o.menu;e&&e.enabled&&(this._menu.hide(),this._menu.style.display="none",this._timeElement.style.opacity="1")}_getStyles(){var i,s,o,n,h,d,l,p,m,g,f;const e=(s=(i=this._theme.inbox)==null?void 0:i.list)==null?void 0:s.item;return`
353
- :host {
354
- display: flex;
355
- flex-direction: row;
356
- align-items: flex-start;
357
- justify-content: space-between;
358
- border-bottom: ${(e==null?void 0:e.divider)??"1px solid red"};
359
- font-family: inherit;
360
- cursor: pointer;
361
- transition: background-color 0.2s ease;
362
- margin: 0;
363
- width: 100%;
364
- box-sizing: border-box;
365
- padding: 12px 20px;
366
- position: relative;
367
- background-color: ${(e==null?void 0:e.backgroundColor)??"transparent"};
368
- user-select: none;
369
- -webkit-user-select: none;
370
- -moz-user-select: none;
371
- -ms-user-select: none;
372
- touch-action: manipulation;
373
- }
374
-
375
- /* ───────────────────────── Base hover / active ────────────────── */
376
- @media (hover: hover) {
377
- :host(:hover) {
378
- background-color: ${(e==null?void 0:e.hoverBackgroundColor)??"red"};
379
- }
380
- }
381
- :host(:active) {
382
- background-color: ${(e==null?void 0:e.activeBackgroundColor)??"red"};
383
- }
384
-
385
- /* ───────────────────────── Menu hover / active ────────────────── */
386
- @media (hover: hover) {
387
- :host(:hover):has(courier-list-item-menu:hover, courier-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {
388
- background-color: ${(e==null?void 0:e.backgroundColor)??"transparent"};
389
- }
390
- }
391
- :host(:active):has(courier-list-item-menu:active, courier-list-item-menu *:active, courier-button:active, courier-button *:active) {
392
- background-color: ${(e==null?void 0:e.backgroundColor)??"transparent"};
393
- }
394
-
395
- :host(:last-child) {
396
- border-bottom: none;
397
- }
398
-
399
- .unread-indicator {
400
- position: absolute;
401
- top: 28px;
402
- left: 6px;
403
- width: 8px;
404
- height: 8px;
405
- border-radius: 50%;
406
- background-color: ${(e==null?void 0:e.unreadIndicatorColor)??"red"};
407
- display: none;
408
- }
409
-
410
- :host(.unread) .unread-indicator {
411
- display: block;
412
- }
413
-
414
- .content-container {
415
- flex: 1;
416
- display: flex;
417
- flex-direction: column;
418
- margin-right: 12px;
419
- }
420
-
421
- p {
422
- margin: 0;
423
- overflow-wrap: break-word;
424
- word-break: break-word;
425
- hyphens: auto;
426
- line-height: 1.4;
427
- user-select: none;
428
- -webkit-user-select: none;
429
- -moz-user-select: none;
430
- -ms-user-select: none;
431
- text-align: left;
432
- }
433
-
434
- p[part='title'] {
435
- font-family: ${((o=e==null?void 0:e.title)==null?void 0:o.family)??"inherit"};
436
- font-size: ${((n=e==null?void 0:e.title)==null?void 0:n.size)??"14px"};
437
- color: ${((h=e==null?void 0:e.title)==null?void 0:h.color)??"red"};
438
- margin-bottom: 4px;
439
- }
440
-
441
- p[part='subtitle'] {
442
- font-family: ${((d=e==null?void 0:e.subtitle)==null?void 0:d.family)??"inherit"};
443
- font-size: ${((l=e==null?void 0:e.subtitle)==null?void 0:l.size)??"14px"};
444
- color: ${((p=e==null?void 0:e.subtitle)==null?void 0:p.color)??"red"};
445
- }
446
-
447
- p[part='time'] {
448
- font-family: ${((m=e==null?void 0:e.time)==null?void 0:m.family)??"inherit"};
449
- font-size: ${((g=e==null?void 0:e.time)==null?void 0:g.size)??"14px"};
450
- color: ${((f=e==null?void 0:e.time)==null?void 0:f.color)??"red"};
451
- text-align: right;
452
- white-space: nowrap;
453
- }
454
-
455
- courier-list-item-menu {
456
- z-index: 1;
457
- position: absolute;
458
- top: 8px;
459
- right: 8px;
460
- display: none; /* becomes block while visible */
461
- }
462
-
463
- .actions-container {
464
- display: flex;
465
- margin-top: 10px;
466
- flex-wrap: wrap;
467
- flex-direction: row;
468
- align-items: center;
469
- gap: 8px;
470
- display: none;
471
- }
472
-
473
- `}_refreshStyles(){this._style.textContent=this._getStyles()}connectedCallback(){var s,o;const e=this.getAttribute("message"),i=this.getAttribute("feed-type");if(i&&(this._feedType=i),e)try{this._message=JSON.parse(e),this._updateContent()}catch(n){(o=(s=v.shared.client)==null?void 0:s.options.logger)==null||o.error("CourierListItem – failed to parse message:",n)}}setMessage(e,i){this._message=e,this._feedType=i,this._updateContent()}setOnItemClick(e){this.onItemClick=e}setOnItemActionClick(e){this.onItemActionClick=e}setOnItemLongPress(e){this.onItemLongPress=e}_updateContent(){var s,o,n,h,d,l;if(!this._message){this._titleElement.textContent="",this._subtitleElement.textContent="";return}this.classList.toggle("unread",!this._message.read&&this._feedType!=="archive"),this._titleElement.textContent=this._message.title||"Untitled Message",this._subtitleElement.textContent=this._message.preview||this._message.body||"",this._timeElement.textContent=rt(this._message),this._menu.setOptions(this._getMenuOptions());const e=((s=this._message)==null?void 0:s.actions)&&this._message.actions.length>0;this._actionsContainer.style.display=e?"flex":"none";const i=(h=(n=(o=this._theme.inbox)==null?void 0:o.list)==null?void 0:n.item)==null?void 0:h.actions;(l=(d=this._message)==null?void 0:d.actions)==null||l.forEach(p=>{var g,f,_,b;const m=new Re({text:p.content,variant:"secondary",backgroundColor:i==null?void 0:i.backgroundColor,hoverBackgroundColor:i==null?void 0:i.hoverBackgroundColor,activeBackgroundColor:i==null?void 0:i.activeBackgroundColor,border:i==null?void 0:i.border,borderRadius:i==null?void 0:i.borderRadius,shadow:i==null?void 0:i.shadow,fontFamily:(g=i==null?void 0:i.font)==null?void 0:g.family,fontSize:(f=i==null?void 0:i.font)==null?void 0:f.size,fontWeight:(_=i==null?void 0:i.font)==null?void 0:_.weight,textColor:(b=i==null?void 0:i.font)==null?void 0:b.color,onClick:()=>{this._message&&this.onItemActionClick&&this.onItemActionClick(this._message,p)}});this._actionsContainer.appendChild(m)})}}customElements.get("courier-list-item")||customElements.define("courier-list-item",Ve);class ht extends HTMLElement{constructor(e,i){super();a(this,"_shadow");this._shadow=this.attachShadow({mode:"open"});const s=document.createElement("style");s.textContent=this.getStyles(i),this._shadow.appendChild(s);const o=new Oe(e,35),n=new Oe(e,100),h=new Oe(e,82);this._shadow.appendChild(o),this._shadow.appendChild(n),this._shadow.appendChild(h)}getStyles(e){return`
474
- :host {
475
- display: flex;
476
- flex-direction: column;
477
- gap: 12px;
478
- padding: 12px;
479
- width: 100%;
480
- box-sizing: border-box;
481
- opacity: ${e};
482
- }
483
- `}}customElements.get("courier-inbox-skeleton-list-item")||customElements.define("courier-inbox-skeleton-list-item",ht);class Oe extends HTMLElement{constructor(e,i){super();a(this,"_shadow");this._shadow=this.attachShadow({mode:"open"});const s=document.createElement("style");s.textContent=this.getStyles(e,i),this._shadow.appendChild(s);const o=document.createElement("div");o.className="skeleton-item",this._shadow.appendChild(o)}getStyles(e,i){var m,g,f,_,b,C,k,w,S,I,E,M;const s=((f=(g=(m=e.inbox)==null?void 0:m.loading)==null?void 0:g.animation)==null?void 0:f.barColor)??"#000",o=s.length===4?`#${s[1]}${s[1]}${s[2]}${s[2]}${s[3]}${s[3]}`:s,n=parseInt(o.slice(1,3),16),h=parseInt(o.slice(3,5),16),d=parseInt(o.slice(5,7),16),l=`rgba(${n}, ${h}, ${d}, 0.8)`,p=`rgba(${n}, ${h}, ${d}, 0.4)`;return`
484
- :host {
485
- display: flex;
486
- height: 100%;
487
- width: ${i}%;
488
- align-items: flex-start;
489
- justify-content: flex-start;
490
- }
491
-
492
- .skeleton-item {
493
- height: ${((C=(b=(_=e.inbox)==null?void 0:_.loading)==null?void 0:b.animation)==null?void 0:C.barHeight)??"14px"};
494
- width: 100%;
495
- background: linear-gradient(
496
- 90deg,
497
- ${l} 25%,
498
- ${p} 50%,
499
- ${l} 75%
500
- );
501
- background-size: 200% 100%;
502
- animation: shimmer ${((S=(w=(k=e.inbox)==null?void 0:k.loading)==null?void 0:w.animation)==null?void 0:S.duration)??"2s"} ease-in-out infinite;
503
- border-radius: ${((M=(E=(I=e.inbox)==null?void 0:I.loading)==null?void 0:E.animation)==null?void 0:M.barBorderRadius)??"14px"};
504
- }
505
-
506
- @keyframes shimmer {
507
- 0% {
508
- background-position: 200% 0;
509
- }
510
- 100% {
511
- background-position: -200% 0;
512
- }
513
- }
514
- `}}customElements.get("courier-skeleton-animated-row")||customElements.define("courier-skeleton-animated-row",Oe);class je extends Fe{constructor(e){super();a(this,"_theme");this._theme=e}defaultElement(){const e=document.createElement("div");e.className="list";const i=document.createElement("style");i.textContent=this.getStyles(),e.appendChild(i);for(let s=0;s<3;s++){const o=new ht(this._theme,1/(s+1));e.appendChild(o)}return this.shadow.appendChild(e),e}getStyles(){var e,i;return`
515
- :host {
516
- display: flex;
517
- height: 100%;
518
- width: 100%;
519
- align-items: flex-start;
520
- justify-content: flex-start;
521
- overflow: hidden;
522
- }
523
-
524
- .list {
525
- display: flex;
526
- flex-direction: column;
527
- gap: 8px;
528
- width: 100%;
529
- overflow: hidden;
530
- }
531
-
532
- .list > * {
533
- border-bottom: ${((i=(e=this._theme.inbox)==null?void 0:e.loading)==null?void 0:i.divider)??"1px solid red"};
534
- }
535
-
536
- .list > *:last-child {
537
- border-bottom: none;
538
- }
539
- `}}customElements.get("courier-inbox-skeleton-list")||customElements.define("courier-inbox-skeleton-list",je);class ct extends HTMLElement{constructor(e){super();a(this,"skeletonLoadingList");a(this,"observer");a(this,"customItem");a(this,"onPaginationTrigger");this.onPaginationTrigger=e.onPaginationTrigger,this.customItem=e.customItem;const i=this.attachShadow({mode:"open"}),s=document.createElement("style");if(s.textContent=this.getStyles(),i.appendChild(s),this.customItem)i.appendChild(this.customItem);else{const o=document.createElement("div");o.className="skeleton-container",this.skeletonLoadingList=new je(e.theme),this.skeletonLoadingList.build(void 0),o.appendChild(this.skeletonLoadingList),i.appendChild(o)}this.observer=new IntersectionObserver(o=>{o.forEach(n=>{n.isIntersecting&&this.onPaginationTrigger()})}),this.observer.observe(this)}getStyles(){return`
540
- :host {
541
- padding: 0;
542
- margin: 0;
543
- box-sizing: border-box;
544
- }
545
-
546
- .skeleton-container {
547
- height: 150%;
548
- }
549
- `}disconnectedCallback(){this.observer.disconnect()}}customElements.get("courier-inbox-pagination-list-item")||customElements.define("courier-inbox-pagination-list-item",ct);class lt extends HTMLElement{constructor(e){super();a(this,"_themeSubscription");a(this,"_messages",[]);a(this,"_feedType","inbox");a(this,"_isLoading",!0);a(this,"_error",null);a(this,"_canPaginate",!1);a(this,"_onMessageClick",null);a(this,"_onMessageActionClick",null);a(this,"_onMessageLongPress",null);a(this,"_onRefresh");a(this,"_onPaginationTrigger");a(this,"_listItemFactory");a(this,"_paginationItemFactory");a(this,"_loadingStateFactory");a(this,"_emptyStateFactory");a(this,"_errorStateFactory");this._themeSubscription=e.themeManager.subscribe(o=>{this.refreshTheme()}),this._onRefresh=e.onRefresh,this._onPaginationTrigger=e.onPaginationTrigger,this._onMessageClick=e.onMessageClick,this._onMessageActionClick=e.onMessageActionClick,this._onMessageLongPress=e.onMessageLongPress;const i=this.attachShadow({mode:"open"}),s=document.createElement("style");s.textContent=this.getStyles(),i.appendChild(s)}get messages(){return this._messages}getStyles(){var i;const e=(i=this._themeSubscription.manager.getTheme().inbox)==null?void 0:i.list;return`
550
- :host {
551
- flex: 1;
552
- width: 100%;
553
- background-color: ${(e==null?void 0:e.backgroundColor)??r.white[500]};
554
- }
555
-
556
- ul {
557
- list-style: none;
558
- padding: 0;
559
- margin: 0;
560
- height: 100%;
561
- }
562
- `}reset(){var i,s;for(;(i=this.shadowRoot)!=null&&i.firstChild;)this.shadowRoot.removeChild(this.shadowRoot.firstChild);const e=document.createElement("style");e.textContent=this.getStyles(),(s=this.shadowRoot)==null||s.appendChild(e)}setDataSet(e){this._messages=[...e.messages],this._canPaginate=!!e.canPaginate,this._error=null,this._isLoading=!1,this.render()}addPage(e){this._messages=[...this._messages,...e.messages],this._canPaginate=!!e.canPaginate,this._error=null,this._isLoading=!1,this.render()}addMessage(e,i=0){this._messages.splice(i,0,e),this.render()}removeMessage(e=0){this._messages.splice(e,1),this.render()}updateMessage(e,i=0){this._messages[i]=e,this.render()}setFeedType(e){this._feedType=e,this._error=null,this._isLoading=!0,this.render()}setLoading(e){this._error=null,this._isLoading=e,this.render()}setError(e){this._error=e,this._isLoading=!1,this._messages=[],this.render()}setErrorNoClient(){this.setError(new Error("No user signed in"))}handleRetry(){this._onRefresh()}handleRefresh(){this._onRefresh()}render(){var s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E,M,A,R,F,y,B,H,O,z,q,V,j,Z,J,G,ee,te,ie,se,Q,ue,pe,ge,me,be,_e,fe,xe,ve,Ce,ye,ke,we,Se,Ie,Ee,Me,Te,$e,Le;this.reset();const e=this._themeSubscription.manager.getTheme();if(this._error){const u=(s=e.inbox)==null?void 0:s.error,D=new He({title:{text:((o=u==null?void 0:u.title)==null?void 0:o.text)??this._error.message,textColor:(h=(n=u==null?void 0:u.title)==null?void 0:n.font)==null?void 0:h.color,fontFamily:(l=(d=u==null?void 0:u.title)==null?void 0:d.font)==null?void 0:l.family,fontSize:(m=(p=u==null?void 0:u.title)==null?void 0:p.font)==null?void 0:m.size,fontWeight:(f=(g=u==null?void 0:u.title)==null?void 0:g.font)==null?void 0:f.weight},button:{text:(_=u==null?void 0:u.button)==null?void 0:_.text,backgroundColor:(b=u==null?void 0:u.button)==null?void 0:b.backgroundColor,hoverBackgroundColor:(C=u==null?void 0:u.button)==null?void 0:C.hoverBackgroundColor,activeBackgroundColor:(k=u==null?void 0:u.button)==null?void 0:k.activeBackgroundColor,textColor:(S=(w=u==null?void 0:u.button)==null?void 0:w.font)==null?void 0:S.color,fontFamily:(E=(I=u==null?void 0:u.button)==null?void 0:I.font)==null?void 0:E.family,fontSize:(A=(M=u==null?void 0:u.button)==null?void 0:M.font)==null?void 0:A.size,fontWeight:(F=(R=u==null?void 0:u.button)==null?void 0:R.font)==null?void 0:F.weight,shadow:(y=u==null?void 0:u.button)==null?void 0:y.shadow,border:(B=u==null?void 0:u.button)==null?void 0:B.border,borderRadius:(H=u==null?void 0:u.button)==null?void 0:H.borderRadius}});D.build((O=this._errorStateFactory)==null?void 0:O.call(this,{feedType:this._feedType,error:this._error})),D.setButtonClickCallback(()=>this.handleRetry()),(z=this.shadowRoot)==null||z.appendChild(D);return}if(this._isLoading){const u=new je(e);u.build((q=this._loadingStateFactory)==null?void 0:q.call(this,{feedType:this._feedType})),(V=this.shadowRoot)==null||V.appendChild(u);return}if(this._messages.length===0){const u=(j=e.inbox)==null?void 0:j.empty,D=new He({title:{text:((Z=u==null?void 0:u.title)==null?void 0:Z.text)??`No ${this._feedType} messages yet`,textColor:(G=(J=u==null?void 0:u.title)==null?void 0:J.font)==null?void 0:G.color,fontFamily:(te=(ee=u==null?void 0:u.title)==null?void 0:ee.font)==null?void 0:te.family,fontSize:(se=(ie=u==null?void 0:u.title)==null?void 0:ie.font)==null?void 0:se.size,fontWeight:(ue=(Q=u==null?void 0:u.title)==null?void 0:Q.font)==null?void 0:ue.weight},button:{text:(pe=u==null?void 0:u.button)==null?void 0:pe.text,backgroundColor:(ge=u==null?void 0:u.button)==null?void 0:ge.backgroundColor,hoverBackgroundColor:(me=u==null?void 0:u.button)==null?void 0:me.hoverBackgroundColor,activeBackgroundColor:(be=u==null?void 0:u.button)==null?void 0:be.activeBackgroundColor,textColor:(fe=(_e=u==null?void 0:u.button)==null?void 0:_e.font)==null?void 0:fe.color,fontFamily:(ve=(xe=u==null?void 0:u.button)==null?void 0:xe.font)==null?void 0:ve.family,fontSize:(ye=(Ce=u==null?void 0:u.button)==null?void 0:Ce.font)==null?void 0:ye.size,fontWeight:(we=(ke=u==null?void 0:u.button)==null?void 0:ke.font)==null?void 0:we.weight,shadow:(Se=u==null?void 0:u.button)==null?void 0:Se.shadow,border:(Ie=u==null?void 0:u.button)==null?void 0:Ie.border,borderRadius:(Ee=u==null?void 0:u.button)==null?void 0:Ee.borderRadius}});D.build((Me=this._emptyStateFactory)==null?void 0:Me.call(this,{feedType:this._feedType})),D.setButtonClickCallback(()=>this.handleRefresh()),(Te=this.shadowRoot)==null||Te.appendChild(D);return}const i=document.createElement("ul");if(($e=this.shadowRoot)==null||$e.appendChild(i),this._messages.forEach((u,D)=>{if(this._listItemFactory){i.appendChild(this._listItemFactory({message:u,index:D}));return}const oe=new Ve(e);oe.setMessage(u,this._feedType),oe.setOnItemClick(ne=>{var W;return(W=this._onMessageClick)==null?void 0:W.call(this,ne,D)}),oe.setOnItemActionClick((ne,W)=>{var Ae;return(Ae=this._onMessageActionClick)==null?void 0:Ae.call(this,ne,W,D)}),oe.setOnItemLongPress(ne=>{var W;return(W=this._onMessageLongPress)==null?void 0:W.call(this,ne,D)}),i.appendChild(oe)}),this._canPaginate){const u=new ct({theme:e,customItem:(Le=this._paginationItemFactory)==null?void 0:Le.call(this,{feedType:this._feedType}),onPaginationTrigger:()=>{var D;return(D=this._onPaginationTrigger)==null?void 0:D.call(this,this._feedType)}});i.appendChild(u)}}setLoadingStateFactory(e){this._loadingStateFactory=e,this.render()}setEmptyStateFactory(e){this._emptyStateFactory=e,this.render()}setErrorStateFactory(e){this._errorStateFactory=e,this.render()}setListItemFactory(e){this._listItemFactory=e,this.render()}setPaginationItemFactory(e){this._paginationItemFactory=e,this.render()}refreshTheme(){this.render()}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-list")||customElements.define("courier-inbox-list",lt);class dt extends HTMLElement{constructor(e){super();a(this,"_option");a(this,"_isSelected");a(this,"_content");a(this,"_itemIcon");a(this,"_title");a(this,"_selectionIcon");a(this,"_style");a(this,"_themeManager");this._option=e.option,this._isSelected=e.isSelected,this._themeManager=e.themeManager;const i=this.attachShadow({mode:"open"});this._style=document.createElement("style"),this._content=document.createElement("div"),this._content.className="menu-item",this._itemIcon=new ae(this._option.icon.svg??x.inbox),this._itemIcon.setAttribute("size","16"),this._title=document.createElement("p"),this._title.textContent=this._option.text;const s=document.createElement("div");s.className="spacer",this._selectionIcon=new ae(x.check),this._content.appendChild(this._itemIcon),this._content.appendChild(this._title),this._content.appendChild(s),e.selectable&&this._content.appendChild(this._selectionIcon),i.appendChild(this._style),i.appendChild(this._content),this._selectionIcon.style.display=this._isSelected?"block":"none",this.refreshTheme()}getStyles(){var i,s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E,M,A,R,F,y,B,H,O,z,q,V,j,Z,J,G;const e=this._themeManager.getTheme();return`
563
- :host {
564
- display: flex;
565
- flex-direction: row;
566
- padding: 6px 12px;
567
- cursor: pointer;
568
- }
569
-
570
- :host(:hover) {
571
- background-color: ${((h=(n=(o=(s=(i=e.inbox)==null?void 0:i.header)==null?void 0:s.menus)==null?void 0:o.popup)==null?void 0:n.list)==null?void 0:h.hoverBackgroundColor)??"red"};
572
- }
573
-
574
- :host(:active) {
575
- background-color: ${((g=(m=(p=(l=(d=e.inbox)==null?void 0:d.header)==null?void 0:l.menus)==null?void 0:p.popup)==null?void 0:m.list)==null?void 0:g.activeBackgroundColor)??"red"};
576
- }
577
-
578
- .menu-item {
579
- display: flex;
580
- align-items: center;
581
- width: 100%;
582
- gap: 12px;
583
- }
584
-
585
- .spacer {
586
- flex: 1;
587
- }
588
-
589
- p {
590
- margin: 0;
591
- font-family: ${((w=(k=(C=(b=(_=(f=e.inbox)==null?void 0:f.header)==null?void 0:_.menus)==null?void 0:b.popup)==null?void 0:C.list)==null?void 0:k.font)==null?void 0:w.family)??"inherit"};
592
- font-weight: ${((R=(A=(M=(E=(I=(S=e.inbox)==null?void 0:S.header)==null?void 0:I.menus)==null?void 0:E.popup)==null?void 0:M.list)==null?void 0:A.font)==null?void 0:R.weight)??"inherit"};
593
- font-size: ${((z=(O=(H=(B=(y=(F=e.inbox)==null?void 0:F.header)==null?void 0:y.menus)==null?void 0:B.popup)==null?void 0:H.list)==null?void 0:O.font)==null?void 0:z.size)??"14px"};
594
- color: ${((G=(J=(Z=(j=(V=(q=e.inbox)==null?void 0:q.header)==null?void 0:V.menus)==null?void 0:j.popup)==null?void 0:Z.list)==null?void 0:J.font)==null?void 0:G.color)??"red"};
595
- white-space: nowrap;
596
- }
597
-
598
- .check-icon {
599
- display: none;
600
- }
601
- `}refreshTheme(){var e,i,s,o;this._style.textContent=this.getStyles(),this._selectionIcon.updateColor(((e=this._option.selectionIcon)==null?void 0:e.color)??"red"),this._selectionIcon.updateSVG(((i=this._option.selectionIcon)==null?void 0:i.svg)??x.check),this._title.textContent=this._option.text??"Missing Text",this._itemIcon.updateColor(((s=this._option.icon)==null?void 0:s.color)??"red"),this._itemIcon.updateSVG(((o=this._option.icon)==null?void 0:o.svg)??x.inbox)}}customElements.get("courier-inbox-filter-menu-item")||customElements.define("courier-inbox-filter-menu-item",dt);class Ze extends HTMLElement{constructor(e,i,s,o,n){super();a(this,"_themeSubscription");a(this,"_type");a(this,"_selectedIndex",0);a(this,"_options");a(this,"_selectable");a(this,"_onMenuOpen");a(this,"_menuButton");a(this,"_menu");a(this,"_style");this._type=i,this._selectable=s,this._options=o,this._selectedIndex=0,this._onMenuOpen=n;const h=this.attachShadow({mode:"open"});this._menuButton=new de(i==="filters"?x.filter:x.overflow),this._menu=document.createElement("div"),this._menu.className=`menu ${i}`,this._style=document.createElement("style"),h.appendChild(this._style),h.appendChild(this._menuButton),h.appendChild(this._menu),this._menuButton.addEventListener("click",this.toggleMenu.bind(this)),document.addEventListener("click",this.handleOutsideClick.bind(this)),this._themeSubscription=e.subscribe(d=>{this.refreshTheme()}),this.refreshTheme()}getStyles(){var i,s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E,M,A;const e=this._themeSubscription.manager.getTheme();return`
602
- :host {
603
- position: relative;
604
- display: inline-block;
605
- }
606
-
607
- .menu {
608
- display: none;
609
- position: absolute;
610
- top: 42px;
611
- right: -6px;
612
- border-radius: ${((n=(o=(s=(i=e.inbox)==null?void 0:i.header)==null?void 0:s.menus)==null?void 0:o.popup)==null?void 0:n.borderRadius)??"6px"};
613
- border: ${((p=(l=(d=(h=e.inbox)==null?void 0:h.header)==null?void 0:d.menus)==null?void 0:l.popup)==null?void 0:p.border)??"1px solid red"};
614
- background: ${((_=(f=(g=(m=e.inbox)==null?void 0:m.header)==null?void 0:g.menus)==null?void 0:f.popup)==null?void 0:_.backgroundColor)??"red"};
615
- box-shadow: ${((w=(k=(C=(b=e.inbox)==null?void 0:b.header)==null?void 0:C.menus)==null?void 0:k.popup)==null?void 0:w.shadow)??"0 4px 12px 0 red"};
616
- z-index: 1000;
617
- min-width: 200px;
618
- overflow: hidden;
619
- padding: 4px 0;
620
- }
621
-
622
- courier-inbox-filter-menu-item {
623
- border-bottom: ${((A=(M=(E=(I=(S=e.inbox)==null?void 0:S.header)==null?void 0:I.menus)==null?void 0:E.popup)==null?void 0:M.list)==null?void 0:A.divider)??"none"};
624
- }
625
-
626
- courier-inbox-filter-menu-item:last-child {
627
- border-bottom: none;
628
- }
629
- `}refreshTheme(){var h,d,l,p,m,g;this._style.textContent=this.getStyles();const i=(d=(h=this._themeSubscription.manager.getTheme().inbox)==null?void 0:h.header)==null?void 0:d.menus,s=this._type==="filters",o=s?(l=i==null?void 0:i.filters)==null?void 0:l.button:(p=i==null?void 0:i.actions)==null?void 0:p.button,n=s?x.filter:x.overflow;this._menuButton.updateIconSVG(((m=o==null?void 0:o.icon)==null?void 0:m.svg)??n),this._menuButton.updateIconColor(((g=o==null?void 0:o.icon)==null?void 0:g.color)??"red"),this._menuButton.updateBackgroundColor((o==null?void 0:o.backgroundColor)??"transparent"),this._menuButton.updateHoverBackgroundColor((o==null?void 0:o.hoverBackgroundColor)??"red"),this._menuButton.updateActiveBackgroundColor((o==null?void 0:o.activeBackgroundColor)??"red"),this.refreshMenuItems()}setOptions(e){this._options=e,this.refreshMenuItems()}refreshMenuItems(){this._menu.innerHTML="",this._options.forEach((e,i)=>{const s=new dt({option:e,selectable:this._selectable,isSelected:this._selectedIndex===i,themeManager:this._themeSubscription.manager});s.addEventListener("click",()=>{this._selectedIndex=i,e.onClick(e),this.refreshMenuItems(),this.closeMenu()}),this._menu.appendChild(s)})}toggleMenu(e){e.stopPropagation();const i=this._menu.style.display!=="block";this._menu.style.display=i?"block":"none",i&&this._onMenuOpen()}handleOutsideClick(e){this.contains(e.target)||this.closeMenu()}closeMenu(){this._menu.style.display="none"}selectOption(e){this._selectedIndex=this._options.findIndex(i=>i.id===e.id),this.refreshMenuItems()}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-option-menu")||customElements.define("courier-inbox-option-menu",Ze);class Je extends HTMLElement{constructor(e){super();a(this,"_themeSubscription");a(this,"_location");a(this,"_count",0);a(this,"_badge");a(this,"_style");this._location=e.location,this._themeSubscription=e.themeBus.subscribe(s=>{this.refreshTheme(this._location)});const i=this.attachShadow({mode:"open"});this._badge=document.createElement("span"),this._badge.className="unread-badge",this._style=document.createElement("style"),this._style.textContent=this.getStyles(this._location),i.appendChild(this._style),i.appendChild(this._badge)}getStyles(e){var l,p,m,g,f,_,b;const i=this._themeSubscription.manager.getTheme(),s=e==="button"?(p=(l=i.popup)==null?void 0:l.button)==null?void 0:p.unreadIndicator:(f=(g=(m=i.inbox)==null?void 0:m.header)==null?void 0:g.filters)==null?void 0:f.unreadIndicator,o=s==null?void 0:s.backgroundColor,n=s==null?void 0:s.borderRadius,h=(_=s==null?void 0:s.font)==null?void 0:_.color,d=(b=s==null?void 0:s.font)==null?void 0:b.size;return`
630
- :host {
631
- display: inline-block;
632
- }
633
-
634
- .unread-badge {
635
- background-color: ${o};
636
- color: ${h};
637
- border-radius: ${n};
638
- padding: 4px 8px;
639
- font-size: ${d};
640
- text-align: center;
641
- display: none;
642
- pointer-events: none;
643
- }
644
- `}setCount(e){this._count=e,this.updateBadge()}refreshTheme(e){this._location=e,this.updateBadge()}updateBadge(){this._style.textContent=this.getStyles(this._location),this._count>0?(this._badge.textContent=this._count.toString(),this._badge.style.display="block"):this._badge.style.display="none"}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-unread-count-badge")||customElements.define("courier-unread-count-badge",Je);class ut extends HTMLElement{constructor(e,i){super();a(this,"_themeSubscription");a(this,"_option");a(this,"_feedType");a(this,"_titleElement");a(this,"_iconElement");a(this,"_unreadBadge");a(this,"_container");a(this,"_style");this._option=i;const s=this.attachShadow({mode:"open"});this._style=document.createElement("style"),this._container=document.createElement("div"),this._container.className="title-section",this._iconElement=new ae(void 0,this._option.icon.svg),this._titleElement=document.createElement("h2"),this._unreadBadge=new Je({themeBus:e,location:"header"}),this._container.appendChild(this._iconElement),this._container.appendChild(this._titleElement),this._container.appendChild(this._unreadBadge),s.appendChild(this._style),s.appendChild(this._container),this._themeSubscription=e.subscribe(o=>{this.refreshTheme(this._feedType??"inbox")}),this.refreshTheme(this._feedType??"inbox")}getStyles(){var i,s,o,n,h,d,l,p,m,g,f,_,b,C,k,w;const e=this._themeSubscription.manager.getTheme();return`
645
- .title-section {
646
- display: flex;
647
- align-items: center;
648
- gap: 8px;
649
- position: relative;
650
- }
651
-
652
- courier-icon {
653
- display: flex;
654
- align-items: center;
655
- }
656
-
657
- h2 {
658
- margin: 0;
659
- font-family: ${((n=(o=(s=(i=e.inbox)==null?void 0:i.header)==null?void 0:s.filters)==null?void 0:o.font)==null?void 0:n.family)??"inherit"};
660
- font-size: ${((p=(l=(d=(h=e.inbox)==null?void 0:h.header)==null?void 0:d.filters)==null?void 0:l.font)==null?void 0:p.size)??"18px"};
661
- font-weight: ${((_=(f=(g=(m=e.inbox)==null?void 0:m.header)==null?void 0:g.filters)==null?void 0:f.font)==null?void 0:_.weight)??"500"};
662
- color: ${((w=(k=(C=(b=e.inbox)==null?void 0:b.header)==null?void 0:C.filters)==null?void 0:k.font)==null?void 0:w.color)??"red"};
663
- }
664
-
665
- courier-unread-count-badge {
666
- margin-left: 4px;
667
- }
668
- `}refreshTheme(e){this._feedType=e,this._style.textContent=this.getStyles(),this._unreadBadge.refreshTheme("header"),this.updateFilter()}updateSelectedOption(e,i,s){this._option=e,this._feedType=i,this._unreadBadge.setCount(s),this.updateFilter()}updateFilter(){var i,s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E,M,A,R,F,y,B,H,O,z;const e=this._themeSubscription.manager.getTheme();switch(this._feedType){case"inbox":this._titleElement.textContent=((n=(o=(s=(i=e.inbox)==null?void 0:i.header)==null?void 0:s.filters)==null?void 0:o.inbox)==null?void 0:n.text)??"Inbox",this._iconElement.updateSVG(((m=(p=(l=(d=(h=e.inbox)==null?void 0:h.header)==null?void 0:d.filters)==null?void 0:l.inbox)==null?void 0:p.icon)==null?void 0:m.svg)??x.inbox),this._iconElement.updateColor(((C=(b=(_=(f=(g=e.inbox)==null?void 0:g.header)==null?void 0:f.filters)==null?void 0:_.inbox)==null?void 0:b.icon)==null?void 0:C.color)??"red");break;case"archive":this._titleElement.textContent=((I=(S=(w=(k=e.inbox)==null?void 0:k.header)==null?void 0:w.filters)==null?void 0:S.archive)==null?void 0:I.text)??"Archive",this._iconElement.updateSVG(((F=(R=(A=(M=(E=e.inbox)==null?void 0:E.header)==null?void 0:M.filters)==null?void 0:A.archive)==null?void 0:R.icon)==null?void 0:F.svg)??x.archive),this._iconElement.updateColor(((z=(O=(H=(B=(y=e.inbox)==null?void 0:y.header)==null?void 0:B.filters)==null?void 0:H.archive)==null?void 0:O.icon)==null?void 0:z.color)??"red");break}}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-header-title")||customElements.define("courier-inbox-header-title",ut);class Ge extends Fe{constructor(e){super();a(this,"_themeSubscription");a(this,"_feedType","inbox");a(this,"_unreadCount",0);a(this,"_titleSection");a(this,"_filterMenu");a(this,"_actionMenu");a(this,"_style");a(this,"_onFeedTypeChange");this._themeSubscription=e.themeManager.subscribe(i=>{this.refreshTheme()}),this._onFeedTypeChange=e.onFeedTypeChange}getFilterOptions(){var s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E,M,A,R,F,y,B,H,O,z,q,V,j,Z,J,G,ee,te,ie,se;const e=this._themeSubscription.manager.getTheme(),i=(n=(o=(s=e.inbox)==null?void 0:s.header)==null?void 0:o.menus)==null?void 0:n.filters;return[{id:"inbox",text:((h=i==null?void 0:i.inbox)==null?void 0:h.text)??"Inbox",icon:{color:((l=(d=i==null?void 0:i.inbox)==null?void 0:d.icon)==null?void 0:l.color)??"red",svg:((m=(p=i==null?void 0:i.inbox)==null?void 0:p.icon)==null?void 0:m.svg)??x.inbox},selectionIcon:{color:((k=(C=(b=(_=(f=(g=e.inbox)==null?void 0:g.header)==null?void 0:f.menus)==null?void 0:_.popup)==null?void 0:b.list)==null?void 0:C.selectionIcon)==null?void 0:k.color)??"red",svg:((A=(M=(E=(I=(S=(w=e.inbox)==null?void 0:w.header)==null?void 0:S.menus)==null?void 0:I.popup)==null?void 0:E.list)==null?void 0:M.selectionIcon)==null?void 0:A.svg)??x.check},onClick:Q=>{this.handleOptionMenuItemClick("inbox",Q)}},{id:"archive",text:((R=i==null?void 0:i.archive)==null?void 0:R.text)??"Archive",icon:{color:((y=(F=i==null?void 0:i.archive)==null?void 0:F.icon)==null?void 0:y.color)??"red",svg:((H=(B=i==null?void 0:i.archive)==null?void 0:B.icon)==null?void 0:H.svg)??x.archive},selectionIcon:{color:((Z=(j=(V=(q=(z=(O=e.inbox)==null?void 0:O.header)==null?void 0:z.menus)==null?void 0:q.popup)==null?void 0:V.list)==null?void 0:j.selectionIcon)==null?void 0:Z.color)??"red",svg:((se=(ie=(te=(ee=(G=(J=e.inbox)==null?void 0:J.header)==null?void 0:G.menus)==null?void 0:ee.popup)==null?void 0:te.list)==null?void 0:ie.selectionIcon)==null?void 0:se.svg)??x.check},onClick:Q=>{this.handleOptionMenuItemClick("archive",Q)}}]}getActionOptions(){var s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E;const i=(n=(o=(s=this._themeSubscription.manager.getTheme().inbox)==null?void 0:s.header)==null?void 0:o.menus)==null?void 0:n.actions;return[{id:"markAllRead",text:((h=i==null?void 0:i.markAllRead)==null?void 0:h.text)??"Mark All as Read",icon:{color:((l=(d=i==null?void 0:i.markAllRead)==null?void 0:d.icon)==null?void 0:l.color)??"red",svg:((m=(p=i==null?void 0:i.markAllRead)==null?void 0:p.icon)==null?void 0:m.svg)??x.inbox},selectionIcon:null,onClick:M=>{P.shared.readAllMessages({canCallApi:!0})}},{id:"archiveAll",text:((g=i==null?void 0:i.archiveAll)==null?void 0:g.text)??"Archive All",icon:{color:((_=(f=i==null?void 0:i.archiveAll)==null?void 0:f.icon)==null?void 0:_.color)??"red",svg:((C=(b=i==null?void 0:i.archiveAll)==null?void 0:b.icon)==null?void 0:C.svg)??x.archive},selectionIcon:null,onClick:M=>{var A;alert(JSON.stringify((A=v.shared.client)==null?void 0:A.options))}},{id:"archiveRead",text:((k=i==null?void 0:i.archiveRead)==null?void 0:k.text)??"Archive Read",icon:{color:((S=(w=i==null?void 0:i.archiveRead)==null?void 0:w.icon)==null?void 0:S.color)??"red",svg:((E=(I=i==null?void 0:i.archiveRead)==null?void 0:I.icon)==null?void 0:E.svg)??x.archive},selectionIcon:null,onClick:M=>{P.shared.archiveReadMessages({canCallApi:!0})}}]}static get observedAttributes(){return["icon","title","feed-type"]}refreshTheme(){var s,o,n,h,d,l,p;const e=this._themeSubscription.manager.getTheme(),i=(s=this.shadow)==null?void 0:s.querySelector(".courier-inbox-header");i&&(i.style.backgroundColor=((n=(o=e.inbox)==null?void 0:o.header)==null?void 0:n.backgroundColor)??r.white[500],i.style.boxShadow=((d=(h=e.inbox)==null?void 0:h.header)==null?void 0:d.shadow)??`0px 1px 0px 0px ${r.gray[500]}`),(l=this._filterMenu)==null||l.setOptions(this.getFilterOptions()),(p=this._actionMenu)==null||p.setOptions(this.getActionOptions())}handleOptionMenuItemClick(e,i){this._feedType=e,this._titleSection&&this._titleSection.updateSelectedOption(i,this._feedType,this._feedType==="inbox"?this._unreadCount:0),this._onFeedTypeChange(e)}render(e){this._feedType=e.feedType,this._unreadCount=e.unreadCount,this.refreshTitleSection()}refreshTitleSection(){var i,s;const e=this.getFilterOptions().find(o=>["inbox","archive"].includes(o.id)&&o.id===this._feedType);e&&((i=this._titleSection)==null||i.updateSelectedOption(e,this._feedType,this._feedType==="inbox"?this._unreadCount:0),(s=this._filterMenu)==null||s.selectOption(e))}build(e){var i;super.build(e),this._style=document.createElement("style"),this._style.textContent=this.getStyles(),(i=this.shadow)==null||i.appendChild(this._style),this.refreshTheme()}defaultElement(){const e=this.getFilterOptions();this._titleSection=new ut(this._themeSubscription.manager,e[0]),this._filterMenu=new Ze(this._themeSubscription.manager,"filters",!0,e,()=>{var n;(n=this._actionMenu)==null||n.closeMenu()}),this._actionMenu=new Ze(this._themeSubscription.manager,"actions",!1,this.getActionOptions(),()=>{var n;(n=this._filterMenu)==null||n.closeMenu()}),this._filterMenu.selectOption(e[0]);const i=document.createElement("div");i.className="spacer";const s=document.createElement("div");s.className="actions",s.appendChild(this._filterMenu),s.appendChild(this._actionMenu);const o=document.createElement("div");return o.className="courier-inbox-header",o.appendChild(this._titleSection),o.appendChild(i),o.appendChild(s),o}getStyles(){return`
669
- :host {
670
- z-index: 100;
671
- }
672
-
673
- .courier-inbox-header {
674
- display: flex;
675
- align-items: center;
676
- justify-content: space-between;
677
- padding: 10px 10px 10px 16px;
678
- background-color: ${r.white[500]};
679
- box-shadow: 0px 1px 0px 0px ${r.gray[500]};
680
- }
681
-
682
- .header-content {
683
- display: flex;
684
- align-items: center;
685
- flex: 1;
686
- }
687
-
688
- .spacer {
689
- flex: 1;
690
- }
691
-
692
- .actions {
693
- display: flex;
694
- align-items: center;
695
- gap: 4px;
696
- }
697
- `}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-header")||customElements.define("courier-inbox-header",Ge);class We{constructor(t){a(this,"events");this.events=t}remove(){P.shared.removeDataStoreListener(this)}}const le={popup:{button:{icon:{color:r.black[500],svg:x.inbox},backgroundColor:"transparent",hoverBackgroundColor:r.black[50010],activeBackgroundColor:r.black[50020],unreadIndicator:{font:{color:r.white[500],size:"14px",family:void 0,weight:void 0},backgroundColor:r.blue[500],borderRadius:"12px"}},window:{backgroundColor:r.white[500],borderRadius:"8px",border:`1px solid ${r.gray[500]}`,shadow:`0px 8px 16px -4px ${r.gray[500]}`}},inbox:{header:{backgroundColor:r.white[500],shadow:`0px 1px 0px 0px ${r.gray[500]}`,filters:{font:{color:r.black[500],family:void 0,size:"18px"},inbox:{icon:{color:r.black[500],svg:x.inbox},text:"Inbox"},archive:{icon:{color:r.black[500],svg:x.archive},text:"Archive"},unreadIndicator:{font:{color:r.white[500],family:void 0,size:"14px"},backgroundColor:r.blue[500],borderRadius:"12px"}},menus:{popup:{backgroundColor:r.white[500],border:`1px solid ${r.gray[500]}`,borderRadius:"4px",shadow:`0px 4px 8px -2px ${r.gray[500]}`,list:{hoverBackgroundColor:r.gray[200],activeBackgroundColor:r.gray[500],divider:"none",font:{color:r.black[500],family:void 0,size:"14px"},selectionIcon:{color:r.black[500],svg:x.check}}},filters:{button:{icon:{color:r.black[500],svg:x.filter},backgroundColor:"transparent",hoverBackgroundColor:r.black[50010],activeBackgroundColor:r.black[50020]},inbox:{icon:{color:r.black[500],svg:x.inbox},text:"Inbox"},archive:{icon:{color:r.black[500],svg:x.archive},text:"Archive"}},actions:{button:{icon:{color:r.black[500],svg:x.overflow},backgroundColor:"transparent",hoverBackgroundColor:r.black[50010],activeBackgroundColor:r.black[50020]},markAllRead:{icon:{color:r.black[500],svg:x.read},text:"Mark All as Read"},archiveAll:{icon:{color:r.black[500],svg:x.archive},text:"Archive All"},archiveRead:{icon:{color:r.black[500],svg:x.archiveRead},text:"Archive Read"}}}},list:{backgroundColor:r.white[500],item:{backgroundColor:"transparent",unreadIndicatorColor:r.blue[500],hoverBackgroundColor:r.gray[200],activeBackgroundColor:r.gray[500],actions:{backgroundColor:"transparent",hoverBackgroundColor:r.gray[200],activeBackgroundColor:r.gray[500],border:`1px solid ${r.gray[500]}`,borderRadius:"4px",shadow:"0px 1px 2px 0px rgba(0, 0, 0, 0.06)",font:{color:r.black[500],family:void 0,size:"14px"}},title:{color:r.black[500],family:void 0,size:"14px"},subtitle:{color:r.gray[600],family:void 0,size:"14px"},time:{color:r.gray[600],family:void 0,size:"14px"},divider:`1px solid ${r.gray[200]}`,menu:{enabled:!0,backgroundColor:r.white[500],border:`1px solid ${r.gray[500]}`,borderRadius:"4px",shadow:`0px 2px 4px -2px ${r.gray[500]}`,longPress:{displayDuration:4e3,vibrationDuration:50},item:{hoverBackgroundColor:r.gray[200],activeBackgroundColor:r.gray[500],borderRadius:"0px",read:{color:r.black[500],svg:x.read},unread:{color:r.black[500],svg:x.unread},archive:{color:r.black[500],svg:x.archive},unarchive:{color:r.black[500],svg:x.unarchive}}}}},loading:{animation:{barColor:r.gray[500],barHeight:"14px",barBorderRadius:"14px",duration:"2s"},divider:`1px solid ${r.gray[200]}`},empty:{title:{font:{size:"16px",weight:"500",color:r.black[500]}},button:{text:"Refresh"}},error:{title:{font:{size:"16px",weight:"500",color:r.black[500]}},button:{text:"Retry"}}}},ze={popup:{button:{icon:{color:r.white[500],svg:x.inbox},backgroundColor:"transparent",hoverBackgroundColor:r.white[50010],activeBackgroundColor:r.white[50020],unreadIndicator:{font:{color:r.white[500],size:"14px",family:void 0,weight:void 0},backgroundColor:r.blue[500],borderRadius:"12px"}},window:{backgroundColor:r.black[500],borderRadius:"8px",border:`1px solid ${r.gray[400]}`,shadow:`0px 4px 8px -2px ${r.white[50020]}`}},inbox:{header:{backgroundColor:r.black[500],shadow:`0px 1px 0px 0px ${r.gray[400]}`,filters:{font:{color:r.white[500],family:void 0,size:"18px"},inbox:{icon:{color:r.white[500],svg:x.inbox},text:"Inbox"},archive:{icon:{color:r.white[500],svg:x.archive},text:"Archive"},unreadIndicator:{font:{color:r.white[500],family:void 0,size:"14px"},backgroundColor:r.blue[500],borderRadius:"12px"}},menus:{popup:{backgroundColor:r.black[500],border:`1px solid ${r.gray[400]}`,borderRadius:"4px",shadow:`0px 4px 8px -2px ${r.white[50020]}`,list:{hoverBackgroundColor:r.white[50010],activeBackgroundColor:r.white[50020],divider:"none",font:{color:r.white[500],family:void 0,size:"14px"},selectionIcon:{color:r.white[500],svg:x.check}}},filters:{button:{icon:{color:r.white[500],svg:x.filter},backgroundColor:"transparent",hoverBackgroundColor:r.white[50010],activeBackgroundColor:r.white[50020]},inbox:{icon:{color:r.white[500],svg:x.inbox},text:"Inbox"},archive:{icon:{color:r.white[500],svg:x.archive},text:"Archive"}},actions:{button:{icon:{color:r.white[500],svg:x.overflow},backgroundColor:"transparent",hoverBackgroundColor:r.white[50010],activeBackgroundColor:r.white[50020]},markAllRead:{icon:{color:r.white[500],svg:x.read},text:"Mark All as Read"},archiveAll:{icon:{color:r.white[500],svg:x.archive},text:"Archive All"},archiveRead:{icon:{color:r.white[500],svg:x.archiveRead},text:"Archive Read"}}}},list:{backgroundColor:r.black[500],item:{backgroundColor:"transparent",unreadIndicatorColor:r.blue[500],hoverBackgroundColor:r.white[50010],activeBackgroundColor:r.white[50020],actions:{backgroundColor:"transparent",hoverBackgroundColor:r.white[50010],activeBackgroundColor:r.white[50020],border:`1px solid ${r.gray[400]}`,borderRadius:"4px",shadow:`0px 1px 2px 0px ${r.white[50010]}`,font:{color:r.white[500],family:void 0,size:"14px"}},title:{color:r.white[500],family:void 0,size:"14px"},subtitle:{color:r.gray[500],family:void 0,size:"14px"},time:{color:r.gray[500],family:void 0,size:"12px"},divider:`1px solid ${r.gray[400]}`,menu:{enabled:!0,backgroundColor:r.black[500],border:`1px solid ${r.gray[400]}`,borderRadius:"4px",shadow:`0px 2px 4px -2px ${r.white[50020]}`,longPress:{displayDuration:4e3,vibrationDuration:50},item:{hoverBackgroundColor:r.white[50010],activeBackgroundColor:r.white[50020],borderRadius:"0px",read:{color:r.white[500],svg:x.read},unread:{color:r.white[500],svg:x.unread},archive:{color:r.white[500],svg:x.archive},unarchive:{color:r.white[500],svg:x.unarchive}}}}},loading:{animation:{barColor:r.white[500],barHeight:"14px",barBorderRadius:"14px",duration:"2s"},divider:`1px solid ${r.gray[400]}`},empty:{title:{font:{size:"16px",weight:"500",color:r.white[500]}},button:{text:"Refresh"}},error:{title:{font:{size:"16px",weight:"500",color:r.white[500]}},button:{text:"Retry"}}}},pt=(c,t)=>{var i,s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I,E,M,A,R,F,y,B,H,O,z,q,V,j,Z,J,G,ee,te,ie,se,Q,ue,pe,ge,me,be,_e,fe,xe,ve,Ce,ye,ke,we,Se,Ie,Ee,Me,Te,$e,Le,u,D,oe,ne,W,Ae,bt,_t,ft,xt,vt,Ct,yt,kt,wt,St,It,Et,Mt,Tt,$t,Lt,At,Pt,Bt,Dt,Rt,Ft,Ht,Ot,zt,Ut,Nt,qt,Vt,jt,Zt,Jt,Gt,Wt,Kt,Xt,Qt,Yt,ei,ti,ii,si,oi,ni,ri,ai,hi,ci,li,di,ui,pi,gi,mi,bi,_i,fi,xi,vi,Ci,yi,ki,wi,Si,Ii,Ei,Mi,Ti,$i,Li,Ai,Pi,Bi,Di,Ri,Fi,Hi,Oi,zi,Ui,Ni,qi,Vi,ji,Zi,Ji,Gi,Wi,Ki,Xi,Qi,Yi,es,ts,is,ss,os,ns,rs,as,hs,cs,ls,ds,us,ps,gs,ms,bs,_s,fs,xs,vs,Cs,ys,ks,ws,Ss,Is,Es,Ms,Ts,$s,Ls,As,Ps,Bs,Ds,Rs,Fs,Hs,Os,zs,Us,Ns,qs,Vs,js,Zs,Js,Gs,Ws,Ks,Xs,Qs,Ys,eo,to,io,so,oo,no,ro,ao,ho,co,lo,uo,po,go,mo,bo,_o,fo,xo,vo,Co,yo,ko,wo,So,Io,Eo,Mo,To,$o,Lo,Ao,Po,Bo,Do,Ro,Fo,Ho,Oo,zo,Uo,No,qo,Vo,jo,Zo,Jo;const e=c==="light"?le:ze;return{popup:{button:{...(i=e.popup)==null?void 0:i.button,...(s=t.popup)==null?void 0:s.button,icon:{...(n=(o=e.popup)==null?void 0:o.button)==null?void 0:n.icon,...(d=(h=t.popup)==null?void 0:h.button)==null?void 0:d.icon},unreadIndicator:{...(p=(l=e.popup)==null?void 0:l.button)==null?void 0:p.unreadIndicator,...(g=(m=t.popup)==null?void 0:m.button)==null?void 0:g.unreadIndicator}},window:{...(f=e.popup)==null?void 0:f.window,...(_=t.popup)==null?void 0:_.window}},inbox:{header:{...(b=e.inbox)==null?void 0:b.header,...(C=t.inbox)==null?void 0:C.header,filters:{...(w=(k=e.inbox)==null?void 0:k.header)==null?void 0:w.filters,...(I=(S=t.inbox)==null?void 0:S.header)==null?void 0:I.filters,inbox:{...(A=(M=(E=e.inbox)==null?void 0:E.header)==null?void 0:M.filters)==null?void 0:A.inbox,...(y=(F=(R=t.inbox)==null?void 0:R.header)==null?void 0:F.filters)==null?void 0:y.inbox,icon:{...(z=(O=(H=(B=e.inbox)==null?void 0:B.header)==null?void 0:H.filters)==null?void 0:O.inbox)==null?void 0:z.icon,...(Z=(j=(V=(q=t.inbox)==null?void 0:q.header)==null?void 0:V.filters)==null?void 0:j.inbox)==null?void 0:Z.icon}},archive:{...(ee=(G=(J=e.inbox)==null?void 0:J.header)==null?void 0:G.filters)==null?void 0:ee.archive,...(se=(ie=(te=t.inbox)==null?void 0:te.header)==null?void 0:ie.filters)==null?void 0:se.archive,icon:{...(ge=(pe=(ue=(Q=e.inbox)==null?void 0:Q.header)==null?void 0:ue.filters)==null?void 0:pe.archive)==null?void 0:ge.icon,...(fe=(_e=(be=(me=t.inbox)==null?void 0:me.header)==null?void 0:be.filters)==null?void 0:_e.archive)==null?void 0:fe.icon}},unreadIndicator:{...(Ce=(ve=(xe=e.inbox)==null?void 0:xe.header)==null?void 0:ve.filters)==null?void 0:Ce.unreadIndicator,...(we=(ke=(ye=t.inbox)==null?void 0:ye.header)==null?void 0:ke.filters)==null?void 0:we.unreadIndicator}},menus:{...(Ie=(Se=e.inbox)==null?void 0:Se.header)==null?void 0:Ie.menus,...(Me=(Ee=t.inbox)==null?void 0:Ee.header)==null?void 0:Me.menus,popup:{...(Le=($e=(Te=e.inbox)==null?void 0:Te.header)==null?void 0:$e.menus)==null?void 0:Le.popup,...(oe=(D=(u=t.inbox)==null?void 0:u.header)==null?void 0:D.menus)==null?void 0:oe.popup,list:{...(bt=(Ae=(W=(ne=e.inbox)==null?void 0:ne.header)==null?void 0:W.menus)==null?void 0:Ae.popup)==null?void 0:bt.list,...(vt=(xt=(ft=(_t=t.inbox)==null?void 0:_t.header)==null?void 0:ft.menus)==null?void 0:xt.popup)==null?void 0:vt.list,font:{...(St=(wt=(kt=(yt=(Ct=e.inbox)==null?void 0:Ct.header)==null?void 0:yt.menus)==null?void 0:kt.popup)==null?void 0:wt.list)==null?void 0:St.font,...($t=(Tt=(Mt=(Et=(It=t.inbox)==null?void 0:It.header)==null?void 0:Et.menus)==null?void 0:Mt.popup)==null?void 0:Tt.list)==null?void 0:$t.font},selectionIcon:{...(Dt=(Bt=(Pt=(At=(Lt=e.inbox)==null?void 0:Lt.header)==null?void 0:At.menus)==null?void 0:Pt.popup)==null?void 0:Bt.list)==null?void 0:Dt.selectionIcon,...(zt=(Ot=(Ht=(Ft=(Rt=t.inbox)==null?void 0:Rt.header)==null?void 0:Ft.menus)==null?void 0:Ht.popup)==null?void 0:Ot.list)==null?void 0:zt.selectionIcon}}},filters:{...(qt=(Nt=(Ut=e.inbox)==null?void 0:Ut.header)==null?void 0:Nt.menus)==null?void 0:qt.filters,...(Zt=(jt=(Vt=t.inbox)==null?void 0:Vt.header)==null?void 0:jt.menus)==null?void 0:Zt.filters,inbox:{...(Kt=(Wt=(Gt=(Jt=e.inbox)==null?void 0:Jt.header)==null?void 0:Gt.menus)==null?void 0:Wt.filters)==null?void 0:Kt.inbox,...(ei=(Yt=(Qt=(Xt=t.inbox)==null?void 0:Xt.header)==null?void 0:Qt.menus)==null?void 0:Yt.filters)==null?void 0:ei.inbox,icon:{...(ni=(oi=(si=(ii=(ti=e.inbox)==null?void 0:ti.header)==null?void 0:ii.menus)==null?void 0:si.filters)==null?void 0:oi.inbox)==null?void 0:ni.icon,...(li=(ci=(hi=(ai=(ri=t.inbox)==null?void 0:ri.header)==null?void 0:ai.menus)==null?void 0:hi.filters)==null?void 0:ci.inbox)==null?void 0:li.icon}},archive:{...(gi=(pi=(ui=(di=e.inbox)==null?void 0:di.header)==null?void 0:ui.menus)==null?void 0:pi.filters)==null?void 0:gi.archive,...(fi=(_i=(bi=(mi=t.inbox)==null?void 0:mi.header)==null?void 0:bi.menus)==null?void 0:_i.filters)==null?void 0:fi.archive,icon:{...(ki=(yi=(Ci=(vi=(xi=e.inbox)==null?void 0:xi.header)==null?void 0:vi.menus)==null?void 0:Ci.filters)==null?void 0:yi.archive)==null?void 0:ki.icon,...(Mi=(Ei=(Ii=(Si=(wi=t.inbox)==null?void 0:wi.header)==null?void 0:Si.menus)==null?void 0:Ii.filters)==null?void 0:Ei.archive)==null?void 0:Mi.icon}}},actions:{...(Li=($i=(Ti=e.inbox)==null?void 0:Ti.header)==null?void 0:$i.menus)==null?void 0:Li.actions,...(Bi=(Pi=(Ai=t.inbox)==null?void 0:Ai.header)==null?void 0:Pi.menus)==null?void 0:Bi.actions,markAllRead:{...(Hi=(Fi=(Ri=(Di=e.inbox)==null?void 0:Di.header)==null?void 0:Ri.menus)==null?void 0:Fi.actions)==null?void 0:Hi.markAllRead,...(Ni=(Ui=(zi=(Oi=t.inbox)==null?void 0:Oi.header)==null?void 0:zi.menus)==null?void 0:Ui.actions)==null?void 0:Ni.markAllRead,icon:{...(Ji=(Zi=(ji=(Vi=(qi=e.inbox)==null?void 0:qi.header)==null?void 0:Vi.menus)==null?void 0:ji.actions)==null?void 0:Zi.markAllRead)==null?void 0:Ji.icon,...(Qi=(Xi=(Ki=(Wi=(Gi=t.inbox)==null?void 0:Gi.header)==null?void 0:Wi.menus)==null?void 0:Ki.actions)==null?void 0:Xi.markAllRead)==null?void 0:Qi.icon}},archiveAll:{...(is=(ts=(es=(Yi=e.inbox)==null?void 0:Yi.header)==null?void 0:es.menus)==null?void 0:ts.actions)==null?void 0:is.archiveAll,...(rs=(ns=(os=(ss=t.inbox)==null?void 0:ss.header)==null?void 0:os.menus)==null?void 0:ns.actions)==null?void 0:rs.archiveAll,icon:{...(ds=(ls=(cs=(hs=(as=e.inbox)==null?void 0:as.header)==null?void 0:hs.menus)==null?void 0:cs.actions)==null?void 0:ls.archiveAll)==null?void 0:ds.icon,...(bs=(ms=(gs=(ps=(us=t.inbox)==null?void 0:us.header)==null?void 0:ps.menus)==null?void 0:gs.actions)==null?void 0:ms.archiveAll)==null?void 0:bs.icon}},archiveRead:{...(vs=(xs=(fs=(_s=e.inbox)==null?void 0:_s.header)==null?void 0:fs.menus)==null?void 0:xs.actions)==null?void 0:vs.archiveRead,...(ws=(ks=(ys=(Cs=t.inbox)==null?void 0:Cs.header)==null?void 0:ys.menus)==null?void 0:ks.actions)==null?void 0:ws.archiveRead,icon:{...(Ts=(Ms=(Es=(Is=(Ss=e.inbox)==null?void 0:Ss.header)==null?void 0:Is.menus)==null?void 0:Es.actions)==null?void 0:Ms.archiveRead)==null?void 0:Ts.icon,...(Bs=(Ps=(As=(Ls=($s=t.inbox)==null?void 0:$s.header)==null?void 0:Ls.menus)==null?void 0:As.actions)==null?void 0:Ps.archiveRead)==null?void 0:Bs.icon}}}}},list:{...(Ds=e.inbox)==null?void 0:Ds.list,...(Rs=t.inbox)==null?void 0:Rs.list,item:{...(Hs=(Fs=e.inbox)==null?void 0:Fs.list)==null?void 0:Hs.item,...(zs=(Os=t.inbox)==null?void 0:Os.list)==null?void 0:zs.item,menu:{...(qs=(Ns=(Us=e.inbox)==null?void 0:Us.list)==null?void 0:Ns.item)==null?void 0:qs.menu,...(Zs=(js=(Vs=t.inbox)==null?void 0:Vs.list)==null?void 0:js.item)==null?void 0:Zs.menu,item:{...(Ks=(Ws=(Gs=(Js=e.inbox)==null?void 0:Js.list)==null?void 0:Gs.item)==null?void 0:Ws.menu)==null?void 0:Ks.item,...(eo=(Ys=(Qs=(Xs=t.inbox)==null?void 0:Xs.list)==null?void 0:Qs.item)==null?void 0:Ys.menu)==null?void 0:eo.item,read:{...(no=(oo=(so=(io=(to=e.inbox)==null?void 0:to.list)==null?void 0:io.item)==null?void 0:so.menu)==null?void 0:oo.item)==null?void 0:no.read,...(lo=(co=(ho=(ao=(ro=t.inbox)==null?void 0:ro.list)==null?void 0:ao.item)==null?void 0:ho.menu)==null?void 0:co.item)==null?void 0:lo.read},unread:{...(bo=(mo=(go=(po=(uo=e.inbox)==null?void 0:uo.list)==null?void 0:po.item)==null?void 0:go.menu)==null?void 0:mo.item)==null?void 0:bo.unread,...(Co=(vo=(xo=(fo=(_o=t.inbox)==null?void 0:_o.list)==null?void 0:fo.item)==null?void 0:xo.menu)==null?void 0:vo.item)==null?void 0:Co.unread},archive:{...(Io=(So=(wo=(ko=(yo=e.inbox)==null?void 0:yo.list)==null?void 0:ko.item)==null?void 0:wo.menu)==null?void 0:So.item)==null?void 0:Io.archive,...(Lo=($o=(To=(Mo=(Eo=t.inbox)==null?void 0:Eo.list)==null?void 0:Mo.item)==null?void 0:To.menu)==null?void 0:$o.item)==null?void 0:Lo.archive},unarchive:{...(Ro=(Do=(Bo=(Po=(Ao=e.inbox)==null?void 0:Ao.list)==null?void 0:Po.item)==null?void 0:Bo.menu)==null?void 0:Do.item)==null?void 0:Ro.unarchive,...(Uo=(zo=(Oo=(Ho=(Fo=t.inbox)==null?void 0:Fo.list)==null?void 0:Ho.item)==null?void 0:Oo.menu)==null?void 0:zo.item)==null?void 0:Uo.unarchive}}}}},loading:{...(No=e.inbox)==null?void 0:No.loading,...(qo=t.inbox)==null?void 0:qo.loading},empty:{...(Vo=e.inbox)==null?void 0:Vo.empty,...(jo=t.inbox)==null?void 0:jo.empty},error:{...(Zo=e.inbox)==null?void 0:Zo.error,...(Jo=t.inbox)==null?void 0:Jo.error}}}};class Ke{constructor(t){a(this,"THEME_CHANGE_EVENT","courier_inbox_theme_change");a(this,"_theme");a(this,"_lightTheme",le);a(this,"_darkTheme",ze);a(this,"_target");a(this,"_subscriptions",[]);a(this,"_userMode");a(this,"_systemMode");a(this,"_systemThemeCleanup");this._theme=t,this._target=new EventTarget,this._userMode="system",this._systemMode=st(),this.setLightTheme(le),this.setDarkTheme(ze),this._systemThemeCleanup=ot(e=>{this._systemMode=e,this.updateTheme()})}setLightTheme(t){this._lightTheme=t,this._systemMode==="light"&&this.updateTheme()}setDarkTheme(t){this._darkTheme=t,this._systemMode==="dark"&&this.updateTheme()}get currentSystemTheme(){return this._systemMode}getTheme(){return this._theme}updateTheme(){const t=this._userMode==="system"?this._systemMode:this._userMode,e=t==="light"?this._lightTheme:this._darkTheme,i=pt(t,e);this.setTheme(i)}setTheme(t){t!==this._theme&&(this._theme=t,this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT,{detail:{theme:t}})))}setMode(t){this._userMode=t,this.updateTheme()}subscribe(t){const e=new AbortController;this._target.addEventListener(this.THEME_CHANGE_EVENT,s=>{t(s.detail.theme)},{signal:e.signal});const i={manager:this,unsubscribe:()=>{e.abort();const s=this._subscriptions.indexOf(i);s>-1&&this._subscriptions.splice(s,1)}};return this._subscriptions.push(i),i}cleanup(){this._systemThemeCleanup&&this._systemThemeCleanup(),this._subscriptions.forEach(t=>t.unsubscribe()),this._subscriptions=[]}}class Xe extends HTMLElement{constructor(e){var i;super();a(this,"_currentFeed","inbox");a(this,"_themeManager");a(this,"_shadow");a(this,"_list");a(this,"_datastoreListener");a(this,"_authListener");a(this,"_style");a(this,"_header");a(this,"_headerFactory");a(this,"_onMessageClick");a(this,"_onMessageActionClick");a(this,"_onMessageLongPress");a(this,"_defaultProps",{title:"Inbox",icon:x.inbox,feedType:this._currentFeed,height:"768px"});this._shadow=this.attachShadow({mode:"open"}),this._themeManager=e??new Ke(le),this._header=new Ge({themeManager:this._themeManager,onFeedTypeChange:s=>{this.setFeedType(s)}}),this._header.build(void 0),this._shadow.appendChild(this._header),this._list=new lt({themeManager:this._themeManager,onRefresh:()=>{this.refresh()},onPaginationTrigger:async s=>{var o,n;try{await P.shared.fetchNextPageOfMessages({feedType:s})}catch(h){(n=(o=v.shared.client)==null?void 0:o.options.logger)==null||n.error("Failed to fetch next page of messages:",h)}},onMessageClick:(s,o)=>{var n;P.shared.clickMessage({message:s}),this.dispatchEvent(new CustomEvent("message-click",{detail:{message:s,index:o},bubbles:!0,composed:!0})),(n=this._onMessageClick)==null||n.call(this,{message:s,index:o})},onMessageActionClick:(s,o,n)=>{var h;this.dispatchEvent(new CustomEvent("message-action-click",{detail:{message:s,action:o,index:n},bubbles:!0,composed:!0})),(h=this._onMessageActionClick)==null||h.call(this,{message:s,action:o,index:n})},onMessageLongPress:(s,o)=>{var n;this.dispatchEvent(new CustomEvent("message-long-press",{detail:{message:s,index:o},bubbles:!0,composed:!0})),(n=this._onMessageLongPress)==null||n.call(this,{message:s,index:o})}}),this._style=document.createElement("style"),this.refreshTheme(),this._shadow.appendChild(this._style),this._shadow.appendChild(this._list),this._datastoreListener=new We({onError:s=>{this._list.setError(s)},onDataSetChange:(s,o)=>{this._currentFeed===o&&(this._list.setDataSet(s),this.updateHeader())},onPageAdded:(s,o)=>{this._currentFeed===o&&(this._list.addPage(s),this.updateHeader())},onMessageAdd:(s,o,n)=>{this._currentFeed===n&&(this._list.addMessage(s,o),this.updateHeader())},onMessageRemove:(s,o,n)=>{this._currentFeed===n&&(this._list.removeMessage(o),this.updateHeader())},onMessageUpdate:(s,o,n)=>{this._currentFeed===n&&(this._list.updateMessage(s,o),this.updateHeader())},onUnreadCountChange:s=>{this.updateHeader()}}),P.shared.addDataStoreListener(this._datastoreListener),this._themeManager.subscribe(s=>{this.refreshTheme()}),this._authListener=v.shared.addAuthenticationListener(s=>{this.refresh()}),(i=v.shared.client)!=null&&i.options.userId&&this.refresh()}get theme(){return this._themeManager.getTheme()}setLightTheme(e){this._themeManager.setLightTheme(e)}setDarkTheme(e){this._themeManager.setDarkTheme(e)}static get observedAttributes(){return["height","light-theme","dark-theme","mode","message-click","message-action-click","message-long-press"]}refreshTheme(){this._style.textContent=this.getStyles()}getStyles(){return`
698
- :host {
699
- display: flex;
700
- flex-direction: column;
701
- width: 100%;
702
- height: ${this._defaultProps.height};
703
- }
704
-
705
- courier-inbox-header {
706
- flex-shrink: 0;
707
- }
708
-
709
- courier-inbox-list {
710
- flex: 1;
711
- overflow-y: auto;
712
- overflow-x: hidden;
713
- }
714
- `}setHeader(e){this._headerFactory=e,this.updateHeader()}removeHeader(){this._headerFactory=null,this.updateHeader()}setLoadingState(e){this._list.setLoadingStateFactory(e)}setEmptyState(e){this._list.setEmptyStateFactory(e)}setErrorState(e){this._list.setErrorStateFactory(e)}setListItem(e){this._list.setListItemFactory(e)}setPaginationItem(e){this._list.setPaginationItemFactory(e)}onMessageClick(e){this._onMessageClick=e}onMessageActionClick(e){this._onMessageActionClick=e}onMessageLongPress(e){this._onMessageLongPress=e}setFeedType(e){this._currentFeed=e,this._list.setFeedType(e),this.updateHeader(),this.load({feedType:this._currentFeed,canUseCache:!0})}updateHeader(){const e={feedType:this._currentFeed,unreadCount:P.shared.unreadCount,messageCount:this._list.messages.length};switch(this._headerFactory){case void 0:this._header.render(e);break;case null:this._header.build(null);break;default:const i=this._headerFactory(e);this._header.build(i);break}}async load(e){await P.shared.load(e)}refresh(){this.load({feedType:this._currentFeed,canUseCache:!1})}connectedCallback(){this.refresh()}disconnectedCallback(){var e,i;this._themeManager.cleanup(),(e=this._datastoreListener)==null||e.remove(),(i=this._authListener)==null||i.remove()}attributeChangedCallback(e,i,s){var o,n,h,d,l,p;if(i!==s)switch(e){case"height":const m=s||this._defaultProps.height;this.style.height=m;break;case"message-click":if(s)try{this._onMessageClick=new Function("props",s)}catch(g){(n=(o=v.shared.client)==null?void 0:o.options.logger)==null||n.error("Failed to parse message-click handler:",g)}else this._onMessageClick=void 0;break;case"message-action-click":if(s)try{this._onMessageActionClick=new Function("props",s)}catch(g){(d=(h=v.shared.client)==null?void 0:h.options.logger)==null||d.error("Failed to parse message-action-click handler:",g)}else this._onMessageActionClick=void 0;break;case"message-long-press":if(s)try{this._onMessageLongPress=new Function("props",s)}catch(g){(p=(l=v.shared.client)==null?void 0:l.options.logger)==null||p.error("Failed to parse message-long-press handler:",g)}else this._onMessageLongPress=void 0;break;case"light-theme":s&&this.setLightTheme(JSON.parse(s));break;case"dark-theme":s&&this.setDarkTheme(JSON.parse(s));break;case"mode":this._themeManager.setMode(s);break}}}customElements.get("courier-inbox")||customElements.define("courier-inbox",Xe);class gt extends Fe{constructor(e){super();a(this,"_themeSubscription");a(this,"_container");a(this,"_triggerButton");a(this,"_unreadCountBadge");this._themeSubscription=e.subscribe(i=>{this.updateTheme()})}defaultElement(){this._container=document.createElement("div"),this._container.className="menu-button-container",this._triggerButton=new de(x.inbox),this._unreadCountBadge=new Je({themeBus:this._themeSubscription.manager,location:"button"}),this._unreadCountBadge.id="unread-badge";const e=document.createElement("style");return e.textContent=this.getStyles(),this._container.appendChild(e),this._container.appendChild(this._triggerButton),this._container.appendChild(this._unreadCountBadge),this.shadow.appendChild(this._container),this.updateTheme(),this._container}getStyles(){return`
715
- .menu-button-container {
716
- position: relative;
717
- display: inline-block;
718
- }
719
-
720
- #unread-badge {
721
- position: absolute;
722
- top: -8px;
723
- left: 50%;
724
- pointer-events: none;
725
- }
726
- `}onUnreadCountChange(e){var i;(i=this._unreadCountBadge)==null||i.setCount(e),this.updateTheme()}updateTheme(){var i,s,o,n,h,d,l,p,m,g,f,_,b,C,k,w,S,I;const e=this._themeSubscription.manager.getTheme();(n=this._triggerButton)==null||n.updateIconColor(((o=(s=(i=e==null?void 0:e.popup)==null?void 0:i.button)==null?void 0:s.icon)==null?void 0:o.color)??r.black[500]),(p=this._triggerButton)==null||p.updateIconSVG(((l=(d=(h=e==null?void 0:e.popup)==null?void 0:h.button)==null?void 0:d.icon)==null?void 0:l.svg)??x.inbox),(f=this._triggerButton)==null||f.updateBackgroundColor(((g=(m=e==null?void 0:e.popup)==null?void 0:m.button)==null?void 0:g.backgroundColor)??"transparent"),(C=this._triggerButton)==null||C.updateHoverBackgroundColor(((b=(_=e==null?void 0:e.popup)==null?void 0:_.button)==null?void 0:b.hoverBackgroundColor)??r.black[50010]),(S=this._triggerButton)==null||S.updateActiveBackgroundColor(((w=(k=e==null?void 0:e.popup)==null?void 0:k.button)==null?void 0:w.activeBackgroundColor)??r.black[50020]),(I=this._unreadCountBadge)==null||I.refreshTheme("button")}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-menu-button")||customElements.define("courier-inbox-menu-button",gt);class mt extends HTMLElement{constructor(){super();a(this,"_width","440px");a(this,"_height","440px");a(this,"_popupAlignment","top-right");a(this,"_top","40px");a(this,"_right","0");a(this,"_bottom","40px");a(this,"_left","0");a(this,"_themeManager",new Ke(le));a(this,"_triggerButton");a(this,"_popup");a(this,"_inbox");a(this,"_style");a(this,"_datastoreListener");a(this,"_popupMenuButtonFactory");const e=this.attachShadow({mode:"open"});this._triggerButton=new gt(this._themeManager),this._triggerButton.build(void 0),this._popup=document.createElement("div"),this._popup.className="popup",this._inbox=new Xe(this._themeManager),this._inbox.setAttribute("height","100%"),this._style=document.createElement("style"),this.refreshTheme(),e.appendChild(this._style),e.appendChild(this._triggerButton),e.appendChild(this._popup),this._popup.appendChild(this._inbox),this._triggerButton.addEventListener("click",this.togglePopup.bind(this)),document.addEventListener("click",this.handleOutsideClick.bind(this)),this.updatePopupPosition(),this._datastoreListener=new We(this),P.shared.addDataStoreListener(this._datastoreListener),this._themeManager.subscribe(i=>{this.refreshTheme()})}get theme(){return this._themeManager.getTheme()}setLightTheme(e){this._themeManager.setLightTheme(e)}setDarkTheme(e){this._themeManager.setDarkTheme(e)}static get observedAttributes(){return["popup-alignment","message-click","message-action-click","message-long-press","popup-width","popup-height","top","right","bottom","left","light-theme","dark-theme","mode"]}refreshTheme(){this._style.textContent=this.getStyles()}getStyles(){var e,i,s,o,n,h,d,l;return`
727
- :host {
728
- display: inline-block;
729
- position: relative;
730
- }
731
-
732
- .menu-button-container {
733
- position: relative;
734
- display: inline-block;
735
- }
736
-
737
- .popup {
738
- display: none;
739
- position: absolute;
740
- background: ${((i=(e=this.theme.popup)==null?void 0:e.window)==null?void 0:i.backgroundColor)??"red"};
741
- border-radius: ${((o=(s=this.theme.popup)==null?void 0:s.window)==null?void 0:o.borderRadius)??"8px"};
742
- border: ${((h=(n=this.theme.popup)==null?void 0:n.window)==null?void 0:h.border)??"1px solid red"};
743
- box-shadow: ${((l=(d=this.theme.popup)==null?void 0:d.window)==null?void 0:l.shadow)??"0px 8px 16px -4px red"};
744
- z-index: 1000;
745
- width: ${this._width};
746
- height: ${this._height};
747
- overflow: hidden;
748
- transform: translateZ(0);
749
- will-change: transform;
750
- }
751
-
752
- #unread-badge {
753
- position: absolute;
754
- top: -8px;
755
- left: 50%;
756
- pointer-events: none;
757
- }
758
-
759
- courier-inbox {
760
- height: 100%;
761
- }
762
- `}attributeChangedCallback(e,i,s){switch(e){case"popup-alignment":this.isValidPosition(s)&&(this._popupAlignment=s,this.updatePopupPosition());break;case"popup-width":this._width=s,this.setSize(s,this._height);break;case"popup-height":this._height=s,this.setSize(this._width,s);break;case"top":this._top=s,this.updatePopupPosition();break;case"right":this._right=s,this.updatePopupPosition();break;case"bottom":this._bottom=s,this.updatePopupPosition();break;case"left":this._left=s,this.updatePopupPosition();break;case"light-theme":s&&this.setLightTheme(JSON.parse(s));break;case"dark-theme":s&&this.setDarkTheme(JSON.parse(s));break;case"mode":this._themeManager.setMode(s);break}}onUnreadCountChange(e){this.render()}onMessageClick(e){this._inbox.onMessageClick(e)}onMessageActionClick(e){this._inbox.onMessageActionClick(e)}onMessageLongPress(e){this._inbox.onMessageLongPress(e)}isValidPosition(e){return["top-right","top-left","top-center","bottom-right","bottom-left","bottom-center","center-right","center-left","center-center"].includes(e)}updatePopupPosition(){switch(this._popup.style.top="",this._popup.style.bottom="",this._popup.style.left="",this._popup.style.right="",this._popup.style.margin="",this._popup.style.transform="",this._popupAlignment){case"top-right":this._popup.style.top=this._top,this._popup.style.right=this._right;break;case"top-left":this._popup.style.top=this._top,this._popup.style.left=this._left;break;case"top-center":this._popup.style.top=this._top,this._popup.style.left="50%",this._popup.style.transform="translateX(-50%)";break;case"bottom-right":this._popup.style.bottom=this._bottom,this._popup.style.right=this._right;break;case"bottom-left":this._popup.style.bottom=this._bottom,this._popup.style.left=this._left;break;case"bottom-center":this._popup.style.bottom=this._bottom,this._popup.style.left="50%",this._popup.style.transform="translateX(-50%)";break;case"center-right":this._popup.style.top="50%",this._popup.style.right=this._right,this._popup.style.transform="translateY(-50%)";break;case"center-left":this._popup.style.top="50%",this._popup.style.left=this._left,this._popup.style.transform="translateY(-50%)";break;case"center-center":this._popup.style.top="50%",this._popup.style.left="50%",this._popup.style.transform="translate(-50%, -50%)";break}}togglePopup(e){e.stopPropagation(),this._popup.style.display==="block"?this._popup.style.display="none":this._popup.style.display="block"}handleOutsideClick(e){this.contains(e.target)||(this._popup.style.display="none")}setContent(e){this._inbox.innerHTML="",this._inbox.appendChild(e)}setSize(e,i){this._width=e,this._height=i,this._popup.style.width=e,this._popup.style.height=i}setPosition(e){var i,s;this.isValidPosition(e)?(this._popupAlignment=e,this.updatePopupPosition()):(s=(i=v.shared.client)==null?void 0:i.options.logger)==null||s.error(`Invalid position: ${e}`)}setFeedType(e){this._inbox.setFeedType(e)}setPopupHeader(e){this._inbox.setHeader(e)}removePopupHeader(){this._inbox.removeHeader()}setPopupLoadingState(e){this._inbox.setLoadingState(e)}setPopupEmptyState(e){this._inbox.setEmptyState(e)}setPopupErrorState(e){this._inbox.setErrorState(e)}setPopupListItem(e){this._inbox.setListItem(e)}setPopupPaginationItem(e){this._inbox.setPaginationItem(e)}setPopupMenuButton(e){this._popupMenuButtonFactory=e,this.render()}render(){const e=P.shared.unreadCount;switch(this._popupMenuButtonFactory){case void 0:case null:this._triggerButton.build(void 0),this._triggerButton.onUnreadCountChange(e);break;default:const i=this._popupMenuButtonFactory({unreadCount:e});this._triggerButton.build(i);break}}disconnectedCallback(){var e;(e=this._datastoreListener)==null||e.remove(),this._themeManager.cleanup()}}customElements.get("courier-inbox-menu")||customElements.define("courier-inbox-menu",mt);class bn{onDataSetChange(t,e){}onPageAdded(t,e){}onUnreadCountChange(t){}onMessageAdd(t,e,i){}onMessageRemove(t,e,i){}onMessageUpdate(t,e,i){}onError(t){}}T.CourierInbox=Xe,T.CourierInboxDataStoreListener=We,T.CourierInboxDatastore=P,T.CourierInboxDatastoreEvents=bn,T.CourierInboxHeader=Ge,T.CourierInboxMenu=mt,T.CourierInboxThemeManager=Ke,T.CourierListItem=Ve,T.archiveMessage=gn,T.clickMessage=pn,T.defaultDarkTheme=ze,T.defaultLightTheme=le,T.getMessageTime=rt,T.markAsRead=dn,T.markAsUnread=un,T.mergeTheme=pt,T.openMessage=mn,Object.defineProperty(T,Symbol.toStringTag,{value:"Module"})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@trycourier/courier-js")):"function"==typeof define&&define.amd?define(["exports","@trycourier/courier-js"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CourierUIInbox={},e.CourierJS)}(this,(function(e,t){"use strict";var n=Object.defineProperty,i=(e,t,i)=>((e,t,i)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i),o=Object.defineProperty,s=(e,t,n)=>((e,t,n)=>t in e?o(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);const l={500:"#171717",50010:"#1717171A",50020:"#17171733"},a={200:"#F5F5F5",400:"#3A3A3A",500:"#E5E5E5",600:"#737373"},r={500:"#FFFFFF",50010:"#FFFFFF1A",50020:"#FFFFFF33"},d={400:"#60A5FA",500:"#2563EB"},h={light:{colors:{primary:l[500],secondary:r[500],border:a[500],link:d[500],icon:l[500]},button:{cornerRadius:"4px"}},dark:{colors:{primary:r[500],secondary:l[500],border:a[400],link:d[400],icon:r[500]},button:{cornerRadius:"4px"}}},u=()=>"undefined"==typeof window?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",c=e=>{if("undefined"==typeof window)return()=>{};const t=window.matchMedia("(prefers-color-scheme: dark)"),n=t=>{e(t.matches?"dark":"light")};return t.addEventListener("change",n),()=>{t.removeEventListener("change",n)}};class v extends HTMLElement{constructor(){super(),s(this,"_currentSystemTheme"),s(this,"_systemThemeCleanup"),this._currentSystemTheme=u(),this._systemThemeCleanup=c((e=>{this._currentSystemTheme=e,this.onSystemThemeChange(e)}))}get currentSystemTheme(){return this._currentSystemTheme}disconnectedCallback(){this._systemThemeCleanup&&this._systemThemeCleanup()}onSystemThemeChange(e){}}const p={borderRadius:"4px",fontSize:"14px"},g=e=>({...p,backgroundColor:h[e].colors.secondary,textColor:h[e].colors.primary,fontWeight:"500",border:`1px solid ${h[e].colors.border}`,shadow:"light"===e?"0px 1px 2px 0px rgba(0, 0, 0, 0.06)":"0px 1px 2px 0px rgba(255, 255, 255, 0.1)"});class m extends v{constructor(e){super(),s(this,"_button"),s(this,"_style");const t=this.attachShadow({mode:"open"});this._button=document.createElement("button"),this._button.setAttribute("part","button"),this._style=document.createElement("style"),this._style.textContent=this.getStyles(e),t.appendChild(this._style),t.appendChild(this._button),this.updateButton(e),this._button.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),e.onClick&&e.onClick()}))}getStyles(e){return`\n :host {\n display: inline-block;\n }\n\n button {\n border: none;\n border-radius: ${e.borderRadius??(()=>g(this.currentSystemTheme).borderRadius)()};\n font-weight: ${e.fontWeight??(()=>g(this.currentSystemTheme).fontWeight)()};\n font-family: ${e.fontFamily??"inherit"};\n font-size: ${e.fontSize??(()=>g(this.currentSystemTheme).fontSize)()};\n padding: 6px 10px;\n cursor: pointer;\n width: 100%;\n height: 100%;\n background-color: ${e.backgroundColor??(()=>g(this.currentSystemTheme).backgroundColor)()};\n color: ${e.textColor??(()=>g(this.currentSystemTheme).textColor)()};\n border: ${e.border??(()=>g(this.currentSystemTheme).border)()};\n box-shadow: ${e.shadow??(()=>g(this.currentSystemTheme).shadow)()};\n touch-action: manipulation;\n }\n\n button:hover {\n ${e.hoverBackgroundColor?`background-color: ${e.hoverBackgroundColor};`:"filter: brightness(0.9);"}\n }\n\n button:active {\n ${e.activeBackgroundColor?`background-color: ${e.activeBackgroundColor};`:"filter: brightness(0.8);"}\n }\n\n button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `}updateButton(e){e.text&&(this._button.textContent=e.text),this._style.textContent=this.getStyles(e)}}customElements.get("courier-button")||customElements.define("courier-button",m);const b={inbox:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M5.5 14.5V17C5.5 17.2812 5.71875 17.5 6 17.5H18C18.25 17.5 18.5 17.2812 18.5 17V14.5H15.9375L15.2812 15.8125C15.0938 16.25 14.6562 16.5 14.1875 16.5H9.78125C9.3125 16.5 8.875 16.25 8.6875 15.8125L8.03125 14.5H5.5ZM18.1875 13L16.6562 6.90625C16.5938 6.65625 16.4062 6.5 16.1875 6.5H7.8125C7.5625 6.5 7.375 6.65625 7.3125 6.90625L5.78125 13H8.1875C8.65625 13 9.09375 13.2812 9.3125 13.7188L9.9375 15H14.0312L14.6875 13.7188C14.875 13.2812 15.3125 13 15.7812 13H18.1875ZM4 14.25C4 14.0938 4 13.9375 4.03125 13.7812L5.84375 6.53125C6.09375 5.625 6.875 5 7.8125 5H16.1875C17.0938 5 17.9062 5.625 18.125 6.53125L19.9375 13.7812C19.9688 13.9375 20 14.0938 20 14.25V17C20 18.125 19.0938 19 18 19H6C4.875 19 4 18.125 4 17V14.25Z" fill="currentColor"/>\n</svg>',archive:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M5.5 6.5V8H18.5V6.5H5.5ZM5 5H19C19.5312 5 20 5.46875 20 6V8.5C20 9.0625 19.5312 9.5 19 9.5H5C4.4375 9.5 4 9.0625 4 8.5V6C4 5.46875 4.4375 5 5 5ZM9 11.75C9 11.3438 9.3125 11 9.75 11H14.25C14.6562 11 15 11.3438 15 11.75C15 12.1875 14.6562 12.5 14.25 12.5H9.75C9.3125 12.5 9 12.1875 9 11.75ZM5 17V10.5H6.5V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V10.5H19V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17Z" fill="currentColor"/>\n</svg>',check:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M18.793 7.33203C19.0742 7.64453 19.0742 8.11328 18.793 8.39453L10.543 16.6445C10.2305 16.957 9.76172 16.957 9.48047 16.6445L5.23047 12.3945C4.91797 12.1133 4.91797 11.6445 5.23047 11.3633C5.51172 11.0508 5.98047 11.0508 6.26172 11.3633L9.98047 15.082L17.7305 7.33203C18.0117 7.05078 18.4805 7.05078 18.7617 7.33203H18.793Z" fill="currentColor"/>\n</svg>',filter:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M5 7C5 6.59375 5.3125 6.25 5.75 6.25H18.25C18.6562 6.25 19 6.59375 19 7C19 7.4375 18.6562 7.75 18.25 7.75H5.75C5.3125 7.75 5 7.4375 5 7ZM7 12C7 11.5938 7.3125 11.25 7.75 11.25H16.25C16.6562 11.25 17 11.5938 17 12C17 12.4375 16.6562 12.75 16.25 12.75H7.75C7.3125 12.75 7 12.4375 7 12ZM14 17C14 17.4375 13.6562 17.75 13.25 17.75H10.75C10.3125 17.75 10 17.4375 10 17C10 16.5938 10.3125 16.25 10.75 16.25H13.25C13.6562 16.25 14 16.5938 14 17Z" fill="currentColor"/>\n</svg>',overflow:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M18.5117 11.9883C18.5117 12.5508 18.1992 13.0195 17.7617 13.3008C17.293 13.582 16.6992 13.582 16.2617 13.3008C15.793 13.0195 15.5117 12.5508 15.5117 11.9883C15.5117 11.457 15.793 10.9883 16.2617 10.707C16.6992 10.4258 17.293 10.4258 17.7617 10.707C18.1992 10.9883 18.5117 11.457 18.5117 11.9883ZM13.5117 11.9883C13.5117 12.5508 13.1992 13.0195 12.7617 13.3008C12.293 13.582 11.6992 13.582 11.2617 13.3008C10.793 13.0195 10.5117 12.5508 10.5117 11.9883C10.5117 11.457 10.793 10.9883 11.2617 10.707C11.6992 10.4258 12.293 10.4258 12.7617 10.707C13.1992 10.9883 13.5117 11.457 13.5117 11.9883ZM7.01172 13.4883C6.44922 13.4883 5.98047 13.207 5.69922 12.7383C5.41797 12.3008 5.41797 11.707 5.69922 11.2383C5.98047 10.8008 6.44922 10.4883 7.01172 10.4883C7.54297 10.4883 8.01172 10.8008 8.29297 11.2383C8.57422 11.707 8.57422 12.3008 8.29297 12.7383C8.01172 13.207 7.54297 13.4883 7.01172 13.4883Z" fill="currentColor"/>\n</svg>',read:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M7 6.5C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5H7ZM5 7C5 5.90625 5.875 5 7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7ZM15.5312 10.5312L11.5312 14.5312C11.2188 14.8438 10.75 14.8438 10.4688 14.5312L8.46875 12.5312C8.15625 12.25 8.15625 11.7812 8.46875 11.5C8.75 11.1875 9.21875 11.1875 9.53125 11.5L11 12.9688L14.4688 9.46875C14.75 9.1875 15.2188 9.1875 15.5 9.46875C15.8125 9.78125 15.8125 10.25 15.5 10.5312H15.5312Z" fill="currentColor"/>\n</svg>',archiveRead:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M7.5 6.5V15.25H16.5V6.5H7.5ZM6 15.25V6.5C6 5.6875 6.65625 5 7.5 5H16.5C17.3125 5 18 5.6875 18 6.5V15.25C18.4062 15.25 18.75 15.5938 18.75 16C18.75 16.4375 18.4062 16.75 18 16.75H6C5.5625 16.75 5.25 16.4375 5.25 16C5.25 15.5938 5.5625 15.25 6 15.25ZM5 13V14.5H4.5V17.5H19.5V14.5H19V13H19.5C20.3125 13 21 13.6875 21 14.5V17.5C21 18.3438 20.3125 19 19.5 19H4.5C3.65625 19 3 18.3438 3 17.5V14.5C3 13.6875 3.65625 13 4.5 13H5ZM15.0312 9.625L11.6875 12.9688C11.5312 13.0938 11.3438 13.1875 11.1562 13.1875C10.9375 13.1875 10.75 13.0938 10.625 12.9688L8.96875 11.2812C8.65625 11 8.65625 10.5312 8.96875 10.25C9.25 9.9375 9.71875 9.9375 10 10.25L11.1562 11.375L13.9688 8.5625C14.25 8.28125 14.7188 8.28125 15 8.5625C15.3125 8.875 15.3125 9.34375 15 9.625H15.0312Z" fill="currentColor"/>\n</svg>',unread:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M17 6.5H7C6.71875 6.5 6.5 6.75 6.5 7V17C6.5 17.2812 6.71875 17.5 7 17.5H17C17.25 17.5 17.5 17.2812 17.5 17V7C17.5 6.75 17.25 6.5 17 6.5ZM7 5H17C18.0938 5 19 5.90625 19 7V17C19 18.125 18.0938 19 17 19H7C5.875 19 5 18.125 5 17V7C5 5.90625 5.875 5 7 5Z" fill="currentColor"/>\n</svg>',unarchive:'<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M5.5 11C5.0625 11 4.75 10.6875 4.75 10.25V5.75C4.75 5.34375 5.0625 5 5.5 5C5.90625 5 6.25 5.34375 6.25 5.75V8.28125L6.875 7.53125C8.15625 6 10.0625 5 12.25 5C16.0938 5 19.25 8.15625 19.25 12C19.25 15.875 16.0938 19 12.25 19C10.6562 19 9.21875 18.5 8.03125 17.625C7.71875 17.375 7.625 16.9062 7.875 16.5625C8.125 16.2188 8.59375 16.1562 8.9375 16.4062C9.84375 17.0938 11 17.5 12.25 17.5C15.2812 17.5 17.75 15.0625 17.75 12C17.75 8.96875 15.2812 6.5 12.25 6.5C10.5312 6.5 9.03125 7.28125 8 8.5L7.15625 9.5H10C10.4062 9.5 10.75 9.84375 10.75 10.25C10.75 10.6875 10.4062 11 10 11H5.5Z" fill="currentColor"/>\n</svg>'};class _ extends HTMLElement{constructor(e,t){super(),s(this,"_color"),s(this,"_svg"),s(this,"_iconContainer"),s(this,"_style"),this._color=e??l[500],this._svg=t;const n=this.attachShadow({mode:"open"});this._iconContainer=document.createElement("div"),n.appendChild(this._iconContainer),this._style=document.createElement("style"),this._style.textContent=this.getStyles(this._color),n.appendChild(this._style),this.refresh()}getStyles(e){return`\n :host {\n display: inline-block;\n line-height: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n svg {\n width: 24px;\n height: 24px;\n color: ${e};\n }\n `}refresh(){this._svg&&(this._iconContainer.innerHTML=this._svg),this._color&&(this._style.textContent=this.getStyles(this._color))}updateColor(e){this._color=e,this.refresh()}updateSVG(e){this._svg=e,this.refresh()}}customElements.get("courier-icon")||customElements.define("courier-icon",_);class x extends HTMLElement{constructor(){super(),s(this,"link");const e=this.attachShadow({mode:"open"});this.link=document.createElement("a"),this.link.setAttribute("part","link");const t=document.createElement("style");t.textContent=`\n :host {\n display: inline-block;\n }\n\n a {\n text-decoration: none;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n transition: all 0.2s ease;\n font-family: var(--courier-link-font-family, inherit);\n font-size: var(--courier-link-font-size, inherit);\n }\n\n /* Variants */\n a[data-variant="primary"][data-mode="light"] {\n color: var(--courier-link-color, ${h.light.colors.link});\n }\n\n a[data-variant="primary"][data-mode="light"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant="primary"][data-mode="light"]:active {\n opacity: 0.6;\n }\n\n a[data-variant="primary"][data-mode="dark"] {\n color: var(--courier-link-color, ${h.dark.colors.link});\n }\n\n a[data-variant="primary"][data-mode="dark"]:hover {\n opacity: 0.8;\n }\n\n a[data-variant="primary"][data-mode="dark"]:active {\n opacity: 0.6;\n }\n\n a[data-underline="true"] {\n text-decoration: underline;\n }\n\n a:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n pointer-events: none;\n }\n `,e.appendChild(t),e.appendChild(this.link),this.updateVariant(),this.updateUnderline(),this.updateMode()}connectedCallback(){const e=document.createElement("slot");this.link.appendChild(e),this.updateHref()}attributeChangedCallback(e,t,n){if(t!==n)switch(e){case"href":this.updateHref();break;case"variant":case"mode":this.updateVariant();break;case"disabled":this.link.style.pointerEvents=this.hasAttribute("disabled")?"none":"auto",this.link.style.opacity=this.hasAttribute("disabled")?"0.6":"1";break;case"color":this.updateColor();break;case"underline":this.updateUnderline();break;case"target":this.updateTarget();break;case"font-family":this.updateFontFamily();break;case"font-size":this.updateFontSize()}}updateHref(){const e=this.getAttribute("href");e&&(this.link.href=e)}updateVariant(){const e=this.getAttribute("variant")||"primary",t=this.getAttribute("mode")||"light";this.link.setAttribute("data-variant",e),this.link.setAttribute("data-mode",t)}updateColor(){const e=this.getAttribute("color");e?this.link.style.setProperty("--courier-link-color",e):this.link.style.removeProperty("--courier-link-color")}updateUnderline(){const e="true"===this.getAttribute("underline");this.link.setAttribute("data-underline",e.toString())}updateMode(){const e=this.getAttribute("mode")||"light";this.link.setAttribute("data-mode",e)}updateTarget(){const e=this.getAttribute("target");e&&(this.link.target=e)}updateFontFamily(){const e=this.getAttribute("font-family");e?this.link.style.setProperty("--courier-link-font-family",e):this.link.style.removeProperty("--courier-link-font-family")}updateFontSize(){const e=this.getAttribute("font-size");e?this.link.style.setProperty("--courier-link-font-size",e):this.link.style.removeProperty("--courier-link-font-size")}}s(x,"observedAttributes",["href","variant","disabled","color","underline","mode","target","font-family","font-size"]),customElements.get("courier-link")||customElements.define("courier-link",x);class C extends v{constructor(){super(),s(this,"shadow"),this.shadow=this.attachShadow({mode:"open"})}build(e){if(null===e)return void this.shadow.replaceChildren();const t=e??this.defaultElement();this.shadow.replaceChildren(t)}defaultElement(){const e=document.createElement("div");return e.textContent="Default Element Factory",e.style.cssText="\n background-color: red;\n text-align: center;\n padding: 12px;\n ",e}}class f extends C{constructor(e){super(),s(this,"_props"),s(this,"_title"),s(this,"_button"),s(this,"_style"),s(this,"_buttonClickCallback",null),this._props=e}defaultElement(){var e,t;const n=document.createElement("div");return this._title=document.createElement("h2"),(null==(e=this._props.title)?void 0:e.text)&&(this._title.textContent=this._props.title.text),this._button=new m(this._props.button??g(this.currentSystemTheme)),this._style=document.createElement("style"),this._style.textContent=this.getStyles(this._props),n.className="container",n.appendChild(this._style),n.appendChild(this._title),n.appendChild(this._button),this.shadow.appendChild(n),null==(t=this._button)||t.addEventListener("click",(()=>{this._buttonClickCallback&&this._buttonClickCallback()})),n}onSystemThemeChange(e){this.updateStyles(this._props)}getStyles(e){var t,n,i,o;return`\n :host {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100%;\n width: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n text-align: center;\n padding: 24px;\n }\n\n .container h2 {\n margin: 0;\n color: ${(null==(t=e.title)?void 0:t.textColor)??"red"};\n font-size: ${(null==(n=e.title)?void 0:n.fontSize)??"16px"};\n font-weight: ${(null==(i=e.title)?void 0:i.fontWeight)??"500"};\n font-family: ${(null==(o=e.title)?void 0:o.fontFamily)??"inherit"};\n }\n `}updateStyles(e){this._props=e,this._style&&(this._style.textContent=this.getStyles(e)),this._button&&this._button.updateButton(e.button)}setButtonClickCallback(e){this._buttonClickCallback=e}}customElements.get("courier-info-state")||customElements.define("courier-info-state",f);class y extends HTMLElement{constructor(e,t,n,i,o,l,a,r){super(),s(this,"_backgroundColor"),s(this,"_hoverBackgroundColor"),s(this,"_activeBackgroundColor"),s(this,"_borderRadius"),s(this,"_height"),s(this,"_width"),s(this,"_style"),s(this,"_button"),s(this,"_icon"),this._borderRadius=l,this._backgroundColor=n,this._hoverBackgroundColor=i,this._activeBackgroundColor=o,this._height=a,this._width=r;const d=this.attachShadow({mode:"open"});this._button=document.createElement("button"),this._button.setAttribute("part","button"),this._icon=new _(t,e),this._style=document.createElement("style"),this.refresh(),d.appendChild(this._style),this._button.appendChild(this._icon),d.appendChild(this._button)}refresh(){this._style.textContent=this.getStyles()}getStyles(){return`\n :host {\n display: inline-block;\n border-radius: ${this._borderRadius??"50%"};\n }\n\n button {\n border: none;\n border-radius: ${this._borderRadius??"50%"};\n cursor: pointer;\n width: ${this._width??"36px"};\n height: ${this._height??"36px"};\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${this._backgroundColor??"transparent"};\n transition: background-color 0.2s ease;\n touch-action: manipulation;\n }\n\n button:hover {\n background-color: ${this._hoverBackgroundColor??"red"};\n }\n\n button:active {\n background-color: ${this._activeBackgroundColor??"red"};\n }\n\n button:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n [part="icon"] {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n }\n `}updateIconColor(e){this._icon.updateColor(e)}updateIconSVG(e){this._icon.updateSVG(e)}updateBackgroundColor(e){this._backgroundColor=e,this.refresh()}updateHoverBackgroundColor(e){this._hoverBackgroundColor=e,this.refresh()}updateActiveBackgroundColor(e){this._activeBackgroundColor=e,this.refresh()}}customElements.get("courier-icon-button")||customElements.define("courier-icon-button",y);function k(e){const t={...e};return e.actions&&(t.actions=e.actions.map((e=>function(e){const t={...e};e.data&&(t.data=JSON.parse(JSON.stringify(e.data)));return t}(e)))),e.data&&(t.data=JSON.parse(JSON.stringify(e.data))),e.tags&&(t.tags=[...e.tags]),e.trackingIds&&(t.trackingIds={...e.trackingIds}),t}function S(e){return{...e,messages:e.messages.map((e=>k(e)))}}[{name:"courier-button",class:m},{name:"courier-icon",class:_},{name:"courier-link",class:x},{name:"courier-info-state",class:f},{name:"courier-icon-button",class:y}].forEach((({name:e,class:t})=>{customElements.get(e)||customElements.define(e,t)}));class w extends HTMLElement{constructor(e){super(),i(this,"_theme"),i(this,"_options",[]),i(this,"_style"),this._theme=e;const t=this.attachShadow({mode:"open"});this._style=document.createElement("style"),this._style.textContent=this.getStyles(),t.appendChild(this._style);const n=document.createElement("ul");n.className="menu",t.appendChild(n)}getStyles(){var e,t,n;const i=null==(n=null==(t=null==(e=this._theme.inbox)?void 0:e.list)?void 0:t.item)?void 0:n.menu;return`\n :host {\n display: block;\n position: absolute;\n background: ${(null==i?void 0:i.backgroundColor)??"red"};\n border: ${(null==i?void 0:i.border)??"1px solid red"};\n border-radius: ${(null==i?void 0:i.borderRadius)??"0px"};\n box-shadow: ${(null==i?void 0:i.shadow)??"0 2px 8px red"};\n user-select: none;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s;\n overflow: hidden;\n }\n\n :host(.visible) {\n opacity: 1;\n pointer-events: auto;\n }\n\n ul.menu {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: row;\n }\n\n li.menu-item {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-bottom: none;\n background: transparent;\n }\n `}setOptions(e){this._options=e,this.renderMenu()}renderMenu(){var e,t,n,i;const o=null==(e=this.shadowRoot)?void 0:e.querySelector("ul.menu");if(!o)return;o.innerHTML="";const s=null==(i=null==(n=null==(t=this._theme.inbox)?void 0:t.list)?void 0:n.item)?void 0:i.menu,l=e=>{e.stopPropagation(),e.preventDefault()};this._options.forEach((e=>{var t,n,i;const a=new y(e.icon.svg,e.icon.color,null==s?void 0:s.backgroundColor,null==(t=null==s?void 0:s.item)?void 0:t.hoverBackgroundColor,null==(n=null==s?void 0:s.item)?void 0:n.activeBackgroundColor,null==(i=null==s?void 0:s.item)?void 0:i.borderRadius),r=t=>{l(t),e.onClick()};a.addEventListener("click",r),a.addEventListener("touchstart",l),a.addEventListener("touchend",r),a.addEventListener("touchmove",l),a.addEventListener("mousedown",l),a.addEventListener("mouseup",l),o.appendChild(a)}))}show(){this.classList.add("visible")}hide(){this.classList.remove("visible")}}customElements.get("courier-list-item-menu")||customElements.define("courier-list-item-menu",w);const M=class e{constructor(){i(this,"_inboxDataSet"),i(this,"_archiveDataSet"),i(this,"_dataStoreListeners",[]),i(this,"_unreadCount"),i(this,"isPaginatingInbox",!1),i(this,"isPaginatingArchive",!1)}static get shared(){return e.instance||(e.instance=new e),e.instance}get unreadCount(){return this._unreadCount??0}get inboxDataSet(){return this._inboxDataSet??{feedType:"inbox",messages:[],canPaginate:!1,paginationCursor:null}}get archiveDataSet(){return this._archiveDataSet??{feedType:"archive",messages:[],canPaginate:!1,paginationCursor:null}}addDataStoreListener(e){this._dataStoreListeners.push(e)}removeDataStoreListener(e){this._dataStoreListeners=this._dataStoreListeners.filter((t=>t!==e))}async fetchDataSet(e){var n,i,o,s,l,a,r,d,h,u;if(e.canUseCache)switch(e.feedType){case"inbox":if(this._inboxDataSet)return this._inboxDataSet;break;case"archive":if(this._archiveDataSet)return this._archiveDataSet}const c="inbox"===e.feedType?await(null==(n=t.Courier.shared.client)?void 0:n.inbox.getMessages()):await(null==(i=t.Courier.shared.client)?void 0:i.inbox.getArchivedMessages());return{feedType:e.feedType,messages:(null==(s=null==(o=null==c?void 0:c.data)?void 0:o.messages)?void 0:s.nodes)??[],canPaginate:(null==(r=null==(a=null==(l=null==c?void 0:c.data)?void 0:l.messages)?void 0:a.pageInfo)?void 0:r.hasNextPage)??!1,paginationCursor:(null==(u=null==(h=null==(d=null==c?void 0:c.data)?void 0:d.messages)?void 0:h.pageInfo)?void 0:u.startCursor)??null}}async fetchUnreadCount(e){var n;if(e.canUseCache&&void 0!==this._unreadCount)return this._unreadCount;return await(null==(n=t.Courier.shared.client)?void 0:n.inbox.getUnreadMessageCount())??0}async load(e){var n,i,o;try{if(!(null==(n=t.Courier.shared.client)?void 0:n.options.userId))throw new Error("User is not signed in");const i=e??{feedType:"inbox",canUseCache:!0},[o,s]=await Promise.all([this.fetchDataSet(i),this.fetchUnreadCount(i)]);switch(i.feedType){case"inbox":this._inboxDataSet=o;break;case"archive":this._archiveDataSet=o}this._unreadCount=s,this._dataStoreListeners.forEach((e=>{var t,n,s,l;null==(n=(t=e.events).onDataSetChange)||n.call(t,o,i.feedType),null==(l=(s=e.events).onUnreadCountChange)||l.call(s,this._unreadCount??0)}))}catch(s){null==(o=null==(i=t.Courier.shared.client)?void 0:i.options.logger)||o.error("Error loading inbox:",s),this._dataStoreListeners.forEach((e=>{var t,n;null==(n=(t=e.events).onError)||n.call(t,s)}))}}async listenForUpdates(){var e,n;try{await this.ensureDataSetsLoaded(),await this.connectSocket()}catch(i){null==(n=null==(e=t.Courier.shared.client)?void 0:e.options.logger)||n.error("Error listening for updates:",i),this._dataStoreListeners.forEach((e=>{var t,n;null==(n=(t=e.events).onError)||n.call(t,i)}))}}async ensureDataSetsLoaded(){let e=[];this._inboxDataSet||e.push(this.load({feedType:"inbox",canUseCache:!0})),this._archiveDataSet||e.push(this.load({feedType:"archive",canUseCache:!0})),await Promise.all(e)}async connectSocket(){var e,n,i,o,s,l,a,r,d,h,u,c;const v=null==(e=t.Courier.shared.client)?void 0:e.inbox.socket;try{if(!v)return void(null==(i=null==(n=t.Courier.shared.client)?void 0:n.options.logger)||i.info("CourierInbox socket not available"));if(null==(l=null==(o=t.Courier.shared.client)?void 0:o.options.logger)||l.info("CourierInbox socket connectionId:",null==(s=t.Courier.shared.client)?void 0:s.options.connectionId),v.isConnected)return void(null==(r=null==(a=t.Courier.shared.client)?void 0:a.options.logger)||r.info("CourierInbox socket already connected. Socket will not attempt reconnection."));v.receivedMessage=e=>{this.addMessage(e,0,"inbox")},v.receivedMessageEvent=e=>{let t;switch(e.messageId&&(t=this.getMessage({messageId:e.messageId})),e.event){case"mark-all-read":this.readAllMessages({canCallApi:!1});break;case"read":t&&this.readMessage({message:t,canCallApi:!1});break;case"unread":t&&this.unreadMessage({message:t,canCallApi:!1});break;case"opened":t&&this.openMessage({message:t,canCallApi:!1});break;case"archive":t&&this.archiveMessage({message:t,canCallApi:!1});break;case"archive-read":this.archiveReadMessages({canCallApi:!1});break;case"click":t&&this.clickMessage({message:t,canCallApi:!1});break;case"unarchive":t&&this.unarchiveMessage({message:t,canCallApi:!1})}},await v.connect(),await v.sendSubscribe(),v.keepAlive(),null==(h=null==(d=t.Courier.shared.client)?void 0:d.options.logger)||h.info("CourierInbox socket connected")}catch(p){null==(c=null==(u=t.Courier.shared.client)?void 0:u.options.logger)||c.error("Failed to connect socket:",p)}}getMessage(e){var t,n;return(null==(t=this._inboxDataSet)?void 0:t.messages.find((t=>t.messageId===e.messageId)))??(null==(n=this._archiveDataSet)?void 0:n.messages.find((t=>t.messageId===e.messageId)))}async fetchNextPageOfMessages(e){var n,i,o,s,l,a,r,d,h,u,c,v,p,g,m,b,_,x,C,f,y,k,S,w;switch(e.feedType){case"inbox":if(this.isPaginatingInbox)return null;if((null==(n=this._inboxDataSet)?void 0:n.canPaginate)&&this._inboxDataSet.paginationCursor)try{this.isPaginatingInbox=!0;const e=await(null==(i=t.Courier.shared.client)?void 0:i.inbox.getMessages({paginationLimit:t.Courier.shared.paginationLimit,startCursor:this._inboxDataSet.paginationCursor})),n={feedType:"inbox",messages:(null==(s=null==(o=null==e?void 0:e.data)?void 0:o.messages)?void 0:s.nodes)??[],canPaginate:(null==(r=null==(a=null==(l=null==e?void 0:e.data)?void 0:l.messages)?void 0:a.pageInfo)?void 0:r.hasNextPage)??!1,paginationCursor:(null==(u=null==(h=null==(d=null==e?void 0:e.data)?void 0:d.messages)?void 0:h.pageInfo)?void 0:u.startCursor)??null};return this.addPage(n),n}catch(M){return null==(v=null==(c=t.Courier.shared.client)?void 0:c.options.logger)||v.error("Error fetching next page of inbox messages:",M),null}finally{this.isPaginatingInbox=!1}break;case"archive":if(this.isPaginatingArchive)return null;if((null==(p=this._archiveDataSet)?void 0:p.canPaginate)&&this._archiveDataSet.paginationCursor)try{this.isPaginatingArchive=!0;const e=await(null==(g=t.Courier.shared.client)?void 0:g.inbox.getArchivedMessages({paginationLimit:t.Courier.shared.paginationLimit,startCursor:this._archiveDataSet.paginationCursor})),n={feedType:"archive",messages:(null==(b=null==(m=null==e?void 0:e.data)?void 0:m.messages)?void 0:b.nodes)??[],canPaginate:(null==(C=null==(x=null==(_=null==e?void 0:e.data)?void 0:_.messages)?void 0:x.pageInfo)?void 0:C.hasNextPage)??!1,paginationCursor:(null==(k=null==(y=null==(f=null==e?void 0:e.data)?void 0:f.messages)?void 0:y.pageInfo)?void 0:k.startCursor)??null};return this.addPage(n),n}catch(M){return null==(w=null==(S=t.Courier.shared.client)?void 0:S.options.logger)||w.error("Error fetching next page of archived messages:",M),null}finally{this.isPaginatingArchive=!1}}return null}canMutate(){return!!(t.Courier.shared.client&&this._inboxDataSet&&this._archiveDataSet)}async readMessage({message:e,canCallApi:n=!0}){var i,o,s;if(!this.canMutate())return;const l=this.getDatastoreSnapshot(this.unreadCount,this._inboxDataSet,this._archiveDataSet),a=this.getMessageSnapshot(e);if(!a.message.read)try{a.message.read=(new Date).toISOString(),this.applyMessageSnapshot(a),this._unreadCount=l.unreadCount-1,this._dataStoreListeners.forEach((e=>{var t,n;null==(n=(t=e.events).onUnreadCountChange)||n.call(t,this._unreadCount)})),n&&await(null==(i=t.Courier.shared.client)?void 0:i.inbox.read({messageId:e.messageId}))}catch(r){null==(s=null==(o=t.Courier.shared.client)?void 0:o.options.logger)||s.error("Error reading message:",r),this.applyDatastoreSnapshot(l)}}async unreadMessage({message:e,canCallApi:n=!0}){var i,o,s;if(!this.canMutate())return;const l=this.getDatastoreSnapshot(this.unreadCount,this._inboxDataSet,this._archiveDataSet),a=this.getMessageSnapshot(e);if(a.message.read)try{a.message.read=void 0,this.applyMessageSnapshot(a),this._unreadCount=l.unreadCount+1,this._dataStoreListeners.forEach((e=>{var t,n;null==(n=(t=e.events).onUnreadCountChange)||n.call(t,this._unreadCount)})),n&&await(null==(i=t.Courier.shared.client)?void 0:i.inbox.unread({messageId:e.messageId}))}catch(r){null==(s=null==(o=t.Courier.shared.client)?void 0:o.options.logger)||s.error("Error unreading message:",r),this.applyDatastoreSnapshot(l)}}async openMessage({message:e,canCallApi:n=!0}){var i,o,s;if(!this.canMutate())return;const l=this.getMessageSnapshot(e);if((void 0!==l.inboxIndex||void 0!==l.archiveIndex)&&!l.message.opened)try{e.opened=(new Date).toISOString(),this.applyMessageSnapshot(l),n&&await(null==(i=t.Courier.shared.client)?void 0:i.inbox.open({messageId:e.messageId}))}catch(a){this.applyMessageSnapshot(l),null==(s=null==(o=t.Courier.shared.client)?void 0:o.options.logger)||s.error("Error opening message:",a)}}async clickMessage({message:e,canCallApi:n=!0}){var i,o,s,l,a;if(this.canMutate())try{(null==(i=e.trackingIds)?void 0:i.clickTrackingId)&&n&&await(null==(s=t.Courier.shared.client)?void 0:s.inbox.click({messageId:e.messageId,trackingId:null==(o=e.trackingIds)?void 0:o.clickTrackingId}))}catch(r){null==(a=null==(l=t.Courier.shared.client)?void 0:l.options.logger)||a.error("Error clicking message:",r)}}async archiveMessage({message:e,canCallApi:n=!0}){var i,o,s,l;if(!this.canMutate())return;const a=this.getMessageSnapshot(e);if(void 0===a.inboxIndex)return;const r=this.getDatastoreSnapshot(this.unreadCount,this._inboxDataSet,this._archiveDataSet);try{if(e.archived=(new Date).toISOString(),this.removeMessage(e,a.inboxIndex,"inbox"),null==(i=this._archiveDataSet)?void 0:i.messages){const t=this.findInsertIndex(e,this._archiveDataSet);this.addMessage(e,t,"archive")}n&&await(null==(o=t.Courier.shared.client)?void 0:o.inbox.archive({messageId:e.messageId}))}catch(d){null==(l=null==(s=t.Courier.shared.client)?void 0:s.options.logger)||l.error("Error archiving message:",d),this.applyDatastoreSnapshot(r)}}async unarchiveMessage({message:e,canCallApi:n=!0}){var i,o,s,l;if(!this.canMutate())return;const a=this.getDatastoreSnapshot(this.unreadCount,this._inboxDataSet,this._archiveDataSet),r=this.getMessageSnapshot(e);if(void 0!==r.archiveIndex)try{if(r.message.archived=void 0,this.removeMessage(e,r.archiveIndex,"archive"),null==(i=this._inboxDataSet)?void 0:i.messages){const t=this.findInsertIndex(e,this._inboxDataSet);this.addMessage(e,t,"inbox")}n&&await(null==(o=t.Courier.shared.client)?void 0:o.inbox.unarchive({messageId:e.messageId}))}catch(d){null==(l=null==(s=t.Courier.shared.client)?void 0:s.options.logger)||l.error("Error unarchiving message:",d),this.applyDatastoreSnapshot(a)}}async archiveReadMessages({canCallApi:e=!0}={}){var n,i,o,s;if(!this.canMutate())return;const l=this.getDatastoreSnapshot(this.unreadCount,this._inboxDataSet,this._archiveDataSet);try{const o=(new Date).toISOString();((null==(n=this._inboxDataSet)?void 0:n.messages.filter((e=>e.read)))??[]).forEach((e=>{var t,n,i;e.archived=o;const s=null==(t=this._inboxDataSet)?void 0:t.messages.findIndex((t=>t.messageId===e.messageId));if(void 0!==s&&-1!==s&&(null==(n=this._inboxDataSet)||n.messages.splice(s,1)),null==(i=this._archiveDataSet)?void 0:i.messages){const t=this.findInsertIndex(e,this._archiveDataSet);this._archiveDataSet.messages.splice(t,0,e)}})),this._dataStoreListeners.forEach((e=>{var t,n,i,o;this._inboxDataSet&&(null==(n=(t=e.events).onDataSetChange)||n.call(t,this._inboxDataSet,"inbox")),this._archiveDataSet&&(null==(o=(i=e.events).onDataSetChange)||o.call(i,this._archiveDataSet,"archive"))})),e&&await(null==(i=t.Courier.shared.client)?void 0:i.inbox.archiveRead())}catch(a){null==(s=null==(o=t.Courier.shared.client)?void 0:o.options.logger)||s.error("Error archiving read messages:",a),this.applyDatastoreSnapshot(l)}}async archiveAllMessages({canCallApi:e=!0}={}){var n,i,o,s;if(!this.canMutate())return;const l=this.getDatastoreSnapshot(this.unreadCount,this._inboxDataSet,this._archiveDataSet);try{const o=(new Date).toISOString();null==(n=this._inboxDataSet)||n.messages.forEach((e=>{var t;if(e.archived=o,null==(t=this._archiveDataSet)?void 0:t.messages){const t=this.findInsertIndex(e,this._archiveDataSet);this._archiveDataSet.messages.splice(t,0,e)}})),this._inboxDataSet={messages:[],canPaginate:!1,paginationCursor:null,feedType:"inbox"},this._unreadCount=0,this._dataStoreListeners.forEach((e=>{var t,n,i,o,s,l;this._inboxDataSet&&(null==(n=(t=e.events).onDataSetChange)||n.call(t,this._inboxDataSet,"inbox")),this._archiveDataSet&&(null==(o=(i=e.events).onDataSetChange)||o.call(i,this._archiveDataSet,"archive")),null==(l=(s=e.events).onUnreadCountChange)||l.call(s,this._unreadCount)})),e&&await(null==(i=t.Courier.shared.client)?void 0:i.inbox.archiveAll())}catch(a){null==(s=null==(o=t.Courier.shared.client)?void 0:o.options.logger)||s.error("Error archiving all messages:",a),this.applyDatastoreSnapshot(l)}}async readAllMessages({canCallApi:e=!0}={}){var n,i,o,s,l;if(!this.canMutate())return;const a=this.getDatastoreSnapshot(this.unreadCount,this._inboxDataSet,this._archiveDataSet);try{const s=(new Date).toISOString();null==(n=this._inboxDataSet)||n.messages.forEach((e=>{e.read||(e.read=s)})),null==(i=this._archiveDataSet)||i.messages.forEach((e=>{e.read||(e.read=s)})),this._unreadCount=0,this._dataStoreListeners.forEach((e=>{var t,n,i,o,s,l;this._inboxDataSet&&(null==(n=(t=e.events).onDataSetChange)||n.call(t,this._inboxDataSet,"inbox")),this._archiveDataSet&&(null==(o=(i=e.events).onDataSetChange)||o.call(i,this._archiveDataSet,"archive")),null==(l=(s=e.events).onUnreadCountChange)||l.call(s,this._unreadCount)})),e&&await(null==(o=t.Courier.shared.client)?void 0:o.inbox.readAll())}catch(r){null==(l=null==(s=t.Courier.shared.client)?void 0:s.options.logger)||l.error("Error reading all messages:",r),this.applyDatastoreSnapshot(a)}}findInsertIndex(e,t){const n=t.messages;for(let i=0;i<n.length;i++){const t=n[i];if(t.created&&e.created&&t.created<e.created)return i}return n.length}addPage(e){switch(e.feedType){case"inbox":this._inboxDataSet&&(this._inboxDataSet.canPaginate=e.canPaginate,this._inboxDataSet.paginationCursor=e.paginationCursor,this._inboxDataSet.messages=[...this._inboxDataSet.messages,...e.messages]);break;case"archive":this._archiveDataSet&&(this._archiveDataSet.canPaginate=e.canPaginate,this._archiveDataSet.paginationCursor=e.paginationCursor,this._archiveDataSet.messages=[...this._archiveDataSet.messages,...e.messages])}this._dataStoreListeners.forEach((t=>{var n,i;return null==(i=(n=t.events).onPageAdded)?void 0:i.call(n,e,e.feedType)}))}addMessage(e,t,n){var i,o;switch(n){case"inbox":e.read||void 0===this._unreadCount||(this._unreadCount=this._unreadCount+1),null==(i=this._inboxDataSet)||i.messages.splice(t,0,e);break;case"archive":null==(o=this._archiveDataSet)||o.messages.splice(t,0,e)}this._dataStoreListeners.forEach((i=>{var o,s,l,a;null==(s=(o=i.events).onMessageAdd)||s.call(o,e,t,n),null==(a=(l=i.events).onUnreadCountChange)||a.call(l,this._unreadCount??0)}))}removeMessage(e,t,n){var i,o;switch(n){case"inbox":e.read||void 0===this._unreadCount||(this._unreadCount=this._unreadCount-1),null==(i=this._inboxDataSet)||i.messages.splice(t,1);break;case"archive":null==(o=this._archiveDataSet)||o.messages.splice(t,1)}this._dataStoreListeners.forEach((i=>{var o,s,l,a;null==(s=(o=i.events).onMessageRemove)||s.call(o,e,t,n),null==(a=(l=i.events).onUnreadCountChange)||a.call(l,this._unreadCount??0)}))}applyMessageSnapshot(e){void 0!==e.archiveIndex&&this.updateMessage(e.message,e.archiveIndex,"archive"),void 0!==e.inboxIndex&&this.updateMessage(e.message,e.inboxIndex,"inbox")}applyDatastoreSnapshot(e){const{unreadCount:t,inbox:n,archive:i}=e;this._inboxDataSet=n,this._archiveDataSet=i,this._dataStoreListeners.forEach((e=>{var o,s,l,a,r,d;null==(s=(o=e.events).onDataSetChange)||s.call(o,n,"inbox"),null==(a=(l=e.events).onDataSetChange)||a.call(l,i,"archive"),null==(d=(r=e.events).onUnreadCountChange)||d.call(r,t)}))}updateMessage(e,t,n){switch(n){case"inbox":void 0===this._unreadCount||e.archived||(e.read&&(this._unreadCount=Math.max(0,this._unreadCount-1)),e.read||(this._unreadCount=this._unreadCount+1)),this._inboxDataSet&&(this._inboxDataSet.messages[t]=e);break;case"archive":this._archiveDataSet&&(this._archiveDataSet.messages[t]=e)}this._dataStoreListeners.forEach((i=>{var o,s,l,a;null==(s=(o=i.events).onMessageUpdate)||s.call(o,e,t,n),null==(a=(l=i.events).onUnreadCountChange)||a.call(l,this._unreadCount??0)}))}getDatastoreSnapshot(e,t,n){return{unreadCount:e,inbox:S(t),archive:S(n)}}getMessageSnapshot(e){const t=this._archiveDataSet?this._archiveDataSet.messages.findIndex((t=>t.messageId===e.messageId)):void 0,n=this._inboxDataSet?this._inboxDataSet.messages.findIndex((t=>t.messageId===e.messageId)):void 0;return{message:k(e),archiveIndex:t,inboxIndex:n}}};i(M,"instance");let E=M;class T extends HTMLElement{constructor(e){super(),i(this,"_theme"),i(this,"_message",null),i(this,"_feedType","inbox"),i(this,"_isMobile",!1),i(this,"_titleElement"),i(this,"_subtitleElement"),i(this,"_timeElement"),i(this,"_style"),i(this,"_menu"),i(this,"_unreadIndicator"),i(this,"_actionsContainer"),i(this,"_longPressTimeout",null),i(this,"_isLongPress",!1),i(this,"onItemClick",null),i(this,"onItemLongPress",null),i(this,"onItemActionClick",null),this._theme=e,this._isMobile="ontouchstart"in window;const t=this.attachShadow({mode:"open"}),n=document.createElement("div");n.className="content-container",this._titleElement=document.createElement("p"),this._titleElement.setAttribute("part","title"),this._subtitleElement=document.createElement("p"),this._subtitleElement.setAttribute("part","subtitle"),this._actionsContainer=document.createElement("div"),this._actionsContainer.className="actions-container",n.appendChild(this._titleElement),n.appendChild(this._subtitleElement),n.appendChild(this._actionsContainer),this._timeElement=document.createElement("p"),this._timeElement.setAttribute("part","time"),this._unreadIndicator=document.createElement("div"),this._unreadIndicator.className="unread-indicator",this._style=document.createElement("style"),this._refreshStyles(),this._menu=new w(this._theme),this._menu.setOptions(this._getMenuOptions()),t.append(this._style,this._unreadIndicator,n,this._timeElement,this._menu);const o=e=>{e.stopPropagation(),e.preventDefault()};this._menu.addEventListener("mousedown",o),this._menu.addEventListener("pointerdown",o),this._menu.addEventListener("click",o),this.addEventListener("click",(e=>{this._menu.contains(e.target)||e.composedPath().includes(this._menu)||!this._message||!this.onItemClick||e.target instanceof _||this._isLongPress||this.onItemClick(this._message)})),this._setupHoverBehavior(),this._setupLongPressBehavior()}_setupHoverBehavior(){this._isMobile||(this.addEventListener("mouseenter",(()=>{this._isLongPress=!1,this._showMenu()})),this.addEventListener("mouseleave",(()=>this._hideMenu())))}_setupLongPressBehavior(){var e,t,n;const i=null==(n=null==(t=null==(e=this._theme.inbox)?void 0:e.list)?void 0:t.item)?void 0:n.menu;if(!(null==i?void 0:i.enabled))return;const o=i.longPress;this.addEventListener("touchstart",(()=>{this._longPressTimeout=window.setTimeout((()=>{this._isLongPress=!0,this._showMenu(),this._message&&this.onItemLongPress&&(this.onItemLongPress(this._message),navigator.vibrate&&navigator.vibrate((null==o?void 0:o.vibrationDuration)??50)),setTimeout((()=>{this._hideMenu(),this._isLongPress=!1}),(null==o?void 0:o.displayDuration)??2e3)}),650)}),{passive:!0}),this.addEventListener("touchend",(()=>{this._longPressTimeout&&(window.clearTimeout(this._longPressTimeout),this._longPressTimeout=null)}))}setOnLongPress(e){this.onItemLongPress=e}_getMenuOptions(){var e,t,n,i,o,s,l,a,r,d,h,u,c,v,p;const g=null==(i=null==(n=null==(t=null==(e=this._theme.inbox)?void 0:e.list)?void 0:t.item)?void 0:n.menu)?void 0:i.item;let m=[];const b="archive"===this._feedType;return b||m.push({id:(null==(o=this._message)?void 0:o.read)?"unread":"read",icon:{svg:(null==(s=this._message)?void 0:s.read)?null==(l=null==g?void 0:g.unread)?void 0:l.svg:null==(a=null==g?void 0:g.read)?void 0:a.svg,color:(null==(r=this._message)?void 0:r.read)?null==(d=null==g?void 0:g.unread)?void 0:d.color:(null==(h=null==g?void 0:g.read)?void 0:h.color)??"red"},onClick:()=>{this._message&&(this._message.read?E.shared.unreadMessage({message:this._message}):E.shared.readMessage({message:this._message}))}}),m.push({id:b?"unarchive":"archive",icon:{svg:b?null==(u=null==g?void 0:g.unarchive)?void 0:u.svg:null==(c=null==g?void 0:g.archive)?void 0:c.svg,color:b?null==(v=null==g?void 0:g.unarchive)?void 0:v.color:(null==(p=null==g?void 0:g.archive)?void 0:p.color)??"red"},onClick:()=>{this._message&&(b?E.shared.unarchiveMessage({message:this._message}):E.shared.archiveMessage({message:this._message}))}}),m}_showMenu(){var e,t,n;const i=null==(n=null==(t=null==(e=this._theme.inbox)?void 0:e.list)?void 0:t.item)?void 0:n.menu;i&&i.enabled&&(this._menu.setOptions(this._getMenuOptions()),this._menu.style.display="block",this._menu.show(),this._timeElement.style.opacity="0")}_hideMenu(){var e,t,n;const i=null==(n=null==(t=null==(e=this._theme.inbox)?void 0:e.list)?void 0:t.item)?void 0:n.menu;i&&i.enabled&&(this._menu.hide(),this._menu.style.display="none",this._timeElement.style.opacity="1")}_getStyles(){var e,t,n,i,o,s,l,a,r,d,h;const u=null==(t=null==(e=this._theme.inbox)?void 0:e.list)?void 0:t.item;return`\n :host {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n justify-content: space-between;\n border-bottom: ${(null==u?void 0:u.divider)??"1px solid red"};\n font-family: inherit;\n cursor: pointer;\n transition: background-color 0.2s ease;\n margin: 0;\n width: 100%;\n box-sizing: border-box;\n padding: 12px 20px;\n position: relative;\n background-color: ${(null==u?void 0:u.backgroundColor)??"transparent"};\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n touch-action: manipulation;\n }\n\n /* ───────────────────────── Base hover / active ────────────────── */\n @media (hover: hover) {\n :host(:hover) {\n background-color: ${(null==u?void 0:u.hoverBackgroundColor)??"red"};\n }\n }\n :host(:active) {\n background-color: ${(null==u?void 0:u.activeBackgroundColor)??"red"};\n }\n\n /* ───────────────────────── Menu hover / active ────────────────── */\n @media (hover: hover) {\n :host(:hover):has(courier-list-item-menu:hover, courier-list-item-menu *:hover, courier-button:hover, courier-button *:hover) {\n background-color: ${(null==u?void 0:u.backgroundColor)??"transparent"};\n }\n }\n :host(:active):has(courier-list-item-menu:active, courier-list-item-menu *:active, courier-button:active, courier-button *:active) {\n background-color: ${(null==u?void 0:u.backgroundColor)??"transparent"};\n }\n\n :host(:last-child) {\n border-bottom: none;\n }\n\n .unread-indicator {\n position: absolute;\n top: 28px;\n left: 6px;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${(null==u?void 0:u.unreadIndicatorColor)??"red"};\n display: none;\n }\n\n :host(.unread) .unread-indicator {\n display: block;\n }\n\n .content-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n margin-right: 12px;\n }\n\n p {\n margin: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n hyphens: auto;\n line-height: 1.4;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n text-align: left;\n }\n\n p[part='title'] {\n font-family: ${(null==(n=null==u?void 0:u.title)?void 0:n.family)??"inherit"};\n font-size: ${(null==(i=null==u?void 0:u.title)?void 0:i.size)??"14px"};\n color: ${(null==(o=null==u?void 0:u.title)?void 0:o.color)??"red"};\n margin-bottom: 4px;\n }\n\n p[part='subtitle'] {\n font-family: ${(null==(s=null==u?void 0:u.subtitle)?void 0:s.family)??"inherit"};\n font-size: ${(null==(l=null==u?void 0:u.subtitle)?void 0:l.size)??"14px"};\n color: ${(null==(a=null==u?void 0:u.subtitle)?void 0:a.color)??"red"};\n }\n\n p[part='time'] {\n font-family: ${(null==(r=null==u?void 0:u.time)?void 0:r.family)??"inherit"};\n font-size: ${(null==(d=null==u?void 0:u.time)?void 0:d.size)??"14px"};\n color: ${(null==(h=null==u?void 0:u.time)?void 0:h.color)??"red"};\n text-align: right;\n white-space: nowrap;\n }\n\n courier-list-item-menu {\n z-index: 1;\n position: absolute;\n top: 8px;\n right: 8px;\n display: none; /* becomes block while visible */\n }\n\n .actions-container {\n display: flex;\n margin-top: 10px;\n flex-wrap: wrap;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n display: none;\n }\n\n `}_refreshStyles(){this._style.textContent=this._getStyles()}connectedCallback(){var e,n;const i=this.getAttribute("message"),o=this.getAttribute("feed-type");if(o&&(this._feedType=o),i)try{this._message=JSON.parse(i),this._updateContent()}catch(s){null==(n=null==(e=t.Courier.shared.client)?void 0:e.options.logger)||n.error("CourierListItem – failed to parse message:",s)}}setMessage(e,t){this._message=e,this._feedType=t,this._updateContent()}setOnItemClick(e){this.onItemClick=e}setOnItemActionClick(e){this.onItemActionClick=e}setOnItemLongPress(e){this.onItemLongPress=e}_updateContent(){var e,t,n,i,o,s;if(!this._message)return this._titleElement.textContent="",void(this._subtitleElement.textContent="");this.classList.toggle("unread",!this._message.read&&"archive"!==this._feedType),this._titleElement.textContent=this._message.title||"Untitled Message",this._subtitleElement.textContent=this._message.preview||this._message.body||"",this._timeElement.textContent=function(e){if(!e.created)return"Now";const t=new Date,n=new Date(e.created),i=Math.floor((t.getTime()-n.getTime())/1e3);return i<60?`${i}s`:i<3600?`${Math.floor(i/60)}m`:i<86400?`${Math.floor(i/3600)}h`:i<604800?`${Math.floor(i/86400)}d`:i<31536e3?`${Math.floor(i/604800)}w`:`${Math.floor(i/31536e3)}y`}(this._message),this._menu.setOptions(this._getMenuOptions());const l=(null==(e=this._message)?void 0:e.actions)&&this._message.actions.length>0;this._actionsContainer.style.display=l?"flex":"none";const a=null==(i=null==(n=null==(t=this._theme.inbox)?void 0:t.list)?void 0:n.item)?void 0:i.actions;null==(s=null==(o=this._message)?void 0:o.actions)||s.forEach((e=>{var t,n,i,o;const s=new m({text:e.content,variant:"secondary",backgroundColor:null==a?void 0:a.backgroundColor,hoverBackgroundColor:null==a?void 0:a.hoverBackgroundColor,activeBackgroundColor:null==a?void 0:a.activeBackgroundColor,border:null==a?void 0:a.border,borderRadius:null==a?void 0:a.borderRadius,shadow:null==a?void 0:a.shadow,fontFamily:null==(t=null==a?void 0:a.font)?void 0:t.family,fontSize:null==(n=null==a?void 0:a.font)?void 0:n.size,fontWeight:null==(i=null==a?void 0:a.font)?void 0:i.weight,textColor:null==(o=null==a?void 0:a.font)?void 0:o.color,onClick:()=>{this._message&&this.onItemActionClick&&this.onItemActionClick(this._message,e)}});this._actionsContainer.appendChild(s)}))}}customElements.get("courier-list-item")||customElements.define("courier-list-item",T);class I extends HTMLElement{constructor(e,t){super(),i(this,"_shadow"),this._shadow=this.attachShadow({mode:"open"});const n=document.createElement("style");n.textContent=this.getStyles(t),this._shadow.appendChild(n);const o=new L(e,35),s=new L(e,100),l=new L(e,82);this._shadow.appendChild(o),this._shadow.appendChild(s),this._shadow.appendChild(l)}getStyles(e){return`\n :host {\n display: flex;\n flex-direction: column;\n gap: 12px;\n padding: 12px;\n width: 100%;\n box-sizing: border-box;\n opacity: ${e};\n }\n `}}customElements.get("courier-inbox-skeleton-list-item")||customElements.define("courier-inbox-skeleton-list-item",I);class L extends HTMLElement{constructor(e,t){super(),i(this,"_shadow"),this._shadow=this.attachShadow({mode:"open"});const n=document.createElement("style");n.textContent=this.getStyles(e,t),this._shadow.appendChild(n);const o=document.createElement("div");o.className="skeleton-item",this._shadow.appendChild(o)}getStyles(e,t){var n,i,o,s,l,a,r,d,h,u,c,v;const p=(null==(o=null==(i=null==(n=e.inbox)?void 0:n.loading)?void 0:i.animation)?void 0:o.barColor)??"#000",g=4===p.length?`#${p[1]}${p[1]}${p[2]}${p[2]}${p[3]}${p[3]}`:p,m=parseInt(g.slice(1,3),16),b=parseInt(g.slice(3,5),16),_=parseInt(g.slice(5,7),16),x=`rgba(${m}, ${b}, ${_}, 0.8)`,C=`rgba(${m}, ${b}, ${_}, 0.4)`;return`\n :host {\n display: flex;\n height: 100%;\n width: ${t}%;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .skeleton-item {\n height: ${(null==(a=null==(l=null==(s=e.inbox)?void 0:s.loading)?void 0:l.animation)?void 0:a.barHeight)??"14px"};\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${x} 25%,\n ${C} 50%,\n ${x} 75%\n );\n background-size: 200% 100%;\n animation: shimmer ${(null==(h=null==(d=null==(r=e.inbox)?void 0:r.loading)?void 0:d.animation)?void 0:h.duration)??"2s"} ease-in-out infinite;\n border-radius: ${(null==(v=null==(c=null==(u=e.inbox)?void 0:u.loading)?void 0:c.animation)?void 0:v.barBorderRadius)??"14px"};\n }\n\n @keyframes shimmer {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n }\n `}}customElements.get("courier-skeleton-animated-row")||customElements.define("courier-skeleton-animated-row",L);class D extends C{constructor(e){super(),i(this,"_theme"),this._theme=e}defaultElement(){const e=document.createElement("div");e.className="list";const t=document.createElement("style");t.textContent=this.getStyles(),e.appendChild(t);for(let n=0;n<3;n++){const t=new I(this._theme,1/(n+1));e.appendChild(t)}return this.shadow.appendChild(e),e}getStyles(){var e,t;return`\n :host {\n display: flex;\n height: 100%;\n width: 100%;\n align-items: flex-start;\n justify-content: flex-start;\n overflow: hidden;\n }\n\n .list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n overflow: hidden;\n }\n\n .list > * {\n border-bottom: ${(null==(t=null==(e=this._theme.inbox)?void 0:e.loading)?void 0:t.divider)??"1px solid red"};\n }\n\n .list > *:last-child {\n border-bottom: none;\n }\n `}}customElements.get("courier-inbox-skeleton-list")||customElements.define("courier-inbox-skeleton-list",D);class A extends HTMLElement{constructor(e){super(),i(this,"skeletonLoadingList"),i(this,"observer"),i(this,"customItem"),i(this,"onPaginationTrigger"),this.onPaginationTrigger=e.onPaginationTrigger,this.customItem=e.customItem;const t=this.attachShadow({mode:"open"}),n=document.createElement("style");if(n.textContent=this.getStyles(),t.appendChild(n),this.customItem)t.appendChild(this.customItem);else{const n=document.createElement("div");n.className="skeleton-container",this.skeletonLoadingList=new D(e.theme),this.skeletonLoadingList.build(void 0),n.appendChild(this.skeletonLoadingList),t.appendChild(n)}this.observer=new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting&&this.onPaginationTrigger()}))})),this.observer.observe(this)}getStyles(){return"\n :host {\n padding: 0;\n margin: 0;\n box-sizing: border-box;\n }\n\n .skeleton-container {\n height: 150%;\n }\n "}disconnectedCallback(){this.observer.disconnect()}}customElements.get("courier-inbox-pagination-list-item")||customElements.define("courier-inbox-pagination-list-item",A);class B extends HTMLElement{constructor(e){super(),i(this,"_themeSubscription"),i(this,"_messages",[]),i(this,"_feedType","inbox"),i(this,"_isLoading",!0),i(this,"_error",null),i(this,"_canPaginate",!1),i(this,"_onMessageClick",null),i(this,"_onMessageActionClick",null),i(this,"_onMessageLongPress",null),i(this,"_onRefresh"),i(this,"_onPaginationTrigger"),i(this,"_listItemFactory"),i(this,"_paginationItemFactory"),i(this,"_loadingStateFactory"),i(this,"_emptyStateFactory"),i(this,"_errorStateFactory"),this._themeSubscription=e.themeManager.subscribe((e=>{this.refreshTheme()})),this._onRefresh=e.onRefresh,this._onPaginationTrigger=e.onPaginationTrigger,this._onMessageClick=e.onMessageClick,this._onMessageActionClick=e.onMessageActionClick,this._onMessageLongPress=e.onMessageLongPress;const t=this.attachShadow({mode:"open"}),n=document.createElement("style");n.textContent=this.getStyles(),t.appendChild(n)}get messages(){return this._messages}getStyles(){var e;const t=null==(e=this._themeSubscription.manager.getTheme().inbox)?void 0:e.list;return`\n :host {\n flex: 1;\n width: 100%;\n background-color: ${(null==t?void 0:t.backgroundColor)??r[500]};\n }\n\n ul {\n list-style: none;\n padding: 0;\n margin: 0;\n height: 100%;\n }\n `}reset(){for(var e,t;null==(e=this.shadowRoot)?void 0:e.firstChild;)this.shadowRoot.removeChild(this.shadowRoot.firstChild);const n=document.createElement("style");n.textContent=this.getStyles(),null==(t=this.shadowRoot)||t.appendChild(n)}setDataSet(e){this._messages=[...e.messages],this._canPaginate=Boolean(e.canPaginate),this._error=null,this._isLoading=!1,this.render()}addPage(e){this._messages=[...this._messages,...e.messages],this._canPaginate=Boolean(e.canPaginate),this._error=null,this._isLoading=!1,this.render()}addMessage(e,t=0){this._messages.splice(t,0,e),this.render()}removeMessage(e=0){this._messages.splice(e,1),this.render()}updateMessage(e,t=0){this._messages[t]=e,this.render()}setFeedType(e){this._feedType=e,this._error=null,this._isLoading=!0,this.render()}setLoading(e){this._error=null,this._isLoading=e,this.render()}setError(e){this._error=e,this._isLoading=!1,this._messages=[],this.render()}setErrorNoClient(){this.setError(new Error("No user signed in"))}handleRetry(){this._onRefresh()}handleRefresh(){this._onRefresh()}render(){var e,t,n,i,o,s,l,a,r,d,h,u,c,v,p,g,m,b,_,x,C,y,k,S,w,M,E,I,L,B,P,$,F,H,R,z,O,V,N,U,Z,j,G,J,W,q,X,Y,K,Q,ee,te,ne,ie,oe,se,le,ae;this.reset();const re=this._themeSubscription.manager.getTheme();if(this._error){const T=null==(e=re.inbox)?void 0:e.error,I=new f({title:{text:(null==(t=null==T?void 0:T.title)?void 0:t.text)??this._error.message,textColor:null==(i=null==(n=null==T?void 0:T.title)?void 0:n.font)?void 0:i.color,fontFamily:null==(s=null==(o=null==T?void 0:T.title)?void 0:o.font)?void 0:s.family,fontSize:null==(a=null==(l=null==T?void 0:T.title)?void 0:l.font)?void 0:a.size,fontWeight:null==(d=null==(r=null==T?void 0:T.title)?void 0:r.font)?void 0:d.weight},button:{text:null==(h=null==T?void 0:T.button)?void 0:h.text,backgroundColor:null==(u=null==T?void 0:T.button)?void 0:u.backgroundColor,hoverBackgroundColor:null==(c=null==T?void 0:T.button)?void 0:c.hoverBackgroundColor,activeBackgroundColor:null==(v=null==T?void 0:T.button)?void 0:v.activeBackgroundColor,textColor:null==(g=null==(p=null==T?void 0:T.button)?void 0:p.font)?void 0:g.color,fontFamily:null==(b=null==(m=null==T?void 0:T.button)?void 0:m.font)?void 0:b.family,fontSize:null==(x=null==(_=null==T?void 0:T.button)?void 0:_.font)?void 0:x.size,fontWeight:null==(y=null==(C=null==T?void 0:T.button)?void 0:C.font)?void 0:y.weight,shadow:null==(k=null==T?void 0:T.button)?void 0:k.shadow,border:null==(S=null==T?void 0:T.button)?void 0:S.border,borderRadius:null==(w=null==T?void 0:T.button)?void 0:w.borderRadius}});return I.build(null==(M=this._errorStateFactory)?void 0:M.call(this,{feedType:this._feedType,error:this._error})),I.setButtonClickCallback((()=>this.handleRetry())),void(null==(E=this.shadowRoot)||E.appendChild(I))}if(this._isLoading){const e=new D(re);return e.build(null==(I=this._loadingStateFactory)?void 0:I.call(this,{feedType:this._feedType})),void(null==(L=this.shadowRoot)||L.appendChild(e))}if(0===this._messages.length){const e=null==(B=re.inbox)?void 0:B.empty,t=new f({title:{text:(null==(P=null==e?void 0:e.title)?void 0:P.text)??`No ${this._feedType} messages yet`,textColor:null==(F=null==($=null==e?void 0:e.title)?void 0:$.font)?void 0:F.color,fontFamily:null==(R=null==(H=null==e?void 0:e.title)?void 0:H.font)?void 0:R.family,fontSize:null==(O=null==(z=null==e?void 0:e.title)?void 0:z.font)?void 0:O.size,fontWeight:null==(N=null==(V=null==e?void 0:e.title)?void 0:V.font)?void 0:N.weight},button:{text:null==(U=null==e?void 0:e.button)?void 0:U.text,backgroundColor:null==(Z=null==e?void 0:e.button)?void 0:Z.backgroundColor,hoverBackgroundColor:null==(j=null==e?void 0:e.button)?void 0:j.hoverBackgroundColor,activeBackgroundColor:null==(G=null==e?void 0:e.button)?void 0:G.activeBackgroundColor,textColor:null==(W=null==(J=null==e?void 0:e.button)?void 0:J.font)?void 0:W.color,fontFamily:null==(X=null==(q=null==e?void 0:e.button)?void 0:q.font)?void 0:X.family,fontSize:null==(K=null==(Y=null==e?void 0:e.button)?void 0:Y.font)?void 0:K.size,fontWeight:null==(ee=null==(Q=null==e?void 0:e.button)?void 0:Q.font)?void 0:ee.weight,shadow:null==(te=null==e?void 0:e.button)?void 0:te.shadow,border:null==(ne=null==e?void 0:e.button)?void 0:ne.border,borderRadius:null==(ie=null==e?void 0:e.button)?void 0:ie.borderRadius}});return t.build(null==(oe=this._emptyStateFactory)?void 0:oe.call(this,{feedType:this._feedType})),t.setButtonClickCallback((()=>this.handleRefresh())),void(null==(se=this.shadowRoot)||se.appendChild(t))}const de=document.createElement("ul");if(null==(le=this.shadowRoot)||le.appendChild(de),this._messages.forEach(((e,t)=>{if(this._listItemFactory)return void de.appendChild(this._listItemFactory({message:e,index:t}));const n=new T(re);n.setMessage(e,this._feedType),n.setOnItemClick((e=>{var n;return null==(n=this._onMessageClick)?void 0:n.call(this,e,t)})),n.setOnItemActionClick(((e,n)=>{var i;return null==(i=this._onMessageActionClick)?void 0:i.call(this,e,n,t)})),n.setOnItemLongPress((e=>{var n;return null==(n=this._onMessageLongPress)?void 0:n.call(this,e,t)})),de.appendChild(n)})),this._canPaginate){const e=new A({theme:re,customItem:null==(ae=this._paginationItemFactory)?void 0:ae.call(this,{feedType:this._feedType}),onPaginationTrigger:()=>{var e;return null==(e=this._onPaginationTrigger)?void 0:e.call(this,this._feedType)}});de.appendChild(e)}}setLoadingStateFactory(e){this._loadingStateFactory=e,this.render()}setEmptyStateFactory(e){this._emptyStateFactory=e,this.render()}setErrorStateFactory(e){this._errorStateFactory=e,this.render()}setListItemFactory(e){this._listItemFactory=e,this.render()}setPaginationItemFactory(e){this._paginationItemFactory=e,this.render()}refreshTheme(){this.render()}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-list")||customElements.define("courier-inbox-list",B);class P extends HTMLElement{constructor(e){super(),i(this,"_option"),i(this,"_isSelected"),i(this,"_content"),i(this,"_itemIcon"),i(this,"_title"),i(this,"_selectionIcon"),i(this,"_style"),i(this,"_themeManager"),this._option=e.option,this._isSelected=e.isSelected,this._themeManager=e.themeManager;const t=this.attachShadow({mode:"open"});this._style=document.createElement("style"),this._content=document.createElement("div"),this._content.className="menu-item",this._itemIcon=new _(this._option.icon.svg??b.inbox),this._itemIcon.setAttribute("size","16"),this._title=document.createElement("p"),this._title.textContent=this._option.text;const n=document.createElement("div");n.className="spacer",this._selectionIcon=new _(b.check),this._content.appendChild(this._itemIcon),this._content.appendChild(this._title),this._content.appendChild(n),e.selectable&&this._content.appendChild(this._selectionIcon),t.appendChild(this._style),t.appendChild(this._content),this._selectionIcon.style.display=this._isSelected?"block":"none",this.refreshTheme()}getStyles(){var e,t,n,i,o,s,l,a,r,d,h,u,c,v,p,g,m,b,_,x,C,f,y,k,S,w,M,E,T,I,L,D,A,B;const P=this._themeManager.getTheme();return`\n :host {\n display: flex;\n flex-direction: row;\n padding: 6px 12px;\n cursor: pointer;\n }\n\n :host(:hover) {\n background-color: ${(null==(o=null==(i=null==(n=null==(t=null==(e=P.inbox)?void 0:e.header)?void 0:t.menus)?void 0:n.popup)?void 0:i.list)?void 0:o.hoverBackgroundColor)??"red"};\n }\n\n :host(:active) {\n background-color: ${(null==(d=null==(r=null==(a=null==(l=null==(s=P.inbox)?void 0:s.header)?void 0:l.menus)?void 0:a.popup)?void 0:r.list)?void 0:d.activeBackgroundColor)??"red"};\n }\n\n .menu-item {\n display: flex;\n align-items: center;\n width: 100%;\n gap: 12px;\n }\n\n .spacer {\n flex: 1;\n }\n\n p {\n margin: 0;\n font-family: ${(null==(g=null==(p=null==(v=null==(c=null==(u=null==(h=P.inbox)?void 0:h.header)?void 0:u.menus)?void 0:c.popup)?void 0:v.list)?void 0:p.font)?void 0:g.family)??"inherit"};\n font-weight: ${(null==(f=null==(C=null==(x=null==(_=null==(b=null==(m=P.inbox)?void 0:m.header)?void 0:b.menus)?void 0:_.popup)?void 0:x.list)?void 0:C.font)?void 0:f.weight)??"inherit"};\n font-size: ${(null==(E=null==(M=null==(w=null==(S=null==(k=null==(y=P.inbox)?void 0:y.header)?void 0:k.menus)?void 0:S.popup)?void 0:w.list)?void 0:M.font)?void 0:E.size)??"14px"};\n color: ${(null==(B=null==(A=null==(D=null==(L=null==(I=null==(T=P.inbox)?void 0:T.header)?void 0:I.menus)?void 0:L.popup)?void 0:D.list)?void 0:A.font)?void 0:B.color)??"red"};\n white-space: nowrap;\n }\n\n .check-icon {\n display: none;\n }\n `}refreshTheme(){var e,t,n,i;this._style.textContent=this.getStyles(),this._selectionIcon.updateColor((null==(e=this._option.selectionIcon)?void 0:e.color)??"red"),this._selectionIcon.updateSVG((null==(t=this._option.selectionIcon)?void 0:t.svg)??b.check),this._title.textContent=this._option.text??"Missing Text",this._itemIcon.updateColor((null==(n=this._option.icon)?void 0:n.color)??"red"),this._itemIcon.updateSVG((null==(i=this._option.icon)?void 0:i.svg)??b.inbox)}}customElements.get("courier-inbox-filter-menu-item")||customElements.define("courier-inbox-filter-menu-item",P);class $ extends HTMLElement{constructor(e,t,n,o,s){super(),i(this,"_themeSubscription"),i(this,"_type"),i(this,"_selectedIndex",0),i(this,"_options"),i(this,"_selectable"),i(this,"_onMenuOpen"),i(this,"_menuButton"),i(this,"_menu"),i(this,"_style"),this._type=t,this._selectable=n,this._options=o,this._selectedIndex=0,this._onMenuOpen=s;const l=this.attachShadow({mode:"open"});this._menuButton=new y("filters"===t?b.filter:b.overflow),this._menu=document.createElement("div"),this._menu.className=`menu ${t}`,this._style=document.createElement("style"),l.appendChild(this._style),l.appendChild(this._menuButton),l.appendChild(this._menu),this._menuButton.addEventListener("click",this.toggleMenu.bind(this)),document.addEventListener("click",this.handleOutsideClick.bind(this)),this._themeSubscription=e.subscribe((e=>{this.refreshTheme()})),this.refreshTheme()}getStyles(){var e,t,n,i,o,s,l,a,r,d,h,u,c,v,p,g,m,b,_,x,C;const f=this._themeSubscription.manager.getTheme();return`\n :host {\n position: relative;\n display: inline-block;\n }\n\n .menu {\n display: none;\n position: absolute;\n top: 42px;\n right: -6px;\n border-radius: ${(null==(i=null==(n=null==(t=null==(e=f.inbox)?void 0:e.header)?void 0:t.menus)?void 0:n.popup)?void 0:i.borderRadius)??"6px"};\n border: ${(null==(a=null==(l=null==(s=null==(o=f.inbox)?void 0:o.header)?void 0:s.menus)?void 0:l.popup)?void 0:a.border)??"1px solid red"};\n background: ${(null==(u=null==(h=null==(d=null==(r=f.inbox)?void 0:r.header)?void 0:d.menus)?void 0:h.popup)?void 0:u.backgroundColor)??"red"};\n box-shadow: ${(null==(g=null==(p=null==(v=null==(c=f.inbox)?void 0:c.header)?void 0:v.menus)?void 0:p.popup)?void 0:g.shadow)??"0 4px 12px 0 red"};\n z-index: 1000;\n min-width: 200px;\n overflow: hidden;\n padding: 4px 0;\n }\n\n courier-inbox-filter-menu-item {\n border-bottom: ${(null==(C=null==(x=null==(_=null==(b=null==(m=f.inbox)?void 0:m.header)?void 0:b.menus)?void 0:_.popup)?void 0:x.list)?void 0:C.divider)??"none"};\n }\n\n courier-inbox-filter-menu-item:last-child {\n border-bottom: none;\n }\n `}refreshTheme(){var e,t,n,i,o,s;this._style.textContent=this.getStyles();const l=null==(t=null==(e=this._themeSubscription.manager.getTheme().inbox)?void 0:e.header)?void 0:t.menus,a="filters"===this._type,r=a?null==(n=null==l?void 0:l.filters)?void 0:n.button:null==(i=null==l?void 0:l.actions)?void 0:i.button,d=a?b.filter:b.overflow;this._menuButton.updateIconSVG((null==(o=null==r?void 0:r.icon)?void 0:o.svg)??d),this._menuButton.updateIconColor((null==(s=null==r?void 0:r.icon)?void 0:s.color)??"red"),this._menuButton.updateBackgroundColor((null==r?void 0:r.backgroundColor)??"transparent"),this._menuButton.updateHoverBackgroundColor((null==r?void 0:r.hoverBackgroundColor)??"red"),this._menuButton.updateActiveBackgroundColor((null==r?void 0:r.activeBackgroundColor)??"red"),this.refreshMenuItems()}setOptions(e){this._options=e,this.refreshMenuItems()}refreshMenuItems(){this._menu.innerHTML="",this._options.forEach(((e,t)=>{const n=new P({option:e,selectable:this._selectable,isSelected:this._selectedIndex===t,themeManager:this._themeSubscription.manager});n.addEventListener("click",(()=>{this._selectedIndex=t,e.onClick(e),this.refreshMenuItems(),this.closeMenu()})),this._menu.appendChild(n)}))}toggleMenu(e){e.stopPropagation();const t="block"!==this._menu.style.display;this._menu.style.display=t?"block":"none",t&&this._onMenuOpen()}handleOutsideClick(e){this.contains(e.target)||this.closeMenu()}closeMenu(){this._menu.style.display="none"}selectOption(e){this._selectedIndex=this._options.findIndex((t=>t.id===e.id)),this.refreshMenuItems()}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-option-menu")||customElements.define("courier-inbox-option-menu",$);class F extends HTMLElement{constructor(e){super(),i(this,"_themeSubscription"),i(this,"_location"),i(this,"_count",0),i(this,"_badge"),i(this,"_style"),this._location=e.location,this._themeSubscription=e.themeBus.subscribe((e=>{this.refreshTheme(this._location)}));const t=this.attachShadow({mode:"open"});this._badge=document.createElement("span"),this._badge.className="unread-badge",this._style=document.createElement("style"),this._style.textContent=this.getStyles(this._location),t.appendChild(this._style),t.appendChild(this._badge)}getStyles(e){var t,n,i,o,s,l,a;const r=this._themeSubscription.manager.getTheme(),d="button"===e?null==(n=null==(t=r.popup)?void 0:t.button)?void 0:n.unreadIndicator:null==(s=null==(o=null==(i=r.inbox)?void 0:i.header)?void 0:o.filters)?void 0:s.unreadIndicator,h=null==d?void 0:d.backgroundColor,u=null==d?void 0:d.borderRadius;return`\n :host {\n display: inline-block;\n }\n\n .unread-badge {\n background-color: ${h};\n color: ${null==(l=null==d?void 0:d.font)?void 0:l.color};\n border-radius: ${u};\n padding: 4px 8px;\n font-size: ${null==(a=null==d?void 0:d.font)?void 0:a.size};\n text-align: center;\n display: none;\n pointer-events: none;\n }\n `}setCount(e){this._count=e,this.updateBadge()}refreshTheme(e){this._location=e,this.updateBadge()}updateBadge(){this._style.textContent=this.getStyles(this._location),this._count>0?(this._badge.textContent=this._count.toString(),this._badge.style.display="block"):this._badge.style.display="none"}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-unread-count-badge")||customElements.define("courier-unread-count-badge",F);class H extends HTMLElement{constructor(e,t){super(),i(this,"_themeSubscription"),i(this,"_option"),i(this,"_feedType"),i(this,"_titleElement"),i(this,"_iconElement"),i(this,"_unreadBadge"),i(this,"_container"),i(this,"_style"),this._option=t;const n=this.attachShadow({mode:"open"});this._style=document.createElement("style"),this._container=document.createElement("div"),this._container.className="title-section",this._iconElement=new _(void 0,this._option.icon.svg),this._titleElement=document.createElement("h2"),this._unreadBadge=new F({themeBus:e,location:"header"}),this._container.appendChild(this._iconElement),this._container.appendChild(this._titleElement),this._container.appendChild(this._unreadBadge),n.appendChild(this._style),n.appendChild(this._container),this._themeSubscription=e.subscribe((e=>{this.refreshTheme(this._feedType??"inbox")})),this.refreshTheme(this._feedType??"inbox")}getStyles(){var e,t,n,i,o,s,l,a,r,d,h,u,c,v,p,g;const m=this._themeSubscription.manager.getTheme();return`\n .title-section {\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n }\n\n courier-icon {\n display: flex;\n align-items: center;\n }\n\n h2 {\n margin: 0;\n font-family: ${(null==(i=null==(n=null==(t=null==(e=m.inbox)?void 0:e.header)?void 0:t.filters)?void 0:n.font)?void 0:i.family)??"inherit"};\n font-size: ${(null==(a=null==(l=null==(s=null==(o=m.inbox)?void 0:o.header)?void 0:s.filters)?void 0:l.font)?void 0:a.size)??"18px"};\n font-weight: ${(null==(u=null==(h=null==(d=null==(r=m.inbox)?void 0:r.header)?void 0:d.filters)?void 0:h.font)?void 0:u.weight)??"500"};\n color: ${(null==(g=null==(p=null==(v=null==(c=m.inbox)?void 0:c.header)?void 0:v.filters)?void 0:p.font)?void 0:g.color)??"red"};\n }\n\n courier-unread-count-badge {\n margin-left: 4px;\n }\n `}refreshTheme(e){this._feedType=e,this._style.textContent=this.getStyles(),this._unreadBadge.refreshTheme("header"),this.updateFilter()}updateSelectedOption(e,t,n){this._option=e,this._feedType=t,this._unreadBadge.setCount(n),this.updateFilter()}updateFilter(){var e,t,n,i,o,s,l,a,r,d,h,u,c,v,p,g,m,_,x,C,f,y,k,S,w,M,E,T;const I=this._themeSubscription.manager.getTheme();switch(this._feedType){case"inbox":this._titleElement.textContent=(null==(i=null==(n=null==(t=null==(e=I.inbox)?void 0:e.header)?void 0:t.filters)?void 0:n.inbox)?void 0:i.text)??"Inbox",this._iconElement.updateSVG((null==(r=null==(a=null==(l=null==(s=null==(o=I.inbox)?void 0:o.header)?void 0:s.filters)?void 0:l.inbox)?void 0:a.icon)?void 0:r.svg)??b.inbox),this._iconElement.updateColor((null==(v=null==(c=null==(u=null==(h=null==(d=I.inbox)?void 0:d.header)?void 0:h.filters)?void 0:u.inbox)?void 0:c.icon)?void 0:v.color)??"red");break;case"archive":this._titleElement.textContent=(null==(_=null==(m=null==(g=null==(p=I.inbox)?void 0:p.header)?void 0:g.filters)?void 0:m.archive)?void 0:_.text)??"Archive",this._iconElement.updateSVG((null==(k=null==(y=null==(f=null==(C=null==(x=I.inbox)?void 0:x.header)?void 0:C.filters)?void 0:f.archive)?void 0:y.icon)?void 0:k.svg)??b.archive),this._iconElement.updateColor((null==(T=null==(E=null==(M=null==(w=null==(S=I.inbox)?void 0:S.header)?void 0:w.filters)?void 0:M.archive)?void 0:E.icon)?void 0:T.color)??"red")}}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-header-title")||customElements.define("courier-inbox-header-title",H);class R extends C{constructor(e){super(),i(this,"_themeSubscription"),i(this,"_feedType","inbox"),i(this,"_unreadCount",0),i(this,"_titleSection"),i(this,"_filterMenu"),i(this,"_actionMenu"),i(this,"_style"),i(this,"_onFeedTypeChange"),this._themeSubscription=e.themeManager.subscribe((e=>{this.refreshTheme()})),this._onFeedTypeChange=e.onFeedTypeChange}getFilterOptions(){var e,t,n,i,o,s,l,a,r,d,h,u,c,v,p,g,m,_,x,C,f,y,k,S,w,M,E,T,I,L,D,A,B,P,$,F,H;const R=this._themeSubscription.manager.getTheme(),z=null==(n=null==(t=null==(e=R.inbox)?void 0:e.header)?void 0:t.menus)?void 0:n.filters;return[{id:"inbox",text:(null==(i=null==z?void 0:z.inbox)?void 0:i.text)??"Inbox",icon:{color:(null==(s=null==(o=null==z?void 0:z.inbox)?void 0:o.icon)?void 0:s.color)??"red",svg:(null==(a=null==(l=null==z?void 0:z.inbox)?void 0:l.icon)?void 0:a.svg)??b.inbox},selectionIcon:{color:(null==(v=null==(c=null==(u=null==(h=null==(d=null==(r=R.inbox)?void 0:r.header)?void 0:d.menus)?void 0:h.popup)?void 0:u.list)?void 0:c.selectionIcon)?void 0:v.color)??"red",svg:(null==(C=null==(x=null==(_=null==(m=null==(g=null==(p=R.inbox)?void 0:p.header)?void 0:g.menus)?void 0:m.popup)?void 0:_.list)?void 0:x.selectionIcon)?void 0:C.svg)??b.check},onClick:e=>{this.handleOptionMenuItemClick("inbox",e)}},{id:"archive",text:(null==(f=null==z?void 0:z.archive)?void 0:f.text)??"Archive",icon:{color:(null==(k=null==(y=null==z?void 0:z.archive)?void 0:y.icon)?void 0:k.color)??"red",svg:(null==(w=null==(S=null==z?void 0:z.archive)?void 0:S.icon)?void 0:w.svg)??b.archive},selectionIcon:{color:(null==(D=null==(L=null==(I=null==(T=null==(E=null==(M=R.inbox)?void 0:M.header)?void 0:E.menus)?void 0:T.popup)?void 0:I.list)?void 0:L.selectionIcon)?void 0:D.color)??"red",svg:(null==(H=null==(F=null==($=null==(P=null==(B=null==(A=R.inbox)?void 0:A.header)?void 0:B.menus)?void 0:P.popup)?void 0:$.list)?void 0:F.selectionIcon)?void 0:H.svg)??b.check},onClick:e=>{this.handleOptionMenuItemClick("archive",e)}}]}getActionOptions(){var e,t,n,i,o,s,l,a,r,d,h,u,c,v,p,g,m,_;const x=null==(n=null==(t=null==(e=this._themeSubscription.manager.getTheme().inbox)?void 0:e.header)?void 0:t.menus)?void 0:n.actions;return[{id:"markAllRead",text:(null==(i=null==x?void 0:x.markAllRead)?void 0:i.text)??"Mark All as Read",icon:{color:(null==(s=null==(o=null==x?void 0:x.markAllRead)?void 0:o.icon)?void 0:s.color)??"red",svg:(null==(a=null==(l=null==x?void 0:x.markAllRead)?void 0:l.icon)?void 0:a.svg)??b.inbox},selectionIcon:null,onClick:e=>{E.shared.readAllMessages({canCallApi:!0})}},{id:"archiveAll",text:(null==(r=null==x?void 0:x.archiveAll)?void 0:r.text)??"Archive All",icon:{color:(null==(h=null==(d=null==x?void 0:x.archiveAll)?void 0:d.icon)?void 0:h.color)??"red",svg:(null==(c=null==(u=null==x?void 0:x.archiveAll)?void 0:u.icon)?void 0:c.svg)??b.archive},selectionIcon:null,onClick:e=>{E.shared.archiveAllMessages({canCallApi:!0})}},{id:"archiveRead",text:(null==(v=null==x?void 0:x.archiveRead)?void 0:v.text)??"Archive Read",icon:{color:(null==(g=null==(p=null==x?void 0:x.archiveRead)?void 0:p.icon)?void 0:g.color)??"red",svg:(null==(_=null==(m=null==x?void 0:x.archiveRead)?void 0:m.icon)?void 0:_.svg)??b.archive},selectionIcon:null,onClick:e=>{E.shared.archiveReadMessages({canCallApi:!0})}}]}static get observedAttributes(){return["icon","title","feed-type"]}refreshTheme(){var e,t,n,i,o,s,l;const d=this._themeSubscription.manager.getTheme(),h=null==(e=this.shadow)?void 0:e.querySelector(".courier-inbox-header");h&&(h.style.backgroundColor=(null==(n=null==(t=d.inbox)?void 0:t.header)?void 0:n.backgroundColor)??r[500],h.style.boxShadow=(null==(o=null==(i=d.inbox)?void 0:i.header)?void 0:o.shadow)??`0px 1px 0px 0px ${a[500]}`),null==(s=this._filterMenu)||s.setOptions(this.getFilterOptions()),null==(l=this._actionMenu)||l.setOptions(this.getActionOptions())}handleOptionMenuItemClick(e,t){this._feedType=e,this._titleSection&&this._titleSection.updateSelectedOption(t,this._feedType,"inbox"===this._feedType?this._unreadCount:0),this._onFeedTypeChange(e)}render(e){this._feedType=e.feedType,this._unreadCount=e.unreadCount,this.refreshTitleSection()}refreshTitleSection(){var e,t;const n=this.getFilterOptions().find((e=>["inbox","archive"].includes(e.id)&&e.id===this._feedType));n&&(null==(e=this._titleSection)||e.updateSelectedOption(n,this._feedType,"inbox"===this._feedType?this._unreadCount:0),null==(t=this._filterMenu)||t.selectOption(n))}build(e){var t;super.build(e),this._style=document.createElement("style"),this._style.textContent=this.getStyles(),null==(t=this.shadow)||t.appendChild(this._style),this.refreshTheme()}defaultElement(){const e=this.getFilterOptions();this._titleSection=new H(this._themeSubscription.manager,e[0]),this._filterMenu=new $(this._themeSubscription.manager,"filters",!0,e,(()=>{var e;null==(e=this._actionMenu)||e.closeMenu()})),this._actionMenu=new $(this._themeSubscription.manager,"actions",!1,this.getActionOptions(),(()=>{var e;null==(e=this._filterMenu)||e.closeMenu()})),this._filterMenu.selectOption(e[0]);const t=document.createElement("div");t.className="spacer";const n=document.createElement("div");n.className="actions",n.appendChild(this._filterMenu),n.appendChild(this._actionMenu);const i=document.createElement("div");return i.className="courier-inbox-header",i.appendChild(this._titleSection),i.appendChild(t),i.appendChild(n),i}getStyles(){return`\n :host {\n z-index: 100;\n }\n\n .courier-inbox-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 10px 10px 10px 16px;\n background-color: ${r[500]};\n box-shadow: 0px 1px 0px 0px ${a[500]};\n }\n\n .header-content {\n display: flex;\n align-items: center;\n flex: 1;\n }\n\n .spacer {\n flex: 1;\n }\n\n .actions {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n `}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-header")||customElements.define("courier-inbox-header",R);class z{constructor(e){i(this,"events"),this.events=e}remove(){E.shared.removeDataStoreListener(this)}}const O={popup:{button:{icon:{color:l[500],svg:b.inbox},backgroundColor:"transparent",hoverBackgroundColor:l[50010],activeBackgroundColor:l[50020],unreadIndicator:{font:{color:r[500],size:"14px",family:void 0,weight:void 0},backgroundColor:d[500],borderRadius:"12px"}},window:{backgroundColor:r[500],borderRadius:"8px",border:`1px solid ${a[500]}`,shadow:`0px 8px 16px -4px ${a[500]}`}},inbox:{header:{backgroundColor:r[500],shadow:`0px 1px 0px 0px ${a[500]}`,filters:{font:{color:l[500],family:void 0,size:"18px"},inbox:{icon:{color:l[500],svg:b.inbox},text:"Inbox"},archive:{icon:{color:l[500],svg:b.archive},text:"Archive"},unreadIndicator:{font:{color:r[500],family:void 0,size:"14px"},backgroundColor:d[500],borderRadius:"12px"}},menus:{popup:{backgroundColor:r[500],border:`1px solid ${a[500]}`,borderRadius:"4px",shadow:`0px 4px 8px -2px ${a[500]}`,list:{hoverBackgroundColor:a[200],activeBackgroundColor:a[500],divider:"none",font:{color:l[500],family:void 0,size:"14px"},selectionIcon:{color:l[500],svg:b.check}}},filters:{button:{icon:{color:l[500],svg:b.filter},backgroundColor:"transparent",hoverBackgroundColor:l[50010],activeBackgroundColor:l[50020]},inbox:{icon:{color:l[500],svg:b.inbox},text:"Inbox"},archive:{icon:{color:l[500],svg:b.archive},text:"Archive"}},actions:{button:{icon:{color:l[500],svg:b.overflow},backgroundColor:"transparent",hoverBackgroundColor:l[50010],activeBackgroundColor:l[50020]},markAllRead:{icon:{color:l[500],svg:b.read},text:"Read All"},archiveAll:{icon:{color:l[500],svg:b.archive},text:"Archive All"},archiveRead:{icon:{color:l[500],svg:b.archiveRead},text:"Archive Read"}}}},list:{backgroundColor:r[500],item:{backgroundColor:"transparent",unreadIndicatorColor:d[500],hoverBackgroundColor:a[200],activeBackgroundColor:a[500],actions:{backgroundColor:"transparent",hoverBackgroundColor:a[200],activeBackgroundColor:a[500],border:`1px solid ${a[500]}`,borderRadius:"4px",shadow:"0px 1px 2px 0px rgba(0, 0, 0, 0.06)",font:{color:l[500],family:void 0,size:"14px"}},title:{color:l[500],family:void 0,size:"14px"},subtitle:{color:a[600],family:void 0,size:"14px"},time:{color:a[600],family:void 0,size:"14px"},divider:`1px solid ${a[200]}`,menu:{enabled:!0,backgroundColor:r[500],border:`1px solid ${a[500]}`,borderRadius:"4px",shadow:`0px 2px 4px -2px ${a[500]}`,longPress:{displayDuration:4e3,vibrationDuration:50},item:{hoverBackgroundColor:a[200],activeBackgroundColor:a[500],borderRadius:"0px",read:{color:l[500],svg:b.read},unread:{color:l[500],svg:b.unread},archive:{color:l[500],svg:b.archive},unarchive:{color:l[500],svg:b.unarchive}}}}},loading:{animation:{barColor:a[500],barHeight:"14px",barBorderRadius:"14px",duration:"2s"},divider:`1px solid ${a[200]}`},empty:{title:{font:{size:"16px",weight:"500",color:l[500]}},button:{text:"Refresh"}},error:{title:{font:{size:"16px",weight:"500",color:l[500]}},button:{text:"Retry"}}}},V={popup:{button:{icon:{color:r[500],svg:b.inbox},backgroundColor:"transparent",hoverBackgroundColor:r[50010],activeBackgroundColor:r[50020],unreadIndicator:{font:{color:r[500],size:"14px",family:void 0,weight:void 0},backgroundColor:d[500],borderRadius:"12px"}},window:{backgroundColor:l[500],borderRadius:"8px",border:`1px solid ${a[400]}`,shadow:`0px 4px 8px -2px ${r[50020]}`}},inbox:{header:{backgroundColor:l[500],shadow:`0px 1px 0px 0px ${a[400]}`,filters:{font:{color:r[500],family:void 0,size:"18px"},inbox:{icon:{color:r[500],svg:b.inbox},text:"Inbox"},archive:{icon:{color:r[500],svg:b.archive},text:"Archive"},unreadIndicator:{font:{color:r[500],family:void 0,size:"14px"},backgroundColor:d[500],borderRadius:"12px"}},menus:{popup:{backgroundColor:l[500],border:`1px solid ${a[400]}`,borderRadius:"4px",shadow:`0px 4px 8px -2px ${r[50020]}`,list:{hoverBackgroundColor:r[50010],activeBackgroundColor:r[50020],divider:"none",font:{color:r[500],family:void 0,size:"14px"},selectionIcon:{color:r[500],svg:b.check}}},filters:{button:{icon:{color:r[500],svg:b.filter},backgroundColor:"transparent",hoverBackgroundColor:r[50010],activeBackgroundColor:r[50020]},inbox:{icon:{color:r[500],svg:b.inbox},text:"Inbox"},archive:{icon:{color:r[500],svg:b.archive},text:"Archive"}},actions:{button:{icon:{color:r[500],svg:b.overflow},backgroundColor:"transparent",hoverBackgroundColor:r[50010],activeBackgroundColor:r[50020]},markAllRead:{icon:{color:r[500],svg:b.read},text:"Read All"},archiveAll:{icon:{color:r[500],svg:b.archive},text:"Archive All"},archiveRead:{icon:{color:r[500],svg:b.archiveRead},text:"Archive Read"}}}},list:{backgroundColor:l[500],item:{backgroundColor:"transparent",unreadIndicatorColor:d[500],hoverBackgroundColor:r[50010],activeBackgroundColor:r[50020],actions:{backgroundColor:"transparent",hoverBackgroundColor:r[50010],activeBackgroundColor:r[50020],border:`1px solid ${a[400]}`,borderRadius:"4px",shadow:`0px 1px 2px 0px ${r[50010]}`,font:{color:r[500],family:void 0,size:"14px"}},title:{color:r[500],family:void 0,size:"14px"},subtitle:{color:a[500],family:void 0,size:"14px"},time:{color:a[500],family:void 0,size:"12px"},divider:`1px solid ${a[400]}`,menu:{enabled:!0,backgroundColor:l[500],border:`1px solid ${a[400]}`,borderRadius:"4px",shadow:`0px 2px 4px -2px ${r[50020]}`,longPress:{displayDuration:4e3,vibrationDuration:50},item:{hoverBackgroundColor:r[50010],activeBackgroundColor:r[50020],borderRadius:"0px",read:{color:r[500],svg:b.read},unread:{color:r[500],svg:b.unread},archive:{color:r[500],svg:b.archive},unarchive:{color:r[500],svg:b.unarchive}}}}},loading:{animation:{barColor:r[500],barHeight:"14px",barBorderRadius:"14px",duration:"2s"},divider:`1px solid ${a[400]}`},empty:{title:{font:{size:"16px",weight:"500",color:r[500]}},button:{text:"Refresh"}},error:{title:{font:{size:"16px",weight:"500",color:r[500]}},button:{text:"Retry"}}}},N=(e,t)=>{var n,i,o,s,l,a,r,d,h,u,c,v,p,g,m,b,_,x,C,f,y,k,S,w,M,E,T,I,L,D,A,B,P,$,F,H,R,z,N,U,Z,j,G,J,W,q,X,Y,K,Q,ee,te,ne,ie,oe,se,le,ae,re,de,he,ue,ce,ve,pe,ge,me,be,_e,xe,Ce,fe,ye,ke,Se,we,Me,Ee,Te,Ie,Le,De,Ae,Be,Pe,$e,Fe,He,Re,ze,Oe,Ve,Ne,Ue,Ze,je,Ge,Je,We,qe,Xe,Ye,Ke,Qe,et,tt,nt,it,ot,st,lt,at,rt,dt,ht,ut,ct,vt,pt,gt,mt,bt,_t,xt,Ct,ft,yt,kt,St,wt,Mt,Et,Tt,It,Lt,Dt,At,Bt,Pt,$t,Ft,Ht,Rt,zt,Ot,Vt,Nt,Ut,Zt,jt,Gt,Jt,Wt,qt,Xt,Yt,Kt,Qt,en,tn,nn,on,sn,ln,an,rn,dn,hn,un,cn,vn,pn,gn,mn,bn,_n,xn,Cn,fn,yn,kn,Sn,wn,Mn,En,Tn,In,Ln,Dn,An,Bn,Pn,$n,Fn,Hn,Rn,zn,On,Vn,Nn,Un,Zn,jn,Gn,Jn,Wn,qn,Xn,Yn,Kn,Qn,ei,ti,ni,ii,oi,si,li,ai,ri,di,hi,ui,ci,vi,pi,gi,mi,bi,_i,xi,Ci,fi,yi,ki,Si,wi,Mi,Ei,Ti,Ii,Li,Di,Ai,Bi,Pi,$i,Fi,Hi,Ri,zi,Oi,Vi,Ni,Ui,Zi,ji,Gi;const Ji="light"===e?O:V;return{popup:{button:{...null==(n=Ji.popup)?void 0:n.button,...null==(i=t.popup)?void 0:i.button,icon:{...null==(s=null==(o=Ji.popup)?void 0:o.button)?void 0:s.icon,...null==(a=null==(l=t.popup)?void 0:l.button)?void 0:a.icon},unreadIndicator:{...null==(d=null==(r=Ji.popup)?void 0:r.button)?void 0:d.unreadIndicator,...null==(u=null==(h=t.popup)?void 0:h.button)?void 0:u.unreadIndicator}},window:{...null==(c=Ji.popup)?void 0:c.window,...null==(v=t.popup)?void 0:v.window}},inbox:{header:{...null==(p=Ji.inbox)?void 0:p.header,...null==(g=t.inbox)?void 0:g.header,filters:{...null==(b=null==(m=Ji.inbox)?void 0:m.header)?void 0:b.filters,...null==(x=null==(_=t.inbox)?void 0:_.header)?void 0:x.filters,inbox:{...null==(y=null==(f=null==(C=Ji.inbox)?void 0:C.header)?void 0:f.filters)?void 0:y.inbox,...null==(w=null==(S=null==(k=t.inbox)?void 0:k.header)?void 0:S.filters)?void 0:w.inbox,icon:{...null==(I=null==(T=null==(E=null==(M=Ji.inbox)?void 0:M.header)?void 0:E.filters)?void 0:T.inbox)?void 0:I.icon,...null==(B=null==(A=null==(D=null==(L=t.inbox)?void 0:L.header)?void 0:D.filters)?void 0:A.inbox)?void 0:B.icon}},archive:{...null==(F=null==($=null==(P=Ji.inbox)?void 0:P.header)?void 0:$.filters)?void 0:F.archive,...null==(z=null==(R=null==(H=t.inbox)?void 0:H.header)?void 0:R.filters)?void 0:z.archive,icon:{...null==(j=null==(Z=null==(U=null==(N=Ji.inbox)?void 0:N.header)?void 0:U.filters)?void 0:Z.archive)?void 0:j.icon,...null==(q=null==(W=null==(J=null==(G=t.inbox)?void 0:G.header)?void 0:J.filters)?void 0:W.archive)?void 0:q.icon}},unreadIndicator:{...null==(K=null==(Y=null==(X=Ji.inbox)?void 0:X.header)?void 0:Y.filters)?void 0:K.unreadIndicator,...null==(te=null==(ee=null==(Q=t.inbox)?void 0:Q.header)?void 0:ee.filters)?void 0:te.unreadIndicator}},menus:{...null==(ie=null==(ne=Ji.inbox)?void 0:ne.header)?void 0:ie.menus,...null==(se=null==(oe=t.inbox)?void 0:oe.header)?void 0:se.menus,popup:{...null==(re=null==(ae=null==(le=Ji.inbox)?void 0:le.header)?void 0:ae.menus)?void 0:re.popup,...null==(ue=null==(he=null==(de=t.inbox)?void 0:de.header)?void 0:he.menus)?void 0:ue.popup,list:{...null==(ge=null==(pe=null==(ve=null==(ce=Ji.inbox)?void 0:ce.header)?void 0:ve.menus)?void 0:pe.popup)?void 0:ge.list,...null==(xe=null==(_e=null==(be=null==(me=t.inbox)?void 0:me.header)?void 0:be.menus)?void 0:_e.popup)?void 0:xe.list,font:{...null==(Se=null==(ke=null==(ye=null==(fe=null==(Ce=Ji.inbox)?void 0:Ce.header)?void 0:fe.menus)?void 0:ye.popup)?void 0:ke.list)?void 0:Se.font,...null==(Ie=null==(Te=null==(Ee=null==(Me=null==(we=t.inbox)?void 0:we.header)?void 0:Me.menus)?void 0:Ee.popup)?void 0:Te.list)?void 0:Ie.font},selectionIcon:{...null==(Pe=null==(Be=null==(Ae=null==(De=null==(Le=Ji.inbox)?void 0:Le.header)?void 0:De.menus)?void 0:Ae.popup)?void 0:Be.list)?void 0:Pe.selectionIcon,...null==(ze=null==(Re=null==(He=null==(Fe=null==($e=t.inbox)?void 0:$e.header)?void 0:Fe.menus)?void 0:He.popup)?void 0:Re.list)?void 0:ze.selectionIcon}}},filters:{...null==(Ne=null==(Ve=null==(Oe=Ji.inbox)?void 0:Oe.header)?void 0:Ve.menus)?void 0:Ne.filters,...null==(je=null==(Ze=null==(Ue=t.inbox)?void 0:Ue.header)?void 0:Ze.menus)?void 0:je.filters,inbox:{...null==(qe=null==(We=null==(Je=null==(Ge=Ji.inbox)?void 0:Ge.header)?void 0:Je.menus)?void 0:We.filters)?void 0:qe.inbox,...null==(Qe=null==(Ke=null==(Ye=null==(Xe=t.inbox)?void 0:Xe.header)?void 0:Ye.menus)?void 0:Ke.filters)?void 0:Qe.inbox,icon:{...null==(ot=null==(it=null==(nt=null==(tt=null==(et=Ji.inbox)?void 0:et.header)?void 0:tt.menus)?void 0:nt.filters)?void 0:it.inbox)?void 0:ot.icon,...null==(dt=null==(rt=null==(at=null==(lt=null==(st=t.inbox)?void 0:st.header)?void 0:lt.menus)?void 0:at.filters)?void 0:rt.inbox)?void 0:dt.icon}},archive:{...null==(vt=null==(ct=null==(ut=null==(ht=Ji.inbox)?void 0:ht.header)?void 0:ut.menus)?void 0:ct.filters)?void 0:vt.archive,...null==(bt=null==(mt=null==(gt=null==(pt=t.inbox)?void 0:pt.header)?void 0:gt.menus)?void 0:mt.filters)?void 0:bt.archive,icon:{...null==(yt=null==(ft=null==(Ct=null==(xt=null==(_t=Ji.inbox)?void 0:_t.header)?void 0:xt.menus)?void 0:Ct.filters)?void 0:ft.archive)?void 0:yt.icon,...null==(Et=null==(Mt=null==(wt=null==(St=null==(kt=t.inbox)?void 0:kt.header)?void 0:St.menus)?void 0:wt.filters)?void 0:Mt.archive)?void 0:Et.icon}}},actions:{...null==(Lt=null==(It=null==(Tt=Ji.inbox)?void 0:Tt.header)?void 0:It.menus)?void 0:Lt.actions,...null==(Bt=null==(At=null==(Dt=t.inbox)?void 0:Dt.header)?void 0:At.menus)?void 0:Bt.actions,markAllRead:{...null==(Ht=null==(Ft=null==($t=null==(Pt=Ji.inbox)?void 0:Pt.header)?void 0:$t.menus)?void 0:Ft.actions)?void 0:Ht.markAllRead,...null==(Vt=null==(Ot=null==(zt=null==(Rt=t.inbox)?void 0:Rt.header)?void 0:zt.menus)?void 0:Ot.actions)?void 0:Vt.markAllRead,icon:{...null==(Gt=null==(jt=null==(Zt=null==(Ut=null==(Nt=Ji.inbox)?void 0:Nt.header)?void 0:Ut.menus)?void 0:Zt.actions)?void 0:jt.markAllRead)?void 0:Gt.icon,...null==(Yt=null==(Xt=null==(qt=null==(Wt=null==(Jt=t.inbox)?void 0:Jt.header)?void 0:Wt.menus)?void 0:qt.actions)?void 0:Xt.markAllRead)?void 0:Yt.icon}},archiveAll:{...null==(tn=null==(en=null==(Qt=null==(Kt=Ji.inbox)?void 0:Kt.header)?void 0:Qt.menus)?void 0:en.actions)?void 0:tn.archiveAll,...null==(ln=null==(sn=null==(on=null==(nn=t.inbox)?void 0:nn.header)?void 0:on.menus)?void 0:sn.actions)?void 0:ln.archiveAll,icon:{...null==(un=null==(hn=null==(dn=null==(rn=null==(an=Ji.inbox)?void 0:an.header)?void 0:rn.menus)?void 0:dn.actions)?void 0:hn.archiveAll)?void 0:un.icon,...null==(mn=null==(gn=null==(pn=null==(vn=null==(cn=t.inbox)?void 0:cn.header)?void 0:vn.menus)?void 0:pn.actions)?void 0:gn.archiveAll)?void 0:mn.icon}},archiveRead:{...null==(Cn=null==(xn=null==(_n=null==(bn=Ji.inbox)?void 0:bn.header)?void 0:_n.menus)?void 0:xn.actions)?void 0:Cn.archiveRead,...null==(Sn=null==(kn=null==(yn=null==(fn=t.inbox)?void 0:fn.header)?void 0:yn.menus)?void 0:kn.actions)?void 0:Sn.archiveRead,icon:{...null==(In=null==(Tn=null==(En=null==(Mn=null==(wn=Ji.inbox)?void 0:wn.header)?void 0:Mn.menus)?void 0:En.actions)?void 0:Tn.archiveRead)?void 0:In.icon,...null==(Pn=null==(Bn=null==(An=null==(Dn=null==(Ln=t.inbox)?void 0:Ln.header)?void 0:Dn.menus)?void 0:An.actions)?void 0:Bn.archiveRead)?void 0:Pn.icon}}}}},list:{...null==($n=Ji.inbox)?void 0:$n.list,...null==(Fn=t.inbox)?void 0:Fn.list,item:{...null==(Rn=null==(Hn=Ji.inbox)?void 0:Hn.list)?void 0:Rn.item,...null==(On=null==(zn=t.inbox)?void 0:zn.list)?void 0:On.item,menu:{...null==(Un=null==(Nn=null==(Vn=Ji.inbox)?void 0:Vn.list)?void 0:Nn.item)?void 0:Un.menu,...null==(Gn=null==(jn=null==(Zn=t.inbox)?void 0:Zn.list)?void 0:jn.item)?void 0:Gn.menu,item:{...null==(Xn=null==(qn=null==(Wn=null==(Jn=Ji.inbox)?void 0:Jn.list)?void 0:Wn.item)?void 0:qn.menu)?void 0:Xn.item,...null==(ei=null==(Qn=null==(Kn=null==(Yn=t.inbox)?void 0:Yn.list)?void 0:Kn.item)?void 0:Qn.menu)?void 0:ei.item,read:{...null==(si=null==(oi=null==(ii=null==(ni=null==(ti=Ji.inbox)?void 0:ti.list)?void 0:ni.item)?void 0:ii.menu)?void 0:oi.item)?void 0:si.read,...null==(hi=null==(di=null==(ri=null==(ai=null==(li=t.inbox)?void 0:li.list)?void 0:ai.item)?void 0:ri.menu)?void 0:di.item)?void 0:hi.read},unread:{...null==(gi=null==(pi=null==(vi=null==(ci=null==(ui=Ji.inbox)?void 0:ui.list)?void 0:ci.item)?void 0:vi.menu)?void 0:pi.item)?void 0:gi.unread,...null==(Ci=null==(xi=null==(_i=null==(bi=null==(mi=t.inbox)?void 0:mi.list)?void 0:bi.item)?void 0:_i.menu)?void 0:xi.item)?void 0:Ci.unread},archive:{...null==(wi=null==(Si=null==(ki=null==(yi=null==(fi=Ji.inbox)?void 0:fi.list)?void 0:yi.item)?void 0:ki.menu)?void 0:Si.item)?void 0:wi.archive,...null==(Li=null==(Ii=null==(Ti=null==(Ei=null==(Mi=t.inbox)?void 0:Mi.list)?void 0:Ei.item)?void 0:Ti.menu)?void 0:Ii.item)?void 0:Li.archive},unarchive:{...null==($i=null==(Pi=null==(Bi=null==(Ai=null==(Di=Ji.inbox)?void 0:Di.list)?void 0:Ai.item)?void 0:Bi.menu)?void 0:Pi.item)?void 0:$i.unarchive,...null==(Oi=null==(zi=null==(Ri=null==(Hi=null==(Fi=t.inbox)?void 0:Fi.list)?void 0:Hi.item)?void 0:Ri.menu)?void 0:zi.item)?void 0:Oi.unarchive}}}}},loading:{...null==(Vi=Ji.inbox)?void 0:Vi.loading,...null==(Ni=t.inbox)?void 0:Ni.loading},empty:{...null==(Ui=Ji.inbox)?void 0:Ui.empty,...null==(Zi=t.inbox)?void 0:Zi.empty},error:{...null==(ji=Ji.inbox)?void 0:ji.error,...null==(Gi=t.inbox)?void 0:Gi.error}}}};class U{constructor(e){i(this,"THEME_CHANGE_EVENT","courier_inbox_theme_change"),i(this,"_theme"),i(this,"_lightTheme",O),i(this,"_darkTheme",V),i(this,"_target"),i(this,"_subscriptions",[]),i(this,"_userMode"),i(this,"_systemMode"),i(this,"_systemThemeCleanup"),this._theme=e,this._target=new EventTarget,this._userMode="system",this._systemMode=u(),this.setLightTheme(O),this.setDarkTheme(V),this._systemThemeCleanup=c((e=>{this._systemMode=e,this.updateTheme()}))}setLightTheme(e){this._lightTheme=e,"light"===this._systemMode&&this.updateTheme()}setDarkTheme(e){this._darkTheme=e,"dark"===this._systemMode&&this.updateTheme()}get currentSystemTheme(){return this._systemMode}getTheme(){return this._theme}updateTheme(){const e="system"===this._userMode?this._systemMode:this._userMode,t="light"===e?this._lightTheme:this._darkTheme,n=N(e,t);this.setTheme(n)}setTheme(e){e!==this._theme&&(this._theme=e,this._target.dispatchEvent(new CustomEvent(this.THEME_CHANGE_EVENT,{detail:{theme:e}})))}setMode(e){this._userMode=e,this.updateTheme()}subscribe(e){const t=new AbortController;this._target.addEventListener(this.THEME_CHANGE_EVENT,(t=>{e(t.detail.theme)}),{signal:t.signal});const n={manager:this,unsubscribe:()=>{t.abort();const e=this._subscriptions.indexOf(n);e>-1&&this._subscriptions.splice(e,1)}};return this._subscriptions.push(n),n}cleanup(){this._systemThemeCleanup&&this._systemThemeCleanup(),this._subscriptions.forEach((e=>e.unsubscribe())),this._subscriptions=[]}}class Z extends HTMLElement{constructor(e){var n;super(),i(this,"_currentFeed","inbox"),i(this,"_themeManager"),i(this,"_shadow"),i(this,"_list"),i(this,"_datastoreListener"),i(this,"_authListener"),i(this,"_style"),i(this,"_header"),i(this,"_headerFactory"),i(this,"_onMessageClick"),i(this,"_onMessageActionClick"),i(this,"_onMessageLongPress"),i(this,"_defaultProps",{title:"Inbox",icon:b.inbox,feedType:this._currentFeed,height:"768px"}),this._shadow=this.attachShadow({mode:"open"}),this._themeManager=e??new U(O),this._header=new R({themeManager:this._themeManager,onFeedTypeChange:e=>{this.setFeedType(e)}}),this._header.build(void 0),this._shadow.appendChild(this._header),this._list=new B({themeManager:this._themeManager,onRefresh:()=>{this.refresh()},onPaginationTrigger:async e=>{var n,i;try{await E.shared.fetchNextPageOfMessages({feedType:e})}catch(o){null==(i=null==(n=t.Courier.shared.client)?void 0:n.options.logger)||i.error("Failed to fetch next page of messages:",o)}},onMessageClick:(e,t)=>{var n;E.shared.clickMessage({message:e}),this.dispatchEvent(new CustomEvent("message-click",{detail:{message:e,index:t},bubbles:!0,composed:!0})),null==(n=this._onMessageClick)||n.call(this,{message:e,index:t})},onMessageActionClick:(e,t,n)=>{var i;this.dispatchEvent(new CustomEvent("message-action-click",{detail:{message:e,action:t,index:n},bubbles:!0,composed:!0})),null==(i=this._onMessageActionClick)||i.call(this,{message:e,action:t,index:n})},onMessageLongPress:(e,t)=>{var n;this.dispatchEvent(new CustomEvent("message-long-press",{detail:{message:e,index:t},bubbles:!0,composed:!0})),null==(n=this._onMessageLongPress)||n.call(this,{message:e,index:t})}}),this._style=document.createElement("style"),this.refreshTheme(),this._shadow.appendChild(this._style),this._shadow.appendChild(this._list),this._datastoreListener=new z({onError:e=>{this._list.setError(e)},onDataSetChange:(e,t)=>{this._currentFeed===t&&(this._list.setDataSet(e),this.updateHeader())},onPageAdded:(e,t)=>{this._currentFeed===t&&(this._list.addPage(e),this.updateHeader())},onMessageAdd:(e,t,n)=>{this._currentFeed===n&&(this._list.addMessage(e,t),this.updateHeader())},onMessageRemove:(e,t,n)=>{this._currentFeed===n&&(this._list.removeMessage(t),this.updateHeader())},onMessageUpdate:(e,t,n)=>{this._currentFeed===n&&(this._list.updateMessage(e,t),this.updateHeader())},onUnreadCountChange:e=>{this.updateHeader()}}),E.shared.addDataStoreListener(this._datastoreListener),this._themeManager.subscribe((e=>{this.refreshTheme()})),this._authListener=t.Courier.shared.addAuthenticationListener((e=>{this.refresh()})),(null==(n=t.Courier.shared.client)?void 0:n.options.userId)&&this.refresh()}get theme(){return this._themeManager.getTheme()}setLightTheme(e){this._themeManager.setLightTheme(e)}setDarkTheme(e){this._themeManager.setDarkTheme(e)}static get observedAttributes(){return["height","light-theme","dark-theme","mode","message-click","message-action-click","message-long-press"]}refreshTheme(){this._style.textContent=this.getStyles()}getStyles(){return`\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: ${this._defaultProps.height};\n }\n\n courier-inbox-header {\n flex-shrink: 0;\n }\n\n courier-inbox-list {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n }\n `}setHeader(e){this._headerFactory=e,this.updateHeader()}removeHeader(){this._headerFactory=null,this.updateHeader()}setLoadingState(e){this._list.setLoadingStateFactory(e)}setEmptyState(e){this._list.setEmptyStateFactory(e)}setErrorState(e){this._list.setErrorStateFactory(e)}setListItem(e){this._list.setListItemFactory(e)}setPaginationItem(e){this._list.setPaginationItemFactory(e)}onMessageClick(e){this._onMessageClick=e}onMessageActionClick(e){this._onMessageActionClick=e}onMessageLongPress(e){this._onMessageLongPress=e}setFeedType(e){this._currentFeed=e,this._list.setFeedType(e),this.updateHeader(),this.load({feedType:this._currentFeed,canUseCache:!0})}updateHeader(){const e={feedType:this._currentFeed,unreadCount:E.shared.unreadCount,messageCount:this._list.messages.length};switch(this._headerFactory){case void 0:this._header.render(e);break;case null:this._header.build(null);break;default:const t=this._headerFactory(e);this._header.build(t)}}async load(e){await E.shared.load(e),await E.shared.listenForUpdates()}refresh(){this.load({feedType:this._currentFeed,canUseCache:!1})}connectedCallback(){this.refresh()}disconnectedCallback(){var e,t;this._themeManager.cleanup(),null==(e=this._datastoreListener)||e.remove(),null==(t=this._authListener)||t.remove()}attributeChangedCallback(e,n,i){var o,s,l,a,r,d;if(n!==i)switch(e){case"height":const e=i||this._defaultProps.height;this.style.height=e;break;case"message-click":if(i)try{this._onMessageClick=new Function("props",i)}catch(h){null==(s=null==(o=t.Courier.shared.client)?void 0:o.options.logger)||s.error("Failed to parse message-click handler:",h)}else this._onMessageClick=void 0;break;case"message-action-click":if(i)try{this._onMessageActionClick=new Function("props",i)}catch(h){null==(a=null==(l=t.Courier.shared.client)?void 0:l.options.logger)||a.error("Failed to parse message-action-click handler:",h)}else this._onMessageActionClick=void 0;break;case"message-long-press":if(i)try{this._onMessageLongPress=new Function("props",i)}catch(h){null==(d=null==(r=t.Courier.shared.client)?void 0:r.options.logger)||d.error("Failed to parse message-long-press handler:",h)}else this._onMessageLongPress=void 0;break;case"light-theme":i&&this.setLightTheme(JSON.parse(i));break;case"dark-theme":i&&this.setDarkTheme(JSON.parse(i));break;case"mode":this._themeManager.setMode(i)}}}customElements.get("courier-inbox")||customElements.define("courier-inbox",Z);class j extends C{constructor(e){super(),i(this,"_themeSubscription"),i(this,"_container"),i(this,"_triggerButton"),i(this,"_unreadCountBadge"),this._themeSubscription=e.subscribe((e=>{this.updateTheme()}))}defaultElement(){this._container=document.createElement("div"),this._container.className="menu-button-container",this._triggerButton=new y(b.inbox),this._unreadCountBadge=new F({themeBus:this._themeSubscription.manager,location:"button"}),this._unreadCountBadge.id="unread-badge";const e=document.createElement("style");return e.textContent=this.getStyles(),this._container.appendChild(e),this._container.appendChild(this._triggerButton),this._container.appendChild(this._unreadCountBadge),this.shadow.appendChild(this._container),this.updateTheme(),this._container}getStyles(){return"\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n "}onUnreadCountChange(e){var t;null==(t=this._unreadCountBadge)||t.setCount(e),this.updateTheme()}updateTheme(){var e,t,n,i,o,s,a,r,d,h,u,c,v,p,g,m,_,x;const C=this._themeSubscription.manager.getTheme();null==(i=this._triggerButton)||i.updateIconColor((null==(n=null==(t=null==(e=null==C?void 0:C.popup)?void 0:e.button)?void 0:t.icon)?void 0:n.color)??l[500]),null==(r=this._triggerButton)||r.updateIconSVG((null==(a=null==(s=null==(o=null==C?void 0:C.popup)?void 0:o.button)?void 0:s.icon)?void 0:a.svg)??b.inbox),null==(u=this._triggerButton)||u.updateBackgroundColor((null==(h=null==(d=null==C?void 0:C.popup)?void 0:d.button)?void 0:h.backgroundColor)??"transparent"),null==(p=this._triggerButton)||p.updateHoverBackgroundColor((null==(v=null==(c=null==C?void 0:C.popup)?void 0:c.button)?void 0:v.hoverBackgroundColor)??l[50010]),null==(_=this._triggerButton)||_.updateActiveBackgroundColor((null==(m=null==(g=null==C?void 0:C.popup)?void 0:g.button)?void 0:m.activeBackgroundColor)??l[50020]),null==(x=this._unreadCountBadge)||x.refreshTheme("button")}disconnectedCallback(){this._themeSubscription.unsubscribe()}}customElements.get("courier-inbox-menu-button")||customElements.define("courier-inbox-menu-button",j);class G extends HTMLElement{constructor(){super(),i(this,"_width","440px"),i(this,"_height","440px"),i(this,"_popupAlignment","top-right"),i(this,"_top","40px"),i(this,"_right","0"),i(this,"_bottom","40px"),i(this,"_left","0"),i(this,"_themeManager",new U(O)),i(this,"_triggerButton"),i(this,"_popup"),i(this,"_inbox"),i(this,"_style"),i(this,"_datastoreListener"),i(this,"_popupMenuButtonFactory");const e=this.attachShadow({mode:"open"});this._triggerButton=new j(this._themeManager),this._triggerButton.build(void 0),this._popup=document.createElement("div"),this._popup.className="popup",this._inbox=new Z(this._themeManager),this._inbox.setAttribute("height","100%"),this._style=document.createElement("style"),this.refreshTheme(),e.appendChild(this._style),e.appendChild(this._triggerButton),e.appendChild(this._popup),this._popup.appendChild(this._inbox),this._triggerButton.addEventListener("click",this.togglePopup.bind(this)),document.addEventListener("click",this.handleOutsideClick.bind(this)),this.updatePopupPosition(),this._datastoreListener=new z(this),E.shared.addDataStoreListener(this._datastoreListener),this._themeManager.subscribe((e=>{this.refreshTheme()}))}get theme(){return this._themeManager.getTheme()}setLightTheme(e){this._themeManager.setLightTheme(e)}setDarkTheme(e){this._themeManager.setDarkTheme(e)}static get observedAttributes(){return["popup-alignment","message-click","message-action-click","message-long-press","popup-width","popup-height","top","right","bottom","left","light-theme","dark-theme","mode"]}refreshTheme(){this._style.textContent=this.getStyles()}getStyles(){var e,t,n,i,o,s,l,a;return`\n :host {\n display: inline-block;\n position: relative;\n }\n\n .menu-button-container {\n position: relative;\n display: inline-block;\n }\n\n .popup {\n display: none;\n position: absolute;\n background: ${(null==(t=null==(e=this.theme.popup)?void 0:e.window)?void 0:t.backgroundColor)??"red"};\n border-radius: ${(null==(i=null==(n=this.theme.popup)?void 0:n.window)?void 0:i.borderRadius)??"8px"};\n border: ${(null==(s=null==(o=this.theme.popup)?void 0:o.window)?void 0:s.border)??"1px solid red"};\n box-shadow: ${(null==(a=null==(l=this.theme.popup)?void 0:l.window)?void 0:a.shadow)??"0px 8px 16px -4px red"};\n z-index: 1000;\n width: ${this._width};\n height: ${this._height};\n overflow: hidden;\n transform: translateZ(0);\n will-change: transform;\n }\n \n #unread-badge {\n position: absolute;\n top: -8px;\n left: 50%;\n pointer-events: none;\n }\n\n courier-inbox {\n height: 100%;\n }\n `}attributeChangedCallback(e,t,n){switch(e){case"popup-alignment":this.isValidPosition(n)&&(this._popupAlignment=n,this.updatePopupPosition());break;case"popup-width":this._width=n,this.setSize(n,this._height);break;case"popup-height":this._height=n,this.setSize(this._width,n);break;case"top":this._top=n,this.updatePopupPosition();break;case"right":this._right=n,this.updatePopupPosition();break;case"bottom":this._bottom=n,this.updatePopupPosition();break;case"left":this._left=n,this.updatePopupPosition();break;case"light-theme":n&&this.setLightTheme(JSON.parse(n));break;case"dark-theme":n&&this.setDarkTheme(JSON.parse(n));break;case"mode":this._themeManager.setMode(n)}}onUnreadCountChange(e){this.render()}onMessageClick(e){this._inbox.onMessageClick(e)}onMessageActionClick(e){this._inbox.onMessageActionClick(e)}onMessageLongPress(e){this._inbox.onMessageLongPress(e)}isValidPosition(e){return["top-right","top-left","top-center","bottom-right","bottom-left","bottom-center","center-right","center-left","center-center"].includes(e)}updatePopupPosition(){switch(this._popup.style.top="",this._popup.style.bottom="",this._popup.style.left="",this._popup.style.right="",this._popup.style.margin="",this._popup.style.transform="",this._popupAlignment){case"top-right":this._popup.style.top=this._top,this._popup.style.right=this._right;break;case"top-left":this._popup.style.top=this._top,this._popup.style.left=this._left;break;case"top-center":this._popup.style.top=this._top,this._popup.style.left="50%",this._popup.style.transform="translateX(-50%)";break;case"bottom-right":this._popup.style.bottom=this._bottom,this._popup.style.right=this._right;break;case"bottom-left":this._popup.style.bottom=this._bottom,this._popup.style.left=this._left;break;case"bottom-center":this._popup.style.bottom=this._bottom,this._popup.style.left="50%",this._popup.style.transform="translateX(-50%)";break;case"center-right":this._popup.style.top="50%",this._popup.style.right=this._right,this._popup.style.transform="translateY(-50%)";break;case"center-left":this._popup.style.top="50%",this._popup.style.left=this._left,this._popup.style.transform="translateY(-50%)";break;case"center-center":this._popup.style.top="50%",this._popup.style.left="50%",this._popup.style.transform="translate(-50%, -50%)"}}togglePopup(e){e.stopPropagation();const t="block"===this._popup.style.display;this._popup.style.display=t?"none":"block"}handleOutsideClick(e){this.contains(e.target)||(this._popup.style.display="none")}setContent(e){this._inbox.innerHTML="",this._inbox.appendChild(e)}setSize(e,t){this._width=e,this._height=t,this._popup.style.width=e,this._popup.style.height=t}setPosition(e){var n,i;this.isValidPosition(e)?(this._popupAlignment=e,this.updatePopupPosition()):null==(i=null==(n=t.Courier.shared.client)?void 0:n.options.logger)||i.error(`Invalid position: ${e}`)}setFeedType(e){this._inbox.setFeedType(e)}setPopupHeader(e){this._inbox.setHeader(e)}removePopupHeader(){this._inbox.removeHeader()}setPopupLoadingState(e){this._inbox.setLoadingState(e)}setPopupEmptyState(e){this._inbox.setEmptyState(e)}setPopupErrorState(e){this._inbox.setErrorState(e)}setPopupListItem(e){this._inbox.setListItem(e)}setPopupPaginationItem(e){this._inbox.setPaginationItem(e)}setPopupMenuButton(e){this._popupMenuButtonFactory=e,this.render()}render(){const e=E.shared.unreadCount;switch(this._popupMenuButtonFactory){case void 0:case null:this._triggerButton.build(void 0),this._triggerButton.onUnreadCountChange(e);break;default:const t=this._popupMenuButtonFactory({unreadCount:e});this._triggerButton.build(t)}}disconnectedCallback(){var e;null==(e=this._datastoreListener)||e.remove(),this._themeManager.cleanup()}}customElements.get("courier-inbox-menu")||customElements.define("courier-inbox-menu",G);e.CourierInbox=Z,e.CourierInboxDataStoreListener=z,e.CourierInboxDatastore=E,e.CourierInboxDatastoreEvents=class{onDataSetChange(e,t){}onPageAdded(e,t){}onUnreadCountChange(e){}onMessageAdd(e,t,n){}onMessageRemove(e,t,n){}onMessageUpdate(e,t,n){}onError(e){}},e.CourierInboxHeader=R,e.CourierInboxMenu=G,e.CourierInboxThemeManager=U,e.CourierListItem=T,e.archiveMessage=function(e){return E.shared.archiveMessage({message:e})},e.clickMessage=function(e){return E.shared.clickMessage({message:e})},e.defaultDarkTheme=V,e.defaultLightTheme=O,e.markAsRead=function(e){return E.shared.readMessage({message:e})},e.markAsUnread=function(e){return E.shared.unreadMessage({message:e})},e.mergeTheme=N,e.openMessage=function(e){return E.shared.openMessage({message:e})},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}));
2
+ //# sourceMappingURL=index.js.map